[SCM] audacious/master: Imported Upstream version 3.2
davromaniak-guest at users.alioth.debian.org
davromaniak-guest at users.alioth.debian.org
Wed Jan 25 20:58:15 UTC 2012
The following commit has been merged in the master branch:
commit de557c9169bd7b74b5126b8c6192c6251d03407c
Author: Cyril Lavier <cyril.lavier at davromaniak.eu>
Date: Wed Jan 25 21:52:25 2012 +0100
Imported Upstream version 3.2
diff --git a/AUTHORS b/AUTHORS
index b8270d2..0978282 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,44 @@
-Audacious (C) GPL 2005-2009
+Audacious
+=========
+
+This file is quite out of date and in the process of being updated.
+
+Audacious core shared library (src/libaudcore):
+ * Copyright (C) 2006-2011:
+ Daniel Barkalow
+ Christian Birchinger
+ Ralf Ertzinger
+ Maciej Grela
+ Matti Hämäläinen
+ John Lindgren
+ Giacomo Lozito
+ William Pitcock
+ Tony Vroon
+ Yoshiki Yazawa
+ Eugene Zagidullin
+
+Audacious user interface shared library (src/libaudgui):
+ * Copyright (C) 1998-2003 XMMS development team
+ * Copyright (C) 2003-2004 BMP development team
+ * Copyright (C) 2006-2012:
+ Carlo Bramini
+ Michael Färber
+ Jussi Judin
+ John Lindgren
+ Giacomo Lozito
+ Tomasz MoÅ
+ William Pitcock
+ Yoshiki Yazawa
+ Eugene Zagidullin
+
+Session management support (src/libeggsmclient):
+ * Copyright (C) 1999-2000 Red Hat, Inc.
+ * Copyright (C) 2001 George Lebl
+ * Copyright (C) 2007 Novell, Inc.
+
+
+Old AUTHORS file
+================
Authors listed alphabetically, by last name:
--------------------------------------------
diff --git a/COPYING b/COPYING
index 0f18405..3c66728 100644
--- a/COPYING
+++ b/COPYING
@@ -22,10 +22,9 @@ this program. If not, see <http://www.gnu.org/licenses/>.
***
-The files src/audacious/images/{album appearance audio connectivity
-menu_playlist menu_plugin menu_queue_toggle playlist plugins replay_gain}.png
-are taken from the icon theme of Gnome 2.30.3 and are distributed under the
-following terms:
+The files src/audacious/images/{album audio connectivity menu_playlist
+menu_plugin menu_queue_toggle playlist plugins}.png are taken from the icon
+theme of Gnome 2.30.3 and are distributed under the following terms:
Copyright (C) Ulisse Perusin, Riccardo Buzzotta, Josef VybÃral, Hylke Bons,
Ricardo González, Lapo Calamandrei, Rodney Dawes, Luca Ferretti, Tuomas
diff --git a/INSTALL b/INSTALL
index 23e5f25..7d1c323 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,16 +1,25 @@
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
Basic Installation
==================
-These are generic installation instructions.
+ Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -23,9 +32,9 @@ debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring. (Caching is
+the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
@@ -35,30 +44,37 @@ some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'. You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
-The simplest way to compile this package is:
+ The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
+ `./configure' to configure the package for your system.
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
- the package.
+ the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
@@ -67,45 +83,69 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
+
Compilers and Options
=====================
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about. Run `./configure --help' for
-details on some of the pertinent environment variables.
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
- ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
-You can compile the package for more than one kind of computer at the
+ You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
+own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
- If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory. After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
Installation Names
==================
-By default, `make install' installs the package's commands under
+ By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -116,16 +156,47 @@ Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
+ Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -137,14 +208,53 @@ find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
Specifying the System Type
==========================
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -152,7 +262,8 @@ type, such as `sun4', or a canonical name which has the form:
where SYSTEM can have one of these forms:
- OS KERNEL-OS
+ OS
+ KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
@@ -170,9 +281,9 @@ eventually be run) with `--host=TYPE'.
Sharing Defaults
================
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -181,7 +292,7 @@ A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
-Variables not defined in a site shell script can be set in the
+ Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -190,21 +301,29 @@ them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script). Here is a another example:
+overridden in the site shell script).
- /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug. Until the bug is fixed you can use this workaround:
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+ CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
-`configure' recognizes the following options to control how it operates.
+ `configure' recognizes the following options to control how it
+operates.
`--help'
`-h'
- Print a summary of the options to `configure', and exit.
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
`--version'
`-V'
@@ -231,6 +350,16 @@ configuration-related scripts to be executed by `/bin/bash'.
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
diff --git a/Mercurial-Access b/Mercurial-Access
deleted file mode 100644
index abbcfb1..0000000
--- a/Mercurial-Access
+++ /dev/null
@@ -1,13 +0,0 @@
-The atheme.org mercurial repository is available for anonymous read-only
-access.
-
-To retrieve the audacious development branch from hg.atheme.org, do:
- $ hg clone http://hg.atheme.org/audacious/ audacious-devel
-
-To retrieve the audacious stable branch from hg.atheme.org, do:
- $ hg clone http://hg.atheme.org/release/audacious-$VERSION/
-
- Where $VERSION is the stable major version, for example the latest
- fixes and updates to 1.5-series of audacious would be in:
-
- $ hg clone http://hg.atheme.org/release/audacious-1.5/
diff --git a/NEWS b/NEWS
deleted file mode 100644
index 431877c..0000000
--- a/NEWS
+++ /dev/null
@@ -1,248 +0,0 @@
-Ok, so like, we suck at writing NEWS files. If you want to find out about
-bug fixes, use JIRA. If you want to find out about source changes, read our
-Mercurial logs.
-
-Audacious 2.1.0 (2009-07-06)
-============================
-
-Enhancements
-------------
-* Newui was moved into a plugin and is now called 'gtkui'. It is
- still not very complete, but has progressed some.
-* Sorting by album added.
-* Completely new, written from scratch alsa-ng output plugin, which
- fixes many of the problems our old ALSA output plugin had; including
- high CPU load with Intel-HDA.
-* Listing of available interfaces via 'audacious -i list'.
-* Added bs2b (Bauer stereophonic-to-binaural) headphone crossfade filter
- effect plugin. It is designed to prevent listener fatigue by reducing the
- super-stereo effect that headphones normally produce.
-* rootvis plugin was dropped, as it does not work on most systems anymore.
-* Some updated translations.
-
-Bugfixes
---------
-* Mouse wheel settings where removed (for now) from properties, because
- they didn't actually do anything.
-* Fixed problems with seeking that could occur under certain conditions.
-* Many fixes in newui/gtkui.
-* Fixed frenzied looping, 100% CPU when loading metadata is disabled.
-* Run visualization process only when a shown and playing.
-* Quit cleanly (and safely) on SIGINT/QUIT/TERM.
-* Fixed several race conditions and NULL-pointer dereferences.
-* New playlist scanner, which, related to above, is safer and more effective.
-* Fixed MPRIS interface's GetStatus, StatusChange and Quit functionality to
- match the official MPRIS spec.
-* Bunch of LADSPA, cdaudio-ng, PulseAudio fixes and cleanups.
-* Remove bogus and unnecessary end-of-playback logic in vorbis plugin.
-* Fixed NEON transport plugin error reporting.
-* SID-plugin was synchronized with XMMS-SID codebase, with number of
- enhancements and fixes.
-* Fixed SSE2 instruction set support checking in configure.
-* JACK output plugin got cleaned up and checking for JACK availability
- was changed to use pkg-config.
-* And bunch of other bugfixes, cleanups, etc.
-
-Audacious 2.0.1 (2009-05-13)
-============================
-
-Bugfixes
---------
-* Math dealing with the over-commitment of the equalizer values has been corrected.
- However, please note that the equalizer goes from literal -12dB to +12dB, which
- can be a very major boost. So yes, the highest settings causing distortion on really
- loud audio is *not a bug*.
- We may drop this down to 6dB in both ways in 2.1, depending on how many complaints
- we get.
-
-Audacious 2.0.0 (2009-05-12)
-============================
-This branch of Audacious represents a major restructuring of how the player
-itself works. Notably, the skinned UI is no longer part of core. There is an
-experimental 'skinless' UI which can be launched with 'audacious2 -i newui',
-but it is incomplete at this time. Patches accepted!
-
-Other notable enhancements include switching to GIO/GVFS from using stdio,
-which while raising our requirements to GLib 2.16, gives us the ability to
-do many things out of the box. This is a good thing.
-
-Enhancements
-------------
-* Everything between 1.5.0 and 1.5.1.
-* Lots of other stuff.
-* Playing streams no longer edits the config preferences. This is a
- behavioural trait from XMMS.
-* Many plugins have been added, including experimental support for PSF2.
-* The projectM plugin now works with libprojectM 1.2.
-
-Bugfixes
---------
-* The equalizer preamp setting has been fixed.
-* --play-pause actually works correctly now, it broke a long time ago
- when we started using DBus
-* MPRIS exported data now includes the track number
-* Behavioural issues while seeking when paused have been corrected.
-* `audtool help playback-seek-relative` no longer segfaults
-* The file information dialog is no longer destroyed when you close it,
- but is hidden instead.
-* Many legacy XMMS behaviours have been corrected.
-* Handling of non-bitmap fonts have been corrected.
-* Tons of others which are less notable.
-
-New bugs
---------
-* Probably a lot! Test and report.
-
-Audacious 1.5.0 (2008-03-13)
-============================
-This is the last branch of Audacious that will support in Winamp2 skins
-in core. We are working on a new default UI for Audacious2 which provides
-a more metadata rich environment (while still be lightweight and fast).
-However, it is planned to implement support for Winamp2 skins as a plugin in
-the next version. No promises, though.
-
-It has been fun being seen as "rescuing XMMS" by the community; but this
-has never been our goal. Our goal has always been to develop the best
-possible player on Linux. This means that we are audiophiles, and we want
-our audio to sound as nice as possible. This has been our primary goal;
-not maintaining a Winamp2 skinned player. When we determined that the current
-UI implementation was getting in our way, we decided to rip it out. As such,
-the future of Winamp2 skins in Audacious is undefined, but they will probably
-be supported via a plugin.
-
-Enhancements
-------------
-* Everything between 1.4.1 and 1.4.7. (duh)
-* Ability to disable GTK+ theme suggestions provided by skins.
-* Entirely from scratch audio engine (libSAD) which supports:
- - 16-bit audio
- - 24-bit audio
- - 32-bit audio
- - IEEE floating point audio
- - 28-bit fractional audio
- - many weird obscure "audiophile" formats
- and:
- - high quality dithering/conversion/resampling to produce as
- high quality audio as possible for your sound system.
- - bit-exact passthrough of decoded audio (compare to
- "kernel streaming" in foobar2000)
- As a result, support for oldschool 8-bit soundcards has been
- _dropped_. It's 2008, they haven't made such hardware since the
- early 90's.
- Additionally, codecs now send audio to audacious using their
- native format; removing the need for costly implementation-specific
- conversion functionality.
-* New unified metadata editing for most formats. Ability to see
- "raw metadata"; the metadata which can be used in tuplez scripts.
-* Removal of the XMMS audio conversion engine in it's entirety.
-* Support for "virtual plugins"; the ability for a single module to
- export up to thousands of plugins. This will be used more in Audacious2.
-* Many adjustments to the winamp2 skinengine.
-* Faster jump-to-file.
-* Implement support for session management.
-
-Bugfixes
---------
-* playlist_compare_artist(): Avoid NULL dereferences.
- (Bugzilla #172, Bugzilla #168, Bugzilla #35).
-* Tons of memory leaks fixed.
-
-
-Audacious 1.4.1 (2007-11-17)
-============================
-
-Enhancements
-------------
-* The skin code has been tweaked a little to fix loading of
- more substandard winamp skins.
- (http://boards.nenolod.net/viewtopic.php?f=5&t=859)
-* Playlists now carry an atomic serial number in order to avoid
- unnecessary reloading of metadata.
-* The command names used by audtool have been sanitized in order
- to make some level of sense.
-* Add many new calls to libaudclient which were unimplemented after
- DBus transition.
-* Add error reporting when Tuplez scripts fail to compile.
-* Use a hashtable of extension to codec candidate lists to speed up
- codec detection.
-* Make on demand codec detection use the hashtable to filter out unplayable
- files.
-* Codec detection is now done on demand by default. Due to the recent
- rework of the codec detection system, this is the recommended setting.
- (Audacious can process a large directory in only a few seconds of blocking
- this way, and streams are entirely processed in background this way.)
-* Add codec and quality fields to MPRIS TrackInfo tuples sent over DBus.
-
-Bugfixes
---------
-* [Bugzilla #53]: UTF-8 validation gives false positives
- (Reported by Kosma Moczek; Fixed by Yoshiki Yazawa)
-* [Bugzilla #20]: status icon plugin breaks the 'always on top' feature
- (Reported by Dorian Scholz; Fixed by Tomasz MoÅ)
-* playback_get_length() was returning the typecode of FIELD_LENGTH, not
- it's value
-* audctrl.h was dependent on #ifdef __cplusplus being a valid macro,
- now we use G_BEGIN_DECLS/G_END_DECLS to handle that.
-* Fix doublesize issues on startup. (Gentoo #199071)
-* Fix possible glitches that could be triggered by a scrolling textbox,
- when the skin is switched.
-* Fix improper handling of integer constants in the Tuplez
- compiler/evaluation engine.
-* Fix misleading assertion notice triggers when a URI fails to load.
-* Cope with Winamp2 skins which do not have dashes in numbers.bmp.
-
-
-Audacious 1.4.0 (2007-11-01)
-============================
-
-* Everything ;)
-
-
-Audacious 1.3.0 (2007-03-02)
-============================
-
-Enhancements
-------------
-* The playlist code has been rewritten using conditional variables,
- which has resulted in speed improvements for the playlist code overall.
-* The behaviour for detecting filemagic has been redone and is now more
- scalable.
-* DoubleSize support has been improved significantly.
-* Race conditions in produce_audio() have been corrected.
-* The playlist editor is now properly drawn in shaded mode.
-* g_utf8_validate has been replaced with a more strict utf8 validator,
- which solves the encapsulated UTF-8 phenomenon properly.
-* The controlsocket code no longer uses the stack in an improper manner.
-* Behaviour regarding conversion of %20 in the playlist has been corrected.
-* Window decorations can now be enabled in preferences.
-* The translation templates have been simplified.
-* Support for translating plugins has been re-added.
-* The Jump-to-File code has been rewritten and now searches using
- regular expressions. In addition, the search is done without GTK
- queueing redraws for each entry, which has resulted in interface
- speedups.
-* The overall UI code has been reworked significantly and should be of
- better quality. Notable enhancements include support for UIManager xml
- file declarations.
-* A facility for searching and selecting/acting upon entries in the
- playlist has been added.
-* Support for multiple playlists has been added, and a playlist manager
- has been added to manage them.
-* Audacious now uses libmcs to store it's settings, which allows for
- tighter desktop environment integration.
-* Audacious now supports the XDG BASEDIR standard.
-* A lot of XMMS and BMP code has been either removed or rewritten so
- that it is less confusing. This should allow for easier maintainability
- in the future.
-* Debugging tools have been added for tracking memory allocation and freeing.
-* A safe signaling implementation has been added.
-* A voiceprint visualizer mode has been added.
-* Support for changing the tint in the graphics of skins has been added.
-* InputPlugins now use an InputPlayback context to track activity
- instead of blindly pushing data down a potentially undefined pipeline.
-* Audacious now uses GOption to parse the commandline.
-
-Bugfixes
---------
-* Too many to count.
-
diff --git a/README b/README
index 0bfcd86..996fd74 100644
--- a/README
+++ b/README
@@ -503,12 +503,12 @@ Currently, we only provide source tarballs at:
http://audacious-media-player.org/downloads
-Audacious source is managed and also available via Atheme.org
-Mercurial repository, refer to following web-page for information:
+Audacious source is managed and also available via the Atheme.org
+GIT repository, refer to following web-page for information:
http://audacious-media-player.org/developers
-You may also want to read file "Mercurial-Access".
+You may also want to read file "GIT-Access".
4.1. Obtaining Skins
diff --git a/acinclude.m4 b/acinclude.m4
index 5a1c0c4..6f6f293 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,16 +1,3 @@
-
-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"
- else
- PC_REQUIRES="$PC_REQUIRES, $1"
- fi
- AC_SUBST([PC_REQUIRES])
-])
-
-
dnl ** AUD_CHECK_MODULE([define name], [module], [version required],
dnl ** [informational name], [additional error message])
dnl **
@@ -21,7 +8,6 @@ dnl **
dnl ** AUD_CHECK_MODULE([GLIB], [gtk+-2.0], [>= 2.8.0], [Gtk+2], [See http://www.gtk.org/])
AC_DEFUN([AUD_CHECK_MODULE], [
PKG_CHECK_MODULES([$1], [$2 $3], [
- ADD_PC_REQUIRES([$2 $3])
],[
PKG_CHECK_EXISTS([$2], [
cv_pkg_version=`$PKG_CONFIG --modversion "$2" 2>/dev/null`
@@ -142,6 +128,23 @@ define([aud_get_plugin_dirs_defined],[1])dnl
])dnl
+dnl Add $1 to CFLAGS and CXXFLAGS if supported
+dnl ------------------------------------------
+
+AC_DEFUN([AUD_CHECK_CFLAGS],[
+ AC_MSG_CHECKING([whether the C/C++ compiler supports $1])
+ OLDCFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1 -Werror"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0;])],[
+ AC_MSG_RESULT(yes)
+ CFLAGS="$OLDCFLAGS $1"
+ CXXFLAGS="$CXXFLAGS $1"
+ ],[
+ AC_MSG_RESULT(no)
+ CFLAGS="$OLDCFLAGS"
+ ])
+])
+
dnl **
dnl ** Common checks
@@ -150,20 +153,34 @@ AC_DEFUN([AUD_COMMON_PROGS], [
dnl Check for C and C++ compilers
dnl =============================
-AUD_CHECK_GNU_MAKE
-AC_PROG_CC
-AC_PROG_CXX
-AM_PROG_AS
-AC_ISC_POSIX
-AC_C_BIGENDIAN
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AM_PROG_AS])
+AC_REQUIRE([AC_C_BIGENDIAN])
+AC_REQUIRE([AC_SYS_LARGEFILE])
if test "x$GCC" = "xyes"; then
- CFLAGS="$CFLAGS -Wall -pipe"
- CXXFLAGS="$CXXFLAGS -pipe -Wall"
+ CFLAGS="$CFLAGS -std=gnu99 -Wall -pipe"
+ CXXFLAGS="$CXXFLAGS -Wall -pipe"
+ AUD_CHECK_CFLAGS(-Wtype-limits)
fi
+dnl Enable "-Wl,-z,defs" only on Linux
+dnl ==============================
+AC_MSG_CHECKING([for Linux])
+case "$target" in
+ *linux*)
+ AC_MSG_RESULT([yes])
+ LDFLAGS="$LDFLAGS -Wl,-z,defs"
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+esac
+
dnl Checks for various programs
dnl ===========================
+AUD_CHECK_GNU_MAKE
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_PATH_PROG([RM], [rm])
@@ -172,85 +189,14 @@ AC_PATH_PROG([CP], [cp])
AC_PATH_PROG([AR], [ar])
AC_PATH_PROG([TR], [tr])
AC_PATH_PROG([RANLIB], [ranlib])
+AC_PATH_PROG([WINDRES], [windres])
dnl Check for Gtk+/GLib and pals
dnl ============================
-AUD_CHECK_MODULE([GLIB], [glib-2.0], [>= 2.12.0], [Glib2])
-AUD_CHECK_MODULE([GTHREAD], [gthread-2.0], [>= 2.12.0], [gthread-2.0])
-
-if test $use_gtk3 = yes ; then
- AUD_CHECK_MODULE([GTK], [gtk+-3.0], [>= 3.0.0], [Gtk+3])
-else
- AUD_CHECK_MODULE([GTK], [gtk+-2.0], [>= 2.8.0], [Gtk+2])
-fi
-
-AUD_CHECK_MODULE([PANGO], [pango], [>= 1.8.0], [Pango])
-AUD_CHECK_MODULE([CAIRO], [cairo], [>= 1.2.4], [Cairo])
-
-
-dnl Check for libmowgli
-dnl ===================
-AUD_CHECK_MODULE([MOWGLI], [libmowgli], [>= 0.9], [libmowgli],
- [http://www.atheme.org/projects/mowgli.shtml])
-
-
-dnl Check for libmcs
-dnl ================
-AUD_CHECK_MODULE([LIBMCS], [libmcs], [>= 0.7], [libmcs],
- [http://www.atheme.org/projects/mcs.shtml])
-
-
-dnl SSE2 support
-dnl ============
-AUD_ARG_ENABLE([sse2], [yes], [SSE2 support],
-[
- AC_MSG_CHECKING([SSE2 support])
- aud_my_save_CFLAGS="$CFLAGS"
- CFLAGS="-msse2"
- AC_TRY_RUN([
-#include <emmintrin.h>
-int main()
-{
- _mm_setzero_pd();
- asm volatile("xorpd %xmm0,%xmm0\n\t");
- return 0;
-}
- ],[
- AC_MSG_RESULT([yes])
- AC_DEFINE([HAVE_SSE2], 1, [Define to 1 if your system has SSE2 support])
- SIMD_CFLAGS="-msse2"
- ],[
- AC_MSG_RESULT([no])
- enable_sse2="no"
- ])
- AC_SUBST([SIMD_CFLAGS])
- CFLAGS="$aud_my_save_CFLAGS"
-])
-
-dnl AltiVec support
-dnl ===============
-AUD_ARG_ENABLE([altivec], [yes], [AltiVec support],
-[
- AC_CHECK_HEADERS([altivec.h],
- [
- AC_DEFINE([HAVE_ALTIVEC], 1, [Define to 1 if your system has AltiVec.])
- AC_DEFINE([HAVE_ALTIVEC_H], 1, [Define to 1 if your system has an altivec.h file.])
- AC_DEFINE([ARCH_POWERPC], 1, [Define to 1 if your system is a PowerPC.])
- case $target in
- *-apple-*)
- SIMD_CFLAGS="-mpim-altivec"
- ;;
- *)
- SIMD_CFLAGS="-maltivec"
- ;;
- esac
- AC_SUBST([SIMD_CFLAGS])
- ],[
- enable_altivec="no"
- ])
-])
-
-AC_CHECK_FUNC([getrlimit])
+AUD_CHECK_MODULE([GLIB], [glib-2.0], [>= 2.16], [Glib2])
+AUD_CHECK_MODULE([GTHREAD], [gthread-2.0], [>= 2.16], [GThread])
+AUD_CHECK_MODULE([PANGO], [pango], [>= 1.20], [Pango])
+AUD_CHECK_MODULE([CAIRO], [cairo], [>= 1.6], [Cairo])
])
diff --git a/aclocal.m4 b/aclocal.m4
index 86487fd..68b1008 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.2 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -1834,7 +1835,8 @@ AC_DEFUN([AM_NLS],
# ----------------------------------
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
@@ -1880,7 +1882,8 @@ m4_define([_PKG_CONFIG],
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
- [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
[pkg_failed=yes])
else
pkg_failed=untried
@@ -1928,9 +1931,9 @@ if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
- $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
- $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -1954,7 +1957,7 @@ path to pkg-config.
_PKG_TEXT
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
@@ -2565,14 +2568,14 @@ AC_CONFIG_COMMANDS_PRE(
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 10
+# serial 12
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@@ -2612,6 +2615,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
+ rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
@@ -2676,7 +2680,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
break
fi
;;
- msvisualcpp | msvcmsys)
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
@@ -2741,10 +2745,13 @@ AC_DEFUN([AM_DEP_TRACK],
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
+ am__nodep='_no'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
@@ -2900,12 +2907,15 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
+# serial 1
+
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
@@ -2928,13 +2938,14 @@ esac
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 4
+# serial 5
# _AM_MANGLE_OPTION(NAME)
# -----------------------
@@ -2942,13 +2953,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -2959,13 +2970,13 @@ AC_DEFUN([_AM_SET_OPTIONS],
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
-# serial 2
+# serial 3
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
@@ -2974,7 +2985,7 @@ AC_DEFUN([_AM_IF_OPTION],
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
diff --git a/audacious.pc.in b/audacious.pc.in
index 21e1926..0eda817 100644
--- a/audacious.pc.in
+++ b/audacious.pc.in
@@ -1,8 +1,8 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
-data_dir=@datadir@/@PACKAGE_NAME@
+data_dir=@datadir@/@PACKAGE@
-version=@PACKAGE_VERSION@
+version=@VERSION@
include_dir=@includedir@
audacious_include_dir=@includedir@
lib_dir=@libdir@
@@ -19,7 +19,6 @@ discovery_plugin_dir=@plugindir@/@DISCOVERY_PLUGIN_DIR@
Name: Audacious
Description: Audacious is a versatile and handy multi platform media player
-Version: @PACKAGE_VERSION@
-Requires: @PC_REQUIRES@
+Version: @VERSION@
Libs: -L${lib_dir} -laudcore -laudgui
Cflags: -I${audacious_include_dir}
diff --git a/audclient.pc.in b/audclient.pc.in
index 1ddb2ed..9754a33 100644
--- a/audclient.pc.in
+++ b/audclient.pc.in
@@ -1,14 +1,13 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
-data_dir=@datadir@/@PACKAGE_NAME@
+data_dir=@datadir@/@PACKAGE@
-version=@PACKAGE_VERSION@
+version=@VERSION@
audacious_include_dir=@includedir@
lib_dir=@libdir@
Name: Audacious Client Library
Description: Remote control library for Audacious
-Version: @PACKAGE_VERSION@
-Requires: @PC_REQUIRES@
+Version: @VERSION@
Libs: -L${lib_dir} @LIBAUDCLIENT_LDFLAGS@
Cflags: -I${audacious_include_dir}
diff --git a/buildsys.mk.in b/buildsys.mk.in
index 2ff129e..b00ae75 100644
--- a/buildsys.mk.in
+++ b/buildsys.mk.in
@@ -1,5 +1,6 @@
#
-# Copyright (c) 2007 - 2009, Jonathan Schleifer <js at webkeks.org>
+# Copyright (c) 2007, 2008, 2009, 2010, 2011
+# Jonathan Schleifer <js at webkeks.org>
#
# https://webkeks.org/hg/buildsys/
#
@@ -63,6 +64,10 @@ MKDIR_P = mkdir -p
INSTALL = @INSTALL@
SHELL = @SHELL@
MSGFMT = @MSGFMT@
+JAVAC = @JAVAC@
+JAVACFLAGS = @JAVACFLAGS@
+JAR = @JAR@
+WINDRES = @WINDRES@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
@@ -82,11 +87,13 @@ OBJS2 = ${OBJS1:.cc=.o}
OBJS3 = ${OBJS2:.cxx=.o}
OBJS4 = ${OBJS3:.d=.o}
OBJS5 = ${OBJS4:.erl=.beam}
-OBJS6 = ${OBJS5:.m=.o}
-OBJS7 = ${OBJS6:.mm=.o}
-OBJS8 = ${OBJS7:.py=.pyc}
-OBJS9 = ${OBJS8:.xpm=.o}
-OBJS += ${OBJS9:.S=.o}
+OBJS6 = ${OBJS5:.java=.class}
+OBJS7 = ${OBJS6:.m=.o}
+OBJS8 = ${OBJS7:.mm=.o}
+OBJS9 = ${OBJS8:.py=.pyc}
+OBJS10 = ${OBJS9:.rc=.o}
+OBJS11 = ${OBJS10:.S=.o}
+OBJS += ${OBJS11:.xpm=.o}
LIB_OBJS = ${OBJS:.o=.lib.o}
PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
@@ -95,13 +102,13 @@ MO_FILES = ${LOCALES:.po=.mo}
.SILENT:
.SUFFIXES:
-.SUFFIXES: .beam .c .c.dep .cc .cc.dep .cxx .cxx.dep .d .erl .lib.o .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .xpm .S .S.dep
+.SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
.PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales
all:
- ${MAKE} ${MFLAGS} subdirs || exit 1
- ${MAKE} ${MFLAGS} depend || exit 1
- ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${LIB} ${LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} locales || exit 1
+ ${MAKE} ${MFLAGS} subdirs
+ ${MAKE} ${MFLAGS} depend
+ ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${LIB} ${LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
subdirs:
for i in ${SUBDIRS}; do \
@@ -122,7 +129,7 @@ depend: pre-depend ${SRCS}
;; \
esac; \
done; \
- if test x"$$regen" = x"1" -a x"$$deps" != "x"; then \
+ if test x"$$regen" = x"1" -a x"$$deps" != x""; then \
${DEPEND_STATUS}; \
if ${MAKE} ${MFLAGS} $$deps && cat $$deps >.deps; then \
rm -f $$deps; \
@@ -149,20 +156,29 @@ ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS}
${LINK_FAILED}; \
fi
+${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS}
+ ${LINK_STATUS}
+ if test x"${JAR_MANIFEST}" != x""; then \
+ if ${JAR} cfm ${JARFILE} ${JAR_MANIFEST} ${OBJS}; then \
+ ${LINK_OK}; \
+ else \
+ ${LINK_FAILED}; \
+ fi \
+ else \
+ if ${JAR} cf ${JARFILE} ${OBJS}; then \
+ ${LINK_OK}; \
+ else \
+ ${LINK_FAILED}; \
+ fi \
+ fi
+
${LIB} ${LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS}
- case $@ in \
- *.a) \
- ${MAKE} ${MFLAGS} STATIC_LIB=${LIB} LIB= $@ || exit 1 \
- ;; \
- *) \
- ${LINK_STATUS}; \
- if ${LD} -o $@ ${LIB_OBJS} ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
- ${LINK_OK}; \
- else \
- ${LINK_FAILED}; \
- fi \
- ;; \
- esac
+ ${LINK_STATUS}; \
+ if ${LD} -o $@ ${LIB_OBJS} ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
+ ${LINK_OK}; \
+ else \
+ ${LINK_FAILED}; \
+ fi \
${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
${LINK_STATUS}
@@ -174,7 +190,44 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS}
${LINK_STATUS}
- if ${AR} cr $@ ${OBJS} && ${RANLIB} $@; then \
+ rm -f $@
+ objs=""; \
+ ars=""; \
+ for i in ${OBJS}; do \
+ case $$i in \
+ *.a) \
+ ars="$$ars $$i" \
+ ;; \
+ *.o) \
+ objs="$$objs $$i" \
+ ;; \
+ esac \
+ done; \
+ for i in $$ars; do \
+ dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
+ rm -fr $$dir; \
+ mkdir -p $$dir; \
+ cd $$dir; \
+ ar x ../$$i; \
+ for j in *.o; do \
+ objs="$$objs $$dir/$$j"; \
+ done; \
+ cd ..; \
+ done; \
+ if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
+ ${LINK_OK}; \
+ else \
+ ${LINK_FAILED}; \
+ rm -f $@; \
+ fi; \
+ for i in $$ars; do \
+ dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
+ rm -fr $$dir; \
+ done
+
+${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS}
+ ${LINK_STATUS}
+ if ${AR} cr $@ ${LIB_OBJS} && ${RANLIB} $@; then \
${LINK_OK}; \
else \
${LINK_FAILED}; \
@@ -251,6 +304,14 @@ locales: ${MO_FILES}
${COMPILE_FAILED}; \
fi
+.java.class:
+ ${COMPILE_STATUS}
+ if ${JAVAC} ${JAVACFLAGS} $<; then \
+ ${COMPILE_OK}; \
+ else \
+ ${COMPILE_FAILED}; \
+ fi
+
.m.o:
${COMPILE_STATUS}
if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
@@ -311,51 +372,59 @@ locales: ${MO_FILES}
${COMPILE_FAILED}; \
fi
-.xpm.o:
+.rc.o .rc.lib.o .rc.plugin.o:
${COMPILE_STATUS}
- if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
+ if ${WINDRES} -J rc -O coff -o $@ $<; then \
${COMPILE_OK}; \
else \
${COMPILE_FAILED}; \
fi
-.xpm.lib.o:
+
+.S.o:
+ ${COMPILE_STATUS}
+ if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+ ${COMPILE_OK}; \
+ else \
+ ${COMPILE_FAILED}; \
+ fi
+.S.lib.o:
${COMPILE_LIB_STATUS}
- if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
+ if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
${COMPILE_LIB_OK}; \
else \
${COMPILE_LIB_FAILED}; \
fi
-.xpm.plugin.o:
+.S.plugin.o:
${COMPILE_PLUGIN_STATUS}
- if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
+ if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
${COMPILE_PLUGIN_OK}; \
else \
${COMPILE_PLUGIN_FAILED}; \
fi
-.S.o:
+.xpm.o:
${COMPILE_STATUS}
- if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+ if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
${COMPILE_OK}; \
else \
${COMPILE_FAILED}; \
fi
-.S.lib.o:
+.xpm.lib.o:
${COMPILE_LIB_STATUS}
- if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+ if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
${COMPILE_LIB_OK}; \
else \
${COMPILE_LIB_FAILED}; \
fi
-.S.plugin.o:
+.xpm.plugin.o:
${COMPILE_PLUGIN_STATUS}
- if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+ if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
${COMPILE_PLUGIN_OK}; \
else \
${COMPILE_PLUGIN_FAILED}; \
fi
-install: ${LIB} ${STATIC_LIB} ${PLUGIN} ${PROG} install-extra
+install: ${LIB} ${STATIC_LIB} ${STATIC_PIC_LIB} ${PLUGIN} ${PROG} install-extra
for i in ${SUBDIRS}; do \
${DIR_ENTER}; \
${MAKE} ${MFLAGS} install || exit 1; \
@@ -364,14 +433,14 @@ install: ${LIB} ${STATIC_LIB} ${PLUGIN} ${PROG} install-extra
for i in ${LIB}; do \
${INSTALL_STATUS}; \
- if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL_LIB}; then \
+ if ${MKDIR_P} ${DESTDIR}${libdir} ${INSTALL_LIB}; then \
${INSTALL_OK}; \
else \
${INSTALL_FAILED}; \
fi \
done
- for i in ${STATIC_LIB}; do \
+ for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
${INSTALL_STATUS}; \
if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i; then \
${INSTALL_OK}; \
@@ -446,7 +515,7 @@ uninstall: uninstall-extra
for i in ${LIB}; do \
if test -f ${DESTDIR}${libdir}/$$i; then \
- if ${UNINSTALL_LIB}; then \
+ if : ${UNINSTALL_LIB}; then \
${DELETE_OK}; \
else \
${DELETE_FAILED}; \
@@ -454,7 +523,7 @@ uninstall: uninstall-extra
fi; \
done
- for i in ${STATIC_LIB}; do \
+ for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
if test -f ${DESTDIR}${libdir}/$$i; then \
if rm -f ${DESTDIR}${libdir}/$$i; then \
${DELETE_OK}; \
@@ -537,7 +606,7 @@ clean:
${DIR_LEAVE}; \
done
- for i in ${DEPS} ${OBJS} ${LIB_OBJS} ${PLUGIN_OBJS} ${PROG} ${PROG_NOINST} ${LIB} ${LIB_NOINST} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${CLEAN_LIB} ${MO_FILES} ${CLEAN}; do \
+ for i in ${DEPS} ${OBJS} ${LIB_OBJS} ${PLUGIN_OBJS} ${PROG} ${PROG_NOINST} ${LIB} ${LIB_NOINST} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${CLEAN_LIB} ${MO_FILES} ${CLEAN}; do \
if test -f $$i -o -d $$i; then \
if rm -fr $$i; then \
${DELETE_OK}; \
diff --git a/config.guess b/config.guess
index af7f02d..dc84c68 100644
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-# Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
-timestamp='2006-07-02'
+timestamp='2009-11-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2006-07-02'
# the same distribution terms that you use for the rest of that program.
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner. Please send patches (context
+# diff format) to <config-patches at gnu.org> and include a ChangeLog
+# entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
me=`echo "$0" | sed -e 's,.*/,,'`
@@ -56,8 +56,8 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -139,23 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-if [ "${UNAME_SYSTEM}" = "Linux" ] ; then
- eval $set_cc_for_build
- cat << EOF > $dummy.c
- #include <features.h>
- #ifdef __UCLIBC__
- # ifdef __UCLIBC_CONFIG_VERSION__
- LIBC=uclibc __UCLIBC_CONFIG_VERSION__
- # else
- LIBC=uclibc
- # endif
- #else
- LIBC=gnu
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep LIBC= | sed -e 's: ::g'`
-fi
-
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -178,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
@@ -186,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
- | grep __ELF__ >/dev/null
+ | grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
@@ -340,14 +324,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
@@ -548,7 +551,7 @@ EOF
echo rs6000-ibm-aix3.2
fi
exit ;;
- *:AIX:*:[45])
+ *:AIX:*:[456])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
@@ -656,7 +659,7 @@ EOF
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
- grep __LP64__ >/dev/null
+ grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
@@ -797,7 +800,7 @@ EOF
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
- i*:MINGW*:*)
+ *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
@@ -807,15 +810,24 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- x86:Interix*:[3456]*)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- EM64T:Interix*:[3456]*)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -845,193 +857,125 @@ EOF
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit ;;
arm*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ fi
exit ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
cris:Linux:*:*)
- echo cris-axis-linux-${LIBC}
+ echo cris-axis-linux-gnu
exit ;;
crisv32:Linux:*:*)
- echo crisv32-axis-linux-${LIBC}
+ echo crisv32-axis-linux-gnu
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-${LIBC}
+ echo frv-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- mips:Linux:*:*)
+ mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
- #undef mips
- #undef mipsel
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mipsel
+ CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips
+ CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
- ;;
- mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #undef CPU
- #undef mips64
- #undef mips64el
- #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=mips64el
- #else
- #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=mips64
- #else
- CPU=
- #endif
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^CPU/{
- s: ::g
- p
- }'`"
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or32:Linux:*:*)
- echo or32-unknown-linux-${LIBC}
+ echo or32-unknown-linux-gnu
exit ;;
- ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
exit ;;
- ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
- exit ;;
- alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
- EV5) UNAME_MACHINE=alphaev5 ;;
- EV56) UNAME_MACHINE=alphaev56 ;;
- PCA56) UNAME_MACHINE=alphapca56 ;;
- PCA57) UNAME_MACHINE=alphapca56 ;;
- EV6) UNAME_MACHINE=alphaev6 ;;
- EV67) UNAME_MACHINE=alphaev67 ;;
- EV68*) UNAME_MACHINE=alphaev68 ;;
- esac
- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
esac
exit ;;
- parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
x86_64:Linux:*:*)
- echo x86_64-unknown-linux-${LIBC}
+ echo x86_64-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
- i*86:Linux:*:*)
- # The BFD linker knows what the default object file format is, so
- # first see if it will tell us. cd to the root directory to prevent
- # problems with other programs or directories called `ld' in the path.
- # Set LC_ALL=C to ensure ld outputs messages in English.
- ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
- | sed -ne '/supported targets:/!d
- s/[ ][ ]*/ /g
- s/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-${LIBC}"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}aout"
- exit ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}coff"
- exit ;;
- "")
- # Either a pre-BFD a.out linker (linux-gnuoldld) or
- # one that does not give us useful --help.
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}oldld"
- exit ;;
- esac
- # This should get integrated into the C code below, but now we hack
- if [ "$LIBC" != "gnu" ] ; then echo "$TENTATIVE" && exit 0 ; fi
- # Determine whether the default compiler is a.out or elf
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #ifdef __ELF__
- # ifdef __GLIBC__
- # if __GLIBC__ >= 2
- LIBC=gnu
- # else
- LIBC=gnulibc1
- # endif
- # else
- LIBC=gnulibc1
- # endif
- #else
- #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
- LIBC=gnu
- #else
- LIBC=gnuaout
- #endif
- #endif
- #ifdef __dietlibc__
- LIBC=dietlibc
- #endif
-EOF
- eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
- /^LIBC/{
- s: ::g
- p
- }'`"
- test x"${LIBC}" != x && {
- echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
- exit
- }
- test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
- ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
@@ -1060,7 +1004,7 @@ EOF
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
- i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
@@ -1104,8 +1048,11 @@ EOF
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
@@ -1143,6 +1090,16 @@ EOF
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
@@ -1155,7 +1112,7 @@ EOF
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
- PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
@@ -1218,6 +1175,9 @@ EOF
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
@@ -1227,6 +1187,15 @@ EOF
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
@@ -1236,6 +1205,16 @@ EOF
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1317,6 +1296,9 @@ EOF
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1477,9 +1459,9 @@ This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
and
- http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff --git a/config.h.in b/config.h.in
index 5aab8d9..887913b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -3,15 +3,9 @@
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
-/* Define to 1 if your system is a PowerPC. */
-#undef ARCH_POWERPC
-
/* Build stamp */
#undef BUILDSTAMP
-/* Location of D-Bus services directory */
-#undef DBUS_SERVICES_DIR
-
/* Define to disable per user plugin directory */
#undef DISABLE_USER_PLUGIN_DIR
@@ -19,11 +13,11 @@
language is requested. */
#undef ENABLE_NLS
-/* Define to 1 if your system has AltiVec. */
-#undef HAVE_ALTIVEC
+/* Define to 1 if you have the `backtrace' function. */
+#undef HAVE_BACKTRACE
-/* Define to 1 if your system has an altivec.h file. */
-#undef HAVE_ALTIVEC_H
+/* Define if cexpf is present */
+#undef HAVE_CEXPF
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
CoreFoundation framework. */
@@ -40,12 +34,6 @@
/* Define to 1 if you have the <execinfo.h> header file. */
#undef HAVE_EXECINFO_H
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <fts.h> header file. */
-#undef HAVE_FTS_H
-
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
@@ -55,12 +43,12 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define if the /proc/self/exe symlink is supported */
+#undef HAVE_PROC_SELF_EXE
+
/* Define to 1 if you have the <regex.h> header file. */
#undef HAVE_REGEX_H
@@ -73,9 +61,6 @@
/* Define to 1 if you have the `sigwait' function. */
#undef HAVE_SIGWAIT
-/* Define to 1 if your system has SSE2 support */
-#undef HAVE_SSE2
-
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
@@ -88,9 +73,6 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if you have the <sys/errno.h> header file. */
-#undef HAVE_SYS_ERRNO_H
-
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
@@ -121,15 +103,9 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* Define the shared module suffix extension on your platform. */
-#undef SHARED_SUFFIX
-
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
-/* Define to symbol prefix, if any */
-#undef SYMBOL_PREFIX
-
/* Define if character set detection enabled */
#undef USE_CHARDET
@@ -148,28 +124,6 @@
/* If this macro is defined, use PCRE regex library. */
#undef USE_REGEX_PCRE
-/* Enable extensions on AIX 3, Interix. */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them. */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris. */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop. */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris. */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
/* Version number of package */
#undef VERSION
@@ -185,12 +139,8 @@
# endif
#endif
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
- this defined. */
-#undef _POSIX_1_SOURCE
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
diff --git a/config.rpath b/config.rpath
index c492a93..17298f2 100644
--- a/config.rpath
+++ b/config.rpath
@@ -2,7 +2,7 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2006 Free Software Foundation, Inc.
+# Copyright 1996-2010 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
#
@@ -47,7 +47,7 @@ for cc_temp in $CC""; do
done
cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
wl=
if test "$GCC" = yes; then
@@ -64,7 +64,7 @@ else
;;
esac
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
;;
hpux9* | hpux10* | hpux11*)
wl='-Wl,'
@@ -74,9 +74,15 @@ else
;;
newsos6)
;;
- linux*)
+ linux* | k*bsd*-gnu)
case $cc_basename in
- icc* | ecc*)
+ ecc*)
+ wl='-Wl,'
+ ;;
+ icc* | ifort*)
+ wl='-Wl,'
+ ;;
+ lf95*)
wl='-Wl,'
;;
pgcc | pgf77 | pgf90)
@@ -100,7 +106,7 @@ else
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
- sco3.2v5*)
+ rdos*)
;;
solaris*)
wl='-Wl,'
@@ -108,11 +114,14 @@ else
sunos4*)
wl='-Qoption ld '
;;
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ sysv4 | sysv4.2uw2* | sysv4.3*)
wl='-Wl,'
;;
sysv4*MP*)
;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ wl='-Wl,'
+ ;;
unicos*)
wl='-Wl,'
;;
@@ -121,7 +130,7 @@ else
esac
fi
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
@@ -129,7 +138,7 @@ hardcode_direct=no
hardcode_minus_L=no
case "$host_os" in
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
@@ -155,7 +164,7 @@ if test "$with_gnu_ld" = yes; then
# option of GNU ld is called -rpath, not --rpath.
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
case "$host_os" in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
@@ -179,7 +188,7 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
@@ -189,11 +198,11 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
- interix3*)
+ interix[3-9]*)
hardcode_direct=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
- linux*)
+ gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
@@ -251,7 +260,7 @@ else
hardcode_direct=unsupported
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
@@ -261,7 +270,7 @@ else
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
@@ -280,7 +289,7 @@ else
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct=yes
+ :
else
# We have old collect2
hardcode_direct=unsupported
@@ -323,7 +332,7 @@ else
;;
bsdi[45]*)
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -359,7 +368,7 @@ else
hardcode_direct=yes
hardcode_minus_L=yes
;;
- freebsd* | kfreebsd*-gnu | dragonfly*)
+ freebsd* | dragonfly*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
@@ -412,18 +421,22 @@ else
hardcode_libdir_separator=:
;;
openbsd*)
- hardcode_direct=yes
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case "$host_os" in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
+ ld_shlibs=no
fi
;;
os2*)
@@ -471,7 +484,7 @@ else
ld_shlibs=yes
fi
;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
;;
sysv5* | sco3.2v5* | sco5v6*)
hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
@@ -487,34 +500,52 @@ else
fi
# Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec= # the last element of library_names_spec in libtool.m4
libname_spec='lib$name'
case "$host_os" in
aix3*)
+ library_names_spec='$libname.a'
;;
- aix4* | aix5*)
+ aix[4-9]*)
+ library_names_spec='$libname$shrext'
;;
amigaos*)
+ library_names_spec='$libname.a'
;;
beos*)
+ library_names_spec='$libname$shrext'
;;
bsdi[45]*)
+ library_names_spec='$libname$shrext'
;;
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
shrext=.dll
+ library_names_spec='$libname.dll.a $libname.lib'
;;
darwin* | rhapsody*)
shrext=.dylib
+ library_names_spec='$libname$shrext'
;;
dgux*)
+ library_names_spec='$libname$shrext'
;;
freebsd1*)
;;
- kfreebsd*-gnu)
- ;;
freebsd* | dragonfly*)
+ case "$host_os" in
+ freebsd[123]*)
+ library_names_spec='$libname$shrext$versuffix' ;;
+ *)
+ library_names_spec='$libname$shrext' ;;
+ esac
;;
gnu*)
+ library_names_spec='$libname$shrext'
;;
hpux9* | hpux10* | hpux11*)
case $host_cpu in
@@ -528,10 +559,13 @@ case "$host_os" in
shrext=.sl
;;
esac
+ library_names_spec='$libname$shrext'
;;
- interix3*)
+ interix[3-9]*)
+ library_names_spec='$libname$shrext'
;;
irix5* | irix6* | nonstopux*)
+ library_names_spec='$libname$shrext'
case "$host_os" in
irix5* | nonstopux*)
libsuff= shlibsuff=
@@ -548,41 +582,59 @@ case "$host_os" in
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
- linux*)
+ linux* | k*bsd*-gnu)
+ library_names_spec='$libname$shrext'
;;
knetbsd*-gnu)
+ library_names_spec='$libname$shrext'
;;
netbsd*)
+ library_names_spec='$libname$shrext'
;;
newsos6)
+ library_names_spec='$libname$shrext'
;;
nto-qnx*)
+ library_names_spec='$libname$shrext'
;;
openbsd*)
+ library_names_spec='$libname$shrext$versuffix'
;;
os2*)
libname_spec='$name'
shrext=.dll
+ library_names_spec='$libname.a'
;;
osf3* | osf4* | osf5*)
+ library_names_spec='$libname$shrext'
+ ;;
+ rdos*)
;;
solaris*)
+ library_names_spec='$libname$shrext'
;;
sunos4*)
+ library_names_spec='$libname$shrext$versuffix'
;;
sysv4 | sysv4.3*)
+ library_names_spec='$libname$shrext'
;;
sysv4*MP*)
+ library_names_spec='$libname$shrext'
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ library_names_spec='$libname$shrext'
;;
uts4*)
+ library_names_spec='$libname$shrext'
;;
esac
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
@@ -596,6 +648,12 @@ libext="$libext"
# Shared library suffix (normally "so").
shlibext="$shlibext"
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist.
hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
diff --git a/config.sub b/config.sub
index ae0b3dd..2a55a50 100644
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-# Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
-timestamp='2006-07-02'
+timestamp='2009-11-20'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2006-07-02'
# Please send patches to <config-patches at gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
@@ -72,8 +75,8 @@ Report bugs and patches to <config-patches at gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -122,6 +125,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -148,10 +152,13 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray)
+ -apple | -axis | -knuth | -cray | -microblaze)
os=
basic_machine=$1
;;
+ -bluegene*)
+ os=-cnk
+ ;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
@@ -244,18 +251,21 @@ case $basic_machine in
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| bfin \
| c4x | clipper \
- | d10v | d30v | dlx | dsp16xx | dvp \
- | fr30 | frv \
+ | d10v | d30v | dlx | dsp16xx \
+ | fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore \
+ | maxq | mb | microblaze | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
- | mips64vr | mips64vrel \
+ | mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
@@ -268,6 +278,7 @@ case $basic_machine in
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | moxie \
| mt \
| msp430 \
| nios | nios2 \
@@ -276,19 +287,22 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh[24]a | sh[24]a*eb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ | rx \
+ | score \
+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu | strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
+ | ubicom32 \
| v850 | v850e \
| we32k \
- | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
- | z8k)
+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k | z80)
basic_machine=$basic_machine-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12)
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
os=-none
@@ -323,19 +337,22 @@ case $basic_machine in
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
- | mips64vr-* | mips64vrel-* \
+ | mips64octeon-* | mips64octeonel-* \
| mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
@@ -356,21 +373,26 @@ case $basic_machine in
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]a*eb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ | romp-* | rs6000-* | rx-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
| tron-* \
+ | ubicom32-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
- | xstormy16-* | xtensa-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa*-* \
| ymp-* \
- | z8k-*)
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
@@ -434,6 +456,10 @@ case $basic_machine in
basic_machine=m68k-apollo
os=-bsd
;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
aux)
basic_machine=m68k-apple
os=-aux
@@ -442,10 +468,26 @@ case $basic_machine in
basic_machine=ns32k-sequent
os=-dynix
;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
c90)
basic_machine=c90-cray
os=-unicos
;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
convex-c1)
basic_machine=c1-convex
os=-bsd
@@ -474,8 +516,8 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16c)
- basic_machine=cr16c-unknown
+ cr16)
+ basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
@@ -513,6 +555,10 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
@@ -667,6 +713,14 @@ case $basic_machine in
basic_machine=m68k-isi
os=-sysv
;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
m88k-omron*)
basic_machine=m88k-omron
;;
@@ -678,10 +732,17 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
mingw32)
basic_machine=i386-pc
os=-mingw32
;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
miniframe)
basic_machine=m68000-convergent
;;
@@ -689,24 +750,6 @@ case $basic_machine in
basic_machine=m68k-atari
os=-mint
;;
- mipsEE* | ee | ps2)
- basic_machine=mips64r5900el-scei
- case $os in
- -linux*)
- ;;
- *)
- os=-elf
- ;;
- esac
- ;;
- iop)
- basic_machine=mipsel-scei
- os=-irx
- ;;
- dvp)
- basic_machine=dvp-scei
- os=-elf
- ;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
@@ -826,6 +869,14 @@ case $basic_machine in
basic_machine=i860-intel
os=-osf
;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
pbd)
basic_machine=sparc-tti
;;
@@ -927,6 +978,10 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
sei)
basic_machine=mips-sei
os=-seiux
@@ -938,6 +993,9 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
sh64)
basic_machine=sh64-unknown
;;
@@ -1027,6 +1085,10 @@ case $basic_machine in
basic_machine=tic6x-unknown
os=-coff
;;
+ tile*)
+ basic_machine=tile-unknown
+ os=-linux-gnu
+ ;;
tx39)
basic_machine=mipstx39-unknown
;;
@@ -1102,6 +1164,10 @@ case $basic_machine in
basic_machine=z8k-unknown
os=-sim
;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
none)
basic_machine=none-none
os=-none
@@ -1140,7 +1206,7 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1190,6 +1256,9 @@ case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
+ -auroraux)
+ os=-auroraux
+ ;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
@@ -1210,10 +1279,11 @@ case $os in
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+ | -sym* | -kopensolaris* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
+ | -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1222,7 +1292,7 @@ case $os in
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1232,7 +1302,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -irx*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1362,6 +1432,9 @@ case $os in
-zvmoe)
os=-zvmoe
;;
+ -dicos*)
+ os=-dicos
+ ;;
-none)
;;
*)
@@ -1384,6 +1457,9 @@ else
# system, and we'll never get to this point.
case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
spu-*)
os=-elf
;;
@@ -1424,6 +1500,9 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
+ mep-*)
+ os=-elf
+ ;;
mips*-cisco)
os=-elf
;;
@@ -1553,7 +1632,7 @@ case $basic_machine in
-sunos*)
vendor=sun
;;
- -aix*)
+ -cnk*|-aix*)
vendor=ibm
;;
-beos*)
diff --git a/configure b/configure
index d38343a..b5bb25a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for audacious 2.5.0.
+# Generated by GNU Autoconf 2.68 for audacious 3.2.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -11,7 +11,7 @@
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
#
-# (C) 2005-2011 Audacious Team
+# (C) 2005-2012 Audacious Team
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
@@ -559,8 +559,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='audacious'
PACKAGE_TARNAME='audacious'
-PACKAGE_VERSION='2.5.0'
-PACKAGE_STRING='audacious 2.5.0'
+PACKAGE_VERSION='3.2'
+PACKAGE_STRING='audacious 3.2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -614,11 +614,6 @@ INPUT_PLUGIN_DIR
TRANSPORT_PLUGIN_DIR
pluginsubs
plugindir
-HAVE_SUN
-HAVE_SOLARIS
-USE_X86ASM
-ARCH_X86
-ARCH_DEFINES
USE_EGGSM
GLIB214_LIBS
GLIB214_CFLAGS
@@ -634,7 +629,6 @@ LIBPCRE_LIBS
LIBPCRE_CFLAGS
USE_DBUS
LIBAUDCLIENT_LDFLAGS
-DBUS_SERVICES_DIR
GLIB_GENMARSHAL
DBUS_BINDING_TOOL
DBUS_LIBS
@@ -642,47 +636,10 @@ DBUS_CFLAGS
USE_CHARDET
LIBGUESS_LIBS
LIBGUESS_CFLAGS
-AUDLDFLAGS
AUDACIOUS_PATH
-SIMD_CFLAGS
-LIBMCS_LIBS
-LIBMCS_CFLAGS
-MOWGLI_LIBS
-MOWGLI_CFLAGS
-CAIRO_LIBS
-CAIRO_CFLAGS
-PANGO_LIBS
-PANGO_CFLAGS
GTK_LIBS
GTK_CFLAGS
-GTHREAD_LIBS
-GTHREAD_CFLAGS
-PC_REQUIRES
-GLIB_LIBS
-GLIB_CFLAGS
-RANLIB
-TR
-AR
-CP
-MV
-RM
-LN_S
-am__fastdepCCAS_FALSE
-am__fastdepCCAS_TRUE
-CCASDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-am__leading_dot
-CCASFLAGS
-CCAS
-ac_ct_CXX
-CXXFLAGS
-CXX
-MAKE
+HAVE_MSWINDOWS
POSUB
LTLIBINTL
LIBINTL
@@ -705,9 +662,7 @@ MKDIR_P
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
-SET_MAKE
-SHARED_SUFFIX
-IMPLIB_LIBS
+BIGENDIAN
CLEAN_LIB
UNINSTALL_LIB
INSTALL_LIB
@@ -719,8 +674,6 @@ LIB_SUFFIX
LIB_PREFIX
LIB_LDFLAGS
LIB_CFLAGS
-PROG_IMPLIB_LDFLAGS
-PROG_IMPLIB_NEEDED
TERM_SETAF6
TERM_SETAF4
TERM_SETAF3
@@ -730,14 +683,46 @@ TERM_BOLD
TERM_SGR0
TERM_EL
TPUT
-VERSION
-PACKAGE
+CAIRO_LIBS
+CAIRO_CFLAGS
+PANGO_LIBS
+PANGO_CFLAGS
+GTHREAD_LIBS
+GTHREAD_CFLAGS
+GLIB_LIBS
+GLIB_CFLAGS
PKG_CONFIG_LIBDIR
PKG_CONFIG_PATH
PKG_CONFIG
+WINDRES
+RANLIB
+TR
+AR
+CP
+MV
+RM
+SET_MAKE
+LN_S
+MAKE
EGREP
GREP
CPP
+am__fastdepCCAS_FALSE
+am__fastdepCCAS_TRUE
+CCASDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+am__leading_dot
+CCASFLAGS
+CCAS
+ac_ct_CXX
+CXXFLAGS
+CXX
OBJEXT
EXEEXT
ac_ct_CC
@@ -757,6 +742,8 @@ build_os
build_vendor
build_cpu
build
+VERSION
+PACKAGE
target_alias
host_alias
build_alias
@@ -798,17 +785,16 @@ SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
-with_buildstamp
-enable_text_console
+enable_dependency_tracking
+enable_largefile
enable_nls
with_gnu_ld
enable_rpath
with_libiconv_prefix
with_libintl_prefix
+with_buildstamp
+enable_text_console
enable_gtk3
-enable_dependency_tracking
-enable_sse2
-enable_altivec
enable_user_plugin_dir
enable_chardet
enable_dbus
@@ -823,29 +809,25 @@ CFLAGS
LDFLAGS
LIBS
CPPFLAGS
-CPP
-PKG_CONFIG
-PKG_CONFIG_PATH
-PKG_CONFIG_LIBDIR
CXX
CXXFLAGS
CCC
CCAS
CCASFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
GLIB_CFLAGS
GLIB_LIBS
GTHREAD_CFLAGS
GTHREAD_LIBS
-GTK_CFLAGS
-GTK_LIBS
PANGO_CFLAGS
PANGO_LIBS
CAIRO_CFLAGS
CAIRO_LIBS
-MOWGLI_CFLAGS
-MOWGLI_LIBS
-LIBMCS_CFLAGS
-LIBMCS_LIBS
+GTK_CFLAGS
+GTK_LIBS
LIBGUESS_CFLAGS
LIBGUESS_LIBS
DBUS_CFLAGS
@@ -1400,7 +1382,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures audacious 2.5.0 to adapt to many kinds of systems.
+\`configure' configures audacious 3.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1466,7 +1448,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of audacious 2.5.0:";;
+ short | recursive ) echo "Configuration of audacious 3.2:";;
esac
cat <<\_ACEOF
@@ -1474,14 +1456,13 @@ Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-text-console Enable text console for MS-Windows hosts
- --disable-nls do not use Native Language Support
- --disable-rpath do not hardcode runtime library paths
- --enable-gtk3 Use GTK3 instead of GTK2
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
- --disable-sse2 Disable SSE2 support (def: enabled)
- --disable-altivec Disable AltiVec support (def: enabled)
+ --disable-largefile omit support for large files
+ --disable-nls do not use Native Language Support
+ --disable-rpath do not hardcode runtime library paths
+ --enable-text-console Enable text console for MS-Windows hosts
+ --disable-gtk3 Use GTK2 even if GTK3 is present
--disable-user-plugin-dir
Disable per-user plugin dir (def: enabled)
--disable-rpath Disable disable rpath (def: enabled)
@@ -1492,12 +1473,12 @@ Optional Features:
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-buildstamp=XXX Set build stamp to XXX
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
--with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
--without-libintl-prefix don't search for libintl in includedir and libdir
+ --with-buildstamp=XXX Set build stamp to XXX
--with-regexlib=gnu/oniguruma/pcre
Use the chosen regex library (def: gnu)
@@ -1509,36 +1490,30 @@ Some influential environment variables:
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ CCAS assembler compiler command (defaults to CC)
+ CCASFLAGS assembler compiler flags (defaults to CFLAGS)
CPP C preprocessor
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CCAS assembler compiler command (defaults to CC)
- CCASFLAGS assembler compiler flags (defaults to CFLAGS)
GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
GLIB_LIBS linker flags for GLIB, overriding pkg-config
GTHREAD_CFLAGS
C compiler flags for GTHREAD, overriding pkg-config
GTHREAD_LIBS
linker flags for GTHREAD, overriding pkg-config
- GTK_CFLAGS C compiler flags for GTK, overriding pkg-config
- GTK_LIBS linker flags for GTK, overriding pkg-config
PANGO_CFLAGS
C compiler flags for PANGO, overriding pkg-config
PANGO_LIBS linker flags for PANGO, overriding pkg-config
CAIRO_CFLAGS
C compiler flags for CAIRO, overriding pkg-config
CAIRO_LIBS linker flags for CAIRO, overriding pkg-config
- MOWGLI_CFLAGS
- C compiler flags for MOWGLI, overriding pkg-config
- MOWGLI_LIBS linker flags for MOWGLI, overriding pkg-config
- LIBMCS_CFLAGS
- C compiler flags for LIBMCS, overriding pkg-config
- LIBMCS_LIBS linker flags for LIBMCS, overriding pkg-config
+ GTK_CFLAGS C compiler flags for GTK, overriding pkg-config
+ GTK_LIBS linker flags for GTK, overriding pkg-config
LIBGUESS_CFLAGS
C compiler flags for LIBGUESS, overriding pkg-config
LIBGUESS_LIBS
@@ -1624,14 +1599,14 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-audacious configure 2.5.0
+audacious configure 3.2
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
-(C) 2005-2011 Audacious Team
+(C) 2005-2012 Audacious Team
_ACEOF
exit
fi
@@ -1678,6 +1653,86 @@ fi
} # ac_fn_c_try_compile
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
@@ -1715,6 +1770,37 @@ fi
} # ac_fn_c_try_cpp
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -1802,13 +1888,13 @@ fi
} # ac_fn_c_check_header_mongrel
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -1816,97 +1902,24 @@ case "(($ac_try" in
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
+ (eval "$ac_link") 2>conftest.err
ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then :
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
ac_retval=0
else
- $as_echo "$as_me: program exited with status $ac_status" >&5
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=$ac_status
-fi
- rm -rf conftest.dSYM conftest_ipa8_conftest.oo
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- eval "$3=yes"
-else
- eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext conftest$ac_exeext
- if { { ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_link") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest$ac_exeext && {
- test "$cross_compiling" = yes ||
- $as_test_x conftest$ac_exeext
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
+ $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
@@ -1921,44 +1934,6 @@ fi
} # ac_fn_c_try_link
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- rm -f conftest.$ac_objext
- if { { ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compile") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && {
- test -z "$ac_cxx_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
@@ -2029,7 +2004,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by audacious $as_me 2.5.0, which was
+It was created by audacious $as_me 3.2, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2379,6 +2354,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+PACKAGE=audacious
+
+VERSION=3.2
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
@@ -2518,6 +2509,9 @@ test -n "$target_alias" &&
test "$program_prefix$program_suffix$program_transform_name" = \
NONENONEs,x,x, &&
program_prefix=${target_alias}-
+ac_config_headers="$ac_config_headers config.h"
+
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3308,436 +3302,222 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
$as_echo_n "(cached) " >&6
else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-else
- # Broken: fails on valid input.
-continue
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
- done
- ac_cv_prog_CPP=$CPP
+ test -n "$CXX" && break
+ done
fi
- CPP=$ac_cv_prog_CPP
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
else
- ac_cv_path_GREP=$GREP
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
+ test -n "$ac_ct_CXX" && break
+done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
esac
-
- $ac_path_EGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ CXX=$ac_ct_CXX
fi
-else
- ac_cv_path_EGREP=$EGREP
fi
- fi
+ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
int
main ()
{
+#ifndef __GNUC__
+ choke me
+#endif
;
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
else
- ac_cv_header_stdc=no
+ ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
+ GXX=
fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
int
main ()
{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
+
+ ;
return 0;
}
_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
-fi
+int
+main ()
+{
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ ;
+ return 0;
+}
_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
-fi
-
-done
-
-
-
- ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
- MINIX=yes
-else
- MINIX=
-fi
-
-
- if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
- fi
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
- $as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-# define __EXTENSIONS__ 1
- $ac_includes_default
int
main ()
{
@@ -3746,733 +3526,1083 @@ main ()
return 0;
}
_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_safe_to_define___extensions__=yes
-else
- ac_cv_safe_to_define___extensions__=no
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
- test $ac_cv_safe_to_define___extensions__ = yes &&
- $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
- $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+DEPDIR="${am__leading_dot}deps"
- $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+ac_config_commands="$ac_config_commands depfiles"
- $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
- $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
-ac_config_headers="$ac_config_headers config.h"
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+# By default we simply use the C compiler to build assembly code.
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+depcc="$CCAS" am_compiler_list=
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
- ac_pt_PKG_CONFIG=$PKG_CONFIG
- # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $ac_pt_PKG_CONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
+ am_cv_CCAS_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
-done
- done
-IFS=$as_save_IFS
+ am__universal=false
- ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "x$ac_pt_PKG_CONFIG" = x; then
- PKG_CONFIG=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- PKG_CONFIG=$ac_pt_PKG_CONFIG
- fi
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CCAS_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
else
- PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+ am_cv_CCAS_dependencies_compiler_type=none
fi
fi
-if test -n "$PKG_CONFIG"; then
- _pkg_min_version=0.9.0
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
- if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- PKG_CONFIG=""
- fi
-fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
+CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
-if test -d "/usr/X11R6/include"; then
- CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
+ am__fastdepCCAS_TRUE=
+ am__fastdepCCAS_FALSE='#'
+else
+ am__fastdepCCAS_TRUE='#'
+ am__fastdepCCAS_FALSE=
fi
-PACKAGE=audacious
-
-VERSION=2.5.0
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+ done
+ ac_cv_prog_CPP=$CPP
- # Extract the first word of "tput", so it can be a program name with args.
-set dummy tput; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TPUT+:} false; then :
- $as_echo_n "(cached) " >&6
+fi
+ CPP=$ac_cv_prog_CPP
else
- case $TPUT in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TPUT="$TPUT" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_TPUT="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
- ;;
-esac
-fi
-TPUT=$ac_cv_path_TPUT
-if test -n "$TPUT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TPUT" >&5
-$as_echo "$TPUT" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ # Broken: fails on valid input.
+continue
fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
- if test x"$TPUT" != x""; then :
-
- if x=$($TPUT el 2>/dev/null); then
- TERM_EL="$x"
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
- else
- TERM_EL="$($TPUT ce 2>/dev/null)"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
- fi
- if x=$($TPUT sgr0 2>/dev/null); then
- TERM_SGR0="$x"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
- else
- TERM_SGR0="$($TPUT me 2>/dev/null)"
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
- fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
- if x=$($TPUT bold 2>/dev/null); then
- TERM_BOLD="$x"
- else
- TERM_BOLD="$($TPUT md 2>/dev/null)"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
- fi
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
- if x=$($TPUT setaf 1 2>/dev/null); then
- TERM_SETAF1="$x"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
- TERM_SETAF2="$($TPUT setaf 2 2>/dev/null)"
- TERM_SETAF3="$($TPUT setaf 3 2>/dev/null)"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
- TERM_SETAF4="$($TPUT setaf 4 2>/dev/null)"
+int
+main ()
+{
- TERM_SETAF6="$($TPUT setaf 6 2>/dev/null)"
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- else
- TERM_SETAF1="$($TPUT AF 1 2>/dev/null)"
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
- TERM_SETAF2="$($TPUT AF 2 2>/dev/null)"
-
- TERM_SETAF3="$($TPUT AF 3 2>/dev/null)"
-
- TERM_SETAF4="$($TPUT AF 4 2>/dev/null)"
-
- TERM_SETAF6="$($TPUT AF 6 2>/dev/null)"
-
- fi
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
else
-
- TERM_EL='\033\133K'
-
- TERM_SGR0='\033\133m'
-
- TERM_BOLD='\033\1331m'
-
- TERM_SETAF1='\033\13331m'
-
- TERM_SETAF2='\033\13332m'
-
- TERM_SETAF3='\033\13333m'
-
- TERM_SETAF4='\033\13334m'
-
- TERM_SETAF6='\033\13336m'
-
-
+ ac_cv_header_stdc=no
fi
+rm -f conftest*
+fi
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need an implib" >&5
-$as_echo_n "checking whether we need an implib... " >&6; }
- case "$host_os" in
- cygwin* | mingw*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- PROG_IMPLIB_NEEDED='yes'
- PROG_IMPLIB_LDFLAGS='-Wl,-export-all-symbols,--out-implib,lib${PROG}.a'
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- PROG_IMPLIB_NEEDED='no'
- PROG_IMPLIB_LDFLAGS=''
- ;;
- esac
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library system" >&5
-$as_echo_n "checking for shared library system... " >&6; }
- case "$host_os" in
- darwin*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
-$as_echo "Darwin" >&6; }
- LIB_CFLAGS='-fPIC -DPIC'
- LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
- LIB_PREFIX='lib'
- LIB_SUFFIX='.dylib'
- LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
- PLUGIN_CFLAGS='-fPIC -DPIC'
- PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
- PLUGIN_SUFFIX='.impl'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
- CLEAN_LIB=''
- ;;
- solaris*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris" >&5
-$as_echo "Solaris" >&6; }
- LIB_CFLAGS='-fPIC -DPIC'
- LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}.${LIB_MINOR}'
- LIB_PREFIX='lib'
- LIB_SUFFIX='.so'
- LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
- PLUGIN_CFLAGS='-fPIC -DPIC'
- PLUGIN_LDFLAGS='-shared'
- PLUGIN_SUFFIX='.so'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
- CLEAN_LIB=''
- ;;
- openbsd* | mirbsd*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: OpenBSD" >&5
-$as_echo "OpenBSD" >&6; }
- LIB_CFLAGS='-fPIC -DPIC'
- LIB_LDFLAGS='-shared'
- LIB_PREFIX='lib'
- LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
- LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
- PLUGIN_CFLAGS='-fPIC -DPIC'
- PLUGIN_LDFLAGS='-shared'
- PLUGIN_SUFFIX='.so'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
- CLEAN_LIB=''
- ;;
- cygwin* | mingw*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Win32" >&5
-$as_echo "Win32" >&6; }
- LIB_CFLAGS=''
- LIB_LDFLAGS='-shared -Wl,--out-implib,${LIB}.a'
- LIB_PREFIX='lib'
- LIB_SUFFIX='.dll'
- LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
- PLUGIN_CFLAGS=''
- PLUGIN_LDFLAGS='-shared'
- PLUGIN_SUFFIX='.dll'
- INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
- UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
- CLEAN_LIB='${LIB}.a'
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: GNU" >&5
-$as_echo "GNU" >&6; }
- LIB_CFLAGS='-fPIC -DPIC'
- LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}'
- LIB_PREFIX='lib'
- LIB_SUFFIX='.so'
- LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
- PLUGIN_CFLAGS='-fPIC -DPIC'
- PLUGIN_LDFLAGS='-shared'
- PLUGIN_SUFFIX='.so'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
- CLEAN_LIB=''
- ;;
- esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-IMPLIB_LIBS=""
-
-
-
-
-# Check whether --with-buildstamp was given.
-if test "${with_buildstamp+set}" = set; then :
- withval=$with_buildstamp;
-cat >>confdefs.h <<_ACEOF
-#define BUILDSTAMP "$withval"
_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
else
-
-cat >>confdefs.h <<_ACEOF
-#define BUILDSTAMP "UNSUPPORTED VERSION"
-_ACEOF
-
+ ac_cv_header_stdc=no
fi
+rm -f conftest*
+fi
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
-CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
-# Check whether --enable-text-console was given.
-if test "${enable_text_console+set}" = set; then :
- enableval=$enable_text_console; use_text_console=$withval
else
- use_text_console=no
-
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
-SHARED_SUFFIX="$PLUGIN_SUFFIX"
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+fi
-cat >>confdefs.h <<_ACEOF
-#define SHARED_SUFFIX "${SHARED_SUFFIX}"
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
+fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows or Macintosh" >&5
-$as_echo_n "checking for Windows or Macintosh... " >&6; }
-case "$target" in
- *mingw*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Windows" >&5
-$as_echo "Windows" >&6; }
- if test "x$use_text_console" = "xno"; then
- LDFLAGS="$LDFLAGS -Wl,-subsystem,windows"
- fi
- ;;
- *apple*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: Macintosh" >&5
-$as_echo "Macintosh" >&6; }
- LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Carbon"
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
-esac
+done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
- *)
- eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
- done
-IFS=$as_save_IFS
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
-rm -rf conftest.one conftest.two conftest.dir
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
+ ac_cv_c_bigendian=no
fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
- [\\/$]* | ?:[\\/]*) ;;
- */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
-$as_echo_n "checking whether NLS is requested... " >&6; }
- # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then :
- enableval=$enable_nls; USE_NLS=$enableval
-else
- USE_NLS=yes
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+ no)
+ ;; #(
+ universal)
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
- GETTEXT_MACRO_VERSION=0.18
+ ;; #(
+ *)
+ as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+if test "$enable_largefile" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- ac_executable_p="test -f"
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
fi
-rm -f conf$$.file
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
-# Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGFMT+:} false; then :
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
$as_echo_n "(cached) " >&6
else
- case "$MSGFMT" in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
- ;;
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
*)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- echo "$as_me: trying $ac_dir/$ac_word..." >&5
- if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
- test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
- ;;
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
-$as_echo "$MSGFMT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+rm -rf conftest*
+ fi
fi
- # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GMSGFMT+:} false; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $GMSGFMT in
+ case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
- ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4482,7 +4612,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -4490,2237 +4620,985 @@ done
done
IFS=$as_save_IFS
- test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
;;
esac
fi
-GMSGFMT=$ac_cv_path_GMSGFMT
-if test -n "$GMSGFMT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
-$as_echo "$GMSGFMT" >&6; }
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-
- case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
- *) MSGFMT_015=$MSGFMT ;;
- esac
-
- case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
- *) GMSGFMT_015=$GMSGFMT ;;
- esac
-
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
fi
-rm -f conf$$.file
-
-# Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XGETTEXT+:} false; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
- case "$XGETTEXT" in
+ case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
- ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
- ;;
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
*)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- echo "$as_me: trying $ac_dir/$ac_word..." >&5
- if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
- test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
- ;;
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
esac
fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
-$as_echo "$XGETTEXT" >&6; }
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- rm -f messages.po
-
- case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
- '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
- *) XGETTEXT_015=$XGETTEXT ;;
- esac
-
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
else
- PATH_SEPARATOR=:
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
- rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
else
- ac_executable_p="test -f"
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
-rm -f conf$$.file
-# Extract the first word of "msgmerge", so it can be a program name with args.
-set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGMERGE+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case "$MSGMERGE" in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- echo "$as_me: trying $ac_dir/$ac_word..." >&5
- if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
- ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
- test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
- ;;
-esac
fi
-MSGMERGE="$ac_cv_path_MSGMERGE"
-if test "$MSGMERGE" != ":"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
-$as_echo "$MSGMERGE" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
fi
- test -n "$localedir" || localedir='${datadir}/locale'
- test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
- ac_config_commands="$ac_config_commands po-directories"
+if test "x$GCC" = "xyes"; then
+ CFLAGS="$CFLAGS -std=gnu99 -Wall -pipe"
+ CXXFLAGS="$CXXFLAGS -Wall -pipe"
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C/C++ compiler supports -Wtype-limits" >&5
+$as_echo_n "checking whether the C/C++ compiler supports -Wtype-limits... " >&6; }
+ OLDCFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Wtype-limits -Werror"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ CFLAGS="$OLDCFLAGS -Wtype-limits"
+ CXXFLAGS="$CXXFLAGS -Wtype-limits"
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
else
- with_gnu_ld=no
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$OLDCFLAGS"
+
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
fi
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
-$as_echo_n "checking for ld used by GCC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | [A-Za-z]:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${acl_cv_path_LD+:} false; then :
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Linux" >&5
+$as_echo_n "checking for Linux... " >&6; }
+case "$target" in
+ *linux*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ LDFLAGS="$LDFLAGS -Wl,-z,defs"
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
+$as_echo_n "checking for GNU make... " >&6; }
+if ${_cv_gnu_make_command+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break ;;
- *)
- test "$with_gnu_ld" != yes && break ;;
- esac
+
+ _cv_gnu_make_command=""
+ for a in "$MAKE" make gmake gnumake; do
+ test "x$a" = "x" && continue
+ if ( sh -c "$a --version" 2>/dev/null | grep "GNU Make" >/dev/null ) ; then
+ _cv_gnu_make_command="$a"
+ break
+ fi
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5
+$as_echo "$_cv_gnu_make_command" >&6; }
+ if test "x$_cv_gnu_make_command" != "x" ; then
+ MAKE="$_cv_gnu_make_command"
+ else
+ as_fn_error $? "** GNU make not found. If it is installed, try setting MAKE environment variable. **" "$LINENO" 5
fi
- done
- IFS="$ac_save_ifs"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
fi
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${acl_cv_prog_gnu_ld+:} false; then :
+
+# Extract the first word of "rm", so it can be a program name with args.
+set dummy rm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RM+:} false; then :
$as_echo_n "(cached) " >&6
else
- # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- acl_cv_prog_gnu_ld=yes ;;
-*)
- acl_cv_prog_gnu_ld=no ;;
+ case $RM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RM="$RM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
-$as_echo "$acl_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$acl_cv_prog_gnu_ld
-
-
+RM=$ac_cv_path_RM
+if test -n "$RM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
+$as_echo "$RM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
-$as_echo_n "checking for shared library run path origin... " >&6; }
-if ${acl_cv_rpath+:} false; then :
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
$as_echo_n "(cached) " >&6
else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
-
+ ;;
+esac
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
-$as_echo "$acl_cv_rpath" >&6; }
- wl="$acl_cv_wl"
- acl_libext="$acl_cv_libext"
- acl_shlibext="$acl_cv_shlibext"
- acl_libname_spec="$acl_cv_libname_spec"
- acl_library_names_spec="$acl_cv_library_names_spec"
- acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- acl_hardcode_direct="$acl_cv_hardcode_direct"
- acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
- # Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
- enableval=$enable_rpath; :
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
else
- enable_rpath=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-
-
- acl_libdirstem=lib
- acl_libdirstem2=
- case "$host_os" in
- solaris*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
-$as_echo_n "checking for 64-bit host... " >&6; }
-if ${gl_cv_solaris_64bit+:} false; then :
+# Extract the first word of "cp", so it can be a program name with args.
+set dummy cp; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CP+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifdef _LP64
-sixtyfour bits
-#endif
+ case $CP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CP="$CP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
- gl_cv_solaris_64bit=yes
-else
- gl_cv_solaris_64bit=no
+ ;;
+esac
fi
-rm -f conftest*
-
-
+CP=$ac_cv_path_CP
+if test -n "$CP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
+$as_echo "$CP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
-$as_echo "$gl_cv_solaris_64bit" >&6; }
- if test $gl_cv_solaris_64bit = yes; then
- acl_libdirstem=lib/64
- case "$host_cpu" in
- sparc*) acl_libdirstem2=lib/sparcv9 ;;
- i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
- esac
- fi
- ;;
- *)
- searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
- if test -n "$searchpath"; then
- acl_save_IFS="${IFS= }"; IFS=":"
- for searchdir in $searchpath; do
- if test -d "$searchdir"; then
- case "$searchdir" in
- */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
- */../ | */.. )
- # Better ignore directories of this form. They are misleading.
- ;;
- *) searchdir=`cd "$searchdir" && pwd`
- case "$searchdir" in
- */lib64 ) acl_libdirstem=lib64 ;;
- esac ;;
- esac
- fi
- done
- IFS="$acl_save_IFS"
- fi
- ;;
- esac
- test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+# Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $AR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_AR="$AR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+ ;;
+esac
+fi
+AR=$ac_cv_path_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+# Extract the first word of "tr", so it can be a program name with args.
+set dummy tr; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TR="$TR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+ ;;
+esac
+fi
+TR=$ac_cv_path_TR
+if test -n "$TR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
+$as_echo "$TR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $RANLIB in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+ ;;
+esac
+fi
+RANLIB=$ac_cv_path_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+# Extract the first word of "windres", so it can be a program name with args.
+set dummy windres; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WINDRES+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WINDRES in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WINDRES="$WINDRES" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_WINDRES="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- use_additional=yes
+ ;;
+esac
+fi
+WINDRES=$ac_cv_path_WINDRES
+if test -n "$WINDRES"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
+$as_echo "$WINDRES" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-# Check whether --with-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then :
- withval=$with_libiconv_prefix;
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
+$as_echo_n "checking for GLIB... " >&6; }
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
+if test -n "$GLIB_CFLAGS"; then
+ pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.16" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GLIB_LIBS"; then
+ pkg_cv_GLIB_LIBS="$GLIB_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.16" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/$acl_libdirstem"
- if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
- additional_libdir="$withval/$acl_libdirstem2"
- fi
- fi
- fi
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
fi
-
- LIBICONV=
- LTLIBICONV=
- INCICONV=
- LIBICONV_PREFIX=
- HAVE_LIBICONV=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='iconv '
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
- else
- :
- fi
- else
- found_dir=
- found_la=
- found_so=
- found_a=
- eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
- if test -n "$acl_shlibext"; then
- shrext=".$acl_shlibext" # typically: shrext=.so
- else
- shrext=
- fi
- if test $use_additional = yes; then
- dir="$additional_libdir"
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
- fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
- found_dir="$dir"
- found_so="$dir/$f"
- break
- fi
- done
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
- fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
- found_dir="$dir"
- found_so="$dir/$f"
- break
- fi
- done
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- if test "$enable_rpath" = no \
- || test "X$found_dir" = "X/usr/$acl_libdirstem" \
- || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- if test "$acl_hardcode_direct" = yes; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- haveit=
- for x in $LDFLAGS $LIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
- fi
- if test "$acl_hardcode_minus_L" != no; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
- fi
- fi
- additional_includedir=
- case "$found_dir" in
- */$acl_libdirstem | */$acl_libdirstem/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
- if test "$name" = 'iconv'; then
- LIBICONV_PREFIX="$basedir"
- fi
- additional_includedir="$basedir/include"
- ;;
- */$acl_libdirstem2 | */$acl_libdirstem2/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
- if test "$name" = 'iconv'; then
- LIBICONV_PREFIX="$basedir"
- fi
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INCICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- if test -n "$found_la"; then
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
- && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
- || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIBICONV; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -R*)
- dir=`echo "X$dep" | sed -e 's/^X-R//'`
- if test "$enable_rpath" != no; then
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $dir"
- fi
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $dir"
- fi
- fi
- ;;
- -l*)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
- ;;
- esac
- done
- fi
- else
- LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$acl_hardcode_libdir_separator"; then
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
- else
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- for found_dir in $ltrpathdirs; do
- LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
- done
- fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
-$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <CoreFoundation/CFPreferences.h>
-int
-main ()
-{
-CFPreferencesCopyAppValue(NULL, NULL)
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- gt_cv_func_CFPreferencesCopyAppValue=yes
-else
- gt_cv_func_CFPreferencesCopyAppValue=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
-$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
- if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-
-$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
-
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
-$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <CoreFoundation/CFLocale.h>
-int
-main ()
-{
-CFLocaleCopyCurrent();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- gt_cv_func_CFLocaleCopyCurrent=yes
-else
- gt_cv_func_CFLocaleCopyCurrent=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
-$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
- if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-
-$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
-
- fi
- INTL_MACOSX_LIBS=
- if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
- INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
- fi
-
-
-
-
-
-
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- case " $gt_needs " in
- *" need-formatstring-macros "*) gt_api_version=3 ;;
- *" need-ngettext "*) gt_api_version=2 ;;
- *) gt_api_version=1 ;;
- esac
- gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
- gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
-
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
-
-
- if test $gt_api_version -ge 3; then
- gt_revision_test_code='
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-'
- else
- gt_revision_test_code=
- fi
- if test $gt_api_version -ge 2; then
- gt_expression_test_code=' + * ngettext ("", "", 0)'
- else
- gt_expression_test_code=
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
-$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if eval \${$gt_func_gnugettext_libc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <libintl.h>
-$gt_revision_test_code
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$gt_func_gnugettext_libc=yes"
-else
- eval "$gt_func_gnugettext_libc=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$gt_func_gnugettext_libc
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
-
-
-
-
-
- am_save_CPPFLAGS="$CPPFLAGS"
-
- for element in $INCICONV; do
- haveit=
- for x in $CPPFLAGS; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
- fi
- done
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
-$as_echo_n "checking for iconv... " >&6; }
-if ${am_cv_func_iconv+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- am_cv_func_iconv=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LIBS="$am_save_LIBS"
- fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
-$as_echo "$am_cv_func_iconv" >&6; }
- if test "$am_cv_func_iconv" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
-$as_echo_n "checking for working iconv... " >&6; }
-if ${am_cv_func_iconv_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- am_save_LIBS="$LIBS"
- if test $am_cv_lib_iconv = yes; then
- LIBS="$LIBS $LIBICONV"
- fi
- if test "$cross_compiling" = yes; then :
- case "$host_os" in
- aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
- *) am_cv_func_iconv_works="guessing yes" ;;
- esac
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <iconv.h>
-#include <string.h>
-int main ()
-{
- /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
- returns. */
- {
- iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
- if (cd_utf8_to_88591 != (iconv_t)(-1))
- {
- static const char input[] = "\342\202\254"; /* EURO SIGN */
- char buf[10];
- const char *inptr = input;
- size_t inbytesleft = strlen (input);
- char *outptr = buf;
- size_t outbytesleft = sizeof (buf);
- size_t res = iconv (cd_utf8_to_88591,
- (char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (res == 0)
- return 1;
- }
- }
- /* Test against Solaris 10 bug: Failures are not distinguishable from
- successful returns. */
- {
- iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
- if (cd_ascii_to_88591 != (iconv_t)(-1))
- {
- static const char input[] = "\263";
- char buf[10];
- const char *inptr = input;
- size_t inbytesleft = strlen (input);
- char *outptr = buf;
- size_t outbytesleft = sizeof (buf);
- size_t res = iconv (cd_ascii_to_88591,
- (char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if (res == 0)
- return 1;
- }
- }
-#if 0 /* This bug could be worked around by the caller. */
- /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
- {
- iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
- if (cd_88591_to_utf8 != (iconv_t)(-1))
- {
- static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
- char buf[50];
- const char *inptr = input;
- size_t inbytesleft = strlen (input);
- char *outptr = buf;
- size_t outbytesleft = sizeof (buf);
- size_t res = iconv (cd_88591_to_utf8,
- (char **) &inptr, &inbytesleft,
- &outptr, &outbytesleft);
- if ((int)res > 0)
- return 1;
- }
- }
-#endif
- /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
- provided. */
- if (/* Try standardized names. */
- iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
- /* Try IRIX, OSF/1 names. */
- && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
- /* Try AIX names. */
- && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
- return 1;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- am_cv_func_iconv_works=yes
-else
- am_cv_func_iconv_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
- LIBS="$am_save_LIBS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
-$as_echo "$am_cv_func_iconv_works" >&6; }
- case "$am_cv_func_iconv_works" in
- *no) am_func_iconv=no am_cv_lib_iconv=no ;;
- *) am_func_iconv=yes ;;
- esac
- else
- am_func_iconv=no am_cv_lib_iconv=no
- fi
- if test "$am_func_iconv" = yes; then
-
-$as_echo "#define HAVE_ICONV 1" >>confdefs.h
-
- fi
- if test "$am_cv_lib_iconv" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
-$as_echo_n "checking how to link with libiconv... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
-$as_echo "$LIBICONV" >&6; }
- else
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
-
-
-
-
-
-
-
-
-
-
-
- use_additional=yes
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
-
-# Check whether --with-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then :
- withval=$with_libintl_prefix;
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
-
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
-
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/$acl_libdirstem"
- if test "$acl_libdirstem2" != "$acl_libdirstem" \
- && ! test -d "$withval/$acl_libdirstem"; then
- additional_libdir="$withval/$acl_libdirstem2"
- fi
- fi
- fi
-
-fi
-
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- LIBINTL_PREFIX=
- HAVE_LIBINTL=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='intl '
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
- else
- :
- fi
- else
- found_dir=
- found_la=
- found_so=
- found_a=
- eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
- if test -n "$acl_shlibext"; then
- shrext=".$acl_shlibext" # typically: shrext=.so
- else
- shrext=
- fi
- if test $use_additional = yes; then
- dir="$additional_libdir"
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
- fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
- found_dir="$dir"
- found_so="$dir/$f"
- break
- fi
- done
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$acl_shlibext"; then
- if test -f "$dir/$libname$shrext"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext"
- else
- if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
- ver=`(cd "$dir" && \
- for f in "$libname$shrext".*; do echo "$f"; done \
- | sed -e "s,^$libname$shrext\\\\.,," \
- | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
- | sed 1q ) 2>/dev/null`
- if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
- found_dir="$dir"
- found_so="$dir/$libname$shrext.$ver"
- fi
- else
- eval library_names=\"$acl_library_names_spec\"
- for f in $library_names; do
- if test -f "$dir/$f"; then
- found_dir="$dir"
- found_so="$dir/$f"
- break
- fi
- done
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- if test -f "$dir/$libname.$acl_libext"; then
- found_dir="$dir"
- found_a="$dir/$libname.$acl_libext"
- fi
- fi
- if test "X$found_dir" != "X"; then
- if test -f "$dir/$libname.la"; then
- found_la="$dir/$libname.la"
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- if test "$enable_rpath" = no \
- || test "X$found_dir" = "X/usr/$acl_libdirstem" \
- || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- if test "$acl_hardcode_direct" = yes; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- haveit=
- for x in $LDFLAGS $LIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
- fi
- if test "$acl_hardcode_minus_L" != no; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
- fi
- fi
- additional_includedir=
- case "$found_dir" in
- */$acl_libdirstem | */$acl_libdirstem/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
- if test "$name" = 'intl'; then
- LIBINTL_PREFIX="$basedir"
- fi
- additional_includedir="$basedir/include"
- ;;
- */$acl_libdirstem2 | */$acl_libdirstem2/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
- if test "$name" = 'intl'; then
- LIBINTL_PREFIX="$basedir"
- fi
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INCINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- if test -n "$found_la"; then
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
- && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
- || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
- if test -n "$GCC"; then
- case $host_os in
- linux* | gnu* | k*bsd*-gnu) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIBINTL; do
-
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -R*)
- dir=`echo "X$dep" | sed -e 's/^X-R//'`
- if test "$enable_rpath" != no; then
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $dir"
- fi
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $dir"
- fi
- fi
- ;;
- -l*)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
- ;;
- esac
- done
- fi
- else
- LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
- fi
+ if test $_pkg_short_errors_supported = yes; then
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.16" 2>&1`
+ else
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.16" 2>&1`
fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$acl_hardcode_libdir_separator"; then
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
- done
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
- else
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$acl_hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- for found_dir in $ltrpathdirs; do
- LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
- done
- fi
-
-
+ # Put the nasty error message in config.log where it belongs
+ echo "$GLIB_PKG_ERRORS" >&5
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
+ as_fn_error $? "
+Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.16 is required.
+" "$LINENO" 5
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
-$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if eval \${$gt_func_gnugettext_libintl+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <libintl.h>
-$gt_revision_test_code
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- eval "$gt_func_gnugettext_libintl=yes"
else
- eval "$gt_func_gnugettext_libintl=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <libintl.h>
-$gt_revision_test_code
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- eval "$gt_func_gnugettext_libintl=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"
-fi
-eval ac_res=\$$gt_func_gnugettext_libintl
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- fi
+ as_fn_error $? "
+Cannot find Glib2! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
- if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
- || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
- && test "$PACKAGE" != gettext-runtime \
- && test "$PACKAGE" != gettext-tools; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
+fi
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
- if test -n "$INTL_MACOSX_LIBS"; then
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
- LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
- fi
- fi
+ cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
+ as_fn_error $? "
+Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.16 is required.
+" "$LINENO" 5
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
+else
-$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+ as_fn_error $? "
+Cannot find Glib2! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
- else
- USE_NLS=no
- fi
- fi
+fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
-$as_echo_n "checking whether to use NLS... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
- if test "$USE_NLS" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
-$as_echo_n "checking where the gettext function comes from... " >&6; }
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
- gt_source="external libintl"
- else
- gt_source="libc"
- fi
- else
- gt_source="included intl directory"
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
-$as_echo "$gt_source" >&6; }
- fi
+else
+ GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
+ GLIB_LIBS=$pkg_cv_GLIB_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
- if test "$USE_NLS" = "yes"; then
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
-$as_echo_n "checking how to link with libintl... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
-$as_echo "$LIBINTL" >&6; }
+fi
- for element in $INCINTL; do
- haveit=
- for x in $CPPFLAGS; do
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- eval x=\"$x\"
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
- fi
- done
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5
+$as_echo_n "checking for GTHREAD... " >&6; }
- fi
+if test -n "$GTHREAD_CFLAGS"; then
+ pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.16\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.16") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.16" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$GTHREAD_LIBS"; then
+ pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.16\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.16") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.16" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
-$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
-$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gthread-2.0 >= 2.16" 2>&1`
+ else
+ GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gthread-2.0 >= 2.16" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GTHREAD_PKG_ERRORS" >&5
- fi
- POSUB=po
- fi
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
+ as_fn_error $? "
+GThread version $cv_pkg_version was found, but gthread-2.0 >= 2.16 is required.
+" "$LINENO" 5
+else
- INTLLIBS="$LIBINTL"
+ as_fn_error $? "
+Cannot find GThread! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
+fi
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
+ as_fn_error $? "
+GThread version $cv_pkg_version was found, but gthread-2.0 >= 2.16 is required.
+" "$LINENO" 5
+else
+ as_fn_error $? "
+Cannot find GThread! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
-if test "$MSGFMT" = ":" ; then
- as_fn_error $? "msgfmt was not found! You may need to install gettext." "$LINENO" 5
fi
+else
+ GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS
+ GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
-# Check whether --enable-gtk3 was given.
-if test "${enable_gtk3+set}" = set; then :
- enableval=$enable_gtk3; use_gtk3=yes
-else
- use_gtk3=no
fi
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANGO" >&5
+$as_echo_n "checking for PANGO... " >&6; }
+
+if test -n "$PANGO_CFLAGS"; then
+ pkg_cv_PANGO_CFLAGS="$PANGO_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.20\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "pango >= 1.20") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_PANGO_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.20" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- am__leading_dot=_
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$PANGO_LIBS"; then
+ pkg_cv_PANGO_LIBS="$PANGO_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.20\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "pango >= 1.20") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_PANGO_LIBS=`$PKG_CONFIG --libs "pango >= 1.20" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
fi
-rmdir .tst 2>/dev/null
-DEPDIR="${am__leading_dot}deps"
-ac_config_commands="$ac_config_commands depfiles"
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
fi
+ if test $_pkg_short_errors_supported = yes; then
+ PANGO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pango >= 1.20" 2>&1`
+ else
+ PANGO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pango >= 1.20" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$PANGO_PKG_ERRORS" >&5
+
+
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "pango") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
+ as_fn_error $? "
+Pango version $cv_pkg_version was found, but pango >= 1.20 is required.
+" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
+else
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
+ as_fn_error $? "
+Cannot find Pango! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
fi
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "pango") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
+ as_fn_error $? "
+Pango version $cv_pkg_version was found, but pango >= 1.20 is required.
+" "$LINENO" 5
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
-$as_echo_n "checking for GNU make... " >&6; }
-if ${_cv_gnu_make_command+:} false; then :
- $as_echo_n "(cached) " >&6
else
- _cv_gnu_make_command=""
- for a in "$MAKE" make gmake gnumake; do
- test "x$a" = "x" && continue
- if ( sh -c "$a --version" 2>/dev/null | grep "GNU Make" >/dev/null ) ; then
- _cv_gnu_make_command="$a"
- break
- fi
- done
+ as_fn_error $? "
+Cannot find Pango! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5
-$as_echo "$_cv_gnu_make_command" >&6; }
- if test "x$_cv_gnu_make_command" != "x" ; then
- MAKE="$_cv_gnu_make_command"
- else
- as_fn_error $? "** GNU make not found. If it is installed, try setting MAKE environment variable. **" "$LINENO" 5
- fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ PANGO_CFLAGS=$pkg_cv_PANGO_CFLAGS
+ PANGO_LIBS=$pkg_cv_PANGO_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
fi
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="gcc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAIRO" >&5
+$as_echo_n "checking for CAIRO... " >&6; }
+
+if test -n "$CAIRO_CFLAGS"; then
+ pkg_cv_CAIRO_CFLAGS="$CAIRO_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "cairo >= 1.6") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= 1.6" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
fi
+ else
+ pkg_failed=untried
fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+if test -n "$CAIRO_LIBS"; then
+ pkg_cv_CAIRO_LIBS="$CAIRO_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.6\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "cairo >= 1.6") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= 1.6" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
fi
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
+
+
+if test $pkg_failed = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
else
- CC="$ac_cv_prog_CC"
+ _pkg_short_errors_supported=no
fi
+ if test $_pkg_short_errors_supported = yes; then
+ CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cairo >= 1.6" 2>&1`
+ else
+ CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cairo >= 1.6" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$CAIRO_PKG_ERRORS" >&5
+
+
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+
+ cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
+ as_fn_error $? "
+Cairo version $cv_pkg_version was found, but cairo >= 1.6 is required.
+" "$LINENO" 5
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+
+ as_fn_error $? "
+Cannot find Cairo! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
+elif test $pkg_failed = untried; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
-fi
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+
+ cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
+ as_fn_error $? "
+Cairo version $cv_pkg_version was found, but cairo >= 1.6 is required.
+" "$LINENO" 5
+
+else
+
+ as_fn_error $? "
+Cannot find Cairo! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
- fi
fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+ CAIRO_CFLAGS=$pkg_cv_CAIRO_CFLAGS
+ CAIRO_LIBS=$pkg_cv_CAIRO_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+
+
+
+
+
+ # Extract the first word of "tput", so it can be a program name with args.
+set dummy tput; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if ${ac_cv_path_TPUT+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $TPUT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TPUT="$TPUT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ ac_cv_path_TPUT="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -6728,2052 +5606,2735 @@ done
done
IFS=$as_save_IFS
+ ;;
+esac
fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+TPUT=$ac_cv_path_TPUT
+if test -n "$TPUT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TPUT" >&5
+$as_echo "$TPUT" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl.exe
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+
+ if test x"$TPUT" != x""; then :
+
+ if x=$($TPUT el 2>/dev/null); then
+ TERM_EL="$x"
+
+ else
+ TERM_EL="$($TPUT ce 2>/dev/null)"
+
+ fi
+
+ if x=$($TPUT sgr0 2>/dev/null); then
+ TERM_SGR0="$x"
+
+ else
+ TERM_SGR0="$($TPUT me 2>/dev/null)"
+
+ fi
+
+ if x=$($TPUT bold 2>/dev/null); then
+ TERM_BOLD="$x"
+
+ else
+ TERM_BOLD="$($TPUT md 2>/dev/null)"
+
+ fi
+
+ if x=$($TPUT setaf 1 2>/dev/null); then
+ TERM_SETAF1="$x"
+
+ TERM_SETAF2="$($TPUT setaf 2 2>/dev/null)"
+
+ TERM_SETAF3="$($TPUT setaf 3 2>/dev/null)"
+
+ TERM_SETAF4="$($TPUT setaf 4 2>/dev/null)"
+
+ TERM_SETAF6="$($TPUT setaf 6 2>/dev/null)"
+
+ else
+ TERM_SETAF1="$($TPUT AF 1 2>/dev/null)"
+
+ TERM_SETAF2="$($TPUT AF 2 2>/dev/null)"
+
+ TERM_SETAF3="$($TPUT AF 3 2>/dev/null)"
+
+ TERM_SETAF4="$($TPUT AF 4 2>/dev/null)"
+
+ TERM_SETAF6="$($TPUT AF 6 2>/dev/null)"
+
+ fi
+
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+ TERM_EL='\033\133K'
+
+ TERM_SGR0='\033\133m'
+
+ TERM_BOLD='\033\1331m'
+
+ TERM_SETAF1='\033\13331m'
+
+ TERM_SETAF2='\033\13332m'
+
+ TERM_SETAF3='\033\13333m'
+
+ TERM_SETAF4='\033\13334m'
+
+ TERM_SETAF6='\033\13336m'
+
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library system" >&5
+$as_echo_n "checking for shared library system... " >&6; }
+ case "$host_os" in
+ darwin*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
+$as_echo "Darwin" >&6; }
+ LIB_CFLAGS='-fPIC -DPIC'
+ LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.dylib'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CFLAGS='-fPIC -DPIC'
+ PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
+ PLUGIN_SUFFIX='.impl'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
+ CLEAN_LIB=''
+ ;;
+ solaris*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris" >&5
+$as_echo "Solaris" >&6; }
+ LIB_CFLAGS='-fPIC -DPIC'
+ LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}.${LIB_MINOR}'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.so'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CFLAGS='-fPIC -DPIC'
+ PLUGIN_LDFLAGS='-shared'
+ PLUGIN_SUFFIX='.so'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
+ CLEAN_LIB=''
+ ;;
+ openbsd* | mirbsd*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: OpenBSD" >&5
+$as_echo "OpenBSD" >&6; }
+ LIB_CFLAGS='-fPIC -DPIC'
+ LIB_LDFLAGS='-shared'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CFLAGS='-fPIC -DPIC'
+ PLUGIN_LDFLAGS='-shared'
+ PLUGIN_SUFFIX='.so'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
+ CLEAN_LIB=''
+ ;;
+ cygwin* | mingw*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Win32" >&5
+$as_echo "Win32" >&6; }
+ LIB_CFLAGS=''
+ LIB_LDFLAGS='-shared -Wl,--out-implib,${LIB}.a'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.dll'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CFLAGS=''
+ PLUGIN_LDFLAGS='-shared'
+ PLUGIN_SUFFIX='.dll'
+ INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
+ CLEAN_LIB='${LIB}.a'
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: GNU" >&5
+$as_echo "GNU" >&6; }
+ LIB_CFLAGS='-fPIC -DPIC'
+ LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.so'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CFLAGS='-fPIC -DPIC'
+ PLUGIN_LDFLAGS='-shared'
+ PLUGIN_SUFFIX='.so'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
+ CLEAN_LIB=''
+ ;;
+ esac
+
- test -n "$ac_ct_CC" && break
-done
- if test "x$ac_ct_CC" = x; then
- CC=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CC=$ac_ct_CC
- fi
-fi
-fi
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
-else
- ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GCC=yes
-else
- GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_c_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag=yes
- ac_cv_prog_cc_g=no
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- CFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
-int
-main ()
-{
-
- ;
- return 0;
-}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
-else
- ac_c_werror_flag=$ac_save_c_werror_flag
- CFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
int
main ()
{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
- inside strings and character constants. */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+ #include <sys/param.h>
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
int
main ()
{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
;
return 0;
}
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
- test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
- x)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
- xno)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
- *)
- CC="$CC $ac_cv_prog_cc_c89"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
- if test -n "$CCC"; then
- CXX=$CCC
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ ac_cv_c_bigendian=no
fi
-
-
- test -n "$CXX" && break
- done
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CXX="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
- test -n "$ac_ct_CXX" && break
-done
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
- if test "x$ac_ct_CXX" = x; then
- CXX="g++"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- CXX=$ac_ct_CXX
- fi
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
fi
-
- fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
- { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- sed '10a\
-... rest of stderr output deleted ...
- 10q' conftest.err >conftest.er1
- cat conftest.er1 >&5
- fi
- rm -f conftest.er1 conftest.err
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
-done
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
- $as_echo_n "(cached) " >&6
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+$ac_includes_default
int
main ()
{
-#ifndef __GNUC__
- choke me
-#endif
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_compiler_gnu=yes
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
else
- ac_compiler_gnu=no
+ ac_cv_c_bigendian=yes
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
- GXX=yes
-else
- GXX=
+
+ fi
fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_save_cxx_werror_flag=$ac_cxx_werror_flag
- ac_cxx_werror_flag=yes
- ac_cv_prog_cxx_g=no
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ BIGENDIAN=1;; #(
+ no)
+ BIGENDIAN=0 ;; #(
+ universal)
+ as_fn_error $? "Universal builds are not supported, sorry" "$LINENO" 5
+ ;; #(
+ *)
+ as_fn_error $? "Unknown machine byte order" "$LINENO" 5 ;;
+ esac
-int
-main ()
-{
- ;
- return 0;
-}
+
+for ac_header in execinfo.h regex.h rxposix.h rx/rxposix.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-else
- CXXFLAGS=""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
+fi
- ;
- return 0;
-}
+done
+
+for ac_func in sigwait backtrace
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-else
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
- CXXFLAGS="-g"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cexpf" >&5
+$as_echo_n "checking for cexpf... " >&6; }
+OLD_LIBS="$LIBS"
+LIBS="$LIBS -lm"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <complex.h>
+ #include <stdio.h>
int
main ()
{
-
+printf ("%f", crealf (cexpf (1)))
;
return 0;
}
_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
-# By default we simply use the C compiler to build assembly code.
+$as_echo "#define HAVE_CEXPF 1" >>confdefs.h
-test "${CCAS+set}" = set || CCAS=$CC
-test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS="$OLD_LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /proc/self/exe" >&5
+$as_echo_n "checking for /proc/self/exe... " >&6; }
+if test -e "/proc/self/exe" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+$as_echo "#define HAVE_PROC_SELF_EXE 1" >>confdefs.h
-depcc="$CCAS" am_compiler_list=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
- # We make a subdir and do the tests there. Otherwise we can end up
- # making bogus files that we don't know about and never remove. For
- # instance it was reported that on HP-UX the gcc test will end up
- # making a dummy file named `D' -- because `-MD' means `put the output
- # in D'.
- mkdir conftest.dir
- # Copy depcomp to subdir because otherwise we won't find it if we're
- # using a relative directory.
- cp "$am_depcomp" conftest.dir
- cd conftest.dir
- # We will build objects and dependencies in a subdirectory because
- # it helps to detect inapplicable dependency modes. For instance
- # both Tru64's cc and ICC support -MD to output dependencies as a
- # side effect of compilation, but ICC will put the dependencies in
- # the current directory while Tru64 will put them in the object
- # directory.
- mkdir sub
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
- am_cv_CCAS_dependencies_compiler_type=none
- if test "$am_compiler_list" = ""; then
- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
fi
- am__universal=false
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
- for depmode in $am_compiler_list; do
- # Setup a source with many dependencies, because some compilers
- # like to wrap large dependency lists on column 80 (with \), and
- # we should not choose a depcomp mode which is confused by this.
- #
- # We need to recreate these files for each test, as the compiler may
- # overwrite some of them when testing with obscure command lines.
- # This happens at least with the AIX C compiler.
- : > sub/conftest.c
- for i in 1 2 3 4 5 6; do
- echo '#include "conftst'$i'.h"' >> sub/conftest.c
- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
- # Solaris 8's {/usr,}/bin/sh.
- touch sub/conftst$i.h
- done
- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
- # We check with `-c' and `-o' for the sake of the "dashmstdout"
- # mode. It turns out that the SunPro C++ compiler does not properly
- # handle `-M -o', and we need to detect this. Also, some Intel
- # versions had trouble with output in subdirs
- am__obj=sub/conftest.${OBJEXT-o}
- am__minus_obj="-o $am__obj"
- case $depmode in
- gcc)
- # This depmode causes a compiler race in universal mode.
- test "$am__universal" = false || continue
- ;;
- nosideeffect)
- # after this tag, mechanisms are not by side-effect, so they'll
- # only be used when explicitly requested
- if test "x$enable_dependency_tracking" = xyes; then
- continue
- else
- break
- fi
- ;;
- msvisualcpp | msvcmsys)
- # This compiler won't grok `-c -o', but also, the minuso test has
- # not run yet. These depmodes are late enough in the game, and
- # so weak that their functioning should not be impacted.
- am__obj=conftest.${OBJEXT-o}
- am__minus_obj=
- ;;
- none) break ;;
- esac
- if depmode=$depmode \
- source=sub/conftest.c object=$am__obj \
- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
- >/dev/null 2>conftest.err &&
- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
- # icc doesn't choke on unknown options, it will just issue warnings
- # or remarks (even with -Werror). So we grep stderr for any message
- # that says an option was ignored or not supported.
- # When given -MP, icc 7.0 and 7.1 complain thusly:
- # icc: Command line warning: ignoring option '-M'; no argument required
- # The diagnosis changed in icc 8.0:
- # icc: Command line remark: option '-MP' not supported
- if (grep 'ignoring option' conftest.err ||
- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
- am_cv_CCAS_dependencies_compiler_type=$depmode
- break
- fi
- fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
done
+IFS=$as_save_IFS
- cd ..
- rm -rf conftest.dir
-else
- am_cv_CCAS_dependencies_compiler_type=none
fi
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
-CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
- if
- test "x$enable_dependency_tracking" != xno \
- && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
- am__fastdepCCAS_TRUE=
- am__fastdepCCAS_FALSE='#'
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+ # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then :
+ enableval=$enable_nls; USE_NLS=$enableval
else
- am__fastdepCCAS_TRUE='#'
- am__fastdepCCAS_FALSE=
+ USE_NLS=yes
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
-$as_echo_n "checking for library containing strerror... " >&6; }
-if ${ac_cv_search_strerror+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strerror ();
-int
-main ()
-{
-return strerror ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' cposix; do
- if test -z "$ac_lib"; then
- ac_res="none required"
+
+
+ GETTEXT_MACRO_VERSION=0.18
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ PATH_SEPARATOR=:
fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_strerror=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_strerror+:} false; then :
- break
+ rm -f conf$$.sh
fi
-done
-if ${ac_cv_search_strerror+:} false; then :
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
else
- ac_cv_search_strerror=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
-$as_echo "$ac_cv_search_strerror" >&6; }
-ac_res=$ac_cv_search_strerror
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
+ ac_executable_p="test -f"
fi
+rm -f conf$$.file
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_c_bigendian=unknown
- # See if we're dealing with a universal compiler.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifndef __APPLE_CC__
- not a universal capable compiler
- #endif
- typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
- # Check for potential -arch flags. It is not universal unless
- # there are at least two -arch flags with different values.
- ac_arch=
- ac_prev=
- for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
- if test -n "$ac_prev"; then
- case $ac_word in
- i?86 | x86_64 | ppc | ppc64)
- if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
- ac_arch=$ac_word
- else
- ac_cv_c_bigendian=universal
- break
- fi
- ;;
- esac
- ac_prev=
- elif test "x$ac_word" = "x-arch"; then
- ac_prev=arch
- fi
- done
+ case "$MSGFMT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if test $ac_cv_c_bigendian = unknown; then
- # See if sys/param.h defines the BYTE_ORDER macro.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
- && LITTLE_ENDIAN)
- bogus endian macros
- #endif
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- # It does; now see whether it defined to BIG_ENDIAN or not.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
- #endif
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_bigendian=yes
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- ac_cv_c_bigendian=no
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
- bogus endian macros
- #endif
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- # It does; now see whether it defined to _BIG_ENDIAN or not.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <limits.h>
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
- not big endian
- #endif
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_c_bigendian=yes
-else
- ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # Compile a test program.
- if test "$cross_compiling" = yes; then :
- # Try to guess by grepping values from an object file.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-short int ascii_mm[] =
- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- short int ascii_ii[] =
- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
- int use_ascii (int i) {
- return ascii_mm[i] + ascii_ii[i];
- }
- short int ebcdic_ii[] =
- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- short int ebcdic_mm[] =
- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
- int use_ebcdic (int i) {
- return ebcdic_mm[i] + ebcdic_ii[i];
- }
- extern int foo;
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
- ac_cv_c_bigendian=yes
- fi
- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
- if test "$ac_cv_c_bigendian" = unknown; then
- ac_cv_c_bigendian=no
- else
- # finding both strings is unlikely to happen, but who knows?
- ac_cv_c_bigendian=unknown
- fi
- fi
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long int l;
- char c[sizeof (long int)];
- } u;
- u.l = 1;
- return u.c[sizeof (long int) - 1] == 1;
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- ac_cv_c_bigendian=no
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- ac_cv_c_bigendian=yes
+ case "$XGETTEXT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
- yes)
- $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
- no)
- ;; #(
- universal)
+ rm -f messages.po
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
- ;; #(
- *)
- as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
- esac
-if test "x$GCC" = "xyes"; then
- CFLAGS="$CFLAGS -Wall -pipe"
- CXXFLAGS="$CXXFLAGS -pipe -Wall"
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+ ac_executable_p="test -f"
fi
+rm -f conf$$.file
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
- @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
- *@@@%%%=?*=@@@%%%*)
- eval ac_cv_prog_make_${ac_make}_set=yes;;
+ case "$MSGMERGE" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
*)
- eval ac_cv_prog_make_${ac_make}_set=no;;
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+ ;;
esac
-rm -f conftest.make
fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- SET_MAKE=
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
fi
-# Extract the first word of "rm", so it can be a program name with args.
-set dummy rm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $RM in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_RM="$RM" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
+
+ test -n "$localedir" || localedir='${datadir}/locale'
+
+
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+
+
+ ac_config_commands="$ac_config_commands po-directories"
+
+
+
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
fi
-done
- done
-IFS=$as_save_IFS
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
- ;;
-esac
-fi
-RM=$ac_cv_path_RM
-if test -n "$RM"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
-$as_echo "$RM" >&6; }
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ with_gnu_ld=no
fi
-
-# Extract the first word of "mv", so it can be a program name with args.
-set dummy mv; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MV+:} false; then :
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
+$as_echo_n "checking for ld used by GCC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${acl_cv_path_LD+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $MV in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_MV="$MV" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break ;;
+ *)
+ test "$with_gnu_ld" != yes && break ;;
+ esac
+ fi
done
-IFS=$as_save_IFS
-
- ;;
-esac
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
fi
-MV=$ac_cv_path_MV
-if test -n "$MV"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
-$as_echo "$MV" >&6; }
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-
-
-# Extract the first word of "cp", so it can be a program name with args.
-set dummy cp; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CP+:} false; then :
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${acl_cv_prog_gnu_ld+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $CP in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_CP="$CP" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
esac
fi
-CP=$ac_cv_path_CP
-if test -n "$CP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
-$as_echo "$CP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
-# Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AR+:} false; then :
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if ${acl_cv_rpath+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $AR in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_AR="$AR" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
- ;;
-esac
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+
fi
-AR=$ac_cv_path_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
+$as_echo "$acl_cv_rpath" >&6; }
+ wl="$acl_cv_wl"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+ enableval=$enable_rpath; :
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ enable_rpath=yes
fi
-# Extract the first word of "tr", so it can be a program name with args.
-set dummy tr; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TR+:} false; then :
+
+
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $TR in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TR="$TR" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- ;;
-esac
-fi
-TR=$ac_cv_path_TR
-if test -n "$TR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
-$as_echo "$TR" >&6; }
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+ gl_cv_solaris_64bit=yes
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ gl_cv_solaris_64bit=no
fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
+$as_echo "$gl_cv_solaris_64bit" >&6; }
+ if test $gl_cv_solaris_64bit = yes; then
+ acl_libdirstem=lib/64
+ case "$host_cpu" in
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+ */../ | */.. )
+ # Better ignore directories of this form. They are misleading.
+ ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib64 ) acl_libdirstem=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
+
+
+
+
+
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $RANLIB in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
- ;;
-esac
-fi
-RANLIB=$ac_cv_path_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+ use_additional=yes
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
-$as_echo_n "checking for GLIB... " >&6; }
-if test -n "$GLIB_CFLAGS"; then
- pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.12.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$GLIB_LIBS"; then
- pkg_cv_GLIB_LIBS="$GLIB_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.12.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
+# Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+ withval=$with_libiconv_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.12.0" 2>&1`
- else
- GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.12.0" 2>&1`
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
fi
- # Put the nasty error message in config.log where it belongs
- echo "$GLIB_PKG_ERRORS" >&5
-
+ fi
+ fi
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
+fi
- cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
- as_fn_error $? "
-Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
+ LIBICONV=
+ LTLIBICONV=
+ INCICONV=
+ LIBICONV_PREFIX=
+ HAVE_LIBICONV=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='iconv '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBICONV; do
-else
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
- as_fn_error $? "
-Cannot find Glib2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
-fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCICONV; do
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
- cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
- as_fn_error $? "
-Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
-else
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
- as_fn_error $? "
-Cannot find Glib2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBICONV; do
-fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
-else
- GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
- GLIB_LIBS=$pkg_cv_GLIB_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+ done
+ fi
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="glib-2.0 >= 2.12.0"
- else
- PC_REQUIRES="$PC_REQUIRES, glib-2.0 >= 2.12.0"
- fi
-fi
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5
-$as_echo_n "checking for GTHREAD... " >&6; }
-if test -n "$GTHREAD_CFLAGS"; then
- pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.12.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.12.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.12.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$GTHREAD_LIBS"; then
- pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.12.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.12.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.12.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gthread-2.0 >= 2.12.0" 2>&1`
- else
- GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors "gthread-2.0 >= 2.12.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$GTHREAD_PKG_ERRORS" >&5
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
- as_fn_error $? "
-gthread-2.0 version $cv_pkg_version was found, but gthread-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
-else
- as_fn_error $? "
-Cannot find gthread-2.0! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-fi
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
- as_fn_error $? "
-gthread-2.0 version $cv_pkg_version was found, but gthread-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
-else
- as_fn_error $? "
-Cannot find gthread-2.0! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-fi
-else
- GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS
- GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="gthread-2.0 >= 2.12.0"
- else
- PC_REQUIRES="$PC_REQUIRES, gthread-2.0 >= 2.12.0"
- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+ gt_cv_func_CFPreferencesCopyAppValue=no
fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
-if test $use_gtk3 = yes ; then
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
-
-if test -n "$GTK_CFLAGS"; then
- pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$GTK_LIBS"; then
- pkg_cv_GTK_LIBS="$GTK_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFLocaleCopyCurrent=yes
else
- pkg_failed=yes
+ gt_cv_func_CFLocaleCopyCurrent=no
fi
- else
- pkg_failed=untried
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0 >= 3.0.0" 2>&1`
- else
- GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0 >= 3.0.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$GTK_PKG_ERRORS" >&5
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-3.0" 2>/dev/null`
- as_fn_error $? "
-Gtk+3 version $cv_pkg_version was found, but gtk+-3.0 >= 3.0.0 is required.
-" "$LINENO" 5
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+$as_echo_n "checking for GNU gettext in libc... " >&6; }
+if eval \${$gt_func_gnugettext_libc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libc=yes"
else
-
- as_fn_error $? "
-Cannot find Gtk+3! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-
+ eval "$gt_func_gnugettext_libc=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
+eval ac_res=\$$gt_func_gnugettext_libc
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-3.0" 2>/dev/null`
- as_fn_error $? "
-Gtk+3 version $cv_pkg_version was found, but gtk+-3.0 >= 3.0.0 is required.
-" "$LINENO" 5
-else
- as_fn_error $? "
-Cannot find Gtk+3! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-fi
+ am_save_CPPFLAGS="$CPPFLAGS"
-else
- GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
- GTK_LIBS=$pkg_cv_GTK_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="gtk+-3.0 >= 3.0.0"
- else
- PC_REQUIRES="$PC_REQUIRES, gtk+-3.0 >= 3.0.0"
- fi
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
else
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
-
-if test -n "$GTK_CFLAGS"; then
- pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.8.0" 2>/dev/null`
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+ /* Test against Solaris 10 bug: Failures are not distinguishable from
+ successful returns. */
+ {
+ iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+ if (cd_ascii_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\263";
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_ascii_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ return 1;
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
+ am_cv_func_iconv_works=no
fi
-if test -n "$GTK_LIBS"; then
- pkg_cv_GTK_LIBS="$GTK_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.8.0" 2>/dev/null`
-else
- pkg_failed=yes
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
- else
- pkg_failed=untried
+
+ LIBS="$am_save_LIBS"
+
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
+$as_echo "$am_cv_func_iconv_works" >&6; }
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= 2.8.0" 2>&1`
- else
- GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= 2.8.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$GTK_PKG_ERRORS" >&5
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-2.0" 2>/dev/null`
- as_fn_error $? "
-Gtk+2 version $cv_pkg_version was found, but gtk+-2.0 >= 2.8.0 is required.
-" "$LINENO" 5
-else
- as_fn_error $? "
-Cannot find Gtk+2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-fi
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ use_additional=yes
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
- cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-2.0" 2>/dev/null`
- as_fn_error $? "
-Gtk+2 version $cv_pkg_version was found, but gtk+-2.0 >= 2.8.0 is required.
-" "$LINENO" 5
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
-else
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
- as_fn_error $? "
-Cannot find Gtk+2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+
+# Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then :
+ withval=$with_libintl_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
fi
-else
- GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
- GTK_LIBS=$pkg_cv_GTK_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ LIBINTL_PREFIX=
+ HAVE_LIBINTL=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='intl '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="gtk+-2.0 >= 2.8.0"
- else
- PC_REQUIRES="$PC_REQUIRES, gtk+-2.0 >= 2.8.0"
- fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCINTL; do
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
-fi
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
-fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBINTL; do
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANGO" >&5
-$as_echo_n "checking for PANGO... " >&6; }
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+ done
+ fi
-if test -n "$PANGO_CFLAGS"; then
- pkg_cv_PANGO_CFLAGS="$PANGO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.8.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "pango >= 1.8.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_PANGO_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.8.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$PANGO_LIBS"; then
- pkg_cv_PANGO_LIBS="$PANGO_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.8.0\""; } >&5
- ($PKG_CONFIG --exists --print-errors "pango >= 1.8.0") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_PANGO_LIBS=`$PKG_CONFIG --libs "pango >= 1.8.0" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+$as_echo_n "checking for GNU gettext in libintl... " >&6; }
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- _pkg_short_errors_supported=no
+ gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libintl=yes"
+else
+ eval "$gt_func_gnugettext_libintl=no"
fi
- if test $_pkg_short_errors_supported = yes; then
- PANGO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pango >= 1.8.0" 2>&1`
- else
- PANGO_PKG_ERRORS=`$PKG_CONFIG --print-errors "pango >= 1.8.0" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$PANGO_PKG_ERRORS" >&5
-
-
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
- ($PKG_CONFIG --exists --print-errors "pango") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
- cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
- as_fn_error $? "
-Pango version $cv_pkg_version was found, but pango >= 1.8.0 is required.
-" "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"
+fi
+eval ac_res=\$$gt_func_gnugettext_libintl
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ fi
-else
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
- as_fn_error $? "
-Cannot find Pango! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-fi
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
- ($PKG_CONFIG --exists --print-errors "pango") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
- cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
- as_fn_error $? "
-Pango version $cv_pkg_version was found, but pango >= 1.8.0 is required.
-" "$LINENO" 5
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
-else
+ else
+ USE_NLS=no
+ fi
+ fi
- as_fn_error $? "
-Cannot find Pango! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+$as_echo_n "checking whether to use NLS... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+ if test "$USE_NLS" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
+$as_echo_n "checking where the gettext function comes from... " >&6; }
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
+$as_echo "$gt_source" >&6; }
+ fi
-fi
+ if test "$USE_NLS" = "yes"; then
-else
- PANGO_CFLAGS=$pkg_cv_PANGO_CFLAGS
- PANGO_LIBS=$pkg_cv_PANGO_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+$as_echo_n "checking how to link with libintl... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+$as_echo "$LIBINTL" >&6; }
+ for element in $INCINTL; do
+ haveit=
+ for x in $CPPFLAGS; do
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="pango >= 1.8.0"
- else
- PC_REQUIRES="$PC_REQUIRES, pango >= 1.8.0"
- fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+ fi
-fi
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAIRO" >&5
-$as_echo_n "checking for CAIRO... " >&6; }
+$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
-if test -n "$CAIRO_CFLAGS"; then
- pkg_cv_CAIRO_CFLAGS="$CAIRO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.2.4\""; } >&5
- ($PKG_CONFIG --exists --print-errors "cairo >= 1.2.4") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= 1.2.4" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
-if test -n "$CAIRO_LIBS"; then
- pkg_cv_CAIRO_LIBS="$CAIRO_LIBS"
- elif test -n "$PKG_CONFIG"; then
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.2.4\""; } >&5
- ($PKG_CONFIG --exists --print-errors "cairo >= 1.2.4") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- pkg_cv_CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= 1.2.4" 2>/dev/null`
-else
- pkg_failed=yes
-fi
- else
- pkg_failed=untried
-fi
+ fi
+ POSUB=po
+ fi
-if test $pkg_failed = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
- _pkg_short_errors_supported=yes
-else
- _pkg_short_errors_supported=no
-fi
- if test $_pkg_short_errors_supported = yes; then
- CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "cairo >= 1.2.4" 2>&1`
- else
- CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors "cairo >= 1.2.4" 2>&1`
- fi
- # Put the nasty error message in config.log where it belongs
- echo "$CAIRO_PKG_ERRORS" >&5
+ INTLLIBS="$LIBINTL"
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
- ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
- as_fn_error $? "
-Cairo version $cv_pkg_version was found, but cairo >= 1.2.4 is required.
-" "$LINENO" 5
-else
- as_fn_error $? "
-Cannot find Cairo! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+if test "$MSGFMT" = ":" ; then
+ as_fn_error $? "msgfmt was not found; have you installed gettext?" "$LINENO" 5
fi
-elif test $pkg_failed = untried; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
- ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
- as_fn_error $? "
-Cairo version $cv_pkg_version was found, but cairo >= 1.2.4 is required.
-" "$LINENO" 5
+# Check whether --with-buildstamp was given.
+if test "${with_buildstamp+set}" = set; then :
+ withval=$with_buildstamp;
+cat >>confdefs.h <<_ACEOF
+#define BUILDSTAMP "$withval"
+_ACEOF
else
- as_fn_error $? "
-Cannot find Cairo! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+cat >>confdefs.h <<_ACEOF
+#define BUILDSTAMP "unknown build"
+_ACEOF
fi
-else
- CAIRO_CFLAGS=$pkg_cv_CAIRO_CFLAGS
- CAIRO_LIBS=$pkg_cv_CAIRO_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+# Check whether --enable-text-console was given.
+if test "${enable_text_console+set}" = set; then :
+ enableval=$enable_text_console; use_text_console=$withval
+else
+ use_text_console=no
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="cairo >= 1.2.4"
- else
- PC_REQUIRES="$PC_REQUIRES, cairo >= 1.2.4"
- fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Microsoft Windows" >&5
+$as_echo_n "checking for Microsoft Windows... " >&6; }
+case "$target" in
+ *mingw*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_mswindows=yes
+ if test "x$use_text_console" = "xno"; then
+ LDFLAGS="$LDFLAGS -Wl,-subsystem,windows"
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ have_mswindows=no
+ ;;
+esac
+if test "x${have_mswindows}" = "xyes" ; then
+ HAVE_MSWINDOWS="yes"
+else
+ HAVE_MSWINDOWS="no"
fi
+# Check whether --enable-gtk3 was given.
+if test "${enable_gtk3+set}" = set; then :
+ enableval=$enable_gtk3; use_gtk3=$enableval
+else
+ use_gtk3=yes
+fi
+
+if test $use_gtk3 = yes ; then
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOWGLI" >&5
-$as_echo_n "checking for MOWGLI... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
-if test -n "$MOWGLI_CFLAGS"; then
- pkg_cv_MOWGLI_CFLAGS="$MOWGLI_CFLAGS"
+if test -n "$GTK_CFLAGS"; then
+ pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli >= 0.9\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmowgli >= 0.9") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_MOWGLI_CFLAGS=`$PKG_CONFIG --cflags "libmowgli >= 0.9" 2>/dev/null`
+ pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
-if test -n "$MOWGLI_LIBS"; then
- pkg_cv_MOWGLI_LIBS="$MOWGLI_LIBS"
+if test -n "$GTK_LIBS"; then
+ pkg_cv_GTK_LIBS="$GTK_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli >= 0.9\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmowgli >= 0.9") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_MOWGLI_LIBS=`$PKG_CONFIG --libs "libmowgli >= 0.9" 2>/dev/null`
+ pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -8793,111 +8354,61 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- MOWGLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libmowgli >= 0.9" 2>&1`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0" 2>&1`
else
- MOWGLI_PKG_ERRORS=`$PKG_CONFIG --print-errors "libmowgli >= 0.9" 2>&1`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
- echo "$MOWGLI_PKG_ERRORS" >&5
-
-
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmowgli") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-
- cv_pkg_version=`$PKG_CONFIG --modversion "libmowgli" 2>/dev/null`
- as_fn_error $? "
-libmowgli version $cv_pkg_version was found, but libmowgli >= 0.9 is required.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-else
-
- as_fn_error $? "
-Cannot find libmowgli! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-fi
+ echo "$GTK_PKG_ERRORS" >&5
+ use_gtk3=no
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
-
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmowgli") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-
- cv_pkg_version=`$PKG_CONFIG --modversion "libmowgli" 2>/dev/null`
- as_fn_error $? "
-libmowgli version $cv_pkg_version was found, but libmowgli >= 0.9 is required.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-else
-
- as_fn_error $? "
-Cannot find libmowgli! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-fi
-
+ use_gtk3=no
else
- MOWGLI_CFLAGS=$pkg_cv_MOWGLI_CFLAGS
- MOWGLI_LIBS=$pkg_cv_MOWGLI_LIBS
+ GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+ GTK_LIBS=$pkg_cv_GTK_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-
-
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="libmowgli >= 0.9"
- else
- PC_REQUIRES="$PC_REQUIRES, libmowgli >= 0.9"
- fi
-
-
-
+ use_gtk3=yes
+fi
fi
-
-
-
+if test $use_gtk3 = no ; then
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBMCS" >&5
-$as_echo_n "checking for LIBMCS... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
-if test -n "$LIBMCS_CFLAGS"; then
- pkg_cv_LIBMCS_CFLAGS="$LIBMCS_CFLAGS"
+if test -n "$GTK_CFLAGS"; then
+ pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs >= 0.7\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmcs >= 0.7") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.12.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.12.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBMCS_CFLAGS=`$PKG_CONFIG --cflags "libmcs >= 0.7" 2>/dev/null`
+ pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.12.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
else
pkg_failed=untried
fi
-if test -n "$LIBMCS_LIBS"; then
- pkg_cv_LIBMCS_LIBS="$LIBMCS_LIBS"
+if test -n "$GTK_LIBS"; then
+ pkg_cv_GTK_LIBS="$GTK_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs >= 0.7\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmcs >= 0.7") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.12.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.12.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBMCS_LIBS=`$PKG_CONFIG --libs "libmcs >= 0.7" 2>/dev/null`
+ pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.12.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -8917,216 +8428,27 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBMCS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libmcs >= 0.7" 2>&1`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.12.0" 2>&1`
else
- LIBMCS_PKG_ERRORS=`$PKG_CONFIG --print-errors "libmcs >= 0.7" 2>&1`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.12.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
- echo "$LIBMCS_PKG_ERRORS" >&5
-
-
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmcs") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-
- cv_pkg_version=`$PKG_CONFIG --modversion "libmcs" 2>/dev/null`
- as_fn_error $? "
-libmcs version $cv_pkg_version was found, but libmcs >= 0.7 is required.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-else
-
- as_fn_error $? "
-Cannot find libmcs! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-fi
+ echo "$GTK_PKG_ERRORS" >&5
+ as_fn_error $? "Cannot find GTK headers. Aborting ..." "$LINENO" 5
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
-
- if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libmcs") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
-
- cv_pkg_version=`$PKG_CONFIG --modversion "libmcs" 2>/dev/null`
- as_fn_error $? "
-libmcs version $cv_pkg_version was found, but libmcs >= 0.7 is required.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-else
-
- as_fn_error $? "
-Cannot find libmcs! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-fi
-
-else
- LIBMCS_CFLAGS=$pkg_cv_LIBMCS_CFLAGS
- LIBMCS_LIBS=$pkg_cv_LIBMCS_LIBS
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="libmcs >= 0.7"
- else
- PC_REQUIRES="$PC_REQUIRES, libmcs >= 0.7"
- fi
-
-
-
-fi
-
-
-
- # Check whether --enable-sse2 was given.
-if test "${enable_sse2+set}" = set; then :
- enableval=$enable_sse2;
-else
- enable_sse2=yes
-fi
-
- if test "x${enable_sse2}" = "xyes"; then
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking SSE2 support" >&5
-$as_echo_n "checking SSE2 support... " >&6; }
- aud_my_save_CFLAGS="$CFLAGS"
- CFLAGS="-msse2"
- if test "$cross_compiling" = yes; then :
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+ as_fn_error $? "Cannot find GTK headers. Aborting ..." "$LINENO" 5
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <emmintrin.h>
-int main()
-{
- _mm_setzero_pd();
- asm volatile("xorpd %xmm0,%xmm0\n\t");
- return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
+ GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+ GTK_LIBS=$pkg_cv_GTK_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_SSE2 1" >>confdefs.h
-
- SIMD_CFLAGS="-msse2"
-
-else
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- enable_sse2="no"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
- CFLAGS="$aud_my_save_CFLAGS"
-
- fi
-
-
- # Check whether --enable-altivec was given.
-if test "${enable_altivec+set}" = set; then :
- enableval=$enable_altivec;
-else
- enable_altivec=yes
-fi
-
- if test "x${enable_altivec}" = "xyes"; then
-
- for ac_header in altivec.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "altivec.h" "ac_cv_header_altivec_h" "$ac_includes_default"
-if test "x$ac_cv_header_altivec_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_ALTIVEC_H 1
-_ACEOF
-
-
-$as_echo "#define HAVE_ALTIVEC 1" >>confdefs.h
-
-
-$as_echo "#define HAVE_ALTIVEC_H 1" >>confdefs.h
-
-
-$as_echo "#define ARCH_POWERPC 1" >>confdefs.h
-
- case $target in
- *-apple-*)
- SIMD_CFLAGS="-mpim-altivec"
- ;;
- *)
- SIMD_CFLAGS="-maltivec"
- ;;
- esac
-
-
-else
-
- enable_altivec="no"
-
-fi
-
-done
-
-
- fi
-
-
-ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
-if test "x$ac_cv_func_getrlimit" = xyes; then :
-
+ use_gtk3=no
fi
-
-
-
-
-
-for ac_header in unistd.h fcntl.h limits.h fts.h execinfo.h sys/errno.h regex.h rxposix.h rx/rxposix.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
fi
-done
-
-for ac_func in sigwait
-do :
- ac_fn_c_check_func "$LINENO" "sigwait" "ac_cv_func_sigwait"
-if test "x$ac_cv_func_sigwait" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-fi
-done
@@ -9204,10 +8526,8 @@ fi
if test "x$enable_rpath" = "xyes"; then
- AUDLDFLAGS="-Wl,-rpath,${libdir}"
-fi
-
-
+ LDFLAGS="$LDFLAGS -Wl,-rpath,${libdir}"
+fi
### ---------------------------------------------------------------------------
# Check whether --enable-chardet was given.
@@ -9228,12 +8548,13 @@ if test -n "$LIBGUESS_CFLAGS"; then
pkg_cv_LIBGUESS_CFLAGS="$LIBGUESS_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libguess") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess >= 1.1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libguess >= 1.1") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBGUESS_CFLAGS=`$PKG_CONFIG --cflags "libguess" 2>/dev/null`
+ pkg_cv_LIBGUESS_CFLAGS=`$PKG_CONFIG --cflags "libguess >= 1.1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -9244,12 +8565,13 @@ if test -n "$LIBGUESS_LIBS"; then
pkg_cv_LIBGUESS_LIBS="$LIBGUESS_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libguess") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess >= 1.1\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libguess >= 1.1") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_LIBGUESS_LIBS=`$PKG_CONFIG --libs "libguess" 2>/dev/null`
+ pkg_cv_LIBGUESS_LIBS=`$PKG_CONFIG --libs "libguess >= 1.1" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -9269,9 +8591,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libguess" 2>&1`
+ LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libguess >= 1.1" 2>&1`
else
- LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --print-errors "libguess" 2>&1`
+ LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libguess >= 1.1" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBGUESS_PKG_ERRORS" >&5
@@ -9330,6 +8652,7 @@ if test -n "$DBUS_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -9346,6 +8669,7 @@ if test -n "$DBUS_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -9365,9 +8689,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
+ DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
else
- DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
+ DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$DBUS_PKG_ERRORS" >&5
@@ -9471,29 +8795,9 @@ fi
enable_dbus="no"
else
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="dbus-1 >= 0.60"
- else
- PC_REQUIRES="$PC_REQUIRES, dbus-1 >= 0.60"
- fi
-
-
-
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="dbus-glib-1 >= 0.60"
- else
- PC_REQUIRES="$PC_REQUIRES, dbus-glib-1 >= 0.60"
- fi
-
-
-
$as_echo "#define USE_DBUS 1" >>confdefs.h
-
-$as_echo "#define DBUS_SERVICES_DIR \"\$datadir/dbus-1/services\"" >>confdefs.h
-
- LIBAUDCLIENT_LDFLAGS="$AUDLDFLAGS -laudclient"
-
+ LIBAUDCLIENT_LDFLAGS="-laudclient"
@@ -9544,6 +8848,7 @@ if test -n "$LIBPCRE_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBPCRE_CFLAGS=`$PKG_CONFIG --cflags "libpcre >= 6.7" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -9560,6 +8865,7 @@ if test -n "$LIBPCRE_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBPCRE_LIBS=`$PKG_CONFIG --libs "libpcre >= 6.7" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -9579,9 +8885,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpcre >= 6.7" 2>&1`
+ LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre >= 6.7" 2>&1`
else
- LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpcre >= 6.7" 2>&1`
+ LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre >= 6.7" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$LIBPCRE_PKG_ERRORS" >&5
@@ -9640,14 +8946,6 @@ else
$as_echo "yes" >&6; }
- if test "x$PC_REQUIRES" = "x"; then
- PC_REQUIRES="libpcre >= 6.7"
- else
- PC_REQUIRES="$PC_REQUIRES, libpcre >= 6.7"
- fi
-
-
-
fi
@@ -10009,6 +9307,7 @@ if test -n "$SM_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SM_CFLAGS=`$PKG_CONFIG --cflags "sm >= 1.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -10025,6 +9324,7 @@ if test -n "$SM_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SM_LIBS=`$PKG_CONFIG --libs "sm >= 1.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -10044,9 +9344,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- SM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sm >= 1.0" 2>&1`
+ SM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sm >= 1.0" 2>&1`
else
- SM_PKG_ERRORS=`$PKG_CONFIG --print-errors "sm >= 1.0" 2>&1`
+ SM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sm >= 1.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$SM_PKG_ERRORS" >&5
@@ -10088,6 +9388,7 @@ if test -n "$ICE_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ICE_CFLAGS=`$PKG_CONFIG --cflags "ice >= 1.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -10104,6 +9405,7 @@ if test -n "$ICE_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ICE_LIBS=`$PKG_CONFIG --libs "ice >= 1.0" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -10123,9 +9425,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- ICE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ice >= 1.0" 2>&1`
+ ICE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ice >= 1.0" 2>&1`
else
- ICE_PKG_ERRORS=`$PKG_CONFIG --print-errors "ice >= 1.0" 2>&1`
+ ICE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ice >= 1.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$ICE_PKG_ERRORS" >&5
@@ -10161,6 +9463,7 @@ if test -n "$GLIB214_CFLAGS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GLIB214_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.14" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -10177,6 +9480,7 @@ if test -n "$GLIB214_LIBS"; then
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GLIB214_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.14" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
fi
@@ -10196,9 +9500,9 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GLIB214_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.14" 2>&1`
+ GLIB214_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.14" 2>&1`
else
- GLIB214_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.14" 2>&1`
+ GLIB214_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.14" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$GLIB214_PKG_ERRORS" >&5
@@ -10233,96 +9537,6 @@ fi
### ---------------------------------------------------------------------------
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if __ELF__ is defined" >&5
-$as_echo_n "checking if __ELF__ is defined... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __ELF__
- yes
- #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "yes" >/dev/null 2>&1; then :
- is_elf=yes
-else
- is_elf=no
-
-fi
-rm -f conftest*
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $is_elf" >&5
-$as_echo "$is_elf" >&6; }
-
-have_solaris=no
-have_sun=no
-ARCH_DEFINES=""
-case $host in
- *-*-openbsd* | *-*-netbsd* | *-*-mirbsd*)
- have_sun=yes
- if test "x${is_elf}" = "xno"; then
-
-$as_echo "#define SYMBOL_PREFIX \"_\"" >>confdefs.h
-
- fi
- ;;
- *-*-darwin*)
-
-$as_echo "#define SYMBOL_PREFIX \"_\"" >>confdefs.h
-
- ;;
- *-hpux-*)
- ARCH_DEFINES="-DHPUX"
- ;;
- *-*-solaris* | *-*-sunos*)
- have_solaris=yes
- ;;
-esac
-
-arch_type=other
-x86_asm=no
-case $host in
- i386-*-* | i486-*-* | i586-*-* | i686-*-* | i86pc-*-*)
- arch_type=ix86
- case $host in
- *-*-netbsd* | *-*openbsd*)
- ;;
- *)
- ARCH_DEFINES="-DI386_ASSEM"
- x86_asm=yes
- ;;
- esac
- ;;
-esac
-
-
-
-if test "x${arch_type}" = "xix86" ; then
- ARCH_X86="yes"
-else
- ARCH_X86="no"
-fi
-
-if test "x${x86_asm}" = "xyes" ; then
- USE_X86ASM="yes"
-else
- USE_X86ASM="no"
-fi
-
-if test "x${have_solaris}" = "xyes" ; then
- HAVE_SOLARIS="yes"
-else
- HAVE_SOLARIS="no"
-fi
-
-if test "x${have_sun}" = "xyes" ; then
- HAVE_SUN="yes"
-else
- HAVE_SUN="no"
-fi
-
-
-### ---------------------------------------------------------------------------
plugindir="$libdir/audacious"
@@ -10416,7 +9630,7 @@ AUDACIOUS_DEFINES="$AUDACIOUS_DEFINES -DHARDCODE_ICONFILE=\\\"${datadir}/pixmaps
### ---------------------------------------------------------------------------
-ac_config_files="$ac_config_files audacious.pc audclient.pc buildsys.mk extra.mk man/audtool.1 man/audacious.1"
+ac_config_files="$ac_config_files audacious.pc audclient.pc buildsys.mk extra.mk man/audtool.1 man/audacious.1 src/libaudcore/audio.h"
@@ -10954,7 +10168,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by audacious $as_me 2.5.0, which was
+This file was extended by audacious $as_me 3.2, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -11020,7 +10234,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-audacious config.status 2.5.0
+audacious config.status 3.2
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -11138,6 +10352,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
# Capture the value of obsolete ALL_LINGUAS because we need it to compute
# POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
# from automake < 1.5.
@@ -11145,7 +10360,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Capture the value of LINGUAS because we need it to compute CATALOGS.
LINGUAS="${LINGUAS-%UNSET%}"
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
_ACEOF
@@ -11156,14 +10370,15 @@ for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
"audacious.pc") CONFIG_FILES="$CONFIG_FILES audacious.pc" ;;
"audclient.pc") CONFIG_FILES="$CONFIG_FILES audclient.pc" ;;
"buildsys.mk") CONFIG_FILES="$CONFIG_FILES buildsys.mk" ;;
"extra.mk") CONFIG_FILES="$CONFIG_FILES extra.mk" ;;
"man/audtool.1") CONFIG_FILES="$CONFIG_FILES man/audtool.1" ;;
"man/audacious.1") CONFIG_FILES="$CONFIG_FILES man/audacious.1" ;;
+ "src/libaudcore/audio.h") CONFIG_FILES="$CONFIG_FILES src/libaudcore/audio.h" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
@@ -11725,6 +10940,101 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
"po-directories":C)
for ac_file in $CONFIG_FILES; do
# Support "outfile[:infile[:infile...]]"
@@ -11838,101 +11148,6 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
;;
esac
done ;;
- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
- # Autoconf 2.62 quotes --file arguments for eval, but not when files
- # are listed without --file. Let's play safe and only enable the eval
- # if we detect the quoting.
- case $CONFIG_FILES in
- *\'*) eval set x "$CONFIG_FILES" ;;
- *) set x $CONFIG_FILES ;;
- esac
- shift
- for mf
- do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
- # We used to match only the files named `Makefile.in', but
- # some people rename them; so instead we look at the file content.
- # Grep'ing the first line is not enough: some people post-process
- # each Makefile.in and add a new line on top of each file to say so.
- # Grep'ing the whole file is not good either: AIX grep has a line
- # limit of 2048, but all sed's we know have understand at least 4000.
- if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
- dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- else
- continue
- fi
- # Extract the definition of DEPDIR, am__include, and am__quote
- # from the Makefile without running `make'.
- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
- test -z "$DEPDIR" && continue
- am__include=`sed -n 's/^am__include = //p' < "$mf"`
- test -z "am__include" && continue
- am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
- # When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n 's/^U = //p' < "$mf"`
- # Find all dependency output files, they are included files with
- # $(DEPDIR) in their names. We invoke sed twice because it is the
- # simplest approach to changing $(DEPDIR) to its actual value in the
- # expansion.
- for file in `sed -n "
- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
- fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir=$dirpart/$fdir; as_fn_mkdir_p
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
-}
- ;;
esac
done # for ac_tag
@@ -11988,9 +11203,6 @@ echo " Automatic character code detection: $enable_chardet"
echo " D-Bus support: $enable_dbus"
echo " Session management (eggsm) $enable_sm"
echo ""
-echo " SSE2: $enable_sse2"
-echo " AltiVec: $enable_altivec"
-echo ""
if test "x$AUDACIOUS_PATH" != "xno" && test "x$prefix/bin/audacious" != "x$AUDACIOUS_PATH"; then
audlocation=`dirname $AUDACIOUS_PATH`
diff --git a/configure.ac b/configure.ac
old mode 100755
new mode 100644
index 851d662..a72d966
--- a/configure.ac
+++ b/configure.ac
@@ -2,49 +2,70 @@ dnl ***
dnl *** Process this file with autoconf to produce a configure script.
dnl ***
-dnl Require autoconf 2.59 or later
-AC_PREREQ([2.59])
-
dnl Initialize
-AC_INIT([audacious], [2.5.0])
-AC_COPYRIGHT([(C) 2005-2011 Audacious Team])
-AC_CANONICAL_HOST
-AC_CANONICAL_TARGET
-AC_GNU_SOURCE
-
-AC_CONFIG_HEADERS([config.h])
-PKG_PROG_PKG_CONFIG
-
-dnl buildsystem bootstrap
-dnl =====================
-dnl XXX kludge for FreeBSD
-if test -d "/usr/X11R6/include"; then
- CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
-fi
+dnl ==========
+AC_PREREQ([2.59])
+AC_INIT([audacious], [3.2])
+AC_COPYRIGHT([(C) 2005-2012 Audacious Team])
AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])
AC_SUBST([VERSION], [AC_PACKAGE_VERSION])
AC_DEFINE_UNQUOTED([PACKAGE], "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED([VERSION], "$VERSION", [Version number of package])
+AC_CANONICAL_HOST
+AC_CANONICAL_TARGET
+AC_CONFIG_HEADERS([config.h])
+
+AUD_COMMON_PROGS
+
BUILDSYS_INIT
-BUILDSYS_PROG_IMPLIB
BUILDSYS_SHARED_LIB
-IMPLIB_LIBS=""
-AC_SUBST([IMPLIB_LIBS])
+dnl Byte order
+dnl ==========
+AC_C_BIGENDIAN([BIGENDIAN=1], [BIGENDIAN=0],
+ [AC_MSG_ERROR([Unknown machine byte order])],
+ [AC_MSG_ERROR([Universal builds are not supported, sorry])])
+AC_SUBST([BIGENDIAN])
+
+dnl Headers and functions
+dnl ===============================
+AC_CHECK_HEADERS([execinfo.h regex.h rxposix.h rx/rxposix.h])
+AC_CHECK_FUNCS([sigwait backtrace])
+
+AC_MSG_CHECKING([for cexpf])
+OLD_LIBS="$LIBS"
+LIBS="$LIBS -lm"
+AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <complex.h>
+ #include <stdio.h>],
+ [printf ("%f", crealf (cexpf (1)))])],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_CEXPF], [1], [Define if cexpf is present])],
+ [AC_MSG_RESULT(no)])
+LIBS="$OLD_LIBS"
+
+AC_MSG_CHECKING([for /proc/self/exe])
+if test -e "/proc/self/exe" ; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE([HAVE_PROC_SELF_EXE], [1], [Define if the /proc/self/exe symlink is supported])
+else
+ AC_MSG_RESULT(no)
+fi
+
+dnl gettext
+dnl =======
+AM_GNU_GETTEXT([external])
+if test "$MSGFMT" = ":" ; then
+ AC_MSG_ERROR([msgfmt was not found; have you installed gettext?])
+fi
dnl Build stamp
dnl ===========
AC_ARG_WITH([buildstamp],
AS_HELP_STRING([--with-buildstamp=XXX], [Set build stamp to XXX]),
AC_DEFINE_UNQUOTED([BUILDSTAMP], "$withval", [Build stamp]),
- AC_DEFINE_UNQUOTED([BUILDSTAMP], "UNSUPPORTED VERSION", [Build stamp]))
-
-
-dnl Large file support
-dnl ==================
-CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
+ AC_DEFINE_UNQUOTED([BUILDSTAMP], "unknown build", [Build stamp]))
dnl Activation of text console (MS-Windows ONLY)
dnl ============================================
@@ -54,54 +75,41 @@ AC_ARG_ENABLE([text-console],
[use_text_console=no]
)
-dnl Plugin stuff
-dnl ========================
-SHARED_SUFFIX="$PLUGIN_SUFFIX"
-AC_SUBST([SHARED_SUFFIX])
-AC_DEFINE_UNQUOTED([SHARED_SUFFIX], "${SHARED_SUFFIX}",
- [Define the shared module suffix extension on your platform.])
-
-AC_MSG_CHECKING([for Windows or Macintosh])
+AC_MSG_CHECKING([for Microsoft Windows])
case "$target" in
*mingw*)
- AC_MSG_RESULT([Windows])
+ AC_MSG_RESULT([yes])
+ have_mswindows=yes
if test "x$use_text_console" = "xno"; then
LDFLAGS="$LDFLAGS -Wl,-subsystem,windows"
fi
;;
- *apple*)
- AC_MSG_RESULT([Macintosh])
- LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Carbon"
- ;;
*)
AC_MSG_RESULT([no])
+ have_mswindows=no
;;
esac
-dnl GNU gettext
-dnl ===========
-AM_GNU_GETTEXT([external])
-
-if test "$MSGFMT" = ":" ; then
- AC_MSG_ERROR([msgfmt was not found! You may need to install gettext.])
-fi
+AUD_CONDITIONAL([HAVE_MSWINDOWS], [have_mswindows])
-
-dnl Checks common for core and plugins
-dnl ==================================
+dnl Check for GTK+
+dnl ==============
AC_ARG_ENABLE([gtk3],
- [AS_HELP_STRING([--enable-gtk3], [Use GTK3 instead of GTK2])],
- [use_gtk3=yes], [use_gtk3=no])
-
-AUD_COMMON_PROGS
+ [AS_HELP_STRING([--disable-gtk3], [Use GTK2 even if GTK3 is present])],
+ [use_gtk3=$enableval], [use_gtk3=yes])
+if test $use_gtk3 = yes ; then
+ PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.0.0], [use_gtk3=yes], [use_gtk3=no])
+fi
-dnl Check for headers and functions
-dnl ===============================
-AC_CHECK_HEADERS([unistd.h fcntl.h limits.h fts.h execinfo.h sys/errno.h regex.h rxposix.h rx/rxposix.h])
-AC_CHECK_FUNCS([sigwait])
+if test $use_gtk3 = no ; then
+ PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.12.0], [use_gtk3=no],
+ AC_MSG_ERROR([Cannot find GTK headers. Aborting ...]))
+fi
+AC_SUBST([GTK_LIBS])
+AC_SUBST([GTK_CFLAGS])
### ---------------------------------------------------------------------------
dnl Path settings
@@ -118,18 +126,16 @@ fi
AUD_ARG_ENABLE([rpath], [yes], [disable rpath])
if test "x$enable_rpath" = "xyes"; then
- AUDLDFLAGS="-Wl,-rpath,${libdir}"
+ LDFLAGS="$LDFLAGS -Wl,-rpath,${libdir}"
fi
-AC_SUBST([AUDLDFLAGS])
-
### ---------------------------------------------------------------------------
dnl Chardet support
dnl ===============
AUD_ARG_ENABLE([chardet], [yes],
[charset detection support],
[
- PKG_CHECK_MODULES([LIBGUESS], [libguess], [enable_chardet=yes], [enable_chardet=no])
+ PKG_CHECK_MODULES([LIBGUESS], [libguess >= 1.1], [enable_chardet=yes], [enable_chardet=no])
if test "x$enable_chardet" = "xyes"; then
AC_DEFINE([USE_CHARDET], 1, [Define if character set detection enabled])
@@ -153,15 +159,10 @@ AUD_ARG_ENABLE([dbus], [yes],
if test "x$DBUS_BINDING_TOOL" = "xno" || test "x$GLIB_GENMARSHAL" = "xno" || test "x$enable_dbus" = "xno" ; then
enable_dbus="no"
else
- ADD_PC_REQUIRES([dbus-1 >= 0.60])
- ADD_PC_REQUIRES([dbus-glib-1 >= 0.60])
AC_DEFINE([USE_DBUS], 1, [Define if D-Bus support enabled])
- AC_DEFINE([DBUS_SERVICES_DIR], "$datadir/dbus-1/services",
- [Location of D-Bus services directory])
- LIBAUDCLIENT_LDFLAGS="$AUDLDFLAGS -laudclient"
+ LIBAUDCLIENT_LDFLAGS="-laudclient"
AC_SUBST([DBUS_CFLAGS])
AC_SUBST([DBUS_LIBS])
- AC_SUBST([DBUS_SERVICES_DIR])
AC_SUBST([DBUS_BINDING_TOOL])
AC_SUBST([LIBAUDCLIENT_LDFLAGS])
fi
@@ -268,65 +269,6 @@ AUD_ARG_ENABLE([sm], [yes],
AUD_CONDITIONAL([USE_EGGSM], [enable_sm])
### ---------------------------------------------------------------------------
-dnl Ugly system checks
-dnl ==================
-AC_MSG_CHECKING([if __ELF__ is defined])
-AC_EGREP_CPP([yes],
- [#ifdef __ELF__
- yes
- #endif
- ],
- [is_elf=yes],
- [is_elf=no]
-)
-AC_MSG_RESULT([$is_elf])
-
-have_solaris=no
-have_sun=no
-ARCH_DEFINES=""
-case $host in
- *-*-openbsd* | *-*-netbsd* | *-*-mirbsd*)
- have_sun=yes
- if test "x${is_elf}" = "xno"; then
- AC_DEFINE([SYMBOL_PREFIX], "_", [Define to symbol prefix, if any])
- fi
- ;;
- *-*-darwin*)
- AC_DEFINE([SYMBOL_PREFIX], "_", [Define to symbol prefix, if any])
- ;;
- *-hpux-*)
- ARCH_DEFINES="-DHPUX"
- ;;
- *-*-solaris* | *-*-sunos*)
- have_solaris=yes
- ;;
-esac
-
-arch_type=other
-x86_asm=no
-case $host in
- i386-*-* | i486-*-* | i586-*-* | i686-*-* | i86pc-*-*)
- arch_type=ix86
- case $host in
- *-*-netbsd* | *-*openbsd*)
- ;;
- *)
- ARCH_DEFINES="-DI386_ASSEM"
- x86_asm=yes
- ;;
- esac
- ;;
-esac
-
-AC_SUBST([ARCH_DEFINES])
-
-dnl XXX delete ASAP -nenolod
-AUD_CONDITIONAL([ARCH_X86], [arch_type], [ix86])
-AUD_CONDITIONAL([USE_X86ASM], [x86_asm])
-AUD_CONDITIONAL([HAVE_SOLARIS], [have_solaris])
-AUD_CONDITIONAL([HAVE_SUN], [have_sun])
-
-### ---------------------------------------------------------------------------
dnl Define plugin directories
dnl =========================
plugindir="$libdir/audacious"
@@ -376,6 +318,7 @@ AC_CONFIG_FILES([
extra.mk
man/audtool.1
man/audacious.1
+ src/libaudcore/audio.h
])
BUILDSYS_TOUCH_DEPS
@@ -399,9 +342,6 @@ echo " Automatic character code detection: $enable_chardet"
echo " D-Bus support: $enable_dbus"
echo " Session management (eggsm) $enable_sm"
echo ""
-echo " SSE2: $enable_sse2"
-echo " AltiVec: $enable_altivec"
-echo ""
if test "x$AUDACIOUS_PATH" != "xno" && test "x$prefix/bin/audacious" != "x$AUDACIOUS_PATH"; then
audlocation=`dirname $AUDACIOUS_PATH`
diff --git a/contrib/migrate_config.sh b/contrib/migrate_config.sh
deleted file mode 100644
index 4def7a1..0000000
--- a/contrib/migrate_config.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# This script is used to convert the old $HOME/.audacious config dir
-# to the new XDG basedir equivalent.
-#
-
-: ${BMP_RCPATH:=".audacious"}
-: ${XDG_CONFIG_HOME:="$HOME/.config"}
-: ${XDG_DATA_HOME:="$HOME/.local/share"}
-: ${XDG_CACHE_HOME:="$HOME/.cache"}
-
-rm -fr "$XDG_CONFIG_HOME/audacious"
-rm -fr "$XDG_DATA_HOME/audacious"
-rm -fr "$XDG_CACHE_HOME/audacious"
-
-mkdir -p "$XDG_CONFIG_HOME/audacious"
-mkdir -p "$XDG_DATA_HOME/audacious/Plugins"
-mkdir -p "$XDG_DATA_HOME/audacious/Skins"
-mkdir -p "$XDG_CACHE_HOME/audacious/thumbs"
-
-mv "$HOME/$BMP_RCPATH/config" "$XDG_CONFIG_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/playlist.xspf" "$XDG_CONFIG_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/Plugins" "$XDG_DATA_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/Skins" "$XDG_DATA_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/accels" "$XDG_CONFIG_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/log" "$XDG_CONFIG_HOME/audacious/"
-
-echo "Conversion done. Please move the remaining files manually."
diff --git a/contrib/win32/audacious.ico b/contrib/win32/audacious.ico
old mode 100755
new mode 100644
diff --git a/contrib/win32/notes.rtf b/contrib/win32/notes.rtf
old mode 100755
new mode 100644
index c12a318..0a1b7a9
--- a/contrib/win32/notes.rtf
+++ b/contrib/win32/notes.rtf
@@ -2,7 +2,7 @@
{\b Notes for Building Audacious on Windows}
\par
\par {John Lindgren}
-\par {April 5, 2011}
+\par {December 29, 2011}
\par
\par {This is not intended to be a complete set of instructions, but merely an outline. Use at your own risk, etc., etc.}
\par
@@ -11,7 +11,7 @@
\par {\ul Install MinGW}
\par
\par {Download and run:}
-\par {\fs20 https://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20110316/mingw-get-inst-20110316.exe/download}
+\par {\fs20 http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20110802/mingw-get-inst-20110802.exe/download}
\par
\par {When prompted, use these options:}
\par {\fs20 Use pre-packaged repository catalogues}
@@ -24,65 +24,55 @@
\par {\ul Install GTK+}
\par
\par {Download and unzip to }{\fs20 C:\\GTK}{:}
-\par {\fs20 http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.5-20090731_win32.zip}
+\par {\fs20 http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.8-20111122_win32.zip}
\par
-\par {This is the last version to support Windows 2000. If you only care about XP or later, you can use a newer version.}
-\par
-\par {Copy }{\fs20 C:\\GTK\\share\\themes\\MS-Windows\\gtk-2.0\\gtkrc}{ to }{\fs20 C:\\GTK\\etc\\gtk-2.0}{. Apply the patch }{\fs20 gtkrc.diff}{.}
\par {Copy }{\fs20 C:\\GTK\\share\\aclocal\\pkg.m4}{ to }{\fs20 C:\\MinGW\\share\\aclocal}{.}
+\par {Apply the patch }{\fs20 gtkrc.diff}{ to }{\fs20 C:\\GTK\\share\\themes\\MS-Windows\\gtk-2.0\\gtkrc}{.}
\par
\par {\ul Install SDL}
\par
-\par {Download and unzip to }{\fs20 C:\\SDL}{:}
-\par {\fs20 http://www.libsdl.org/release/SDL-1.2.14-win32.zip}
+\par {Download and unzip to }{\fs20 C:\\libs}{:}
\par {\fs20 http://www.libsdl.org/release/SDL-devel-1.2.14-mingw32.tar.gz}
\par
-\par {Apply the patch }{\fs20 sdl-config.diff}{ to }{\fs20 C:\\SDL\\bin\\sdl-config}{.}
-\par {Copy }{\fs20 C:\\SDL\\share\\aclocal\\sdl.m4}{ to }{\fs20 C:\\MinGW\\share\\aclocal}{.}
+\par {Apply the patch }{\fs20 sdl-config.diff}{ to }{\fs20 C:\\libs\\bin\\sdl-config}{.}
+\par {Copy }{\fs20 C:\\libs\\share\\aclocal\\sdl.m4}{ to }{\fs20 C:\\MinGW\\share\\aclocal}{.}
\par
\par {\ul Set up system paths}
\par
\par {Under }{\fs20 My Computer -> Properties -> Advanced -> Environment Variables}{, set:}
-\par {\fs20 PATH=C:\\MinGW\\bin;C:\\MinGW\\msys\\1.0\\bin;C:\\GTK\\bin;C:\\SDL\\bin;C:\\aud\\bin}
-\par {\fs20 PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/aud/lib/pkgconfig}
-\par {\fs20 C_INCLUDE_PATH=/C/GTK/include:/C/aud/include}
-\par {\fs20 CPLUS_INCLUDE_PATH=/C/GTK/include:/C/aud/include}
-\par {\fs20 LIBRARY_PATH=/C/GTK/lib:/C/aud/lib}
+\par {\fs20 PATH=C:\\MinGW\\bin;C:\\MinGW\\msys\\1.0\\bin;C:\\GTK\\bin;C:\\libs\\bin;C:\\aud\\bin}
+\par {\fs20 PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/libs/lib/pkgconfig:/C/aud/lib/pkgconfig}
+\par {\fs20 C_INCLUDE_PATH=/C/GTK/include:/C/libs/include}
+\par {\fs20 CPLUS_INCLUDE_PATH=/C/GTK/include:/C/libs/include}
+\par {\fs20 LIBRARY_PATH=/C/GTK/lib:/C/libs/lib}
\par
\par {\ul Install libxml}
\par
-\par {Download and unzip to C:\\aud:}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/MSYS/libxml2/libxml2-2.7.6-1/libxml2-2.7.6-1-msys-1.0.13-dev.tar.lzma/download}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/MSYS/libxml2/libxml2-2.7.6-1/libxml2-2.7.6-1-msys-1.0.13-dll-2.tar.lzma/download}
-\par
-\par {Apply the patch }{\fs20 xml2-config.diff}{ to }{\fs20 C:\\aud\\bin\\xml2-config}{.}
-\par
-\par {\ul Install regex}
-\par
-\par {Download and unzip to }{\fs20 C:\\aud}{:}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-dev.tar.gz/download}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-bin.tar.gz/download}
-\par
-\par {\ul Install libmowgli}
+\par {Download and unzip to }{\fs20 C:\\libxml}{:}
+\par {\fs20 ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz}
\par
-\par {Download and unzip to }{\fs20 C:\\libmowgli}{:}
-\par {\fs20 http://distfiles.atheme.org/libmowgli-0.9.50.tar.bz2}
+\par {Apply the patch }{\fs20 libxml-testThreads.c.diff}{ to }{\fs20 C:\\libxml\\testThreads.c}{.}
\par
\par {In the MinGW shell:}
-\par {\fs20 cd /C/libmowgli}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 cd /C/libxml}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
-\par {\ul Install libmcs}
+\par {\ul Install regex}
+\par
+\par {Download and unzip to }{\fs20 C:\\libs}{:}
+\par {\fs20 http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-dev.tar.gz/download}
+\par {\fs20 http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-bin.tar.gz/download}
+\par
+\par {\ul Install mpg123}
\par
-\par {Download and unzip to }{\fs20 C:\\libmcs}{:}
-\par {\fs20 http://hg.atheme.org/libmcs/libmcs/archive/tip.tar.bz2}
+\par {Download and unzip to }{\fs20 C:\\mpg123}{:}
+\par {\fs20 http://mpg123.de/download/mpg123-1.13.4.tar.bz2}
\par
\par {In the MinGW shell:}
-\par {\fs20 cd /C/libmcs}
-\par {\fs20 ./autogen.sh}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 cd /C/mpg123}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -95,18 +85,18 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libfaad}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
\par {\ul Install libsndfile}
\par
\par {Download and unzip to }{\fs20 C:\\libsndfile}{:}
-\par {\fs20 http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.24.tar.gz}
+\par {\fs20 http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libsndfile}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -117,21 +107,20 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libbs2b}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
\par {\ul Install libcdio}
\par
\par {Download and unzip to }{\fs20 C:\\libcdio}{:}
-\par {\fs20 http://ftp.gnu.org/gnu/libcdio/libcdio-0.82.tar.bz2}
+\par {\fs20 http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.bz2}
\par
-\par {Apply the patch }{\fs20 iso9660.c.diff}{ to }{\fs20 C:\\libcdio\\lib\\iso9660\\iso9660.c}{.}
\par {Apply the patch }{\fs20 libcdio-util.c.diff}{ to }{\fs20 C:\\libcdio\\src\\util.c}{.}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libcdio}
-\par {\fs20 ./configure --prefix=/C/aud --disable-rock}
+\par {\fs20 ./configure --prefix=/C/libs --disable-rock}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -142,7 +131,7 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libcddb}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -153,18 +142,18 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libcue}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
\par {\ul Install LAME}
\par
\par {Download and unzip to }{\fs20 C:\\lame}{:}
-\par {\fs20 https://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz/download}
+\par {\fs20 http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.3.tar.gz/download}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/lame}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -178,20 +167,20 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libflac}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
-\par {Apply the patch }{\fs20 flac.pc.diff}{ to }{\fs20 C:\\aud\\lib\\pkgconfig\\flac.pc}{.}
+\par {Apply the patch }{\fs20 flac.pc.diff}{ to }{\fs20 C:\\libs\\lib\\pkgconfig\\flac.pc}{.}
\par
\par {\ul Install libogg}
\par
\par {Download and unzip to }{\fs20 C:\\libogg}{:}
-\par {\fs20 http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz}
+\par {\fs20 http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libogg}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -202,31 +191,31 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libvorbis}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
\par {\ul Install libneon}
\par
\par {Download and unzip to }{\fs20 C:\\libneon}{:}
-\par {\fs20 http://www.webdav.org/neon/neon-0.29.5.tar.gz}
+\par {\fs20 http://www.webdav.org/neon/neon-0.29.6.tar.gz}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libneon}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
-\par {Apply the patch }{\fs20 neon.pc.diff}{ to }{\fs20 C:\\aud\\lib\\pkgconfig\\neon.pc}{.}
+\par {Apply the patch }{\fs20 neon.pc.diff}{ to }{\fs20 C:\\libs\\lib\\pkgconfig\\neon.pc}{.}
\par
\par {\ul Install libsamplerate}
\par
\par {Download and unzip to }{\fs20 C:\\libsamplerate}{:}
-\par {\fs20 http://www.mega-nerd.com/SRC/libsamplerate-0.1.7.tar.gz}
+\par {\fs20 http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libsamplerate}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
\par {\fs20 make}
\par {\fs20 make install}
\par
@@ -239,18 +228,28 @@
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/libwavpack}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
+\par {\fs20 make}
+\par {\fs20 make install}
+\par
+\par {\ul Install FFmpeg}
+\par
+\par {Download and unzip to }{\fs20 C:\\ffmpeg}{:}
+\par {\fs20 http://ffmpeg.org/releases/ffmpeg-0.9.tar.bz2}
+\par
+\par {In the MinGW shell:}
+\par {\fs20 cd /C/ffmpeg}
+\par {\fs20 ./configure --prefix=/C/libs --disable-yasm}
\par {\fs20 make}
\par {\fs20 make install}
\par
\par {\ul Install Audacious}
\par
\par {Download and unzip to }{\fs20 C:\\audacious}{:}
-\par {\fs20 http://hg.atheme.org/audacious/audacious/archive/tip.tar.bz2}
+\par {\fs20 http://distfiles.audacious-media-player.org/audacious-3.2.tar.bz2}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/audacious}
-\par {\fs20 ./autogen.sh}
\par {\fs20 ./configure --prefix=/C/aud}
\par {\fs20 make}
\par {\fs20 make install}
@@ -258,17 +257,11 @@
\par {\ul Install Audacious plugins}
\par
\par {Download and unzip to }{\fs20 C:\\audacious-plugins}{:}
-\par {\fs20 http://hg.atheme.org/audacious-plugins/audacious-plugins/archive/tip.tar.bz2}
+\par {\fs20 http://distfiles.audacious-media-player.org/audacious-plugins-3.2.tar.bz2}
\par
\par {In the MinGW shell:}
\par {\fs20 cd /C/audacious-plugins}
-\par {\fs20 ./autogen.sh}
\par {\fs20 ./configure --prefix=/C/aud}
\par {\fs20 make}
\par {\fs20 make install}
-\par
-\par {\ul Tweaks}
-\par
-\par {Use GIMP to create an .ico file, and embed it in audacious.exe using this software:}
-\par {\fs20 http://www.wilsonc.demon.co.uk/d10resourceeditor.htm}
}
diff --git a/contrib/win32/patches/iso9660.c.diff b/contrib/win32/patches/iso9660.c.diff
deleted file mode 100644
index 2187e12..0000000
--- a/contrib/win32/patches/iso9660.c.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- iso9660.c.0 2011-04-01 20:17:36 -0500
-+++ iso9660.c 2011-04-01 20:16:43 -0500
-@@ -811,9 +811,12 @@
- {
- mode_t mode = 0;
-
-+#ifdef HAVE_ROCK
- if (yep == p_iso_dirent->rr.b3_rock) {
- return iso9660_get_posix_filemode_from_rock(&p_iso_dirent->rr);
-- } else if (p_iso_dirent->b_xa) {
-+ } else
-+#endif
-+ if (p_iso_dirent->b_xa) {
- return iso9660_get_posix_filemode_from_xa(p_iso_dirent->xa.attributes);
- }
- return mode;
diff --git a/contrib/win32/patches/libxml-testThreads.c.diff b/contrib/win32/patches/libxml-testThreads.c.diff
new file mode 100644
index 0000000..c8177fe
--- /dev/null
+++ b/contrib/win32/patches/libxml-testThreads.c.diff
@@ -0,0 +1,10 @@
+--- testThreads.c.0 2010-10-12 02:25:32 -0400
++++ testThreads.c 2011-12-28 18:36:34 -0500
+@@ -107,7 +107,6 @@
+
+ for (i = 0; i < num_threads; i++) {
+ results[i] = NULL;
+- tid[i] = (pthread_t) -1;
+ }
+
+ for (i = 0; i < num_threads; i++) {
diff --git a/contrib/win32/patches/neon.pc.diff b/contrib/win32/patches/neon.pc.diff
old mode 100755
new mode 100644
index 2b7e98f..b1a7cc0
--- a/contrib/win32/patches/neon.pc.diff
+++ b/contrib/win32/patches/neon.pc.diff
@@ -1,9 +1,9 @@
---- neon.pc.0 2011-04-02 11:39:12 -0500
-+++ neon.pc 2011-04-02 11:45:23 -0500
+--- neon.pc.orig 2011-11-07 22:09:55 -0500
++++ neon.pc 2011-11-07 22:11:38 -0500
@@ -7,5 +7,5 @@
Description: HTTP/WebDAV client library
- Version: 0.29.5
- Libs.private: -lintl -lws2_32 -lws2_32 -lz -L/C/aud/lib -lxml2 -lz -liconv -lm
--Libs: -L${libdir} -lneon
+ Version: 0.29.6
+ Libs.private: -lintl -lws2_32 -lws2_32 -lz -lexpat
+-Libs: -L${libdir} -lneon
+Libs: -L${libdir} -lneon -lws2_32 -lintl
- Cflags: -I${includedir}/neon
+ Cflags: -I${includedir}/neon
diff --git a/contrib/win32/patches/sdl-config.diff b/contrib/win32/patches/sdl-config.diff
index de4d91b..2c5706c 100644
--- a/contrib/win32/patches/sdl-config.diff
+++ b/contrib/win32/patches/sdl-config.diff
@@ -2,9 +2,9 @@
+++ sdl-config 2011-04-02 00:42:07 -0500
@@ -1,6 +1,6 @@
#!/bin/sh
-
+
-prefix=/usr/local
-+prefix=/C/SDL
++prefix=/C/libs
exec_prefix=${prefix}
exec_prefix_set=no
libdir=${exec_prefix}/lib
diff --git a/contrib/win32/patches/xml2-config.diff b/contrib/win32/patches/xml2-config.diff
deleted file mode 100644
index bbbb115..0000000
--- a/contrib/win32/patches/xml2-config.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- xml2-config.0 2010-02-01 17:38:19 -0500
-+++ xml2-config 2011-04-01 23:29:23 -0500
-@@ -1,6 +1,6 @@
- #! /bin/sh
-
--prefix=/usr
-+prefix=/C/aud
- exec_prefix=${prefix}
- includedir=${prefix}/include
- libdir=${exec_prefix}/lib
diff --git a/doc/HACKING b/doc/HACKING
deleted file mode 100644
index 6dc40d5..0000000
--- a/doc/HACKING
+++ /dev/null
@@ -1,127 +0,0 @@
-Hacking / coding guide for Audacious and Audacious-plugins
-==========================================================
-(C) Copyright 2008 Audacious Development Team
-
-
-Preamble
-========
-
-This document describes the guidelines for people who wish to work on
-improving or cleaning up Audacious media player, or any of the plugins
-we distribute in the plugins package.
-
-It is probably obvious to anyone who has taken a look into the depths
-of Audacious source, that many of these guidelines are not actually
-followed currently in all places, if at all.
-
-In fact, the purpose of this document is to act as a target to aim at,
-when noticing and cleaning up uncompliant code.. or writing new code.
-
-
-Coding guidelines
-=================
-- Public functions in Audacious core SHOULD be documented via Doxygen
- comments! In this case "public" means any functions that span modules
- OR are available to plugins.
-
- Of course, most functions currently lack documentation. If you have
- spare time, improve the situation.
-
-
-- We use Glib for portability. This means that we have sized integer types
- such as gint{16,32,64}, etc. and shorthand types like guint and guchar
- provided, so please do use them.
-
- Arguably C99 provides inttypes.h with similar types, but C99 support
- may not be complete on all platforms, it is both safer and more uniform
- to use glib types.
-
-
-- Use other glib functionality, especially string handling like:
- * g_snprintf(), g_strdup_printf(), g_strdup() ...
-
-
-- However, avoid following Glib things:
- * GString - Useless in most cases compared to normal 'C' string functions
- and introduces conversions back and forth.
-
- * GList - GList is slow, either use GQueue or libmowgli lists.
-
-
-- Be sure to know when you are handling UTF-8 or something else! Glib offers
- special g_ascii_*() functions for certain operations that you might need
- when handling non-unicode strings.
-
-
-- When reading data from files, it's usually a BIG mistake to read structs
- directly from the stream! This is not portable, as C does not guarantee
- a struct not to have alignment padding (unless the struct is "packed",
- but see below.) In effect sizeof(struct), unless packed, on some platform
- may not be equal to some other platform.
-
- Making struct "packed" via the C packed qualifier or "#pragma pack()" is
- a solution, but this must be used with care. Unaligned memory access
- causes performance penalties, and may cause other, more serious problems
- in some cases. For example, code written in assembler may not know about
- the un-alignment, and may thus fail with 'bus errors' on platforms that
- strictly required aligned data.
-
- The 100% safe way is to read individual members of the struct one by one
- from the stream. This may be bothersome, but by doing so, your code
- will be portable for sure.
-
-
-- Always use Glib sized types for reading integer data from file streams.
- Using plain C types (like 'long int' for example) is not wise, because
- they may be of different size on different platforms depending on the
- platform ABI. For example, on some 64-bit platforms, 'long int' is
- 64 bits, while on 32-bit platforms it is 32 bits.
-
-
-- Audacious core provides some helper functions for reading endian-dependant
- integers from VFS streams (aud_vfs_fget_{le,be}{16,32,64}), see vfs.h and
- documentation for more information.
-
-
-- Avoid reinventing wheels, avoid code duplication. If same thing is done
- in two places, it should be in a library, or possibly in Audacious core.
- Discuss about it with fellow developers.
-
-
-- In the core, DO NOT WRITE CODE THAT IS DEPENDENT ON A SPECIFIC UI OR
- INTERFACE. The core should NEVER care what interface is in use.
-
-
-Additional style guidelines
-===========================
-
-- Indentation: Use the same indentation style (also spaces vs. tabs)
- as the file you are editing. In new files/code, use indentation of
- 4 spaces (no tabs). When moving functions to new files, PLEASE
- reindent the code.
-
-- Whitespace usage in code:
-
- a = 1;
-
- if (b == d && !strcmp(a, c)) ...
-
- gchar *foo, *bar;
-
- void hello(const gchar *baz);
-
-- Blocks:
-
- while (...)
- {
- do_something(...);
- }
-
- if (...)
- {
- do_stuff();
- }
- else
- {
- do_other_stuff();
- }
diff --git a/doc/Mercurial_guide.txt b/doc/Mercurial_guide.txt
deleted file mode 100644
index 3ac405a..0000000
--- a/doc/Mercurial_guide.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-Simple guide to few common Mercurial DVCS use-cases
-===================================================
-Written by Matti 'ccr' Hamalainen <ccr at tnsp.org>, 2009
-
-
-Tricks of the trade
-===================
-
- - Use 'fetch' extension instead of 'pull' and 'update'. It takes care
- of automatic merges .. well, automatically. If a merge fails, see
- the merging section of this guide.
-
- - Always remember to 'fetch' before 'push'. Mercurial will complain
- about creating new heads in the remote repository if you haven't
- merged the remote changes to your own before the push.
-
- - Learn to utilize local clones of repositories for temporary
- testing, etc. Cloning a local repository is fast (under Linux
- the files are initially hardlinked.)
-
- For example, if you wish to quickly test something, but have
- just been editing files in your working repository, just clone it
- to another, 'hg clone orig tmp'. Tmp will be a copy of the
- repository state, so any non-committed changes from 'orig' will
- not be there.
-
- - Did some silly edits in your repo, that you don't want to commit?
- 'hg revert file.c' will get rid of the changes in 'file.c' or
- just nuke all the non-committed changes via 'hg revert -a'.
-
- Oh, those reverts will actually be backed up to files ending to
- '.orig' (e.g. 'file.c.orig'), so you can usually recover from
- accidental reverts too.
-
- - Strive to write good commit messages. ;)
-
-
-Rollback and what it does
-=========================
-'hg rollback' is a handy command that can be used to roll back exactly
-_one_ action performed in the local repository clone. Basically it is
-like rewinding the commit clock back by one commit, erasing that one
-commit/action from history completely. This is why it should NOT be
-used on repositories other people might have access to. (Your local
-clone is usually ok, of course.)
-
-Rollback function is sometimes useful, if you make some mistake that
-you immediately realize after committing, like a typo in commit message
-for example. In such situation, you can run:
-
-$ hg rollback
-
-In your local clone, and then do the commit again, no harm done. Another
-example of rollback's usefulness would be in abortion of 'backout',
-explained to more detail in next section.
-
-Do notice that rollbacks cannot (and should not) be done after pushes
-etc. If your changeset has propagated, you will need to use 'hg backout'
-which will reverse the changes of the changeset, but preserves history.
-
-
-Backing out a changeset
-=======================
-0) Ensure we are up to date:
-
- $ hg fetch
-
-1) Back out or "revert" (as in Subversion and GIT terms) a changeset
-
- $ hg backout --merge [-r] <changeset_id or revision>
-
-2a) Actually push it to the upstream repository. You will need to commit
- the backout merge - the backout itself is committed automatically
- but the merge isn't. Why, you ask? Because the merge might not go
- without conflicts, and is thus left for the user to finish.
-
- However, if there were no conflicts, you can commit:
-
- $ hg ci
-
- And then push to upstream:
-
- $ hg push
-
- If there are complaints about multiple heads, you need to 'pull'
- or preferably 'fetch', as there have been changes in the upstream
- which you need to merge to your repository clone.
-
- After fetching, push again.
-
- If there were merging conflicts during fetch, see the merge section
- of this guide.
-
-
-2b) Oops, I didn't actually want to do that backout at all! In this
- situation, you can do a local rollback if you haven't done anything
- else like pushed the backout to other repositories etc.
-
- If you DID 'push', see 2c) below.
-
- $ hg rollback
-
- After rollbacking, you will need to update your working copy.
-
- $ hg update -C
-
- After this, your repository and work copies of files should be
- just like before you issued the backout command.
-
-
-2c) So you backed out and propagated the changes to other people, but
- came to regret this. The solution is to backout the backed out
- changeset.
-
- $ hg backout --merge <backout changeset id>
- $ hg fetch && hg push
-
- As usual, normal rules for merge conflicts apply.
-
-
-Merging and conflicts
-=====================
-Sometimes, when changesets contain changes to files that touch each other
-or are close enough in proximity, Mercurial will not be able to
-automatically merge these changes. This is called a merge conflict, and
-it works similarly in most version control systems like CVS, Subversion,
-GIT, etc.
-
-0) When a conflict occurs, Mercurial will inform you about it with a message
- resembling something like (when using 'fetch' extension; if you are
- using plain 'hg pull', you will need to do 'hg merge' too):
-
- |There are unresolved merges, you can redo the full merge using:
- | hg update -C 5589
- | hg merge 5587
-
- One important thing this message actually tells us (beside the fact that
- automatic merging failed), is that you can return to _current_ state by
- issuing 'hg update -C 5589'.
-
- This may be helpful, if you fumble while editing the files you are trying
- to merge manually. Additionally, you don't actually need to usually
- specify the revision in this situation, so plain 'hg update -C' is enough.
-
-1) First thing to do when doing manual merge, is to run 'hg diff', which will
- show us what was not automatically merged. Like with Subversion etc.
- the failed sections show up in the diff/files marked with specific
- separators, for example:
-
-----------------------------------------------------------------------------
-diff -r c55af7b7242c src/libaudgui/ui_fileopener.c
---- a/src/libaudgui/ui_fileopener.c Wed Sep 09 22:06:03 2009 +0100
-+++ b/src/libaudgui/ui_fileopener.c Thu Sep 10 00:17:20 2009 +0300
-@@ -116,6 +116,14 @@
- gtk_widget_destroy(browser);
- return TRUE;
- }
-+<<<<<<< /home/ccr/audacious/tmp/src/libaudgui/ui_fileopener.c
-+=======
-+ else if (event->keyval == GDK_Returnz)
-+ {
-+ action_button_cb (browser, data);
-+ return TRUE;
-+ }
-+>>>>>>> /tmp/ui_fileopener.c~other._xsy4I
-
- return FALSE;
- }
-----------------------------------------------------------------------------
-
- Just like with other 3-way merging tools, the first section (<<<< til ====)
- is the "incoming" change, e.g. what the other committer(s) have done and
- the latter section is yours.
-
-2) After you have edited the conflicting sections to what you think is good
- and proper (it's good to do 'hg diff' again and glance through to make
- sure you didn't miss anything), you can then commit the merge:
-
- $ hg ci
-
- And then push the changes to upstream repository.
-
- $ hg push
-
- Of course, if you took lots of time to perform the merge, someone may
- have pushed before you, and you may need to 'fetch' again before pushing.
- Maybe not so amusing, but it is just the way DVCS's work.
-
-
-Update and revert
-=================
-These two Mercurial commands may sometimes seem bit confusing, after all
-you can use 'hg update' to change the repository to any given
-revision/changeset. This happens by reparenting, so for example after
-'updating' to old revision, the history after that revision is to be
-considered "future" from our viewpoint.
-
-Indeed, revert does a bit similar thing, it goes back to the _parent_ of
-the current working repository, effectively reverting the changes non-
-committed changes in your working directories/repo.
-
-In Subversion terms, 'hg update' can be thought as 'svn co' and actually
-Mercurial considers checkout/co as aliases to 'update'. Revert then
-is canonical to Subversion's revert.
-
-But unlike in Subversion, in Mercurial you can actually go back to a given
-revision (via 'hg update [-C] <rev>'), make changes, commit them and then
-_merge_ those changes from the viewpoint of the old revision vs. later ones.
-
-Yes, it's a kind of magic.
diff --git a/doc/TODO b/doc/TODO
deleted file mode 100644
index 5e8f73c..0000000
--- a/doc/TODO
+++ /dev/null
@@ -1,67 +0,0 @@
-"TODO" for 2.6/3.0
-==================
-
-Plugin loading cleanups:
- - enforce one "plugin" per .so file
- - kill off hidden "lowlevel" plugins
- - PLUGIN_COMMON_FIELDS in interface plugin headers
- - size field in plugin headers to allow future expansion
- - custom URIs and MIME types in input plugin headers
- - flag to enable general plugins by default
-
-Make more of the core thread-safe:
- - thread-safe plugin registry
- - thread-safe transport and input plugins (including init())
- - kill off vfs_prepare() hack
- - thread-safe file_find_decoder()
- - thread-safe playlist
-
-Move various operations to separate threads:
- - move folder and playlist loading to separate thread
- - move remaining parts of metadata scanning to separate threads
- - metadata scanning in all playlists, not just active
- - manipulate playlist without interrupting metadata scanning
-
-Miscellaneous:
- - common widget to select output and interface plugins
- - switch interface from preferences window
-
-
-Long-term "TODO"
-================
-
-- output plugins should have some kind of (optional) "query available formats"
- function, so that the core could determine what should be used. perhaps
- offer users this info?
-
-- maybe all audio plugins (input, output, effect) could be made completely
- re-entrant. this probably means severely breaking the API. not very
- trivial either .. some plugins are probably impossible.
- * basically plugin init() should allocate / init a state struct to
- be used in all operations, etc.
- * context support should be added to plugin functions.
- * question: issues with plugins that use non-re-entrant library backends
- etc?
-
-- URIs with "?" are stripped (the subtune support uses that), which is bad,
- because some (a lot) of real-world URLs use 'GET' arguments. this breaks
- probing, but current input probing is confusing (and possibly broken anyway)
- and should be refactored.
- * As of 2.5, is this still a problem?
-
-- mime-types support:
- * there is already code for mime support, but I think it may not be
- sufficient as it is designed for input plugins only --
- also playlist containers etc. need this (IMHO)
- * might be nicer to have the type registrations in plugin struct
- instead of a separate function, a'la vfs_extensions.
-
-- document the different APIs via Doxygen
-
-- {core,plugins}/configure.ac need some cleanup loving.
- * build system cleanups .. extra.mk.in? wtf? (done in core, progressing
- for plugins)
- --- this is in progress, worked on by ccr
-
-- plugin rewrites:
- * modplug (in progress by ccr)
diff --git a/extra.mk.in b/extra.mk.in
index a300c83..464bbb0 100644
--- a/extra.mk.in
+++ b/extra.mk.in
@@ -1,183 +1,37 @@
-XGETTEXT ?= @XGETTEXT@
-pdfdir ?= @pdfdir@
-ECHO_N ?= @ECHO_N@
-CXXFLAGS ?= @CXXFLAGS@
-DBUS_BINDING_TOOL ?= @DBUS_BINDING_TOOL@
-PLUGIN_SUFFIX ?= @PLUGIN_SUFFIX@
-target ?= @target@
-CLEAN_LIB ?= @CLEAN_LIB@
-bindir ?= @bindir@
-INTL_LIBTOOL_SUFFIX_PREFIX ?= @INTL_LIBTOOL_SUFFIX_PREFIX@
-PACKAGE_URL ?= @PACKAGE_URL@
-ALLOCA ?= @ALLOCA@
-LIBGUESS_CFLAGS ?= @LIBGUESS_CFLAGS@
-PROG_IMPLIB_NEEDED ?= @PROG_IMPLIB_NEEDED@
-dvidir ?= @dvidir@
-AUDLDFLAGS ?= @AUDLDFLAGS@
-PACKAGE_BUGREPORT ?= @PACKAGE_BUGREPORT@
-MAKE ?= @MAKE@
-INSTOBJEXT ?= @INSTOBJEXT@
+AUDACIOUS_DEFINES ?= @AUDACIOUS_DEFINES@
+LIBAUDCLIENT_LDFLAGS ?= @LIBAUDCLIENT_LDFLAGS@
+USE_NLS ?= @USE_NLS@
+VERSION ?= @VERSION@
+
CONTAINER_PLUGIN_DIR ?= @CONTAINER_PLUGIN_DIR@
-DATADIRNAME ?= @DATADIRNAME@
+EFFECT_PLUGIN_DIR ?= @EFFECT_PLUGIN_DIR@
+GENERAL_PLUGIN_DIR ?= @GENERAL_PLUGIN_DIR@
INPUT_PLUGIN_DIR ?= @INPUT_PLUGIN_DIR@
-SM_CFLAGS ?= @SM_CFLAGS@
-POSUB ?= @POSUB@
-CPP ?= @CPP@
-MKINSTALLDIRS ?= @MKINSTALLDIRS@
-target_cpu ?= @target_cpu@
-DBUS_LIBS ?= @DBUS_LIBS@
-UNINSTALL_LIB ?= @UNINSTALL_LIB@
-datadir ?= @datadir@
-build ?= @build@
-CPPFLAGS ?= @CPPFLAGS@
-SHELL ?= @SHELL@
+OUTPUT_PLUGIN_DIR ?= @OUTPUT_PLUGIN_DIR@
+TRANSPORT_PLUGIN_DIR ?= @TRANSPORT_PLUGIN_DIR@
+VISUALIZATION_PLUGIN_DIR ?= @VISUALIZATION_PLUGIN_DIR@
+
+DBUS_BINDING_TOOL ?= @DBUS_BINDING_TOOL@
+HAVE_MSWINDOWS ?= @HAVE_MSWINDOWS@
+USE_CHARDET ?= @USE_CHARDET@
+USE_DBUS ?= @USE_DBUS@
USE_EGGSM ?= @USE_EGGSM@
-GLIB_GENMARSHAL ?= @GLIB_GENMARSHAL@
-LIBMCS_LIBS ?= @LIBMCS_LIBS@
-am__leading_dot ?= @am__leading_dot@
-program_transform_name ?= @program_transform_name@
-INTL_OBJECTIVE ?= @INTL_OBJECTIVE@
-SIMD_CFLAGS ?= @SIMD_CFLAGS@
-CC ?= @CC@
-CATOBJEXT ?= @CATOBJEXT@
-DEFS ?= @DEFS@
-LIBS ?= @LIBS@
-build_cpu ?= @build_cpu@
-infodir ?= @infodir@
-GLIB_CFLAGS ?= @GLIB_CFLAGS@
-AMDEPBACKSLASH ?= @AMDEPBACKSLASH@
-GENERAL_PLUGIN_DIR ?= @GENERAL_PLUGIN_DIR@
-libexecdir ?= @libexecdir@
-localedir ?= @localedir@
-CCASDEPMODE ?= @CCASDEPMODE@
-LTLIBOBJS ?= @LTLIBOBJS@
-LIBICONV ?= @LIBICONV@
-includedir ?= @includedir@
-LDFLAGS ?= @LDFLAGS@
-build_alias ?= @build_alias@
-USE_NLS ?= @USE_NLS@
-AUDACIOUS_DEFINES ?= @AUDACIOUS_DEFINES@
-libdir ?= @libdir@
-CFLAGS ?= @CFLAGS@
-REGEX_LIBS ?= @REGEX_LIBS@
-PTHREAD_LIBS ?= @PTHREAD_LIBS@
-localstatedir ?= @localstatedir@
-DISCOVERY_PLUGIN_DIR ?= @DISCOVERY_PLUGIN_DIR@
-docdir ?= @docdir@
-LIBGUESS_LIBS ?= @LIBGUESS_LIBS@
-LIB_LDFLAGS ?= @LIB_LDFLAGS@
-CCASFLAGS ?= @CCASFLAGS@
-INSTALL_SCRIPT ?= @INSTALL_SCRIPT@
-host_alias ?= @host_alias@
-PACKAGE_TARNAME ?= @PACKAGE_TARNAME@
-RANLIB ?= @RANLIB@
+
DBUS_CFLAGS ?= @DBUS_CFLAGS@
-OUTPUT_PLUGIN_DIR ?= @OUTPUT_PLUGIN_DIR@
-pluginsubs ?= @pluginsubs@
-PATH_SEPARATOR ?= @PATH_SEPARATOR@
-EXEEXT ?= @EXEEXT@
-MV ?= @MV@
+DBUS_LIBS ?= @DBUS_LIBS@
+GLIB_CFLAGS ?= @GLIB_CFLAGS@
GLIB_LIBS ?= @GLIB_LIBS@
-GMSGFMT ?= @GMSGFMT@
-target_os ?= @target_os@
-AR ?= @AR@
-host ?= @host@
+GTHREAD_CFLAGS ?= @GTHREAD_CFLAGS@
GTHREAD_LIBS ?= @GTHREAD_LIBS@
-LIBINTL ?= @LIBINTL@
-target_vendor ?= @target_vendor@
-CCAS ?= @CCAS@
-desktop_file ?= @desktop_file@
-prefix ?= @prefix@
-LIB_CFLAGS ?= @LIB_CFLAGS@
-REGEX_CFLAGS ?= @REGEX_CFLAGS@
-PTHREAD_CFLAGS ?= @PTHREAD_CFLAGS@
-CAIRO_LIBS ?= @CAIRO_LIBS@
GTK_CFLAGS ?= @GTK_CFLAGS@
-sharedstatedir ?= @sharedstatedir@
-am__include ?= @am__include@
-OBJEXT ?= @OBJEXT@
-PKG_CONFIG ?= @PKG_CONFIG@
-ICE_CFLAGS ?= @ICE_CFLAGS@
-sysconfdir ?= @sysconfdir@
-htmldir ?= @htmldir@
-PC_REQUIRES ?= @PC_REQUIRES@
-HAVE_SUN ?= @HAVE_SUN@
-GENCAT ?= @GENCAT@
-MOWGLI_LIBS ?= @MOWGLI_LIBS@
-PACKAGE_STRING ?= @PACKAGE_STRING@
-INTLOBJS ?= @INTLOBJS@
-sbindir ?= @sbindir@
-EFFECT_PLUGIN_DIR ?= @EFFECT_PLUGIN_DIR@
-CP ?= @CP@
-SET_MAKE ?= @SET_MAKE@
-DEPDIR ?= @DEPDIR@
-PLUGIN_CFLAGS ?= @PLUGIN_CFLAGS@
-ECHO_C ?= @ECHO_C@
-SM_LIBS ?= @SM_LIBS@
-USE_X86ASM ?= @USE_X86ASM@
-USE_INCLUDED_LIBINTL ?= @USE_INCLUDED_LIBINTL@
-psdir ?= @psdir@
-SHARED_SUFFIX ?= @SHARED_SUFFIX@
-LIBMCS_CFLAGS ?= @LIBMCS_CFLAGS@
-BUILD_INCLUDED_LIBINTL ?= @BUILD_INCLUDED_LIBINTL@
-oldincludedir ?= @oldincludedir@
-MSGFMT ?= @MSGFMT@
-TR ?= @TR@
-TRANSPORT_PLUGIN_DIR ?= @TRANSPORT_PLUGIN_DIR@
-ac_ct_CXX ?= @ac_ct_CXX@
-USE_DBUS ?= @USE_DBUS@
-ARCH_DEFINES ?= @ARCH_DEFINES@
-CAIRO_CFLAGS ?= @CAIRO_CFLAGS@
-LTLIBICONV ?= @LTLIBICONV@
-build_vendor ?= @build_vendor@
-LIB_PREFIX ?= @LIB_PREFIX@
-host_cpu ?= @host_cpu@
GTK_LIBS ?= @GTK_LIBS@
-PACKAGE ?= @PACKAGE@
-mandir ?= @mandir@
-GLIBC21 ?= @GLIBC21@
-target_alias ?= @target_alias@
-DBUS_SERVICES_DIR ?= @DBUS_SERVICES_DIR@
-LTLIBINTL ?= @LTLIBINTL@
-PLUGIN_CPPFLAGS ?= @PLUGIN_CPPFLAGS@
-LIBAUDCLIENT_LDFLAGS ?= @LIBAUDCLIENT_LDFLAGS@
-PACKAGE_NAME ?= @PACKAGE_NAME@
-DEBUG ?= @DEBUG@
-ECHO_T ?= @ECHO_T@
-am__quote ?= @am__quote@
-LIB_SUFFIX ?= @LIB_SUFFIX@
-LIBOBJS ?= @LIBOBJS@
-ac_ct_CC ?= @ac_ct_CC@
-PANGO_LIBS ?= @PANGO_LIBS@
-PACKAGE_VERSION ?= @PACKAGE_VERSION@
-LDFLAGS_RPATH ?= @LDFLAGS_RPATH@
+ICE_CFLAGS ?= @ICE_CFLAGS@
ICE_LIBS ?= @ICE_LIBS@
-INTLBISON ?= @INTLBISON@
-LN_S ?= @LN_S@
-INSTALL_LIB ?= @INSTALL_LIB@
-USE_CHARDET ?= @USE_CHARDET@
-GTHREAD_CFLAGS ?= @GTHREAD_CFLAGS@
-GREP ?= @GREP@
-host_vendor ?= @host_vendor@
-build_os ?= @build_os@
-INSTALL_DATA ?= @INSTALL_DATA@
-PANGO_CFLAGS ?= @PANGO_CFLAGS@
-datarootdir ?= @datarootdir@
-MOWGLI_CFLAGS ?= @MOWGLI_CFLAGS@
-plugindir ?= @plugindir@
-CXX ?= @CXX@
-RM ?= @RM@
-INSTALL_PROGRAM ?= @INSTALL_PROGRAM@
-PLUGIN_LDFLAGS ?= @PLUGIN_LDFLAGS@
-VISUALIZATION_PLUGIN_DIR ?= @VISUALIZATION_PLUGIN_DIR@
-IMPLIB_LIBS ?= @IMPLIB_LIBS@
-MSGMERGE ?= @MSGMERGE@
-INTLLIBS ?= @INTLLIBS@
-PROG_IMPLIB_LDFLAGS ?= @PROG_IMPLIB_LDFLAGS@
-host_os ?= @host_os@
-exec_prefix ?= @exec_prefix@
-HAVE_SOLARIS ?= @HAVE_SOLARIS@
-EGREP ?= @EGREP@
-AUDACIOUS_PATH ?= @AUDACIOUS_PATH@
-ARCH_X86 ?= @ARCH_X86@
-VERSION ?= @VERSION@
+LIBGUESS_CFLAGS ?= @LIBGUESS_CFLAGS@
+LIBGUESS_LIBS ?= @LIBGUESS_LIBS@
+PTHREAD_CFLAGS ?= @PTHREAD_CFLAGS@
+PTHREAD_LIBS ?= @PTHREAD_LIBS@
+REGEX_CFLAGS ?= @REGEX_CFLAGS@
+REGEX_LIBS ?= @REGEX_LIBS@
+SM_CFLAGS ?= @SM_CFLAGS@
+SM_LIBS ?= @SM_LIBS@
diff --git a/install-sh b/install-sh
index 4d4a951..6781b98 100644
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2005-05-14.22
+scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
-chmodcmd="$chmodprog 0755"
-chowncmd=
chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
src=
dst=
dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
no_target_directory=
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--c (ignored)
--d create directories instead of installing files.
--g GROUP $chgrpprog installed files to GROUP.
--m MODE $chmodprog installed files to MODE.
--o USER $chownprog installed files to USER.
--s $stripprog installed files.
--t DIRECTORY install into DIRECTORY.
--T report an error if DSTFILE is a directory.
---help display this help and exit.
---version display version info and exit.
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
Environment variables override the default commands:
- CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
"
-while test -n "$1"; do
+while test $# -ne 0; do
case $1 in
- -c) shift
- continue;;
+ -c) ;;
+
+ -C) copy_on_change=true;;
- -d) dir_arg=true
- shift
- continue;;
+ -d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
+ shift;;
--help) echo "$usage"; exit $?;;
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
+ shift;;
- -s) stripcmd=$stripprog
- shift
- continue;;
+ -s) stripcmd=$stripprog;;
- -t) dstarg=$2
- shift
- shift
- continue;;
+ -t) dst_arg=$2
+ shift;;
- -T) no_target_directory=true
- shift
- continue;;
+ -T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
- *) # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- test -n "$dir_arg$dstarg" && break
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dstarg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dstarg"
- shift # fnord
- fi
- shift # arg
- dstarg=$arg
- done
+ --) shift
break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
esac
+ shift
done
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ done
+fi
+
+if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
exit 0
fi
+if test -z "$dir_arg"; then
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
for src
do
# Protect names starting with `-'.
case $src in
- -*) src=./$src ;;
+ -*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
- src=
-
- if test -d "$dst"; then
- mkdircmd=:
- chmodcmd=
- else
- mkdircmd=$mkdirprog
- fi
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
else
+
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
@@ -190,71 +248,199 @@ do
exit 1
fi
- if test -z "$dstarg"; then
+ if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
- dst=$dstarg
+ dst=$dst_arg
# Protect names starting with `-'.
case $dst in
- -*) dst=./$dst ;;
+ -*) dst=./$dst;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
- echo "$0: $dstarg: Is a directory" >&2
+ echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
- dst=$dst/`basename "$src"`
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
fi
fi
- # This sed command emulates the dirname command.
- dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
- # Make sure that the destination directory exists.
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
- # Skip lots of stat calls in the usual case.
- if test ! -d "$dstdir"; then
- defaultIFS='
- '
- IFS="${IFS-$defaultIFS}"
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
- oIFS=$IFS
- # Some sh's can't handle IFS=/ for some reason.
- IFS='%'
- set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
- shift
- IFS=$oIFS
+ case $dstdir in
+ /*) prefix='/';;
+ -*) prefix='./';;
+ *) prefix='';;
+ esac
- pathcomp=
+ eval "$initialize_posix_glob"
- while test $# -ne 0 ; do
- pathcomp=$pathcomp$1
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
shift
- if test ! -d "$pathcomp"; then
- $mkdirprog "$pathcomp"
- # mkdir can fail with a `File exist' error in case several
- # install-sh are creating the directory concurrently. This
- # is OK.
- test -d "$pathcomp" || exit
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test -z "$d" && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
- pathcomp=$pathcomp/
- done
+ fi
fi
if test -n "$dir_arg"; then
- $doit $mkdircmd "$dst" \
- && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
- && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
- && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
- dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
@@ -262,10 +448,9 @@ do
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
- trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name.
- $doit $cpprog "$src" "$dsttmp" &&
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -273,51 +458,63 @@ do
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
- { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
- && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
- && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
- # Now rename the file to the real destination.
- { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
- || {
- # The rename failed, perhaps because mv can't rename something else
- # to itself, or perhaps because mv is so ancient that it does not
- # support -f.
-
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- if test -f "$dstdir/$dstfile"; then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
- || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
- || {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit 1
- }
- else
- :
- fi
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
- }
- }
- fi || { (exit 1); exit 1; }
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
done
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
- (exit 0); exit 0
-}
-
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
diff --git a/m4/buildsys.m4 b/m4/buildsys.m4
index 61dd330..a742bb8 100644
--- a/m4/buildsys.m4
+++ b/m4/buildsys.m4
@@ -101,8 +101,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
PLUGIN_CFLAGS='-fPIC -DPIC'
PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
PLUGIN_SUFFIX='.impl'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
CLEAN_LIB=''
;;
solaris*)
@@ -115,8 +115,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
PLUGIN_CFLAGS='-fPIC -DPIC'
PLUGIN_LDFLAGS='-shared'
PLUGIN_SUFFIX='.so'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
CLEAN_LIB=''
;;
openbsd* | mirbsd*)
@@ -129,8 +129,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
PLUGIN_CFLAGS='-fPIC -DPIC'
PLUGIN_LDFLAGS='-shared'
PLUGIN_SUFFIX='.so'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
CLEAN_LIB=''
;;
cygwin* | mingw*)
@@ -143,8 +143,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
PLUGIN_CFLAGS=''
PLUGIN_LDFLAGS='-shared'
PLUGIN_SUFFIX='.dll'
- INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
- UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
+ INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
CLEAN_LIB='${LIB}.a'
;;
*)
@@ -157,8 +157,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
PLUGIN_CFLAGS='-fPIC -DPIC'
PLUGIN_LDFLAGS='-shared'
PLUGIN_SUFFIX='.so'
- INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
- UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
+ INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
CLEAN_LIB=''
;;
esac
diff --git a/man/audacious.1.in b/man/audacious.1.in
index 167d8f0..b32b9c0 100644
--- a/man/audacious.1.in
+++ b/man/audacious.1.in
@@ -1,4 +1,4 @@
-.TH AUDACIOUS "1" "April 2009" "Version @PACKAGE_VERSION@" "Audacious"
+.TH AUDACIOUS "1" "April 2009" "Version @VERSION@" "Audacious"
.SH NAME
audacious \- an advanced audio player.
@@ -182,8 +182,6 @@ Control + Alt + w Toggle rolling up equalizer
.br
Shift + Control + w Toggle rolling up playlist
.br
-Control + d Toggle double size
-.br
i Display Song Information dialog
.br
Control + j Display Jump to Time dialog
@@ -215,14 +213,14 @@ User's set of Audacious-specific GTK+ config settings. Options such as widget
color and fonts sizes can be set here.
.TP
~/.local/share/audacious/Skins, @datarootdir@/audacious/Skins
-Default location(s) where Audacious should look for skinfiles.
+Default location(s) where Audacious should look for skin files.
.TP
~/.local/share/audacious/Plugins
Location of user-installed plugins.
.SH ENVIRONMENT
.TP 12
.B SKINSDIR
-Colon separated list of paths where Audacious should look for skinfiles.
+Colon separated list of paths where Audacious should look for skin files.
.TP
.B TARCMD
Tar command supporting GNU tar style decompression. Used for
diff --git a/man/audtool.1.in b/man/audtool.1.in
index 71cff5e..d2438f7 100644
--- a/man/audtool.1.in
+++ b/man/audtool.1.in
@@ -69,10 +69,10 @@ Go to the next song in the playlist.
Go to the previous song in the playlist.
.TP
.I --playlist-addurl <uri>
-Adds a uri to the playlist.
+Adds a URI to the playlist.
.TP
.I --playlist-insurl <uri> <position>
-Inserts a url at specified position in the playlist.
+Inserts a URL at specified position in the playlist.
.TP
.I --playlist-delete <position>
Deletes the song at <position> from the playlist.
@@ -119,6 +119,12 @@ Returns the status of playlist shuffle.
.I --playlist-shuffle-toggle
Toggles playlist shuffle.
.TP
+.I --playlist-stop-after-status
+Queries whether the "stop after current song" option is set.
+.TP
+.I --playlist-stop-after-toggle
+Toggles the "stop after current song" option.
+.TP
.I --playlist-tuple-data <fieldname> <position>
Returns the value of a tuple field for a song in the playlist.
.PP
@@ -131,7 +137,7 @@ Adds the song at <position> in the playlist to the playqueue.
Removes the song at <position> in the playlist from the playqueue.
.TP
.I --playqueue-is-queued <position>
-Returns OK if the song at <postion> in the playtlist is queued.
+Returns OK if the song at <position> in the playlist is queued.
.TP
.I --playqueue-get-position <position>
Returns the playqueue position of the song at <position> in the playlist.
@@ -178,10 +184,10 @@ Returns OK if audacious is stopped.
Returns the playback status.
.TP
.I --playback-seek
-Performs an absolute seek in milliseconds.
+Performs an absolute seek in seconds.
.TP
.I --playback-seek-relative
-Performs a seek relative to the current position in milliseconds.
+Performs a seek relative to the current position in seconds.
.PP
.B "Volume control:"
.TP
@@ -219,12 +225,6 @@ Sets the equalizer value in specified band.
.I --mainwin-show <on/off>
Shows/hides the main window.
.TP
-.I --playlist-show <on/off>
-Shows/hides the playlist window.
-.TP
-.I --equalizer-show <on/off>
-Shows/hides the equalizer window.
-.TP
.I --filebrowser-show <on/off>
Shows/hides the filebrowser.
.TP
@@ -237,14 +237,11 @@ Shows/hides the preferences window.
.I --about-show <on/off>
Shows/hides the about window.
.TP
-.I --activate
-Activates and raises audacious.
-.TP
.I --always-on-top <on/off>
Enables/disables always on top setting.
.TP
.I --version
-Displays version information for the Audacious2 core.
+Displays Audacious version.
.TP
.I --shutdown
Shuts down audacious.
@@ -260,7 +257,7 @@ Shows handlers list.
Handlers may be prefixed with `\-\-' (GNU\-style long\-options) or not, your choice.
.SH BUGS
There are no known bugs in audtool at this time; if you find any please
-report them on www.atheme.org in the Audacious issue tracker.
+report them on www.redmine.audacious-media-player.org in the Audacious issue tracker.
.SH AUTHORS
.B audtool
was written by George Averill <nhjm at nhjm.net> and William
@@ -275,7 +272,7 @@ under the terms of the GNU General Public License, Version 2 or any
later version published by the Free Software Foundation.
.PP
The complete text of the GNU General Public License is available in the
-sourcecode of Audacious, and is typically included with binary packages
+source code of Audacious, and is typically included with binary packages
as well.
.PP
If installed with an operating system, see your Operating System's
diff --git a/mkinstalldirs b/mkinstalldirs
deleted file mode 100644
index d2d5f21..0000000
--- a/mkinstalldirs
+++ /dev/null
@@ -1,111 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman at prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
- case $1 in
- -h | --help | --h*) # -h for help
- echo "$usage" 1>&2
- exit 0
- ;;
- -m) # -m PERM arg
- shift
- test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
- dirmode=$1
- shift
- ;;
- --) # stop option processing
- shift
- break
- ;;
- -*) # unknown option
- echo "$usage" 1>&2
- exit 1
- ;;
- *) # first non-opt arg
- break
- ;;
- esac
-done
-
-for file
-do
- if test -d "$file"; then
- shift
- else
- break
- fi
-done
-
-case $# in
- 0) exit 0 ;;
-esac
-
-case $dirmode in
- '')
- if mkdir -p -- . 2>/dev/null; then
- echo "mkdir -p -- $*"
- exec mkdir -p -- "$@"
- fi
- ;;
- *)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
- echo "mkdir -m $dirmode -p -- $*"
- exec mkdir -m "$dirmode" -p -- "$@"
- fi
- ;;
-esac
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case $pathcomp in
- -*) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- else
- if test ! -z "$dirmode"; then
- echo "chmod $dirmode $pathcomp"
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
-
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# End:
-# mkinstalldirs ends here
diff --git a/contrib/win32/audacious.ico b/pixmaps/audacious.ico
old mode 100755
new mode 100644
similarity index 100%
copy from contrib/win32/audacious.ico
copy to pixmaps/audacious.ico
diff --git a/pixmaps/audacious.svg b/pixmaps/audacious.svg
old mode 100755
new mode 100644
diff --git a/po/Makefile b/po/Makefile
index ed96bc5..1e62a12 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -17,6 +17,8 @@ LOCALES = ast.po \
de.po \
el.po \
es.po \
+ es_AR.po \
+ es_MX.po \
et.po \
eu.po \
fi.po \
@@ -38,11 +40,13 @@ LOCALES = ast.po \
ro.po \
ru.po \
sk.po \
+ sl.po \
sr at Latn.po \
sr.po \
sv.po \
tr.po \
uk.po \
+ vi.po \
zh_CN.po \
zh_TW.po
@@ -55,7 +59,7 @@ update-pot:
@echo Updating $(POTTEMPLATE) ...
xgettext --default-domain=$(PACKAGE) --language=C \
--keyword=_ --keyword=N_ --from-code="utf-8" \
- --msgid-bugs-address="http://jira.atheme.org/" \
+ --msgid-bugs-address="http://redmine.audacious-media-player.org/" \
--directory=.. --files-from=POTFILES.in -o $(POTTEMPLATE)
update-po: update-pot
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 352760f..37c085f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,27 +1,31 @@
# Please don't update this file manually - use ./update-potfiles.sh instead!
+src/audacious/adder.c
src/audacious/chardet.c
src/audacious/credits.c
-src/audacious/drct.c
src/audacious/equalizer_preset.c
-src/audacious/folder-add.c
src/audacious/main.c
src/audacious/playback.c
+src/audacious/playlist-files.c
src/audacious/playlist-new.c
src/audacious/ui_preferences.c
src/audacious/util.c
src/audtool/handlers_playlist.c
src/audtool/handlers_vitals.c
+src/libaudcore/audstrings.c
src/libaudcore/tuple.c
+src/libaudgui/about.c
src/libaudgui/confirm.c
src/libaudgui/effects-menu.c
src/libaudgui/equalizer.c
src/libaudgui/infopopup.c
src/libaudgui/infowin.c
-src/libaudgui/ui_about.c
-src/libaudgui/ui_credits.c
+src/libaudgui/jump-to-time.c
+src/libaudgui/playlists.c
+src/libaudgui/queue-manager.c
src/libaudgui/ui_fileopener.c
src/libaudgui/ui_jumptotrack.c
src/libaudgui/ui_playlist_manager.c
src/libaudgui/ui_urlopener.c
+src/libaudgui/util.c
src/libeggsmclient/eggdesktopfile.c
src/libeggsmclient/eggsmclient.c
diff --git a/po/ast.po b/po/ast.po
index 2100ca0..c4715d1 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Audacious\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2010-07-18 21:16+0100\n"
"Last-Translator: marquinos <marcos at softastur.org>\n"
"Language-Team: Softastur <alministradores at softastur.org>\n"
@@ -18,6 +18,17 @@ msgstr ""
"X-Poedit-Language: Asturian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Guetando ..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Alcontróse %d ficheru"
+msgstr[1] "Alcontráronse %d ficheros"
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (UTF-8 inválidu)"
@@ -99,113 +110,113 @@ msgstr "Estoniu:"
msgid "Finnish:"
msgstr "Finlandés:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Francés:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Alemán:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Xeorxanu:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Griegu:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hindú:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Húngaru:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Italianu:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Xaponés:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Coreanu:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Croata:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Lituanu:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Macedoniu:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Polacu:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Portugués:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Rumanu:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Rusu:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Serbiu (Llatin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Serbiu (CirÃlicu):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Chinu simplificáu:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Eslovacu:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Español:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Suecu:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Chinu tradicional:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Turcu:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "UcraÃn:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Galés:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
msgid "Temporary Playlist"
msgstr "Llista de reproducción temporal"
@@ -214,79 +225,64 @@ msgstr "Llista de reproducción temporal"
msgid "Error importing Winamp EQF file '%s'"
msgstr "Fallu importando ficheru Winamp EQF '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Guetando ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Alcontróse %d ficheru"
-msgstr[1] "Alcontráronse %d ficheros"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Saltar haza darrera na llista de reproducción"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Aniciar la reproducción de la llista de reproducción actual"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Posar la canción actual"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Parar la canción actual"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Posar si se ta reproduciendo, o reproducir"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Saltar haza alantre na llista de reproducción"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "Amosar diálogu de Saltu al ficheru"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Amestar nuevos ficheros a una llista de reproducción temporal"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Amestar nuevos ficheros a una llista de reproducción temporal"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Amosar la ventana principal"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Amosar toles ventanes d'Audacious abiertes"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr "Amosar versión"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "FICHERU..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- reproducir ficheros multimedia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -295,7 +291,7 @@ msgstr ""
"%s: %s\n"
"Prueba `%s --help' pa más información.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -303,259 +299,232 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr "Nun s'alcontró decodificador pa %s."
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr "Buffering..."
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
msgid "Untitled Playlist"
msgstr "Llista de reproducción ensin tÃtulu"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr "Rede"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Llista de reproducción"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Complementos"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Ãlbum"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "TÃtulu"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Númberu de pista"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Xéneru"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Nome de ficheru"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "CamÃn hasta'l ficheru"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Añu"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Comentariu"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Codec (formatu)"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Calidá"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "dengún"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "xaponés"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "taiwanés"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "chinu"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "coreanu"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "rusu"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "griegu"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "hebréu"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "turcu"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "árabe"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
msgid "Polish"
msgstr "Polacu:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "Celta"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "universal"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Fondura de bit</b>"
+msgid "Single track mode"
+msgstr ""
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Fondura de bit de salida:"
+#, fuzzy
+msgid "Album mode"
+msgstr "Ãlbum"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
msgstr ""
-"Tolos streams van convertise nesti bit depth.\n"
-"Esti tien de ser el máximu bit depth sofitáu\n"
-"de la tarxeta de sonÃu o del plugin de salida."
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Control de volume</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usar control de volume por software"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Fondura de bit de salida:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Usa'l control de volume por software. Esto pue ser útil pa situaciones au el "
-"to sistema d'audio nun sofita'l control de volume de reproducción."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tamañu del búfer:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproducir ficheros multimedia"
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volume por software"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Mou Replay Gain</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "Activar Replay Gain"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadatos</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ãlbum"
-
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>Sistema d'audio</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Información emerxente</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Activar prevención de clipping de picos d'información"
+msgid "Amplify untagged files:"
+msgstr "- reproducir ficheros multimedia"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Sirvidor proxy:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Puertu del proxy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Nome d'usuariu del proxy:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Contraseña del proxy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configuración del Proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Activar l'usu del proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Usar autenticación col proxy"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -563,15 +532,15 @@ msgstr ""
"<span size=\"small\">Si camuda dalgún d'estos valores tendrás que reaniciar "
"Audacious</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Deteutor de codificáu automáticu de carauteres pa: "
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Códigu de carauteres de fallback:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -583,46 +552,46 @@ msgstr ""
"d'esta llista van tratase como candidatos al codificáu de metadata, y llueu "
"va intentase la conversión fallback d'estos códigos a UTF-8."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Fondura de bit</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Continuar la reproducción al aniciase"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Llimpiar la llista de reproducción al abrir nuevos ficheros"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Amestar nuevos ficheros a una llista de reproducción temporal"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metadatos</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "CategorÃa"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "Configuración de la información emerxente"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Deteición d'imaxe de carátula</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -632,99 +601,99 @@ msgstr ""
"del ficheru. Pueden especificase estes pallabres na llista d'abaxo, "
"separtaes per aciu de comes."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Escluyir:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Incluyir:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Gueta recursiva pa la tapa"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Profundidá de la gueta:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Usar carátula por ficheru"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Varios</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Amosar barra de progresu de la pista actual"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "Retrasu pa l'apaición de la información del ficheru: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Visualización de les canciones</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr "Amosar númberos de canción"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Amosar información tocante al formatu del tÃtulu"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "TÃTULU"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "ARTISTA - TÃTULU"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "ARTISTA - ÃLBUM - TÃTULU"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "ARTISTA - ÃLBUM - PISTA. TÃTULU"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "ARTISTA [ ÃLBUM ] - PISTA. TÃTULU"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ÃLBUM - TÃTULU"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Personalizada"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Cadena personalizada:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Formatu del tÃtulu:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Información emerxente</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Amosar información emerxente pa les entraes de la llista de canciones"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -735,55 +704,48 @@ msgstr ""
"álbum, xéneru, añu d'espublización, númberu de pista, duración de la pista y "
"el trabayu."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Editar valores pa la información emerxente"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema d'audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamañu del búfer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
msgstr "Complementu de salida actual:"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Traductores"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efeutos</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Visualization"
msgstr "<b>Visualización</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Preferencies d'Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Nun pudo crease'l direutoriu (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr "Nun s'alcuentra la posición."
@@ -801,10 +763,12 @@ msgstr ""
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -813,11 +777,11 @@ msgstr ""
"Daveres quies zarrar %s? Si lo faes, va perdese cualesquier cambéu fechu "
"dende que s'esportó la llista de reproducción."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
msgid "_Don't show this message again"
msgstr "N_un amosar más esti mensax"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Llista de reproducción"
@@ -883,11 +847,11 @@ msgstr "Ecualizador"
msgid "Preamp"
msgstr "Preamplificación"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Númberu de pista"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Duración de la pista:"
@@ -1119,6 +1083,30 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr "Nun hai info disponible pa %s.\n"
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "Saltar a la pista"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Llista de reproducción temporal"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Llista de reproducción temporal"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Tocante a Audacious"
@@ -1179,19 +1167,19 @@ msgstr "Llimpi_ar"
msgid "Close on Jump"
msgstr "Zarrar al Saltar"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Alministrador de la llista de reproducción"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Entraess"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "Renomar"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
msgid "_Close dialog on activating playlist"
msgstr "Zarrar diálogu al activar llista de reproducción"
@@ -1203,6 +1191,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "El ficheru nun ye un ficheru .desktop válidu"
@@ -1212,25 +1206,25 @@ msgstr "El ficheru nun ye un ficheru .desktop válidu"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Versión del ficheru d'escritoriu non reconocida '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "Aniciando %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "L'aplicación nun aceuta documentos na llinia de comandos"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Opción de cargar non reconocida: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "Nun se puede pasar documentu URIs a una entrada de desktop 'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "Nun ye un elementu llanzable"
@@ -1264,6 +1258,49 @@ msgstr "Opciones de la sesión alministrada"
msgid "Show session management options"
msgstr "Amosar opciones de la sesión alministrada"
+#~ msgid "Replay Gain"
+#~ msgstr "Replay Gain"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Fondura de bit</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Tolos streams van convertise nesti bit depth.\n"
+#~ "Esti tien de ser el máximu bit depth sofitáu\n"
+#~ "de la tarxeta de sonÃu o del plugin de salida."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Control de volume</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Usa'l control de volume por software. Esto pue ser útil pa situaciones au "
+#~ "el to sistema d'audio nun sofita'l control de volume de reproducción."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metadatos</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Información emerxente</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Activar prevención de clipping de picos d'información"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Sistema d'audio</b>"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Amosar toles ventanes d'Audacious abiertes"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Nun pudo abrise la pantalla, colando.\n"
diff --git a/po/audacious.pot b/po/audacious.pot
index 931a6ad..fdb4a3b 100644
--- a/po/audacious.pot
+++ b/po/audacious.pot
@@ -7,8 +7,8 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
"Language-Team: LANGUAGE <LL at li.org>\n"
@@ -18,385 +18,408 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr ""
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
msgid "Core developers:"
msgstr ""
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
msgstr ""
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
msgstr ""
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
msgstr ""
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
msgstr ""
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
msgid "1.x developers:"
msgstr ""
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
msgstr ""
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
msgid "Belarusian:"
msgstr ""
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
msgstr ""
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
msgstr ""
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
msgstr ""
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
msgstr ""
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
msgid "Catalan:"
msgstr ""
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
msgid "Chinese:"
msgstr ""
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
msgid "Croatian:"
msgstr ""
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
msgstr ""
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
msgstr ""
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
msgid "Estonian:"
msgstr ""
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
msgid "Finnish:"
msgstr ""
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
msgstr ""
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
msgstr ""
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
msgid "Georgian:"
msgstr ""
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
msgstr ""
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
msgstr ""
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
msgstr ""
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
msgstr ""
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
msgstr ""
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
msgstr ""
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:266
msgid "Latvian:"
msgstr ""
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
msgstr ""
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
msgstr ""
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr ""
+
+#: src/audacious/credits.c:280
msgid "Polish:"
msgstr ""
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:287
msgid "Portuguese:"
msgstr ""
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
msgstr ""
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
msgstr ""
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
msgstr ""
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
msgstr ""
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
msgstr ""
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
msgstr ""
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
msgstr ""
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
msgstr ""
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
msgstr ""
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
msgstr ""
-#: src/audacious/credits.c:316
-msgid "Welsh:"
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
msgstr ""
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
+#: src/audacious/credits.c:341
+msgid "Welsh:"
msgstr ""
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr ""
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr ""
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr ""
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr ""
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr ""
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr ""
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr ""
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr ""
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr ""
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr ""
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr ""
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr ""
+
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
msgstr ""
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
+#: src/audacious/playlist-files.c:54
+msgid "save"
msgstr ""
-#: src/audacious/ui_preferences.c:88
-msgid "Audio"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr ""
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
msgstr ""
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
msgstr ""
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr ""
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr ""
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr ""
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr ""
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr ""
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr ""
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr ""
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr ""
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr ""
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr ""
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr ""
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr ""
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr ""
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr ""
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr ""
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr ""
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
+msgid "Greek"
msgstr ""
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
+msgid "Hebrew"
msgstr ""
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
+msgid "Japanese"
msgstr ""
#: src/audacious/ui_preferences.c:118
@@ -404,782 +427,766 @@ msgid "Korean"
msgstr ""
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
+msgid "Polish"
msgstr ""
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
+msgid "Russian"
msgstr ""
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
+msgid "Taiwanese"
msgstr ""
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
msgstr ""
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
+msgid "<b>Output Settings</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
msgstr ""
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
+msgid "Buffer size:"
msgstr ""
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr ""
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:172
-msgid "<b>Adjust Levels</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
msgstr ""
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr ""
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr ""
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr ""
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr ""
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr ""
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr ""
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr ""
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
msgstr ""
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
msgstr ""
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr ""
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr ""
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr ""
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr ""
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr ""
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr ""
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr ""
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr ""
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr ""
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr ""
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr ""
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr ""
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
msgstr ""
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
msgstr ""
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr ""
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
msgstr ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr ""
+
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
msgstr ""
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
msgstr ""
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
msgstr ""
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
msgstr ""
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr ""
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr ""
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
msgstr ""
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
msgstr ""
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
msgstr ""
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
msgstr ""
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
msgstr ""
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
msgstr ""
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
msgid "Blues"
msgstr ""
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
msgstr ""
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
msgstr ""
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
msgstr ""
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
msgstr ""
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
msgstr ""
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
msgstr ""
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
msgstr ""
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
msgstr ""
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
msgstr ""
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
msgstr ""
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
msgstr ""
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
msgstr ""
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
msgstr ""
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
msgstr ""
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
msgstr ""
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
msgstr ""
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
msgstr ""
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
msgstr ""
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
msgstr ""
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
msgstr ""
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
msgstr ""
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
msgstr ""
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
msgstr ""
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
msgstr ""
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
msgstr ""
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
msgstr ""
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
msgstr ""
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
msgstr ""
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
msgstr ""
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
msgstr ""
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
msgstr ""
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
msgstr ""
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
msgstr ""
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
msgstr ""
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
msgstr ""
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
msgstr ""
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
msgstr ""
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
msgstr ""
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
msgstr ""
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
msgstr ""
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
msgstr ""
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
msgstr ""
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
msgstr ""
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
msgstr ""
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
msgstr ""
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
msgstr ""
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
msgstr ""
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
#, c-format
msgid "%d kb/s"
msgstr ""
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
msgstr ""
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
msgstr ""
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
msgstr ""
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
msgstr ""
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr ""
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr ""
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr ""
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
+msgid "_Queue"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
-msgid "_Queue"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr ""
diff --git a/po/be.po b/po/be.po
index bd9a56e..cbfbb87 100644
--- a/po/be.po
+++ b/po/be.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2009-12-24 21:10+0200\n"
"Last-Translator: Darafei Praliaskouski <komzpa at gmail.com>\n"
"Language-Team: Belarusian <i18n at mova.org>\n"
@@ -17,6 +17,18 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d Ñайл знойдзенÑ"
+msgstr[1] "%d ÑÐ°Ð¹Ð»Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ð°"
+msgstr[2] "%d ÑÐ°Ð¹Ð»Ð°Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ð°"
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr ""
@@ -98,113 +110,113 @@ msgstr "ÐÑÑонÑкаÑ:"
msgid "Finnish:"
msgstr "ФÑнÑкаÑ:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "ФÑанÑÑзÑкаÑ:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "ÐÑмеÑкаÑ:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "ÐÑÑзÑнÑкаÑ:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "ÐÑÑÑкаÑ:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Ð¥ÑндзÑ:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "ÐенгеÑÑкаÑ:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ÐÑалÑÑнÑкаÑ:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "ЯпонÑкаÑ:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "ÐаÑÑйÑкаÑ:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "ХаÑваÑкаÑ:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "ÐÑÑоÑÑкаÑ:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "ÐакедонÑкаÑ:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "ÐолÑÑкаÑ:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "ÐаÑÑÑгалÑÑкаÑ:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Ð ÑмÑнÑкаÑ:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "РаÑÑйÑкаÑ:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "СеÑбÑÐºÐ°Ñ (лаÑÑнка):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "СеÑбÑÐºÐ°Ñ (кÑÑÑлÑÑа):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "ÐÑÑайÑÐºÐ°Ñ ÑпÑоÑÑанаÑ:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "СлаваÑкаÑ:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "ÐÑпанÑкаÑ:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "ШведÑкаÑ:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "ÐÑÑайÑÐºÐ°Ñ ÑÑадÑÑÑйнаÑ:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "ТÑÑÑÑкаÑ:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "УкÑаÑнÑкаÑ:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "ÐалÑйÑкаÑ:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
msgid "Temporary Playlist"
msgstr ""
@@ -213,86 +225,70 @@ msgstr ""
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d Ñайл знойдзенÑ"
-msgstr[1] "%d ÑÐ°Ð¹Ð»Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ð°"
-msgstr[2] "%d ÑÐ°Ð¹Ð»Ð°Ñ Ð·Ð½Ð¾Ð¹Ð´Ð·ÐµÐ½Ð°"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr ""
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr ""
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr ""
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr ""
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr ""
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr ""
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr ""
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
msgid "Add files to the playlist"
msgstr ""
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr ""
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr ""
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr ""
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -300,262 +296,241 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
msgid "Untitled Playlist"
msgstr ""
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr ""
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr ""
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr ""
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "ÐÑканаÑÑа"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "ÐлÑбом"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Ðазва"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr ""
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "ÐанÑ"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "ÐÐ¼Ñ Ñайла"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr ""
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "ÐаÑа"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Ðод"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr ""
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "ÐодÑк"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "ЯкаÑÑÑ"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "ЯпонÑкаÑ"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "ÐÑÑайÑÐºÐ°Ñ (ÑÑадÑÑÑйнаÑ)"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "ÐÑÑайÑÐºÐ°Ñ (ÑпÑоÑÑанаÑ)"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "ÐаÑÑйÑкаÑ"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Ð ÑÑкаÑ"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "ÐÑÑÑкаÑ"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "ÐÑÑÑÑ"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "ТÑÑÑÑкаÑ"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "ÐÑабÑкаÑ"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "ÐолÑÑкаÑ:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
+msgid "Single track mode"
msgstr ""
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "ÐлÑбом"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
+#: src/audacious/ui_preferences.c:152
+msgid "Bit depth:"
msgstr ""
-#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
msgstr ""
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "дÐ"
-
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
msgid "<b>Replay Gain</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr ""
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ÐлÑбом"
-
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
msgid "<b>Adjust Levels</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "дÐ"
+
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr ""
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr ""
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr ""
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr ""
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr ""
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr ""
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr ""
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -563,195 +538,187 @@ msgid ""
"fall back conversion from these encodings to UTF-8 would be attempted."
msgstr ""
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr ""
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
msgstr ""
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
msgstr ""
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr ""
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr ""
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "ÐÑклÑÑаÑÑÑ:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "УлÑÑаÑÑÑ:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "ÐлÑбÑÐ½Ñ Ð¿Ð¾ÑÑкÑ: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr ""
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "ÐÐÐÐÐ"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "ÐЫÐÐÐÐÐЦР- ÐÐÐÐÐ"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "ÐЫÐÐÐÐÐЦР- ÐÐЬÐÐÐ - ÐÐÐÐÐ"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "ÐЫÐÐÐÐÐЦР- ÐÐЬÐÐÐ - ÐУÐÐÐ . ÐÐÐÐÐ"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "ÐЫÐÐÐÐÐЦР[ ÐÐЬÐÐÐ ] - ÐУÐÐÐ . ÐÐÐÐÐ"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ÐÐЬÐÐÐ - ÐÐÐÐÐ"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr ""
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr ""
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr ""
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
+#: src/audacious/ui_preferences.c:1497
+msgid "Output plugin:"
msgstr ""
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "ÐеÑакладÑÑкÑ"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Effect"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr ""
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr ""
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -769,21 +736,24 @@ msgstr ""
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
msgid "_Don't show this message again"
msgstr ""
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
msgid "Rename Playlist"
msgstr ""
@@ -843,11 +813,11 @@ msgstr ""
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "ÐÑÐ¼Ð°Ñ Ð·Ð°Ð¿ÑÑÑ"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "ÐÑаÑÑглаÑÑÑ"
@@ -1076,6 +1046,27 @@ msgstr "%d Ðб/Ñ"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr ""
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "ÐÑа Audacious"
@@ -1136,20 +1127,20 @@ msgstr ""
msgid "Close on Jump"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
#, fuzzy
msgid "_Rename"
msgstr "ÐÐ¼Ñ Ñайла"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
msgid "_Close dialog on activating playlist"
msgstr ""
@@ -1161,6 +1152,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1170,25 +1167,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
diff --git a/po/bg.po b/po/bg.po
index 1e63d52..0cd15c4 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-01-13 12:01+0200\n"
"Last-Translator: Andrew Ivanov <aa.ivanov at gmail.com>\n"
"Language-Team: Bulgarian <bg at li.org>\n"
@@ -16,6 +16,17 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (невалидно UTF-8 кодиÑане)"
@@ -104,113 +115,113 @@ msgstr "Ð ÑмÑнÑки:"
msgid "Finnish:"
msgstr "ФинландÑки:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "ФÑенÑки:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "ÐемÑки:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "ÐÑÑзинÑки:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "ÐÑÑÑки:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Хинди:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "УнгаÑÑки:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ÐÑалианÑки:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "ЯпонÑки:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "ÐоÑейÑки:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Ð ÑмÑнÑки:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "ÐиÑовÑки:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "ÐакедонÑки:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "ÐолÑки:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "ÐоÑÑÑгалÑки (ÐÑазилиÑ):"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Ð ÑмÑнÑки:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Ð ÑÑки:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "СÑÑбÑки (лаÑиниÑа)"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "СÑÑбÑки (киÑилиÑа)"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "ÐиÑайÑки (опÑоÑÑен):"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "СловаÑки:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "ÐÑпанÑки:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "ШведÑки:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "ÐиÑайÑки (ÑÑадиÑионен):"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "УкÑаинÑки:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "УелÑки:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "ÐаÑеждана на плейлиÑÑа"
@@ -220,90 +231,75 @@ msgstr "ÐаÑеждана на плейлиÑÑа"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "ÐÑеÑкаÑане назад в плейлиÑÑаÑа"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "ÐÑоÑвиÑване на ÑекÑÑаÑа плейлиÑÑа"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "ÐаÑза на ÑекÑÑаÑа пеÑен"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "СпиÑане на ÑекÑÑаÑа пеÑен"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "ÐаÑза / пÑоÑвиÑване"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "ÐÑеÑкаÑане напÑед в плейлиÑÑаÑа"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
#, fuzzy
msgid "Display Jump to File dialog"
msgstr "Ðоказване диалог \"пÑеÑкаÑане до Ñайл\""
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "ÐобавÑне на Ñайлове кÑм плейлиÑÑаÑа."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
#, fuzzy
msgid "Add new files to a temporary playlist"
msgstr "ÐобавÑне на Ñайлове кÑм плейлиÑÑаÑа."
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
#, fuzzy
msgid "Display the main window"
msgstr "Ðоказване на Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿ÑозоÑеÑ"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "ÐлеÑÑ"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -311,264 +307,241 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Ðова плейлиÑÑа"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "ÐÑдио"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "ÐлейлиÑÑа"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "ÐÑиÑÑавки"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "ÐзпÑлниÑел"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "ÐлбÑм"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Ðаглавие"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "ÐомеÑ"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "ÐанÑ"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Ðме на Ñайл"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "ÐÑÑ Ð´Ð¾ Ñайла"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "ÐаÑа"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Ðодина"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "ÐоменÑаÑ"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "Ðз_Ñ
од"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "ЯпонÑки:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "ЯпонÑки:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "ÐиÑайÑки:"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "ÐоÑейÑки:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "Ð ÑÑки:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "ÐÑÑÑки:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "ÐолÑки:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<i>Ðаглавие</i>"
+msgid "Single track mode"
+msgstr "ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° пеÑенÑа"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Ðме на албÑма:"
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>ÐолелÑе на миÑкаÑа</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Разпознаване на ÑоÑмаÑи</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<i>Ðаглавие</i>"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° бÑÑеÑа:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
msgstr ""
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>ÐаÑÑÑойки на пÑокÑи ÑÑÑвÑÑ</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "Ðзползване на пÑокÑи ÑÑÑвÑÑ"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ÐеÑа-данни</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "ÐнÑоÑмаÑÐ¸Ñ Ð·Ð° пеÑенÑа"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ðме на албÑма:"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>ÐолелÑе на миÑкаÑа</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ÐзÑкаÑаÑа инÑоÑмаÑиÑ</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Ðме на ÑÑÑвÑÑа:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "ÐоÑÑ Ð½Ð° ÑÑÑвÑÑа:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "ÐоÑÑебиÑелÑко име:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "ÐаÑола:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>ÐаÑÑÑойки на пÑокÑи ÑÑÑвÑÑ</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Ðзползване на пÑокÑи ÑÑÑвÑÑ"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "ÐденÑиÑикаÑÐ¸Ñ Ð¿Ñед пÑокÑи ÑÑÑвÑÑа"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -576,15 +549,15 @@ msgstr ""
"<span size=\"small\">ÐÑомÑнаÑа на Ñези наÑÑÑойки налага да ÑеÑÑаÑÑиÑаÑе "
"Audacious.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "ÐвÑомаÑиÑно оÑкÑиване на кодоваÑа ÑаблиÑа за:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "ÐоÑÑебиÑелÑки кодови ÑаблиÑи:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -596,48 +569,48 @@ msgstr ""
"пÑавилнаÑа ÑаблиÑа. Ðко Ð½Ð¸ÐºÐ¾Ñ Ð¾Ñ Ð¿Ð¾ÑоÑениÑе кодови ÑаблиÑи не може да "
"декодиÑа данниÑе, кодиÑанеÑо Ñе пÑиема за UTF-8."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<i>Ðаглавие</i>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "ÐÑодÑлжаване на пÑоÑвиÑванеÑо пÑи ÑÑаÑÑиÑане"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "СÑздаване на нова плейлиÑÑа Ð¾Ñ ÑÑвпадениÑÑа"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "ÐобавÑне на Ñайлове кÑм плейлиÑÑаÑа."
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>ÐеÑа-данни</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "ÐаÑегоÑиÑ"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
#, fuzzy
msgid "Popup Information Settings"
msgstr "ÐаÑÑÑойки на изÑкаÑаÑаÑа инÑоÑмаÑиÑ"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
#, fuzzy
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Разпознаване на ÑоÑмаÑи</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -647,101 +620,101 @@ msgstr ""
"именаÑа на ÑайловеÑе. Ðо-Ð´Ð¾Ð»Ñ Ð¼Ð¾Ð¶ÐµÑе да ÑкажеÑе Ñези дÑми в ÑпиÑÑк, Ñазделен "
"ÑÑÑ Ð·Ð°Ð¿ÐµÑайки."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "ÐзклÑÑване:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "ÐклÑÑване:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "РекÑÑÑивно ÑÑÑÑене за обложка"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "ÐÑлбоÑина на ÑÑÑÑене:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Ðбложки, ÑпеÑиÑиÑни за Ñайла"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
#, fuzzy
msgid "<b>Miscellaneous</b>"
msgstr "<b>_Разни</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>ÐÑедÑÑавÑне на пеÑениÑе</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Ðоказване на инÑоÑмаÑÐ¸Ñ Ð·Ð° ÑоÑмаÑа на заглавиеÑо"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "ÐиÑен избоÑ:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "ÐиÑен избоÑ:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "ФоÑÐ¼Ð°Ñ Ð½Ð° заглавиеÑо:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>ÐзÑкаÑаÑа инÑоÑмаÑиÑ</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Ðоказване на изÑкаÑаÑа инÑоÑмаÑÐ¸Ñ Ð·Ð° елеменÑиÑе Ð¾Ñ Ð¿Ð»ÐµÐ¹Ð»Ð¸ÑÑаÑа"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -751,55 +724,48 @@ msgstr ""
"вклÑÑва заглавие, албÑм, жанÑ, година, Ð½Ð¾Ð¼ÐµÑ Ð² албÑма, пÑодÑлжиÑелноÑÑ Ð¸ "
"коÑиÑа."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
#, fuzzy
msgid "Edit settings for popup information"
msgstr "РедакÑиÑане на наÑÑÑойкиÑе за изÑкаÑаÑаÑа инÑоÑмаÑиÑ"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ÐÑдио ÑиÑÑема</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Ð Ð°Ð·Ð¼ÐµÑ Ð½Ð° бÑÑеÑа:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "ÐÑиÑÑавка за вÑзпÑоизвеждане:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "ÐекодеÑ: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "ÐÑеводаÑи"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>ÐÑекÑи</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "ÐизÑализаÑиÑ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "ÐаÑÑÑойки на Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, fuzzy, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Ðе може да бÑде ÑÑздадена диÑекÑоÑÐ¸Ñ (%s): %s"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -818,22 +784,24 @@ msgstr "ÑÑеÑео"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Ðез показване на Ñова пÑедÑпÑеждение за в бÑдеÑе"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "СÑÑ
ÑанÑване на плейлиÑÑа"
@@ -895,12 +863,12 @@ msgstr "ÐквалайзеÑ"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
#, fuzzy
msgid "Track Number"
msgstr "ÐомеÑ"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
#, fuzzy
msgid "Track Length"
msgstr "ÐÑодÑлжиÑелноÑÑ:"
@@ -1137,6 +1105,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "ÐÑеÑкаÑане до вÑемева позиÑиÑ"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "ÐаÑеждана на плейлиÑÑа"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "ÐаÑеждана на плейлиÑÑа"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "ÐÑноÑно Audacious"
@@ -1199,19 +1190,19 @@ msgstr "РазмаÑкиÑане на Ð-Ð"
msgid "Close on Jump"
msgstr "ÐаÑваÑÑне пÑи оÑваÑÑне на Ñайл"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "ÐениджÑÑ Ð½Ð° плейлиÑÑи"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "ÐлеменÑи"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "ÐÑе_именÑване"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "ÐаÑваÑÑне пÑи оÑваÑÑне на Ñайл"
@@ -1224,6 +1215,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1233,25 +1230,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "%s: непознаÑа опÑÐ¸Ñ `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, fuzzy, c-format
msgid "Unrecognized launch option: %d"
msgstr "%s: непознаÑа опÑÐ¸Ñ `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1286,6 +1283,24 @@ msgid "Show session management options"
msgstr "ÐекоÑаÑии Ð¾Ñ Ð¿ÑозоÑеÑÐ½Ð¸Ñ Ð¼ÐµÐ½Ð¸Ð´Ð¶ÑÑ"
#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>ÐолелÑе на миÑкаÑа</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>ÐеÑа-данни</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>ÐзÑкаÑаÑа инÑоÑмаÑиÑ</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>ÐÑдио ÑиÑÑема</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "ÐÑиÑÑавка за вÑзпÑоизвеждане:"
+
+#, fuzzy
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr ""
#~ "audacious: ÐÑеÑка пÑи иниÑиализиÑане на диÑплеÑ. СпиÑане на пÑогÑамаÑа.\n"
@@ -1514,9 +1529,6 @@ msgstr "ÐекоÑаÑии Ð¾Ñ Ð¿ÑозоÑеÑÐ½Ð¸Ñ Ð¼ÐµÐ½Ð¸Ð´Ð¶ÑÑ"
#~ msgid "No input plugin recognized this file"
#~ msgstr "ÐиÑо един Ð´ÐµÐºÐ¾Ð´ÐµÑ Ð½Ðµ ÑазÑеÑе Ñайла"
-#~ msgid "Input plugin: %s"
-#~ msgstr "ÐекодеÑ: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1527,9 +1539,6 @@ msgstr "ÐекоÑаÑии Ð¾Ñ Ð¿ÑозоÑеÑÐ½Ð¸Ñ Ð¼ÐµÐ½Ð¸Ð´Ð¶ÑÑ"
#~ msgid "Connectivity"
#~ msgstr "СвÑÑзаноÑÑ"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Разпознаване на ÑоÑмаÑи</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Разпознаване по ÑазÑиÑение"
@@ -1573,9 +1582,6 @@ msgstr "ÐекоÑаÑии Ð¾Ñ Ð¿ÑозоÑеÑÐ½Ð¸Ñ Ð¼ÐµÐ½Ð¸Ð´Ð¶ÑÑ"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "ÐаÑеждане на меÑа-данни Ð¾Ñ Ð¼ÑзикалниÑе Ñайлове."
-#~ msgid "Jump to Time"
-#~ msgstr "ÐÑеÑкаÑане до вÑемева позиÑиÑ"
-
#~ msgid "minutes:seconds"
#~ msgstr "минÑÑи:ÑекÑнди"
diff --git a/po/br.po b/po/br.po
index 7c63766..3a503d3 100644
--- a/po/br.po
+++ b/po/br.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: bmp 0.9.6\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-01-31 16:16+0100\n"
"Last-Translator: Thierry Vignaud <tvignaud at mandrakesoft.com>\n"
"Language-Team: Brezhoneg <LL at li.org>\n"
@@ -14,6 +14,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (n'eo ket mat UTF-8)"
@@ -101,113 +112,113 @@ msgstr "Roumanek :"
msgid "Finnish:"
msgstr "Finnek :"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Galleg :"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Alamaned :"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Jeorjiek :"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Gresian :"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hindi :"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Hungarek :"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Italianeg :"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Japaneg :"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Koreeg :"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Lec'hiadur :"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Lituaneg :"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Makedonek :"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Poloneg :"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Porzh :"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Roumanek :"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Rusianeg :"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Serbiek (latin)Â :"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Serbiek (lizherenneg ar ruseg)Â :"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr ""
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Slovek :"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Spagnoleg :"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Svedeg :"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr ""
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ukrainiek :"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Kembraeg :"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "Kargañ ar roll tonioù"
@@ -217,89 +228,74 @@ msgstr "Kargañ ar roll tonioù"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr ""
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr ""
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr ""
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr ""
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr ""
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr ""
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
#, fuzzy
msgid "Display Jump to File dialog"
msgstr "Lammat d'ar restr"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Ouzhpennañ a ra ar restroù d'ar roll tonioù."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
#, fuzzy
msgid "Add new files to a temporary playlist"
msgstr "Ouzhpennañ a ra ar restroù d'ar roll tonioù."
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr ""
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "Diskouez ar soner"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -307,282 +303,258 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
#, fuzzy
msgid "Buffering ..."
msgstr "Krubuilh"
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Roll tonioù nevez"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Son"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Roll tonioù"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Lugentoù"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Arzour"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Albom"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Titl"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Niverennroudenn"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Rumm"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Anv ar restr"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Hent ar restr"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Deiziad"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Bloavezh"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Askelenn"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
#, fuzzy
msgid "Codec"
msgstr "/Serriñ"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "/_Kuitaat"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Hini ebet"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "Japaneg :"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "Japaneg :"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Sineg :"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "Koreeg :"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "Rusianeg :"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "Gresian :"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Poloneg :"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "Keltiek"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
#, fuzzy
msgid "Universal"
msgstr "Rumm"
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Anv ar restr</b>"
+msgid "Single track mode"
+msgstr "/Sellout ouzh titouroù war ar roudenn"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Anv an albom :"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:152
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>_Nodrezhoù</b>"
+msgid "Bit depth:"
+msgstr "<b>Anv ar restr</b>"
-#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Ment ar skurzer :"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+msgid "Use software volume control (not recommended)"
msgstr ""
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Anv ar restr</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr ""
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-roadoù</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Sellout ouzh titouroù war ar roudenn"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Anv an albom :"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>Rodell al logodenn</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "Kefluniadur al lugent MPEG son"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Anv ostiz ar proksi :"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Porzh ar proksi :"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Anv arveriad ar proksi :"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Tremenger ar proksi :"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Kefluniadur ar proksi</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr ""
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
#, fuzzy
msgid "Use authentication with proxy"
msgstr "Implijit dilesadur"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr ""
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -590,203 +562,196 @@ msgid ""
"fall back conversion from these encodings to UTF-8 would be attempted."
msgstr ""
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Anv ar restr</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr ""
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "/Ouzhpennañ/Lec'hiadur war ar genrouedad ..."
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Ouzhpennañ a ra ar restroù d'ar roll tonioù."
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Meta-roadoù</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Rumm"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
#, fuzzy
msgid "Popup Information Settings"
msgstr "Kefluniadur al lugent MPEG son"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr ""
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr ""
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
#, fuzzy
msgid "<b>Miscellaneous</b>"
msgstr "<b>_A bep seurt</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
#, fuzzy
msgid "<b>Song Display</b>"
msgstr "<b>_Nodrezhoù</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr ""
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr ""
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr ""
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Furmad an titl :"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
#, fuzzy
msgid "<b>Popup Information</b>"
msgstr "Kefluniadur al lugent MPEG son"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Reiziad klevet</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Ment ar skurzer :"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Lugent ezkas red :"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Lugent engas : %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Trelatourion "
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Effect"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Visualization"
msgstr "Aozadur :"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Dibaboù Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "N'hell ket bet krouet ar renkell (%s)Â : %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -805,21 +770,23 @@ msgstr "divouezh"
#: src/libaudcore/tuple.c:689
#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanolioù :"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "Kanolioù :"
+msgstr[1] "Kanolioù :"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
msgid "_Don't show this message again"
msgstr ""
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Enrollañ ar roll tonioù"
@@ -890,12 +857,12 @@ msgstr "Kehidañ"
msgid "Preamp"
msgstr "Hunvre"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
#, fuzzy
msgid "Track Number"
msgstr "Niverenn ar roudenn"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
#, fuzzy
msgid "Track Length"
msgstr "Hirder ar roudenn :"
@@ -1138,6 +1105,30 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "Lammat d'ar restr"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Kargañ ar roll tonioù"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Kargañ ar roll tonioù"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Diwar-benn Audacious"
@@ -1201,20 +1192,20 @@ msgstr "Goullonderiñ A-B"
msgid "Close on Jump"
msgstr "/Serriñ"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
#, fuzzy
msgid "Playlist Manager"
msgstr "/Roll tonioù"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Bouetaduroù"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Adenvel"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "/Serriñ"
@@ -1227,6 +1218,12 @@ msgstr ""
msgid "Add URL"
msgstr "Ouzhpennañ un URL"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1236,25 +1233,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, fuzzy, c-format
msgid "Starting %s"
msgstr "Italianeg :"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1287,6 +1284,24 @@ msgid "Show session management options"
msgstr ""
#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>_Nodrezhoù</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Meta-roadoù</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "Kefluniadur al lugent MPEG son"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Reiziad klevet</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Lugent ezkas red :"
+
+#, fuzzy
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr ""
#~ "%s\n"
@@ -1620,9 +1635,6 @@ msgstr ""
#~ msgid "Filename:"
#~ msgstr "Anv ar restr :"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Lugent engas : %s"
-
#, fuzzy
#~ msgid "ZOH Interpolation"
#~ msgstr "Implijit dilesadur"
@@ -1974,9 +1986,6 @@ msgstr ""
#~ msgid "Jump to Playlist Start"
#~ msgstr "Lamat da zeroù ar roll tonioù"
-#~ msgid "Jump to File"
-#~ msgstr "Lammat d'ar restr"
-
#~ msgid "Load"
#~ msgstr "Kargañ"
diff --git a/po/ca.po b/po/ca.po
index c691f10..3cc28ed 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,29 +1,45 @@
-# Catalan messages for Audacious.
-# Copyright (C) 2008 Ernest Adrogué <eadrogue at gmx.net>
+# Catalan translation for Audacious
+# Copyright (C) Audacious translators
# This file is distributed under the same license as the Audacious package.
-# Ernest Adrogué <eadrogue at gmx.net>, 2007, 2008.
#
+# Translators:
+# Ernest Adrogué <eadrogue at gmx.net>, 2007, 2008.
+# Jordi Amenós <>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: audacious 1.5.1\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2009-04-11 16:00+0200\n"
-"Last-Translator: Ernest Adrogué <eadrogue at gmx.net>\n"
-"Language-Team: Catalan <ca at dodds.net>\n"
-"Language: ca\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-19 14:21-0500\n"
+"PO-Revision-Date: 2011-12-25 05:09+0000\n"
+"Last-Translator: Jordi Amenós <>\n"
+"Language-Team: Catalan\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Cercant "
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+"Traduccions plurals\n"
+"\n"
+"un:%d arxiu trobat"
+msgstr[1] "altres:%d arxius trobats"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:38
msgid " (invalid UTF-8)"
msgstr " (UTF-8 no và lid)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "Versió 0.1.x:"
+msgstr "desenvolupadors principals:"
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -41,255 +57,236 @@ msgstr "Desenvolupament de connectors:"
msgid "Patch authors:"
msgstr "Millores:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
msgid "1.x developers:"
-msgstr "Versió 0.1.x:"
+msgstr "Desenvolupadors 1.x:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
msgstr "Desenvolupadors del BMP:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
msgid "Belarusian:"
-msgstr "Búlgar:"
+msgstr "Bielorús:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
-msgstr ""
+msgstr "Basc:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
msgstr "Portuguès brasiler:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
msgstr "Bretó:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
msgstr "Búlgar:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
msgid "Catalan:"
msgstr "Català :"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:201
msgid "Chinese:"
-msgstr "Xinès"
+msgstr "Xinés:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:204
msgid "Croatian:"
msgstr "Croat:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:207
msgid "Czech:"
msgstr "Txec:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:210
msgid "Dutch:"
msgstr "Holandès:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:214
msgid "Estonian:"
msgstr "Estonià :"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:217
msgid "Finnish:"
msgstr "Finès:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:222
msgid "French:"
msgstr "Francès:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:228
msgid "German:"
msgstr "Alemany:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:235
msgid "Georgian:"
msgstr "Georgià :"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:238
msgid "Greek:"
msgstr "Grec:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:243
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:246
msgid "Hungarian:"
msgstr "Hongarès:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:250
msgid "Italian:"
msgstr "Italià :"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:254
msgid "Japanese:"
msgstr "Japonès:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:257
msgid "Korean:"
msgstr "Coreà :"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:260
msgid "Latvian:"
-msgstr "Croat:"
+msgstr "Lituà :"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:263
msgid "Lithuanian:"
msgstr "Lituà :"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:268
msgid "Macedonian:"
msgstr "Macedoni:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:271
msgid "Polish:"
msgstr "Polonès:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:277
msgid "Portuguese:"
-msgstr "Portuguès brasiler:"
+msgstr "Portuguès:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:280
msgid "Romanian:"
msgstr "Romanès:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:284
msgid "Russian:"
msgstr "Rus:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:288
msgid "Serbian (Latin):"
msgstr "Serbi (llatÃ):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:291
msgid "Serbian (Cyrillic):"
msgstr "Serbi (cirÃl·lic):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:295
msgid "Simplified Chinese:"
msgstr "Xinès simplificat:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:298
msgid "Slovak:"
msgstr "Eslovac:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:301
msgid "Spanish:"
msgstr "Espanyol:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:308
msgid "Swedish:"
msgstr "Suec:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:311
msgid "Traditional Chinese:"
msgstr "Xinès tradicional:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:317
msgid "Turkish:"
msgstr "Turc:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:321
msgid "Ukrainian:"
msgstr "Ucraïnès:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:325
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:328
msgid "Welsh:"
msgstr "Gal·lès:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Carrega una llista de reproducció"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:187
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Error quan s'importava el fitxer EQF de Winamp '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "Salta enrere en la llista de reproducció"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Comença a reproduir la llista actual"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Fa una pausa en la reproducció"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Atura la reproducció"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Fa una pausa, o bé reprèn la reproducció"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "Salta endavant en la llista de reproducció"
-# el tÃtol posa "Jump to Track" en realitat
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "Obre el dià leg Salta al fitxer"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "Afegeix fitxers a la llista de reproducció."
+msgstr "Afegir arxius a la llista de reproducció"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Afegeix els fitxers a una llista temporal"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "Mostra la finestra principal"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostra totes les finestres obertes"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Mostra la versió"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir missatges de depuració "
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Control remot (beta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "FITXER..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- reprodueix fitxers multimèdia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -298,440 +295,376 @@ msgstr ""
"%s: %s\n"
"Proveu â%s --helpâ per a més informació.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:557
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "No es troba còdec per %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nova llista de reproducció"
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Llista de reproducció nova"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Nova reproducció"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1625
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La llista de reproducció no es pot ordenar perquè la detecció de metadades "
+"encara està en marxa (o s'ha desactivat )"
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Ãudio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
-msgstr ""
+msgstr "Xarxa"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Llistes"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Connectors"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Ãlbum"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:278
msgid "Title"
msgstr "TÃtol"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Número de pista"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Gènere"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Nom del fitxer"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Ubicació"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Any"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Comentari"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Códec"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "Qualitat"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "Cap"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Ãrab"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "BÃ ltic"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Xinès"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japonès"
+msgid "Greek"
+msgstr "Grec"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwanès"
+msgid "Hebrew"
+msgstr "Hebreu"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Xinès"
+msgid "Japanese"
+msgstr "Japonès"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "Coreà "
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Rus"
+msgid "Polish"
+msgstr "Polonès"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Grec"
+msgid "Russian"
+msgstr "Rus"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebreu"
+msgid "Taiwanese"
+msgstr "Taiwanès"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "Turc"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Ãrab"
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Polonès:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Cèltica"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Profunditat de bits</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Manera Ãlbum"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Profunditat de bits de sortida:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Tots els fluxos es convertiran a aquesta profunditat.\n"
-"Aquesta hauria de correspondre amb la profunditat de bits\n"
-"mà xima que suporta la targeta de so o el connector de sortida."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Opcions sortida</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Control de volum</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profunditat de bits:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usa el control de volum per programari"
+msgid "Buffer size:"
+msgstr "Mida del buffer:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Usa el control de volum per programari. Això pot resultar útil en situacions "
-"en que el sistema d'à udio no permet controlar el volum de reproducció."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reprodueix fitxers multimèdia"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Utilitzar control de volum per software (no recomanat)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Mode de Replay Gain</b>"
+msgstr "<b>reproduir arxius sense fluctuacions de volum</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "Activa el Replay Gain"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-dades</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Mostra detalls de la pista"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar saturació (recomanat)"
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ãlbum:"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>Roda del ratolÃ</b>"
+msgstr "<b>Ajustar nivells</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informació emergent</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar tots els arxius:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Activa la prevenció d'escapçaments"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar arxius sense etiquetar:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Nom del servidor intermediari:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Port del servidor intermediari:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Nom d'usuari:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Contrasenya:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configuració de servidors intermediaris</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Activa l'ús de servidor intermediari"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "Autenticació al servidor intermediari"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Si canvieu aquestes opcions haureu de reiniciar "
-"l'Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Detecció automà tica del joc de carà cters per a:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "Jocs de carà cters de reserva:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Llista de jocs de carà cters de reserva per a la conversió de meta-dades. Si "
-"la detecció automà tica falla o està desactivada, els jocs de carà cters "
-"d'aquesta llista s'utilitzaran com a candidats per a la conversió i "
-"s'intentarà una conversió d'aquests jocs de carà cters a UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>Profunditat de bits</b>"
+msgstr "<b>Comportament</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Reprèn la reproducció en engegar"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avançar quan la cançó que s'està reproduint s'elimina"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "Crea una llista de reproducció nova amb els elements trobats"
+msgstr "A l'obrir arxius esborrar la llista que s'està reproduint "
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Afegeix els fitxers a una llista temporal"
+msgstr "Obrir arxius en llista temporal de reproducció"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Meta-dades</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No desar metadates mentre la cançó s'està reproduint"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÃTOL"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÃTOL"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÃLBUM - TÃTOL"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÃLBUM - PISTA. TÃTOL"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÃLBUM ] - PISTA. TÃTOL"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÃLBUM - TÃTOL"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Categoria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Parà metres de la informació emergent"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Obtenció de la imatge de portada</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-"Per a trobar la portada de l'Ã lbum, l'Audacious cerca certes paraules tretes "
-"del nom del fitxer. Podeu especificar aquestes paraules a les llistes de "
+"Per a trobar la portada de l'Ã lbum, l'Audacious cerca certes paraules tretes"
+" del nom del fitxer. Podeu especificar aquestes paraules a les llistes de "
"sota, separades per comes."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "Exclou:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Inclou:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "Cerca la portada recursivament"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Profunditat de recursió: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Cerca una portada per a cada fitxer"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Miscel·là nia</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "Mostra una barra de progressió per a la pista actual"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Retard de la finestra emergent: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalitzat"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Visualització de les cançons</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr ""
+msgstr "Mostrar el numero de les cançons"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar zeros a l'esquerra (02:00 en comptes de 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Mostra informació sobre el format del tÃtol"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TÃTOL"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTA - TÃTOL"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTA - ÃLBUM - TÃTOL"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTA - ÃLBUM - PISTA. TÃTOL"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTA [ ÃLBUM ] - PISTA. TÃTOL"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÃLBUM - TÃTOL"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personalitzat"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Cadena personalitzada:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Format del tÃtol:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Informació emergent</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr ""
"Mostra informació emergent per als elements de la llista de reproducció"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -742,392 +675,405 @@ msgstr ""
"gènere, l'any de publicació, el número de pista, la durada de la pista i "
"material artÃstic."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Edita els parà metres de la informació emergent"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema d'Ã udio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Mida del buffer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Connector de sortida actiu:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Connector de sortida"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "Traductors"
+msgstr "Transport"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Entrada"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Efectes</b>"
+msgstr "Efectes"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
msgstr "Visualització"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "General"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Preferències de l'Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "No s'ha pogut crear el directori (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr ""
+msgstr "No es troba aquesta posició."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
-msgstr ""
+msgstr "Aquesta cançó no es pot reproduir."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:462
msgid "Mono"
-msgstr ""
+msgstr "Mono"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:464
msgid "Stereo"
-msgstr "estèreo"
+msgstr "Estèreo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:466
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+"Traduccions plurals\n"
+"\n"
+"un:%d canal"
+msgstr[1] "altres:%d canals"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Estar segur de tancar %s? qualsevol canvi que hagi fet a la llista de "
+"reproducció es perdrà ."
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr "No mostrar més aquest avÃs"
+msgstr "_No torni a sortir aquest missatge"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "Desa una llista de reproducció"
+msgstr "Reanomena la llista de reproducció"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "Opcions..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
-msgstr "Actiu"
+msgstr "_Connecta"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
-#, fuzzy
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
-msgstr "Mostra l'equalitzador"
+msgstr "Equalitzador"
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
-msgstr "Preamp:"
+msgstr "Preamplificador"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "Número de pista"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "Durada de la pista:"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
msgid "Acid Jazz"
msgstr "Jazz à cid"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
msgid "Acid Rock"
-msgstr "Rock dur"
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
msgid "Ambient"
msgstr "Ambiental"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
msgid "Bebop"
msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
msgid "Chamber Music"
msgstr "Música de cambra"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
msgid "Classical"
msgstr "Clà ssica"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
msgid "Death Metal"
msgstr "Death metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
msgid "Easy Listening"
msgstr "Easy listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
msgid "Gangsta Rap"
msgstr "Rap gangsta"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
msgid "Hard Rock"
msgstr "Rock dur"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
msgid "Heavy Metal"
msgstr "Heavy metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
msgid "Hip-hop"
msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
msgid "New Age"
msgstr "New age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
msgid "New Wave"
msgstr "New wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
msgid "Noise"
msgstr "Soroll"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
msgid "Punk Rock"
msgstr "Punk rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
msgid "Rock and Roll"
-msgstr "Rock & roll"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
msgid "Techno"
msgstr "Tecno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">n/d</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
msgid "Metadata updated successfully"
msgstr "Les meta-dades s'han actualitzat correctament"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
msgstr "Ha fallat l'actualització de les meta-dades"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
msgstr "Informació de la pista"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Format:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">Qualitat:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">Flux de bits:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">TÃtol</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Artista</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Ãlbum</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Comentari</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Gènere</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Any</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Número de pista</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
msgstr ""
+"No hi ha informació disponible per %s.â\n"
+"\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Salta al temps"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportar llista de reproducció"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importar llista de reproducció"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Reescriure %s?"
+
+#: src/libaudgui/queue-manager.c:186
+msgid "Queue Manager"
+msgstr "Gestor de cues"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "Quant a l'Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Crèdits"
@@ -1135,109 +1081,114 @@ msgstr "Crèdits"
msgid "Translators"
msgstr "Traductors"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Obre els fitxers"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "Afegeix els fitxers"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "Tanca el dià leg en obrir"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "Tanca el dià leg en afegir"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Treu de la _cua"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "_Queue"
msgstr "_Posa a la cua"
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "Treu de la _cua"
+
+#: src/libaudgui/ui_jumptotrack.c:239
msgid "Jump to Track"
msgstr "Salta a la pista"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
msgid "Filter: "
msgstr "Filtre: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
msgid "_Filter:"
msgstr "_Filtre:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
msgid "Remember"
msgstr "Recorda"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Clea_r"
-msgstr "Esborra A-B"
+msgstr "Neteja"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
msgid "Close on Jump"
msgstr "Tanca en saltar"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:252
msgid "Playlist Manager"
msgstr "Gestor de llistes"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Entries"
msgstr "Elements"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:300
msgid "_Rename"
msgstr "_Reanomena"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:324
msgid "_Close dialog on activating playlist"
-msgstr "Tanca el dià leg en obrir"
+msgstr "_Tancar dià legs al activar llista de reproducció"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
-msgstr ""
+msgstr "Obrir URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
+msgstr "Afegir URL"
+
+#: src/libaudgui/util.c:98
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "El fitxer no és un fitxer \"desktop\" và lid"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Versió del fitxer \"desktop\" no reconeguda: '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "Començant %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "L'aplicació no admet documents a la lÃnia d'ordres"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Opció d'iniciació no reconeguda: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"No es poden passar URIs de documents a una entrada d'escriptori 'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "No és un element iniciable"
@@ -1262,1955 +1213,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Opcions de gestió de sessió"
+msgstr "Opcions de gestió de sessions "
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Mostra les opcions de gestió de sessió"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: No s'ha pogut obrir la pantalla, sortint.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Preamp:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Guany per defecte:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Aquest valor de guany s'utilitzarà si el fitxer no conté meta-dades "
-#~ "Replay Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Recordeu que la forma més efectiva de prevenir "
-#~ "escapçaments del senyal és no utilitzar valors positius aquà dalt.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuració del Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Pista"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Ãlbum"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Usa el valor de pic de la informació Replay Gain per a prevenir "
-#~ "escapçaments"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock clà ssic"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Antigues"
-
-#~ msgid "Other"
-#~ msgstr "Altres"
-
-#~ msgid "R&B"
-#~ msgstr "Rythm & blues"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Pranks"
-#~ msgstr "Bromes"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Banda sonora"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-tecno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusió"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Ãcida"
-
-#~ msgid "Game"
-#~ msgstr "Jocs"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Clip d'Ã udio"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock alternatiu"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Espacial"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativa"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop instrumental"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ãtnica"
-
-#~ msgid "Gothic"
-#~ msgstr "Gòtica"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tecno-industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electrònica"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Rock del sud"
-
-#~ msgid "Comedy"
-#~ msgstr "Comèdia"
-
-#~ msgid "Cult"
-#~ msgstr "De culte"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap cristià "
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Nativa americana"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psiquedèlica"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trà iler"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Punk à cid"
-
-#~ msgid "Polka"
-#~ msgstr "Polca"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Folk nacional"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Llatina"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Cèltica"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantguardista"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock gòtic"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock progressiu"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock psiquedèlic"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock simfònic"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Rock lent"
-
-#~ msgid "Big Band"
-#~ msgstr "Big band"
-
-#~ msgid "Chorus"
-#~ msgstr "Cors"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acústica"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Parla"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Ãpera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Simfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Groove pornogrà fic"
-
-#~ msgid "Satire"
-#~ msgstr "SÃ tira"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Jam lent"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklòrica"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Balada enèrgica"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Soul rÃtmic"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo de bateria"
-
-#~ msgid "A Cappella"
-#~ msgstr "A capella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-house"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-house"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Independent"
-
-#~ msgid "BritPop"
-#~ msgstr "Pop brità nic"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Punk negre"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Punk polonès"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Rap gangsta cristià "
-
-#~ msgid "Black Metal"
-#~ msgstr "Black metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Cristiana contemporà nia"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock cristià "
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Un reproductor multimèdia amb decoracions per a diverses plataformes.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Equip de Desenvolupament de l'Audacious\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "No s'ha pogut crear el fitxer de registre (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Envia tots els errors i avisos a âstdoutâ"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Usat en l'empaquetat per a Mac"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Aquesta plataforma no suporta fils.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "Cà rrega de mòduls no suportada! No es carregarà cap connector.\n"
-
-#, fuzzy
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious- avÃs de motor GTK defectuós"
-
-#~ msgid "Playback"
-#~ msgstr "Reproducció"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Reproducció</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Quan l'Audacious s'engega, automà ticament continua la reproducció en el "
-#~ "punt on es va aturar."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Discontinua la reproducció programada"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Quan s'acaba una cançó, no avança automà ticament a la següent."
-
-#~ msgid "Enabled"
-#~ msgstr "Actiu"
-
-#~ msgid "Description"
-#~ msgstr "Descripció"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Preferències del connector de sortida"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informació sobre el connector de sortida"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Llista de _descodificadors:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Descodificadors</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Llista de connectors _generals:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>General</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Llista de connectors de _visualització:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualització</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Llista de connectors d'_efectes:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">General</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Ubicació</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Meta-dades en brut</span>"
-
-#~ msgid "Key"
-#~ msgstr "Clau"
-
-#~ msgid "Value"
-#~ msgstr "Valor"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "_Valors programats disponibles:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "_Valors programats disponibles:"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Afegeix o obre un URL"
-
-# apòstrof
-#~ msgid "Enter location to play:"
-#~ msgstr "Introduïu la ubicació a reproduir:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "No neteja la llista de reproducció"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Nom del fitxer:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Cap connector d'entrada reconeix aquest fitxer"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Connector d'entrada: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>No hi ha cap connector de sortida seleccionat.</big></b>\n"
-#~ "No heu seleccionat cap connector de sortida."
-
-#~ msgid "Connectivity"
-#~ msgstr "Connectivitat"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Interpolació sinc millor possible"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Interpolació sinc mitjana"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Interpolació sinc més rà pida possible"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Interpolació ZOH"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Interpolació lineal"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Freqüència de mostra [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Motor d'interpolació:"
-
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Tots els fluxos es convertiran a aquesta freqüència "
-#~ "de mostra.\n"
-#~ "Tal freqüència hauria de ser la mà xima permesa per la targeta de so o el\n"
-#~ "connector de sortida.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detecció de format</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Detecta el format dels fitxers a partir de l'extensió."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Quan està marcada, l'Audacious detectarà els formats basant-se en les "
-#~ "extensions dels fitxers. Només es carregaran els fitxers que tinguin una "
-#~ "extensió d'algun format suportat."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Convertidor de la freqüència de mostra</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Activa el convertidor de la freqüència de mostra"
-
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Avançat</b>"
-
-#~ msgid "Bypass all of signal processing if possible"
-#~ msgstr "Evita tot processament del senyal, si és possible"
-
-#~ msgid ""
-#~ "Try to pass input plugin's output directly to output plugin, if the "
-#~ "latter supports format produced by input plugin. If it's true, all signal "
-#~ "processing will be disabled (i.e. DSP plugins, equalizer, resampling, "
-#~ "Replay Gain and software volume control)."
-#~ msgstr ""
-#~ "Tracta de passar la sortida del connector d'entrada directament al "
-#~ "connector de sortida, si aquest suporta el format produït pel primer. En "
-#~ "aquest cas, tot processament del senyal quedarà inoperant (i.e., "
-#~ "connectors DSP, equalització, remostratge, Replay Gain i control de volum "
-#~ "per programari)."
-
-#~ msgid "Dynamically adjust scale factor to prevent clipping"
-#~ msgstr "Ajusta el factor d'escalat dinà micament per a prevenir escapçaments"
-
-#~ msgid "Decrease scale factor (gain) if clipping nevertheless occurred"
-#~ msgstr ""
-#~ "Decrementa el factor d'escalat (guany), si de totes maneres s'ha produït "
-#~ "un escapçament"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Audacious has caught signal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "We apologize for the inconvenience, but Audacious has crashed.\n"
-#~ "This is a bug in the program, and should never happen under normal "
-#~ "circumstances.\n"
-#~ "Your current configuration has been saved and should not be damaged.\n"
-#~ "\n"
-#~ "You can help improve the quality of Audacious by filing a bug at http://"
-#~ "jira.atheme.org/\n"
-#~ "Please include the entire text of this message and a description of what "
-#~ "you were doing when\n"
-#~ "this crash occured in order to quickly expedite the handling of your bug "
-#~ "report:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "L'Audacious ha caçat un senyal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "Ho sentim, però l'Audacious s'ha estrellat.\n"
-#~ "Això és un error en el programa, i no hauria de passar en circumstà ncies "
-#~ "normals.\n"
-#~ "La vostra configuració actual s'ha desat i no s'hauria d'haver fet "
-#~ "malbé.\n"
-#~ "\n"
-#~ "Podeu ajudar a millorar la qualitat de l'Audacious omplint un formulari "
-#~ "d'informe\n"
-#~ "d'errors a: http://bugzilla.atheme.org\n"
-#~ "Si us plau, inclogueu el text complet d'aquest missatge i una descripció "
-#~ "del que\n"
-#~ "està veu fent quan s'ha produït la fallada, per tal que la investigació "
-#~ "pugui ser:\n"
-#~ "expiditiva.\n"
-
-#~ msgid ""
-#~ "Stacktrace was unavailable. You might want to reproduce this problem "
-#~ "while running Audacious under GDB to get a proper backtrace.\n"
-#~ msgstr ""
-#~ "No s'ha pogut fer una traça de la pila. Potser voldreu reproduir aquest "
-#~ "problema executant l'Audacious sota el GDB per a obtenir una traça "
-#~ "adequada.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Bugs can be reported at http://jira.atheme.org/ against the Audacious or "
-#~ "Audacious Plugins product.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Podeu informar d'errors trobats a l'Audacious a http://bugzilla.atheme."
-#~ "org/.\n"
-
-#~ msgid ""
-#~ "Your signaling implementation is broken.\n"
-#~ "Expect unusable crash reports.\n"
-#~ msgstr ""
-#~ "L'implementació de senyals en aquest sistema és defectuosa.\n"
-#~ "Els informes de fallades poden ser inservibles.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2008 Equip de Desenvolupament de l'Audacious"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Detecta el format dels fitxers a petició, en lloc d'immediatament"
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Quan està activada, l'Audà cious detectarà el format quan ho necessiti. "
-#~ "Això pot fer que la llista de reproducció mostri informació incorrecta, "
-#~ "però aporta un gran benefici en termes de velocitat."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Llegeix les meta-dades dels fitxers i les llistes"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr ""
-#~ "Llegeix les meta-dades (informació de les etiquetes) dels fitxers de "
-#~ "música."
-
-#~ msgid "Can't jump to time when no track is being played.\n"
-#~ msgstr "No es pot saltar al temps quan no s'està reproduint cap pista.\n"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Salta al temps"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuts:segons"
-
-#~ msgid "Track length:"
-#~ msgstr "Durada de la pista:"
-
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Desa com a llista de reproducció està tica"
-
-#~ msgid "Use Relative Path"
-#~ msgstr "Usa camins relatius"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Error quan s'escrivia la llista de reproducció \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s ja existeix. Voleu continuar?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>No es pot desar la llista.</big></b>\n"
-#~ "\n"
-#~ "Tipus de fitxer desconegut: '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Perfils"
-
-#~ msgid "Mouse"
-#~ msgstr "RatolÃ"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Pausa entre cançons"
-
-#~ msgid "Pause for"
-#~ msgstr "Pausa de"
-
-#~ msgid "seconds"
-#~ msgstr "segons"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Nom del fitxer</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Converteix els guions baixos en espais"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Converteix els %20 en espais"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "Converteix les barres invertides '\\' en barres normals '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Dià leg de fitxer</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Refresca sempre el directori quan s'obri el dià leg d'obrir fitxer"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Refresca sempre el dià leg de fitxer (això farà que els directoris grans "
-#~ "s'obrin a poc a poc, i el VFS del Gnome hauria de funcionar "
-#~ "automà ticament)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Canvia el volum un"
-
-#~ msgid "percent"
-#~ msgstr "per cent"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Desplaça la llista de reproducció"
-
-#~ msgid "lines"
-#~ msgstr "lÃnies"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Para quan s'acabi la cançó"
-
-#~ msgid "Peaks"
-#~ msgstr "Pics"
-
-#~ msgid "Repeat"
-#~ msgstr "Repeteix"
-
-#~ msgid "Shuffle"
-#~ msgstr "Barreja"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Discontinua la reproducció programada"
-
-#~ msgid "Play"
-#~ msgstr "Reprodueix"
-
-#~ msgid "Pause"
-#~ msgstr "Pausa"
-
-#~ msgid "Stop"
-#~ msgstr "Para"
-
-#~ msgid "Previous"
-#~ msgstr "Anterior"
-
-#~ msgid "Next"
-#~ msgstr "Següent"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Mode de visualització"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Mode de l'analitzador"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Mode de l'oscil·loscopi"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "Mode de l'empremta de veu"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "Mode del WindowShade VU"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Velocitat de refresc"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Caiguda de l'analitzador"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Caiguda dels pics"
-
-#~ msgid "New Playlist"
-#~ msgstr "Llista de reproducció nova"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Selecciona la llista següent"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Selecciona la llista anterior"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Esborra la llista"
-
-#~ msgid "Load List"
-#~ msgstr "Carrega una llista"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Afegeix una llista de reproducció a la llista seleccionada"
-
-#~ msgid "Save List"
-#~ msgstr "Desa la llista"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Desa les llistes de reproducció seleccionades."
-
-#~ msgid "Save Default List"
-#~ msgstr "Desa la llista per defecte"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr ""
-#~ "Desa les llistes de reproducció seleccionades a la ubicació per defecte."
-
-#~ msgid "Refresh List"
-#~ msgstr "Refresca la llista"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Refresca les meta-dades associades a cada element de la llista."
-
-#~ msgid "List Manager"
-#~ msgstr "Gestor de llistes"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Obre el gestor de llistes de reproducció."
-
-#~ msgid "View"
-#~ msgstr "Finestres"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Afegeix una adreça d'Internet..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Afegeix una pista remota a la llista de reproducció."
-
-#~ msgid "Add Files..."
-#~ msgstr "Afegeix fitxers..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Cerca i selecciona"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Cerca a la llista de reproducció i selecciona elements basant-se en "
-#~ "criteris especÃfics."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Inverteix la selecció"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Inverteix els elements seleccionats i no seleccionats."
-
-#~ msgid "Select All"
-#~ msgstr "Selecciona tots els elements"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Selecciona tots els elements de la llista de reproducció."
-
-#~ msgid "Select None"
-#~ msgstr "Selecciona no res"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Deselecciona tots els elements de la llista de reproducció."
-
-#~ msgid "Remove All"
-#~ msgstr "Treu tots els elements"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Treu tots els elements de la llista de reproducció."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Neteja la cua"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Neteja la cua associada a aquesta llista de reproducció. "
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Treu els fitxers no disponibles"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Treu els fitxers no disponibles de la llista de reproducció."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Treu els duplicats"
-
-#~ msgid "By Title"
-#~ msgstr "Per tÃtol"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Treu els elements duplicats de la llista de reproducció per tÃtol."
-
-#~ msgid "By Filename"
-#~ msgstr "Per nom de fitxer"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr ""
-#~ "Treu els elements duplicats de la llista de reproducció per nom de fitxer."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Per ubicació i nom de fitxer"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Treu els elements duplicats de la llista de reproducció per l'ubicació "
-#~ "completa."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Treu els no seleccionats"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Treu els elements no seleccionats de la llista de reproducció."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Treu els seleccionats"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Treu els elements seleccionats de la llista de reproducció."
-
-#~ msgid "Randomize List"
-#~ msgstr "Barreja la llista"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Reordena la llista de forma aleatòria."
-
-#~ msgid "Reverse List"
-#~ msgstr "Inverteix la llista"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Inverteix l'ordre de la llista."
-
-#~ msgid "Sort List"
-#~ msgstr "Ordena la llista"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Ordena la llista pel tÃtol."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Ãlbum"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Ordena la llista pel tÃtol."
-
-#~ msgid "By Artist"
-#~ msgstr "Per l'artista"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Ordena la llista per l'artista."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Ordena la llista pel nom de fitxer."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Ordena la llista per la ubicació completa."
-
-#~ msgid "By Date"
-#~ msgstr "Per la data"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Ordena la llista per la data de modificació."
-
-#~ msgid "By Track Number"
-#~ msgstr "Pel número de pista"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Ordena la llista pel número de pista."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "Per l'entrada a la llista"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Ordena la llista de reproducció per l'entrada."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Ordena els seleccionats"
-
-#~ msgid "File"
-#~ msgstr "Fitxer"
-
-#~ msgid "Help"
-#~ msgstr "Ajuda"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Comentari"
-
-#~ msgid "View Track Details"
-#~ msgstr "Mostra detalls de la pista"
-
-#~ msgid "Play File"
-#~ msgstr "Reprodueix fitxer"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Carrega i reprodueix un fitxer"
-
-#~ msgid "Play Location"
-#~ msgstr "Reprodueix una font remota"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Reprodueix un mitjà des de la ubicació seleccionada"
-
-#~ msgid "Plugin services"
-#~ msgstr "Serveis de connectors"
-
-#~ msgid "Preferences"
-#~ msgstr "Preferències"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Obre la finestra de preferències"
-
-#~ msgid "_Quit"
-#~ msgstr "_Surt"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Tanca l'Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "Estableix A-B"
-
-#~ msgid "Clear A-B"
-#~ msgstr "Esborra A-B"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Salta a l'inici de la llista"
-
-#~ msgid "Jump to File"
-#~ msgstr "Salta al fitxer"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "Posa o treu de la cua"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Posa o lleva un element de la cua."
-
-#~ msgid "Load"
-#~ msgstr "Carrega"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid "Save"
-#~ msgstr "Desa"
-
-#~ msgid "Delete"
-#~ msgstr "Elimina"
-
-#~ msgid "Preset"
-#~ msgstr "Perfil"
-
-#~ msgid "Load preset"
-#~ msgstr "Carrega un perfil"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Perfil automà tics"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Carrega un perfil automà tic"
-
-#~ msgid "Default"
-#~ msgstr "Per defecte"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Carrega el perfil per defecte a l'equalitzador"
-
-#~ msgid "Zero"
-#~ msgstr "Zero"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Posa els valors de l'equalitzador a zero"
-
-#~ msgid "From file"
-#~ msgstr "Des d'un fitxer"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Carrega el perfil des d'un fitxer"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "D'un fitxer EQF del WinAMP"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Carrega el perfil des d'un fitxer EQF del WinAMP"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "Perfils del WinAMP"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Importa perfils del WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "Desa el perfil"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Desa com a perfil automà tic"
-
-#~ msgid "Save default preset"
-#~ msgstr "Desa com a perfil per defecte"
-
-#~ msgid "To file"
-#~ msgstr "En un fitxer"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Desa el perfil en un fitxer"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "En un fitxer EQF del WinAMP"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Desa els valors en un fitxer EQF del WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "Esborra el perfil"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "Esborra el perfil automà tic"
-
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Això és la mida del buffer preliminar per als fluxos "
-#~ "d'à udio, en mil·lisegons.\n"
-#~ "Augmenteu aquest valor si es produeixen talls en la reproducció.\n"
-#~ "Tingueu en compte, però, que valors alts afectaran negativament el "
-#~ "rendiment de l'Audacious.</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "Activa el mode d'operació sense frontal"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>No s'ha pogut carregar la decoració.</big></b>\n"
-#~ "\n"
-#~ "Comproveu que la decoració a '%s' és utilitzable i que la decoració "
-#~ "predeterminada està instal·lada correctament a '%s'\n"
-
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Operació sense frontal activada\n"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Desenvolupadors principals:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Equalitzador de l'Audacious"
-
-#~ msgid "Play files"
-#~ msgstr "Reprodueix els fitxers"
-
-#~ msgid "Load files"
-#~ msgstr "Carrega els fitxers"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "Audacious - visibility warning"
-#~ msgstr "Audacious - avÃs de visibilitat"
-
-#~ msgid "Show main player window"
-#~ msgstr "Mostra la finestra principal"
-
-#~ msgid "Ignore"
-#~ msgstr "Ignora"
-
-#~ 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 ""
-#~ "L'Audacious ha arrencat amb totes les finestres ocultes.\n"
-#~ "Potser voldreu mostrar la finestra del reproductor per a controlar "
-#~ "l'Audacious; en cas contrari, l'haureu de controlar remotament via "
-#~ "l'audtool o connectors (com ara el connector statusicon)."
-
-#~ msgid "Always ignore, show/hide is controlled remotely"
-#~ msgstr "Ignora sempre, mostra/oculta es controla remotament"
-
-#~ msgid ""
-#~ "<big><b>Broken GTK engine in use</b></big>\n"
-#~ "\n"
-#~ "Audacious has detected that you are using a broken GTK engine.\n"
-#~ "\n"
-#~ "The theme engine you are using, <i>%s</i>, 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 ""
-#~ "<big><b>Esteu utilitzant un motor GTK defectuós</b></big>\n"
-#~ "\n"
-#~ "L'Audacious ha detectat que esteu utilitzant un motor GTK defectuós.\n"
-#~ "\n"
-#~ "El motor de temes que esteu usant, <i>%s</i>, és incompatible amb algunes "
-#~ "funcions que usen moltes decoracions actuals. Les funcions en qüestió "
-#~ "s'han deshabilitat per a aquesta sessió.\n"
-#~ "\n"
-#~ "Si voleu utilitzar aquestes funcions, considereu canviar el motor GTK "
-#~ "actual."
-
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "Anar a: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#~ msgid "Volume: %d%%"
-#~ msgstr "Volum: %d%%"
-
-#~ msgid "Balance: %d%% left"
-#~ msgstr "Balanç: %d%% esquerra"
-
-#~ msgid "Balance: center"
-#~ msgstr "Balanç: centrat"
-
-#~ msgid "Balance: %d%% right"
-#~ msgstr "Balanç: %d%% dreta"
-
-#~ msgid "Options Menu"
-#~ msgstr "Menú d'opcions"
-
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Desactiva 'Sempre per sobre'"
-
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Activa 'Sempre per sobre'"
-
-#~ msgid "File Info Box"
-#~ msgstr "Informació del fitxer"
-
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Desactiva l'escalat de la IUG"
-
-#~ msgid "Enable 'GUI Scaling'"
-#~ msgstr "Activa l'escalat de la IUG"
-
-#~ msgid "Visualization Menu"
-#~ msgstr "Menú de visualització"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>No es pot obrir la sortida d'Ã udio.</big></b>\n"
-#~ "\n"
-#~ "Si us plau, comproveu que:\n"
-#~ "1. Heu seleccionat el connector de sortida correcte.\n"
-#~ "2. Cap altre programa està bloquejant la targeta de so.\n"
-#~ "3. Heu configurat la targeta de so correctament.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Belluga el tÃtol"
-
-#~ msgid "Show Player"
-#~ msgstr "Mostra el reproductor"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Mostra l'editor de llistes"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "Mostra l'equalitzador"
-
-#~ msgid "Always on Top"
-#~ msgstr "Sempre per sobre"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "A tots els espais de treball"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Enrotlla el reproductor"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Enrotlla l'editor de llistes"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Enrotlla l'equalitzador"
-
-#~ msgid "Scale"
-#~ msgstr "Escala"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Dobla la mida"
-
-#~ msgid "Easy Move"
-#~ msgstr "Moviment fà cil"
-
-#~ msgid "Analyzer"
-#~ msgstr "Analitzador"
-
-#~ msgid "Scope"
-#~ msgstr "Oscil·loscopi"
-
-#~ msgid "Voiceprint"
-#~ msgstr "Empremta de veu"
-
-#~ msgid "Off"
-#~ msgstr "Apagat"
-
-#~ msgid "Normal"
-#~ msgstr "Normal"
-
-#~ msgid "Fire"
-#~ msgstr "Foc"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "LÃnies verticals"
-
-#~ msgid "Lines"
-#~ msgstr "LÃnies"
-
-#~ msgid "Bars"
-#~ msgstr "Barres"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Oscil·loscopi de punts"
-
-#~ msgid "Line Scope"
-#~ msgstr "Oscil·loscopi de lÃnies"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Oscil·loscopi sòlid"
-
-#~ msgid "Ice"
-#~ msgstr "Gel"
-
-#~ msgid "Smooth"
-#~ msgstr "Suau"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Al mà xim (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "La meitat (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Un quart (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Un octau (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "MÃnim"
-
-#~ msgid "Slow"
-#~ msgstr "Lent"
-
-#~ msgid "Medium"
-#~ msgstr "Mitjà "
-
-#~ msgid "Fast"
-#~ msgstr "RÃ pid"
-
-#~ msgid "Fastest"
-#~ msgstr "Al mà xim"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Temps transcorregut"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Temps que queda"
-
-#~ msgid "Plugin Services"
-#~ msgstr "Serveis de connectors"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Cerca elements en la llista de reproducció activa"
-
-#~ 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 ""
-#~ "Seleccioneu elements de la llista de reproducció omplint un o diversos "
-#~ "camps. Aquests camps admeten la sintaxi d'expressions regulars i són "
-#~ "insensibles a la capitalització. Si no sabeu com funcionen les "
-#~ "expressions regulars, podeu escriure literalment el text que busqueu."
-
-#~ msgid "Title: "
-#~ msgstr "TÃtol: "
-
-#~ msgid "Album: "
-#~ msgstr "Ãlbum:"
-
-#~ msgid "Artist: "
-#~ msgstr "Artista: "
-
-#~ msgid "Filename: "
-#~ msgstr "Nom del fitxer: "
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "Neteja la selecció anterior abans de cercar"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "Posa o treu de la cua automà ticament els elements trobats"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Editor de llistes de l'Audacious"
-
-#~ msgid "Appearance"
-#~ msgstr "Aparença"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Foses</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Reproductor:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Trieu la fosa de la finestra principal:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Llista de reproducció:"
-
-#~ msgid "Select playlist font:"
-#~ msgstr "Trieu la fosa de la llista de reproducció:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Usa foses mapa de bits, si n'hi ha de disponibles"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Usa foses tipus mapa de bits, si n'hi ha de disponibles. Les fonts de "
-#~ "mapa de bits no suporten cadenes Unicode."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Miscel·là nia</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Mostra el número de pista a la llista de reproducció"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Mostra separadors a la llista de reproducció"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Mostra la decoració del gestor de finestres"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr ""
-#~ "Això permet al gestor de finestres mostrar la decoració de les finestres."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Usa el selector de fitxers estil XMMS, en lloc del predeterminat"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Això activa els dià legs de selecció de fitxer de l'estil XMMS/GTK-1. "
-#~ "Aquest selector el proporciona el propi Audacious i és més rà pid que el "
-#~ "selector GTK2 predeterminat (però no és tant amigable)."
-
-#~ msgid "Use two-way text scroller"
-#~ msgstr "Usa desplaçament de text bidireccional"
-
-#~ msgid ""
-#~ "If selected, the file information text in the main window will scroll "
-#~ "back and forth. If not selected, the text will only scroll in one "
-#~ "direction."
-#~ msgstr ""
-#~ "Si està seleccionat, la informació del fitxer a la finestra principal es "
-#~ "desplaçarà endavant i enrere. Si no està seleccionat, el text es "
-#~ "desplaçarà en una sola direcció."
-
-#~ msgid "Disable inline gtk theme"
-#~ msgstr "Deshabilita els temes GTK en lÃnia"
-
-#~ msgid "Allow loading incomplete skins"
-#~ msgstr "Permet carregar decoracions incompletes"
-
-#~ msgid ""
-#~ "If selected, audacious won't refuse loading broken skins. Use only if "
-#~ "your favourite skin doesn't work"
-#~ msgstr ""
-#~ "Si està seleccionat, l'Audacious no refusarà carregar decoracions "
-#~ "defectuoses. Useu-ho només si la vostra decoració favorita no funciona"
-
-#~ msgid "On load"
-#~ msgstr "En el moment d'obrir el fitxer"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Llegeix les meta-dades en obrir el fitxer o afegir-lo a la llista de "
-#~ "reproducció"
-
-#~ msgid "On display"
-#~ msgstr "Quan s'hagin de mostrar"
-
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Llegeix les meta-dades quan calgui mostrar el fitxer a la llista de "
-#~ "reproducció. Potser haureu de marcar \"Detecta el format dels fitxers a "
-#~ "petició\" a l'apartat de So per a treure'n profit."
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Ajustament del color"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "L'Audacious us permet alterar el balanç de colors de la decoració de la "
-#~ "IG. Els controls de sota us permetran fer això."
-
-#~ msgid "Blue"
-#~ msgstr "Blau"
-
-#~ msgid "Green"
-#~ msgstr "Verd"
-
-#~ msgid "Red"
-#~ msgstr "Roig"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Decoració</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Refresca la llista de decoracions"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Decoració del Winamp 2.x arxivada"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Decoració del Winamp 2.x no arxivada"
-
-#~ msgid "Show version and builtin features"
-#~ msgstr "Mostra la versió i les caracterÃstiques suportades"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Utilitza cursors canviats"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "La vostra plataforma no suporta fils.\n"
-#~ "\n"
-#~ "Si esteu en un sistema Linux basat en la libc5 i heu instal·lat la Glib i "
-#~ "el\n"
-#~ "GTK+ abans d'instal·lar el LinuxThreads, heu de recompilar la Glib i el "
-#~ "GTK+.\n"
-
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Selecciona la sessió d'Audacious a utilitzar"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Extensió dels fitxers de valors programats:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>No es pot crear %s.</big></b>\n"
-#~ "\n"
-#~ "No s'ha pogut obrir el fitxer Glade (%s). Reviseu la instal·lació.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TÃTOL\n"
-#~ "ARTISTA - TÃTOL\n"
-#~ "ARTISTA - ÃLBUM - TÃTOL\n"
-#~ "ARTISTA - ÃLBUM - PISTA. TÃTOL\n"
-#~ "ARTISTA [ ÃLBUM ] - PISTA. TÃTOL\n"
-#~ "ÃLBUM - TÃTOL\n"
-#~ "Personalitzat"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUM: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANÃ: %d%% ESQUERRA"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANÃ: CENTRE"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANÃ: %d%% DRETA"
-
-#~ msgid "Last.fm radio"
-#~ msgstr "RÃ dio Last.fm"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>No s'ha trobat cap CD reproduïble</big></b>\n"
-#~ "\n"
-#~ "No hi ha cap CD inserit, o el CD inserit no és un CD d'à udio.\n"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Intèrpret/Artista"
-
-#~ msgid "File extension"
-#~ msgstr "Extensió del fitxer"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Mostra \"...\" només si l'element %n està present"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "La versió del GTK+ (%d.%d.%d) no funciona amb l'Audacious.\n"
-#~ "Si us plau, utilitzeu la versió GTK+ %s, o posterior.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENÃ D'OPCIONS"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "DESHABILITA SEMPRE A DALT"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "HABILITA SEMPRE A DALT"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "INFORMACIÃ DEL FITXER"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DESHABILITA MIDA DOBLE"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "HABILITA MIDA DOBLE"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENÃ DE VISUALITZACIÃ"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>No es pot reproduir el fitxer.</big></b>\n"
-#~ "\n"
-#~ "Els següents fitxers no s'han pogut reproduir. Comproveu que:\n"
-#~ "1. Són accessibles.\n"
-#~ "2. Heu habilitat els plugins requerits."
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "S'ha rebut un SIGSEGV\n"
-#~ "\n"
-#~ "Això podria ser un error de programació a l'Audacious. Si no sabeu per "
-#~ "què ha passat això, ompliu un informe d'error a http://bugs-metha.atheme."
-#~ "org/\n"
-#~ "\n"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: l'opció `%s' és ambigua\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opció `--%s' no admet arguments\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opció `%c%s' no admet arguments\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: l'opció `%s' requereix un argument\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: opció il·legal -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: opció no và lida -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: l'opció requereix un argument -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: l'opció `-W %s' és ambigua\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opció `-W %s' no admet arguments\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Sintaxi: audacious [opcions] [fitxers] ...\n"
-#~ "\n"
-#~ "Opcions:\n"
-#~ "--------\n"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID de la sessió anterior"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Deshabilita l'intercepció d'errors/avisos (registre)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Mostra el número de versió i surt\n"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Gènere</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Any</i>"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Torna la llista de reproducció transparent. Això no és recomanable en "
-#~ "mà quines lentes, ja que requereix potència de CPU per a crear els mapes "
-#~ "de bits utilitzats en la transparència."
-
-#, fuzzy
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#, fuzzy
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Connectors"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "Dobla la mida"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "Dobla la mida"
-
-#, fuzzy
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Efectes</b>"
-
-#, fuzzy
-#~ msgid "Directory preset file:"
-#~ msgstr "Desa el perfil en un fitxer"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "Informació de la pista"
-
-#, fuzzy
-#~ msgid "Preferences Window"
-#~ msgstr "Obre la finestra de preferències"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "Artista: "
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Nom del fitxer</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "Ãlbum:"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Editor de llistes de l'Audacious"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<b>_Foses</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Reproducció</b>"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Reprodueix una font remota"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "Afegeix fitxers..."
-
-#, fuzzy
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Afegeix fitxers a la llista de reproducció."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "Reprodueix"
-
-#, fuzzy
-#~ msgid "File name"
-#~ msgstr "Nom del fitxer"
-
-#, fuzzy
-#~ msgid "File path"
-#~ msgstr "Ubicació"
-
-#, fuzzy
-#~ msgid "Track number"
-#~ msgstr "Número de pista"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Número de pista"
-
-#, fuzzy
-#~ msgid "Show more _details"
-#~ msgstr "Mostra detalls de la pista"
-
-#, fuzzy
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "Opció d'iniciació no reconeguda: %d"
-
-#, fuzzy
-#~ msgid "Display this text and exit"
-#~ msgstr "Mostra la finestra principal"
-
-#, fuzzy
-#~ msgid "Activate Audacious"
-#~ msgstr "Tanca l'Audacious"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "Número de pista"
+msgstr "Veure gestió d'opcions de sessions"
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Durada de la pista:"
-#, fuzzy
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Activa el Replay Gain"
diff --git a/po/cs.po b/po/cs.po
index 4679d51..1ffd0b2 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -4,12 +4,14 @@
# Jan Nárovec <finn at sendmail.cz>, 2004.
# Petr PÃsaÅ <petr.pisar at atlas.cz>, 2007, 2008, 2009, 2010, 2011.
#
+# tags (metadata) â popisky
+#
msgid ""
msgstr ""
-"Project-Id-Version: audacious 968ceb9a5ad6\n"
+"Project-Id-Version: audacious audacious-3.1-7-gfdc3f96\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-03-01 21:09+0100\n"
+"POT-Creation-Date: 2011-11-17 19:53+0100\n"
+"PO-Revision-Date: 2011-11-17 19:59+0100\n"
"Last-Translator: Petr PÃsaÅ <petr.pisar at atlas.cz>\n"
"Language-Team: Czech <translation-team-cs at lists.sourceforge.net>\n"
"Language: cs\n"
@@ -18,9 +20,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Hledá seâ¦"
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Nalezen %d soubor"
+msgstr[1] "Nalezeny %d soubory"
+msgstr[2] "Nalezeno %d souborů"
+
+#: src/audacious/chardet.c:38
msgid " (invalid UTF-8)"
-msgstr " (neplatné UTF8)"
+msgstr " (neplatné UTF-8)"
#: src/audacious/credits.c:35
msgid "Core developers:"
@@ -62,229 +76,220 @@ msgstr "BaskiÄtina:"
msgid "Brazilian Portuguese:"
msgstr "Brazilská portugalština:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
msgid "Breton:"
msgstr "Bretonština:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
msgid "Bulgarian:"
msgstr "Bulharština:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
msgid "Catalan:"
msgstr "Katalánština:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:200
msgid "Chinese:"
msgstr "ÄÃnÅ¡tina:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
msgid "Croatian:"
msgstr "Chorvatština:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
msgid "Czech:"
msgstr "ÄeÅ¡tina:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
msgid "Dutch:"
msgstr "Holandština:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
msgid "Estonian:"
msgstr "Estonština:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
msgid "Finnish:"
msgstr "Finština:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
msgid "French:"
msgstr "Francouzština:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
msgid "German:"
msgstr "NÄmÄina:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
msgid "Georgian:"
msgstr "GruzÃnÅ¡tina:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
msgid "Greek:"
msgstr "ÅeÄtina:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
msgid "Hindi:"
msgstr "Hindština:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
msgid "Hungarian:"
msgstr "MaÄarÅ¡tina:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
msgid "Italian:"
msgstr "Italština:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
msgid "Japanese:"
msgstr "Japonština:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
msgid "Korean:"
msgstr "Korejština:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:259
msgid "Latvian:"
-msgstr "Chorvatština:"
+msgstr "Lotyština:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
msgid "Lithuanian:"
msgstr "Litevština:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
msgid "Macedonian:"
msgstr "Makedonština:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
msgid "Polish:"
msgstr "Polština:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:276
msgid "Portuguese:"
msgstr "Portugalština:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
msgid "Romanian:"
msgstr "Rumunština:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
msgid "Russian:"
msgstr "Ruština:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
msgid "Serbian (Latin):"
msgstr "Srbština (latinka):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
msgid "Serbian (Cyrillic):"
msgstr "Srbština (cyrilice):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:294
msgid "Simplified Chinese:"
msgstr "ZjednoduÅ¡ená ÄÃnÅ¡tina:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:297
msgid "Slovak:"
msgstr "Slovenština:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:300
msgid "Spanish:"
msgstr "Å panÄlÅ¡tina:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:307
msgid "Swedish:"
msgstr "Švédština:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:310
msgid "Traditional Chinese:"
msgstr "TradiÄnà ÄÃnÅ¡tina:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:316
msgid "Turkish:"
msgstr "TureÄtina:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:320
msgid "Ukrainian:"
msgstr "Ukrajinština:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:324
+msgid "Vietnamese:"
+msgstr "Vietnamština:"
+
+#: src/audacious/credits.c:327
msgid "Welsh:"
msgstr "Welština:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:234
msgid "Temporary Playlist"
msgstr "DoÄasný seznam skladeb"
#: src/audacious/equalizer_preset.c:186
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr "Chyba pÅi importu winampovského EQFâ¯souboru â%sâ"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Hledá seâ¦"
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Nalezen %d soubor"
-msgstr[1] "Nalezeny %d soubory"
-msgstr[2] "Nalezeno %d souborů"
+msgstr "Chyba pÅi importu winampovského EQF souboru â%sâ"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
msgid "Skip backwards in playlist"
msgstr "Vrátà se zpÄt v seznamu skladeb"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
msgid "Start playing current playlist"
msgstr "PÅehraje skladby v aktuálnÃm seznamu"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
msgid "Pause current song"
msgstr "Pozastavà pÅehrávanou skladbu"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
msgid "Stop current song"
msgstr "Zastavà pÅehrávanou skladbu"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
msgid "Pause if playing, play otherwise"
msgstr "Pozastavà pÅi pÅehrávánÃ; jinak spustÃ"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
msgid "Skip forward in playlist"
msgstr "PÅejde na dalšà skladbu"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
msgid "Display Jump to File dialog"
msgstr "Zobrazà dialog âPÅejÃt na souborâ"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:246
msgid "Add files to the playlist"
msgstr "PÅidá soubory do do seznamu skladeb"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
msgid "Add new files to a temporary playlist"
msgstr "PÅidá soubory do doÄasného seznamu skladeb"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
msgid "Display the main window"
msgstr "Zobrazà hlavnà okno"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Zobrazà všechna okna Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
msgid "Show version"
msgstr "Zobrazà verzi"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
msgid "Print debugging messages"
msgstr "Vypisuje ladicà hlášky"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr "Bezhlavý režim (beta)"
+
+#: src/audacious/main.c:252
msgid "FILE..."
msgstr "SOUBORâ¦"
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
msgid "- play multimedia files"
msgstr "â pÅehrávat multimediálnà soubory"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
#, c-format
msgid ""
"%s: %s\n"
@@ -293,97 +298,89 @@ msgstr ""
"%s: %s\n"
"Pro vÃce informacà zkuste â%s --helpâ.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:306
#, c-format
msgid "No decoder found for %s."
msgstr "Pro %s nenalezen žádnà dekodér."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "NaÄÃtá seâ¦"
-
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:319
msgid "Untitled Playlist"
msgstr "Nepojmenovaný seznam skladeb"
+#: src/audacious/playlist-new.c:1500
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr ""
+"Seznam skladeb nelze seÅadit, protože hledánà metadat stále probÃhá "
+"(nebo je vypnuto)."
+
#: src/audacious/ui_preferences.c:88
msgid "Audio"
msgstr "Zvuk"
#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "ZesÃlené pÅehrávánÃ"
-
-#: src/audacious/ui_preferences.c:90
msgid "Network"
msgstr "SÃÅ¥"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
msgid "Playlist"
msgstr "Seznam skladeb"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
msgid "Plugins"
msgstr "Moduly"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "UmÄlec"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
msgid "Title"
msgstr "Název"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
msgid "Tracknumber"
msgstr "ÄÃslo stopy"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Žánr"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
msgid "Filename"
msgstr "Jméno souboru"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
msgid "Filepath"
msgstr "Cesta k souboru"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
msgid "Date"
msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Rok"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
msgid "Comment"
msgstr "KomentáÅ"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
msgid "Codec"
msgstr "Kodek"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
msgid "Quality"
msgstr "Kvalita"
@@ -392,233 +389,202 @@ msgid "None"
msgstr "Žádné"
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japonština"
+msgid "Arabic"
+msgstr "Arabština"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Tchajwanština"
+msgid "Baltic"
+msgstr "Baltské jazyky"
#: src/audacious/ui_preferences.c:117
msgid "Chinese"
msgstr "ÄÃnÅ¡tina"
#: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr "Korejština"
+msgid "Greek"
+msgstr "ÅeÄtina"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Ruština"
+msgid "Hebrew"
+msgstr "Hebrejština"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "ÅeÄtina"
+msgid "Japanese"
+msgstr "Japonština"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebrejština"
+msgid "Korean"
+msgstr "Korejština"
#: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr "TureÄtina"
+msgid "Polish"
+msgstr "Polština"
#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabština"
+msgid "Russian"
+msgstr "Ruština"
#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polština"
+msgid "Taiwanese"
+msgstr "Tchajwanština"
#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Baltské jazyky"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "UniverzálnÃ"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitová hloubka</b>"
+msgid "Turkish"
+msgstr "TureÄtina"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Bitová hloubka výstupu:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"VÅ¡echny proudy budou pÅevedeny na tuto bitovou hloubku.\n"
-"Ta by mÄla pÅedstavovat maximálnà bitovou hloubku zvukové\n"
-"karty nebo výstupnÃho modulu."
+msgid "Album mode"
+msgstr "Režim alba"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ovládánà hlasitosti</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Nastavenà výstupu</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Hlasitost mÄnit softwarovÄ"
+msgid "Bit depth:"
+msgstr "Bitová hloubka:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Použije softwarové ovládánà hlasitosti. Toto je užiteÄné, nepodporuje-li "
-"vášâ¯zvukový systém zmÄnu hlasitosti pÅehrávánÃ."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Velikost vyrovnávacà pamÄti:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Hlasitost ovládat softwarovÄ (nedoporuÄuje se)"
#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "â pÅehrávat multimediálnà soubory"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
-msgstr "<b>Typ zesÃlenà pÅi pÅehrávánÃ</b>"
+msgstr "<b>ZesÃlenà pÅi pÅehrávánÃ</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "Zapnout zesÃlenà pÅi pÅehrávánÃ"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "PÅedcházet oÅezu (doporuÄuje se)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>MÃra úpravy</b>"
+
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
+msgid "Amplify all files:"
+msgstr "ZesÃlit vÅ¡echny soubory:"
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Zobrazit informace o skladbÄ"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Název alba: "
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>KoleÄko myÅ¡i</b>"
+msgid "Amplify untagged files:"
+msgstr "ZesÃlit soubory bez popisků:"
#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Vyskakovacà okno s podrobnostmi</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Povolit ochranu pÅed oÅezem pomocà informacà o vrcholu"
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr "Jméno poÄÃtaÄe:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Jméno:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Heslo:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Nastavenà proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "PoužÃvat proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
msgid "Use authentication with proxy"
msgstr "Autentizovat se na proxy"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">ZmÄna tÄchto nastavenà se projevà až po restartu "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
msgid "Auto character encoding detector for:"
msgstr "Automatické rozpoznávánà kódovanà znaků:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Záložnà kódovánà znaků:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Seznam kódovánà znaků použitých pro konverzi metadat, nelze-li jejich "
-"kódovánà s jistotou urÄit. Pokud automatické rozpoznávánà kódovánà selže "
-"nebo je zakázáno, kódovánà z tohoto seznamu budou považována za kandidáty na "
-"kódovánà takových metadat a konverze z tÄchto kódovánà do UTF-8 bude "
-"vyzkoušena."
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
msgstr "<b>ChovánÃ</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "PokraÄovat v pÅehrávánà po spuÅ¡tÄnÃ"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr "PÅejÃt dál, když souÄasná skladba je smazána"
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
msgstr "PÅi otvÃránà souborů vyprázdnit seznam skladeb"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
msgstr "OtevÅÃt soubory do doÄasného seznamu skladeb"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metadata</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr "NenaÄÃtat metadata skladeb pÅed pÅehránÃm"
+
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr "NÃZEV"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr "UMÄLECÂ â NÃZEV"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "UMÄLEC â ALBUM â NÃZEV"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "UMÄLEC â ALBUM â STOPA. NÃZEV"
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "UMÄLEC [ ALBUM ] â STOPA. NÃZEV"
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr "ALBUM â NÃZEV"
+
+#: src/audacious/ui_preferences.c:577
msgid "Category"
msgstr "Kategorie"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:801
msgid "Popup Information Settings"
msgstr "Nastavenà vyskakovacÃho okna s detaily"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:810
msgid "<b>Cover image retrieve</b>"
msgstr "<b>ZÃskánà vyobrazenà pÅebalu</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -627,99 +593,75 @@ msgstr ""
"BÄhem hledánà pÅebalu alba Audacious také zkoušà urÄitá slova z názvu "
"souboru. Tato slova oddÄlená Äárkou můžete zadat v nÞe uvedených seznamech."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
msgid "Exclude:"
msgstr "VylouÄit:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
msgid "Include:"
msgstr "Zahrnout:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
msgid "Recursively search for cover"
msgstr "RekurzivnÄ hledat pÅebal"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
msgid "Search depth: "
msgstr "Hloubka hledánÃ:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
msgid "Use per-file cover"
msgstr "PoužÃt pÅebal pro každý soubor zvlášť"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:883
msgid "<b>Miscellaneous</b>"
msgstr "<b>Různé</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
msgid "Show Progress bar for the current track"
msgstr "VyjádÅit pozici v pÅehrávané skladbÄ posuvnÃkem"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
msgid "Delay until filepopup comes up: "
msgstr "Äekat na vyskakovacà okno o souboru: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr "VlastnÃ"
+
+#: src/audacious/ui_preferences.c:1383
msgid "<b>Song Display</b>"
msgstr "<b>Zobrazenà skladby</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
msgid "Show song numbers"
msgstr "Zobrazovat ÄÃsla skladeb"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr "Zobrazovat úvodnà nuly (02:00 mÃsto 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
msgid "Show information about titlestring format"
msgstr "Zobrazit informace o formátu titulku"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "NÃZEV"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "UMÄLECÂ â NÃZEV"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "UMÄLEC â ALBUM â NÃZEV"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "UMÄLEC â ALBUM â STOPA. NÃZEV"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "UMÄLEC [ ALBUM ] â STOPA. NÃZEV"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM â NÃZEV"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "VlastnÃ"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
msgid "Custom string:"
msgstr "Vlastnà ÅetÄzec:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
msgid "Title format:"
msgstr "Formát názvu:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
msgid "<b>Popup Information</b>"
msgstr "<b>Vyskakovacà okno s podrobnostmi</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
msgid "Show popup information for playlist entries"
msgstr "Zobrazovat podrobnosti k položkám v seznamu skladeb"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -729,52 +671,44 @@ msgstr ""
"v seznamu skladeb. V oknÄ je zobrazen název skladby, název alba, žánr, rok "
"vydánÃ, ÄÃslo stopy, délka stopy a pÅebal."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
msgid "Edit settings for popup information"
msgstr "Upravit nastavenà pro vyskakovacà okno s podrobnostmi"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Zvukový systém</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Velikost vyrovnávacà pamÄti:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktuálnà výstupnà modul:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
+msgstr "Výstupnà modul:"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
msgid "Transport"
msgstr "PÅenos"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
msgid "Input"
msgstr "Vstup"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "Effect"
msgstr "Efekt"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "Visualization"
msgstr "ZnázornÄnÃ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "General"
msgstr "Obecné"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
msgid "Audacious Preferences"
msgstr "Nastavenà programu"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:123
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "NepodaÅilo se vytvoÅit adresáŠ(%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
msgid "Position not found."
msgstr "Pozice nenalezena."
@@ -791,11 +725,14 @@ msgid "Stereo"
msgstr "Stereo"
#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanálů"
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanál"
+msgstr[1] "%d kanály"
+msgstr[2] "%d kanálů"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -804,76 +741,75 @@ msgstr ""
"Jste si jisti, že chcete %s zavÅÃt? Pokud tak uÄinÃte, jakékoliv zmÄny "
"provedené od poslednÃho exportu budou ztraceny."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
msgstr "_PÅÃÅ¡tÄ již toto zprávu nezobrazovat"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "Uložit seznam skladeb"
+msgstr "PÅejmenovat seznam skladeb"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
msgstr "nastavenÃâ¦"
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:52
msgid "_Enable"
msgstr "_Zapnout"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "31 Hz"
msgstr "31â¯Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "63 Hz"
msgstr "63â¯Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "125 Hz"
msgstr "125â¯Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "250 Hz"
msgstr "250â¯Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "500 Hz"
msgstr "500â¯Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "1 kHz"
msgstr "1â¯kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "2 kHz"
msgstr "2â¯kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "4 kHz"
msgstr "4â¯kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "8 kHz"
msgstr "8â¯kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "16 kHz"
msgstr "16â¯kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
msgid "Equalizer"
msgstr "Ekvalizér"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:147
msgid "Preamp"
msgstr "PÅedzesÃlenÃ"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "ÄÃslo stopy"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "Délka stopy"
@@ -882,16 +818,14 @@ msgid "Acid Jazz"
msgstr "Acid jazz"
#: src/libaudgui/infowin.c:78
-#, fuzzy
msgid "Acid Rock"
-msgstr "Hard rock"
+msgstr "Acid rock"
#: src/libaudgui/infowin.c:79
msgid "Ambient"
msgstr "Ambient"
#: src/libaudgui/infowin.c:80
-#, fuzzy
msgid "Bebop"
msgstr "Bebob"
@@ -956,9 +890,8 @@ msgid "Heavy Metal"
msgstr "Heavy metal"
#: src/libaudgui/infowin.c:96
-#, fuzzy
msgid "Hip-hop"
-msgstr "Hip-hop"
+msgstr "Hip hop"
#: src/libaudgui/infowin.c:97
msgid "House"
@@ -1009,13 +942,12 @@ msgid "Rock"
msgstr "Rock"
#: src/libaudgui/infowin.c:109
-#, fuzzy
msgid "Rock and Roll"
-msgstr "Rock'n roll"
+msgstr "Rock and roll"
#: src/libaudgui/infowin.c:110
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "R&B"
#: src/libaudgui/infowin.c:111
msgid "Ska"
@@ -1034,9 +966,8 @@ msgid "Techno"
msgstr "Techno"
#: src/libaudgui/infowin.c:115
-#, fuzzy
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip hop"
#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1105,11 +1036,36 @@ msgstr "%dâ¯kb/s"
msgid "No info available for %s.\n"
msgstr "Pro %s nejsou dostupné žádné údaje.\n"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "PÅejÃt na Äas"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportovat seznam skladeb"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importovat seznam skladeb"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "PÅepsat %s?"
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr "Správce fronty"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
-msgstr "O Audacious"
+msgstr "OÂ Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Zásluhy"
@@ -1117,78 +1073,87 @@ msgstr "Zásluhy"
msgid "Translators"
msgstr "PÅekladatelé"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "OtevÅÃt soubory"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "PÅidat soubory"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "ZavÅÃt dialog pÅi otevÅenÃ"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "ZavÅÃt dialog pÅi pÅidánÃ"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Ode_brat z fronty"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "_Queue"
msgstr "_Fronta"
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "Ode_brat z fronty"
+
+#: src/libaudgui/ui_jumptotrack.c:239
msgid "Jump to Track"
msgstr "SkoÄit na stopu"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
msgid "Filter: "
msgstr "Filtr: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
msgid "_Filter:"
msgstr "_Filtr:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
msgid "Remember"
msgstr "Zapamatovat si"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Clea_r"
msgstr "Vyp_rázdnit"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
msgid "Close on Jump"
msgstr "ZavÅÃt pÅi skoku"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:250
msgid "Playlist Manager"
msgstr "Správce seznamů skladeb"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
msgid "Entries"
msgstr "Položky"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:298
msgid "_Rename"
msgstr "_PÅejmenovat"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:322
msgid "_Close dialog on activating playlist"
msgstr "PÅi aktiva_ci seznamu skladeb zavÅÃt dialog"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
msgstr "OtevÅÃt URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
msgstr "PÅidat URL"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Dalšà zprávy jsou skryty.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Soubor nenà platný souboru druhu .desktop"
@@ -1198,25 +1163,25 @@ msgstr "Soubor nenà platný souboru druhu .desktop"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Nerozpoznaná verze â%sâ desktopového souboru"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "Startuji %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "Aplikace nepÅijÃmá dokumenty z pÅÃkazové Åádky"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Nerozpoznaná volba pro spuÅ¡tÄnÃ: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "URI dokumentu nelze pÅedat do desktopové položky âType=Linkâ"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "Položka nenà spustitelná"
@@ -1241,14 +1206,104 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "PÅepÃnaÄe správy relace"
+msgstr "PÅepÃnaÄe správy relace:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Zobrazà volby správy relace"
+msgstr "Zobrazà pÅepÃnaÄe správy relace"
+
+#~ msgid "Buffering ..."
+#~ msgstr "NaÄÃtá seâ¦"
+
+#~ msgid ""
+#~ "Audacious seems to be already running but is not responding. You can "
+#~ "start another instance of the program, but please be warned that this can "
+#~ "cause data loss. If Audacious is not running, you can safely ignore this "
+#~ "message. Press OK to start Audacious or Cancel to quit."
+#~ msgstr ""
+#~ "Vypadá to, že Audacious již bÄžÃ, ale neodpovÃdá. Můžete spustit dalšà "
+#~ "instanci programu, ale mÄjte na pamÄti, že tak můžete ztratit data. Pokud "
+#~ "Audacious nebÄžÃ, můžete tuto zprávu bezpeÄnÄ ignorovat. TlaÄÃtkem Budiž "
+#~ "Audacious spustÃte, tlaÄÃtkem ZruÅ¡it ukonÄÃte."
+
+#~ msgid "Universal"
+#~ msgstr "UniverzálnÃ"
+
+#~ msgid "Single track mode"
+#~ msgstr "Režim samostatné skladby"
+
+#~ msgid ""
+#~ "<span size=\"small\">Changing these settings will require a restart of "
+#~ "Audacious.</span>"
+#~ msgstr ""
+#~ "<span size=\"small\">ZmÄna tÄchto nastavenà se projevà až po restartu "
+#~ "Audacious.</span>"
+
+#~ msgid ""
+#~ "List of character encodings used for fall back conversion of metadata. If "
+#~ "automatic character encoding detector failed or has been disabled, "
+#~ "encodings in this list would be treated as candidates of the encoding of "
+#~ "metadata, and fall back conversion from these encodings to UTF-8 would be "
+#~ "attempted."
+#~ msgstr ""
+#~ "Seznam kódovánà znaků použitých pro konverzi metadat, nelze-li jejich "
+#~ "kódovánà s jistotou urÄit. Pokud automatické rozpoznávánà kódovánà selže "
+#~ "nebo je zakázáno, kódovánà z tohoto seznamu budou považována za kandidáty "
+#~ "na kódovánà takových metadat a konverze z tÄchto kódovánà do UTF-8 bude "
+#~ "vyzkoušena."
+
+#~ msgid "Replay Gain"
+#~ msgstr "ZesÃlené pÅehrávánÃ"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bitová hloubka</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "VÅ¡echny proudy budou pÅevedeny na tuto bitovou hloubku.\n"
+#~ "Ta by mÄla pÅedstavovat maximálnà bitovou hloubku zvukové\n"
+#~ "karty nebo výstupnÃho modulu."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Ovládánà hlasitosti</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Použije softwarové ovládánà hlasitosti. Toto je užiteÄné, nepodporuje-li "
+#~ "váš zvukový systém zmÄnu hlasitosti pÅehrávánÃ."
+
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Režim</b>"
+
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Ochrana pÅed oÅezem</b>"
+
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Zapnout ochranu pÅed oÅezem"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Zvukový systém</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Aktuálnà výstupnà modul:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Zobrazà všechna okna Audacious"
+
+#~ msgid ""
+#~ "<big><b>Audacious %s</b></big>\n"
+#~ "An audio player for many platforms.\n"
+#~ "Copyright (C) 2005-2011 Audacious Development Team"
+#~ msgstr ""
+#~ "<big><b>Audacious %s</b></big>\n"
+#~ "PÅehrávaÄ zvuku pro mnoho platforem.\n"
+#~ "Copyright © 2005â2011 vývojový tým Audacious"
#~ msgid ""
#~ "Running multiple instances of Audacious can lead to corrupted "
@@ -1296,6 +1351,9 @@ msgstr "Zobrazà volby správy relace"
#~ "Použije hodnotu vrcholu z informacà o zesÃlenà pro pÅehrávánà na ochranu "
#~ "proti oÅezu."
+#~ msgid "Surround"
+#~ msgstr "Prostorový zvuk"
+
#~ msgid "Classic Rock"
#~ msgstr "Klasický rock"
@@ -1629,18 +1687,6 @@ msgstr "Zobrazà volby správy relace"
#~ msgid "Synthpop"
#~ msgstr "Synthpop"
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "PÅehrávaÄ zvuku pro mnoho platforem.\n"
-#~ "Copyright © 2005â2011 vývojový tým Audacious"
-
-#~ msgid "Surround"
-#~ msgstr "Prostorový zvuk"
-
#~ msgid "Sorry, threads aren't supported on your platform.\n"
#~ msgstr "Je nám lÃto, ale vlákna nejsou na vašà platformÄ podporována.\n"
@@ -1881,9 +1927,6 @@ msgstr "Zobrazà volby správy relace"
#~ msgid "Connectivity"
#~ msgstr "PÅipojenÃ"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Rozpoznávánà formátu</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Rozpoznávat formát souboru podle pÅÃpony."
@@ -2006,9 +2049,6 @@ msgstr "Zobrazà volby správy relace"
#~ msgid "Can't jump to time when no track is being played.\n"
#~ msgstr "Nelze pÅejÃt na Äas, když žádná skladba nehraje.\n"
-#~ msgid "Jump to Time"
-#~ msgstr "PÅejÃt na Äas"
-
#~ msgid "minutes:seconds"
#~ msgstr "minuty:sekundy"
@@ -2178,9 +2218,6 @@ msgstr "Zobrazà volby správy relace"
#~ 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."
@@ -3854,9 +3891,6 @@ msgstr "Zobrazà volby správy relace"
#~ msgid "Vietnamese (TCVN)"
#~ msgstr "vietnamštiny (TCVN)"
-#~ msgid "Vietnamese (VPS)"
-#~ msgstr "vietnamštiny (VPS)"
-
#~ msgid "Western (MacRoman)"
#~ msgstr "západnÃch jazyků (MacRoman)"
@@ -4404,9 +4438,6 @@ msgstr "Zobrazà volby správy relace"
#~ msgid "WAV Audio Plugin"
#~ msgstr "Modul WAV Audio"
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS výstupnà modul"
-
#~ msgid "About OSS Driver"
#~ msgstr "O modulu OSS"
@@ -5173,9 +5204,6 @@ msgstr "Zobrazà volby správy relace"
#~ "projevà až na nových datech ve vyrovnávacà pamÄti, může chvÃli trvat, než "
#~ "je uslyÅ¡Ãte."
-#~ msgid "ms"
-#~ msgstr "ms"
-
#~ msgid "same file"
#~ msgstr "shodný soubor"
diff --git a/po/cy.po b/po/cy.po
index 2ad38f8..03a8808 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Audacious 1.3.0\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2008-04-15 04:17-0600\n"
"Last-Translator: William Pitcock <nenolod+i18n at sacredspiral.co.uk>\n"
"Language-Team: Cynmaeg <nenolod+cy at sacredspiral.co.uk>\n"
@@ -25,6 +25,17 @@ msgstr ""
"X-Poedit-Language: Welsh\n"
"X-Poedit-SourceCharset: utf-8\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (UTF-8 annilys)"
@@ -109,113 +120,113 @@ msgstr "Estonieg:"
msgid "Finnish:"
msgstr "Ffineg:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Ffrangeg:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Almaeneg:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Georgieg:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Groeg:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hyndig:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Hwngareg:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Eidaleg:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Siapanëeg:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Corëeg:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Croataidd:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Lithueneg:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Macedonieg:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Pwyleg:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Portiwgaleg Brasilaidd:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Romaneg:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Rwsieg:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Serbeg (Lladin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Serbeg (Cwyrileg):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Tsieineaidd Seml:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Slofaceg:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Spaeneg:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Swedeg:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Tsieineaidd Traddodiadol:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Twrceg:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Wcraneg:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Cymraeg:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "Llwytho'r rhestr chwarae"
@@ -225,80 +236,65 @@ msgstr "Llwytho'r rhestr chwarae"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Sgipio nôl yn y rhestr chwarae"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Cychwyn chwarae'r rhestr chwarae"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Oedi'r gân"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Atal y gân"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Oedi os yn chwarae, chwarae fel arall"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Sgipio mlaen yn y rhestr chwarae"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "Dangos Neidio i Ffeil"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Adio y ffeil at ar rhestr chwarae."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Adio y ffeil at ar rhestr chwarae ni parahol"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Dangos y prif ffenestr."
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Dangos pob agor Audacious ffenestrau"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "Dangos Y Brif Ffenestr"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "FFEIL..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- chwarae ffeil amlgyfrwng"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -307,7 +303,7 @@ msgstr ""
"%s: %s\n"
"Ceisio `%s --help' am ychwaneg gwybodaeth.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -315,257 +311,236 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Rhestr Chwarae Newydd"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Seniau"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Chwarae"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Ategynnau"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Cyflawnwr"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Albwm"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Teitl"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Rhif y Trac:"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Math"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Enw ffeil"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Llwybr ffeil"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Dyddiad"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Blwyddyn"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Sylwad"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Ansawdd"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Dim"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "Siapanëeg"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "Siapanëeg:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Llinellau"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Corëeg"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Rwsieg"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "Groeg"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "Hebraeg"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Twrceg"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Pwyleg:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "Cyfanfydol"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit Dyfnder</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "Dangos Manylion Trac"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Enwau'r Albwm:"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Rheolydd Cyfrol</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Awtoganfod trefniad</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<b>Bit Dyfnder</b>"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Maint y byffer:"
+
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
#: src/audacious/ui_preferences.c:160
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- chwarae ffeil amlgyfrwng"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Ffurfweddiad Cyfraint Cynnydd</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "Galluogi Cyfraint Cynnydd"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Gwybodaeth</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Dangos Manylion Trac"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Enwau'r Albwm:"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>Sidell llygod</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Gwybodaeth Popup</b>"
-
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- chwarae ffeil amlgyfrwng"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Gwesteiwr ddirprwy:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Porth dirprwy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Dirprwy enw defnyddiwr:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Cyfrinair dirprwy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Ffurfweddiad Dirprwy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Galluogi defnyddiwch ddirprwy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Defnyddiwch ddilysu am dirprwy"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -573,15 +548,15 @@ msgstr ""
"<span size=\"small\">Cyfnewidau machludiad angen ailddechrau Audacious.</"
"span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Awtoganfod cymeriad am:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Arallddewisiol cymeriad mathau:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -591,199 +566,192 @@ msgstr ""
"Rhestr am arallddewisiol cymeriad cynefino am mathau trawsnewidiau am "
"metadata. Os awtoganfod cymeriad ffaelu ai ys anablu, yr rhestr ys defnyddio."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Bit Dyfnder</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Parhau Chrawae am Cychwyn"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Creu rhestr chwarae am gweddu dewis"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Adio y ffeil at ar rhestr chwarae ni parahol"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Gwybodaeth</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Categori"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "Gwybodaeth Popup"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Albwm celf adennill</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr "Chi enwi y allweddair yng chwilio am tannod."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Allgau:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Cynnwys:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Archwilio amrfyal gwastad am pictiwr"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Archwilio dyfndra:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Defnyddio amgenach pictiwr am y pen ffiel"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Amrywiol</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Dangos cynnydd dangosydd am y cerrynt trac"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "Oediad tan filepopup ys dangosydd"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Dangos cerddi</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Dangos gwybodaeth am titlestring"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "TEITL"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "CYFLAWNWR - TEITL"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "CYFLAWNWR - ALBWM - TEITL"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "CYFLAWNWR - ALBWM - TRAC. TEITL"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "CYFLAWNWR [ ALBWM ] - TRAC. TEITL"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ALBWM - TEITL"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Cynefod"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Cynefod:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Fformat y teitl:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Gwybodaeth Popup</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Dangos gwybodaeth am chwarae llyfrifiadau"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr "Toglo ffenestr celfyddydau."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Golygyddion ffenestr celfyddydau machludiadau"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>System Seniau</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Maint y byffer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Ategyn allbwn:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ategyn mewnbwn: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Cyfieithwyr"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Effeithiau</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Delweddu"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Ffurfwedd Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Methu Creu Cyfrifiadur (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -802,22 +770,24 @@ msgstr "Stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Peidio â dangos y r rhybydd yma eto."
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Cadw'r Rhestr Chwarae"
@@ -879,11 +849,11 @@ msgstr "Hafalydd"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Rhif y Trac"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Hyd trac"
@@ -1115,6 +1085,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Neidio i Amser"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Llwytho'r rhestr chwarae"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Llwytho'r rhestr chwarae"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Ynghylch Audacious"
@@ -1176,19 +1169,19 @@ msgstr "Clirio A-B"
msgid "Close on Jump"
msgstr "Closio am Naid"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Rheolwyr am y Rhestr Chwarae"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Llyfrifiadau"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Cyfnewid"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Closio am Tocio"
@@ -1201,6 +1194,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1210,25 +1209,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "Anadnabyddus ffeil desktop fersiwn '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "Cychwyn %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Anadnabyddus cychwyn dewis: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1262,6 +1261,26 @@ msgstr "Dewis Sesiwn Goruchwyliaeth"
msgid "Show session management options"
msgstr "Dangos dewis sesiwn goruchwyliaeth"
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Rheolydd Cyfrol</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Gwybodaeth</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Gwybodaeth Popup</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>System Seniau</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Ategyn allbwn:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Dangos pob agor Audacious ffenestrau"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Methu agor dangosydd, yn gadael.\n"
@@ -1484,9 +1503,6 @@ msgstr "Dangos dewis sesiwn goruchwyliaeth"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Ategyn mewnbwn heb adnabod y ffeil"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ategyn mewnbwn: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1501,9 +1517,6 @@ msgstr "Dangos dewis sesiwn goruchwyliaeth"
#~ msgid "Interpolation Engine:"
#~ msgstr "Interpolation Trefnau:"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Awtoganfod trefniad</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Awtoganfawd ffiel trefniad at ymestyniad."
@@ -1557,9 +1570,6 @@ msgstr "Dangos dewis sesiwn goruchwyliaeth"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "Llwytho'r metadata o ffeil cerdd."
-#~ msgid "Jump to Time"
-#~ msgstr "Neidio i Amser"
-
#~ msgid "minutes:seconds"
#~ msgstr "munudau:eiliadau"
diff --git a/po/de.po b/po/de.po
index 31533f8..93f7e81 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,294 +1,290 @@
-# German translation for Audacious
msgid ""
msgstr ""
-"Project-Id-Version: de\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-04-09 18:43+0100\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-15 02:23+0100\n"
+"PO-Revision-Date: 2012-01-15 02:25+0000\n"
"Last-Translator: Thomas Lange\n"
-"Language-Team: german <psic4t at netbands.de>\n"
-"Language: \n"
+"Language-Team: German\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"plural-Forms: nplurals=2; plural=(n!=1);\n"
-"X-Poedit-Language: German\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Suche ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d Datei gefunden"
+msgstr[1] "%d Dateien gefunden"
+
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (ungültiges UTF-8)"
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
msgid "Core developers:"
msgstr "Hauptentwickler:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
msgstr "Grafiken:"
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
msgstr "Standard-Skin:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
msgstr "Plugin-Entwicklung:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
msgstr "Patch-Autoren:"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
msgid "1.x developers:"
msgstr "1.x-Entwickler:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
msgstr "BMP-Entwickler:"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
+msgid "Argentinian Spanish:"
+msgstr "Argentinisches Spanisch:"
+
+#: src/audacious/credits.c:188
msgid "Belarusian:"
msgstr "WeiÃrussisch:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:191
msgid "Basque:"
msgstr "Baskisch:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:194
msgid "Brazilian Portuguese:"
msgstr "Brasilianisches Portugiesisch:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:199
msgid "Breton:"
msgstr "Bretonisch:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:202
msgid "Bulgarian:"
msgstr "Bulgarisch:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:205
msgid "Catalan:"
msgstr "Katalanisch:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:209
msgid "Chinese:"
msgstr "Chinesisch:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:212
msgid "Croatian:"
msgstr "Kroatisch:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:215
msgid "Czech:"
msgstr "Tschechisch:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:218
msgid "Dutch:"
msgstr "Niederländisch:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:222
msgid "Estonian:"
msgstr "Estnisch:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:225
msgid "Finnish:"
msgstr "Finnisch:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:230
msgid "French:"
msgstr "Französisch:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:236
msgid "German:"
msgstr "Deutsch:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:243
msgid "Georgian:"
msgstr "Georgisch:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:246
msgid "Greek:"
msgstr "Griechisch:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:251
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:254
msgid "Hungarian:"
msgstr "Ungarisch:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:258
msgid "Italian:"
msgstr "Italienisch:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:263
msgid "Japanese:"
msgstr "Japanisch:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:266
msgid "Korean:"
msgstr "Koreanisch:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:269
msgid "Latvian:"
msgstr "Lettisch:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:272
msgid "Lithuanian:"
msgstr "Litauisch:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:277
msgid "Macedonian:"
msgstr "Makedonisch:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:280
+msgid "Mexican Spanish:"
+msgstr "Mexikanisches Spanisch:"
+
+#: src/audacious/credits.c:283
msgid "Polish:"
msgstr "Polnisch:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:290
msgid "Portuguese:"
msgstr "Portugiesisch:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:293
msgid "Romanian:"
msgstr "Rumänisch:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:297
msgid "Russian:"
msgstr "Russisch:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:301
msgid "Serbian (Latin):"
msgstr "Serbisch (Latin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:304
msgid "Serbian (Cyrillic):"
msgstr "Serbisch (Kyrillisch):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:308
msgid "Simplified Chinese:"
msgstr "Vereinfachtes Chinesisch:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:311
msgid "Slovak:"
msgstr "Slovakisch:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:315
msgid "Spanish:"
msgstr "Spanisch:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:324
msgid "Swedish:"
msgstr "Schwedisch:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:327
msgid "Traditional Chinese:"
msgstr "Traditionelles Chinesisch:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:333
msgid "Turkish:"
msgstr "Türkisch:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:337
msgid "Ukrainian:"
msgstr "Ukrainisch:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:342
+msgid "Vietnamese:"
+msgstr "Vietnamesisch:"
+
+#: src/audacious/credits.c:345
msgid "Welsh:"
msgstr "Walisisch:"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Temporäre Wiedergabeliste"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Fehler beim Import der Winamp-EQF-Datei '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Suche ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d Datei gefunden"
-msgstr[1] "%d Dateien gefunden"
-
-# -r, --rew switch
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
-msgstr "In der Wiedergabeliste zurück springen"
+msgstr "In der Wiedergabeliste zurückspringen"
-# -p, --play switch
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Abspielen der aktuellen Wiedergabeliste beginnen"
-# -u, --pause switch
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Aktuellen Song unterbrechen"
-# -s, --stop switch
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Aktuellen Song stoppen"
-# -t, --play-pause switch
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Pause falls beim Abspielen, andernfalls Wiedergabe starten"
-# -f, --fwd switch
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "In der Wiedergabeliste vorspringen"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "«Springe zu Datei»-Fenster anzeigen"
-# -e, --enqueue switch
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "Dateien zur Wiedergabeliste hinzufügen"
-# -e, --enqueue switch
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Dateien zu temporärer Wiedergabeliste hinzufügen"
-# -m, --show-main-window switch
-# -m, --show-main-window switch
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "Hauptfenster anzeigen"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Alle offenen Audacious-Fenster anzeigen"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Zeige Version"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
msgstr "Debug-Meldungen anzeigen"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Headless-Modus (Beta)"
+
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "DATEI..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr " - Multimediadateien wiedergeben"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -297,331 +293,312 @@ msgstr ""
"%s: %s\n"
"`%s --help' für weitere Informationen versuchen.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-"Audacious wird bereits ausgeführt, scheint aber nicht zu reagieren. Sie "
-"können eine neue Instanz starten, dies kann aber zu Datenverlusten führen. "
-"Falls Audacious nicht ausgeführt wird, können Sie diese Warnung ignorieren. "
-"Klicken Sie OK um Audacious zu starten oder Abbrechen zum Beenden."
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "Kein Decoder gefunden für %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Puffere ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "%s von %s nicht möglich: nicht unterstützte Dateiendung."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "Speichern"
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Unbenannte Wiedergabeliste"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "Laden"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Neue Wiedergabeliste"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Momentane Wiedergabe"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr ""
+"Die Wiedergabeliste kann nicht sortiert werden, weil das Scannen der "
+"Metadaten noch aktiv ist (oder deaktiviert wurde)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Wiedergabe-Verstärkung"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "Netzwerk"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr ""
"Wiedergabe-\n"
"Liste"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Plugins"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "Künstler"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Titel"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Titelnummer"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "Genre"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Dateiname"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Dateipfad"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Jahr"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Kommentar"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Codec"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "Qualität"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "Keine"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltisch"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chinesisch"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japanisch"
+msgid "Greek"
+msgstr "Griechisch"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwanisch"
+msgid "Hebrew"
+msgstr "Hebräisch"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Chinesisch"
+msgid "Japanese"
+msgstr "Japanisch"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "Koreanisch"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Russisch"
+msgid "Polish"
+msgstr "Polnisch"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Griechisch"
+msgid "Russian"
+msgstr "Russisch"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebräisch"
+msgid "Taiwanese"
+msgstr "Taiwanisch"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "Türkisch"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabisch"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polnisch"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Baltisch"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Abtastfrequenz</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album-Modus"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Ausgabe-Abtastfrequenz:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Alle Streams werden in diese Abtastfrequenz umgewandelt.\n"
-"Sie sollte die maximal unterstützte Abtastfrequenz der\n"
-"Soundkarte oder des Ausgabe-Plugins sein."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Ausgabe-Einstellungen</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Lautstärkeregelung</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Bit-Tiefe:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Softwareseitige Lautstärkeregelung benutzen"
+msgid "Buffer size:"
+msgstr "PuffergröÃe:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Benutze Software-Lautstärkeregelung. Das kann nützlich sein für den Fall, "
-"dass das Audio-System die Kontrolle der Wiedergabelautstärke nicht "
-"unterstützt."
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr "Alle Dateien verstärken:"
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Softwareseitige Lautstärkeregelung benutzen (nicht empfohlen)"
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr "Unmarkierte Dateien verstärken:"
-
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
msgstr "<b>Wiedergabe-Verstärkung</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "Wiedergabe-Verstärkung aktivieren"
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr "<b>Modus</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr "Einzelspur-Modus"
-
-#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
-msgstr "Album-Modus"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Ãbersteuern verhindern (empfohlen)"
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
msgstr "<b>Pegel anpassen</b>"
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Clipping-Verhinderung</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Alle Dateien verstärken:"
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr "Clipping-Verhinderung aktivieren"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Unmarkierte Dateien verstärken:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Proxy-Host:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Proxy-Port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Benutzername für Proxy:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Passwort für Proxy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Proxy-Konfiguration</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Proxy aktivieren"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "Benutze Authentisierung mit Proxy"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Das Ãndern dieser Einstellungen erfordert einen "
-"Neustart von Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Automatische Zeichensatzerkennung für:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "Alternative Zeichensätze:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Alternativ für Metadaten verwendete Zeichensätze. Wenn die automatische "
-"Erkennung des Zeichensatzes fehlgeschlagen oder deaktiviert ist, werden die "
-"nachfolgend aufgelisteten Zeichensätze ausprobiert. Nach diesen wird dann "
-"noch einmal probiert, von diesen Zeichensätzen nach UTF-8 zu dekodieren."
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
msgstr "<b>Verhalten</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Wiedergabe beim Starten fortführen"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
msgstr "Fortschreiten falls aktueller Titel gelöscht wird"
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
msgstr "Wiedergabeliste beim Ãffnen neuer Dateien leeren"
-# -e, --enqueue switch
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
msgstr "Dateien in temporärer Wiedergabeliste öffnen"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Metadaten</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Metadaten erst laden, wenn Titel gespielt wird"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITEL"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "KÃNSTLER - TITEL"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "KÃNSTLER - ALBUM - TITEL"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "KÃNSTLER - ALBUM - TITELNUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "KÃNSTLER [ ALBUM ] - TITELNUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITEL"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Kategorie"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Popup-Informations-Einstellungen"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Cover-Bild finden</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -631,99 +608,75 @@ msgstr ""
"Dateinamen. Diese können nachfolgend eingegeben werden, jeweils durch Kommas "
"getrennt."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "AusschlieÃen:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "EinschlieÃen:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "Rekursiv nach dem Titelbild suchen"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Suchtiefe: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Pro-Datei-Titelbild benutzen"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Verschiedenes</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "Zeige Fortschrittsbalken für den aktuellen Titel"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Verzögerung bis zum Erscheinen des Popups: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Eigene Zeichenkette"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Titelanzeige</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr "Zeige Titelnummern"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr "Führende Nullen anzeigen (02:00 anstatt 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Informationen über das Format der Titelzeile anzeigen"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TITEL"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "KÃNSTLER - TITEL"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "KÃNSTLER - ALBUM - TITEL"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "KÃNSTLER - ALBUM - TITELNUMMER. TITEL"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "KÃNSTLER [ ALBUM ] - TITELNUMMER. TITEL"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - TITEL"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Eigene Zeichenkette"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Eigene Zeichenkette:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Titelformat:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Popup-Information</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr "Popup-Informationen für Widergabelisteneinträge anzeigen"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -734,73 +687,84 @@ msgstr ""
"werden Titel, Album, Genre, Publikationsjahr, Titelnummer, Titellänge und "
"Cover-Bild."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Einstellungen für Popup-Informationen bearbeiten"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio-System</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "PuffergröÃe:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktives Ausgabe-Plugin:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Ausgabe-Plugin:"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
msgstr "Transport"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
msgstr "Eingabe"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
msgstr "Effekte"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
msgstr "Visualisierung"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
msgstr "Allgemein"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Audacious-Einstellungen"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Konnte Verzeichnis (%s) nicht erstellen: %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr "Position nicht gefunden."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "Kein Titel wird wiedergegeben."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio-CD, Titel %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
msgstr "Mono"
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
msgstr "Stereo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr "%d Kanäle"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d Kanal"
+msgstr[1] "%d Kanäle"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Credits"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Ãbersetzer"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Ãber Audacious"
+
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -809,415 +773,435 @@ msgstr ""
"Wollen Sie wirklich '%s' löschen? Alle seit der letzten Speicherung "
"geänderten Einträge gehen dadurch verloren."
-# -m, --show-main-window switch
-# -m, --show-main-window switch
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
msgstr "_Diese Warnung nicht mehr anzeigen"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
msgstr "Wiedergabeliste umbenennen"
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
msgstr "Einstellungen ..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
msgstr "_Aktiv"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "Equalizer"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
msgstr "Vorverstärkung"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "Titelnummer"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
msgstr "Titellänge"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
msgstr "Psychedelic Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
msgstr "Kammermusik"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
msgstr "Klassisch"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
msgstr "Hip-Hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
msgstr "Rock & Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
msgstr "Rhythm & Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
msgstr "Trip-Hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">n/v</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
msgstr "Metadaten-Update erfolgreich"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
msgstr "Metadaten-Update fehlgeschlagen"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
msgstr "Titel-Information"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Format:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">Qualität:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">Bitrate:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">Titel</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Künstler</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Kommentar</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Genre</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Jahr</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Titelnummer</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
msgstr "Keine Information verfügbar für %s.\n"
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Ãber Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Zu Zeitangabe springen"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Credits"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "min:sek"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Ãbersetzer"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Wiedergabeliste exportieren"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Wiedergabeliste importieren"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "'%s' überschreiben?"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Warteschlangen-Manager"
+
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Dateien öffnen"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "Dateien hinzufügen"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "Dialog beim Ãffnen schlieÃen"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "Dialog beim Hinzufügen schlieÃen"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Aus _Warteschlange"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
msgstr "In _Warteschlange"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Aus _Warteschlange"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
msgstr "Zu Titel springen"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
msgstr "Filter: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
msgstr "_Filter:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
msgstr "Merken"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
msgstr "A-B löschen"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
msgstr "Nach Ãffnen schlieÃen"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr "Wiedergabelistenverwaltung"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Einträge"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "_Umbenennen"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "Dialog beim Ãffnen einer Liste schlieÃen"
+msgstr "Dialog beim Ãffnen einer Liste _schlieÃen"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
msgstr "URL öffnen"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
msgstr "URL hinzufügen"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Weitere Meldungen wurden nicht angezeigt.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Datei ist keine gültige .desktop-Datei"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Unbekannte Desktop-Datei-Version '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "Starte %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "Programm akzeptiert keine Dokumente auf der Kommandozeile"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Unbekannte Start-Option: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "Kann keine Dokument-URIs an einen 'Type=Link'-Desktopeintrag übergeben"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "Ist nicht ausführbar"
diff --git a/po/el.po b/po/el.po
index 660b748..5f74d70 100644
--- a/po/el.po
+++ b/po/el.po
@@ -1,32 +1,42 @@
-# Greek translations for audacious package.
-# Copyright (C) 2003 Kouzinopoulos Haris (ironhell3) <haris at mpa.gr>
-# Kouzinopoulos Haris <haris at mpa.gr>, 2003 - 2004.
-# Stavros Giannouris <stavrosg2002 at freemail.gr>, 2005 - 2006.
-# Stathis Kamperis <ekamperi at auth.gr>, 2006
+# Greek translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
#
+# Translators:
+# Stathis Kamperis <ekamperi at auth.gr>, 2006.
+# ÎÎ¹Î¬Î½Î½Î·Ï <yannanth at gmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: audacious 1.1.0\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2006-07-18 20:56+0200\n"
-"Last-Translator: Stavros Giannouris <stavrosg2002 at freemail.gr>\n"
-"Language-Team: Greek <nls at tux.hellug.gr>\n"
-"Language: el\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://jira.atheme.org/browse/AUD\n"
+"POT-Creation-Date: 2011-10-19 21:32-0400\n"
+"PO-Revision-Date: 2011-10-30 19:23+0000\n"
+"Last-Translator: Evropi <yannanth at gmail.com>\n"
+"Language-Team: Greek\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
-"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,1,-1\n"
+"Language: el\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "ÎναζήÏηÏη..."
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:38
msgid " (invalid UTF-8)"
msgstr " (μη ÎγκÏ
Ïο UTF-8)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "ÎημιοÏ
Ïγοί για Ïο 0.1.x:"
+msgstr ""
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -45,365 +55,326 @@ msgid "Patch authors:"
msgstr ""
#: src/audacious/credits.c:126
-#, fuzzy
msgid "1.x developers:"
-msgstr "ÎημιοÏ
Ïγοί για Ïο 0.1.x:"
+msgstr ""
#: src/audacious/credits.c:148
msgid "BMP Developers:"
msgstr "ÎημιοÏ
Ïγοί BMP:"
#: src/audacious/credits.c:180
-#, fuzzy
msgid "Belarusian:"
-msgstr "ÎÏ
γγÏική:"
+msgstr "ÎεÏ
κοÏÏÏικά:"
#: src/audacious/credits.c:183
msgid "Basque:"
-msgstr ""
+msgstr "ÎαÏκικά:"
#: src/audacious/credits.c:186
msgid "Brazilian Portuguese:"
msgstr "ΠοÏÏογαλικά ÎÏαζιλίαÏ:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
msgid "Breton:"
-msgstr "Breton:"
+msgstr "ÎÏεÏÏνικα:"
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:194
msgid "Bulgarian:"
-msgstr "ÎÏ
γγÏική:"
+msgstr "ÎοÏ
λγαÏικά:"
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:197
msgid "Catalan:"
-msgstr "ÎÏαλικά:"
+msgstr "ÎαÏαλανικά:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:200
msgid "Chinese:"
msgstr "ÎινÎζικα:"
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:203
msgid "Croatian:"
-msgstr "ΤοÏοθεÏία:"
+msgstr "ÎÏοαÏικά:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
msgid "Czech:"
msgstr "ΤÏÎÏικα:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
msgid "Dutch:"
-msgstr "Îλλανδική:"
+msgstr "Îλλανδικά:"
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:213
msgid "Estonian:"
-msgstr "ΡοÏ
μανικά:"
+msgstr "ÎÏÏονικά:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
msgid "Finnish:"
-msgstr "Φινλανδικά:"
+msgstr "Φιλανδικά:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
msgid "French:"
msgstr "Îαλλικά:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
msgid "German:"
msgstr "ÎεÏμανικά:"
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:234
msgid "Georgian:"
msgstr "ÎεÏÏγιανά:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
msgid "Greek:"
msgstr "Îλληνικά:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
msgid "Hindi:"
-msgstr "Hindi:"
+msgstr "Îνδικά:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
msgid "Hungarian:"
-msgstr "ÎÏ
γγÏική:"
+msgstr "ÎÏ
γγÏικά:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
msgid "Italian:"
msgstr "ÎÏαλικά:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
msgid "Japanese:"
msgstr "ÎαÏÏνικά:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
msgid "Korean:"
msgstr "ÎοÏεάÏικα:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:259
msgid "Latvian:"
-msgstr "ΤοÏοθεÏία:"
+msgstr "ÎεÏÏνικά:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
msgid "Lithuanian:"
msgstr "ÎιθοÏ
ανικά:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
msgid "Macedonian:"
-msgstr "Σλαβομακεδονική:"
+msgstr "Σλαβομακεδονικά:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
msgid "Polish:"
-msgstr "ΠολÏνική:"
+msgstr "ΠολÏνικά:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:276
msgid "Portuguese:"
-msgstr "Port:"
+msgstr "ΠοÏÏÏγαλικά:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
msgid "Romanian:"
msgstr "ΡοÏ
μανικά:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
msgid "Russian:"
msgstr "ΡÏÏικα:"
-#: src/audacious/credits.c:282
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Serbian (Latin):"
-msgstr "ÎÏ
Ïιλλική (MacCyrillic)"
+msgstr "ΣεÏβικά (λαÏινικÏ):"
-#: src/audacious/credits.c:285
-#, fuzzy
+#: src/audacious/credits.c:290
msgid "Serbian (Cyrillic):"
-msgstr "ÎÏ
Ïιλλική (MacCyrillic)"
+msgstr "ΣεÏβικά (κÏ
ÏιλλικÏ):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
msgid "Simplified Chinese:"
-msgstr ""
+msgstr "ÎινÎζικα (αÏλοÏοιημÎνη):"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
msgid "Slovak:"
-msgstr "Σλοβακική:"
+msgstr "Σλοβακικά:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
msgid "Spanish:"
msgstr "ÎÏÏανικά:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
msgid "Swedish:"
msgstr "ΣοÏ
ηδικά:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
msgid "Traditional Chinese:"
-msgstr ""
+msgstr "ÎινÎζικα (ÏαÏαδοÏιακή):"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
msgid "Turkish:"
-msgstr ""
+msgstr "ΤοÏ
Ïκικά:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
msgid "Ukrainian:"
msgstr "ÎÏ
κÏανικά:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "ÎιεÏναμεζικά:"
+
+#: src/audacious/credits.c:326
msgid "Welsh:"
-msgstr "ÎÏ
αλλική:"
+msgstr "ÎÏ
αλλικά:"
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:234
msgid "Temporary Playlist"
-msgstr "ΦÏÏÏÏÏη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr ""
#: src/audacious/equalizer_preset.c:186
-#, fuzzy, c-format
+#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr "ΣÏάλμα καÏά Ïη ÏÏÏÏÏÏη ÏÎ·Ï ÎµÎ¹ÎºÏναÏ: %s"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
msgstr ""
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
msgid "Skip backwards in playlist"
msgstr "ÎεÏάβαÏη ÏίÏÏ ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
msgid "Start playing current playlist"
msgstr "ÎναÏξη αναÏαÏαγÏÎ³Î®Ï ÏÎ·Ï ÏÏÎÏοÏ
ÏÎ±Ï Î»Î¯ÏÏαÏ"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
msgid "Pause current song"
msgstr "ΠαÏÏη ÏÏÎÏονÏÎ¿Ï ÎºÎ¿Î¼Î¼Î±ÏιοÏ"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
msgid "Stop current song"
msgstr "ΣÏαμάÏημα ÏÏÎÏονÏÎ¿Ï ÎºÎ¿Î¼Î¼Î±ÏιοÏ"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
msgid "Pause if playing, play otherwise"
msgstr "ΠαÏÏη αν Ïαίζει, αλλιÏÏ Î±Î½Î±ÏαÏαγÏγή"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
msgid "Skip forward in playlist"
msgstr "ÎεÏάβαÏη μÏÏοÏÏά ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:245
msgid "Display Jump to File dialog"
-msgstr "/ÎεÏάβαÏη Ïε αÏÏείο"
+msgstr ""
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:246
msgid "Add files to the playlist"
-msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr "Î ÏοÏθήκη αÏÏείÏν ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:247
msgid "Add new files to a temporary playlist"
-msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr ""
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:248
msgid "Display the main window"
-msgstr "ÎμÏάνιÏη ÏοÏ
κÏ
ÏίÏÏ ÏαÏαθÏÏοÏ
"
-
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
msgstr ""
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:249
msgid "Show version"
-msgstr "/ÎμÏάνιÏη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr "ÎμÏάνιÏη ÎκδοÏηÏ"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr ""
+
+#: src/audacious/main.c:252
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:303
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
-#, fuzzy
-msgid "Buffering ..."
-msgstr "ΦÏÏÏÏÏη"
-
-#: src/audacious/playlist-new.c:288
-#, fuzzy
+#: src/audacious/playlist-new.c:315
msgid "Untitled Playlist"
-msgstr "ÎÏοθήκεÏ
Ïη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr ""
+
+#: src/audacious/playlist-new.c:1496
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
#: src/audacious/ui_preferences.c:88
msgid "Audio"
msgstr "ÎÏοÏ"
#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ReplayGain"
-
-#: src/audacious/ui_preferences.c:90
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
msgid "Playlist"
msgstr "ÎίÏÏα αναÏαÏαγÏγήÏ"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
msgid "Plugins"
msgstr "Î ÏÏÏθεÏα"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "ÎαλλιÏÎÏνηÏ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "ÎλμÏοÏ
μ"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
msgid "Title"
msgstr "ΤίÏλοÏ"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
msgid "Tracknumber"
msgstr "ÎοÏμεÏο κομμαÏιοÏ"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "ÎÎνοÏ"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
msgid "Filename"
msgstr "Îνομα αÏÏείοÏ
"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
msgid "Filepath"
msgstr "ÎιαδÏομή αÏÏείοÏ
"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
msgid "Date"
msgstr "ÎμεÏομηνία"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "ÎÏοÏ"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
msgid "Comment"
msgstr "ΣÏÏλιο"
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:107
msgid "Codec"
-msgstr "ÎλείÏιμο"
+msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
msgid "Quality"
msgstr "ΠοιÏÏηÏα"
@@ -412,239 +383,202 @@ msgid "None"
msgstr "ÎανÎνα"
#: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "ÎαÏÏνικά:"
+msgid "Arabic"
+msgstr "ÎÏαβικά"
#: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "ÎαÏÏνικά:"
+msgid "Baltic"
+msgstr "ÎαλÏικά"
#: src/audacious/ui_preferences.c:117
-#, fuzzy
msgid "Chinese"
-msgstr "ÎινÎζικα:"
+msgstr "ÎινÎζικα"
#: src/audacious/ui_preferences.c:118
-#, fuzzy
-msgid "Korean"
-msgstr "ÎοÏεάÏικα:"
+msgid "Greek"
+msgstr "Îλληνικά"
#: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "ΡÏÏικα:"
+msgid "Hebrew"
+msgstr ""
#: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Îλληνικά:"
+msgid "Japanese"
+msgstr ""
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
+msgid "Korean"
msgstr ""
#: src/audacious/ui_preferences.c:122
-msgid "Turkish"
+msgid "Polish"
msgstr ""
#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
+msgid "Russian"
msgstr ""
#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "ΠολÏνική:"
+msgid "Taiwanese"
+msgstr ""
#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Celte"
-
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "Îενικά"
-
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitrate:</b>"
+msgid "Turkish"
+msgstr ""
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
+msgid "Album mode"
msgstr ""
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "ÎλεγÏÎ¿Ï ÎνÏαÏηÏ:"
-
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ΧÏήÏη ελεγκÏή ήÏοÏ
λογιÏμικοÏ"
+msgid "Bit depth:"
+msgstr ""
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï ÏÏοÏÏÏÎ¹Î½Î®Ï Î¼Î½Î®Î¼Î·Ï:"
+
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-#, fuzzy
-msgid "dB"
-msgstr "0 dB"
-
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
+msgid "<b>Replay Gain</b>"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:161
+msgid "Enable Replay Gain"
msgstr ""
#: src/audacious/ui_preferences.c:164
-#, fuzzy
-msgid "<b>Replay Gain</b>"
-msgstr "<b>ÎιάÏκεια:</b>"
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
-msgid "Enable Replay Gain"
-msgstr "ÎνεÏγοÏοίηÏη ReplayGain"
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr ""
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ÎεÏαÏληÏοÏοÏίεÏ</b>"
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/ÎμÏάνιÏη ÏληÏοÏοÏιÏν αÏÏείοÏ
"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr ""
#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ÎαÏάÏÏαÏη άλμÏοÏ
μ"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Ροδάκι ÏονÏικιοÏ</b>"
+msgid "Amplify untagged files:"
+msgstr ""
#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ÎναδÏ
ÏÎ¼ÎµÎ½ÎµÏ ÏληÏοÏοÏίεÏ</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "ÎνεÏγοÏοίηÏη ÏÏÏληÏÎ·Ï ÏκÏαÏÏαÏίÏμαÏοÏ"
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr "ÎιεÏθÏ
νÏη διαμεÏολαβηÏή:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "ÎÏÏα διαμεÏολαβηÏή:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Îνομα ÏÏήÏÏη διαμεÏολαβηÏή:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "ÎÏδικÏÏ ÏÏÏÏβαÏÎ·Ï Î´Î¹Î±Î¼ÎµÏολαβηÏή:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>ΡÏθμιÏη διαμεÏολαβηÏή</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "ΧÏήÏη διαμεÏολαβηÏή"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
msgid "Use authentication with proxy"
msgstr "ΧÏήÏη ÏιÏÏοÏοίηÏÎ·Ï Î¼Îµ Ïο διαμεÏολαβηÏή"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Παλλαγή αÏ
ÏÏν ÏÏν ÏÏ
θμίÏεÏν αÏαιÏεί εÏανεκκίνηÏη ÏοÏ
"
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
msgid "Auto character encoding detector for:"
msgstr "ÎÏ
ÏÏμαÏη αναγνÏÏιÏη κÏδικοÏÎµÎ»Î¯Î´Î±Ï Î³Î¹Î±:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
-msgstr "<b>Bitrate:</b>"
+msgstr ""
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "ΣÏ
νÎÏεια αναÏαÏαγÏÎ³Î®Ï ÏÏην εκκίνηÏη"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
-msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά καλλιÏÎÏνη"
+msgstr ""
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
-msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr ""
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>ÎεÏαÏληÏοÏοÏίεÏ</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:577
msgid "Category"
msgstr "ÎαÏηγοÏία"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:801
msgid "Popup Information Settings"
msgstr "ΡÏ
θμίÏÎµÎ¹Ï Î±Î½Î±Î´Ï
ÏμενÏν ÏληÏοÏοÏιÏν"
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:810
msgid "<b>Cover image retrieve</b>"
-msgstr "<b>ÎναγνÏÏιÏη μοÏÏήÏ</b>"
+msgstr ""
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -654,101 +588,75 @@ msgstr ""
"ÏÏ
γκεκÏιμÎÎ½ÎµÏ Î»ÎÎ¾ÎµÎ¹Ï ÏÏο Ïνομα ÏοÏ
αÏÏείοÏ
. ÎÏοÏείÏε να ειÏάγεÏε ÏÎ¹Ï Î»ÎÎ¾ÎµÎ¹Ï "
"αÏ
ÏÎÏ ÏÏÎ¹Ï Î»Î¯ÏÏÎµÏ ÏαÏακάÏÏ, ÏÏÏιÏμÎÎ½ÎµÏ Î¼Îµ κÏμμαÏα."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
msgid "Exclude:"
msgstr "ÎÏοκλειÏμÏÏ:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
msgid "Include:"
msgstr "ΠεÏίληÏη:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:883
msgid "<b>Miscellaneous</b>"
-msgstr "<b>_ÎιάÏοÏα</b>"
+msgstr ""
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:1383
msgid "<b>Song Display</b>"
msgstr "<b>Î Ïοβολή ÏÏαγοÏ
διοÏ</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
msgid "Show information about titlestring format"
msgstr "ÎμÏάνιÏη ÏληÏοÏοÏιÏν για Ïη μοÏÏή ÏοÏ
ÏίÏλοÏ
"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Î ÏοÏαÏμοÏμÎνο αλÏαÏιθμηÏικÏ:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
msgid "Custom string:"
msgstr "Î ÏοÏαÏμοÏμÎνο αλÏαÏιθμηÏικÏ:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
msgid "Title format:"
msgstr "ÎοÏÏή ÏίÏλοÏ
:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
msgid "<b>Popup Information</b>"
msgstr "<b>ÎναδÏ
ÏÎ¼ÎµÎ½ÎµÏ ÏληÏοÏοÏίεÏ</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
msgid "Show popup information for playlist entries"
msgstr "ÎμÏάνιÏη αναδÏ
ÏμενÏν ÏληÏοÏοÏιÏν ÏÏη λίÏÏα αναÏαÏαγÏγήÏ"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -759,55 +667,44 @@ msgstr ""
"ÏοÏ
δίÏκοÏ
, Ïο είδοÏ, Ïο ÎÏÎ¿Ï ÎºÏ
κλοÏοÏίαÏ, Ïον αÏιθμÏ, Ïο Î¼Î®ÎºÎ¿Ï ÏοÏ
"
"ÏÏαγοÏ
Î´Î¹Î¿Ï ÎºÎ±Î¹ Ïο εξÏÏÏ
λλο."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
msgid "Edit settings for popup information"
msgstr "ÎÏεξεÏγαÏία ÏÏ
θμίÏεÏν για ÏÎ¹Ï Î±Î½Î±Î´Ï
ÏÎ¼ÎµÎ½ÎµÏ ÏληÏοÏοÏίεÏ"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ΣÏÏÏημα ήÏοÏ
</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï ÏÏοÏÏÏÎ¹Î½Î®Ï Î¼Î½Î®Î¼Î·Ï:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "ΤÏÎÏον ÏÏÏÏθεÏο εξÏδοÏ
:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
+msgstr ""
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1634
msgid "Transport"
-msgstr "ÎεÏαÏÏαÏÏÎÏ"
+msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
msgid "Effect"
-msgstr "ÎÏÎ"
+msgstr ""
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
msgid "Visualization"
-msgstr "/ÎÏÏικοÏοίηÏη"
+msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
msgid "Audacious Preferences"
msgstr "Î ÏοÏιμήÏÎµÎ¹Ï ÏοÏ
Audacious"
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:123
+#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "Îεν ήÏαν δÏ
ναÏή η δημιοÏ
Ïγία ÏοÏ
καÏαλÏγοÏ
(%s): %s"
+msgstr ""
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
msgid "Position not found."
msgstr ""
@@ -820,134 +717,118 @@ msgid "Mono"
msgstr "Mono"
#: src/libaudcore/tuple.c:687
-#, fuzzy
msgid "Stereo"
-msgstr "ÏÏεÏεοÏÏνικÏ"
+msgstr ""
#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Îανάλια"
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr "Îα μην ξαναεμÏανιÏÏεί αÏ
Ïή η ÏÏοειδοÏοίηÏη"
+msgstr ""
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "ÎÏοθήκεÏ
Ïη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
+msgstr ""
#: src/libaudgui/effects-menu.c:76
-#, fuzzy
msgid "settings ..."
-msgstr "ΡÏ
θμίÏÎµÎ¹Ï Î¼ÎµÎ¯ÎºÏη"
+msgstr ""
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:52
msgid "_Enable"
-msgstr "ÎνεÏγοÏοίηÏη"
+msgstr ""
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "31 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "63 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "125 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "250 Hz"
-msgstr "11000 Hz"
+msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "500 Hz"
-msgstr "11000 Hz"
+msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "1 kHz"
-msgstr "11 kHz"
+msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "2 kHz"
-msgstr "22 kHz"
+msgstr ""
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "4 kHz"
-msgstr "44 kHz"
+msgstr ""
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "8 kHz"
-msgstr "11 kHz"
+msgstr ""
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "16 kHz"
-msgstr "11 kHz"
+msgstr ""
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
msgid "Equalizer"
msgstr "ÎÏοÏÏαθμιÏÏήÏ"
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:147
msgid "Preamp"
-msgstr "Î ÏοενίÏÏÏ
Ïη"
+msgstr ""
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
-msgstr "ÎοÏμεÏο κομμαÏιοÏ"
+msgstr ""
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
-msgstr "ÎιάÏκεια κομμαÏιοÏ:"
+msgstr ""
#: src/libaudgui/infowin.c:77
msgid "Acid Jazz"
msgstr "Acid Jazz"
#: src/libaudgui/infowin.c:78
-#, fuzzy
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr ""
#: src/libaudgui/infowin.c:79
msgid "Ambient"
msgstr "Ambient"
#: src/libaudgui/infowin.c:80
-#, fuzzy
msgid "Bebop"
-msgstr "Bebob"
+msgstr ""
#: src/libaudgui/infowin.c:81
msgid "Bluegrass"
msgstr "Bluegrass"
#: src/libaudgui/infowin.c:82
-#, fuzzy
msgid "Blues"
-msgstr "Blues"
+msgstr ""
#: src/libaudgui/infowin.c:83
msgid "Chamber Music"
@@ -1002,9 +883,8 @@ msgid "Heavy Metal"
msgstr "Heavy Metal"
#: src/libaudgui/infowin.c:96
-#, fuzzy
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr ""
#: src/libaudgui/infowin.c:97
msgid "House"
@@ -1055,9 +935,8 @@ msgid "Rock"
msgstr "Ροκ"
#: src/libaudgui/infowin.c:109
-#, fuzzy
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr ""
#: src/libaudgui/infowin.c:110
msgid "Rhythm and Blues"
@@ -1080,15 +959,13 @@ msgid "Techno"
msgstr "Techno"
#: src/libaudgui/infowin.c:115
-#, fuzzy
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr ""
#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"medium\"><b>ÎÎÏα</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:265
msgid "Metadata updated successfully"
@@ -1099,75 +976,89 @@ msgid "Metadata updating failed"
msgstr ""
#: src/libaudgui/infowin.c:318
-#, fuzzy
msgid "Track Information"
-msgstr "ΡÏθμιÏη Flac"
+msgstr ""
#: src/libaudgui/infowin.c:350
-#, fuzzy
msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:354
-#, fuzzy
msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"medium\"><b>ÎÎÏα</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:357
-#, fuzzy
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:387
-#, fuzzy
msgid "<span size=\"small\">Title</span>"
-msgstr "<span size=\"medium\"><b>ÎÎÏα</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:399
-#, fuzzy
msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"medium\"><b>ÎξοδοÏ</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:411
-#, fuzzy
msgid "<span size=\"small\">Album</span>"
-msgstr "<span size=\"medium\"><b>ÎξοδοÏ</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:423
-#, fuzzy
msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:435
-#, fuzzy
msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:456
-#, fuzzy
msgid "<span size=\"small\">Year</span>"
-msgstr "<span size=\"medium\"><b>ÎÎÏα</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:467
-#, fuzzy
msgid "<span size=\"small\">Track Number</span>"
-msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
+msgstr ""
#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#, c-format
msgid "%d kb/s"
-msgstr "%d Kb/s"
+msgstr ""
#: src/libaudgui/infowin.c:579
#, c-format
msgid "No info available for %s.\n"
msgstr ""
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "ÎεÏάβαÏη Ïε ÏÏÏνο"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr ""
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "ΠεÏί Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Îνεία"
@@ -1175,113 +1066,113 @@ msgstr "Îνεία"
msgid "Translators"
msgstr "ÎεÏαÏÏαÏÏÎÏ"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Îνοιγμα αÏÏείÏν"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "Î ÏοÏθήκη αÏÏείÏν"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "ÎλείÏιμο ÏαÏαθÏÏοÏ
διαλÏγοÏ
καÏά Ïο άνοιγμα"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "ÎλείÏιμο ÏοÏ
διαλÏγοÏ
καÏά Ïην ÏÏοÏθήκη"
-#: src/libaudgui/ui_jumptotrack.c:133
-#, fuzzy
-msgid "Un_queue"
-msgstr "ΣÏην _οÏ
Ïά"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "_Queue"
msgstr "ΣÏην _οÏ
Ïά"
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr ""
+
+#: src/libaudgui/ui_jumptotrack.c:239
msgid "Jump to Track"
msgstr "ÎεÏαÏήδηÏη ÏÏο κομμάÏι"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
msgid "Filter: "
msgstr "ΦίλÏÏο:"
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:278
msgid "_Filter:"
-msgstr "ΦίλÏÏο:"
+msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
msgid "Remember"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Clea_r"
-msgstr "/ÎαθαÏιÏμÏÏ Î¿Ï
ÏάÏ"
+msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:315
msgid "Close on Jump"
-msgstr "ÎλείÏιμο ÏαÏαθÏÏοÏ
διαλÏγοÏ
καÏά Ïο άνοιγμα"
+msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:250
msgid "Playlist Manager"
-msgstr "Îη αÏ
ÏÏμαÏη μεÏάβαÏη μÏÏοÏÏά ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
+msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:298
msgid "_Rename"
-msgstr "Îνομα αÏÏείοÏ
"
+msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:322
msgid "_Close dialog on activating playlist"
-msgstr "ÎλείÏιμο ÏαÏαθÏÏοÏ
διαλÏγοÏ
καÏά Ïο άνοιγμα"
+msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: δεν αναγνÏÏίζεÏαι η εÏιλογή `--%s'\n"
+msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:967
+#, c-format
msgid "Starting %s"
-msgstr "ÎÏαλικά:"
+msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1176
+#, c-format
msgid "Unrecognized launch option: %d"
-msgstr "%s: δεν αναγνÏÏίζεÏαι η εÏιλογή `--%s'\n"
+msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1313,3803 +1204,4 @@ msgstr ""
msgid "Show session management options"
msgstr ""
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "audacious: ÎδÏναÏο Ïο άνοιγμα ÏÎ·Ï Î¿Î¸ÏνηÏ, ÎξοδοÏ.\n"
-
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "Î ÏοενίÏÏÏ
Ïη"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Î ÏοκαθοÏιÏμÎνο skin:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>ΡÏθμιÏη διαμεÏολαβηÏή</b>"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Îνομα κομμαÏιοÏ"
-
-#~ msgid "Classic Rock"
-#~ msgstr "ÎλαÏÎ¹ÎºÏ Î¡Î¿Îº"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Îλλο"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "ÎναλλακÏική"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "ÎÏÏηÏÏÏική"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "ÎναλλακÏÎ¹ÎºÏ Î¡Î¿Îº"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Musique Méditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop Instrumentale"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock Instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "ÎλεκÏÏονική μοÏ
Ïική"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celte"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Discours"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Stereo"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duo"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Christian Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "SynthPop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "ÎναÏαÏάγονÏÎ±Ï ÏολÏ
μÎÏα ÏÏο UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Πομάδα ανάÏÏÏ
Î¾Î·Ï ÏοÏ
Audacious\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Îεν είναι δÏ
ναÏή η δημιοÏ
Ïγία ÏοÏ
αÏÏείοÏ
καÏαγÏαÏÎ®Ï (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/ÎναÏαÏαγÏγή"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>ÎναÏαÏαγÏγή</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "ÎÏ
ÏÏμαÏη ÎναÏξη ÏÎ·Ï Î±Î½Î±ÏαÏαγÏÎ³Î®Ï Î±ÏÏ Ïο Ïημείο ÏοÏ
ÏÏαμάÏηÏε ÏÏιν ÏÏαν "
-#~ "ξεκινά Ïο Audacious."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Îη αÏ
ÏÏμαÏη μεÏάβαÏη μÏÏοÏÏά ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "ÎεÏά Ïην ολοκλήÏÏÏη ενÏÏ ÏÏαγοÏ
διοÏ, μη μεÏÎ±Î²ÎµÎ¯Ï Î±Ï
ÏÏμαÏα ÏÏο εÏÏμενο."
-
-#~ msgid "Enabled"
-#~ msgstr "ÎνεÏγοÏοιημÎνο"
-
-#~ msgid "Description"
-#~ msgstr "ΠεÏιγÏαÏή"
-
-#, fuzzy
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "ÎÏθÏÏμα εξÏδοÏ
OSS"
-
-#, fuzzy
-#~ msgid "Output Plugin Information"
-#~ msgstr "ΡÏ
θμίÏÎµÎ¹Ï Î±ÏθÏÏμαÏÎ¿Ï ÎµÎ¾ÏδοÏ
ESD"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "ÎίÏÏα αÏοκÏδικοÏοιηÏÏν:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÎÏοκÏδικοÏοιηÏÎÏ</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "ÎίÏÏα _γενικÏν αÏθÏÏμάÏÏν:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "ÎίÏÏα αÏθÏÏμάÏÏν _οÏÏικοÏοίηÏηÏ:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>ÎÏÏικοÏοίηÏη</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "ÎίÏÏα αÏθÏÏμάÏÏν _εÏÏÎ:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>ÎÏÎ</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"medium\"><b>Îενικά</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"medium\"><b>ÎÏοκÏδικοÏοιηÏÎÏ</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"medium\"><b>ÎÎÏα</b></span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "11000 Hz"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "11000 Hz"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "ÎιαθÎÏÎ¹Î¼ÎµÏ _ÏÏ
θμίÏειÏ:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "ÎιαθÎÏÎ¹Î¼ÎµÏ _ÏÏ
θμίÏειÏ:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "ΠαÏάθÏ
Ïο διαλÏγοÏ
ÏÏοÏθήκηÏ/ανοίγμαÏÎ¿Ï Î±ÏÏείÏν"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "ÎιÏάγεÏε ÏοÏοθεÏία για αναÏαÏαγÏγή:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Îνομα αÏÏείοÏ
:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "ÎÏ
ÏÏ Ïο αÏÏείο δεν αναγνÏÏίÏÏηκε αÏÏ ÎºÎ±Î½Îνα ÏÏÏÏθεÏο ειÏαγÏÎ³Î®Ï Î®ÏοÏ
"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "ÎÏθÏÏμα ειÏÏδοÏ
: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Îεν εÏιλÎÏÏηκε ÏÏÏÏθεÏο εξÏδοÏ
.</big></b>\n"
-#~ "Îεν ÎÏεÏε εÏιλÎξει κάÏοιο ÏÏÏÏθεÏο εξÏδοÏ
."
-
-#~ msgid "Connectivity"
-#~ msgstr "ΣÏ
νδεÏιμÏÏηÏα"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "ΡÏ
θμÏÏ Î´ÎµÎ¹Î³Î¼Î±ÏοληÏίαÏ"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>ÎναγνÏÏιÏη μοÏÏήÏ</b>"
-
-#, fuzzy
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Îα μη γίνεÏαι αÏÏκÏÏ
Ïη ÏÎ·Ï ÎµÏÎκÏαÏηÏ"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Îν εÏιλεγεί, Ïο Audacious θα αναγνÏÏίζει Ïη μοÏÏή ÏÏν ÏÏαγοÏ
διÏν ÏÏαν "
-#~ "ÏÏειαÏÏεί. ÎÏ
ÏÏ Î¼ÏοÏεί να οδηγήÏει Ïε Ïιο Ïάλια λίÏÏα αναÏαÏαγÏÎ³Î®Ï Î±Î»Î»Î¬ "
-#~ "οδηγεί Ïε οÏ
ÏιαÏÏÎ¹ÎºÏ ÎºÎÏÎ´Î¿Ï Ïε ÏαÏÏÏηÏα."
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>ΡÏ
θμÏÏ Î´ÎµÎ¹Î³Î¼Î±ÏοληÏίαÏ:</b>"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "ΡÏ
θμÏÏ Î´ÎµÎ¹Î³Î¼Î±ÏοληÏίαÏ"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Îνομα:</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "ÎναÏαÏάγονÏÎ±Ï ÏολÏ
μÎÏα ÏÏο UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Πομάδα ανάÏÏÏ
Î¾Î·Ï ÏοÏ
Audacious\n"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "ÎνÏοÏιÏμÏÏ Î¼Î¿ÏÏÎ®Ï Î±ÏÏείÏν ÏÏαν ÏÏειαÏÏεί, ανÏί αμÎÏÏÏ."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Îν εÏιλεγεί, Ïο Audacious θα αναγνÏÏίζει Ïη μοÏÏή ÏÏν ÏÏαγοÏ
διÏν ÏÏαν "
-#~ "ÏÏειαÏÏεί. ÎÏ
ÏÏ Î¼ÏοÏεί να οδηγήÏει Ïε Ïιο Ïάλια λίÏÏα αναÏαÏαγÏÎ³Î®Ï Î±Î»Î»Î¬ "
-#~ "οδηγεί Ïε οÏ
ÏιαÏÏÎ¹ÎºÏ ÎºÎÏÎ´Î¿Ï Ïε ÏαÏÏÏηÏα."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "ΦÏÏÏÏÏη μεÏαδεδομÎνÏν αÏÏ ÏÎ¹Ï Î»Î¯ÏÏÎµÏ Î±Î½Î±ÏαÏαγÏÎ³Î®Ï ÎºÎ±Î¹ Ïα αÏÏεία"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "ΦÏÏÏÏÏη μεÏαδεδομÎνÏν (ÏληÏοÏοÏÎ¯ÎµÏ ÎµÏικεÏÏν) αÏÏ Ïα μοÏ
Ïικά αÏÏεία."
-
-#~ msgid "Jump to Time"
-#~ msgstr "ÎεÏάβαÏη Ïε ÏÏÏνο"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "λεÏÏά:δεÏ
ÏεÏÏλεÏÏα"
-
-#~ msgid "Track length:"
-#~ msgstr "ÎιάÏκεια κομμαÏιοÏ:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "ÎÏοθήκεÏ
Ïη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "ΣÏάλμα εγγÏαÏÎ®Ï ÏÎ·Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏÎ³Î®Ï \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s Ï
ÏάÏÏει ήδη. ΣÏ
νÎÏεια ;"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>ÎδÏναÏη η αÏοθήκεÏ
Ïη ÏÎ·Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ.</big></b>\n"
-#~ "\n"
-#~ "ÎγνÏÏÏÎ¿Ï ÏÏÏÎ¿Ï Î±ÏÏείοÏ
'%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Î ÏοκαθοÏιÏμÎνα"
-
-#~ msgid "Mouse"
-#~ msgstr "ΠονÏίκι"
-
-#~ msgid "Pause between songs"
-#~ msgstr "ΠαÏÏη μεÏÎ±Î¾Ï ÏÏν ÏÏαγοÏ
διÏν"
-
-#~ msgid "Pause for"
-#~ msgstr "ΠαÏÏη για"
-
-#~ msgid "seconds"
-#~ msgstr "δεÏ
ÏεÏÏλεÏÏα"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Îνομα αÏÏείοÏ
</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "ÎεÏαÏÏοÏή κάÏÏ ÏαÏÎ»Î±Ï Ïε κενÏ"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "ÎεÏαÏÏοÏή %20 Ïε κενÏ"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>ÎÎ¹Î¬Î»Î¿Î³Î¿Ï Î±ÏÏείοÏ
</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "ΠάνÏα ανανÎÏÏη ÏÏν καÏαλÏγÏν καÏά Ïο άνοιγμα ÏοÏ
διαλÏγοÏ
αÏÏείÏν"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Îα γίνεÏαι ÏάνÏα ανανÎÏÏη ÏοÏ
διαλÏγοÏ
αÏÏείÏν (αÏ
ÏÏ Î¼ÏοÏεί να "
-#~ "καθÏ
ÏÏεÏήÏει Ïο άνοιγμα ÏοÏ
διαλÏγοÏ
Ïε μεγάλοÏ
Ï ÎºÎ±ÏαλÏγοÏ
Ï, και Ïο Gnome "
-#~ "VFS θα ÏÏÎÏει να Ïο ÏειÏιÏÏεί αÏ
ÏÏμαÏα)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Îλλάζει Ïην ÎνÏαÏη καÏά"
-
-#~ msgid "percent"
-#~ msgstr "ÏοÏοÏÏÏ"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Î ÏοÏÏÏά Ïη λίÏÏα ÏÏαγοÏ
διÏν καÏά"
-
-#~ msgid "lines"
-#~ msgstr "γÏαμμÎÏ"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "/ÎιακοÏή μεÏά Ïο ÏÏÎÏον ÏÏαγοÏδι"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pranks"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/ÎÏανάληÏη"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/ΤÏ
Ïαία αναÏαÏαγÏγή"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "Îη αÏ
ÏÏμαÏη μεÏάβαÏη μÏÏοÏÏά ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/ÎναÏαÏαγÏγή"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/ΠαÏÏη"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/ΣÏαμάÏημα"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Î ÏοηγοÏμενο"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/ÎÏÏμενο"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/ÎÏÏικοÏοίηÏη"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ΦÏÏιά"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/ΦάÏμα"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ΦÏÏιά"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "<b>ÎειÏοÏ
Ïγία ÎÎ½Î±Î»Î»Î±Î³Î®Ï ÎºÎ¿Ï
μÏιοÏ:</b>"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/ΡÏ
θμÏÏ Î±Î½Î±Î½ÎÏÏηÏ"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Î ÏÏÏη αναλÏ
Ïή"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Î ÏÏÏη κοÏÏ
ÏÏν"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "ÎÏοθήκεÏ
Ïη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "ÎÏαμμαÏοÏειÏά για Ïη λίÏÏα ÏÏαγοÏ
διÏν:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά καλλιÏÎÏνη"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "ÎÏαμμαÏοÏειÏά για Ïη λίÏÏα ÏÏαγοÏ
διÏν:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/ΦÏÏÏÏÏη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr ""
-#~ "ΦÏÏÏÏÏη μεÏαÏληÏοÏοÏιÏν δÏ
ναμικά καÏά Ïην εμÏάνιÏη ÏοÏ
αÏÏείοÏ
ÏÏη λίÏÏα "
-#~ "ÏÏαγοÏ
διÏν"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "ÎÏαμμαÏοÏειÏά για Ïη λίÏÏα ÏÏαγοÏ
διÏν:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη ÏÏοεÏιλεγμÎÎ½Î·Ï Î»Î¯ÏÏαÏ"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "ÎÏαμμαÏοÏειÏά για Ïη λίÏÏα ÏÏαγοÏ
διÏν:"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "ÎνανÎÏÏη λίÏÏÎ±Ï skin"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "Îη αÏ
ÏÏμαÏη μεÏάβαÏη μÏÏοÏÏά ÏÏη λίÏÏα ÏÏαγοÏ
διÏν"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Î Ïοβολή"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Î ÏοÏθήκη διεÏθÏ
νÏÎ·Ï internet"
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Î ÏοÏθήκη αÏÏείÏν..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ"
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/ÎνÏιÏÏÏοÏή εÏιλογήÏ"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "ÎÏαμμαÏοÏειÏά για Ïη λίÏÏα ÏÏαγοÏ
διÏν:"
-
-#~ msgid "Select All"
-#~ msgstr "ÎÏιλογή 'ÏλÏν"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/ÎανÎνα εÏιλεγμÎνο"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/ÎÏαίÏεÏη ÏλÏν"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/ÎÏαίÏεÏη μη διαθÎÏιμÏν αÏÏείÏν"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/ÎαθαÏιÏμÏÏ Î¿Ï
ÏάÏ"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "ÎÏαμμαÏοÏειÏά για Ïη λίÏÏα ÏÏαγοÏ
διÏν:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/ÎÏαίÏεÏη μη διαθÎÏιμÏν αÏÏείÏν"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/ÎÏαίÏεÏη μη διαθÎÏιμÏν αÏÏείÏν"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "ΤίÏλοÏ"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Îνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/ÎÏαίÏεÏη μη-εÏιλεγμÎνÏν"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/ÎÏαίÏεÏη εÏιλεγμÎνÏν"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/ΤÏ
ÏαιοÏοίηÏη λίÏÏαÏ"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/ΤÏ
ÏαιοÏοίηÏη λίÏÏαÏ"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/ÎνÏιÏÏÏοÏή ÏÎ·Ï ÏειÏÎ¬Ï ÏÎ·Ï Î»Î¯ÏÏαÏ"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "ÎκÏÏÏÏη καθαÏιÏÎ¼Î¿Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά Ïνομα"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "ÎλμÏοÏ
μ"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά Ïνομα"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "ÎαλλιÏÎÏνηÏ"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά καλλιÏÎÏνη"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά Ïνομα αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "ÎμεÏομηνία"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά Ïνομα"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "ÎοÏμεÏο κομμαÏιοÏ"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά ÏÏονολογία"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά καλλιÏÎÏνη"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά καλλιÏÎÏνη"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "ΣÏÏλιο"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/ÎμÏάνιÏη ÏληÏοÏοÏιÏν αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/ÎναÏαÏαγÏγή αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "ΦÏÏÏÏÏη μεÏαδεδομÎνÏν αÏÏ ÏÎ¹Ï Î»Î¯ÏÏÎµÏ Î±Î½Î±ÏαÏαγÏÎ³Î®Ï ÎºÎ±Î¹ Ïα αÏÏεία"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "/ÎναÏαÏαγÏγή ÏοÏοθεÏίαÏ"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Î ÏÏÏθεÏα"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Î ÏοÏιμήÏειÏ"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "ΠαÏάθÏ
Ïο ÏÏοÏιμήÏεÏν "
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_ÎξοδοÏ"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "ΠεÏί Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "/ÎÏιλογή ÏλÏν"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/ÎαθαÏιÏμÏÏ Î¿Ï
ÏάÏ"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/ÎεÏάβαÏη ÏÏην αÏÏή ÏÎ·Ï Î»Î¯ÏÏÎ±Ï ÏÏαγοÏ
διÏν"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/ÎεÏάβαÏη Ïε αÏÏείο"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Îναλλαγή οÏ
ÏάÏ"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/ΦÏÏÏÏÏη"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/ÎιÏαγÏγή"
-
-#~ msgid "Save"
-#~ msgstr "ÎÏοθήκεÏ
Ïη"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/ÎιαγÏαÏή"
-
-#~ msgid "Preset"
-#~ msgstr "Î ÏοκαθοÏιÏμÎνο"
-
-#~ msgid "Load preset"
-#~ msgstr "ΦÏÏÏÏÏη ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏ
ÏÏμαÏο ÏÏÏÏÏμα ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏ
ÏÏμαÏο ÏÏÏÏÏμα ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#~ msgid "Default"
-#~ msgstr "Î ÏοκαθοÏιÏμÎνο"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "ÎÏοθήκεÏ
Ïη αÏ
ÏÏμαÏοÏ
ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "Retro"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "ÎÏοθήκεÏ
Ïη ÏÏοκαθοÏιÏμÎνοÏ
ιÏοÏÏαθμιÏÏή"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏÏ Î±ÏÏείο"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "ΦÏÏÏÏÏη ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏÏ Î±ÏÏείο EQF ÏοÏ
WinAMP"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏÏ Î±ÏÏείο EQF ÏοÏ
WinAMP"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/ÎιÏαγÏγή/Presets ÏοÏ
WinAMP"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/ÎιÏαγÏγή/Presets ÏοÏ
WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "ÎÏοθήκεÏ
Ïη ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη/ÎÏ
ÏÏμαÏο ÏÏÏÏÏμα ÏοÏ
preset"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "ÎÏοθήκεÏ
Ïη αÏ
ÏÏμαÏοÏ
ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏÏ Î±ÏÏείο"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "ÎÏοθήκεÏ
Ïη ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη/Σε αÏÏείο EQF ÏοÏ
WinAMP"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη/Σε αÏÏείο EQF ÏοÏ
WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "/ÎιαγÏαÏή ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/ÎιαγÏαÏή/Î ÏοκαθοÏιÏμÎνο ÏοÏ
ÏοÏÏÏνεÏαι αÏ
ÏÏμαÏα"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Îεν ήÏαν δÏ
ναÏÏ Ïο ÏÏÏÏÏμα ÏοÏ
skin.</big></b>\n"
-#~ "\n"
-#~ "ÎλÎγξÏε ÏÏι Ïο skin ÏÏο '%s' είναι ÎγκÏ
Ïο και ÏÏι Ïο ÏÏοκαθοÏιÏμÎνο skin "
-#~ "είναι ÏÏÏÏά εγκαÏεÏÏημÎνο ÏÏο '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "ΠλειÏοÏ
Ïγία δεν Ï
ÏοÏÏηÏίζεÏαι"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "ÎαÏικοί ÏÏ
νÏελεÏÏÎÏ ÏοÏ
Audacious:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "ÎÏοÏÏαθμιÏÏÎ®Ï Audacious"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/ÎναÏαÏαγÏγή αÏÏείοÏ
"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎÏÏ Î±ÏÏείο"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "μονοÏÏνικÏ"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "ÎÏαμμαÏοÏειÏά κÏ
ÏίοÏ
ÏαÏαθÏÏοÏ
:"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "κανÎνα"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ÎÎΤÎÎÎΣÎ: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Volume: %d%%"
-#~ msgstr "ÎνÏαÏη"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "ÎÏιλογÎÏ:"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/ΠάνÏα ÏÏην κοÏÏ
Ïή"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/ΠάνÏα ÏÏην κοÏÏ
Ïή"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ Î±ÏÏείοÏ
- %s"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "ÎÏενεÏγοÏοίηÏη εÏικεÏÏν ID3V2"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/ÎÏÏικοÏοίηÏη"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Îεν ήνÏαν δÏ
ναÏÏ Ïο άνοιγμα ÏοÏ
ήÏοÏ
.</big></b>\n"
-#~ "\n"
-#~ "ΠαÏÎ±ÎºÎ±Î»Ï ÎµÎ»ÎγξÏε ÏÏι:\n"
-#~ "1. ÎÏεÏε εÏιλÎξει Ïο ÏÏÏÏÏ ÏÏÏÏθεÏο εξÏδοÏ
.\n"
-#~ "2. ÎανÎνα άλλο ÏÏÏγÏαμμα δε μÏλοκάÏει Ïην κάÏÏα ήÏοÏ
.\n"
-#~ "3. ΠκάÏÏα ήÏοÏ
ÏÎ±Ï ÎµÎ¯Î½Î±Î¹ ÏÏÏÏά ÏÏ
θμιÏμÎνη.\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/ÎÏ
ÏÏμαÏη κÏλιÏη ÏίÏλοÏ
"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/ÎμÏάνιÏη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/ÎμÏάνιÏη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/ÎμÏάνιÏη ιÏοÏÏαθμιÏÏή"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/ΠάνÏα ÏÏην κοÏÏ
Ïή"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/ΤοÏοθÎÏηÏη Ïε ÏλοÏ
Ï ÏοÏ
Ï ÏÏÏοÏ
Ï ÎµÏγαÏίαÏ"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/ΤÏλιγμα ÏοÏ
αναÏαÏαγÏγÎα"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/ΤÏλιγμα ÏοÏ
εÏεξεÏγαÏÏή λίÏÏαÏ"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/ΤÏλιγμα ÏοÏ
ιÏοÏÏαθμιÏÏή"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "ÎÏοθήκεÏ
Ïη"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/ÎναλÏ
ÏήÏ"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/ΦάÏμα"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ΦÏÏιά"
-
-#, fuzzy
-#~ msgid "Normal"
-#~ msgstr "ÎοÏÏή:"
-
-#, fuzzy
-#~ msgid "Fire"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ÎάθεÏÎµÏ Î³ÏαμμÎÏ"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "γÏαμμÎÏ"
-
-#, fuzzy
-#~ msgid "Bars"
-#~ msgstr "Bass"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "ÎÏι εÏανάληÏη"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/ΦάÏμα/ÎÏαμμÎÏ"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/ΦάÏμα/ΣÏ
μÏαγÎÏ"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "μονοÏÏνικÏ"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/ΡÏ
θμÏÏ Î±Î½Î±Î½ÎÏÏηÏ/ΠλήÏÎ·Ï (~50fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/ΡÏ
θμÏÏ Î±Î½Î±Î½ÎÏÏηÏ/ÎιÏÏÏ (~25fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/ΡÏ
θμÏÏ Î±Î½Î±Î½ÎÏÏηÏ/ΤÎÏαÏÏο (~13fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/ΡÏ
θμÏÏ Î±Î½Î±Î½ÎÏÏηÏ/Îγδοο (~6 fps)"
-
-#, fuzzy
-#~ msgid "Slowest"
-#~ msgstr "Showtunes"
-
-#, fuzzy
-#~ msgid "Slow"
-#~ msgstr "ÏαμηλÏ"
-
-#, fuzzy
-#~ msgid "Medium"
-#~ msgstr "μεÏαίο"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/ΧÏÏÎ½Î¿Ï ÏοÏ
ÏÎÏαÏε"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Î¥ÏολειÏÏÎ¼ÎµÎ½Î¿Ï ÏÏÏνοÏ"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Î ÏÏÏθεÏα"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "ÎμÏάνιÏη διαÏÏÏιÏÏικÏν ÏÏη λίÏÏα αναÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "ΤίÏλοÏ:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "ÎλμÏοÏ
μ:"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "ÎαλλιÏÎÏνηÏ:"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Îνομα αÏÏείοÏ
:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "ÎÏεξεÏγαÏÏÎ®Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#~ msgid "Appearance"
-#~ msgstr "ÎμÏάνιÏη"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_ÎÏαμμαÏοÏειÏÎÏ</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_ÎναÏαÏαγÏγÎαÏ:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "ÎÏαμμαÏοÏειÏά κÏ
ÏίοÏ
ÏαÏαθÏÏοÏ
:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_ÎίÏÏα ÏÏαγοÏ
διÏν:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "ÎÏαμμαÏοÏειÏά κÏ
ÏίοÏ
ÏαÏαθÏÏοÏ
:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "ΧÏήÏη γÏαμμαÏοÏειÏÏν Bitmap αν είναι διαθÎÏιμεÏ"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_ÎιάÏοÏα</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "ÎμÏάνιÏη Î/ΠκομμαÏÎ¹Î¿Ï ÏÏη λίÏÏα αναÏαÏαγÏγήÏ"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "ÎμÏάνιÏη διαÏÏÏιÏÏικÏν ÏÏη λίÏÏα αναÏαÏαγÏγήÏ"
-
-#~ msgid "On load"
-#~ msgstr "ÎαÏά Ïο άνοιγμα"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "ΦÏÏÏÏÏη μεÏαδεδομÎνÏν καÏά Ïην ÏÏοÏθήκη ÏοÏ
αÏÏείοÏ
ÏÏη λίÏÏα "
-#~ "αναÏαÏαγÏÎ³Î®Ï Î® καÏά Ïο άνοιγμά ÏοÏ
"
-
-#~ msgid "On display"
-#~ msgstr "ÎαÏά Ïην ÏÏοβολή"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "ΦÏÏÏÏÏη μεÏαδεδομÎνÏν καÏά Ïην ÏÏοÏθήκη ÏοÏ
αÏÏείοÏ
ÏÏη λίÏÏα "
-#~ "αναÏαÏαγÏÎ³Î®Ï Î® καÏά Ïο άνοιγμά ÏοÏ
"
-
-#, fuzzy
-#~ msgid "Blue"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Îλληνικά:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Skin</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "ÎνανÎÏÏη λίÏÏÎ±Ï skin"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "ΣÏ
μÏιεÏμÎνο Winamp 2.x skin"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "ÎÏÏ
μÏίεÏÏο Winamp 2.x skin"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "ΧÏήÏη ÏÏοÏαÏμοÏμÎνÏν δεικÏÏν ÏονÏικιοÏ"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Î ÏÏÏθεÏα"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "ÎÏιÏμÏÏ ÏαÏαμÎÏÏÏν ÏκληÏÎ¿Ï Î´Î¯ÏκοÏ
"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "ÎÏιλογή ÏÏ
νεδÏÎ¯Î±Ï Audacious/BMP/XMMS (Î ÏοκαθοÏιÏμÎνη: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Î ÏοκαθοÏιÏμÎνα</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "ÎÏÎκÏαÏη αÏÏείοÏ
ÏÏ
θμίÏεÏν:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "ÎÏÏείο καÏαλÏγοÏ
ÏÏ
θμίÏεÏν:"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Îεν ήÏαν δÏ
ναÏή η δημιοÏ
Ïγία ÏοÏ
%s.</big></b>\n"
-#~ "\n"
-#~ "Îεν ήÏαν δÏ
ναÏÏ Ïο άνοιγμα ÏοÏ
αÏÏείοÏ
glade (%s). ΠαÏακαλοÏμε ελÎγξÏε "
-#~ "Ïην εγκαÏάÏÏαÏή ÏαÏ.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "ΤÎΤÎÎΣ\n"
-#~ "ÎÎÎÎÎΤÎΧÎÎΣ - ΤÎΤÎÎΣ\n"
-#~ "ÎÎÎÎÎΤÎΧÎÎΣ - ÎÎÎÎ ÎΥΠ- ΤÎΤÎÎΣ\n"
-#~ "ÎÎÎÎÎΤÎΧÎÎΣ [ ÎÎÎÎ ÎΥΠ] - ΤÎΤÎÎΣ\n"
-#~ "ÎÎÎÎ ÎΥΠ- ΤÎΤÎÎΣ\n"
-#~ "Î ÏοÏαÏμοÏμÎνο"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "ΡÏ
θμίÏÎµÎ¹Ï Î±Î½Î±Î´Ï
ÏμενÏν ÏληÏοÏοÏιÏν"
-
-#~ msgid "Preferences Window"
-#~ msgstr "ΠαÏάθÏ
Ïο ÏÏοÏιμήÏεÏν "
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/ÎλείÏιμο"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "ÎαλλιÏÎÏνηÏ"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>ΤίÏλοÏ:</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>ÎλμÏοÏ
μ:</b>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "ÎÏεξεÏγαÏÏÎ®Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "ÎαλλιÏÎÏνηÏ"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>ΤίÏλοÏ:</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>ÎλμÏοÏ
μ:</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "ÎÎΤÎΣÎ: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANCE: %d%% ÎΡÎΣΤÎΡÎ"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANCE: ÎÎÎΤΡÎ"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANCE: %d%% ÎÎÎÎÎ"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "/ÎναÏαÏαγÏγή ÏοÏοθεÏίαÏ"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "/ÎναÏαÏαγÏγή ÏοÏοθεÏίαÏ"
-
-#, fuzzy
-#~ msgid "Converter Type:"
-#~ msgstr "ÎεÏαÏÏοÏή ÏÏ
νÏλοÏ
ÏαÏακÏήÏÏν"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Îε βÏÎθηκε αναÏαÏαγÏγιμο CD.</big></b>\n"
-#~ "\n"
-#~ "Îεν ÏοÏοθεÏήÏαÏε CD ή αÏ
ÏÏ ÏοÏ
ÏοÏοθεÏήÏαÏε δεν είναι CD ήÏοÏ
.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/Î ÏοÏθήκη CD..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/ÎναÏαÏαγÏγή CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "ÎαλλιÏÎÏνηÏ"
-
-#~ msgid "File name"
-#~ msgstr "Îνομα αÏÏείοÏ
"
-
-#~ msgid "File path"
-#~ msgstr "ÎιαδÏομή αÏÏείοÏ
"
-
-#~ msgid "File extension"
-#~ msgstr "ÎÏÎκÏαÏη αÏÏείοÏ
"
-
-#~ msgid "Track number"
-#~ msgstr "ÎοÏμεÏο κομμαÏιοÏ"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: ÎÏεικÏνιÏη \"...\" μÏνο εάν Ïο ÏÏοιÏείο %n Ï
ÏάÏÏει"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Î ÎκδοÏη ÏοÏ
GTK+ ÏοÏ
ÎÏεÏε (%d.%d.%d) δεν είναι ÏÏ
μβαÏή με Ïο "
-#~ "Audacious.\n"
-#~ "ΠαÏÎ±ÎºÎ±Î»Ï ÏÏηÏιμοÏοιείÏÏε Ïο GTK+ %s ή νεÏÏεÏο.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "ÎÎ ÎÎÎÎÎΣ"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ÎÎ ÎÎÎΡÎÎÎ ÎÎÎΣΠÏοÏ
Î ÎÎΤΠΣΠΠΡΩΤΠΠÎÎÎÎ"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ÎÎÎΡÎÎÎ ÎÎÎΣΠÏοÏ
Î ÎÎΤΠΣΤΠΠΡÎΣÎÎÎÎÎ"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "Î ÎÎΡÎΦÎΡÎÎΣ ÎΡΧÎÎÎÎ¥"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "ÎÎÎÎÎ¥ ÎΠΤÎÎÎÎ ÎÎÎΣÎΣ"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "ÎνÏμαÏα αÏÏείÏν:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Îεν ήÏαν δÏ
ναÏή η αναÏαÏαγÏγή αÏÏείÏν.</big></b>\n"
-#~ "\n"
-#~ "Τα ακÏλοÏ
θα αÏÏεία δεν ήÏαν δÏ
ναÏÏν να αναÏαÏαγÏθοÏν. ΠαÏακαλοÏμε ελÎγξÏε "
-#~ "ÏÏι:\n"
-#~ "1. είναι ÏÏοÏβάÏιμα.\n"
-#~ "2. ÎÏεÏε ενεÏγοÏοιήÏει Ïα ÏÏÏÏθεÏα ÏοÏ
αÏαιÏοÏνÏαι."
-
-#~ msgid "Show more _details"
-#~ msgstr "Î Ïοβολή ÏεÏιÏÏÏÏεÏÏν _λεÏÏομεÏειÏν"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ÎλήÏθη SIGSEGV\n"
-#~ "\n"
-#~ "ÎÏ
ÏÏ Î¼ÏοÏεί να είναι ÏÏάλμα ÏÏο Audacious. Îάν δεν γνÏÏίζεÏε γιαÏί "
-#~ "ÏÏ
νÎβη,\n"
-#~ "ÏÏ
μÏληÏÏÏÏε μια αναÏοÏά ÏÏάλμαÏÎ¿Ï ÏÏο http://bugs.nenolod.net/\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "ÎνεÏγοÏοιεί διαÏάνεια για Ïη λίÏÏα αναÏαÏαγÏγήÏ. ÎÏ
ÏÏ Î´ÎµÎ½ ÏÏ
νιÏÏάÏαι Ïε "
-#~ "Ïιο αÏγά μηÏανήμαÏα γιαÏί αÏαιÏεί ÏÏÏνο αÏÏ Ïον κενÏÏÎ¹ÎºÏ ÎµÏεξεÏγαÏÏή για "
-#~ "Ïη δημιοÏ
Ïγία και αÏοθήκεÏ
Ïη ÏÏν εικÏνÏν ÏοÏ
ÏÏηÏιμοÏοιοÏνÏαι ÏÏη "
-#~ "διαÏάνεια."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "ÎνεÏγοÏοίηÏη διαÏÎ¬Î½ÎµÎ¹Î±Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: η εÏιλογή `%s' είναι αÏαÏήÏ\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: η εÏιλογή `--%s' δεν εÏιÏÏÎÏει οÏίÏμαÏα\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: η εÏιλογή `%c%s' δεν εÏιÏÏÎÏει οÏίÏμαÏα\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: η εÏιλογή `%s' αÏαιÏεί Îνα ÏÏιÏμα\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: δεν αναγνÏÏίζεÏαι η εÏιλογή `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: άκÏ
Ïη εÏιλογή -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: λανθαÏμÎνη εÏιλογή -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: η εÏιλογή αÏαιÏεί Îνα ÏÏιÏμα -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: η εÏιλογή `-W %s' είναι αÏαÏήÏ\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: η εÏιλογή `-W \"%s` δεν εÏιÏÏÎÏει οÏίÏμαÏα\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "ΧÏήÏη: audacious [εÏιλογÎÏ] [αÏÏεία] ...\n"
-#~ "\n"
-#~ "ÎÏιλογÎÏ:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "ÎμÏάνιÏη αÏ
ÏÎ¿Ï ÏοÏ
κειμÎνοÏ
και ÎξοδοÏ"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "ÎνεÏγοÏοίηÏη Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID ÏÏοηγοÏÎ¼ÎµÎ½Î·Ï ÏÏ
νεδÏίαÏ"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "ÎÏενεÏγοÏοίηÏη καÏαγÏαÏÎ®Ï ÏÏαλμάÏÏν"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "ÎμÏάνιÏη ÏοÏ
αÏÎ¹Î¸Î¼Î¿Ï ÎκδοÏÎ·Ï ÎºÎ±Î¹ ÎξοδοÏ\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "ΠαÏάθÏ
Ïο διαλÏγοÏ
ÏÏοÏθήκηÏ/ανοίγμαÏÎ¿Ï Î±ÏÏείÏν"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "ÎλείÏιμο ÏοÏ
διαλÏγοÏ
καÏά Ïην ÏÏοÏθήκη"
-
-#~ msgid "Deselect All"
-#~ msgstr "ÎÏοεÏιλογή ÏλÏν"
-
-#, fuzzy
-#~ msgid "Artist Popup"
-#~ msgstr "ÎαλλιÏÎÏνηÏ"
-
-#, fuzzy
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<b>ÎÎνοÏ:</b>"
-
-#, fuzzy
-#~ msgid "<i>Year</i>"
-#~ msgstr "<b>ÎÏοÏ:</b>"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "ÎοÏμεÏο κομμαÏιοÏ"
-
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "ÎιάÏκεια κομμαÏιοÏ:"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/ÎμÏάνιÏη ÏληÏοÏοÏιÏν αÏÏείοÏ
"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/ÎÏÏικοÏοίηÏη/ÎναλÏ
ÏήÏ"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/ÎÏÏικοÏοίηÏη/ΦάÏμα"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/ÎÏÏικοÏοίηÏη/ΦάÏμα"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/ÎÏÏικοÏοίηÏη/ÎλειÏÏή"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ÎανονικÏÏ"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ÎÏαμμÎÏ"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ÎÏάÏεÏ"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ÎοÏÏ
ÏÎÏ"
-
-#~ msgid "/Scope Mode/Dot Scope"
-#~ msgstr "/ΦάÏμα/ΤελείεÏ"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/ÎναλÏ
ÏήÏ/ÎανονικÏÏ"
-
-#, fuzzy
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "ΧÏήÏη ÎÎ±Î½Î¿Î½Î¹ÎºÎ®Ï Î»ÎµÎ¹ÏοÏ
ÏÎ³Î¯Î±Ï ÎµÏιÏήμανÏηÏ"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Î ÏÏÏη αναλÏ
Ïή/ÎÏγή"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Î ÏÏÏη αναλÏ
Ïή/ÎÏγή"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Î ÏÏÏη αναλÏ
Ïή/ÎÎÏη"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Î ÏÏÏη αναλÏ
Ïή/ÎÏήγοÏη"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Î ÏÏÏη αναλÏ
Ïή/ÎÏηγοÏÏÏεÏη"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Î ÏÏÏη κοÏÏ
ÏÏν/ÎÏγή"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Î ÏÏÏη κοÏÏ
ÏÏν/ÎÏγή"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Î ÏÏÏη κοÏÏ
ÏÏν/ÎÎÏη"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Î ÏÏÏη κοÏÏ
ÏÏν/ÎÏήγοÏη"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Î ÏÏÏη κοÏÏ
ÏÏν/ÎÏηγοÏÏÏεÏη"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/ÎεÏάβαÏη Ïε ÏÏÏνο"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/ΠεÏί Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/ÎÏÏεία..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/ΤοÏοθεÏία Înternet..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/ÎÎα λίÏÏα"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "ÎμÏάνιÏη διαÏÏÏιÏÏικÏν ÏÏη λίÏÏα αναÏαÏαγÏγήÏ"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "ΡÏθμιÏη Flac"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/ΦÏÏÏÏÏη/Î ÏοκαθοÏιÏμÎνο"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/ΦÏÏÏÏÏη/Î ÏοεÏιλεγμÎνο"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/ΦÏÏÏÏÏη/ÎηδενικÏ"
-
-#~ msgid "/Save"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη/Preset"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη/Î ÏοκαθοÏιÏμÎνο"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/ÎÏοθήκεÏ
Ïη/Σε αÏÏείο"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/ÎιαγÏαÏή/Î ÏοκαθοÏιÏμÎνο"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "ΦÏÏÏÏÏη αÏ
ÏÏμαÏοÏ
ÏÏοκαθοÏιÏμÎνοÏ
"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "ΦÏÏÏÏÏη ÏÏοκαθοÏιÏμÎνοÏ
ιÏοÏÏαθμιÏÏή"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "ÎιαγÏαÏή ÏÏοκαθοÏιÏμÎνοÏ
ÏοÏ
ÏοÏÏÏνεÏαι αÏ
ÏÏμαÏα"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/ÎμÏάνιÏη αναδÏ
ÏμενÏν ÏληÏοÏοÏιÏν"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά Ïνομα"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/ÎÏαίÏεÏη διÏλÏν/ÎαÏά Ïνομα αÏÏείοÏ
"
-
-#~ msgid "/Update View"
-#~ msgstr "/ÎνανÎÏÏη ÏÏοβολήÏ"
-
-#~ msgid "/Select All"
-#~ msgstr "/ÎÏιλογή ÏλÏν"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά ÏÏονολογία"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά Ïνομα"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά καλλιÏÎÏνη"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά Ïνομα αÏÏείοÏ
"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/ΤαξινÏμηÏη λίÏÏαÏ/ÎαÏά διαδÏομή + Ïνομα αÏÏείοÏ
"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά ÏÏονολογία"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά ÏÏονολογία"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/ΤαξινÏμηÏη εÏιλογήÏ/ÎαÏά καλλιÏÎÏνη"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_ÎιάÏοÏα</b>"
-
-#~ msgid "AudioCompress "
-#~ msgstr "AudioCompress "
-
-#~ msgid "About AudioCompress"
-#~ msgstr "ΠεÏί AudioCompress"
-
-#~ msgid "Ok"
-#~ msgstr "ÎνÏάξει"
-
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
αÏθÏÏμαÏÎ¿Ï LIRC για Ïο Audacious"
-
-#~ msgid "Configure Extra Stereo"
-#~ msgstr "ΡÏθμιÏη ÏÏÏÏθεÏοÏ
ÏÏÎÏεο"
-
-#~ msgid "Effect intensity:"
-#~ msgstr "ÎνÏαÏη εÏÎ:"
-
-#~ msgid "Cancel"
-#~ msgstr "ÎκÏ
Ïο"
-
-#~ msgid "Apply"
-#~ msgstr "ÎÏαÏμογή"
-
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
αÏθÏÏμαÏÎ¿Ï LIRC για Ïο Audacious"
-
-#~ msgid "LIRC Plugin "
-#~ msgstr "Î ÏÏÏθεÏο LIRC"
-
-#~ msgid ""
-#~ "\n"
-#~ "A simple plugin that lets you control\n"
-#~ "Audacious using the LIRC remote control daemon\n"
-#~ "\n"
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the XMMS LIRC plugin by:\n"
-#~ "Carl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "You can get LIRC information at:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-#~ msgstr ""
-#~ "\n"
-#~ "Îνα αÏÎ»Ï ÏÏÏÏθεÏο ÏοÏ
ÏÎ±Ï ÎµÏιÏÏÎÏει να ελÎγÏεÏε\n"
-#~ "Ïο Audacious, ÏÏηÏιμοÏοιÏνÏÎ±Ï Ïο δαίμονα αÏομακÏÏ
ÏμÎÎ½Î·Ï Î´Î¹Î±ÏείÏιÏÎ·Ï ÏοÏ
"
-#~ "LIRC\n"
-#~ "\n"
-#~ "Î ÏοÏαÏμοÏμÎνο για ÏÏήÏη με Ïο Audacious αÏÏ Ïον Tony Vroon "
-#~ "<chainsaw at gentoo.org>\n"
-#~ "βαÏιÏμÎνο ÏÏο ÏÏÏÏθεÏο LIRC ÏοÏ
XMMS αÏÏ ÏοÏ
Ï:\n"
-#~ "arl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "ÎÏοÏείÏε να βÏείÏε ÏληÏοÏοÏÎ¯ÎµÏ ÏÏεÏικÎÏ Î¼Îµ Ïο LIRC ÏÏο:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-
-#~ msgid "LIRC Plugin"
-#~ msgstr "Î ÏÏÏθεÏο LIRC"
-
-#~ msgid "%s: could not init LIRC support\n"
-#~ msgstr "%s: δεν ήÏαν δÏ
ναÏή η αÏÏικοÏοίηÏη ÏÎ·Ï Ï
ÏοÏÏήÏÎ¹Î¾Î·Ï LIRC\n"
-
-#~ msgid ""
-#~ "%s: could not read LIRC config file\n"
-#~ "%s: please read the documentation of LIRC\n"
-#~ "%s: how to create a proper config file\n"
-#~ msgstr ""
-#~ "%s: δεν ήÏαν δÏ
ναÏή η ανάγνÏÏη ÏοÏ
αÏÏείοÏ
ÏÏ
θμίÏεÏν LIRC\n"
-#~ "%s: ÏαÏακαλοÏμε αναÏÏÎξÏε ÏÏην ÏεκμηÏίÏÏη ÏοÏ
LIRC\n"
-#~ "%s: για Ïο ÏÏÏ Î½Î± δημιοÏ
ÏγήÏεÏε Îνα ÎγκÏ
Ïο αÏÏείο ÏÏ
θμίÏεÏν\n"
-
-#~ msgid "%s: unknown command \"%s\"\n"
-#~ msgstr "%s: άγνÏÏÏη ενÏολή \"%s\"\n"
-
-#~ msgid "%s: disconnected from LIRC\n"
-#~ msgstr "%s: αÏοÏÏ
νδÎθηκε αÏÏ Ïο LIRC\n"
-
-#~ msgid "Username:"
-#~ msgstr "Îνομα ÏÏήÏÏη:"
-
-#~ msgid "Password:"
-#~ msgstr "ÎÏδικÏÏ ÏÏÏÏβαÏηÏ:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
ÎÏθÏÏμαÏÎ¿Ï ESounD"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "ÎιαÏειÏιÏÏÎ®Ï ÏÏÏÏθεÏÏν λειÏοÏ
ÏγιÏν"
-
-#~ msgid "Song Change %s"
-#~ msgstr "Îλλαγή ÏÏαγοÏ
Î´Î¹Î¿Ï %s"
-
-#~ msgid "Commands"
-#~ msgstr "ÎνÏολÎÏ"
-
-#~ msgid "Command to run when Audacious starts a new song."
-#~ msgstr "ÎνÏολή ÏÏÎ¿Ï ÎµÎºÏÎλεÏη ÏÏαν Ïο Audacious ξεκινά Îνα νÎο ÏÏαγοÏδι."
-
-#~ msgid "Command:"
-#~ msgstr "ÎνÏολή:"
-
-#~ msgid "Command to run toward the end of a song."
-#~ msgstr "ÎνÏολή ÏÏÎ¿Ï ÎµÎºÏÎλεÏη καÏά Ïο ÏÎÎ»Î¿Ï ÎµÎ½ÏÏ ÏÏαγοÏ
διοÏ."
-
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr ""
-#~ "ÎνÏολή ÏÏÎ¿Ï ÎµÎºÏÎλεÏη ÏÏαν Ïο Audacious ÏÏάÏει ÏÏο ÏÎÎ»Î¿Ï ÏÎ·Ï Î»Î¯ÏÏÎ±Ï "
-#~ "αναÏαÏαγÏγήÏ."
-
-#~ msgid ""
-#~ "You can use the following format strings which\n"
-#~ "will be substituted before calling the command\n"
-#~ "(not all are useful for the end-of-playlist command).\n"
-#~ "\n"
-#~ "%%F: Frequency (in hertz)\n"
-#~ "%%c: Number of channels\n"
-#~ "%%f: filename (full path)\n"
-#~ "%%l: length (in milliseconds)\n"
-#~ "%%n or %%s: Song name\n"
-#~ "%%r: Rate (in bits per second)\n"
-#~ "%%t: Playlist position (%%02d)\n"
-#~ "%%p: Currently playing (1 or 0)"
-#~ msgstr ""
-#~ "ÎÏοÏείÏε να ÏÏηÏιμοÏοιήÏεÏε Ïα ακÏλοÏ
θα ÏÏοιÏεία\n"
-#~ "μοÏÏοÏοίηÏÎ·Ï ÏοÏ
θα ανÏικαÏαÏÏαθοÏν καÏά Ïην\n"
-#~ "εκÏÎλεÏη ÏÎ·Ï ÎµÎ½ÏÎ¿Î»Î®Ï (δεν είναι Ïλα ÏÏήÏιμα για μια\n"
-#~ "ενÏολή ÏÎλοÏ
Ï Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ).\n"
-#~ "\n"
-#~ "%%F: ΣÏ
ÏνÏÏηÏα (Ïε hertz)\n"
-#~ "%%c: ÎÏιθμÏÏ ÎºÎ±Î½Î±Î»Î¹Ïν\n"
-#~ "%%f: Ïνομα αÏÏείοÏ
(ÏλήÏÎ·Ï Î´Î¹Î±Î´Ïομή)\n"
-#~ "%%l: Î¼Î®ÎºÎ¿Ï (Ïε milliseconds)\n"
-#~ "%%n ή %%s: ΤίÏÎ»Î¿Ï ÏÏαγοÏ
διοÏ\n"
-#~ "%%r: ΡÏ
θμÏÏ Î´Î¹ÎµÎ³Î¼Î±ÏοληÏÎ¯Î±Ï (bps)\n"
-#~ "%%t: ÎÎÏη λίÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏÎ³Î®Ï (%%02d)\n"
-#~ "%%p: Îν γίνεÏαι αναÏαÏαγÏγή (1 or 0)"
-
-#~ msgid "About "
-#~ msgstr "ΠεÏί"
-
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "AMIDI-Plug - ÏÏοειδοÏοίηÏη"
-
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "AMIDI-Plug - εÏιλογή αÏÏείοÏ
"
-
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "AMIDI-Plug - ÏÏθμιÏη"
-
-#~ msgid "AMIDI-Plug message"
-#~ msgstr "ÎήνÏ
μα AMIDI-Plug"
-
-#~ msgid "Please stop the player before changing AMIDI-Plug settings."
-#~ msgstr ""
-#~ "ΠαÏÎ±ÎºÎ±Î»Ï ÏÏαμαÏήÏÏε Ïην αναÏαÏαγÏγή ÏÏιν αλλάξεÏε ÏÎ¹Ï ÏÏ
θμίÏÎµÎ¹Ï ÏοÏ
AMIDI-"
-#~ "Plug."
-
-#~ msgid "Name:"
-#~ msgstr "Îνομα:"
-
-#~ msgid " MIDI Info "
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ MIDI"
-
-#~ msgid "Length (msec):"
-#~ msgstr "ÎιάÏκεια (msec):"
-
-#~ msgid "Num of Tracks:"
-#~ msgstr "ÎÏιθμÏÏ ÎºÎ¿Î¼Î¼Î±ÏιÏν:"
-
-#~ msgid "variable"
-#~ msgstr "μεÏαβληÏÏ"
-
-#~ msgid "BPM:"
-#~ msgstr "BPM:"
-
-#~ msgid "BPM (wavg):"
-#~ msgstr "BPM (wavg):"
-
-#, fuzzy
-#~ msgid "Time Div:"
-#~ msgstr "DIV container"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "Î ÏÏÏθεÏο CD ήÏοÏ
"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "ÎομμάÏι CD ήÏοÏ
%02u"
-
-#~ msgid "(unknown)"
-#~ msgstr "(άγνÏÏÏο)"
-
-#~ msgid "Drive %d"
-#~ msgstr "ΣÏ
ÏκεÏ
ή %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Îεν ήÏαν δÏ
ναÏÏ Ïο άνοιγμα ÏÎ·Ï ÏÏ
ÏκεÏ
Î®Ï %s\n"
-#~ "ΣÏάλμα: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Îεν ήÏαν δÏ
ναÏή η ανάγνÏÏη ÏοÏ
\"Πίνακα ΠεÏιεÏομÎνÏν\"\n"
-#~ "ÎήÏÏÏ Î´ÎµÎ½ Ï
ÏάÏÏει δίÏÎºÎ¿Ï ÏÏη ÏÏ
ÏκεÏ
ή;\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "ΣÏ
ÏκεÏ
ή %s OK.\n"
-#~ "ΠδίÏÎºÎ¿Ï ÎÏει %d κομμάÏια"
-
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d κομμάÏια δεδομÎνÏν)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ΣÏ
νολική διάÏκεια: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "Î ÏηÏιακή εξαγÏγή ήÏοÏ
δε δοκιμάÏÏηκε, καθÏÏ Î¿ δίÏÎºÎ¿Ï Î´ÎµÎ½ ÎÏει κομμάÏια "
-#~ "ήÏοÏ
\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Îοκιμή ÏηÏÎ¹Î±ÎºÎ®Ï ÎµÎ¾Î±Î³ÏÎ³Î®Ï Î®ÏοÏ
: ενÏάξει\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Îοκιμή ÏηÏÎ¹Î±ÎºÎ®Ï ÎµÎ¾Î±Î³ÏÎ³Î®Ï Î®ÏοÏ
αÏÎÏÏ
Ïε: %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 Ï
ÏάÏÏει αλλά δεν είναι καÏάλογοÏ"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "ÎαÏÎ¬Î»Î¿Î³Î¿Ï %s ενÏάξει"
-
-#~ msgid "Device:"
-#~ msgstr "ΣÏ
ÏκεÏ
ή:"
-
-#~ msgid "_Device:"
-#~ msgstr "_ΣÏ
ÏκεÏ
ή:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "ÎαÏ_άλογοÏ:"
-
-#~ msgid "Play mode:"
-#~ msgstr "ÎÎÎ¸Î¿Î´Î¿Ï Î±Î½Î±ÏαÏαγÏγήÏ:"
-
-#~ msgid "Analog"
-#~ msgstr "ÎναλογικÏÏ"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "ΨηÏιακή αναÏαÏαγÏγή ήÏοÏ
"
-
-#~ msgid "No mixer"
-#~ msgstr "Îεν Ï
ÏάÏÏει μείκÏηÏ"
-
-#~ msgid "CDROM drive"
-#~ msgstr "ΣÏ
ÏκεÏ
ή CDROM"
-
-#~ msgid "OSS mixer"
-#~ msgstr "MείκÏÎ·Ï OSS"
-
-#~ msgid "Check drive..."
-#~ msgstr "ÎλεγÏÎ¿Ï ÏÏ
ÏκεÏ
ήÏ..."
-
-#~ msgid "Remove drive"
-#~ msgstr "ÎÏαίÏεÏη ÏÏ
ÏκεÏ
ήÏ"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "ΠαÏαμεÏÏοÏοίηÏη αναÏαÏαγÏγÎα CD ήÏοÏ
"
-
-#~ msgid "Add drive"
-#~ msgstr "Î ÏοÏθήκη ÏÏ
ÏκεÏ
ήÏ"
-
-#~ msgid "Device"
-#~ msgstr "ΣÏ
ÏκεÏ
ή"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "ΧÏήÏη CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "ÎνάκÏηÏη λίÏÏÎ±Ï Î´Î¹Î±ÎºÎ¿Î¼Î¹ÏÏÏν"
-
-#~ msgid "Show network window"
-#~ msgstr "ÎμÏάνιÏη ÏαÏαθÏÏοÏ
δικÏÏοÏ
"
-
-#~ msgid "CDDB server:"
-#~ msgstr "ÎιακομιÏÏÎ®Ï CDDB:"
-
-#~ msgid "CD Index:"
-#~ msgstr "CD Index:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "ΧÏήÏη CD Index"
-
-#~ msgid "CD Index server:"
-#~ msgstr "ÎιακομιÏÏÎ®Ï CD Index:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "ΠαÏάκαμÏη γενικÏν ÏίÏλÏν"
-
-#~ msgid "Name format:"
-#~ msgstr "ÎοÏÏή ονÏμαÏÎ¿Ï Î±ÏÏείοÏ
:"
-
-#~ msgid "CD Info"
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ CD"
-
-#~ msgid "About the Console Music Decoder"
-#~ msgstr "ΠεÏί ÏÎ·Ï ÎºÎ¿Î½ÏÏÎ»Î±Ï Î±ÏοκÏδικοÏοίηÏÎ·Ï Î®ÏοÏ
"
-
-#~ msgid ""
-#~ "Console music decoder engine based on Game_Music_Emu 0.3.0.\n"
-#~ "Audacious implementation by: William Pitcock <nenolod at nenolod.net>, \n"
-#~ " Shay Green <hotpop.com at blargg>"
-#~ msgstr ""
-#~ "ÎονÏÏλα αÏοκÏδικοÏοίηÏÎ·Ï ÏοÏ
ήÏοÏ
βαÏιÏμÎνη ÏÏο Game_Music_Emu 0.3.0.\n"
-#~ "ΥλοÏοίηÏη για Ïο Audacious αÏÏ Ïον: William Pitcock <nenolod at nenolod."
-#~ "net>, \n"
-#~ " Shay Green <hotpop.com at blargg>"
-
-#~ msgid "SPC, VGM, NSF/NSFE, GBS, and GYM module decoder"
-#~ msgstr "ÎÏοκÏδικοÏοιηÏÎ®Ï SPC, VGM, NSF/NSFE, GBS, και GYM"
-
-#~ msgid "Arabic (IBM-864)"
-#~ msgstr "ÎÏαβική (IBM-864)"
-
-#~ msgid "Arabic (ISO-8859-6)"
-#~ msgstr "ÎÏαβική (ISO-_8859-6)"
-
-#~ msgid "Arabic (Windows-1256)"
-#~ msgstr "ÎÏαβική (Windows-1256)"
-
-#~ msgid "Baltic (ISO-8859-13)"
-#~ msgstr "ÎαλÏÎ¹ÎºÎ®Ï (ISO-8859-13)"
-
-#~ msgid "Baltic (ISO-8859-4)"
-#~ msgstr "ÎαλÏÎ¹ÎºÎ®Ï (ISO-8859-4)"
-
-#~ msgid "Baltic (Windows-1257)"
-#~ msgstr "ÎαλÏÎ¹ÎºÎ®Ï (Windows-1257)"
-
-#~ msgid "Celtic (ISO-8859-14)"
-#~ msgstr "ÎελÏική (ISO-8859-14)"
-
-#~ msgid "Central European (IBM-852)"
-#~ msgstr "ÎενÏÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (IBM-852)"
-
-#~ msgid "Central European (ISO-8859-2)"
-#~ msgstr "ÎενÏÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (ISO-8859-2)"
-
-#~ msgid "Central European (Windows-1250)"
-#~ msgstr "ÎενÏÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (Windows-1250)"
-
-#~ msgid "Chinese Simplified (GB18030)"
-#~ msgstr "ÎÏλοÏοιημÎνη ÎινÎζικη (GB18030)"
-
-#~ msgid "Chinese Simplified (GB2312)"
-#~ msgstr "ÎÏλοÏοιημÎνη ÎινÎζικη (GB2312)"
-
-#~ msgid "Chinese Traditional (Big5)"
-#~ msgstr "ΠαÏαδοÏιακή ÎινÎζικη (Big5)"
-
-#~ msgid "Chinese Traditional (Big5-HKSCS)"
-#~ msgstr "ΠαÏαδοÏιακή ÎινÎζικη (Big5-HKSCS)"
-
-#~ msgid "Cyrillic (IBM-855)"
-#~ msgstr "ÎÏ
Ïιλλική (IBM-855)"
-
-#~ msgid "Cyrillic (ISO-8859-5)"
-#~ msgstr "ÎÏ
Ïιλλική (ISO-8859-5)"
-
-#~ msgid "Cyrillic (ISO-IR-111)"
-#~ msgstr "ÎÏ
Ïιλλική (ISO-IR-111)"
-
-#~ msgid "Cyrillic (KOI8-R)"
-#~ msgstr "ÎÏ
Ïιλλική (KOI8-R)"
-
-#~ msgid "Cyrillic (Windows-1251)"
-#~ msgstr "ÎÏ
Ïιλλική (Windows-1251)"
-
-#~ msgid "Cyrillic/Russian (CP-866)"
-#~ msgstr "ÎÏ
Ïιλλική/ΡÏÏικη (CP-866)"
-
-#~ msgid "Cyrillic/Ukrainian (KOI8-U)"
-#~ msgstr "ÎÏ
Ïιλλική/ÎÏ
κÏανική (KOI8-U)"
-
-#~ msgid "English (US-ASCII)"
-#~ msgstr "Îγγλική (US-ASCII)"
-
-#~ msgid "Greek (ISO-8859-7)"
-#~ msgstr "Îλληνική (ISO-8859-7)"
-
-#~ msgid "Greek (Windows-1253)"
-#~ msgstr "Îλληνική (Windows-1253)"
-
-#~ msgid "Hebrew (IBM-862)"
-#~ msgstr "ÎβÏαÏκή (IBM-862)"
-
-#~ msgid "Hebrew (Windows-1255)"
-#~ msgstr "ÎβÏαÏκή (Windows-1255)"
-
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "ÎαÏÏνÎζικη (EUC-JP)"
-
-#~ msgid "Japanese (ISO-2022-JP)"
-#~ msgstr "ÎαÏÏνÎζικη (ISO-2022-JP)"
-
-#~ msgid "Japanese (Shift_JIS)"
-#~ msgstr "ÎαÏÏνÎζικη (Shift-JIS)"
-
-#~ msgid "Korean (EUC-KR)"
-#~ msgstr "ÎοÏεάÏικη (EUC-KR)"
-
-#~ msgid "Nordic (ISO-8859-10)"
-#~ msgstr "Σκανδιναβική (ISO-8859-10)"
-
-#~ msgid "South European (ISO-8859-3)"
-#~ msgstr "ÎÏÏÎ¹Î±Ï ÎÏ
ÏÏÏÎ·Ï (ISO-8859-3)"
-
-#~ msgid "Thai (TIS-620)"
-#~ msgstr "ΤαÏλανδÎζικη (TIS-_620)"
-
-#~ msgid "Turkish (IBM-857)"
-#~ msgstr "ΤοÏ
Ïκική (IBM-857)"
-
-#~ msgid "Turkish (ISO-8859-9)"
-#~ msgstr "ΤοÏÏκικη (ISO-8859-9)"
-
-#~ msgid "Turkish (Windows-1254)"
-#~ msgstr "ΤοÏ
Ïκική (Windows-1254)"
-
-#~ msgid "Unicode (UTF-7)"
-#~ msgstr "Unicode (UTF-7)"
-
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "Unicode (UTF-8)"
-
-#~ msgid "Unicode (UTF-16BE)"
-#~ msgstr "Unicode (UTF-16BE)"
-
-#~ msgid "Unicode (UTF-16LE)"
-#~ msgstr "Unicode (UTF-16LE)"
-
-#~ msgid "Unicode (UTF-32BE)"
-#~ msgstr "Unicode (UTF-32BE)"
-
-#~ msgid "Unicode (UTF-32LE)"
-#~ msgstr "Unicode (UTF-32bE)"
-
-#~ msgid "Vietnamese (VISCII)"
-#~ msgstr "ÎιεÏναμÎζικη (VISCII)"
-
-#~ msgid "Vietnamese (Windows-1258)"
-#~ msgstr "ÎιεÏναμÎζικη (Windows-1258)"
-
-#~ msgid "Visual Hebrew (ISO-8859-8)"
-#~ msgstr "ÎÏÏική ÎβÏαÏκή (ISO-8859-8)"
-
-#~ msgid "Western (IBM-850)"
-#~ msgstr "ÎÏ
ÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (IBM-850)"
-
-#~ msgid "Western (ISO-8859-1)"
-#~ msgstr "ÎÏ
ÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (ISO-8859-1)"
-
-#~ msgid "Western (ISO-8859-15)"
-#~ msgstr "ÎÏ
ÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (ISO-8859-15)"
-
-#~ msgid "Western (Windows-1252)"
-#~ msgstr "ÎÏ
ÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (Windows-1252)"
-
-#~ msgid "Arabic (IBM-864-I)"
-#~ msgstr "ÎÏαβική (IBM-864-I)"
-
-#~ msgid "Arabic (ISO-8859-6-E)"
-#~ msgstr "ÎÏαβική (ISO-8859-6-E)"
-
-#~ msgid "Arabic (ISO-8859-6-I)"
-#~ msgstr "ÎÏαβική (ISO-_8859-6-I)"
-
-#~ msgid "Arabic (MacArabic)"
-#~ msgstr "ÎÏαβική (MacArabic)"
-
-#~ msgid "Armenian (ARMSCII-8)"
-#~ msgstr "ÎÏμενική (ARMSCII-8)"
-
-#~ msgid "Central European (MacCE)"
-#~ msgstr "ÎενÏÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (MacCE)"
-
-#~ msgid "Chinese Simplified (GBK)"
-#~ msgstr "ÎÏλοÏοιημÎνη ÎινÎζικη (GBK)"
-
-#~ msgid "Chinese Simplified (HZ)"
-#~ msgstr "ÎÏλοÏοιημÎνη ÎινÎζικη (HZ)"
-
-#~ msgid "Chinese Traditional (EUC-TW)"
-#~ msgstr "ΠαÏαδοÏιακή ÎινÎζικη (EUC-TW)"
-
-#~ msgid "Croatian (MacCroatian)"
-#~ msgstr "ÎÏοαÏική (MacCroatian)"
-
-#~ msgid "Cyrillic/Ukrainian (MacUkrainian)"
-#~ msgstr "ÎÏ
Ïιλλική/ÎÏ
κÏανική (MacUcrainian)"
-
-#~ msgid "Farsi (MacFarsi)"
-#~ msgstr "ΠεÏÏική (MacFarsi)"
-
-#~ msgid "Greek (MacGreek)"
-#~ msgstr "Îλληνική (MacGreek)"
-
-#~ msgid "Gujarati (MacGujarati)"
-#~ msgstr "Gujarati (MacGujarati)"
-
-#~ msgid "Gurmukhi (MacGurmukhi)"
-#~ msgstr "Gurmukhi (MacGurmukhi)"
-
-#~ msgid "Hebrew (ISO-8859-8-E)"
-#~ msgstr "ÎβÏαÏκή (ISO-8859-8-E)"
-
-#~ msgid "Hebrew (ISO-8859-8-I)"
-#~ msgstr "ÎβÏαÏκή (ISO-8859-8-I)"
-
-#~ msgid "Hebrew (MacHebrew)"
-#~ msgstr "ÎβÏαÏκή (MacHebrew)"
-
-#~ msgid "Hindi (MacDevanagari)"
-#~ msgstr "Îνδική (MacDevanagari)"
-
-#~ msgid "Icelandic (MacIcelandic)"
-#~ msgstr "ÎÏλανδική (MacIcelandic)"
-
-#~ msgid "Korean (JOHAB)"
-#~ msgstr "ÎοÏεάÏικη (JOHAB)"
-
-#~ msgid "Korean (UHC)"
-#~ msgstr "ÎοÏεάÏικη (UHC)"
-
-#~ msgid "Romanian (MacRomanian)"
-#~ msgstr "ΡοÏ
μάνικη (MacRomanian)"
-
-#~ msgid "Turkish (MacTurkish)"
-#~ msgstr "ΤοÏ
Ïκική (MacTurkish)"
-
-#~ msgid "User Defined"
-#~ msgstr "ÎαθοÏιÏμÎνη αÏÏ Ïο ΧÏήÏÏη"
-
-#~ msgid "Vietnamese (TCVN)"
-#~ msgstr "ÎιεÏναμÎζικη (TCVN)"
-
-#~ msgid "Vietnamese (VPS)"
-#~ msgstr "ÎιεÏναμÎζικη (VPS)"
-
-#~ msgid "Western (MacRoman)"
-#~ msgstr "ÎÏ
ÏÎ¹ÎºÎ®Ï ÎÏ
ÏÏÏÎ·Ï (MacRoman)"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "ÎÏιλÎξÏε Ïον καÏάλογο ÏοÏ
θÎλεÏε να αÏοθηκεÏ
ÏοÏν Ïα MPEG streams:"
-
-#~ msgid "Tag Handling"
-#~ msgstr "ΧειÏιÏμÏÏ ÎµÏικεÏÏν"
-
-#~ msgid "Convert character set from :"
-#~ msgstr "ÎεÏαÏÏοÏή ÏÏ
νÏλοÏ
ÏαÏακÏήÏÏν αÏÏ :"
-
-#~ msgid "to :"
-#~ msgstr "ÏÏÎ¿Ï :"
-
-#~ msgid "Enable ReplayGain processing"
-#~ msgstr "ÎνεÏγοÏοίηÏη εÏεξεÏγαÏÎ¯Î±Ï ReplayGain"
-
-#~ msgid "Resolution"
-#~ msgstr "ÎνάλÏ
Ïη"
-
-#~ msgid "Without ReplayGain"
-#~ msgstr "ΧÏÏÎ¯Ï ReplayGain"
-
-#~ msgid "With ReplayGain"
-#~ msgstr "Îε ReplayGain"
-
-#, fuzzy
-#~ msgid "Enable dithering"
-#~ msgstr "ÎνεÏγοÏοίηÏη Java"
-
-#~ msgid "Noise shaping"
-#~ msgstr "ÎιαμÏÏÏÏÏη θοÏÏβοÏ
"
-
-#~ msgid "high"
-#~ msgstr "Ï
ÏηλÏ"
-
-#, fuzzy
-#~ msgid "Dither to"
-#~ msgstr "Î ÏοÏ/ÎÏÏ"
-
-#~ msgid "16 bps"
-#~ msgstr "16 bps"
-
-#~ msgid "24 bps"
-#~ msgstr "24 bps"
-
-#~ msgid "Output"
-#~ msgstr "ÎξοδοÏ"
-
-#~ msgid "Buffering:"
-#~ msgstr "ΦÏÏÏÏμα:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï buffer (kb):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "Î Ïο-ÏÏÏÏÏμα (ÏοÏοÏÏÏ):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "ÎÏοθήκεÏ
Ïη ÏοÏ
stream ÏÏο δίÏκο:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "ÎÏοθήκεÏ
Ïη ÏοÏ
stream ÏÏο δίÏκο"
-
-#~ msgid "Path:"
-#~ msgstr "ÎιαδÏομή:"
-
-#~ msgid "Browse"
-#~ msgstr "ΠεÏιήγηÏη"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Streaming"
-#~ msgstr "Streaming"
-
-#~ msgid "About Flac Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
αÏθÏÏμαÏÎ¿Ï Flac"
-
-#~ msgid ""
-#~ "Flac Plugin by Josh Coalson\n"
-#~ "contributions by\n"
-#~ "......\n"
-#~ "......\n"
-#~ "and\n"
-#~ "Daisuke Shimamura\n"
-#~ "Visit http://flac.sourceforge.net/"
-#~ msgstr ""
-#~ "Î ÏÏÏθεÏο Flac αÏÏ Ïον Josh Coalson\n"
-#~ "ÏÏ
νειÏÏοÏÎÏ Î±ÏÏ\n"
-#~ "......\n"
-#~ "......\n"
-#~ "και\n"
-#~ "Daisuke Shimamura\n"
-#~ "ÎÏιÏκεÏÏείÏε Ïο http://flac.sourceforge.net/"
-
-#~ msgid "Alt"
-#~ msgstr "Alt"
-
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "ΡÏ
θμÏÏ Î´ÎµÎ¹Î³Î¼Î±ÏοληÏίαÏ: %d Hz"
-
-#~ msgid "Channels: %d"
-#~ msgstr "Îανάλια: %d"
-
-#~ msgid "Bits/Sample: %d"
-#~ msgstr "Bits/Îείγμα: %d"
-
-#~ msgid "Blocksize: %d"
-#~ msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï Î¼Ïλοκ: %d"
-
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "ÎείγμαÏα: %llu\n"
-#~ "ÎιάÏκεια: %d:%.2d"
-
-#~ msgid "Filesize: %ld B"
-#~ msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï Î±ÏÏείοÏ
: %ld B"
-
-#~ msgid ""
-#~ "Avg. bitrate: %.1f kb/s\n"
-#~ "Compression ratio: %.1f%%"
-#~ msgstr ""
-#~ "ÎÎÏο bitrate: %.1f kb/s\n"
-#~ "ÎαθμÏÏ ÏÏ
μÏίεÏηÏ: %.1f%%"
-
-#~ msgid "Tag:"
-#~ msgstr "ÎÏικÎÏα:"
-
-#~ msgid "Comment:"
-#~ msgstr "ΣÏÏλιο:"
-
-#~ msgid "Date:"
-#~ msgstr "ÎμεÏομηνία:"
-
-#~ msgid "Track number:"
-#~ msgstr "ÎÏιθμÏÏ ÎºÎ¿Î¼Î¼Î±ÏιοÏ:"
-
-#~ msgid "Genre:"
-#~ msgstr "ÎίδοÏ:"
-
-#~ msgid "Remove Tag"
-#~ msgstr "ÎιαγÏαÏή εÏικÎÏαÏ"
-
-#~ msgid "FLAC Info:"
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ FLAC:"
-
-#~ msgid "Error"
-#~ msgstr "ΣÏάλμα"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "ÎÎÎÎÎΤÎΣΠ%s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Îεν ήÏαν δÏ
ναÏή η εÏÏεÏη ÏοÏ
%s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "ΣΥÎÎÎΣΠΣΤΠ%s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Îεν ήÏαν δÏ
ναÏή η ÏÏνδεÏη ÏÏο %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "ΣΥÎÎÎÎÎÎÎ: ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎΤÎΣÎ"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Îεν ήÏαν δÏ
ναÏή η ÏÏνδεÏη ÏÏο %s\n"
-#~ "ΠδιακομιÏÏÎ®Ï Î±Î½ÎÏεÏε: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "ΠΡÎ-ΦÎΡΤΩÎÎ: %dKB/%dKB"
-
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "Î ÏÏÏθεÏο ήÏοÏ
FLAC"
-
-#~ msgid "ModPlug Configuration"
-#~ msgstr "ΡÏθμιÏη ModPlug"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bit"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bit"
-
-#~ msgid "Mono (downmix)"
-#~ msgstr "ÎονοÏÏÎ½Î¹ÎºÏ (ÏÏνθεÏη)"
-
-#~ msgid "Resampling"
-#~ msgstr "ÎÏαναδειγμαÏοληÏία "
-
-#~ msgid "Nearest (fastest)"
-#~ msgstr "ÎονÏινÏÏεÏο (γÏηγοÏÏÏεÏο)"
-
-#~ msgid "Linear (fast)"
-#~ msgstr "ÎÏÎ±Î¼Î¼Î¹ÎºÏ (γÏήγοÏο)"
-
-#~ msgid "Spline (good quality)"
-#~ msgstr "Spline (καλή ÏοιÏÏηÏα)"
-
-#~ msgid "8-tap Fir (extremely high quality)"
-#~ msgstr "8-tap Fir (εξαιÏεÏικά Ï
Ïηλή ÏοιÏÏηÏα)"
-
-#~ msgid "Use Filename as Song Title"
-#~ msgstr "ΧÏήÏη ονÏμαÏÎ¿Ï Î±ÏÏείοÏ
για ÏίÏλο ÏÏαγοÏ
διοÏ"
-
-#~ msgid "Fast Playlist Info"
-#~ msgstr "ÎÏήγοÏÎµÏ ÏληÏοÏοÏÎ¯ÎµÏ Î»Î¯ÏÏÎ±Ï Î±Î½Î±ÏαÏαγÏγήÏ"
-
-#~ msgid "Noise Reduction"
-#~ msgstr "ÎείÏÏη θοÏÏβοÏ
"
-
-#~ msgid "Play Amiga MOD"
-#~ msgstr "ÎναÏαÏαγÏγή Amiga MOD"
-
-#~ msgid "Depth"
-#~ msgstr "ÎάθοÏ"
-
-#~ msgid "Delay"
-#~ msgstr "ÎαθÏ
ÏÏÎÏηÏη"
-
-#~ msgid "Bass Boost"
-#~ msgstr "ÎθηÏη μÏάÏÏν"
-
-#~ msgid "Amount"
-#~ msgstr "ΠοÏÏÏηÏα"
-
-#~ msgid "Range"
-#~ msgstr "ÎÏÏοÏ"
-
-#~ msgid ""
-#~ "Note: Setting the preamp too high may cause\n"
-#~ "clipping / distortion!"
-#~ msgstr ""
-#~ "ΣημείÏÏη: ÎÏίζονÏÎ±Ï Ïην ÏÏοενίÏÏÏ
Ïη ÏÎ¿Î»Ï Ïηλά μÏοÏεί\n"
-#~ "να ÏÏοκληθεί ÏαÏαμÏÏÏÏÏη / ÏκÏαÏÏαÏίÏμαÏα!"
-
-#~ msgid "Looping"
-#~ msgstr "ÎÏανάληÏη"
-
-#~ msgid "Loop"
-#~ msgstr "ÎÏανάληÏη"
-
-#~ msgid "time(s)"
-#~ msgstr "ÏοÏά(ÎÏ)"
-
-#~ msgid "Loop forever"
-#~ msgstr "ÎÏÎÏμÏν βÏÏγÏοÏ"
-
-#~ msgid "OK"
-#~ msgstr "ÎνÏάξει"
-
-#~ msgid "MOD Info"
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ MOD"
-
-#~ msgid ""
-#~ "Filename:\n"
-#~ "Title:\n"
-#~ "Type:\n"
-#~ "Length:\n"
-#~ "Speed:\n"
-#~ "Tempo:\n"
-#~ "Samples:\n"
-#~ "Instruments:\n"
-#~ "Patterns:\n"
-#~ "Channels:"
-#~ msgstr ""
-#~ "Îνομα αÏÏείοÏ
:\n"
-#~ "ΤίÏλοÏ:\n"
-#~ "ΤÏÏοÏ:\n"
-#~ "ÎιάÏκεια:\n"
-#~ "ΤαÏÏÏηÏα:\n"
-#~ "ΤÎμÏο:\n"
-#~ "ÎείγμαÏα:\n"
-#~ "ÎÏγανα:\n"
-#~ "ÎοÏίβα:\n"
-#~ "Îανάλια:"
-
-#~ msgid "Samples"
-#~ msgstr "ÎείγμαÏα"
-
-#~ msgid "Instruments"
-#~ msgstr "ÎÏγανα"
-
-#~ msgid "Message"
-#~ msgstr "ÎήνÏ
μα"
-
-#~ msgid "Modplug Input Plugin for Audacious ver"
-#~ msgstr "Î ÏÏÏθεÏο ειÏαγÏÎ³Î®Ï modplug για Ïο Audacious εκδοÏη"
-
-#~ msgid ""
-#~ "\n"
-#~ "Modplug sound engine written by Olivier Lapicque.\n"
-#~ "XMMS interface for Modplug by Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque and Kenton Varda.\n"
-#~ "Updates and Maintainance by Konstanty Bialkowski.\n"
-#~ "Ported to BMP by Theofilos Intzoglou."
-#~ msgstr ""
-#~ "\n"
-#~ "ÎηÏανή ήÏοÏ
modplug αÏÏ Ïον Olivier Lapicque.\n"
-#~ "ÎιεÏαÏή modplug για Ïο XMMS αÏÏ Ïον Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque και Kenton Varda.\n"
-#~ "ÎνημεÏÏÏÎµÎ¹Ï ÎºÎ±Î¹ ÏÏ
νÏήÏηÏη αÏÏ Ïον Konstanty Bialkowski.\n"
-#~ "ÎεÏαÏÎÏθηκε ÏÏο BMP αÏÏ Ïον ÎεÏÏιλο ÎνÏζÏγλοÏ
."
-
-#~ msgid "About Modplug"
-#~ msgstr "ΠεÏί ÏοÏ
αÏθÏÏμαÏÎ¿Ï ModPlug"
-
-#~ msgid "Couldn't find pixmap file: %s"
-#~ msgstr "Το αÏÏείο εικÏÎ½Î±Ï Î´Îµ βÏÎθηκε : %s"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "ΠαÏαμεÏÏοÏοίηÏη ÏÏοÏθÎÏοÏ
MPEG ήÏοÏ
"
-
-#~ msgid "Resolution:"
-#~ msgstr "ÎνάλÏ
Ïη:"
-
-#~ msgid "Channels:"
-#~ msgstr "Îανάλια:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Stereo (αν είναι διαθÎÏιμο)"
-
-#~ msgid "Down sample:"
-#~ msgstr "ÎείÏÏη δειγμαÏοληÏίαÏ:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 kHz)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 kHz)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 kHz)"
-
-#~ msgid "Decoder"
-#~ msgstr "ÎÏοκÏδικοÏοιηÏήÏ"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "ÎÏικÎÏÎµÏ ID3:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "ÎοÏÏή ID3:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Joint stereo"
-
-#~ msgid "Dual channel"
-#~ msgstr "ÎιÏÎ»Ï ÎºÎ±Î½Î¬Î»Î¹"
-
-#~ msgid "Single channel"
-#~ msgstr "ÎÎ¿Î½Ï ÎºÎ±Î½Î¬Î»Î¹"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d KBit/s"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Hz"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 ms"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "ÎÏι"
-
-#~ msgid "Yes"
-#~ msgstr "Îαι"
-
-#~ msgid " MPEG Info "
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ MPEG "
-
-#~ msgid "MPEG Level:"
-#~ msgstr "ΤÏÏÎ¿Ï MPEG:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Bit rate:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "ΡÏ
θμÏÏ Î´ÎµÎ¹Î³Î¼Î±ÏοληÏίαÏ:"
-
-#~ msgid "File size:"
-#~ msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï Î±ÏÏείοÏ
:"
-
-#~ msgid "Mode:"
-#~ msgstr "ÎαÏάÏÏαÏη: "
-
-#~ msgid "Error Protection:"
-#~ msgstr "Î ÏοÏÏαÏία ÏÏαλμάÏÏν:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Copyright:"
-
-#~ msgid "Original:"
-#~ msgstr "ÎÏ
θενÏικÏ:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "ÎμÏαÏη:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr "ÎÏικÎÏα ID3"
-
-#~ msgid "Year:"
-#~ msgstr "ÎÏοÏ:"
-
-#~ msgid "N/A"
-#~ msgstr "N/A"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu Bytes"
-
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Îεν ήÏαν δÏ
ναÏή η ÏÏνδεÏη ÏÏον Ï
ÏολογιÏÏή %s:%d"
-
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "ΠΡÎ-ΦÎΡΤΩÎÎ: %zuKB/%zuKB"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
ÏÏÏÏθεÏοÏ
ήÏοÏ
MPEG"
-
-#~ msgid ""
-#~ "Audacious decoding engine by William Pitcock <nenolod at nenolod.net>, "
-#~ "derived from:\n"
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Derived partially from mpg123 0.59s.mc3 as well.\n"
-#~ "Based on the original XMMS plugin."
-#~ msgstr ""
-#~ "ÎηÏανή αÏοκÏδικοÏοίηÏÎ·Ï Audacious ÏοÏ
William Pitcock <nenolod at nenolod."
-#~ "net>, ÏοÏ
ÏÏοÎκÏ
Ïε αÏÏ:\n"
-#~ "Ïη μηÏανή αÏοκÏδικοÏοίηÏÎ·Ï mpg123 ÏοÏ
Michael Hipp <mh at mpg123.de>\n"
-#~ "Î ÏοÎκÏ
Ïε μεÏικÏÏ Î±ÏÏ Ïο mpg123 0.59s.mc3 εÏίÏηÏ.\n"
-#~ "ÎαÏιÏμÎνο ÏÏο αÏÏÎ¹ÎºÏ ÏÏÏÏθεÏο ÏοÏ
XMMS."
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "Î ÏÏÏθεÏο ήÏοÏ
MPEG"
-
-#~ msgid "TiMidity Configuration"
-#~ msgstr "ΡÏθμιÏη TiMidity"
-
-#~ msgid "22000 Hz"
-#~ msgstr "22000 Hz"
-
-#~ msgid "44100 Hz"
-#~ msgstr "44100 Hz"
-
-#~ msgid "Sample Width"
-#~ msgstr "ÎÏÏÎ¿Ï Î´ÎµÎ¯Î³Î¼Î±ÏοÏ"
-
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "ÎÏÏείο ÏÏ
θμίÏεÏν TiMidity"
-
-#~ msgid "TiMidity Player %s"
-#~ msgstr "ÎναÏαÏαγÏγÎÎ±Ï TiMidity %s"
-
-#~ msgid ""
-#~ "TiMidity Plugin\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "by Konstantin Korikov"
-#~ msgstr ""
-#~ "Î ÏÏÏθεÏοTiMidity\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "αÏÏ Ïον Konstantin Korikov"
-
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "Î ÏÏÏθεÏο TiMidity %s"
-
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Îεν ήÏαν δÏ
ναÏή η ÏÏÏÏÏÏη ÏοÏ
αÏÏείοÏ
MIDI"
-
-#~ msgid "About Tone Generator"
-#~ msgstr "ΠεÏί ÏÎ·Ï Î³ÎµÎ½Î½Î®ÏÏÎ¹Î±Ï ÏÏνÏν"
-
-#~ msgid "Tone Generator: "
-#~ msgstr "ÎεννήÏÏια ÏÏνÏν: "
-
-#~ msgid "Tone Generator %s"
-#~ msgstr "ÎεννήÏÏια ÏÏνÏν %s"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr ""
-#~ "ÎÏιλÎξÏε Ïον καÏάλογο ÏοÏ
θÎλεÏε να αÏοθηκεÏεÏε Ïα Ogg Vorbis streams:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "ΠαÏαμεÏÏοÏοίηÏη ÏÏÏÏθεÏοÏ
ήÏοÏ
Ogg Vorbis"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "ÎÏικÎÏÎµÏ Ogg Vorbis:"
-
-#~ msgid "ReplayGain Settings:"
-#~ msgstr "ΡÏ
θμίÏÎµÎ¹Ï ReplayGain:"
-
-#~ msgid "ReplayGain Type:"
-#~ msgstr "ΤÏÏÎ¿Ï ReplayGain:"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Î ÏοÎκÏ
Ïε ÏÏάλμα:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "ΣÏάλμα!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "ÎÏοÏÏ
Ïία ÏÏοÏοÏοίηÏÎ·Ï ÎµÏικÎÏÎ±Ï (άνοιγμα)"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "ÎÏοÏÏ
Ïία ÏÏοÏοÏοίηÏÎ·Ï ÎµÏικÎÏÎ±Ï (κλείÏιμο)"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "ÎÏοÏÏ
Ïία ÏÏοÏοÏοίηÏÎ·Ï ÎµÏικÎÏαÏ"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " ÎÏικÎÏα Ogg Vorbis "
-
-#~ msgid "Description:"
-#~ msgstr "ΠεÏιγÏαÏή:"
-
-#~ msgid "Version:"
-#~ msgstr "ÎκδοÏη:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "ÎοÏμεÏο ISRC:"
-
-#~ msgid "Organization:"
-#~ msgstr "ÎÏγανιÏμÏÏ:"
-
-#~ msgid " Ogg Vorbis ReplayGain "
-#~ msgstr "Ogg Vorbis ReplayGain "
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ Ogg Vorbis "
-
-#~ msgid "Length:"
-#~ msgstr "ÎιάÏκεια:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d KBit/s (nominal)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Hz"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d Bytes"
-
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Î ÏÏÏθεÏο ήÏοÏ
Ogg Vorbis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
ÏÏÏÏθεÏοÏ
ήÏοÏ
Ogg Vorbis"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Î ÏÏÏθεÏο Ogg Vorbis αÏÏ Ïο Xiph.org Foundation\n"
-#~ "\n"
-#~ "ÎÏÏικÏÏ ÎºÏÎ´Î¹ÎºÎ±Ï Î±ÏÏ\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Î ÏοÏÎ¸Î®ÎºÎµÏ Î±ÏÏ\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "ÎÏιÏκεÏÏείÏε Ïο Xiph.org Foundation ÏÏο http://www.xiph.org/\n"
-
-#~ msgid "About sndfile WAV support"
-#~ msgstr "ΠεÏί Ï
ÏοÏÏήÏÎ¹Î¾Î·Ï Î±ÏÏείÏν WAV"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA 02110-1301 USA"
-#~ msgstr ""
-#~ "Î ÏοÏαÏμÏÏÏηκε για ÏÏήÏη με Ïο Audacious αÏÏ Ïον Tony Vroon\n"
-#~ "<chainsaw at gentoo.org> αÏÏ Ïο ÏÏÏÏθεÏο xmms_sndfileÏοÏ
είναι:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "59 Temple Place, Suite 330, \n"
-#~ "Boston, MA 02111-1307 USA"
-
-#~ msgid "sndfile WAV plugin"
-#~ msgstr "Î ÏÏÏθεÏο αÏÏείÏν WAV"
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "Î ÏÏÏθεÏο ήÏοÏ
Wav"
-
-#~ msgid "WMA Player %s"
-#~ msgstr "ÎναÏαÏαγÏγÎÎ±Ï WMA %s"
-
-#~ msgid "About %s"
-#~ msgstr "ΠεÏί %s"
-
-#~ msgid " Close "
-#~ msgstr "ÎλείÏιμο"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "ΠεÏί ÏοÏ
Î¿Î´Î·Î³Î¿Ï OSS"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "ÎδηγÏÏ OSS για Ïο Audacious\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "Î ÏοκαθοÏιÏμÎνο (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "ΡÏθμιÏη Î¿Î´Î·Î³Î¿Ï OSS"
-
-#~ msgid "Audio device:"
-#~ msgstr "ΣÏ
ÏκεÏ
ή ήÏοÏ
:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "ΧÏήÏη εναλλακÏÎ¹ÎºÎ®Ï ÏÏ
ÏκεÏ
ήÏ:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "ΣÏ
ÏκεÏ
ή μείκÏη:"
-
-#~ msgid "Devices"
-#~ msgstr "ΣÏ
ÏκεÏ
ÎÏ"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "ÎÎÎ³ÎµÎ¸Î¿Ï ÏÏοÏÏÏÎ¹Î½Î®Ï Î¼Î½Î®Î¼Î·Ï (ms):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "ΠαÏάμεÏÏοι μείκÏη:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Î ÎλεγÏÎ¿Ï ÎνÏαÏÎ·Ï ÎµÎ»ÎγÏει Ïο κÏÏιο κανάλι, ÏÏι Ïο PCM"
-
-#~ msgid "Mixer"
-#~ msgstr "ÎείκÏηÏ"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "ΠεÏί ÏοÏ
Î¿Î´Î·Î³Î¿Ï ALSA"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "ÎδηγÏÏ ALSA για Ïο Audacious\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "ALSA %s άÏθÏÏμα εξÏδοÏ
"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "ÎγνÏÏÏη κάÏÏα ήÏοÏ
"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "Î ÏοεÏιλεγμÎνη ÏÏ
ÏκεÏ
ή PCM (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "ΡÏθμιÏη Î¿Î´Î·Î³Î¿Ï ALSA"
-
-#~ msgid "Mixer:"
-#~ msgstr "ÎείκÏηÏ:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "ÎάÏÏα μείκÏη:"
-
-#~ msgid "Device settings"
-#~ msgstr "ΡÏ
θμίÏÎµÎ¹Ï ÏÏ
ÏκεÏ
ήÏ"
-
-#~ msgid "Soundcard:"
-#~ msgstr "ÎάÏÏα ήÏοÏ
:"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "ÎιάÏκεια buffer (ms):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "ΠεÏÎ¯Î¿Î´Î¿Ï (ms):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Î ÏοÏÏÏημÎÎ½ÎµÏ ÏÏ
θμίÏειÏ"
-
-#~ msgid "aRts Driver configuration"
-#~ msgstr "ΡÏθμιÏη Î¿Î´Î·Î³Î¿Ï aRts"
-
-#~ msgid "Disk Writer Plugin %s"
-#~ msgstr "Î ÏÏÏθεÏο εγγÏαÏÎ®Ï ÏÏο δίÏκο %s"
-
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "ÎÏιλÎξÏε Ïον καÏάλογο ÏοÏ
θÎλεÏε να αÏοθηκεÏεÏε Ïα αÏÏεία εξÏδοÏ
:"
-
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "ΡÏθμιÏη ÏÏÏÏθεÏοÏ
εγγÏαÏÎ®Ï ÏÏο δίÏκο"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "ΠεÏί ÏοÏ
αÏθÏÏμαÏÎ¿Ï ESounD"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Î ÏÏÏθεÏο ESounD ÏοÏ
Audacious\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Host:"
-#~ msgstr "ÎιακομιÏÏήÏ:"
-
-#~ msgid "Use remote host"
-#~ msgstr "ΧÏήÏη αÏομακÏÏ
ÏμÎνοÏ
διακομιÏÏή"
-
-#~ msgid "Server"
-#~ msgstr "ÎιακομιÏÏήÏ"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "ÎÏθÏÏμα εξÏδοÏ
eSound"
-
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "ÎÏθÏÏμα εξÏδοÏ
JACK 0.15"
-
-#~ msgid ""
-#~ "XMMS jack Driver 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Audacious port by\n"
-#~ "Giacomo Lozito from develia.org"
-#~ msgstr ""
-#~ "ÎδηγÏÏ XMMS jack 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Audacious port by\n"
-#~ "Giacomo Lozito αÏÏ develia.org"
-
-#~ msgid "About the Sun Driver"
-#~ msgstr "ΠεÏί ÏοÏ
Î¿Î´Î·Î³Î¿Ï ÏÎ·Ï Sun"
-
-#~ msgid ""
-#~ "XMMS BSD Sun Driver\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Maintainer: <vedge at csoft.org>.\n"
-#~ msgstr ""
-#~ "XMMS BSD Sun Driver\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "ΣÏ
νÏηÏηÏήÏ: <vedge at csoft.org>.\n"
-
-#~ msgid "Audio control device:"
-#~ msgstr "ΣÏ
ÏκεÏ
ή ελÎγÏοÏ
ήÏοÏ
:"
-
-#~ msgid "Volume controls device:"
-#~ msgstr "ΣÏ
ÏκεÏ
ή ελÎγÏοÏ
ÎνÏαÏηÏ:"
-
-#~ msgid "XMMS uses mixer exclusively."
-#~ msgstr "Το XMMS ÏÏηÏιμοÏοιεί αÏοκλειÏÏικά μείκÏη."
-
-#~ msgid "Status"
-#~ msgstr "ÎαÏάÏÏαÏη"
-
-#~ msgid "Sun driver configuration"
-#~ msgstr "ΡÏθμιÏη Î¿Î´Î·Î³Î¿Ï Sun"
-
-#~ msgid "BSD Sun Driver %s"
-#~ msgstr "ÎδηγÏÏ BSD Sun %s"
-
-#~ msgid "/Toggle Decorations"
-#~ msgstr "/Îναλλαγή διακοÏμήÏεÏν"
-
-#~ msgid "Blur scope"
-#~ msgstr "Blur scope"
-
-#, fuzzy
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Î ÏίÏÎ»Î¿Ï ÏοÏ
διαλÏγοÏ
εÏÎ¹Î»Î¿Î³Î®Ï ÏÏÏμαÏοÏ"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** ÎΦÎÎΡÎÎÎÎÎΠΤΠÎÎÎ ÎÎÎÎÎÎÎÎ **"
-
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>_ÎιαÏάνεια</b>"
-
-#~ msgid "Warning"
-#~ msgstr "Î ÏοειδοÏοίηÏη"
-
-#~ msgid ""
-#~ "Filename and song title tags should be inside double quotes (\"). Not "
-#~ "doing so might be a security risk. Continue anyway?"
-#~ msgstr ""
-#~ "Îι εÏικÎÏÎµÏ Î³Î¹Î± Ïο Ïνομα αÏÏείοÏ
και Ïον ÏίÏλο ÏοÏ
ÏÏαγοÏ
Î´Î¹Î¿Ï ÏÏÎÏει να "
-#~ "βÏίÏκονÏαι μεÏÎ±Î¾Ï Î´Î¹ÏλÏν ειÏαγÏγικÏν(\"). ÎιαÏοÏεÏικά μÏοÏεί να είναι "
-#~ "εÏικίνδÏ
νο. Îα ÏÏ
νεÏίÏÏ;"
-
-#~ msgid "Song Change Configuration"
-#~ msgstr "ΡÏθμιÏη Î±Î»Î»Î±Î³Î®Ï ÏÏαγοÏ
διοÏ"
-
-#~ msgid "Song Metadata"
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ ÏÏαγοÏ
διοÏ"
-
-#~ msgid "Port"
-#~ msgstr "ÎÏÏα"
-
-#~ msgid "Client name"
-#~ msgstr "Îνομα ÏελάÏη"
-
-#~ msgid "Port name"
-#~ msgstr "Îνομα θÏÏαÏ"
-
-#~ msgid "ALSA output ports"
-#~ msgstr "θÏÏÎµÏ ÎµÎ¾ÏδοÏ
ALSA"
-
-#~ msgid "pre-calculate length of MIDI files in playlist"
-#~ msgstr "ÏÏοÏÏολογιÏμÏÏ Î¼Î®ÎºÎ¿Ï
Ï Î±ÏÏείÏν MIDI ÏÏη λίÏÏα αναÏαÏαγÏγήÏ"
-
-#~ msgid "Use proxy"
-#~ msgstr "ΧÏήÏη διακομιÏÏή"
-
-#~ msgid ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-#~ msgstr ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr "ÎεÏαÏÏοÏή μη-UTF8 ID3 εÏικεÏÏν Ïε UTF8"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "ÎÏδικοÏοίηÏη ID3:"
-
-#, fuzzy
-#~ msgid "Frames:"
-#~ msgstr "Îνομα:"
-
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "ÎεÏαÏÏοÏή μη-UTF8 ID3 εÏικεÏÏν Vorbis Ïε UTF8"
-
-#~ msgid "Vorbis encoding:"
-#~ msgstr "ÎÏδικοÏοίηÏη Vorbis:"
-
-#~ msgid "Info dialog is already opened!\n"
-#~ msgstr "Î Î´Î¹Î¬Î»Î¿Î³Î¿Ï ÏληÏοÏοÏιÏν είναι ήδη ανοιÏÏÏÏ!\n"
-
-#~ msgid "%02d:%02d:%02d"
-#~ msgstr "%02d:%02d:%02d"
-
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>ÎκδοÏη WMA:</b>"
-
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "<b>Îανάλια:</b>"
-
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>ÎÎÎ³ÎµÎ¸Î¿Ï Î±ÏÏείοÏ
:</b>"
-
-#~ msgid "WMA Info"
-#~ msgstr "ΠληÏοÏοÏÎ¯ÎµÏ WMA"
-
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>ΣÏÏλια:</b>"
-
-#~ msgid "Tags"
-#~ msgstr "ÎÏικÎÏεÏ"
-
-#~ msgid "Audacious:"
-#~ msgstr "Audacious:"
-
-#~ msgid "George Averill"
-#~ msgstr "George Averill"
-
-#~ msgid "Giacomo Lozito"
-#~ msgstr "Giacomo Lozito"
-
-#~ msgid "William Pitcock"
-#~ msgstr "William Pitcock"
-
-#~ msgid "Derek Pomery"
-#~ msgstr "Derek Pomery"
-
-#~ msgid "Tony Vroon"
-#~ msgstr "Tony Vroon"
-
-#~ msgid "Stephan Sokolow"
-#~ msgstr "Stephan Sokolow"
-
-#~ msgid "Kiyoshi Aman"
-#~ msgstr "Kiyoshi Aman"
-
-#~ msgid "Shay Green"
-#~ msgstr "Shay Green"
-
-#~ msgid "Mohammed Sameer"
-#~ msgstr "Mohammed Sameer"
-
-#~ msgid "Artem Baguinski"
-#~ msgstr "Artem Baguinski"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Andrei Badea"
-#~ msgstr "Andrei Badea"
-
-#~ msgid "Peter Behroozi"
-#~ msgstr "Peter Behroozi"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Liviu Danicel"
-#~ msgstr "Liviu Danicel"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastien Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev"
-
-#~ msgid "Jolan Luff"
-#~ msgstr "Jolan Luff"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michael Marineau"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Julien Portalier"
-#~ msgstr "Julien Portalier"
-
-#~ msgid "Andrew Ruder"
-#~ msgstr "Andrew Ruder"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Philipi Pinto"
-#~ msgstr "Philipi Pinto"
-
-#~ msgid "Thierry Vignaud"
-#~ msgstr "Thierry Vignaud"
-
-#~ msgid "Chao-Hsiung Liao"
-#~ msgstr "Chao-Hsiung Liao"
-
-#~ msgid "Jan Narovec"
-#~ msgstr "Jan Narovec"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "Pauli Virtanen"
-#~ msgstr "Pauli Virtanen"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "George Machitidze"
-#~ msgstr "George Machitidze"
-
-#~ msgid "Kouzinopoulos Haris"
-#~ msgstr "ΧάÏÎ·Ï ÎοÏ
ζινÏÏοÏ
λοÏ"
-
-#~ msgid "Stavros Giannouris"
-#~ msgstr "ΣÏαÏÏÎ¿Ï ÎιαννοÏÏηÏ"
-
-#~ msgid "Dhananjaya Sharma"
-#~ msgstr "Dhananjaya Sharma"
-
-#~ msgid "Laszlo Dvornik"
-#~ msgstr "Laszlo Dvornik"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "Dai"
-#~ msgstr "Dai"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Arangel Angov"
-#~ msgstr "Arangel Angov"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Vitaly Lipatov"
-#~ msgstr "Vitaly Lipatov"
-
-#~ msgid "Pavel Kanzelsberger"
-#~ msgstr "Pavel Kanzelsberger"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "Mykola Lynnyk"
-#~ msgstr "Mykola Lynnyk"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Î ÏÏÏθεÏα</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "ÎίÏÏα αÏθÏÏμάÏÏν _μÎÏÏν:"
-
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Παλλαγή καÏαÏÏÏήθηκε ÏÏη βάÏη ÏÏ
θμίÏεÏν ÏοÏ
Audacious, αλλά δε θα "
-#~ "ενεÏγοÏοιηθεί ÏÏην αναÏαÏαγÏγή μÎÏÏι Ïο εÏÏμενο ÏÏαγοÏδι!\n"
-#~ "\n"
-#~ "Îν θÎλεÏε, μÏοÏείÏε να ÏÏαμαÏήÏεÏε και να εÏανεκκινήÏεÏε Ïην αναÏαÏαγÏγή, "
-#~ "ÏÏÏε να ενεÏγοÏοιηθεί η αλλαγή."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÎμÏάνιÏη</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ΠονÏίκι</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÎίÏÏα αναÏαÏαγÏγήÏ</b></span>"
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÎÏοÏÏαθμιÏÏήÏ</b></span>"
diff --git a/po/es.po b/po/es.po
index 016c74e..4c61312 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,297 +1,299 @@
-# translation of es.po to
# Spanish translation for Audacious
-# Copyright (C) 2004, Francisco Javier F. Serrador <serrador at cvs.gnome.org>
+# Copyright (C) Audacious translators
# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Adrián Ramirez Escalante <buried.prophet at gmail.com>, 2012.
+# Cosme DomÃnguez DÃaz <cosme.ddiaz at gmail.com>, 2010.
# Francisco Javier F. Serrador <serrador at cvs.gnome.org>, 2004.
# Gustavo D. Vranjes <gvranjes at nerdshack.com>, 2006.
-# Jeki Sinneo Leinos <jeki72 at gmail.com>, 2008
-# Cosme DomÃnguez DÃaz <cosme.ddiaz at gmail.com>, 2010
-# Jorge Andrés <winninglero at gmail.com>, 2010
-#
+# Jeki Sinneo Leinos <jeki72 at gmail.com>, 2008.
+# Jordi Amenós <>, 2011.
+# Jorge Andrés <winninglero at gmail.com>, 2010.
+# <xukosky at yahoo.es>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: Audacious\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-02-14 20:28-0500\n"
-"Last-Translator: Jorge Andrés <winninglero at gmail.com>\n"
-"Language-Team: \n"
-"Language: \n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 04:11+0000\n"
+"Last-Translator: Adrián Ramirez Escalante <buried.prophet at gmail.com>\n"
+"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.2\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-Country: SPAIN\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Buscando ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d archivo encontrado"
+msgstr[1] "%d archivos encontrados"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (UTF-8 inválido)"
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
msgid "Core developers:"
msgstr "Desarrolladores del núcleo:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
msgstr "Gráficos:"
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
msgstr "Piel por defecto:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
msgstr "Desarrollo de complementos:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
msgstr "Autores de parches:"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
msgid "1.x developers:"
msgstr "Desarrolladores 1.x:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
-msgstr "Desarrolladores BMP:"
+msgstr "Desarrolladores de BMP:"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
msgid "Belarusian:"
-msgstr "Belarús:"
+msgstr "Bielorruso:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
msgstr "Vasco:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
-msgstr "Portugués (Brasil):"
+msgstr "Portugués de Brasil:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
msgstr "Bretón:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
msgstr "Búlgaro:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
msgid "Catalan:"
msgstr "Catalán:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
msgid "Chinese:"
msgstr "Chino:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
msgid "Croatian:"
msgstr "Croato:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
msgstr "Checo:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
msgstr "Holandés:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
msgid "Estonian:"
msgstr "Estonio:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
msgid "Finnish:"
-msgstr "Finlandeses:"
+msgstr "Finlandés:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
msgstr "Francés:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
msgstr "Alemán:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
msgid "Georgian:"
msgstr "Georgiano:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
msgstr "Griego:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
-msgstr "Hindúes:"
+msgstr "Hindú:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
msgstr "Húngaro:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
msgstr "Italiano:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
msgstr "Japonés:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
msgstr "Coreano:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
msgid "Latvian:"
-msgstr "Croato:"
+msgstr "Letón:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
msgstr "Lituano:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
msgstr "Macedonio:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Español mexicano:"
+
+#: src/audacious/credits.c:280
msgid "Polish:"
msgstr "Polaco:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Portuguese:"
msgstr "Portugués:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
msgstr "Rumano:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
msgstr "Ruso:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
msgstr "Serbio (Latin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
msgstr "Serbio (Cyrillic):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
msgstr "Chino simplificado:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
msgstr "Eslovaco:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
msgstr "Español:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
msgstr "Sueco:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
msgstr "Chino tradicional:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
msgstr "Turco:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
msgstr "Ucraniano:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:341
msgid "Welsh:"
msgstr "Galés:"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Lista de reproducción temporal"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Error importando archivo Winamp EQF '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Buscando ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d archivo encontrado"
-msgstr[1] "%d archivos encontrados"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "Saltar hacia atrás en la lista de reproducción"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Empezar la reproducción de la lista de reproducción actual"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Pausar la canción actual"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Parar la canción actual"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Pausar si se está reproduciendo, o reproducir"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "Saltar hacia adelante en la lista de reproducción"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "Mostrar diálogo de Salto al archivo"
+msgstr "Mostrar diálogo de salto al archivo"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "Añadir archivos a la lista de reproducción"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Añdir nuevos archvios a una lista de reproducción temporal"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "Mostrar la ventana principal"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostrar todas las ventanas de Audacious abiertas"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Mostrar versión"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir mensajes de depuración"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modo sin cabecera (beta)"
+
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "ARCHIVO..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- reproducir archivos multimedia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -300,939 +302,915 @@ msgstr ""
"%s: %s\n"
"Prueba `%s --help' para más información.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "No se encontró decodificador para %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Almacenando ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "No se puede %s %s: la extensión del archivo no es válida."
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Lista de reproducción sin tÃtulo"
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "guardar"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "cargar"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nueva lista de reproduccion"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Reproduccion actual"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La lista de reproducción no se puede ordenar porque la búsqueda de metadatos"
+" está en progreso (o ha sido deshabilitada)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "Red"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Lista de reproducción"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Complementos"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "Ãlbum"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "TÃtulo"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Número de pista"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "Género"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Nombre de archivo"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Ruta hasta el archivo"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Fecha"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Año"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Comentario"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Codec (formato)"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "Calidad"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
-msgstr "ninguno"
+msgstr "Ninguno"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arábico"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Báltico"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chino"
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "japonés"
+msgid "Greek"
+msgstr "Griego"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "taiwanés"
+msgid "Hebrew"
+msgstr "Hebreo"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "chino"
+msgid "Japanese"
+msgstr "Japonés"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
-msgstr "coreano"
+msgstr "Coreano"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "ruso"
+msgid "Polish"
+msgstr "Polaco"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "griego"
+msgid "Russian"
+msgstr "Ruso"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "hebreo"
+msgid "Taiwanese"
+msgstr "Taiwanés"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
-msgstr "turco"
+msgstr "Turco"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "arábico"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polaco"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Báltico"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Profundidad de bits</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modo de album"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Profundidad de bits de salida:"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Ajustes de salida</b>"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Todas las pistas se convertirán a esta profundidad de bit.\n"
-"Esta debe ser la profundidad máxima de bit soportada\n"
-"por la tarjeta de sonido o el plugin de salida."
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Control de volumen</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profundidad de bit:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usar control de volumen por software"
+msgid "Buffer size:"
+msgstr "Tamaño del búfer:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Usa el control de volumen por software. Esto puede ser útil para situaciones "
-"donde tu sistema de audio no soporte el control de volumen de reproducción."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volumen por software (no recomendado)"
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproducir archivos multimedia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Modo Replay Gain</b>"
+msgstr "<b>Normalizar volumen</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
-msgstr "Habilitar Replay Gain"
+msgstr "Activar la normalización de volumen"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadatos</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ãlbum"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar cortes (recomendado)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>Sistema de audio</b>"
+msgstr "<b>Ajustar niveles</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Información emergente</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar todos los archivos:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Habilitar información de pico de prevención de corte"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar archivos sin etiqueta:"
+
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Servidor proxy:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Puerto del proxy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Nombre de usuario del proxy:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Contraseña del proxy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configuración del Proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Activar uso del proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "Usar autenticación con el proxy"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Si cambia alguno de estos valores tendrá que reiniciar "
-"Audacious</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr "Detector de codificado automático de caracteres para: "
+msgstr "Detector de codificación de caracteres automático para: "
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
-msgstr "Código de caracteres de fallback:"
+msgstr "Codificación de caracteres alternativa:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista de códigos de caracteres usada para la conversión fallback de "
-"metadata. Si el detector automático de caracteres falló o se desactivó, los "
-"códigos de ésta lista serán tratados como candidatos al codificado de "
-"metadata, y luego se intentará la conversión fallback de éstos códigos a "
-"UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>Profundidad de bits</b>"
+msgstr "<b>Comportamiento</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
-msgstr "Continuar la reproducción al iniciarse"
+msgstr "Continuar la reproducción al iniciar"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avanzar cuando se borra la canción actual"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "Limpiar lista de reproducción cuando se abran nuevos archivos"
+msgstr "Limpiar la lista de reproducción al abrir archivos"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Añdir nuevos archvios a una lista de reproducción temporal"
+msgstr "Abrir archivos en una lista de reproducción temporal"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Metadatos</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No cargar la información de metadatos hasta reproducir"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÃTULO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÃTULO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÃLBUM - PISTA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÃLBUM ] - PISTA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "CategorÃa"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
-msgstr "Configuración de la información emergente"
+msgstr "Ajustes de la información emergente"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Recuperar portada</b>"
+msgstr "<b>Recuperar carátula</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-"Cuando se busca la cubierta del álbum, Audacious busca ciertas palabras en "
+"Cuando se busca la carátula del álbum, Audacious busca ciertas palabras en "
"el nombre de archivo. Se pueden especificar éstas palabras en la lista de "
"abajo, separadas usando comas."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "Excluir:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Incluir:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
-msgstr "Búsqueda recursiva para la tapa"
+msgstr "Busca recursiva para las carátulas"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Profundidad de la búsqueda:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
-msgstr "Usar cobertura por-archivo"
+msgstr "Usar carátula por archivo"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Varios</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "Mostrar barra de progreso para la pista actual"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Esperar hasta que la ventana emergente aparezca: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizada"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Visualización de las canciones</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr "Mostrar números de las canciones"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar ceros a la izquierda (02:00 en lugar de 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Mostrar información acerca del formato del tÃtulo"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TÃTULO"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTA - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTA - ÃLBUM - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTA - ÃLBUM - PISTA. TÃTULO"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTA [ ÃLBUM ] - PISTA. TÃTULO"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÃLBUM - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personalizada"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Cadena personalizada:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Formato del tÃtulo:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Información emergente</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr ""
"Mostrar información emergente para las entradas de la lista de canciones"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-"Activa la información de la ventana emergente para la entrada señalada en la "
-"lista de canciones. La ventana muestra el tÃtulo de la canción, nombre del "
+"Activa la información de la ventana emergente para la entrada señalada en la"
+" lista de canciones. La ventana muestra el tÃtulo de la canción, nombre del "
"álbum, género, año de publicación, número de pista, duración de la pista y "
"el trabajo."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
-msgstr "Editar valores para la información emergente"
+msgstr "Editar ajustes para la información emergente"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema de audio</b>"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Complemento de salida:"
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamaño del búfer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Complemento de salida actual:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "Traductores"
+msgstr "Transporte"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Entrada"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Efectos</b>"
+msgstr "Efecto"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "<b>Visualización</b>"
+msgstr "Visualización"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "General"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Preferencias de Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "No se pudo crear el directorio (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr "Posición no encontrada."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "No se reproduce ninguna canción."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD de música, pista %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Mono"
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr ""
+msgstr "Estéreo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canales"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Créditos:"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traductores"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Acerca de Audacious"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-"¿Estas seguro de querer cerrar %s? Si lo haces, se perderá cualquier cambio "
+"¿Esta seguro de querer cerrar %s? Si lo haces, se perderá cualquier cambio "
"realizado desde que fue exportada la lista de reproducción."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
-msgstr "No mostrar este mensaje de nuevo"
+msgstr "_No mostrar este mensaje de nuevo"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
-msgstr "Lista de reproducción"
+msgstr "Renombrar la lista de reproducción"
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
-msgstr "opciones ..."
+msgstr "ajustes ..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
-msgstr "Activar"
+msgstr "_Activar"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "Ecualizador"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
msgstr "Preamplificación"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "Número de pista"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
msgstr "Duración de la pista:"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
msgstr "Jazz ácido"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Rock ácido"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
-msgstr "Ambient"
+msgstr "Ambiental"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
msgstr "Música de cámara"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
msgstr "Clásica"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
msgstr "Escucha fácil"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
msgstr "Folclore"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
-msgstr "Hard Rock"
+msgstr "Rock duro"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
msgstr "New age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
msgstr "New wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
msgstr "Ruido"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
msgstr "Rock Punk"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">n/a</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
msgstr "Metadata actualizada sin problemas"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
msgstr "Actualización de metadatos fallida"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
msgstr "Información de pista"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Formato:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">Calidad:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">Bitrate:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">TÃtulo</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Artista</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Ãlbum</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Comentario</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Género</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Año</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Numero de pista</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
msgstr "No hay información disponible para %s.\n"
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Acerca de Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Saltar en el tiempo"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Créditos:"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Traductores"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Exportar lista de reproducción"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importar lista de reproducción"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "¿Sobrescribir %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Gestor de cola"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Abrir archivos"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "Añadir archivos..."
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "Cerrar diálogo al abrir"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "Cerrar diálogo al añadir"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Remover de la Cola"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
msgstr "_Cola"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Saltar a la pista"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "_Remover de la cola"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Saltar a una canción"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
-msgstr "Filtro:"
+msgstr "Filtro: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
-msgstr "Filtro:"
+msgstr "_Filtro:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
msgstr "Recordar"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
msgstr "Limpia_r"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
-msgstr "Cerrar al Saltar"
+msgstr "Cerrar al saltar"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr "Administrador de la lista de reproducción"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Entradas"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
-msgstr "Renombrar"
+msgstr "_Renombrar"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
msgstr "_Cerrar diálogo al activar la lista de reproducción"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
msgstr "Abrir URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
msgstr "Añadir URL"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Se han ocultado el resto de mensajes.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "El archivo no es un archivo .desktop válido"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Versión del archivo de escritorio no reconocida '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "Iniciando %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "La aplicación no acepta documentos en la linea de comandos"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Opción de cargar no reconocida: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"No se pueden pasar documentos URI a una entrada de escritorio 'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "No es un objeto lanzable"
@@ -1257,545 +1235,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Opciones de la sesión administrada"
+msgstr "Opciones de la gestión de sesiones:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Mostrar opciones de la sesión administrada"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: No se pudo abrir la pantalla, saliendo.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Preamplificación:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Ganancia por defecto:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Esta ganancia se usará si el archivo no contiene metadatos Replay Gain"
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Por favor recuerda que la forma más eficiente de "
-#~ "prevenir el clipping de la señal es no usar valores positivos.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuración Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Pista ganancia/pico"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Ãlbum ganancia/pico"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Usar valor pico de la información Replay Gain para la prevenir clipping"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock clásico"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Antiguos"
-
-#~ msgid "Other"
-#~ msgstr "Otro"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Banda Sonora"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusión"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Juego"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Clip de sonido"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock alternativo"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Espacio"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativa"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop instrumental"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ãtnica"
-
-#~ msgid "Gothic"
-#~ msgstr "Gótica"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tecno-industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electrónica"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Rock sureño"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedia"
-
-#~ msgid "Cult"
-#~ msgstr "Culto"
-
-#~ msgid "Top 40"
-#~ msgstr "Primeros 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap cristiano"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Nativa americana"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psicodélica"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "etro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folclore/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Folklore nacional"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "LatÃn"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celta"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock gótico"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock progresivo"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock Psicodélico"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock sinfónico"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Rock lento"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Coral"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acústica"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Discurso"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "SinfonÃa"
-
-#~ 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"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folclore"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Soul rÃtmico"
-
-#~ msgid "Freestyle"
-#~ msgstr "Estilo libre"
-
-#~ msgid "Duet"
-#~ msgstr "Dueto"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo de baterÃa"
-
-#~ msgid "A Cappella"
-#~ msgstr "A cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Bajo y baterÃa"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Cristiana contemporánea"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock cristiano"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Un reproductor multimedia para varias plataformas.\n"
-#~ "Copyright (C) 2005-2010 Equipo de Desarrollo de Audacious"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "No se pudo crear el archivo log (%s)\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Imprimir todos los errores y avisos en la salida estandar"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Usado en macpacking"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Lo siento, no se soportan threads en tu plataforma.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "¡Carga de módulos no soportada! Los complementos no se cargarán.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Aviso de versión no soportada"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>¡Audacious2 aun no está listo!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Por favor no informe de errores a menos que impliquen problemas "
-#~ "importantes.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Esta es una compilación <i>alpha</i> de Audacious2. TodavÃa está "
-#~ "incompleta y sin pulir.\n"
-#~ "Nosotros sospechamos que la mayorÃa de los pequeños errores se arreglarán "
-#~ "una vez que las\n"
-#~ "cosas se estabilicen. Sin embargo, si hay un error mayor, como una caÃda "
-#~ "reproducción\n"
-#~ "un archivo especÃfico, necesitamos saberlo.\n"
-#~ "\n"
-#~ "De todas formas, tenga en cuenta que, en este momento, es una pérdida de "
-#~ "tiempo\n"
-#~ "tratar los errores triviales, y por tanto le rogamos que se abstengan de "
-#~ "notificarlos.\n"
-#~ "¡Gracias por adelantado!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Bloguear acerca de errores no es muy útil.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "De igual forma que somos desarrolladores, no solemos leer blogs de forma "
-#~ "regular. Si hay un\n"
-#~ "error importante, rogamos que dirijas tu atención a nuestro bugtracker en "
-#~ "http://jira.atheme.org/,\n"
-#~ "o vÃa el foro que encontrarás en la web.\n"
-#~ "\n"
-#~ "Esto nos ayudará a encontrar más información acerca de sus "
-#~ "preocupaciones, las cuales nos encantarÃa\n"
-#~ "no conocerlas de otra manera."
-
-#~ msgid "Playback"
-#~ msgstr "Reproducción"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Reproducción</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Cuando se inicie Audacious, automáticamente empezará a reproducir desde "
-#~ "el punto donde lo dejó antes."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "No avanzar en la lista de reproducción"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Al acabar de reproducir una canción, no salta a la siguiente "
-#~ "automáticamente"
-
-#~ msgid "Enabled"
-#~ msgstr "Habilitado"
-
-#~ msgid "Description"
-#~ msgstr "Descripción"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Opciones del complemento de salida"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Información del complemento de salida"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista de decodificadores:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Decodificadores</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Lista de complementos _generales:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>General</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista de _complementos de visualización:"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Complementos de efectos:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">General</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Lugar</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Metadata Raw</span>"
-
-#~ msgid "Key"
-#~ msgstr "Clave"
-
-#~ msgid "Value"
-#~ msgstr "Valor"
-
-#~ msgid "170 Hz"
-#~ msgstr "170 Hz"
-
-#~ msgid "310 Hz"
-#~ msgstr "310 Hz"
+msgstr "Mostrar las opciones de gestión de sesiones"
-#~ msgid "3 kHz"
-#~ msgstr "3 kHz"
-#~ msgid "6 kHz"
-#~ msgstr "6 kHz"
diff --git a/po/es_AR.po b/po/es_AR.po
new file mode 100644
index 0000000..6c54e2b
--- /dev/null
+++ b/po/es_AR.po
@@ -0,0 +1,1245 @@
+# Argentinian Spanish translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Adrián Ramirez Escalante <buried.prophet at gmail.com>, 2012.
+# Cosme DomÃnguez DÃaz <cosme.ddiaz at gmail.com>, 2010.
+# Francisco Javier F. Serrador <serrador at cvs.gnome.org>, 2004.
+# Gustavo D. Vranjes <gvranjes at nerdshack.com>, 2006.
+# Jeki Sinneo Leinos <jeki72 at gmail.com>, 2008.
+# Jordi Amenós <>, 2011.
+# Jorge Andrés <winninglero at gmail.com>, 2010.
+# <xukosky at yahoo.es>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 04:25+0000\n"
+"Last-Translator: Adrián Ramirez Escalante <buried.prophet at gmail.com>\n"
+"Language-Team: Spanish (Argentinian)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_AR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Buscando ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d archivo encontrado"
+msgstr[1] "%d archivos encontrados"
+
+#: src/audacious/chardet.c:39
+msgid " (invalid UTF-8)"
+msgstr " (UTF-8 inválido)"
+
+#: src/audacious/credits.c:37
+msgid "Core developers:"
+msgstr "Desarrolladores del núcleo:"
+
+#: src/audacious/credits.c:51
+msgid "Graphics:"
+msgstr "Gráficos:"
+
+#: src/audacious/credits.c:56
+msgid "Default skin:"
+msgstr "Skin por defecto:"
+
+#: src/audacious/credits.c:62
+msgid "Plugin development:"
+msgstr "Desarrollo de complementos:"
+
+#: src/audacious/credits.c:85
+msgid "Patch authors:"
+msgstr "Autores de parches:"
+
+#: src/audacious/credits.c:131
+msgid "1.x developers:"
+msgstr "Desarrolladores 1.x:"
+
+#: src/audacious/credits.c:153
+msgid "BMP Developers:"
+msgstr "Desarrolladores de BMP:"
+
+#: src/audacious/credits.c:185
+msgid "Belarusian:"
+msgstr "Bielorruso:"
+
+#: src/audacious/credits.c:188
+msgid "Basque:"
+msgstr "Vasco:"
+
+#: src/audacious/credits.c:191
+msgid "Brazilian Portuguese:"
+msgstr "Portugués de Brasil:"
+
+#: src/audacious/credits.c:196
+msgid "Breton:"
+msgstr "Bretón:"
+
+#: src/audacious/credits.c:199
+msgid "Bulgarian:"
+msgstr "Búlgaro:"
+
+#: src/audacious/credits.c:202
+msgid "Catalan:"
+msgstr "Catalán:"
+
+#: src/audacious/credits.c:206
+msgid "Chinese:"
+msgstr "Chino:"
+
+#: src/audacious/credits.c:209
+msgid "Croatian:"
+msgstr "Croato:"
+
+#: src/audacious/credits.c:212
+msgid "Czech:"
+msgstr "Checo:"
+
+#: src/audacious/credits.c:215
+msgid "Dutch:"
+msgstr "Holandés:"
+
+#: src/audacious/credits.c:219
+msgid "Estonian:"
+msgstr "Estonio:"
+
+#: src/audacious/credits.c:222
+msgid "Finnish:"
+msgstr "Finlandés:"
+
+#: src/audacious/credits.c:227
+msgid "French:"
+msgstr "Francés:"
+
+#: src/audacious/credits.c:233
+msgid "German:"
+msgstr "Alemán:"
+
+#: src/audacious/credits.c:240
+msgid "Georgian:"
+msgstr "Georgiano:"
+
+#: src/audacious/credits.c:243
+msgid "Greek:"
+msgstr "Griego:"
+
+#: src/audacious/credits.c:248
+msgid "Hindi:"
+msgstr "Hindú:"
+
+#: src/audacious/credits.c:251
+msgid "Hungarian:"
+msgstr "Húngaro:"
+
+#: src/audacious/credits.c:255
+msgid "Italian:"
+msgstr "Italiano:"
+
+#: src/audacious/credits.c:260
+msgid "Japanese:"
+msgstr "Japonés:"
+
+#: src/audacious/credits.c:263
+msgid "Korean:"
+msgstr "Coreano:"
+
+#: src/audacious/credits.c:266
+msgid "Latvian:"
+msgstr "Letón:"
+
+#: src/audacious/credits.c:269
+msgid "Lithuanian:"
+msgstr "Lituano:"
+
+#: src/audacious/credits.c:274
+msgid "Macedonian:"
+msgstr "Macedonio:"
+
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Español mexicano:"
+
+#: src/audacious/credits.c:280
+msgid "Polish:"
+msgstr "Polaco:"
+
+#: src/audacious/credits.c:287
+msgid "Portuguese:"
+msgstr "Portugués:"
+
+#: src/audacious/credits.c:290
+msgid "Romanian:"
+msgstr "Rumano:"
+
+#: src/audacious/credits.c:294
+msgid "Russian:"
+msgstr "Ruso:"
+
+#: src/audacious/credits.c:298
+msgid "Serbian (Latin):"
+msgstr "Serbio (Latin):"
+
+#: src/audacious/credits.c:301
+msgid "Serbian (Cyrillic):"
+msgstr "Serbio (Cyrillic):"
+
+#: src/audacious/credits.c:305
+msgid "Simplified Chinese:"
+msgstr "Chino simplificado:"
+
+#: src/audacious/credits.c:308
+msgid "Slovak:"
+msgstr "Eslovaco:"
+
+#: src/audacious/credits.c:312
+msgid "Spanish:"
+msgstr "Español:"
+
+#: src/audacious/credits.c:320
+msgid "Swedish:"
+msgstr "Sueco:"
+
+#: src/audacious/credits.c:323
+msgid "Traditional Chinese:"
+msgstr "Chino tradicional:"
+
+#: src/audacious/credits.c:329
+msgid "Turkish:"
+msgstr "Turco:"
+
+#: src/audacious/credits.c:333
+msgid "Ukrainian:"
+msgstr "Ucraniano:"
+
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:341
+msgid "Welsh:"
+msgstr "Galés:"
+
+#: src/audacious/equalizer_preset.c:180
+#, c-format
+msgid "Error importing Winamp EQF file '%s'"
+msgstr "Error importando archivo Winamp EQF '%s'"
+
+#: src/audacious/main.c:243
+msgid "Skip backwards in playlist"
+msgstr "Ir hacia atrás en la lista de reproducción"
+
+#: src/audacious/main.c:244
+msgid "Start playing current playlist"
+msgstr "Reproducir la lista de reproducción actual"
+
+#: src/audacious/main.c:245
+msgid "Pause current song"
+msgstr "Pausar la canción actual"
+
+#: src/audacious/main.c:246
+msgid "Stop current song"
+msgstr "Parar la canción actual"
+
+#: src/audacious/main.c:247
+msgid "Pause if playing, play otherwise"
+msgstr "Pausar si se está reproduciendo, o reproducir"
+
+#: src/audacious/main.c:248
+msgid "Skip forward in playlist"
+msgstr "Ir hacia adelante en la lista de reproducción"
+
+#: src/audacious/main.c:249
+msgid "Display Jump to File dialog"
+msgstr "Mostrar diálogo de ir al archivo"
+
+#: src/audacious/main.c:250
+msgid "Add files to the playlist"
+msgstr "Añadir archivos a la lista de reproducción"
+
+#: src/audacious/main.c:251
+msgid "Add new files to a temporary playlist"
+msgstr "Agregar nuevos archivos a una lista de reproducción temporal"
+
+#: src/audacious/main.c:252
+msgid "Display the main window"
+msgstr "Mostrar la ventana principal"
+
+#: src/audacious/main.c:253
+msgid "Show version"
+msgstr "Mostrar versión"
+
+#: src/audacious/main.c:254
+msgid "Print debugging messages"
+msgstr "Imprimir mensajes de depuración"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modo sin cabecera (beta)"
+
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "ARCHIVO..."
+
+#: src/audacious/main.c:268
+msgid "- play multimedia files"
+msgstr "- reproducir archivos multimedia"
+
+#: src/audacious/main.c:278
+#, c-format
+msgid ""
+"%s: %s\n"
+"Try `%s --help' for more information.\n"
+msgstr ""
+"%s: %s\n"
+"Probá `%s --help' para más información.\n"
+
+#: src/audacious/main.c:573
+msgid "Audacious"
+msgstr "Audacious"
+
+#: src/audacious/playback.c:307
+#, c-format
+msgid "No decoder found for %s."
+msgstr "No se encontró decodificador para %s."
+
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "No se puede %s %s: la extensión del archivo no es válida."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "guardar"
+
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "cargar"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nueva lista de reproducción"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Reproducción actual"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La lista de reproducción no se puede ordenar porque la búsqueda de metadatos"
+" está en progreso (o ha sido deshabilitada)."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Audio"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Red"
+
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
+msgid "Playlist"
+msgstr "Lista de reproducción"
+
+#: src/audacious/ui_preferences.c:88
+msgid "Plugins"
+msgstr "Complementos"
+
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
+msgid "Artist"
+msgstr "Artista"
+
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
+msgid "Album"
+msgstr "Ãlbum"
+
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
+msgid "Title"
+msgstr "TÃtulo"
+
+#: src/audacious/ui_preferences.c:97
+msgid "Tracknumber"
+msgstr "Número de pista"
+
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
+msgid "Genre"
+msgstr "Género"
+
+#: src/audacious/ui_preferences.c:99
+msgid "Filename"
+msgstr "Nombre de archivo"
+
+#: src/audacious/ui_preferences.c:100
+msgid "Filepath"
+msgstr "Ruta hasta el archivo"
+
+#: src/audacious/ui_preferences.c:101
+msgid "Date"
+msgstr "Fecha"
+
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
+msgid "Year"
+msgstr "Año"
+
+#: src/audacious/ui_preferences.c:103
+msgid "Comment"
+msgstr "Comentario"
+
+#: src/audacious/ui_preferences.c:104
+msgid "Codec"
+msgstr "Codec (formato)"
+
+#: src/audacious/ui_preferences.c:105
+msgid "Quality"
+msgstr "Calidad"
+
+#: src/audacious/ui_preferences.c:111
+msgid "None"
+msgstr "Ninguno"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arábico"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Báltico"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chino"
+
+#: src/audacious/ui_preferences.c:115
+msgid "Greek"
+msgstr "Griego"
+
+#: src/audacious/ui_preferences.c:116
+msgid "Hebrew"
+msgstr "Hebreo"
+
+#: src/audacious/ui_preferences.c:117
+msgid "Japanese"
+msgstr "Japonés"
+
+#: src/audacious/ui_preferences.c:118
+msgid "Korean"
+msgstr "Coreano"
+
+#: src/audacious/ui_preferences.c:119
+msgid "Polish"
+msgstr "Polaco"
+
+#: src/audacious/ui_preferences.c:120
+msgid "Russian"
+msgstr "Ruso"
+
+#: src/audacious/ui_preferences.c:121
+msgid "Taiwanese"
+msgstr "Taiwanés"
+
+#: src/audacious/ui_preferences.c:122
+msgid "Turkish"
+msgstr "Turco"
+
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modo de álbum"
+
+#: src/audacious/ui_preferences.c:147
+msgid "<b>Output Settings</b>"
+msgstr "<b>Ajustes de salida</b>"
+
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profundidad de bit:"
+
+#: src/audacious/ui_preferences.c:152
+msgid "Buffer size:"
+msgstr "Tamaño del búfer:"
+
+#: src/audacious/ui_preferences.c:154
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volumen por software (no recomendado)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
+msgstr "<b>Normalizar volumen</b>"
+
+#: src/audacious/ui_preferences.c:158
+msgid "Enable Replay Gain"
+msgstr "Activar la normalización de volumen"
+
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar cortes (recomendado)"
+
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar niveles</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar todos los archivos:"
+
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar archivos sin etiqueta:"
+
+#: src/audacious/ui_preferences.c:172
+msgid "Proxy hostname:"
+msgstr "Servidor proxy:"
+
+#: src/audacious/ui_preferences.c:173
+msgid "Proxy port:"
+msgstr "Puerto del proxy:"
+
+#: src/audacious/ui_preferences.c:176
+msgid "Proxy username:"
+msgstr "Nombre de usuario del proxy:"
+
+#: src/audacious/ui_preferences.c:177
+msgid "Proxy password:"
+msgstr "Contraseña del proxy:"
+
+#: src/audacious/ui_preferences.c:181
+msgid "<b>Proxy Configuration</b>"
+msgstr "<b>Configuración del Proxy</b>"
+
+#: src/audacious/ui_preferences.c:182
+msgid "Enable proxy usage"
+msgstr "Activar uso del proxy"
+
+#: src/audacious/ui_preferences.c:185
+msgid "Use authentication with proxy"
+msgstr "Usar autenticación con el proxy"
+
+#: src/audacious/ui_preferences.c:193
+msgid "Auto character encoding detector for:"
+msgstr "Detector de codificación de caracteres automático para: "
+
+#: src/audacious/ui_preferences.c:198
+msgid "Fallback character encodings:"
+msgstr "Codificación de caracteres alternativa:"
+
+#: src/audacious/ui_preferences.c:202
+msgid "<b>Behavior</b>"
+msgstr "<b>Comportamiento</b>"
+
+#: src/audacious/ui_preferences.c:203
+msgid "Continue playback on startup"
+msgstr "Continuar la reproducción al iniciar"
+
+#: src/audacious/ui_preferences.c:205
+msgid "Advance when the current song is deleted"
+msgstr "Avanzar cuando se borra la canción actual"
+
+#: src/audacious/ui_preferences.c:207
+msgid "Clear the playlist when opening files"
+msgstr "Limpiar la lista de reproducción al abrir archivos"
+
+#: src/audacious/ui_preferences.c:209
+msgid "Open files in a temporary playlist"
+msgstr "Abrir archivos en una lista de reproducción temporal"
+
+#: src/audacious/ui_preferences.c:211
+msgid "<b>Metadata</b>"
+msgstr "<b>Metadatos</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No cargar la información de metadatos hasta reproducir"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÃTULO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÃTULO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÃLBUM - PISTA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÃLBUM ] - PISTA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:556
+msgid "Category"
+msgstr "CategorÃa"
+
+#: src/audacious/ui_preferences.c:780
+msgid "Popup Information Settings"
+msgstr "Ajustes de la información emergente"
+
+#: src/audacious/ui_preferences.c:789
+msgid "<b>Cover image retrieve</b>"
+msgstr "<b>Recuperar carátula</b>"
+
+#: src/audacious/ui_preferences.c:794
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Cuando se busca la carátula del álbum, Audacious se fija en ciertas palabras"
+" en el nombre del archivo. Se pueden especificar éstas palabras en la lista "
+"de abajo, separadas con comas."
+
+#: src/audacious/ui_preferences.c:811
+msgid "Exclude:"
+msgstr "Excluir:"
+
+#: src/audacious/ui_preferences.c:818
+msgid "Include:"
+msgstr "Incluir:"
+
+#: src/audacious/ui_preferences.c:835
+msgid "Recursively search for cover"
+msgstr "Búsqueda recursiva para las carátulas"
+
+#: src/audacious/ui_preferences.c:845
+msgid "Search depth: "
+msgstr "Profundidad de la búsqueda:"
+
+#: src/audacious/ui_preferences.c:859
+msgid "Use per-file cover"
+msgstr "Usar carátula por archivo"
+
+#: src/audacious/ui_preferences.c:862
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Varios</b>"
+
+#: src/audacious/ui_preferences.c:871
+msgid "Show Progress bar for the current track"
+msgstr "Mostrar barra de progreso para la pista actual"
+
+#: src/audacious/ui_preferences.c:881
+msgid "Delay until filepopup comes up: "
+msgstr "Esperar hasta que la ventana emergente aparezca: "
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizada"
+
+#: src/audacious/ui_preferences.c:1352
+msgid "<b>Song Display</b>"
+msgstr "<b>Visualización de las canciones</b>"
+
+#: src/audacious/ui_preferences.c:1361
+msgid "Show song numbers"
+msgstr "Mostrar números de las canciones"
+
+#: src/audacious/ui_preferences.c:1372
+msgid "Show leading zeroes (02:00 instead of 2:00)"
+msgstr "Mostrar ceros a la izquierda (02:00 en lugar de 2:00)"
+
+#: src/audacious/ui_preferences.c:1394
+msgid "Show information about titlestring format"
+msgstr "Mostrar información acerca del formato del tÃtulo"
+
+#: src/audacious/ui_preferences.c:1410
+msgid "Custom string:"
+msgstr "Cadena personalizada:"
+
+#: src/audacious/ui_preferences.c:1417
+msgid "Title format:"
+msgstr "Formato del tÃtulo:"
+
+#: src/audacious/ui_preferences.c:1428
+msgid "<b>Popup Information</b>"
+msgstr "<b>Información emergente</b>"
+
+#: src/audacious/ui_preferences.c:1443
+msgid "Show popup information for playlist entries"
+msgstr ""
+"Mostrar información emergente para las entradas de la lista de canciones"
+
+#: src/audacious/ui_preferences.c:1444
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Activa la información de la ventana emergente para la entrada señalada en la"
+" lista de canciones. La ventana muestra el tÃtulo de la canción, nombre del "
+"álbum, género, año de publicación, número de pista, duración de la pista y "
+"el arte de tapa."
+
+#: src/audacious/ui_preferences.c:1455
+msgid "Edit settings for popup information"
+msgstr "Editar ajustes para la información emergente"
+
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Complemento de salida:"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Transport"
+msgstr "Transporte"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Input"
+msgstr "Entrada"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Effect"
+msgstr "Efecto"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Visualization"
+msgstr "Visualización"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "General"
+msgstr "General"
+
+#: src/audacious/ui_preferences.c:1644
+msgid "Audacious Preferences"
+msgstr "Preferencias de Audacious"
+
+#: src/audacious/util.c:120
+#, c-format
+msgid "Could not create directory (%s): %s\n"
+msgstr "No se pudo crear el directorio (%s): %s\n"
+
+#: src/audtool/handlers_playlist.c:273
+msgid "Position not found."
+msgstr "Posición no encontrada."
+
+#: src/audtool/handlers_vitals.c:63
+msgid "No song playing."
+msgstr "No se reproduce ninguna canción."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD de audio, pista %s"
+
+#: src/libaudcore/tuple.c:536
+msgid "Mono"
+msgstr "Mono"
+
+#: src/libaudcore/tuple.c:538
+msgid "Stereo"
+msgstr "Estéreo"
+
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canales"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Créditos:"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traductores"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Acerca de Audacious"
+
+#: src/libaudgui/confirm.c:76
+#, c-format
+msgid ""
+"Are you sure you want to close %s? If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"¿Estas seguro que querés cerrar %s? Si lo haces, se perderá cualquier "
+"cambio realizado desde que fue exportada la lista de reproducción."
+
+#: src/libaudgui/confirm.c:89
+msgid "_Don't show this message again"
+msgstr "_No mostrar este mensaje otra vez"
+
+#: src/libaudgui/confirm.c:126
+msgid "Rename Playlist"
+msgstr "Renombrar la lista de reproducción"
+
+#: src/libaudgui/effects-menu.c:74
+msgid "settings ..."
+msgstr "ajustes ..."
+
+#: src/libaudgui/equalizer.c:51
+msgid "_Enable"
+msgstr "_Activar"
+
+#: src/libaudgui/equalizer.c:123
+msgid "31 Hz"
+msgstr "31 Hz"
+
+#: src/libaudgui/equalizer.c:123
+msgid "63 Hz"
+msgstr "63 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "125 Hz"
+msgstr "125 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "250 Hz"
+msgstr "250 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "500 Hz"
+msgstr "500 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "1 kHz"
+msgstr "1 kHz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "2 kHz"
+msgstr "2 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "4 kHz"
+msgstr "4 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: src/libaudgui/equalizer.c:130
+msgid "Equalizer"
+msgstr "Ecualizador"
+
+#: src/libaudgui/equalizer.c:146
+msgid "Preamp"
+msgstr "Preamplificación"
+
+#: src/libaudgui/infopopup.c:207
+msgid "Track Number"
+msgstr "Número de pista"
+
+#: src/libaudgui/infopopup.c:209
+msgid "Track Length"
+msgstr "Duración de la pista:"
+
+#: src/libaudgui/infowin.c:75
+msgid "Acid Jazz"
+msgstr "Jazz ácido"
+
+#: src/libaudgui/infowin.c:76
+msgid "Acid Rock"
+msgstr "Rock ácido"
+
+#: src/libaudgui/infowin.c:77
+msgid "Ambient"
+msgstr "Ambiental"
+
+#: src/libaudgui/infowin.c:78
+msgid "Bebop"
+msgstr "Bebop"
+
+#: src/libaudgui/infowin.c:79
+msgid "Bluegrass"
+msgstr "Bluegrass"
+
+#: src/libaudgui/infowin.c:80
+msgid "Blues"
+msgstr "Blues"
+
+#: src/libaudgui/infowin.c:81
+msgid "Chamber Music"
+msgstr "Música de cámara"
+
+#: src/libaudgui/infowin.c:82
+msgid "Classical"
+msgstr "Clásica"
+
+#: src/libaudgui/infowin.c:83
+msgid "Country"
+msgstr "Country"
+
+#: src/libaudgui/infowin.c:84
+msgid "Death Metal"
+msgstr "Death Metal"
+
+#: src/libaudgui/infowin.c:85
+msgid "Disco"
+msgstr "Disco"
+
+#: src/libaudgui/infowin.c:86
+msgid "Easy Listening"
+msgstr "Easy Listening"
+
+#: src/libaudgui/infowin.c:87
+msgid "Folk"
+msgstr "Folclore"
+
+#: src/libaudgui/infowin.c:88
+msgid "Funk"
+msgstr "Funk"
+
+#: src/libaudgui/infowin.c:89
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
+
+#: src/libaudgui/infowin.c:90
+msgid "Gospel"
+msgstr "Gospel"
+
+#: src/libaudgui/infowin.c:91
+msgid "Grunge"
+msgstr "Grunge"
+
+#: src/libaudgui/infowin.c:92
+msgid "Hard Rock"
+msgstr "Hard Rock"
+
+#: src/libaudgui/infowin.c:93
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
+
+#: src/libaudgui/infowin.c:94
+msgid "Hip-hop"
+msgstr "Hip-hop"
+
+#: src/libaudgui/infowin.c:95
+msgid "House"
+msgstr "House"
+
+#: src/libaudgui/infowin.c:96
+msgid "Jazz"
+msgstr "Jazz"
+
+#: src/libaudgui/infowin.c:97
+msgid "Jungle"
+msgstr "Jungle"
+
+#: src/libaudgui/infowin.c:98
+msgid "Metal"
+msgstr "Metal"
+
+#: src/libaudgui/infowin.c:99
+msgid "New Age"
+msgstr "New age"
+
+#: src/libaudgui/infowin.c:100
+msgid "New Wave"
+msgstr "New wave"
+
+#: src/libaudgui/infowin.c:101
+msgid "Noise"
+msgstr "Noise"
+
+#: src/libaudgui/infowin.c:102
+msgid "Pop"
+msgstr "Pop"
+
+#: src/libaudgui/infowin.c:103
+msgid "Punk Rock"
+msgstr "Rock Punk"
+
+#: src/libaudgui/infowin.c:104
+msgid "Rap"
+msgstr "Rap"
+
+#: src/libaudgui/infowin.c:105
+msgid "Reggae"
+msgstr "Reggae"
+
+#: src/libaudgui/infowin.c:106
+msgid "Rock"
+msgstr "Rock"
+
+#: src/libaudgui/infowin.c:107
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
+
+#: src/libaudgui/infowin.c:108
+msgid "Rhythm and Blues"
+msgstr "Rhythm and Blues"
+
+#: src/libaudgui/infowin.c:109
+msgid "Ska"
+msgstr "Ska"
+
+#: src/libaudgui/infowin.c:110
+msgid "Soul"
+msgstr "Soul"
+
+#: src/libaudgui/infowin.c:111
+msgid "Swing"
+msgstr "Swing"
+
+#: src/libaudgui/infowin.c:112
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:113
+msgid "Trip-hop"
+msgstr "Trip-hop"
+
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
+msgid "<span size=\"small\">n/a</span>"
+msgstr "<span size=\"small\">n/a</span>"
+
+#: src/libaudgui/infowin.c:267
+msgid "Metadata updated successfully"
+msgstr "Metadata actualizada sin problemas"
+
+#: src/libaudgui/infowin.c:272
+msgid "Metadata updating failed"
+msgstr "Falló la actualización de metadatos"
+
+#: src/libaudgui/infowin.c:320
+msgid "Track Information"
+msgstr "Información de pista"
+
+#: src/libaudgui/infowin.c:352
+msgid "<span size=\"small\">Format:</span>"
+msgstr "<span size=\"small\">Formato:</span>"
+
+#: src/libaudgui/infowin.c:356
+msgid "<span size=\"small\">Quality:</span>"
+msgstr "<span size=\"small\">Calidad:</span>"
+
+#: src/libaudgui/infowin.c:359
+msgid "<span size=\"small\">Bitrate:</span>"
+msgstr "<span size=\"small\">Bitrate:</span>"
+
+#: src/libaudgui/infowin.c:389
+msgid "<span size=\"small\">Title</span>"
+msgstr "<span size=\"small\">TÃtulo</span>"
+
+#: src/libaudgui/infowin.c:401
+msgid "<span size=\"small\">Artist</span>"
+msgstr "<span size=\"small\">Artista</span>"
+
+#: src/libaudgui/infowin.c:413
+msgid "<span size=\"small\">Album</span>"
+msgstr "<span size=\"small\">Ãlbum</span>"
+
+#: src/libaudgui/infowin.c:425
+msgid "<span size=\"small\">Comment</span>"
+msgstr "<span size=\"small\">Comentario</span>"
+
+#: src/libaudgui/infowin.c:437
+msgid "<span size=\"small\">Genre</span>"
+msgstr "<span size=\"small\">Género</span>"
+
+#: src/libaudgui/infowin.c:458
+msgid "<span size=\"small\">Year</span>"
+msgstr "<span size=\"small\">Año</span>"
+
+#: src/libaudgui/infowin.c:469
+msgid "<span size=\"small\">Track Number</span>"
+msgstr "<span size=\"small\">Numero de pista</span>"
+
+#: src/libaudgui/infowin.c:548
+#, c-format
+msgid "%d kb/s"
+msgstr "%d kb/s"
+
+#: src/libaudgui/infowin.c:575
+#, c-format
+msgid "No info available for %s.\n"
+msgstr "No hay información disponible para %s.\n"
+
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Ir a tiempo"
+
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Exportar lista de reproducción"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importar lista de reproducción"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "¿Sobrescribir %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Gestor de cola de reproducción"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Open Files"
+msgstr "Abrir archivos"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Add Files"
+msgstr "Añadir archivos..."
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Open"
+msgstr "Cerrar diálogo al abrir"
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Add"
+msgstr "Cerrar diálogo al añadir"
+
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
+msgid "_Queue"
+msgstr "_Cola"
+
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "_Remover de la cola"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Ir a una canción"
+
+#: src/libaudgui/ui_jumptotrack.c:281
+msgid "Filter: "
+msgstr "Filtro: "
+
+#: src/libaudgui/ui_jumptotrack.c:282
+msgid "_Filter:"
+msgstr "_Filtro:"
+
+#: src/libaudgui/ui_jumptotrack.c:292
+msgid "Remember"
+msgstr "Recordar"
+
+#: src/libaudgui/ui_jumptotrack.c:299
+msgid "Clea_r"
+msgstr "Limpia_r"
+
+#: src/libaudgui/ui_jumptotrack.c:319
+msgid "Close on Jump"
+msgstr "Cerrar al saltar"
+
+#: src/libaudgui/ui_playlist_manager.c:253
+msgid "Playlist Manager"
+msgstr "Administrador de la lista de reproducción"
+
+#: src/libaudgui/ui_playlist_manager.c:280
+msgid "Entries"
+msgstr "Entradas"
+
+#: src/libaudgui/ui_playlist_manager.c:301
+msgid "_Rename"
+msgstr "_Renombrar"
+
+#: src/libaudgui/ui_playlist_manager.c:325
+msgid "_Close dialog on activating playlist"
+msgstr "_Cerrar diálogo al activar la lista de reproducción"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Open URL"
+msgstr "Abrir URL"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Add URL"
+msgstr "Añadir URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Se han ocultado el resto de mensajes.)"
+
+#: src/libeggsmclient/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "El archivo no es un archivo .desktop válido"
+
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versión del archivo de escritorio no reconocida '%s'"
+
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: src/libeggsmclient/eggdesktopfile.c:1116
+msgid "Application does not accept documents on command line"
+msgstr "La aplicación no acepta documentos en la linea de comandos"
+
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opción de cargar no reconocida: %d"
+
+#: src/libeggsmclient/eggdesktopfile.c:1391
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No se pueden pasar documentos URI a una entrada de escritorio 'Type=Link'"
+
+#: src/libeggsmclient/eggdesktopfile.c:1412
+msgid "Not a launchable item"
+msgstr "No es un objeto lanzable"
+
+#: src/libeggsmclient/eggsmclient.c:226
+msgid "Disable connection to session manager"
+msgstr "Conexión con el administrador de sesión deshabilitada"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "Specify file containing saved configuration"
+msgstr "Especificar archivo que contiene la configuración guardada"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "FILE"
+msgstr "ARCHIVO"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "Specify session management ID"
+msgstr "Especifique la ID de administración de sesiones"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "ID"
+msgstr "ID"
+
+#: src/libeggsmclient/eggsmclient.c:253
+msgid "Session management options:"
+msgstr "Opciones de la gestión de sesiones:"
+
+#: src/libeggsmclient/eggsmclient.c:254
+msgid "Show session management options"
+msgstr "Mostrar las opciones de gestión de sesiones"
+
+
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100644
index 0000000..174706a
--- /dev/null
+++ b/po/es_MX.po
@@ -0,0 +1,1238 @@
+# Spanish (Mexican) translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Jorge A. GarcÃa Sosa <jagsmd at gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 01:21+0000\n"
+"Last-Translator: Jorge A. GarcÃa Sosa <jagsmd at gmail.com>\n"
+"Language-Team: Spanish (Mexican)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_MX\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Buscando..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d archivo encontrado"
+msgstr[1] "%d archivos encontrados"
+
+#: src/audacious/chardet.c:39
+msgid " (invalid UTF-8)"
+msgstr "(UTF-8 no válido)"
+
+#: src/audacious/credits.c:37
+msgid "Core developers:"
+msgstr "Desarroladores del núcleo:"
+
+#: src/audacious/credits.c:51
+msgid "Graphics:"
+msgstr "Gráficos:"
+
+#: src/audacious/credits.c:56
+msgid "Default skin:"
+msgstr "Skin por defecto:"
+
+#: src/audacious/credits.c:62
+msgid "Plugin development:"
+msgstr "Desarrollo de plugin:"
+
+#: src/audacious/credits.c:85
+msgid "Patch authors:"
+msgstr "Autores de parches"
+
+#: src/audacious/credits.c:131
+msgid "1.x developers:"
+msgstr "Desarrolladores 1.x:"
+
+#: src/audacious/credits.c:153
+msgid "BMP Developers:"
+msgstr "Desarrolladores BMP:"
+
+#: src/audacious/credits.c:185
+msgid "Belarusian:"
+msgstr "Bieloruso:"
+
+#: src/audacious/credits.c:188
+msgid "Basque:"
+msgstr "Vasco:"
+
+#: src/audacious/credits.c:191
+msgid "Brazilian Portuguese:"
+msgstr "Portugués brasileño:"
+
+#: src/audacious/credits.c:196
+msgid "Breton:"
+msgstr "Bretón:"
+
+#: src/audacious/credits.c:199
+msgid "Bulgarian:"
+msgstr "Búlgaro"
+
+#: src/audacious/credits.c:202
+msgid "Catalan:"
+msgstr "Catalán:"
+
+#: src/audacious/credits.c:206
+msgid "Chinese:"
+msgstr "Chino:"
+
+#: src/audacious/credits.c:209
+msgid "Croatian:"
+msgstr "Croata:"
+
+#: src/audacious/credits.c:212
+msgid "Czech:"
+msgstr "Checo:"
+
+#: src/audacious/credits.c:215
+msgid "Dutch:"
+msgstr "Neerlandés:"
+
+#: src/audacious/credits.c:219
+msgid "Estonian:"
+msgstr "Estonio:"
+
+#: src/audacious/credits.c:222
+msgid "Finnish:"
+msgstr "Finés:"
+
+#: src/audacious/credits.c:227
+msgid "French:"
+msgstr "Francés:"
+
+#: src/audacious/credits.c:233
+msgid "German:"
+msgstr "Alemán:"
+
+#: src/audacious/credits.c:240
+msgid "Georgian:"
+msgstr "Georgiano:"
+
+#: src/audacious/credits.c:243
+msgid "Greek:"
+msgstr "Griego:"
+
+#: src/audacious/credits.c:248
+msgid "Hindi:"
+msgstr "Hindi:"
+
+#: src/audacious/credits.c:251
+msgid "Hungarian:"
+msgstr "Húngaro:"
+
+#: src/audacious/credits.c:255
+msgid "Italian:"
+msgstr "italiano:"
+
+#: src/audacious/credits.c:260
+msgid "Japanese:"
+msgstr "Japonés:"
+
+#: src/audacious/credits.c:263
+msgid "Korean:"
+msgstr "Coreano:"
+
+#: src/audacious/credits.c:266
+msgid "Latvian:"
+msgstr "Letón:"
+
+#: src/audacious/credits.c:269
+msgid "Lithuanian:"
+msgstr "Lituano:"
+
+#: src/audacious/credits.c:274
+msgid "Macedonian:"
+msgstr "Macedonio:"
+
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Español de México:"
+
+#: src/audacious/credits.c:280
+msgid "Polish:"
+msgstr "Polaco:"
+
+#: src/audacious/credits.c:287
+msgid "Portuguese:"
+msgstr "Portugués:"
+
+#: src/audacious/credits.c:290
+msgid "Romanian:"
+msgstr "Rumano:"
+
+#: src/audacious/credits.c:294
+msgid "Russian:"
+msgstr "Ruso:"
+
+#: src/audacious/credits.c:298
+msgid "Serbian (Latin):"
+msgstr "Serbio(LatÃn):"
+
+#: src/audacious/credits.c:301
+msgid "Serbian (Cyrillic):"
+msgstr "Serbio(CirÃlico)"
+
+#: src/audacious/credits.c:305
+msgid "Simplified Chinese:"
+msgstr "Chino simplificado:"
+
+#: src/audacious/credits.c:308
+msgid "Slovak:"
+msgstr "Eslovaco:"
+
+#: src/audacious/credits.c:312
+msgid "Spanish:"
+msgstr "Español:"
+
+#: src/audacious/credits.c:320
+msgid "Swedish:"
+msgstr "Sueco:"
+
+#: src/audacious/credits.c:323
+msgid "Traditional Chinese:"
+msgstr "Chino tradicional:"
+
+#: src/audacious/credits.c:329
+msgid "Turkish:"
+msgstr "Turco:"
+
+#: src/audacious/credits.c:333
+msgid "Ukrainian:"
+msgstr "Ucraniano:"
+
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita"
+
+#: src/audacious/credits.c:341
+msgid "Welsh:"
+msgstr "Galés"
+
+#: src/audacious/equalizer_preset.c:180
+#, c-format
+msgid "Error importing Winamp EQF file '%s'"
+msgstr "Error al importar archivo EQF de Winamp '%s' "
+
+#: src/audacious/main.c:243
+msgid "Skip backwards in playlist"
+msgstr "Saltar hacia atrás en la lista de reproducción"
+
+#: src/audacious/main.c:244
+msgid "Start playing current playlist"
+msgstr "Comenzar a reproducir la lista actual"
+
+#: src/audacious/main.c:245
+msgid "Pause current song"
+msgstr "Pausar pista actual"
+
+#: src/audacious/main.c:246
+msgid "Stop current song"
+msgstr "Detener pista actual"
+
+#: src/audacious/main.c:247
+msgid "Pause if playing, play otherwise"
+msgstr "Pausar si está reproduciendo; de lo contrario, reproducir"
+
+#: src/audacious/main.c:248
+msgid "Skip forward in playlist"
+msgstr "Saltar hacia adelante en la lista de reproducción"
+
+#: src/audacious/main.c:249
+msgid "Display Jump to File dialog"
+msgstr "Mostrar dialogo Saltar al Archivo"
+
+#: src/audacious/main.c:250
+msgid "Add files to the playlist"
+msgstr "Agregar archivos a la lista de reproducción"
+
+#: src/audacious/main.c:251
+msgid "Add new files to a temporary playlist"
+msgstr "Agregar nuevos archivos a una lista de reproducción temporal"
+
+#: src/audacious/main.c:252
+msgid "Display the main window"
+msgstr "Mostrar la ventana principal"
+
+#: src/audacious/main.c:253
+msgid "Show version"
+msgstr "Mostrar versión"
+
+#: src/audacious/main.c:254
+msgid "Print debugging messages"
+msgstr "Imprimir mensajes debugging"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modo sin encabezado (beta)"
+
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "ARCHIVO..."
+
+#: src/audacious/main.c:268
+msgid "- play multimedia files"
+msgstr " - Reproducir archivos multimedia"
+
+#: src/audacious/main.c:278
+#, c-format
+msgid ""
+"%s: %s\n"
+"Try `%s --help' for more information.\n"
+msgstr ""
+"%s: %s\n"
+"Intenta `%s --ayuda' para mayor información\n"
+
+#: src/audacious/main.c:573
+msgid "Audacious"
+msgstr "Audacious"
+
+#: src/audacious/playback.c:307
+#, c-format
+msgid "No decoder found for %s."
+msgstr "No se encontró un descodificador para %s."
+
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "No se puede %s %s: extensión de archivo no soportada."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "guardar"
+
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "cargar"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nueva Lista de reproducción"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Reproduciendo"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La lista de reproducción no puede ser ordenada porque la exploración de "
+"metadatos está en progreso (o ha sido deshabilitada)"
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Audio"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Red"
+
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
+msgid "Playlist"
+msgstr "Lista de Reproducción"
+
+#: src/audacious/ui_preferences.c:88
+msgid "Plugins"
+msgstr "Plugins"
+
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
+msgid "Artist"
+msgstr "Artista"
+
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
+msgid "Album"
+msgstr "Ãlbum"
+
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
+msgid "Title"
+msgstr "TÃtulo"
+
+#: src/audacious/ui_preferences.c:97
+msgid "Tracknumber"
+msgstr "Número de pista"
+
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
+msgid "Genre"
+msgstr "Género"
+
+#: src/audacious/ui_preferences.c:99
+msgid "Filename"
+msgstr "Nombre de archivo"
+
+#: src/audacious/ui_preferences.c:100
+msgid "Filepath"
+msgstr "Ruta de archivo"
+
+#: src/audacious/ui_preferences.c:101
+msgid "Date"
+msgstr "Fecha"
+
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
+msgid "Year"
+msgstr "Año"
+
+#: src/audacious/ui_preferences.c:103
+msgid "Comment"
+msgstr "Comentario"
+
+#: src/audacious/ui_preferences.c:104
+msgid "Codec"
+msgstr "Codec"
+
+#: src/audacious/ui_preferences.c:105
+msgid "Quality"
+msgstr "Calidad"
+
+#: src/audacious/ui_preferences.c:111
+msgid "None"
+msgstr "Ninguno"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Ãrabe"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Báltico"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chino"
+
+#: src/audacious/ui_preferences.c:115
+msgid "Greek"
+msgstr "Griego"
+
+#: src/audacious/ui_preferences.c:116
+msgid "Hebrew"
+msgstr "Hebreo"
+
+#: src/audacious/ui_preferences.c:117
+msgid "Japanese"
+msgstr "Japonés"
+
+#: src/audacious/ui_preferences.c:118
+msgid "Korean"
+msgstr "Coreano"
+
+#: src/audacious/ui_preferences.c:119
+msgid "Polish"
+msgstr "Polaco"
+
+#: src/audacious/ui_preferences.c:120
+msgid "Russian"
+msgstr "Ruso"
+
+#: src/audacious/ui_preferences.c:121
+msgid "Taiwanese"
+msgstr "Taiwanés"
+
+#: src/audacious/ui_preferences.c:122
+msgid "Turkish"
+msgstr "Turco"
+
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modo de Ãlbum"
+
+#: src/audacious/ui_preferences.c:147
+msgid "<b>Output Settings</b>"
+msgstr "Ajustes de Salida"
+
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profundida de bit"
+
+#: src/audacious/ui_preferences.c:152
+msgid "Buffer size:"
+msgstr "Tamaño del Buffer:"
+
+#: src/audacious/ui_preferences.c:154
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volumen por software (no recomendado)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
+msgstr "<b>Replay Gain</b>"
+
+#: src/audacious/ui_preferences.c:158
+msgid "Enable Replay Gain"
+msgstr "Habilitar Replay Gain"
+
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar distorsiones clip (recomendado)"
+
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar Niveles</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar todos los archivos:"
+
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar archivos sin etiquetas:"
+
+#: src/audacious/ui_preferences.c:172
+msgid "Proxy hostname:"
+msgstr "Nombre del host proxy:"
+
+#: src/audacious/ui_preferences.c:173
+msgid "Proxy port:"
+msgstr "Puerto proxy:"
+
+#: src/audacious/ui_preferences.c:176
+msgid "Proxy username:"
+msgstr "nombre de usuario proxy:"
+
+#: src/audacious/ui_preferences.c:177
+msgid "Proxy password:"
+msgstr "contraseña proxy:"
+
+#: src/audacious/ui_preferences.c:181
+msgid "<b>Proxy Configuration</b>"
+msgstr "<b>Configuración del Proxy</b>"
+
+#: src/audacious/ui_preferences.c:182
+msgid "Enable proxy usage"
+msgstr "Habilitar uso del proxy"
+
+#: src/audacious/ui_preferences.c:185
+msgid "Use authentication with proxy"
+msgstr "Usar autenticación con el proxy"
+
+#: src/audacious/ui_preferences.c:193
+msgid "Auto character encoding detector for:"
+msgstr "Detector automático de codificación de caracteres para:"
+
+#: src/audacious/ui_preferences.c:198
+msgid "Fallback character encodings:"
+msgstr "Codigicación de caracteres alternativa:"
+
+#: src/audacious/ui_preferences.c:202
+msgid "<b>Behavior</b>"
+msgstr "<b>Comportamiento</b>"
+
+#: src/audacious/ui_preferences.c:203
+msgid "Continue playback on startup"
+msgstr "Continuar reproducción al iniciar"
+
+#: src/audacious/ui_preferences.c:205
+msgid "Advance when the current song is deleted"
+msgstr "Avanzar cuando la pista actual sea borrada"
+
+#: src/audacious/ui_preferences.c:207
+msgid "Clear the playlist when opening files"
+msgstr "Limpiar la lista de reproducción al abrir archivos"
+
+#: src/audacious/ui_preferences.c:209
+msgid "Open files in a temporary playlist"
+msgstr "Abrir archivos en una lista de reproducción temporal"
+
+#: src/audacious/ui_preferences.c:211
+msgid "<b>Metadata</b>"
+msgstr "<b>Metadatos</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No cargar metadatos de pistas hasta su reproducción"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÃTULO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÃTULO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÃLBUM - PISTA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ÃLBUM] - PISTA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:556
+msgid "Category"
+msgstr "CategorÃa"
+
+#: src/audacious/ui_preferences.c:780
+msgid "Popup Information Settings"
+msgstr "Información en Ventanas Emergentes"
+
+#: src/audacious/ui_preferences.c:789
+msgid "<b>Cover image retrieve</b>"
+msgstr "<b>Recuperar imágenes de portada</b>"
+
+#: src/audacious/ui_preferences.c:794
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Audacious busca ciertas palabras en el nombre del archivo mientras recupera "
+"la portada del álbum. Puedes especificar éstas palabras en la lista de "
+"abajo, sepáralas usando comas."
+
+#: src/audacious/ui_preferences.c:811
+msgid "Exclude:"
+msgstr "Excluir:"
+
+#: src/audacious/ui_preferences.c:818
+msgid "Include:"
+msgstr "Incluir:"
+
+#: src/audacious/ui_preferences.c:835
+msgid "Recursively search for cover"
+msgstr "Búscar portada recursÃvamente"
+
+#: src/audacious/ui_preferences.c:845
+msgid "Search depth: "
+msgstr "Profundidad de búsqueda:"
+
+#: src/audacious/ui_preferences.c:859
+msgid "Use per-file cover"
+msgstr "Utilizar una portada por archivo"
+
+#: src/audacious/ui_preferences.c:862
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Varios</b>"
+
+#: src/audacious/ui_preferences.c:871
+msgid "Show Progress bar for the current track"
+msgstr "Mostrar barra de progreso para la pista actual"
+
+#: src/audacious/ui_preferences.c:881
+msgid "Delay until filepopup comes up: "
+msgstr "Retrasar hasta que llegue el archivo emergente:"
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizar"
+
+#: src/audacious/ui_preferences.c:1352
+msgid "<b>Song Display</b>"
+msgstr "<b>Visualización de la Pista</b>"
+
+#: src/audacious/ui_preferences.c:1361
+msgid "Show song numbers"
+msgstr "Mostrar números de pista"
+
+#: src/audacious/ui_preferences.c:1372
+msgid "Show leading zeroes (02:00 instead of 2:00)"
+msgstr "Mostrar ceros a la izquierda (02:00 en vez de 2:00)"
+
+#: src/audacious/ui_preferences.c:1394
+msgid "Show information about titlestring format"
+msgstr "Mostrar información sobre la cadena del formato de tÃtulo"
+
+#: src/audacious/ui_preferences.c:1410
+msgid "Custom string:"
+msgstr "cadena personalizada:"
+
+#: src/audacious/ui_preferences.c:1417
+msgid "Title format:"
+msgstr "Formato de TÃtulo"
+
+#: src/audacious/ui_preferences.c:1428
+msgid "<b>Popup Information</b>"
+msgstr "Información Emergente"
+
+#: src/audacious/ui_preferences.c:1443
+msgid "Show popup information for playlist entries"
+msgstr ""
+"Mostrar información emergente para las entradas de la Lista de Reproducción"
+
+#: src/audacious/ui_preferences.c:1444
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Cambiar la ventana de información emergente por la entrada apuntada en la "
+"lista de reproducción. La ventana muestra tÃtulo de la pista, nombre del "
+"álbum, género, año de publicación, número de pista, duración de la pista y "
+"arte."
+
+#: src/audacious/ui_preferences.c:1455
+msgid "Edit settings for popup information"
+msgstr "Editar ajustes de información emergente"
+
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Plugin de Salida:"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Transport"
+msgstr "Transporte"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Input"
+msgstr "Entrada"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Effect"
+msgstr "Efecto"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Visualization"
+msgstr "Visualización"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "General"
+msgstr "General"
+
+#: src/audacious/ui_preferences.c:1644
+msgid "Audacious Preferences"
+msgstr "Preferencias de Audacious"
+
+#: src/audacious/util.c:120
+#, c-format
+msgid "Could not create directory (%s): %s\n"
+msgstr "No se pudo crear el directorio (%s): %s\n"
+
+#: src/audtool/handlers_playlist.c:273
+msgid "Position not found."
+msgstr "Posición no encontrada"
+
+#: src/audtool/handlers_vitals.c:63
+msgid "No song playing."
+msgstr "Ninguna pista se está reproduciendo"
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD de Audio, pista %s"
+
+#: src/libaudcore/tuple.c:536
+msgid "Mono"
+msgstr "Monoaural"
+
+#: src/libaudcore/tuple.c:538
+msgid "Stereo"
+msgstr "Estéreo"
+
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canales"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Créditos"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traductores"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Acerca de Audacious"
+
+#: src/libaudgui/confirm.c:76
+#, c-format
+msgid ""
+"Are you sure you want to close %s? If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"¿Estás seguro que quieres cerrar %s? Si lo haces, cualquier cambio hecho "
+"desde que lalista de reproducción fue exportada se perderá."
+
+#: src/libaudgui/confirm.c:89
+msgid "_Don't show this message again"
+msgstr "_No mostrar este mensaje otra vez"
+
+#: src/libaudgui/confirm.c:126
+msgid "Rename Playlist"
+msgstr "Renombrar la Lista de Reproducción"
+
+#: src/libaudgui/effects-menu.c:74
+msgid "settings ..."
+msgstr "ajustes ..."
+
+#: src/libaudgui/equalizer.c:51
+msgid "_Enable"
+msgstr "_Habilitar"
+
+#: src/libaudgui/equalizer.c:123
+msgid "31 Hz"
+msgstr "31 Hz"
+
+#: src/libaudgui/equalizer.c:123
+msgid "63 Hz"
+msgstr "63 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "125 Hz"
+msgstr "125 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "250 Hz"
+msgstr "250 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "500 Hz"
+msgstr "500 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "1 kHz"
+msgstr "1 kHz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "2 kHz"
+msgstr "2 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "4 kHz"
+msgstr "4 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: src/libaudgui/equalizer.c:130
+msgid "Equalizer"
+msgstr "Ecualizador"
+
+#: src/libaudgui/equalizer.c:146
+msgid "Preamp"
+msgstr "Preamplificador"
+
+#: src/libaudgui/infopopup.c:207
+msgid "Track Number"
+msgstr "Número de Pista"
+
+#: src/libaudgui/infopopup.c:209
+msgid "Track Length"
+msgstr "Duración de Pista"
+
+#: src/libaudgui/infowin.c:75
+msgid "Acid Jazz"
+msgstr "Acid Jazz"
+
+#: src/libaudgui/infowin.c:76
+msgid "Acid Rock"
+msgstr "Acid Rock"
+
+#: src/libaudgui/infowin.c:77
+msgid "Ambient"
+msgstr "Ambient"
+
+#: src/libaudgui/infowin.c:78
+msgid "Bebop"
+msgstr "Bebop"
+
+#: src/libaudgui/infowin.c:79
+msgid "Bluegrass"
+msgstr "Bluegrass"
+
+#: src/libaudgui/infowin.c:80
+msgid "Blues"
+msgstr "blues"
+
+#: src/libaudgui/infowin.c:81
+msgid "Chamber Music"
+msgstr "Música de Cámara"
+
+#: src/libaudgui/infowin.c:82
+msgid "Classical"
+msgstr "Clásica"
+
+#: src/libaudgui/infowin.c:83
+msgid "Country"
+msgstr "Country"
+
+#: src/libaudgui/infowin.c:84
+msgid "Death Metal"
+msgstr "Death Metal"
+
+#: src/libaudgui/infowin.c:85
+msgid "Disco"
+msgstr "Disco"
+
+#: src/libaudgui/infowin.c:86
+msgid "Easy Listening"
+msgstr "Easy Listening"
+
+#: src/libaudgui/infowin.c:87
+msgid "Folk"
+msgstr "Folk"
+
+#: src/libaudgui/infowin.c:88
+msgid "Funk"
+msgstr "Funk"
+
+#: src/libaudgui/infowin.c:89
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
+
+#: src/libaudgui/infowin.c:90
+msgid "Gospel"
+msgstr "Gospel"
+
+#: src/libaudgui/infowin.c:91
+msgid "Grunge"
+msgstr "Grunge"
+
+#: src/libaudgui/infowin.c:92
+msgid "Hard Rock"
+msgstr "Hard Rock"
+
+#: src/libaudgui/infowin.c:93
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
+
+#: src/libaudgui/infowin.c:94
+msgid "Hip-hop"
+msgstr "Hip-hop"
+
+#: src/libaudgui/infowin.c:95
+msgid "House"
+msgstr "House"
+
+#: src/libaudgui/infowin.c:96
+msgid "Jazz"
+msgstr "Jazz"
+
+#: src/libaudgui/infowin.c:97
+msgid "Jungle"
+msgstr "Jungle"
+
+#: src/libaudgui/infowin.c:98
+msgid "Metal"
+msgstr "Metal"
+
+#: src/libaudgui/infowin.c:99
+msgid "New Age"
+msgstr "New Age"
+
+#: src/libaudgui/infowin.c:100
+msgid "New Wave"
+msgstr "New Wave"
+
+#: src/libaudgui/infowin.c:101
+msgid "Noise"
+msgstr "Noise"
+
+#: src/libaudgui/infowin.c:102
+msgid "Pop"
+msgstr "Pop"
+
+#: src/libaudgui/infowin.c:103
+msgid "Punk Rock"
+msgstr "Punk Rock"
+
+#: src/libaudgui/infowin.c:104
+msgid "Rap"
+msgstr "Rap"
+
+#: src/libaudgui/infowin.c:105
+msgid "Reggae"
+msgstr "Reggae"
+
+#: src/libaudgui/infowin.c:106
+msgid "Rock"
+msgstr "Rock"
+
+#: src/libaudgui/infowin.c:107
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
+
+#: src/libaudgui/infowin.c:108
+msgid "Rhythm and Blues"
+msgstr "Rhythm and Blues"
+
+#: src/libaudgui/infowin.c:109
+msgid "Ska"
+msgstr "Ska"
+
+#: src/libaudgui/infowin.c:110
+msgid "Soul"
+msgstr "Soul"
+
+#: src/libaudgui/infowin.c:111
+msgid "Swing"
+msgstr "Swing"
+
+#: src/libaudgui/infowin.c:112
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:113
+msgid "Trip-hop"
+msgstr "Trip-hop"
+
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
+msgid "<span size=\"small\">n/a</span>"
+msgstr "<span size=\"small\">n/d</span>"
+
+#: src/libaudgui/infowin.c:267
+msgid "Metadata updated successfully"
+msgstr "Metadatos actualizados existósamente"
+
+#: src/libaudgui/infowin.c:272
+msgid "Metadata updating failed"
+msgstr "Falló actualización de metadatos"
+
+#: src/libaudgui/infowin.c:320
+msgid "Track Information"
+msgstr "Información de pistas"
+
+#: src/libaudgui/infowin.c:352
+msgid "<span size=\"small\">Format:</span>"
+msgstr "<span size=\"small\">Formato:</span>"
+
+#: src/libaudgui/infowin.c:356
+msgid "<span size=\"small\">Quality:</span>"
+msgstr "<span size=\"small\">Calidad:</span>"
+
+#: src/libaudgui/infowin.c:359
+msgid "<span size=\"small\">Bitrate:</span>"
+msgstr "<span size=\"small\">Bitrate:</span>"
+
+#: src/libaudgui/infowin.c:389
+msgid "<span size=\"small\">Title</span>"
+msgstr "<span size=\"small\">TÃtulo</span>"
+
+#: src/libaudgui/infowin.c:401
+msgid "<span size=\"small\">Artist</span>"
+msgstr "<span size=\"small\">Artista</span>"
+
+#: src/libaudgui/infowin.c:413
+msgid "<span size=\"small\">Album</span>"
+msgstr "<span size=\"small\">Ãlbum</span>"
+
+#: src/libaudgui/infowin.c:425
+msgid "<span size=\"small\">Comment</span>"
+msgstr "<span size=\"small\">Comentario</span>"
+
+#: src/libaudgui/infowin.c:437
+msgid "<span size=\"small\">Genre</span>"
+msgstr "<span size=\"small\">Género</span>"
+
+#: src/libaudgui/infowin.c:458
+msgid "<span size=\"small\">Year</span>"
+msgstr "<span size=\"small\">Año</span>"
+
+#: src/libaudgui/infowin.c:469
+msgid "<span size=\"small\">Track Number</span>"
+msgstr "<span size=\"small\">Número de Pista</span>"
+
+#: src/libaudgui/infowin.c:548
+#, c-format
+msgid "%d kb/s"
+msgstr "%d kb/s"
+
+#: src/libaudgui/infowin.c:575
+#, c-format
+msgid "No info available for %s.\n"
+msgstr "No hay información disponible para %s.\n"
+
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Saltar al Tiempo"
+
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Exportar Lista de Reproducción"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importar Lista de Reproducción"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "¿Sobreescribir %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Administrador de colas:"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Open Files"
+msgstr "Abrir Archivos"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Add Files"
+msgstr "Agregar Archivos"
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Open"
+msgstr "Cerrar dialogo al Abrir"
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Add"
+msgstr "Cerrar dialogo al Agregar"
+
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
+msgid "_Queue"
+msgstr "A la _Cola"
+
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Quitar de la _cola"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Saltar a la Pista"
+
+#: src/libaudgui/ui_jumptotrack.c:281
+msgid "Filter: "
+msgstr "Filtro: "
+
+#: src/libaudgui/ui_jumptotrack.c:282
+msgid "_Filter:"
+msgstr "_Filtro:"
+
+#: src/libaudgui/ui_jumptotrack.c:292
+msgid "Remember"
+msgstr "Recordar"
+
+#: src/libaudgui/ui_jumptotrack.c:299
+msgid "Clea_r"
+msgstr "Limpia_r"
+
+#: src/libaudgui/ui_jumptotrack.c:319
+msgid "Close on Jump"
+msgstr "Cerrar al Saltar"
+
+#: src/libaudgui/ui_playlist_manager.c:253
+msgid "Playlist Manager"
+msgstr "Administrador de Listas de Reproducción"
+
+#: src/libaudgui/ui_playlist_manager.c:280
+msgid "Entries"
+msgstr "Entradas"
+
+#: src/libaudgui/ui_playlist_manager.c:301
+msgid "_Rename"
+msgstr "_Renombrar"
+
+#: src/libaudgui/ui_playlist_manager.c:325
+msgid "_Close dialog on activating playlist"
+msgstr "_Cerrar dialogo al activar Lista de Reproducción"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Open URL"
+msgstr "Abrir URL"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Add URL"
+msgstr "Agregar URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"Más mensajes han sido ocultados."
+
+#: src/libeggsmclient/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "El archivo no es un archivo .desktop válido"
+
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versión '%s' de archivo desktop no reconocida"
+
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: src/libeggsmclient/eggdesktopfile.c:1116
+msgid "Application does not accept documents on command line"
+msgstr "La aplicación no acepta documentos en la lÃnea de comandos"
+
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opción de lanzamiento no reconocida: %d"
+
+#: src/libeggsmclient/eggdesktopfile.c:1391
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No puedes pasar documentos URIs a una entrada del escritorio 'Type=Link'"
+
+#: src/libeggsmclient/eggdesktopfile.c:1412
+msgid "Not a launchable item"
+msgstr "No es una cosa lanzable"
+
+#: src/libeggsmclient/eggsmclient.c:226
+msgid "Disable connection to session manager"
+msgstr "Deshabilitar conección con el administrador de sesión"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "Specify file containing saved configuration"
+msgstr "Especificar archivo que contiene configuración guardada"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "FILE"
+msgstr "ARCHIVO"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "Specify session management ID"
+msgstr "EspecÃficar ID de administración de sesión"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "ID"
+msgstr "ID"
+
+#: src/libeggsmclient/eggsmclient.c:253
+msgid "Session management options:"
+msgstr "Opciones de administración de sesión:"
+
+#: src/libeggsmclient/eggsmclient.c:254
+msgid "Show session management options"
+msgstr "Mostrar opciones de administración de sesión"
+
+
diff --git a/po/et.po b/po/et.po
index 8a20b1e..672564d 100644
--- a/po/et.po
+++ b/po/et.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audacious 1.4.0\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-11-25 22:02+0200\n"
"Last-Translator: Ivar Smolin <okul at linux.ee>\n"
"Language-Team: Estonian <et at li.org>\n"
@@ -17,6 +17,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (vigane UTF-8)"
@@ -101,113 +112,113 @@ msgstr "Eesti:"
msgid "Finnish:"
msgstr "Soome:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Prantsuse:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Saksa:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Gruusia:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Kreeka:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Ungari:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Itaalia:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Jaapani:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Koera:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Horvaatia:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Leedu:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Makedoonia:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Poola:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Brasiilia portugali:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Rumeenia:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Vene:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Serbia (ladina)"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Serbia (kirillitsa)"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Hiina lihtsustatud:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Slovaki:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Hispaania:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Rootsi:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Hiina traditsiooniline:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Türgi:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ukraina:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Kõmri:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "Esitusnimekirja laadimine"
@@ -217,80 +228,65 @@ msgstr "Esitusnimekirja laadimine"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Esitusnimekirjas eelmisele loole hüppamine"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Praeguse esitusnimekirja esitamise alustamine"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Praeguse loo pausimine"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Praeguse loo seiskamine"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Esitamise korral pausimine, pausi korral esitamine"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Esitusnimekirjas järgmisele loole hüppamine"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "Failile hüppamise dialoogi kuvamine"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Failide lisamine esitusnimekirja."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Uute failide lisamine ajutisse esitusnimekirja"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Peaakna kuvamine"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Audacious'e kõigi avatud akende kuvamine"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "Näita peaakent"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "FAIL..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- multimeediafailide esitamine"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -299,7 +295,7 @@ msgstr ""
"%s: %s\n"
"Täiendava teabe saamiseks proovi `%s --help'.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -307,273 +303,243 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Uus esitusnimekiri"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Esitusnimekiri"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Pluginad"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Esitaja"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Pealkiri"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Loo number"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Žanr"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Failinimi"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Faili rada"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Kuupäev"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Aasta"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Kommentaar"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Koodek"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Kvaliteet"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "Jaapani:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "Jaapani:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Jooned"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "Koera:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "Vene:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "Kreeka:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
#, fuzzy
msgid "Turkish"
msgstr "Türgi:"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Poola:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Vormingu tuvastamine</b>"
+msgid "Single track mode"
+msgstr "Loo üksikasjade vaatamine"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
#, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">Kõik audiovood teisendatakse sellele "
-"diskreetimissagedusele.\n"
-"See peaks olema võrdne helikaardi või väljundplugina\n"
-"suurima diskreetimissagedusega.</span>"
+msgid "Album mode"
+msgstr "Album: "
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Helivaljuse juhtimine</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Vormingu tuvastamine</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Kasutatakse tarkvaralist helivaljuse juhtimist"
-
-#: src/audacious/ui_preferences.c:154
#, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Tarkvaralise helivaljuse juhtimise kasutamine. See võib olla kasulik "
-"olukorras, kus sinu audiosüsteem ei toeta esitatava audio helivaljuse "
-"juhtimist."
+msgid "Bit depth:"
+msgstr "<b>Vormingu tuvastamine</b>"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Puhvri suurus:"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- multimeediafailide esitamine"
+msgid "Use software volume control (not recommended)"
+msgstr "Kasutatakse tarkvaralist helivaljuse juhtimist"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Proksi sätted</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "Proksi kasutamine on lubatud"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metaandmed</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Loo üksikasjade vaatamine"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>Hiireratas</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Teabe hüpikaken</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- multimeediafailide esitamine"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Proksi hostinimi:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Proksi port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Proksi kasutajanimi:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Proksi parool:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Proksi sätted</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Proksi kasutamine on lubatud"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Kasutatakse proksi autentimist"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -581,15 +547,15 @@ msgstr ""
"<span size=\"small\">Pärast nende sätete muutmist tuleb Audacious "
"taaskäivitada.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Automaatne kooditabeli tuvastaja:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Kooditabelite tagavara:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -601,46 +567,46 @@ msgstr ""
"proovitakse metaandmeid teisendada tagavaranimekirjas olevatest tabelitest "
"UTF-8 tabelisse."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Vormingu tuvastamine</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Käivitamisel jätkatakse esitust"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Vastavuses olevatest kirjetest koostatakse uus esitusnimekiri"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Uute failide lisamine ajutisse esitusnimekirja"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metaandmed</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Kategooria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "Hüpikandmete sätted"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Kaanepildi hankimine</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -650,100 +616,100 @@ msgstr ""
"kindlaksmääratud sõnu. Neid sõnu on võimalik allpool olevate nimekirjade "
"abil määrata, eraldades sõnad üksteisest komadega."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Välistatud:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Kaasatud:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Kaanepilti otsitakse rekursiivselt"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Otsingu sügavus: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Kasutatakse failipõhist kaanepilti"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Muu</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Esitatava loo kohta näidatakse edenemisriba"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "Viivitus enne hüpikakna avanemist: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Loo kuvamine</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Pealkirjastringi vormingu kohta andmete näitamine"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "Kohandatud string:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Kohandatud string:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Pealkirja vorming:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Teabe hüpikaken</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Hüpikaknas näidatakse esitusnimekirja kirjete kohta andmeid"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -754,54 +720,47 @@ msgstr ""
"kuvatakse andmeid loo pealkirja, numbri ja pikkuse; albumi nime, žanri, ja "
"avaldamise aasta; ning kaanepildi kohta."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Andmete hüpikakna sätete muutmine"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audiosüsteem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Puhvri suurus:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Praegune väljundplugin:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Sisendplugin: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Tõlkijad"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efektid</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Visualiseerimine"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious'e eelistused"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Kataloogi pole võimalik luua (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -820,22 +779,24 @@ msgstr "stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Peaakna kuvamine"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Esitusnimekirja salvestamine"
@@ -897,11 +858,11 @@ msgstr "Ekvalaiser"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Loo number"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Loo kestus"
@@ -1137,6 +1098,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Hüppa ajahetkele"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Esitusnimekirja laadimine"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Esitusnimekirja laadimine"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Audacious'est lähemalt"
@@ -1198,19 +1182,19 @@ msgstr "Nulli A-B"
msgid "Close on Jump"
msgstr "Pärast hüpet suletakse aken"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Esitusnimekirja haldur"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Kirjeid"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Muuda nime"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Dialoog sulgetakse pärast faili avamist"
@@ -1223,6 +1207,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1232,25 +1222,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1285,6 +1275,46 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
msgid "Show session management options"
msgstr "Aknahalduri dekoratsioonid on nähtaval"
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">Kõik audiovood teisendatakse sellele "
+#~ "diskreetimissagedusele.\n"
+#~ "See peaks olema võrdne helikaardi või väljundplugina\n"
+#~ "suurima diskreetimissagedusega.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Helivaljuse juhtimine</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Tarkvaralise helivaljuse juhtimise kasutamine. See võib olla kasulik "
+#~ "olukorras, kus sinu audiosüsteem ei toeta esitatava audio helivaljuse "
+#~ "juhtimist."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metaandmed</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Teabe hüpikaken</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audiosüsteem</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Praegune väljundplugin:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Audacious'e kõigi avatud akende kuvamine"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Kuva pole võimalik avada, töö lõpetatakse.\n"
@@ -1508,9 +1538,6 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Selle faili jaoks pole teadaolevat sisendpluginat"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Sisendplugin: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1546,9 +1573,6 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
#~ "See peaks olema võrdne helikaardi või väljundplugina\n"
#~ "suurima diskreetimissagedusega.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Vormingu tuvastamine</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Failivormingud tuvastatakse laiendi alusel."
@@ -1648,9 +1672,6 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "Metaandmete (sildiandmete) laadimine helifailidest."
-#~ msgid "Jump to Time"
-#~ msgstr "Hüppa ajahetkele"
-
#~ msgid "minutes:seconds"
#~ msgstr "minutit:sekundit"
diff --git a/po/eu.po b/po/eu.po
index dadd9e0..981ccd5 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audacious_2.0_eu\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2009-04-02 22:22+0200\n"
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo at euskalgnu.org>\n"
"Language-Team: Basque <itzulpena at euskalgnu.org>\n"
@@ -19,6 +19,17 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (UTF-8 baliogabea)"
@@ -103,113 +114,113 @@ msgstr "Estoniera:"
msgid "Finnish:"
msgstr "Finlandiera:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Frantsesa:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Alemana:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Georgiera:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Grekoa:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hindiera:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Hungariera:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Italiera:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Japoniera:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Koreera:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Kroaziera:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Lituaniera:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Mazedoniera:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Poloniera:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Brasilgo portugesa:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Errumaniera:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Errusiera:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Serbiera (Latinoa):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Serbiera (Zirilikoa):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Txinera soildua:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Eslovakiera:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Gaztelania:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Suediera:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Txinera tradizionala:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Turkiera:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ukrainera:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Galesa:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "Kargatu erreprodukzio-zerrenda"
@@ -219,79 +230,64 @@ msgstr "Kargatu erreprodukzio-zerrenda"
msgid "Error importing Winamp EQF file '%s'"
msgstr "Errorea '%s' Winamp EQF fitxategia inportatzean"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Erreprodukzio-zerrendan atzerantz egiten du"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Uneko zerrenda erreproduzitzen hasten da"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Uneko kanta pausarazten du"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Uneko kanta geldiarazten du"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Erreproduzitzen ari bada pausarazi, bestela erreproduzitu"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Erreprodukzio-zerrendan aurrerantz egiten du"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "Bistaratu 'Saltatu fitxategira' elkarrizketa-koadroa"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Fitxategiak gehitzen dizkio zerrendari."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Gehitu fitxategi berriak aldi baterako erreprodukzio-zerrendari"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Bistaratu nagusia leihoa"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Bistaratu Audacious-en irekitako leiho guztiak"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr "Erakutsi bertsioa"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "FITXATEGIA..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- erreproduzitu multimedia fitxategiak"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -300,7 +296,7 @@ msgstr ""
"%s: %s\n"
"Exekutatu '%s --help' informazio gehiagorako.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -308,262 +304,236 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Erreprodukzio-zerrenda berria"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Audioa"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Irabazpena"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Erreprodukzio-zerrenda"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Pluginak"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Albuma"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Titulua"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Pista-zenbakia"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Generoa"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Fitxategi-izena"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Fitxategiaren bide-izena"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Urtea"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Iruzkina"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Kodeka"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Kalitatea"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Bat ere ez"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "Japoniarra"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "Taiwanera"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "Txinatarra"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Korearra"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Errusiarra"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "Grekoa"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "Hebrearra"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Turkiarra"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "Arabiarra"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Poloniera:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "Zelta"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "Unibertsala"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit-sakonera</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "Ikusi pistaren xehetasunak"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Irteerako bit-sakonera:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Korronte guztiak bit-sakonera honetara bihurtuko dira.\n"
-"Hau soinu-txartelak edo irteerako pluginak onartutako\n"
-"gehienezko bit-sakonera izan beharko luke."
+#, fuzzy
+msgid "Album mode"
+msgstr "Albuma: "
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Bolumen-kontrola</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Formatuaren detekzioa</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Erabili softwarearen bolumen-kontrola"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Irteerako bit-sakonera:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Erabili softwarearen bolumen-kontrola. Oso erabilgarria izan daiteke audioko "
-"sistemak erreprodukzioaren bolumena ezin duenean kontrolatu."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Bufferraren tamaina:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- erreproduzitu multimedia fitxategiak"
+msgid "Use software volume control (not recommended)"
+msgstr "Erabili softwarearen bolumen-kontrola"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Irabazpenaren modua</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "Gaitu irabazpena"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadatuak</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Ikusi pistaren xehetasunak"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albuma: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>Saguaren gurpila</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Laster-leihoa</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Gaitu tontorraren datuen mozketa saihestea"
+msgid "Amplify untagged files:"
+msgstr "- erreproduzitu multimedia fitxategiak"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Proxy-aren ostalari-izena:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Proxy-aren ataka:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Proxy-aren erabiltzaile-izena:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Proxy-aren pasahitza:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Proxy-aren konfigurazioa</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Gaitu proxy-a erabiltzea"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Erabili autentifikazioa proxy-arekin"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -571,15 +541,15 @@ msgstr ""
"<span size=\"small\">Ezarpen hauen aldaketek Audacious berrabiaraztea "
"eskatzen dute.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Karaktere-kodeketaren detekzio automatikoa:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Karaktere-kodeketa:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -591,46 +561,46 @@ msgstr ""
"egin bada, zerrenda honetako kodeketak erabiliko dira metadatuen kodeketako "
"hautagai gisa, eta kodeketa hauetatik UTF-8ra bihurtzen saiatuko da."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Bit-sakonera</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Jarraitu erreprodukzioa abiaraztean"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Sortu erreprodukzio-zerrenda berria bat datozten sarrerekin"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Gehitu fitxategi berriak aldi baterako erreprodukzio-zerrendari"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metadatuak</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Kategoria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "Laster-leihoen ezarpenak"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Eskuratu azaleko irudia</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -640,100 +610,100 @@ msgstr ""
"fitxategi-izenean. Hitz horiek azpiko zerrendan zehatz ditzakezu, komaz "
"bereiztuta."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Baztertu:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Sartu:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Bilatu azala errekurtsiboki"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Sakonera:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Erabili azala fitxategiko"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Hainbat</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Erakutsi uneko kantaren progresio-barra"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "Atzerapena laster-leihoa agertzeko: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Kanten ikuspegia</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Erakutsi titulu-formatuari buruzko informazioa"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "TITULUA"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "ARTISTA - TITULUA"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "ARTISTA - ALBUMA - TITULUA"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "ARTISTA - ALBUMA - PISTA. TITULUA"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "ARTISTA - [ALBUMA] - PISTA. TITULUA"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ALBUMA - TITULUA"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Pertsonalizatua"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Kate pertsonalizatua:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Tituluaren formatua:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Laster-leihoa</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
"Erakutsi erreprodukzio-zerrendako sarreren informazioaren laster-leihoa"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -744,54 +714,47 @@ msgstr ""
"titulua, albumaren izena, generoa, argitalpen urtea, pista-zenbakia, "
"pistaren iraupena eta irudiak erakutsiko ditu."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Editatu laster-leihoaren ezarpenak"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio-sistema</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Bufferraren tamaina:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Uneko irteerako plugina:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Sarrerako plugina: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Itzultzaileak"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efektuak</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Bistaratzea"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious-en hobespenak"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Ezin izan da %s direktorioa sortu: %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -810,22 +773,24 @@ msgstr "estereoa"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Ez erakutsi mezu hau aurrerantzean"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Gorde erreprodukzio-zerrenda"
@@ -889,11 +854,11 @@ msgstr "Erakutsi ekualizadorea"
msgid "Preamp"
msgstr "Aurre-anp:"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Pista-zenbakia"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Pistaren luzera"
@@ -1125,6 +1090,29 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Saltatu denborara"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Kargatu erreprodukzio-zerrenda"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Kargatu erreprodukzio-zerrenda"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Audacious-i buruz"
@@ -1186,19 +1174,19 @@ msgstr "Garbitu A-B"
msgid "Close on Jump"
msgstr "Itxi saltatzean"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Erreprodukzio-zerrendaren kudeatzailea"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Sarrerak"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Izena aldatu"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Itxi elkarrizketa-koadroa fitxategia ireki ondoren"
@@ -1211,6 +1199,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Ez da baliozko '.desktop' fitxategia"
@@ -1220,26 +1214,26 @@ msgstr "Ez da baliozko '.desktop' fitxategia"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Mahaigaineko fitxategiaren '%s' bertsioa ezezaguna"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "%s abiarazten"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "Aplikazioak ez du dokumenturik onartzen komando-lerroan"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Abiarazteko parametro ezezaguna: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"Ezin zaio dokumentuen URIrik eman 'Type=Link' motako mahaigaineko sarrerari"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "Ez da elementu abiarazgarria"
@@ -1273,6 +1267,52 @@ msgstr "Saio-kudeaketaren aukerak"
msgid "Show session management options"
msgstr "Erakutsi saio-kudeaketaren aukerak"
+#~ msgid "Replay Gain"
+#~ msgstr "Irabazpena"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bit-sakonera</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Korronte guztiak bit-sakonera honetara bihurtuko dira.\n"
+#~ "Hau soinu-txartelak edo irteerako pluginak onartutako\n"
+#~ "gehienezko bit-sakonera izan beharko luke."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Bolumen-kontrola</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Erabili softwarearen bolumen-kontrola. Oso erabilgarria izan daiteke "
+#~ "audioko sistemak erreprodukzioaren bolumena ezin duenean kontrolatu."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metadatuak</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Laster-leihoa</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Gaitu tontorraren datuen mozketa saihestea"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audio-sistema</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Uneko irteerako plugina:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Bistaratu Audacious-en irekitako leiho guztiak"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: ezin da pantaila ireki. Irtetzen.\n"
@@ -1762,9 +1802,6 @@ msgstr "Erakutsi saio-kudeaketaren aukerak"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Fitxategi honek ez du sarrerako pluginik ezagutu"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Sarrerako plugina: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1806,9 +1843,6 @@ msgstr "Erakutsi saio-kudeaketaren aukerak"
#~ "dira. Hau soinu-txartelak edo irteerako pluginak onartutako\n"
#~ "gehienezko bit-sakonera izan beharko luke.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formatuaren detekzioa</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Detektatu fitxategi-formatuak luzapenaren arabera."
@@ -1940,9 +1974,6 @@ msgstr "Erakutsi saio-kudeaketaren aukerak"
#~ msgid "Can't jump to time when no track is being played.\n"
#~ msgstr "Ezin da denborara saltatu pista erreproduzitzen hasi gabe.\n"
-#~ msgid "Jump to Time"
-#~ msgstr "Saltatu denborara"
-
#~ msgid "minutes:seconds"
#~ msgstr "minutu:segundo"
diff --git a/po/fi.po b/po/fi.po
index 1d82b24..a8f341f 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -4,28 +4,39 @@
# This file is distributed under the same license as Audacious Media Player.
# Pauli Virtanen <pauli.virtanen at hut.fi>, 2004.
# Matti Hämäläinen, 2008.
+# Elias Julkunen <elias.julkunen at gmail.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: fi\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2008-04-09 12:12+0300\n"
-"Last-Translator: Matti Hämäläinen <ccr at tnsp.org>\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
+"PO-Revision-Date: 2011-05-23 23:13+0100\n"
+"Last-Translator: Elias Julkunen <elias.julkunen at gmail.com>\n"
"Language-Team: Finnish <fi at li.org>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Etsitään..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d tiedosto löytyi"
+msgstr[1] "%d tiedostoa löytyi"
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
-msgstr " (virheellistä UTF-8:aa)"
+msgstr " (virheellinen UTF-8)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "0.1.x:n kehittäjät:"
+msgstr "Pääkehittäjät:"
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -44,22 +55,20 @@ msgid "Patch authors:"
msgstr "Paikkojen tekijät:"
#: src/audacious/credits.c:126
-#, fuzzy
msgid "1.x developers:"
-msgstr "0.1.x:n kehittäjät:"
+msgstr "1.x-version kehittäjät:"
#: src/audacious/credits.c:148
msgid "BMP Developers:"
msgstr "BMP:n kehittäjät:"
#: src/audacious/credits.c:180
-#, fuzzy
msgid "Belarusian:"
-msgstr "bulgaria:"
+msgstr "valko-venäjä:"
#: src/audacious/credits.c:183
msgid "Basque:"
-msgstr ""
+msgstr "baski:"
#: src/audacious/credits.c:186
msgid "Brazilian Portuguese:"
@@ -75,12 +84,11 @@ msgstr "bulgaria:"
#: src/audacious/credits.c:196
msgid "Catalan:"
-msgstr ""
+msgstr "katalaani:"
#: src/audacious/credits.c:199
-#, fuzzy
msgid "Chinese:"
-msgstr "Kiina"
+msgstr "kiina:"
#: src/audacious/credits.c:202
msgid "Croatian:"
@@ -88,7 +96,7 @@ msgstr "kroatia:"
#: src/audacious/credits.c:205
msgid "Czech:"
-msgstr "tshekki:"
+msgstr "tšekki:"
#: src/audacious/credits.c:208
msgid "Dutch:"
@@ -102,195 +110,176 @@ msgstr "eesti:"
msgid "Finnish:"
msgstr "suomi:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "ranska:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "saksa:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
-msgstr ""
+msgstr "georgia:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "kreikka:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "unkari:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "italia:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "japani:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "korea:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:258
msgid "Latvian:"
-msgstr "kroatia:"
+msgstr "latvia:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "liettua:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "makedonia:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "puola:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:274
msgid "Portuguese:"
-msgstr "portugali (Brasilia):"
+msgstr "portugali:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "romania:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "venäjä:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "serbia (latin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "serbia (kyrillinen):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "yksinkertaistettu kiina:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "slovakki:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "espanja:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "ruotsi:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "perinteinen kiina:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "turkki:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "ukraina:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "kymri:"
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:256
msgid "Temporary Playlist"
-msgstr "Avaa soittolista"
+msgstr "Tilapäinen soittolista"
#: src/audacious/equalizer_preset.c:186
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr "Virhe luettaessa WinAmp EQF tiedostoa '%s'"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Virhe luettaessa Winamp EQF -tiedostoa '%s'"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Siirry taaksepäin soittolistassa"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Soita nykyistä soittolistaa"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
-msgstr "Tauota nykyinen kappale"
+msgstr "Keskeytä nykyinen kappale"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
-msgstr "Pysäytä nykyisen kappaleen soittaminen"
+msgstr "Pysäytä nykyinen kappale"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
-msgstr "Pidä tauko jos kappale soi, muuten aloita soittaminen"
+msgstr "Keskeytä jos kappale soi, muuten jatka soittamista"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Siirry eteenpäin soittolistassa"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
-msgstr "Näytä tiedostoon hyppäämisdialogi"
+msgstr "Näytä Siirry tiedostoon -valintaikkuna"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:263
msgid "Add files to the playlist"
-msgstr "Lisää tiedostot soittolistaan."
+msgstr "Lisää tiedostoja soittolistaan"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
-msgstr "Lisää uudet tiedostot väliaikaiseen soittolistaan"
+msgstr "Lisää uusia tiedostoja väliaikaiseen soittolistaan"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Näytä pääikkuna"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Näytä kaikki avoimet Audacious -ikkunat"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr "Näytä versio"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
-msgstr ""
+msgstr "Näytä virheenjäljitysviestit"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "TIEDOSTO..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- soita multimediatiedostoja"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -299,611 +288,569 @@ msgstr ""
"%s: %s\n"
"Kokeile `%s --help' saadaksesi lisätietoja.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
"data loss. If Audacious is not running, you can safely ignore this "
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
+"Audacious näyttää olevan jo käynnissä, mutta se ei vastaa. Voit käynnistää "
+"toisen instanssin ohjelmasta, mutta tämä voi aiheuttaa tietojen katoamista. "
+"Jos Audacious ei ole käynnissä, voit turvallisesti ohittaa tämän viestin. "
+"Napsauta OK käynnistääksesi Audaciouksen tai Peruuta poistuaksesi."
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "Purkajaa ei löytynyt tiedostomuodolle %s."
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
-msgstr ""
+msgstr "Puskuroidaan..."
-#: src/audacious/playlist-new.c:288
-#, fuzzy
+#: src/audacious/playlist-new.c:303
msgid "Untitled Playlist"
-msgstr "Uusi soittolista"
+msgstr "Nimetön soittolista"
-#: src/audacious/ui_preferences.c:88
-#, fuzzy
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
-msgstr "MPEG-ääniliitännäisestä"
-
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ReplayGain"
+msgstr "Ãäni"
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
-msgstr ""
+msgstr "Verkko"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Soittolista"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Liitännäiset"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Esittäjä"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Albumi"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Nimi"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Kappalenumero"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Tyylilaji"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Tiedostonimi"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Tiedostopolku"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Päiväys"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Vuosi"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Kommentti"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
-msgstr "Kodekki"
+msgstr "Koodekki"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Laatu"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Ei mikään"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "Japani"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "Taiwan"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "Kiina"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Korea"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Venäjä"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "Kreikka"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "Heprea"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Turkki"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "Arabia"
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
+#: src/audacious/ui_preferences.c:122
msgid "Polish"
-msgstr "puola:"
+msgstr "Puola"
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
-msgstr "Kelttiläinen"
+msgstr "balttia"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "Yleismaailmallinen"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bittisyvyys</b>"
+msgid "Single track mode"
+msgstr "Yksittäinen kappale -tila"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+msgid "Album mode"
+msgstr "Albumitila"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ãänenvoimakkuuden säädöt</b>"
-
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Käytä ohjelmistopohjaista äänenvoimakkuussäätöä"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Ulostulon bittisyvyys:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Puskurin koko:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- soita multimediatiedostoja"
+msgid "Use software volume control (not recommended)"
+msgstr "Käytä ohjelmapohjaista äänenvoimakkuuden hallintaa"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:160
msgid "<b>Replay Gain</b>"
-msgstr "<b>Tiedostonimi</b>"
+msgstr "<b>Replay Gain</b>"
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
-msgstr "Käytä ReplayGainia"
+msgstr "Käytä Replay Gainia"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Säädä tasoja</b>"
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metatiedot</b>"
+msgid "Amplify all files:"
+msgstr "Vahvista kaikki tiedostot:"
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Näytä kappaleen tiedot"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albumi: "
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Hiiren rulla</b>"
+msgid "Amplify untagged files:"
+msgstr "Vahvista luokittelemattomat tiedostot:"
#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "MPEG-ääniliitännäisen asetukset"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Estä huippujen leikkautuminen"
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr "Välityspalvelimen osoite:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Välityspalvelimen portti:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Välityspalvelimen käyttäjätunnus:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Välityspalvelimen salasana:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Välityspalvelinasetukset</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Käytä välityspalvelinta"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
-msgstr "Käytä autentikointia"
+msgstr "Käytä tunnistautumista välityspalvelimen kanssa"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr ""
-"<span size=\"small\">Näiden asetusten muuttaminen vaatii ohjelman "
+"<span size=\"small\">Näiden asetusten muuttaminen vaatii Audaciouksen "
"uudelleenkäynnistyksen.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr ""
+msgstr "Automaattinen merkistökoodauksen tunnistus:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
-msgstr ""
+msgstr "Toissijaiset merkistökoodaukset:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
"in this list would be treated as candidates of the encoding of metadata, and "
"fall back conversion from these encodings to UTF-8 would be attempted."
msgstr ""
+"Luettelo metatietojen muuttamiseen käytettävistä toissijaisista "
+"merkistökoodauksista. Jos automaattinen merkistökoodauksen tunnistus "
+"epäonnistuu tai se on pois käytöstä, tämän luettelon koodauksia pidetään "
+"ehdokkaina metatietojen koodauksille, ja muuntoa näistä koodauksista UTF-8-"
+"koodaukseen yritetään."
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
-msgstr "<b>Bittisyvyys</b>"
+msgstr "<b>Käytös</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
-msgstr ""
+msgstr "Jatka soittoa käynnistettäessä"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Jatka, kun nykyinen kappale on poistettu"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
-msgstr "Valitsee kaikki soittolistan kappaleet."
+msgstr "Tyhjennä soittolista avattaessa tiedostoja"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
-msgstr "Lisää uudet tiedostot väliaikaiseen soittolistaan"
+msgstr "Avaa tiedostot väliaikaisessa soittolistassa"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metatiedot</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Luokka"
-#: src/audacious/ui_preferences.c:815
-#, fuzzy
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
-msgstr "MPEG-ääniliitännäisen asetukset"
+msgstr ""
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
-msgstr "Automaattinen tunnistus"
+msgstr "<b>Kansikuvien haku</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
+"Albumin kansikuvaa etsittäessä Audacious etsii tiettyjä sanoja "
+"tiedostonnimessä. Voit määritellä nämä sanat alla olevissa luetteloissa "
+"pilkuilla erotettuina."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
-msgstr ""
+msgstr "Jätä huomiotta:"
-#: src/audacious/ui_preferences.c:853
-#, fuzzy
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
-msgstr "Riippumaton"
+msgstr "Siällytä:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
-msgstr ""
+msgstr "Etsi albumin kansikuvaa rekursiivisesti"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Haun syvyys: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
-msgstr ""
+msgstr "Käytä kansikuvia yksittäisille tiedostoille"
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Sekalaista</b>"
+msgstr "<b>Sekalaista</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Näytä edistymispalkki nykyiselle kappaleelle"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Kappaleen näyttö</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
-msgstr ""
+msgstr "Näytä kappalenumerot"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Näytä edeltävät nollat (02:00 2:00:n sijasta)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Näytä tietoja kappaleiden nimiketekstin muodosta"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
-msgstr ""
+msgstr "NIMI"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
-msgstr ""
+msgstr "ARTISTI - NIMI"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
+msgstr "ARTISTI - ALBUMI - NIMI"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
+msgstr "ARTISTI - ALBUMI - KAPPALENUMERO. NIMI"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
+msgstr "ARTISTI [ ALBUMI ] - KAPPALENUMERO. NIMI"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
-msgstr ""
+msgstr "ALBUMI - NIMI"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Muu ..."
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Muu merkkijono:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Nimikkeen muoto:"
-#: src/audacious/ui_preferences.c:1545
-#, fuzzy
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
-msgstr "MPEG-ääniliitännäisen asetukset"
+msgstr ""
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Ãänijärjestelmä</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Puskurin koko:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
msgstr "Nykyinen ulostuloliitännäinen:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1556
msgid "Transport"
-msgstr "Kääntäjät"
+msgstr "Siirtäminen"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
-msgstr ""
+msgstr "Syöte"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1557
msgid "Effect"
-msgstr "<b>Tehosteet</b>"
+msgstr "Tehosteet"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Visualisointi"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
-msgstr ""
+msgstr "Yleiset"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audaciouksen asetukset"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "Kansion (%s) luominen epäonnistui: %s\n"
+msgstr "Hakemiston (%s) luominen epäonnistui: %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
-msgstr ""
+msgstr "Sijaintia ei löytynyt."
#: src/audtool/handlers_vitals.c:64
msgid "No song playing."
-msgstr ""
+msgstr "Mitään kappaletta ei soiteta."
#: src/libaudcore/tuple.c:685
msgid "Mono"
-msgstr ""
+msgstr "Mono"
#: src/libaudcore/tuple.c:687
-#, fuzzy
msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanava"
+msgstr[1] "%d kanavaa"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Suljetaanko soittolista %s? Jos suljetaan, niin kaikki tehdyt muutokset "
+"soittolistan tallentamisesta saakka menetetään."
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:86
msgid "_Don't show this message again"
-msgstr "Ãlä näytä tätä varoitusta enää"
+msgstr "_Ãlä näytä tätä viestiä enää"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:124
msgid "Rename Playlist"
-msgstr "Tallenna soittolista"
+msgstr "Nimeä soittolista uudelleen"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "asetukset ..."
#: src/libaudgui/equalizer.c:68
-#, fuzzy
msgid "_Enable"
-msgstr "Käytössä"
+msgstr "_Käytä"
#: src/libaudgui/equalizer.c:140
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
#: src/libaudgui/equalizer.c:140
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
#: src/libaudgui/equalizer.c:141
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
#: src/libaudgui/equalizer.c:141
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
#: src/libaudgui/equalizer.c:141
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
#: src/libaudgui/equalizer.c:141
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
#: src/libaudgui/equalizer.c:141
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
#: src/libaudgui/equalizer.c:142
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
#: src/libaudgui/equalizer.c:142
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
#: src/libaudgui/equalizer.c:142
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
#: src/libaudgui/equalizer.c:147
-#, fuzzy
msgid "Equalizer"
-msgstr "Näytä taajuuskorjain"
+msgstr "Taajuuskorjain"
#: src/libaudgui/equalizer.c:163
-#, fuzzy
msgid "Preamp"
-msgstr "Esivahvistus:"
+msgstr "Esivahvistus"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Kappaleen numero"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Kappaleen kesto:"
#: src/libaudgui/infowin.c:77
msgid "Acid Jazz"
-msgstr "Acid Jazz"
+msgstr "Acid jazz"
#: src/libaudgui/infowin.c:78
-#, fuzzy
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid rock"
#: src/libaudgui/infowin.c:79
msgid "Ambient"
msgstr "Ambient"
#: src/libaudgui/infowin.c:80
-#, fuzzy
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
#: src/libaudgui/infowin.c:81
msgid "Bluegrass"
@@ -927,7 +874,7 @@ msgstr "Kantri"
#: src/libaudgui/infowin.c:86
msgid "Death Metal"
-msgstr "Death Metal"
+msgstr "Death metal"
#: src/libaudgui/infowin.c:87
msgid "Disco"
@@ -959,16 +906,15 @@ msgstr "Grunge"
#: src/libaudgui/infowin.c:94
msgid "Hard Rock"
-msgstr "Hard Rock"
+msgstr "Hard rock"
#: src/libaudgui/infowin.c:95
msgid "Heavy Metal"
-msgstr "Hevi"
+msgstr "Heavy metal"
#: src/libaudgui/infowin.c:96
-#, fuzzy
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
#: src/libaudgui/infowin.c:97
msgid "House"
@@ -988,11 +934,11 @@ msgstr "Metalli"
#: src/libaudgui/infowin.c:101
msgid "New Age"
-msgstr "New Age"
+msgstr "New age"
#: src/libaudgui/infowin.c:102
msgid "New Wave"
-msgstr "New Wave"
+msgstr "New wave"
#: src/libaudgui/infowin.c:103
msgid "Noise"
@@ -1019,13 +965,12 @@ msgid "Rock"
msgstr "Rock"
#: src/libaudgui/infowin.c:109
-#, fuzzy
msgid "Rock and Roll"
-msgstr "Rock'n'Roll"
+msgstr "Rock 'n' roll"
#: src/libaudgui/infowin.c:110
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "R'n'B"
#: src/libaudgui/infowin.c:111
msgid "Ska"
@@ -1044,9 +989,8 @@ msgid "Techno"
msgstr "Tekno"
#: src/libaudgui/infowin.c:115
-#, fuzzy
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1055,11 +999,11 @@ msgstr "<span size=\"small\">ei saatavilla</span>"
#: src/libaudgui/infowin.c:265
msgid "Metadata updated successfully"
-msgstr "Tiedot päivitetty onnistuneesti"
+msgstr "Metatiedot päivitetty onnistuneesti"
#: src/libaudgui/infowin.c:270
msgid "Metadata updating failed"
-msgstr "Tietojen päivitys epäonnistui"
+msgstr "Metatietojen päivitys epäonnistui"
#: src/libaudgui/infowin.c:318
msgid "Track Information"
@@ -1083,7 +1027,7 @@ msgstr "<span size=\"small\">Nimi</span>"
#: src/libaudgui/infowin.c:399
msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"small\">Esittäjä</span>"
+msgstr "<span size=\"small\">Artisti</span>"
#: src/libaudgui/infowin.c:411
msgid "<span size=\"small\">Album</span>"
@@ -1113,6 +1057,30 @@ msgstr "%d kb/s"
#: src/libaudgui/infowin.c:579
#, c-format
msgid "No info available for %s.\n"
+msgstr "Tietoja ei ole saatavilla aiheesta %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "Siirry kappaleeseen"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Tilapäinen soittolista"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Tilapäinen soittolista"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
msgstr ""
#: src/libaudgui/ui_about.c:71
@@ -1137,11 +1105,11 @@ msgstr "Lisää tiedostoja"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Open"
-msgstr "Sulje ikkuna kun tiedostot avattu"
+msgstr "Sulje ikkuna, kun tiedostot avattu"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Add"
-msgstr "Sulje ikkuna kun tiedostot lisätty"
+msgstr "Sulje ikkuna, kun tiedostot lisätty"
#: src/libaudgui/ui_jumptotrack.c:133
msgid "Un_queue"
@@ -1168,37 +1136,41 @@ msgid "Remember"
msgstr "Muista"
#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
msgid "Clea_r"
-msgstr "Tyhjennä A-B"
+msgstr "_Tyhjennä"
#: src/libaudgui/ui_jumptotrack.c:504
msgid "Close on Jump"
-msgstr "Sulje ikkuna hypätessä"
+msgstr "Sulje ikkuna siirryttäessä"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Soittolistojen hallinta"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
-msgstr "_Uudelleennimeä"
+msgstr "_Nimeä uudelleen"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:309
msgid "_Close dialog on activating playlist"
-msgstr "Sulje ikkuna kun tiedostot avattu"
+msgstr "_Sulje ikkuna, kun soittolista on aktivoitu"
#: src/libaudgui/ui_urlopener.c:58
msgid "Open URL"
-msgstr ""
+msgstr "Avaa URL-osoite"
#: src/libaudgui/ui_urlopener.c:58
msgid "Add URL"
+msgstr "Lisää URL-osoite"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
#: src/libeggsmclient/eggdesktopfile.c:165
@@ -1210,35 +1182,35 @@ msgstr "Tiedosto ei ole validi .desktop-tiedosto"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Tuntematon desktop-tiedoston versio '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "Käynnistetään %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Sovellus ei hyväksy dokumentteja komentorivillä"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Tunnistamaton käynnistysoptio: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
-msgstr ""
+msgstr "Ei käynnistettävä"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Poista käytöstä yhteys istunnonhallintaan"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Määritä tallennetut asetukset sisältävä tiedosto"
#: src/libeggsmclient/eggsmclient.c:229
msgid "FILE"
@@ -1246,7 +1218,7 @@ msgstr "TIEDOSTO"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr ""
+msgstr "Määritä istunnonhallinnan ID"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
@@ -1254,1324 +1226,49 @@ msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
msgid "Session management options:"
-msgstr ""
+msgstr "Istunnonhallinnan valinnat:"
#: src/libeggsmclient/eggsmclient.c:254
msgid "Show session management options"
-msgstr ""
+msgstr "Näytä istunnonhallinnan valinnat"
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Näytön avaaminen ei onnistu, ohjelma lopetetaan.\n"
+#~ msgid "Replay Gain"
+#~ msgstr "Replay Gain"
-#~ msgid "Preamp:"
-#~ msgstr "Esivahvistus:"
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bittisyvyys</b>"
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Oletusteema:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "MPEG-ääniliitännäisen asetukset"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Kappaleen vahvistus:"
-
-#, fuzzy
-#~ msgid "Album gain/peak"
-#~ msgstr "Albumin vahvistus:"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Klassinen rock"
-
-#~ msgid "Dance"
-#~ msgstr "Tanssi"
-
-#~ msgid "Oldies"
-#~ msgstr "Klassikot"
-
-#~ msgid "Other"
-#~ msgstr "Muu"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Vaihtoehtoinen"
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Kaikki virrat muunnetaan tähän bittisyvyyteen.\n"
+#~ "Tämän pitäisi olla suurin äänikortin tai\n"
+#~ "ulostuloliitännäisen tukema bittisyvyys."
-#~ msgid "Pranks"
-#~ msgstr "Pilat"
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Ãänenvoimakkuuden hallinta</b>"
-#~ msgid "Soundtrack"
-#~ msgstr "Ãäniraita"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-tekno"
-
-#~ msgid "Vocal"
-#~ msgstr "Laulu"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fuusio"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentaali"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Peli"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Ãänileike"
-
-#~ msgid "AlternRock"
-#~ msgstr "Vaihtoehtorock"
-
-#~ msgid "Bass"
-#~ msgstr "Basso"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Avaruus"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditaatio"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumentaalipop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumentaalirock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etninen"
-
-#~ msgid "Gothic"
-#~ msgstr "Goottilainen"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tekno-industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Elektroninen"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Uni"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Eteläinen rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komedia"
-
-#~ msgid "Cult"
-#~ msgstr "Kultti"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Kristillinen rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Alkuperäisamerikkalainen"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaree"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psykedeelinen"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showmusiikki"
-
-#~ msgid "Trailer"
-#~ msgstr "Esittely"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Heimo"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polkka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Muusikaali"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Kansallinen folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Nopea fuusio"
-
-#~ msgid "Latin"
-#~ msgstr "Latinalainen"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Kelttiläinen"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Goottirock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressiivinen rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psykedeelinen rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Sinfoninen rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Hidas rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big band"
-
-#~ msgid "Chorus"
-#~ msgstr "Kuoro"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustinen"
-
-#~ msgid "Humour"
-#~ msgstr "Huumori"
-
-#~ msgid "Speech"
-#~ msgstr "Puhe"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Ooppera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonetti"
-
-#~ msgid "Symphony"
-#~ msgstr "Sinfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Pornogroove"
-
-#~ msgid "Satire"
-#~ msgstr "Satiiri"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Hidas jam"
-
-#~ msgid "Club"
-#~ msgstr "Klubi"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Kansantaru"
-
-#~ msgid "Ballad"
-#~ msgstr "Balladi"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Voimaballadi"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rytminen soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Vapaamuotoinen"
-
-#~ msgid "Duet"
-#~ msgstr "Duetto"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Rumpusoolo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Tanssihalli"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Kulbi-house"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Kauhu"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "Brittipop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Musta punk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Puolapunk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Kristinllinen gangsta-rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Sekoitus"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Nykyaikainen kristillinen"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Kristillinen rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2008 Audacious-kehittäjäryhmä\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Lokitiedoston (%s) luominen ei onnistu.\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Tulosta kaikki virheet ja varoitukset stdoutiin"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Tämä järjestelmä/alusta ei tue säikeitä.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "Moduulien lataus ei ole tuettu! Liitännäisiä ei voida ladata.\n"
-
-#~ msgid "Playback"
-#~ msgstr "Soitto"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Soitto</b>"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ãlä siirry eteenpäin soittolistassa"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Kun kappale on soinut, älä soita seuraavaa itsestään."
-
-#~ msgid "Enabled"
-#~ msgstr "Käytössä"
-
-#~ msgid "Description"
-#~ msgstr "Kuvaus"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Ulostuloliitännäisen asetukset"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Ulostuloliitännäisen tiedot"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Dekooderiliitännäisten luettelo:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Dekooderit</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Yleisten liitännäisten luettelo:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Yleiset</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Visualisointiliitännäisten luettelo:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualisointi</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "_Tehosteliitännäisten luettelo:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Yleinen</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Sijainti</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Raaka metatieto</span>"
-
-#~ msgid "Key"
-#~ msgstr "Avain"
-
-#~ msgid "Value"
-#~ msgstr "Arvo"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Ulostuloliitännäisen asetukset"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Lisää/avaa URL -ikkuna"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Syötä soitettava verkko-osoite:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Ãlä tyhjennä soittolistaa"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Tiedostonimi:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Yksikään liitännäinen ei tunnistanut tätä tiedostoa"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Syöteliitännäinen: %s"
-
-#~ msgid "Connectivity"
-#~ msgstr "Yhteydet"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Paras Sinc-interpolointi"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Keskiverto Sinc-interpolointi"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Nopein Sinc-interpolointi"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "ZOH interpolointi"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Lineaarinen interpolaatio"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Näytetaajuus [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Interpolointimoottori:"
-
-#, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "Automaattinen tunnistus"
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Näytetaajuuden muunnin</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Käytä näytetaajuuden muunninta"
-
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Lisäasetukset</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2008 Audacious-kehittäjäryhmä"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Lataa metatiedot soittolistoista ja musiikkitiedostoista"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Lataa metatiedot (lisätiedot) musiikkitiedostoista."
-
-#~ msgid "Can't jump to time when no track is being played.\n"
-#~ msgstr "Ei voida hypätä hetkeen kun kappaleita ei ole soimassa.\n"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Siirry hetkeen"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuutti:sekunti"
-
-#~ msgid "Track length:"
-#~ msgstr "Kappaleen kesto:"
-
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Tallenna staattisena soittolistana"
-
-#~ msgid "Use Relative Path"
-#~ msgstr "Käytä suhteellista polkua"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Virhe soittolistan \"%s\" kirjoittamisessa: %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s on jo olemassa. Jatketaanko?"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Soittolistan tallentaminen epäonnistui.</big></b>\n"
-#~ "\n"
-#~ "Tiedoston '%s' tyyppi on tuntematon.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Asetukset"
-
-#~ msgid "Mouse"
-#~ msgstr "Hiiri"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Kappaleiden välinen tauko"
-
-#~ msgid "Pause for"
-#~ msgstr "Tauotus"
-
-#~ msgid "seconds"
-#~ msgstr "sekuntia"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Tiedostonimi</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Muunna alaviivat väleiksi"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Muunna %20 väleiksi"
-
-#, fuzzy
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Tiedostonimi</b>"
-
-#~ msgid "Changes volume by"
-#~ msgstr "Muuttaa äänenvoimakkuutta"
-
-#~ msgid "percent"
-#~ msgstr "prosenttia"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Vierittää soittolistaa"
-
-#~ msgid "lines"
-#~ msgstr "riviä"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Lopeta soitto nykyisen kappaleen jälkeen"
-
-#~ msgid "Peaks"
-#~ msgstr "Huiput"
-
-#~ msgid "Repeat"
-#~ msgstr "Toista"
-
-#~ msgid "Shuffle"
-#~ msgstr "Sekoita"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Ãlä etene soittolistassa"
-
-#~ msgid "Play"
-#~ msgstr "Soita"
-
-#~ msgid "Pause"
-#~ msgstr "Tauota"
-
-#~ msgid "Stop"
-#~ msgstr "Pysäytä"
-
-#~ msgid "Previous"
-#~ msgstr "Edellinen"
-
-#~ msgid "Next"
-#~ msgstr "Seuraava"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Visualisointitapa"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Taajuusspektri-moodi"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Oskilloskooppi-moodi"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Taajuusspektri/Tuli"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Rullattu ikkuna"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Päivitystaajuus"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Taajuusspektrin nopeus"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Huippujen nopeus"
-
-#~ msgid "New Playlist"
-#~ msgstr "Uusi soittolista"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Valitse seuraava soittolista"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Valitse edellinen soittolista"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Poista soittolista"
-
-#~ msgid "Load List"
-#~ msgstr "Avaa lista"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Lisä soittolistatiedoston valittuun soittolistaan."
-
-#~ msgid "Save List"
-#~ msgstr "Tallenna lista"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Tallentaa valitun soittolistan."
-
-#~ msgid "Save Default List"
-#~ msgstr "Tallenna oletuslista"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Tallentaa valitun soittolistan oletussijaintiin."
-
-#~ msgid "Refresh List"
-#~ msgstr "Päivitä lista"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Päivittää listan metatiedot."
-
-#~ msgid "List Manager"
-#~ msgstr "Soittolistojen hallinta"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Avaa soittolistojen hallintaikkunan."
-
-#~ msgid "View"
-#~ msgstr "Näytä"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Lisää URL-osoite..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Lisää URL-osoitteen soittolistaan."
-
-#~ msgid "Add Files..."
-#~ msgstr "Lisää tiedostoja..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Etsi ja valitse"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Etsii ja valitsee soittolistasta kappaleita halutin kriterian mukaan."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Käänteinen valinta"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Käänteistää valitut ja valitsemattomat kappaleet."
-
-#~ msgid "Select All"
-#~ msgstr "Valitse kaikki"
-
-#~ msgid "Select None"
-#~ msgstr "Tyhjä valinta"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Tyhjentää soittolistan valinnan."
-
-#~ msgid "Remove All"
-#~ msgstr "Poista kaikki"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Poistaa kaikki kappaleet soittolistasta."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Tyhjennä jono"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Tyhjentää tähän soittolistaan liittyvän jonon."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Poista tiedostot, jotka eivät ole saatavilla"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Poistaa soittolistasta tiedostot, jotka eivät ole saatavilla."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Poista kaksoiskappaleet"
-
-#~ msgid "By Title"
-#~ msgstr "Nimen mukaan"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Poistaa soittolistasta saman nimiset kappaleet."
-
-#~ msgid "By Filename"
-#~ msgstr "Tiedostonimen mukaan"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "Poistaa soittolistasta saman tiedostonimen omaavat kappaleet."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Polun ja tiedostonimen mukaan"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Poistaa soittolistasta saman polun ja tiedostonimen omaavat kappaleet."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Poista valitsemattomat"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Poistaa valitsemattomat kappaleet soittolistasta."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Poista valitut"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Poistaa valitut kappaleet soittolistasta."
-
-#~ msgid "Randomize List"
-#~ msgstr "Sekoita lista"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Sekoittaa soittolistan."
-
-#~ msgid "Reverse List"
-#~ msgstr "Käänteinen järjestys"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Järjestää soittolistan käänteiseen järjestykseen."
-
-#~ msgid "Sort List"
-#~ msgstr "Järjestä lista"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Järjestää listan kappaleen nimen mukaan"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Albumi"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Järjestää listan kappaleen nimen mukaan"
-
-#~ msgid "By Artist"
-#~ msgstr "Esittäjän mukaan"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Järjestää listan kappaleen esittäjän nimen mukaan."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Järjestää listan tiedostonimen mukaan."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Järjestää listan täydellisen tiedostonimen mukaan."
-
-#~ msgid "By Date"
-#~ msgstr "Päiväyksen mukaan"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Järjestä kaikki nimen mukaan"
-
-#~ msgid "By Track Number"
-#~ msgstr "Kappaleen numeron mukaan"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Järjestä lista/Päiväyksen mukaan"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "BMP:n soittolistan muokkain"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Järjestä lista/Nimen mukaan"
-
-#~ msgid "Sort Selected"
-#~ msgstr "Järjestä valitut"
-
-#~ msgid "File"
-#~ msgstr "Tiedosto"
-
-#~ msgid "Help"
-#~ msgstr "Apua"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Kommentti"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Näytä kappaleen tiedot"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Soita"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Lataa metatiedot soittolistoista ja musiikkitiedostoista"
-
-#~ msgid "Play Location"
-#~ msgstr "Soita sijainti"
-
-#~ msgid "Plugin services"
-#~ msgstr "Liitännäispalvelut"
-
-#~ msgid "Preferences"
-#~ msgstr "Asetukset"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Avaa asetusikkunan"
-
-#~ msgid "_Quit"
-#~ msgstr "/_Lopeta"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Lopeta Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "Aseta A-B"
-
-#~ msgid "Clear A-B"
-#~ msgstr "Tyhjennä A-B"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Siirry soittolistan alkuun"
-
-#~ msgid "Jump to File"
-#~ msgstr "Siirry tiedoston kohdalle"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Muuta soittojonoa"
-
-#~ msgid "Load"
-#~ msgstr "Lataa"
-
-#~ msgid "Import"
-#~ msgstr "Tuo"
-
-#~ msgid "Save"
-#~ msgstr "Tallenna"
-
-#~ msgid "Delete"
-#~ msgstr "Poista"
-
-#~ msgid "Preset"
-#~ msgstr "Asetus"
-
-#~ msgid "Load preset"
-#~ msgstr "Lataa asetus"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Lataa/Automaattinen asetus"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Lataa/Automaattinen asetus"
-
-#~ msgid "Default"
-#~ msgstr "Oletus"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Tallenna automaattinen asetus"
-
-#~ msgid "Zero"
-#~ msgstr "Nolla"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Tallenna taajuuskorjaimen asetus"
-
-#~ msgid "From file"
-#~ msgstr "Tiedostosta"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Lataa asetus tiedostosta"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "WinAMP EQF-tiedostosta"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Lataa asetus WinAMP EQF-tiedostosta"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "WinAMPin asetukset"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Tuo WinAMPin asetukset"
-
-#~ msgid "Save preset"
-#~ msgstr "Tallenna asetus"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Tallenna/Automaattinen asetus"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Tallenna automaattinen asetus"
-
-#~ msgid "To file"
-#~ msgstr "Tiedostoon"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Tallenna asetus"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "WinAMPin EQF-tiedostoon"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Tallenna/Winampin EQF-tiedosto"
-
-#~ msgid "Delete preset"
-#~ msgstr "Poista asetus"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Poista/Automaattinen asetus"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Teeman lataaminen ei onnistunut.</big></b>\n"
-#~ "\n"
-#~ "Tarkista että teema \"%s\" on käytettävissä, ja että oletusarvoinen teema "
-#~ "on asennettu kunnolla kansioon \"%s\"\n"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audaciouksen pääkehittäjät:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Taajuuskorjain"
-
-#~ msgid "Play files"
-#~ msgstr "Soita tiedostoja"
-
-#~ msgid "Load files"
-#~ msgstr "Lataa tiedostoja"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "Show main player window"
-#~ msgstr "Näytä pääikkuna"
-
-#~ msgid "Ignore"
-#~ msgstr "Jätä huomiotta"
-
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "Siirry: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#~ msgid "Volume: %d%%"
-#~ msgstr "Voimakkuus: %d%%"
-
-#~ msgid "Balance: %d%% left"
-#~ msgstr "Tasapaino: %d%% vasemmalla"
-
-#~ msgid "Balance: center"
-#~ msgstr "Tasapaino: keskellä"
-
-#~ msgid "Balance: %d%% right"
-#~ msgstr "Tasapaino %d%% oikealla"
-
-#~ msgid "Options Menu"
-#~ msgstr "Asetusvalikko"
-
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Poista 'aina päällimmäisenä' käytöstä"
-
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Ota 'aina päällimmäisenä' käyttöön"
-
-#~ msgid "File Info Box"
-#~ msgstr "Tiedoston tiedot"
-
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Poista käyttöliittymän skaalaus käytöstä"
-
-#~ msgid "Enable 'GUI Scaling'"
-#~ msgstr "Ota käyttöliittymän skaalaus käyttöön"
-
-#~ msgid "Visualization Menu"
-#~ msgstr "Visualisointivalikko"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Ãänilaitteen avaaminen epäonnistui.</big></b>\n"
-#~ "\n"
-#~ "Tarkista että:\n"
-#~ "1. Oikea ulostuloliitännäinen on valittu.\n"
-#~ "2. Muut ohjelmat eivät käytä juuri nyt äänikorttia.\n"
-#~ "3. Ãänikortin asetukset ovat oikein.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Vieritä kappaleen nimeä"
-
-#~ msgid "Show Player"
-#~ msgstr "Näytä soitin"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Näytä soittolistan muokkain"
-
-#~ msgid "Always on Top"
-#~ msgstr "Aina päällimmäisenä"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Näkyy kaikissa työtiloissa"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Rullaa soittoikkuna"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Rullaa soittolistan muokkausikkuna"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Rullaa taajuuskorjainikkuna"
-
-#~ msgid "Scale"
-#~ msgstr "Skaalaa"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Kaksinkertainen koko"
-
-#~ msgid "Easy Move"
-#~ msgstr "Helppo siirtely"
-
-#~ msgid "Analyzer"
-#~ msgstr "Taajuusspektri"
-
-#~ msgid "Scope"
-#~ msgstr "Oskilloskooppi"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Taajuusspektri/Tuli"
-
-#~ msgid "Off"
-#~ msgstr "Pois päältä"
-
-#~ msgid "Normal"
-#~ msgstr "Normaali"
-
-#~ msgid "Fire"
-#~ msgstr "Tuli"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Pystyviivat"
-
-#~ msgid "Lines"
-#~ msgstr "Viivat"
-
-#~ msgid "Bars"
-#~ msgstr "Palkit"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Pisteskooppi"
-
-#~ msgid "Line Scope"
-#~ msgstr "Viivaskooppi"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Yhtenäinen skooppi"
-
-#~ msgid "Ice"
-#~ msgstr "Jää"
-
-#~ msgid "Smooth"
-#~ msgstr "Pehmeä"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Täysi (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Puolet (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Neljäsosa (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Kahdeksasosa (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Hitain"
-
-#~ msgid "Slow"
-#~ msgstr "Hidas"
-
-#~ msgid "Medium"
-#~ msgstr "Keskinkertainen"
-
-#~ msgid "Fast"
-#~ msgstr "Nopea"
-
-#~ msgid "Fastest"
-#~ msgstr "Nopein"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Kulunut aika"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Aikaa jäljellä"
-
-#~ msgid "Plugin Services"
-#~ msgstr "Liitännäispalvelut"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Näytä kappaleiden numerot soittolistassa"
-
-#~ msgid "Title: "
-#~ msgstr "Nimi: "
-
-#~ msgid "Artist: "
-#~ msgstr "Esittäjä: "
-
-#~ msgid "Filename: "
-#~ msgstr "Tiedostonimi: "
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audaciouksen soittolistamuokkain"
-
-#~ msgid "Appearance"
-#~ msgstr "Ulkonäkö"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Kirjasimet</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Soitin:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Valitse pääikkunan kirjasinlaji:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Soittolista:"
-
-#~ msgid "Select playlist font:"
-#~ msgstr "Valitse soittolistan kirjasinlaji:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Käytä bittikarttakirjasimia, jos saatavilla"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Sekalaiset</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Näytä kappaleiden numerot soittolistassa"
-
-#, fuzzy
-#~ msgid "Show separators in playlist"
-#~ msgstr "Näytä kappaleiden numerot soittolistassa"
-
-#~ msgid "Use two-way text scroller"
-#~ msgstr "Käytä kaksisuuntaista tekstin vieritystä"
-
-#~ msgid "Allow loading incomplete skins"
-#~ msgstr "Salli rikkinäisten teemojen lataaminen"
-
-#~ msgid "On load"
-#~ msgstr "Avattaessa"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Lataa metatiedot kun tiedosto lisätään soittolistaan tai avataan"
-
-#~ msgid "On display"
-#~ msgstr "Näytettäessä"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Lataa metatiedot kun tiedosto lisätään soittolistaan tai avataan"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Värisäädöt"
-
-#~ msgid "Blue"
-#~ msgstr "Sininen"
-
-#~ msgid "Green"
-#~ msgstr "Vihreä"
-
-#~ msgid "Red"
-#~ msgstr "Punainen"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Teema</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Päivitä lista"
-
-#~ msgid "PREAMP"
-#~ msgstr "ESIVAHVISTUS"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "30KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
+#~ "Käytä ohjelmapohjaista äänenvoimakkuuden hallintaa. Tämä voi olla "
+#~ "hyödyllistä tilanteissa, joissa äänijärjestelmäsi ei tue "
+#~ "äänenvoimakkuuden hallintaa."
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Tila</b>"
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "Huippujen leikkautuminen"
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Pakattu WinAmp 2.x -teema"
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Estä huippujen leikkautuminen"
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Pakkaamaton WinAmp 2.x -teema"
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Ãänijärjestelmä</b>"
-#~ msgid "Reload Plugins"
-#~ msgstr "Lataa liitännäiset"
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Näytä kaikki avoimet Audacious-ikkunat"
diff --git a/po/fr.po b/po/fr.po
index cc47d01..fcc8eb6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,27 +1,36 @@
-# /* _\|/_
-# (o o)
-# +----oOO-{_}-OOo----+
-# | |
-# | audacious |
-# | |
-# +------------------*/
+# French translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# <jagw40k at free.fr>, 2011, 2012.
+# Jean-Alexandre Anglès d'Auriac <jagw40k at free.fr>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: Audacious 2.4\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-18 13:40+0100\n"
-"Last-Translator: StrassBoy <StrassBoy at gmail.com>\n"
-"Language-Team: \n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-08 02:56+0000\n"
+"Last-Translator: Oxayotl <jagw40k at free.fr>\n"
+"Language-Team: French\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: BELGIUM\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Recherche ..."
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d fichier trouvé"
+msgstr[1] "%d fichiers trouvés"
+
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (format UTF-8 invalide)"
@@ -45,250 +54,237 @@ msgstr "Développeurs des modules :"
msgid "Patch authors:"
msgstr "Auteurs des modifications/correctifs :"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:127
msgid "1.x developers:"
msgstr "Développeurs de la branche 1.x :"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
msgstr "Développeurs de BMP :"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:181
msgid "Belarusian:"
msgstr "Biélorusse :"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
msgstr "Basque :"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
msgstr "Brésilien portugais :"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
msgstr "Breton :"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
msgstr "Bulgare :"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
msgid "Catalan:"
msgstr "Catalan :"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:202
msgid "Chinese:"
msgstr "Chinois :"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
msgid "Croatian:"
msgstr "Croate :"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
msgid "Czech:"
msgstr "Tchèque :"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
msgid "Dutch:"
msgstr "Néerlandais :"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
msgid "Estonian:"
msgstr "Estonien :"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
msgid "Finnish:"
msgstr "Finlandais :"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
msgid "French:"
msgstr "Français :"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
msgid "German:"
msgstr "Allemand :"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
msgid "Georgian:"
msgstr "Géorgien :"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
msgid "Greek:"
msgstr "Grec :"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
msgid "Hindi:"
msgstr "Hindi :"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
msgid "Hungarian:"
msgstr "Hongrois :"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
msgid "Italian:"
msgstr "Italien :"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
msgid "Japanese:"
msgstr "Japonais :"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
msgid "Korean:"
msgstr "Koréenn :"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
msgid "Latvian:"
-msgstr "Croate :"
+msgstr "Letton :"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
msgid "Lithuanian:"
msgstr "Lituanien :"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
msgid "Macedonian:"
msgstr "Macédonien :"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
msgid "Polish:"
msgstr "Polonais :"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
msgid "Portuguese:"
msgstr "Portugais :"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
msgid "Romanian:"
msgstr "Roumain :"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
msgid "Russian:"
msgstr "Russe :"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
msgid "Serbian (Latin):"
msgstr "Serbe (latin) :"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
msgid "Serbian (Cyrillic):"
msgstr "Serbe (cyrillique) :"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
msgid "Simplified Chinese:"
msgstr "Chinois simplifié :"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
msgid "Slovak:"
msgstr "Slovaque :"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
msgid "Spanish:"
msgstr "Espagnol :"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
msgid "Swedish:"
msgstr "Suédois :"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
msgid "Traditional Chinese:"
msgstr "Chinois traditionnel :"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
msgid "Turkish:"
msgstr "Turc :"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
msgid "Ukrainian:"
msgstr "Ukrainien :"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Vietnamien :"
+
+#: src/audacious/credits.c:331
msgid "Welsh:"
msgstr "Gallois :"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Liste de lecture provisoire"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
"Erreur lors de l'importation du fichier 'EQF' de 'Winamp' suivant : '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Recherche ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d fichier trouvé"
-msgstr[1] "%d fichiers trouvés"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "Reculer dans la liste de lecture"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Commencer à lire la liste de lecture active"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
-msgstr "Mettre en pause la chanson en cours de lecture"
+msgstr "Mettre en pause le morceau en cours de lecture"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
-msgstr "Arrêter la chanson en cours de lecture"
+msgstr "Arrêter la morceau en cours de lecture"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Mettre en pause, sinon commencer la lecture"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "Avancer dans la liste de lecture"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "Afficher la fenêtre 'Aller au fichier...'"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "Ajouter les fichiers à la liste de lecture"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Ajouter les nouveaux fichiers à une liste de lecture provisoire"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "Afficher la fenêtre principale"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Afficher toutes les fenêtres ouvertes d'Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Afficher la version"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "Afficher les messages de deboggage"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Mode sans interface graphique (beta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "FICHIER..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- lire les fichiers multimédia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -297,338 +293,299 @@ msgstr ""
"%s: %s\n"
"Essayez '%s --help' pour davantage d'informations.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "Aucun décodeur trouvé pour %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Tampon ..."
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nouvelle liste de lecture"
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Liste sans nom"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr ""
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La liste de lecture ne peut pas être triée car la lecture des métadonnées "
+"n'est pas encore terminée (ou bien elle a été désactivée)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "Réseau"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Liste de lecture"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Modules d'extension"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "Artiste"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Titre"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Numéro de la piste"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Genre"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Nom du fichier"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Chemin du fichier"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Date"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Année"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Commentaire"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Codec"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "Qualité"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "aucune langue"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "l'arabe"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "le balte"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "le chinois"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "le japonais"
+msgid "Greek"
+msgstr "le grec"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "le taïwanais"
+msgid "Hebrew"
+msgstr "l'hébreu"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "le chinois"
+msgid "Japanese"
+msgstr "le japonais"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "le coréen"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "le russe"
+msgid "Polish"
+msgstr "le polonais"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "le grec"
+msgid "Russian"
+msgstr "le russe"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "l'hébreu"
+msgid "Taiwanese"
+msgstr "le taïwanais"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "le turc"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "l'arabe"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "le polonais"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "le balte"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universel"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Profondeur d'analyse des données audio</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Fonctionnement par albums"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Profondeur d'analyse du flux :"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Les données de tous les flux seront converties dans\n"
-"la profondeur d'analyse spécifiée.\n"
-"Idéalement, cette valeur devrait correspondre à la\n"
-"profondeur maximale que supporte la carte son ou\n"
-"le module d'extension de sortie."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Paramètres de sortie</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Contrôle du volume</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profondeur du flux :"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Utiliser le contrôle du volume logiciel"
+msgid "Buffer size:"
+msgstr "Taille du tampon :"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Utilise le contrôle du volume logiciel. Cette option peut se révéler utile, "
-"si votre système audio ne dispose pas de support de contrôle du volume."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- lire les fichiers multimédia"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Utiliser un contrôle du volume interne (non recommandé)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Mode « Replay Gain »</b>"
+msgstr "<b>Correction de gain</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "Activer « Replay Gain »"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Métadonnées</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Ãviter la saturation (recommandé)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>Système Audio</b>"
+msgstr "<b>Niveau d'ajustement</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Fenêtre d'informations contextuelle</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplifier tous les fichiers de"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr ""
-"Prévention de la saturation : utiliser les informations relatives aux pics "
-"sonores"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplifier les fichiers non taggeÌs de"
+
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Nom du serveur :"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Port du serveur :"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Nom d'utilisateur :"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Mot de passe :"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configuration du serveur mandataire</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Activer l'utilisation du serveur mandataire"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
-msgstr "Utiliser l'authentification avec le serveur mandataire"
-
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">La modification de ces préférences nécessite le "
-"redémarrage d'Audacious.</span>"
+msgstr "Le serveur mandataire demande une authentification"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Détection automatique de l'encodage pour "
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "Encodages supplémentaires :"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Ce champ reprend les divers types d'encodages utilisés pour la conversion "
-"des métadonnées. Si la détection automatique de l'encodage échoue ou n'a pas "
-"été activée, les éléments de cette liste seront considérés comme des "
-"encodages possibles et la conversion des métadonnées en 'UTF-8' sera tentée "
-"Ã partir de ceux-ci."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>Profondeur d'analyse des données audio</b>"
+msgstr "<b>Comportement</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Reprendre la lecture au démarrage"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Passer aÌ la piste suivante si la piste courante est supprimeÌe"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "Effacer la liste de lecture, lors de l'ouverture de nouveaux fichiers"
+msgstr ""
+"Remplacer l'ancien contenu de la liste de lecture, lors de l'ouverture de "
+"nouveaux fichiers"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Ajouter les nouveaux fichiers à une liste de lecture provisoire"
+msgstr "Ouvrir les nouveaux fichiers dans une liste de lecture provisoire"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Métadonnées</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ne charger les metadonnées qu'à la lecture du fichier"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITRE"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTE - TITRE"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTE - ALBUM - TITRE"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTE - ALBUM - PISTE. TITRE"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTE [ ALBUM ] - PISTE. TITRE"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITRE"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Catégorie"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Préférences de la fenêtre contextuelle"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Récupération des pochettes</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -638,100 +595,76 @@ msgstr ""
"mots dans le nom du fichier. Vous pouvez spécifier ces mots dans les listes "
"ci-dessous, séparés par des virgules."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "Exclure :"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Inclure :"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "Chercher les pochettes de manière récursive"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Profondeur de la recherche :"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Chercher les pochettes d'après le nom exact des fichiers audio"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Options diverses</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "Montrer une barre de progression pour le morceau écouté"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Délai avant l'affichage de la fenêtre :"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personnalisé"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Affichage du morceau</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr "Afficher la position des titres"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Afficher les zeÌros en deÌbut d'heure (02:00 au lieu de 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Affiche des informations sur le format du titre."
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TITRE"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTE - TITRE"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTE - ALBUM - TITRE"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTE - ALBUM - PISTE. TITRE"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTE [ ALBUM ] - PISTE. TITRE"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - TITRE"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personnalisé"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Format personnalisé :"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Format du titre :"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Fenêtre d'informations contextuelle</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr ""
"Montrer la fenêtre d'informations pour les entrées de la liste de lecture"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -742,76 +675,72 @@ msgstr ""
"morceau, le nom de l'album, le genre, l'année de publication, le numéro de "
"la piste, la durée du morceau, ainsi que la pochette de l'album."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Modifie les préférences de la fenêtre d'informations contextuelle."
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Système Audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Taille du tampon :"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Greffons de sortie"
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Module de sortie actuel :"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "Traducteurs"
+msgstr "Accès aux fichiers"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Entrées sonores"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Effets audio</b>"
+msgstr "Effets audio"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "<b>Effets visuels</b>"
+msgstr "Visualisations"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "Général"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Préférences d'Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Impossible de créer le répertoire suivant (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr "Position non trouvée."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "Aucun titre en cours de lecture."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD audio, piste %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Mono"
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr ""
+msgstr "Stéréo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canaux"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -820,312 +749,331 @@ msgstr ""
"Ãtes-vous certain de vouloir fermer %s ? Si tel est le cas, toute "
"modification apportée à la liste depuis l'exportation sera perdue."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
msgstr "_Ne plus afficher ce message"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "Liste de lecture"
+msgstr "Renommer la liste de lecture"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
msgstr "paramètres ..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
msgstr "_Activer"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
msgstr "Ãgaliseur"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
msgstr "Préamp."
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "Piste"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "Durée"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
msgid "Bebop"
msgstr "Bebob"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
msgid "Chamber Music"
msgstr "Chamber Music"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
msgid "Classical"
msgstr "Classical"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
msgid "Easy Listening"
msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
msgid "Gangsta Rap"
msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
msgid "Hard Rock"
msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
msgid "Hip-hop"
msgstr "Hip-Hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
msgid "New Wave"
msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
msgid "Noise"
msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
msgstr "Trip-Hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">non disponible</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
msgid "Metadata updated successfully"
msgstr "Mise à jour des métadonnées réussie"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
msgstr "Ãchec lors de la mise à jour des métadonnées"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
msgstr "Informations sur le morceau"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Format :</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">Qualité :</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">Taux d'encodage :</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">Titre</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Artiste</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Commentaire</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Genre</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Année</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Piste</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
msgstr "Aucune information disponible pour %s.\n"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Sauter au temps"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exporter la liste de lecture"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importer la piste de lecture"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Ãcraser %s ?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Gestionnaire de file d'attente"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "Ã propos d'Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Crédits"
@@ -1149,96 +1097,105 @@ msgstr "Fermer la fenêtre après l'ouverture des fichiers"
msgid "Close dialog on Add"
msgstr "Fermer la fenêtre après l'ajout des fichiers"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Retirer de la file"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
msgid "_Queue"
msgstr "_Mettre dans la file"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Aller au titre..."
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "_Retirer de la file"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Sauter au morceau"
+
+#: src/libaudgui/ui_jumptotrack.c:284
msgid "Filter: "
msgstr "Filtre :"
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
msgid "_Filter:"
msgstr "_Filtre :"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Remember"
msgstr ""
"Se souvenir de\n"
"la recherche"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:302
msgid "Clea_r"
msgstr "Efface_r"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "Close on Jump"
msgstr ""
"Fermer la fenêtre\n"
"après la sélection"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr "Gestionnaire de listes de lecture"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Entrées"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "_Renommer"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
msgstr "_Fermer la fenêtre après l'activation de la liste de lecture"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
msgstr "Ouvrir l'adresse d'un flux"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
msgstr "Ajouter l'adresse d'un flux"
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Des messages supplémentaires ont été cachés.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Le fichier n'est pas un fichier '.desktop' valide"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Version du fichier '.desktop' suivant inconnue : '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "Exécution de %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "L'application n'accepte pas de ressources via la ligne de commande"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Option de lancement suivante inconnue : %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"Impossible de passer les identifiants uniformes de ressource ('URIs') Ã une "
"entrée 'Type=Link' du fichier '.desktop'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "L'élément n'est pas exécutable"
@@ -1263,616 +1220,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
msgstr "Options du gestionnaire de sessions"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
msgstr "Afficher les options du gestionnaire de sessions"
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr ""
-#~ "%s: Impossible d'accéder à la session d'affichage : processus "
-#~ "interrompu.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Préamplification :"
-
-#~ msgid "Default gain:"
-#~ msgstr "Gain par défaut :"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Ce gain sera utilisé si le fichier audio ne contient aucune métadonnée « "
-#~ "Replay Gain »."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Veuillez noter que le moyen le plus efficace "
-#~ "d'éviter la saturation numérique du signal est de ne pas utiliser de "
-#~ "valeurs positives dans les champs ci-dessus.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuration de « Replay Gain »</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Gain/pic « piste »"
-#~ msgid "Album gain/peak"
-#~ msgstr "Pic/Gain « album »"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Utilise les informations de « Replay Gain » relatives aux pics sonores "
-#~ "pour éviter la saturation numérique (« clipping »)."
-
-#~ msgid "Classic Rock"
-#~ msgstr "Classic Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Other"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternative"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumental Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumental Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electronic"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtic"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Speech"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonate"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ 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"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rhythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Christian Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Un lecteur audio pour de nombreuses plates-formes.\n"
-#~ "\n"
-#~ "Droits d'utilisation : Ãquipe de Développement Audacious (2005-2010)"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Le chargement de modules n'est pas supporté ! Les extensions ne seront "
-#~ "pas initialisées.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Avertissement : version non supportée"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 n'est pas encore prêt !</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Veuillez ne pas remplir de rapports d'erreur, Ã ce stade du "
-#~ "développement,\n"
-#~ "à moins qu'il ne s'agisse de problèmes sérieux.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Cette version d'Audacious2 est une version <i>alpha</i> : elle est encore "
-#~ "bien incomplète et brute.\n"
-#~ "Nous pensons que la plupart des problèmes mineurs rapportés pendant cette "
-#~ "période de test sera réglée,\n"
-#~ "dès que plus d'éléments du code seront stables. Toutefois, en cas de "
-#~ "problème important\n"
-#~ "(comme un plantage lors de la lecture d'un fichier particulier), nous "
-#~ "aimerions être informés de la situation.\n"
-#~ "\n"
-#~ "Malgré tout, soyez conscient que s'occuper des erreurs insignifiantes est "
-#~ "frustrant,\n"
-#~ "à ce stade du développement. Ãvitez donc de provoquer la situation. Merci "
-#~ "d'avance !"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr ""
-#~ "<b>Rapporter les erreurs dans les blocs Internet n'est pas non plus très "
-#~ "utile.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "En outre, nous sommes des développeurs : nous ne lisons pas les blocs de "
-#~ "manière régulière.\n"
-#~ "En cas de problème sérieux, nous vous invitons à nous le signaler via "
-#~ "notre système de gestion\n"
-#~ "des rapports d'erreur à l'adresse suivante : http://jira.atheme.org/ ou "
-#~ "via les fora de notre\n"
-#~ "site Internet.\n"
-#~ "\n"
-#~ "Cela nous aidera à obtenir de plus amples informations quant à votre "
-#~ "problème\n"
-#~ "(nous ne pourrions probablement pas avoir ces éléments autrement)."
-
-#~ msgid "Playback"
-#~ msgstr "Lecture"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Lecture</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Au démarrage d'Audacious, la lecture reprendra là où elle s'était arrêtée "
-#~ "lors de la session précédente."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ne pas avancer dans la liste de lecture"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Ã la fin d'un morceau, ne pas lire automatiquement le titre suivant."
-
-#~ msgid "Enabled"
-#~ msgstr "Activé"
-
-#~ msgid "Description"
-#~ msgstr "Description"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Préférences du module"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informations sur le module"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Liste des _décodeurs :"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Décodeurs</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Liste des modules _généraux :"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Modules généraux</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Liste des effets _visuels :"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Liste des effets audio :"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Impossible de créer le fichier journal (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr ""
-#~ "Afficher toutes les erreurs et tous les avertissements dans 'stdout'"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Utilisé par 'macpack'"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr ""
-#~ "Désolé, mais votre plate-forme ne gère pas les processus multiples.\n"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Général</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Emplacement</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Métadonnées brutes</span>"
-
-#~ msgid "Key"
-#~ msgstr "Clef"
-
-#~ msgid "Value"
-#~ msgstr "Valeur"
-
-#
-# ####################### Workaround ################################
-#
-#
-# song_change
-#
-#~ msgid "Command to run when Audacious starts a new song."
-#~ msgstr "Commande à exécuter lorsqu'un nouveau morceau commence :"
-
-#~ msgid "Command:"
-#~ msgstr "Commande :"
-
-#~ msgid "Command to run toward the end of a song."
-#~ msgstr "Commande à exécuter lorsque la lecture d'un morceau se termine :"
-
-#~ 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 :"
-
-#~ 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) :"
-
-#~ msgid ""
-#~ "You can use the following format strings which\n"
-#~ "will be substituted before calling the command\n"
-#~ "(not all are useful for the end-of-playlist command).\n"
-#~ "\n"
-#~ "%F: Frequency (in hertz)\n"
-#~ "%c: Number of channels\n"
-#~ "%f: filename (full path)\n"
-#~ "%l: length (in milliseconds)\n"
-#~ "%n or %s: Song name\n"
-#~ "%r: Rate (in bits per second)\n"
-#~ "%t: Playlist position (%02d)\n"
-#~ "%p: Currently playing (1 or 0)"
-#~ msgstr ""
-#~ "Vous pouvez utiliser les chaînes de la liste ci-dessous.\n"
-#~ "\n"
-#~ "Elles seront remplacées avant l'appel de la commande à exécuter (toutes "
-#~ "ne sont pas utiles pour la fonction 'fin de liste') :\n"
-#~ "\n"
-#~ "%F: Fréquence (en Hertz)\n"
-#~ "%c: Nombre de voies\n"
-#~ "%f: Nom du fichier (chemin complet)\n"
-#~ "%l: Durée (en millisecondes)\n"
-#~ "%n ou %s: Titre du morceau\n"
-#~ "%r: Taux d'encodage (en 'bits' par seconde)\n"
-#~ "%t: Position dans la liste de lecture (%02d)\n"
-#~ "%p: Statut de la lecture (1 ou 0)"
-
-#~ msgid ""
-#~ "<span size='small'>Parameters passed to the shell should be encapsulated "
-#~ "in quotes. Doing otherwise is a security risk.</span>"
-#~ msgstr ""
-#~ "<span size='small'>Les arguments à lancer dans la console doivent être "
-#~ "entourés de guillemets.\n"
-#~ "Une utilisation différente constitue un risque en matière de sécurité.</"
-#~ "span>"
-
-#~ msgid "Commands"
-#~ msgstr "Commandes"
-
-#~ msgid "Song Change"
-#~ msgstr "Song Change"
diff --git a/po/hi.po b/po/hi.po
index b21b33b..76a008c 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: bmp-hi\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2005-08-20 21:59+0530\n"
"Last-Translator: धनà¤à¥à¤à¤¯ शरà¥à¤®à¤¾ (Dhananjaya Sharma) <dysxhi at yahoo.co.in>\n"
"Language-Team: Hindi, India <dysxhi at yahoo.co.in>\n"
@@ -17,6 +17,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (à¤
वà¥à¤§ यà¥à¤à¥à¤à¥-८)"
@@ -107,116 +118,116 @@ msgstr "रà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¨:"
msgid "Finnish:"
msgstr "सà¥à¤ªà¥à¤¨à¤¿à¤¸:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "à¥à¥à¤°à¥à¤à¤:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "à¤à¤°à¥à¤®à¤¨:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
#, fuzzy
msgid "Georgian:"
msgstr "à¤à¤°à¥à¤®à¤¨:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "à¤à¥à¤°à¥à¤:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr ""
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "हà¤à¤à¤¾à¤°à¤¿à¤¯à¤¨:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "à¤à¤à¥à¤²à¤¿à¤¯à¤¨:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "à¤à¤¾à¤ªà¤¾à¤¨à¥:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "à¤à¥à¤°à¤¿à¤¯à¤¨:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "सà¥à¤¥à¤¾à¤¨:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "लिथà¥à¤¨à¤¿à¤¯à¤¨:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Macedonian:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "पà¥à¤²à¤¿à¤¶:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "पà¥à¤°à¥à¤"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "रà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¨:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "रà¥à¤¸à¥:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr ""
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr ""
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr ""
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "सà¥à¤²à¥à¤µà¤¾à¤:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "सà¥à¤ªà¥à¤¨à¤¿à¤¸:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "सà¥à¤µà¥à¤¡à¤¿à¤¸:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
#, fuzzy
msgid "Traditional Chinese:"
msgstr "निमà¥à¤¨ à¤à¥ à¤
तिरिà¤à¥à¤¤ सहायता दà¥à¤µà¤¾à¤°à¤¾:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
#, fuzzy
msgid "Ukrainian:"
msgstr "रà¥à¤®à¤¾à¤¨à¤¿à¤¯à¤¨:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "वालà¥à¤¶:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ लाना"
@@ -226,90 +237,75 @@ msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ लाना"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ मà¥à¤ पà¥à¤à¥ à¤à¤¾à¤¨à¤¾"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ à¤à¤²à¤¾à¤¨à¤¾ à¤à¤°à¤®à¥à¤ à¤à¤°à¤¨à¤¾"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¥à¤¤ à¤à¥ ठहरना"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¥à¤¤ à¤à¥ रà¥à¤à¤¨à¤¾"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "ठहराना यदि à¤à¤² रहा हà¥, à¤
नà¥à¤¯à¤¥à¤¾ à¤à¤²à¤¾à¤¨à¤¾"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ मà¥à¤ à¤à¤à¥ à¤à¤¾à¤¨à¤¾"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
#, fuzzy
msgid "Display Jump to File dialog"
msgstr "/सà¤à¤à¤¿à¤à¤¾ पर à¤à¤¾à¤à¤"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ साॠनहà¥à¤ à¤à¤°à¤¨à¤¾"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
#, fuzzy
msgid "Add new files to a temporary playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ साॠनहà¥à¤ à¤à¤°à¤¨à¤¾"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
#, fuzzy
msgid "Display the main window"
msgstr "मà¥à¤à¥à¤¯ à¤à¤¿à¥à¤à¥ à¤à¥ दिà¤à¤¾à¤¨à¤¾"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "/पà¥à¤²à¥à¤¸à¥à¤à¥ सà¤à¤ªà¤¾à¤¦à¤ दिà¤à¤¾à¤à¤"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -317,290 +313,267 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
#, fuzzy
msgid "Buffering ..."
msgstr "बà¥à¤°à¤¿à¤à¤"
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ सà¥à¤°à¤à¥à¤·à¤¿à¤¤ à¤à¤°à¤¨à¤¾"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
#, fuzzy
msgid "Audio"
msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ à¤à¤¡à¤¿à¤¯à¥ पà¥à¤²à¤-à¤à¤¨ à¤à¥ बारॠमà¥à¤"
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "रà¥à¤ªà¥à¤²à¥à¤à¥à¤¨"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "पà¥à¤²à¤-à¤à¤¨à¥à¤¸"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "à¤à¤²à¤¾à¤à¤¾à¤°"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "à¤à¤²à¥à¤¬à¤®"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "शà¥à¤°à¥à¤·à¤"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "à¤à¥à¤°à¥à¤à¤¸à¤à¤à¥à¤¯à¤¾"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "पà¥à¤°à¤à¤¾à¤°"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "सà¤à¤à¤¿à¤à¤¾à¤¨à¤¾à¤®"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "सà¤à¤à¤¿à¤à¤¾à¤ªà¤¥"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "दिनाà¤à¤"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "वरà¥à¤·"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "à¤à¤¿à¤ªà¥à¤ªà¤£à¥"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
#, fuzzy
msgid "Codec"
msgstr "/बनà¥à¤¦"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "/निà¤à¤¾à¤¸ (_Q)"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "à¤à¥à¤ नहà¥à¤"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "à¤à¤¾à¤ªà¤¾à¤¨à¥:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "à¤à¤¾à¤ªà¤¾à¤¨à¥:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "à¤à¥à¤¨à¥:"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "à¤à¥à¤°à¤¿à¤¯à¤¨:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "रà¥à¤¸à¥:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "à¤à¥à¤°à¥à¤:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "पà¥à¤²à¤¿à¤¶:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "सà¥à¤²à¥à¤à¤¿à¤"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
#, fuzzy
msgid "Universal"
msgstr "पà¥à¤°à¤à¤¾à¤°"
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "बिà¤-दर:"
+msgid "Single track mode"
+msgstr "/à¤à¥à¤°à¥à¤ à¤à¥ विवरणà¥à¤ à¤à¥ दà¥à¤à¥à¤"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "à¤à¤²à¥à¤¬à¤®"
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "वालà¥à¤¯à¥à¤® नियà¤à¤¤à¥à¤°à¤:"
+msgid "<b>Output Settings</b>"
+msgstr "सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤ पहà¤à¤¾à¤¨"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "सà¥à¥à¥à¤à¤µà¥à¤¯à¤° वालà¥à¤¯à¥à¤® नियà¤à¤¤à¥à¤°à¤ à¤à¤¾ à¤à¤ªà¤¯à¥à¤"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "बिà¤-दर:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+#, fuzzy
+msgid "Buffer size:"
+msgstr "बà¥à¤° à¤à¤¾ à¤à¤à¤¾à¤° (à¤à¥à¤¬à¥):"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+#: src/audacious/ui_preferences.c:158
+#, fuzzy
+msgid "Use software volume control (not recommended)"
+msgstr "सà¥à¥à¥à¤à¤µà¥à¤¯à¤° वालà¥à¤¯à¥à¤® नियà¤à¤¤à¥à¤°à¤ à¤à¤¾ à¤à¤ªà¤¯à¥à¤"
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>सà¤à¤à¤¿à¤à¤¾à¤¨à¤¾à¤®</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "रà¥à¤ªà¥à¤²à¥à¤à¥à¤¨ सà¤à¥à¤°à¤¿à¤¯"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>सà¤à¤à¤¿à¤à¤¾à¤¨à¤¾à¤®</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/à¤à¥à¤°à¥à¤ à¤à¥ विवरणà¥à¤ à¤à¥ दà¥à¤à¥à¤"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "à¤à¤²à¥à¤¬à¤®"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>माà¤à¤¸ वà¥à¤¹à¥à¤²</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ à¤à¤¡à¤¿à¤¯à¥ पà¥à¤²à¤-à¤à¤¨ सà¤à¤°à¤à¤¨à¤¾"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "à¤à¥à¤²à¥à¤ªà¤¿à¤à¤ रà¥à¤à¤¥à¤¾à¤® सà¤à¥à¤°à¤¿à¤¯"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr ""
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
#, fuzzy
msgid "Proxy port:"
msgstr "पà¥à¤°à¥à¤à¥à¤¸à¥"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
#, fuzzy
msgid "Proxy username:"
msgstr "à¤à¤ªà¤¯à¥à¤à¤à¤°à¥à¤¤à¤¾ à¤à¤¾ नाम:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
#, fuzzy
msgid "Proxy password:"
msgstr "à¤à¥à¤à¤¶à¤¬à¥à¤¦:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
#, fuzzy
msgid "<b>Proxy Configuration</b>"
msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ à¤à¤¡à¤¿à¤¯à¥ पà¥à¤²à¤-à¤à¤¨ सà¤à¤°à¤à¤¨à¤¾"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr ""
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
#, fuzzy
msgid "Use authentication with proxy"
msgstr "पà¥à¤°à¤®à¤¾à¤£à¥à¤à¤°à¤£ à¤à¤¾ à¤à¤ªà¤¯à¥à¤"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr ""
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -608,211 +581,201 @@ msgid ""
"fall back conversion from these encodings to UTF-8 would be attempted."
msgstr ""
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "बिà¤-दर:"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr ""
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "/सà¥à¤à¥ à¤à¥ à¤à¥à¤°à¤®à¤¾à¤¨à¥à¤¸à¤¾à¤° लà¤à¤¾à¤¯à¥à¤/शà¥à¤°à¥à¤·à¤ दà¥à¤µà¤¾à¤°à¤¾"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ साॠनहà¥à¤ à¤à¤°à¤¨à¤¾"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>मà¥à¤à¤¾à¤¡à¤¾à¤à¤¾</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "वरà¥à¤"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
#, fuzzy
msgid "Popup Information Settings"
msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ à¤à¤¡à¤¿à¤¯à¥ पà¥à¤²à¤-à¤à¤¨ सà¤à¤°à¤à¤¨à¤¾"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
#, fuzzy
msgid "<b>Cover image retrieve</b>"
msgstr "सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤ पहà¤à¤¾à¤¨"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr ""
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
#, fuzzy
msgid "Include:"
msgstr "à¤à¤¨à¥à¤¡à¥"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
#, fuzzy
msgid "<b>Miscellaneous</b>"
msgstr "<b>विविध (_M)</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
#, fuzzy
msgid "<b>Song Display</b>"
msgstr "<b>à¤à¥à¤¤ à¤à¥ दिà¤à¤¾à¤¨à¤¾</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "शà¥à¤°à¥à¤·à¤à¤¸à¥à¤à¥à¤°à¤¿à¤à¤ पà¥à¤°à¤¾à¤°à¥à¤ª à¤à¥ बारॠमà¥à¤ सà¥à¤à¤¨à¤¾ दिà¤à¤¾à¤à¤"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "à¤à¤¸à¥à¤à¤® सà¥à¤à¥à¤°à¥à¤à¤:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "à¤à¤¸à¥à¤à¤® सà¥à¤à¥à¤°à¥à¤à¤:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "शà¥à¤°à¥à¤·à¤ à¤à¤¾ पà¥à¤°à¤¾à¤°à¥à¤ª:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
#, fuzzy
msgid "<b>Popup Information</b>"
msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ à¤à¤¡à¤¿à¤¯à¥ पà¥à¤²à¤-à¤à¤¨ सà¤à¤°à¤à¤¨à¤¾"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
+#: src/audacious/ui_preferences.c:1497
#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "<b>पà¥à¤°à¥à¤¸à¥à¤à¥à¤¸</b>"
+msgid "Output plugin:"
+msgstr "à¤à¤à¤¸à¤à¤¸ à¤à¤à¤à¤ªà¥à¤ पà¥à¤²à¤-à¤à¤¨"
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "बà¥à¤° à¤à¤¾ à¤à¤à¤¾à¤° (à¤à¥à¤¬à¥):"
-
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¤à¤à¤ªà¥à¤ पà¥à¤²à¤-à¤à¤¨ (_C):"
-
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "सà¤à¥ à¤
नà¥à¤µà¤¾à¤¦à¤"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>सà¤à¥ पà¥à¤°à¤à¤¾à¤µ</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Visualization"
msgstr "/à¤à¤²à¥à¤ªà¤¨à¤¾ विधा"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
#, fuzzy
msgid "Audacious Preferences"
msgstr "BMP à¤à¥ वरà¥à¤¯à¤¤à¤¾à¤¯à¥à¤"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, fuzzy, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "निरà¥à¤¦à¥à¤¶à¤¿à¤à¤¾ (%s) à¤à¤¾ निरà¥à¤®à¤¾à¤£ à¤à¤°à¤¨à¥ मà¥à¤ à¤
सà¥à¤²à¤¤à¤¾: %s"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -831,22 +794,24 @@ msgstr "सà¥à¤à¥à¤°à¤¿à¤¯à¥"
#: src/libaudcore/tuple.c:689
#, fuzzy, c-format
-msgid "%d channels"
-msgstr "à¤
नà¥à¤ à¤à¥à¤¨à¤²:"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "à¤
नà¥à¤ à¤à¥à¤¨à¤²:"
+msgstr[1] "à¤
नà¥à¤ à¤à¥à¤¨à¤²:"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "à¤à¤¸ à¤à¥à¤¤à¤¾à¤µà¤¨à¥ à¤à¥ à¥à¤¿à¤° à¤à¤à¥ ना दिà¤à¤¾à¤à¤"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ सà¥à¤°à¤à¥à¤·à¤¿à¤¤ à¤à¤°à¤¨à¤¾"
@@ -917,12 +882,12 @@ msgstr "à¤à¤à¥à¤¯à¥à¤²à¤¾à¤à¤à¤°"
msgid "Preamp"
msgstr "डà¥à¤°à¥à¤®"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
#, fuzzy
msgid "Track Number"
msgstr "à¤à¥à¤°à¥à¤ à¤à¥ सà¤à¤à¥à¤¯à¤¾"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
#, fuzzy
msgid "Track Length"
msgstr "à¤à¥à¤°à¥à¤ à¤à¥ लà¤à¤¬à¤¾à¤:"
@@ -1168,6 +1133,29 @@ msgstr "%d à¤à¤¿à¤²à¥à¤¬à¤¾à¤à¤à¥à¤¸ पà¥à¤°à¤¤à¤¿ सà¥à¤à¤£à¥à¤¡"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "समय पर à¤à¤¾à¤à¤"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ लाना"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "पà¥à¤²à¥à¤¸à¥à¤à¥ à¤à¥ लाना"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
#, fuzzy
msgid "About Audacious"
@@ -1234,21 +1222,21 @@ msgstr "/à¤à¤¤à¤¾à¤° à¤à¥ साॠà¤à¤°à¥à¤"
msgid "Close on Jump"
msgstr "à¤à¥à¤²à¤¨à¥ पर बनà¥à¤¦ सà¤à¤µà¤¾à¤¦"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
#, fuzzy
msgid "Playlist Manager"
msgstr "/à¤à¥à¤ à¤
à¤à¥à¤°à¤¿à¤® पà¥à¤²à¥à¤¸à¥à¤à¥ नहà¥à¤"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
#, fuzzy
msgid "_Rename"
msgstr "सà¤à¤à¤¿à¤à¤¾à¤¨à¤¾à¤®"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "à¤à¥à¤²à¤¨à¥ पर बनà¥à¤¦ सà¤à¤µà¤¾à¤¦"
@@ -1261,6 +1249,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1270,25 +1264,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "%s: ना पहà¤à¤¾à¤¨à¤¾ à¤à¤¯à¤¾ विà¤à¤²à¥à¤ª `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, fuzzy, c-format
msgid "Starting %s"
msgstr "à¤à¤à¥à¤²à¤¿à¤¯à¤¨:"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, fuzzy, c-format
msgid "Unrecognized launch option: %d"
msgstr "%s: ना पहà¤à¤¾à¤¨à¤¾ à¤à¤¯à¤¾ विà¤à¤²à¥à¤ª `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1321,6 +1315,38 @@ msgid "Show session management options"
msgstr ""
#, fuzzy
+#~ msgid "Replay Gain"
+#~ msgstr "रà¥à¤ªà¥à¤²à¥à¤à¥à¤¨"
+
+#, fuzzy
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "बिà¤-दर:"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "वालà¥à¤¯à¥à¤® नियà¤à¤¤à¥à¤°à¤:"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>सà¤à¤à¤¿à¤à¤¾à¤¨à¤¾à¤®</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ à¤à¤¡à¤¿à¤¯à¥ पà¥à¤²à¤-à¤à¤¨ सà¤à¤°à¤à¤¨à¤¾"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "à¤à¥à¤²à¥à¤ªà¤¿à¤à¤ रà¥à¤à¤¥à¤¾à¤® सà¤à¥à¤°à¤¿à¤¯"
+
+#, fuzzy
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>पà¥à¤°à¥à¤¸à¥à¤à¥à¤¸</b>"
+
+#, fuzzy
+#~ msgid "Current output plugin:"
+#~ msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¤à¤à¤ªà¥à¤ पà¥à¤²à¤-à¤à¤¨ (_C):"
+
+#, fuzzy
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "BMP: डिसपà¥à¤²à¥ à¤à¥ à¤à¥à¤²à¤¨à¥ मà¥à¤ à¤
समरà¥à¤¥, बाहर निà¤à¤² रहा हà¥à¥¤"
@@ -1831,10 +1857,6 @@ msgstr ""
#~ msgstr "पà¥à¤°à¤®à¤¾à¤£à¥à¤à¤°à¤£ à¤à¤¾ à¤à¤ªà¤¯à¥à¤"
#, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "सà¥à¤µà¤à¤¾à¤²à¤¿à¤¤ पहà¤à¤¾à¤¨"
-
-#, fuzzy
#~ msgid "<b>Sampling Rate Converter</b>"
#~ msgstr "सà¥à¤®à¥à¤ªà¤² à¤à¥ दर:"
@@ -1863,9 +1885,6 @@ msgstr ""
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "सà¤à¤à¥à¤¤ सà¤à¤à¤¿à¤à¤¾à¤à¤ सॠमà¥à¤à¤¾à¤¡à¤¾à¤à¤¾ (à¤à¥à¤ सà¥à¤à¤¨à¤¾) लाà¤à¤à¥¤"
-#~ msgid "Jump to Time"
-#~ msgstr "समय पर à¤à¤¾à¤à¤"
-
#~ msgid "minutes:seconds"
#~ msgstr "à¤à¥à¤·à¤£:पल"
@@ -3742,9 +3761,6 @@ msgstr ""
#~ msgid "MPEG Level:"
#~ msgstr "à¤à¤®à¤ªà¥à¤à¤à¥ सà¥à¤¤à¤°:"
-#~ msgid "Bit rate:"
-#~ msgstr "बिà¤-दर:"
-
#~ msgid "Sample rate:"
#~ msgstr "सà¥à¤®à¥à¤ªà¤² à¤à¥ दर:"
@@ -3997,9 +4013,6 @@ msgstr ""
#~ msgid " Close "
#~ msgstr "/बनà¥à¤¦"
-#~ msgid "OSS Output Plugin"
-#~ msgstr "à¤à¤à¤¸à¤à¤¸ à¤à¤à¤à¤ªà¥à¤ पà¥à¤²à¤-à¤à¤¨"
-
#~ msgid "About OSS Driver"
#~ msgstr "à¤à¤à¤¸à¤à¤¸ à¤à¤¾à¤²à¤ à¤à¤¾à¤²à¤ à¤à¥ बारॠमà¥à¤"
diff --git a/po/hr.po b/po/hr.po
index 9896601..df22fcf 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: hr\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-01-28 20:17+0100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -16,6 +16,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (neispravan UTF-8)"
@@ -103,113 +114,113 @@ msgstr "Rumunjski:"
msgid "Finnish:"
msgstr "Finski:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Francuski:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "NjemaÄki:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Armenski:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "GrÄki:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Indijski:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "MaÄarski:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Talijanski:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Japanski:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Koreanski:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Rumunjski:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Litvanski:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Makedonski:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Poljski:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Brazilsko Portugalski:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Rumunjski:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Ruski:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Srpski (Latinica):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Srpski (Äirilica):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Pojednostavljeni Kineski:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Slovenski:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Å panski:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Å vedski:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Tradicionalni Kineski:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ukrajinski:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Velšanski:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "UÄitaj listu zvuÄnih zapisa"
@@ -219,90 +230,75 @@ msgstr "UÄitaj listu zvuÄnih zapisa"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "SkoÄi unazad u listi zvuÄnih zapisa"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Pusti trenutnu listu zvuÄnih zapisa"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Pauziraj trenutni zvuÄni zapis"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Zaustavi trenutni zvuÄni zapis"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Pauziraj ako svira, inaÄe pusti"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "SkoÄi unaprjed u listi zvuÄnih zapisa"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
#, fuzzy
msgid "Display Jump to File dialog"
msgstr "Prikaži \"SkoÄi na datoteku\" okvir"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Dodaje datoteke u listu zvuÄnih zapisa."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
#, fuzzy
msgid "Add new files to a temporary playlist"
msgstr "Dodaje datoteke u listu zvuÄnih zapisa."
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
#, fuzzy
msgid "Display the main window"
msgstr "Prikaži glavni prozor"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "Prikaži player"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -310,264 +306,241 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Nova lista zvuÄnih zapisa"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Lista zvuÄnih zapisa"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Dodaci"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "IzvoÄaÄ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Naslov"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Broj zvuÄnog zapisa"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Žanr"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Ime datoteke"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Putanja datoteke"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Godina"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Komentar"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "_IzaÄi"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "Japanski:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "Japanski:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Linije"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "Koreanski:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "Ruski:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "GrÄki:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Poljski:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Ime datoteke</b>"
+msgid "Single track mode"
+msgstr "Prikaži detalje zvuÄnog zapisa"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Ime albuma: "
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>KotaÄiÄ miÅ¡a</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Prepoznavanje formata</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<b>Ime datoteke</b>"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "VeliÄina buffer-a:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
msgstr ""
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Konfiguracija proxy servera</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "UkljuÄi upotrebu proxy servera"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-podaci</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Prikaži detalje zvuÄnog zapisa"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ime albuma: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>KotaÄiÄ miÅ¡a</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>IskaÄuÄe informacije</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Ime proxy servera:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Proxy port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Proxy korisniÄko ime:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Proxy lozinka:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Konfiguracija proxy servera</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "UkljuÄi upotrebu proxy servera"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Koristi autentifikaciju sa proxy-jem."
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -575,15 +548,15 @@ msgstr ""
"<span size=\"small\">Mijenjanje ovih podeÅ¡avanja Äe zahtevati ponovno "
"pokretanje Audacious-a.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Auto-prepozavanje kodiranja znakova za:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Rezervna kodna stranica:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -595,47 +568,47 @@ msgstr ""
"iskljuÄeno, kodiranje u ovoj listi Äe biti kandidat za kodiranje meta-"
"podataka, i rezervna konverzija iz ovih kodiranja u UTF-8 Äe biti pokuÅ¡ana."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Ime datoteke</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Nastavi reprodukciju na poÄetku"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Napravi novu listu od naÄenih stavki"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Dodaje datoteke u listu zvuÄnih zapisa."
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Meta-podaci</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Kategorija"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "<b>PodeÅ¡avanja iskaÄuÄih informacija</b>"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
#, fuzzy
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Prepoznavanje formata</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -644,101 +617,101 @@ msgstr ""
"Dok traži naslovne slike albuma, Audacious traži odreÄene rijeÄi u imenu "
"datoteke. Možete navesti te rijeÄi dolje u listi, razdvojene zarezima."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "IskljuÄi:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "UkljuÄi:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Rekurzivno traži naslovnu sliku"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Dubina pretrage: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Koristi jednu naslovnu sliku po datoteci"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
#, fuzzy
msgid "<b>Miscellaneous</b>"
msgstr "<b>_Ostalo</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Prikaz pjesme</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Prikaži informacije o formatu znakovnog niza naslova"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "Vlastiti znakovni niz:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Vlastiti znakovni niz:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Format naslova:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>IskaÄuÄe informacije</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Prikaži iskaÄuÄe informacije za stavke u listi zvuÄnih zapisa"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -748,54 +721,47 @@ msgstr ""
"listi zvuÄnih zapisa. Prozor prikazuje ime pjesme, ime albuma, žanr, godinu "
"izdavanja, broj zvuÄnog zapisa, dužinu zvuÄnog zapisa i sliku."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Uredi podeÅ¡avanja za iskaÄuÄe prozore"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio sistem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "VeliÄina buffer-a:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Trenutni izlazni plug-in:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ulazni dodatak: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Prevoditelji"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efekti</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Vizualizacija"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious podešavanja"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Nije moguÄe napraviti direktorij (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -814,22 +780,24 @@ msgstr "stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Više ne prikazuj ovo upozorenje"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "SaÄuvaj listu zvuÄnih zapisa"
@@ -891,12 +859,12 @@ msgstr "Equalizer"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
#, fuzzy
msgid "Track Number"
msgstr "Broj zvuÄnog zapisa"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
#, fuzzy
msgid "Track Length"
msgstr "Dužina zvuÄnog zapisa:"
@@ -1133,6 +1101,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "SkoÄi na vrijeme"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "UÄitaj listu zvuÄnih zapisa"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "UÄitaj listu zvuÄnih zapisa"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "O Audacious-u"
@@ -1195,19 +1186,19 @@ msgstr "Obriši A-B"
msgid "Close on Jump"
msgstr "Zatvori okvir klikom na Otvori"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Manager liste zvuÄnih zapisa"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Stavke"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Preimenuj"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Zatvori okvir klikom na Otvori"
@@ -1220,6 +1211,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1229,25 +1226,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "%s: nepoznata opcija `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, fuzzy, c-format
msgid "Unrecognized launch option: %d"
msgstr "%s: nepoznata opcija `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1282,6 +1279,24 @@ msgid "Show session management options"
msgstr "Prikaži dekoracije programa za upravljanje prozorima"
#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>KotaÄiÄ miÅ¡a</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Meta-podaci</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>IskaÄuÄe informacije</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audio sistem</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Trenutni izlazni plug-in:"
+
+#, fuzzy
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "audacious: Nije moguÄe otvoriti prikaz, izlazim.\n"
@@ -1504,9 +1519,6 @@ msgstr "Prikaži dekoracije programa za upravljanje prozorima"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Nijedan ulazni dodatak nije prepoznao ovu datoteku"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ulazni dodatak: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1517,9 +1529,6 @@ msgstr "Prikaži dekoracije programa za upravljanje prozorima"
#~ msgid "Connectivity"
#~ msgstr "Povezanost"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Prepoznavanje formata</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Prepoznaj format datoteke na osnovu oznake tipa."
@@ -1563,9 +1572,6 @@ msgstr "Prikaži dekoracije programa za upravljanje prozorima"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "UÄitaj meta-podatke (informacije u tag-ovima) iz zvuÄnih zapisa."
-#~ msgid "Jump to Time"
-#~ msgstr "SkoÄi na vrijeme"
-
#~ msgid "minutes:seconds"
#~ msgstr "minute:sekunde"
diff --git a/po/hu.po b/po/hu.po
index ff7ab77..e88328d 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,289 +1,294 @@
-# Hungarian translation of audacious.
-# Copyright (C) 2006 Free Software Foundation, Inc.
-# This file is distributed under the same license as the audacious package.
+# Hungarian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
# Laszlo Dvornik <dvornik at gnome.hu>, 2006.
# Peter Polonkai <polesz at nedudu.hu>, 2010.
-#
+# Péter Polonkai <polesz at nedudu.hu>, 2011, 2012.
msgid ""
msgstr ""
-"Project-Id-Version: audacious 1.2.1\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-21 11:09+0100\n"
-"Last-Translator: Peter Polonkai <polesz at nedudu.hu>\n"
-"Language-Team: Hungarian <dvornik at gnome.hu>\n"
-"Language: hu\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 06:38+0000\n"
+"Last-Translator: Péter Polonkai <polesz at nedudu.hu>\n"
+"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Keresés ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d fájl található"
+msgstr[1] "%d fájl található"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (érvénytelen UTF-8)"
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
msgid "Core developers:"
msgstr "FÅ fejlesztÅk:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
msgstr "Grafika:"
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
msgstr "Alapértelmezett bÅr:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
msgstr "BÅvÃtmény fejlesztés:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
msgstr "Patch készÃtÅk:"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
msgid "1.x developers:"
msgstr "1.x fejlesztÅi:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
msgstr "BMP-fejlesztÅk:"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
msgid "Belarusian:"
-msgstr "Belarusz"
+msgstr "Belorusz"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
msgstr "Baszk:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
msgstr "Brazil portugál:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
msgstr "Breton:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
-msgstr "Bulgár"
+msgstr "Bolgár"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
msgid "Catalan:"
msgstr "Katalán"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
msgid "Chinese:"
msgstr "KÃnai:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
msgid "Croatian:"
msgstr "Horvát"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
msgstr "Cseh:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
msgstr "Holland:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
msgid "Estonian:"
msgstr "Ãszt"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
msgid "Finnish:"
msgstr "Finn:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
msgstr "Francia:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
msgstr "Német:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
msgid "Georgian:"
msgstr "Grúz"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
msgstr "Görög:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
msgstr "Magyar:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
msgstr "Olasz:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
msgstr "Japán:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
msgstr "Koreai:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
msgid "Latvian:"
-msgstr "Horvát"
+msgstr "Lett:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
msgstr "Litván:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
msgstr "Macedón:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Mexikói spanyol:"
+
+#: src/audacious/credits.c:280
msgid "Polish:"
msgstr "Lengyel:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Portuguese:"
-msgstr "Portugál"
+msgstr "Portugál:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
msgstr "Román:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
msgstr "Orosz:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
msgstr "Szerb (Latin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
msgstr "Szerb (Cirill):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
msgstr "EgyszerűsÃtett kÃnai:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
msgstr "Szlovák:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
msgstr "Spanyol:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
msgstr "Svéd:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
msgstr "Hagyományos kÃnai:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
msgstr "Török:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
msgstr "Ukrán:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnami:"
+
+#: src/audacious/credits.c:341
msgid "Welsh:"
msgstr "Walesi:"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Ideglenes lejátszólista"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Hiba a Winamp EQF fájl '%s' importálásakor"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Keresés ..."
-
-#: src/audacious/folder-add.c:89
-#, fuzzy, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d fájlt találtam"
-msgstr[1] "%d fájlt találtam"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "Visszalépés a lejátszólistában"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Jelenlegi lejátszólista lejátszásának elkezdése"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Jelenlegi szám szüneteltetése"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Jelenlegi szám leállÃtása"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Lejátszás esetén szüneteltetés, különben lejátszás"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "ElÅrelépés a lejátszólistában"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "Ugrás fájlra párbeszédablak megjelenÃtése"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "Fájlok hozzáadása a lejátszó listához"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Ãj fájlok hozzáadása az ideiglenes lejátszólistához"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "FÅablak megjelenÃtése"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Minden Audacious ablak megnyitása"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Verzió mutatása"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "HibakeresŠüzenetek kiÃrása"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Headless mód (béta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "Fájl..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- multimédia fájlok lejátszása"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -292,336 +297,310 @@ msgstr ""
"%s: %s\n"
"Próbája a `%s --help' további információkért.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "Dekóder nem található ehhez %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Pufferelés ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Nem lehetséges %s %s: nem támogatott fájl kiterjesztés."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "mentés"
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Névtelen lejátszólista"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "betöltés'"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Ãj lejátszólista"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Most játszott"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"A lejátszási listát nem lehet rendezni, mert a metaadatok keresése még "
+"folyamatban van (vagy le van tiltva)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Hang"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Lejátszási erÅsÃtés"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "Hálózat"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Lejátszólista"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "BÅvÃtmények"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "ElÅadó"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "CÃm"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Szám sorszáma"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "Műfaj"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Fájlnév"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Fájlútvonal"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Dátum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Ãv"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Megjegyzés"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Kodek"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "MinÅség"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "Nincs"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arab"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Balti"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "KÃnai"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japán"
+msgid "Greek"
+msgstr "Görög"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Tajvani"
+msgid "Hebrew"
+msgstr "Héber"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "KÃnai"
+msgid "Japanese"
+msgstr "Japán"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "Koreai"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Orosz"
+msgid "Polish"
+msgstr "Lengyel"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Görög"
+msgid "Russian"
+msgstr "Orosz"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Héber"
+msgid "Taiwanese"
+msgstr "Tajvani"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "Török"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arab"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Lengyel"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Balti"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Univerzális"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit mélység</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album mód"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Kimeneti bit mélység:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Minden folyam erre a bit mélységre lesz konvertálva.\n"
-"A maximálisan támogatott bit mélység függ a\n"
-"hangkártyától és a kimeneti bÅvÃtménytÅl."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Kimeneti beállÃtások</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>HangerŠszabályzó</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Bit mélység:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Szoftveres hangerÅszabályzó használata"
+msgid "Buffer size:"
+msgstr "Pufferméret:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Szoftveres hangerÅ-szabályozás használata. Ez hasznos lehet olyan "
-"helyzetekben, ahol az audio-rendszer nem támogatja a lejátszás hangerejének "
-"a szabályozását."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- multimédia fájlok lejátszása"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Szoftveres hangerÅ-szabályozás használata (nem ajánlott)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Lejátszási erÅsÃtési mód</b>"
+msgstr "<b>Replay Gain</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "Lejátszási erÅsÃtés engedélyezése"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metaadat</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Szám részleteinek megtekintése"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Vágás megakadályozása (ajánlott)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>EgérgörgÅ</b>"
+msgstr "<b>Szintek állÃtása</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Felbukkanó információ</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplify all files:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Engedélyezi a csúcs információ túllépés megelÅzését"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "CÃmkézetlen fájlok kiegészÃtése:"
+
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Proxy gépnév:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Proxy port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Proxy felhasználónév:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Proxy jelszó:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Proxy beállÃtása</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Proxyhasználat bekapcsolása"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "HitelesÃtés használata proxyval"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Ezen beállÃtások megváltoztatásához újra kell indÃtani "
-"az Audacioust.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Automatikus karakterkódolás felismerés ennél:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "Tartalék karakterkódolások:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"A metaadat tartalék átalakÃtásához használt karakterkódolások listája. Ha az "
-"automatikus karakterkódolás felismerés sikertelen vagy ki lett kapcsolva, az "
-"ezen listán szereplŠkódolások kerülnek feldolgozásra a metaadat kódolásának "
-"jelöltjeiként, és a tartalék átalakÃtás UTF-8-ba ezekbÅl a kódolásokból lesz "
-"megkÃsérelve."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>Bit mélység</b>"
+msgstr "<b>Viselkedés</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Lejátszás folytatása induláskor"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Ajánlott amikor a jelenlegi zeneszám törlésre kerül"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "Az aktuális lejátszólista törlése új fájlok megnyitásakor"
+msgstr "Lejátszólista törlése fájlok megnyitásakor"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Ãj fájlok hozzáadása az ideiglenes lejátszólistához"
+msgstr "Fájlok megnyitása az ideiglenes lejátszólistában"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Metaadat</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ne töltse be a metaadatokat amÃg játssza a dalt"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "CÃM"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ELÅADÃ - CÃM"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ELÅADÃ - ALBUM - CÃM"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ELÅADÃ - ALBUM - SÃV. CÃM"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ELÅADÃ [ ALBUM] - SÃV. CÃM"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - CÃM"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Kategória"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Felbukkanó információ beállÃtásai"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>BorÃtókép letöltése</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -631,99 +610,75 @@ msgstr ""
"fájlnévben. Megadhatja ezeket a szavakat az alábbi listában, vesszÅvel "
"elválasztva."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "Kihagyja:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Beletartozzon:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "BorÃtó keresése rekurzÃvan"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Keresési mélység: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Fájlonkénti borÃtó használata"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Egyéb</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "FolyamatjelzŠmutatása az aktuális számhoz"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Késleltetés a file popup ablak megnyitásakor:"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Egyéni"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Szám megjelenÃtése</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr "A dalok számának mutatása"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "VezetŠnullák mutatása (2:00 helyett 02:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Információ megjelenÃtése a cÃm-karakterlánc formátumáról"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "CÃM"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ELÅADÃ - CÃM"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ELÅADÃ - ALBUM - CÃM"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ELÅADÃ - ALBUM - SÃV. CÃM"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ELÅADÃ [ ALBUM] - SÃV. CÃM"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - CÃM"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Egyéni"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Egyéni karakterlánc:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "CÃmformátum:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Felbukkanó információ</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr "Felbukkanó információ megjelenÃtése a lejátszólista bejegyzéseknél"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -734,77 +689,84 @@ msgstr ""
"műfaját, a megjelenés évét, a szám sorszámát, a szám hosszát és az "
"albumborÃtót."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Felbukkanó információ beállÃtásainak szerkesztése"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Hangrendszer</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Pufferméret:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Kimeneti bÅvÃtmény:"
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Jelenlegi kimeneti bÅvÃtmény:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "FordÃtók"
+msgstr "Ãtvitel"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Bemenet"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Effektusok</b>"
+msgstr "Effekt"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "/K_ijelzési mód"
+msgstr "MegjelenÃtés"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "Ãltalános"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Audacious beállÃtásai"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Nem lehet létrehozni a könyvtárat (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr "PozÃció nem található."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "Nincs lejátszott dal."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio CD, sáv %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Monó"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr "sztereó"
+msgstr "Sztereó"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d csatorna"
+msgstr[1] "%d csatorna"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Köszönet"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "FordÃtók"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Audacious névjegye"
+
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -813,419 +775,435 @@ msgstr ""
"Valóban be akarja zárni ezt a fájlt %s? Ha igen, akkor bármilyen változás "
"történt a lejátszólistán az el fog veszni."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
msgstr "_Ne mutassa többé ezt a figyelmeztetést"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
-msgstr "Lejátszólista mentése"
+msgstr "Lejátszólista átnevezése"
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
msgstr "beállÃtások ..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
msgstr "_Engedélyezve"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "Equalizer"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
msgstr "Preamp"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "Szám sorszáma"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
msgstr "Szám hossza"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
-msgstr "Kemény Rock"
+msgstr "Acid rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
msgstr "Chamber Music"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
msgstr "Klasszikus"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
msgstr "Diszkó"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
msgstr "Gengszter Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
msgstr "Kemény Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
msgstr "Ãj Hullám"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
msgstr "Szving"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">n/a</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
msgstr "Metaadat frissÃtés sikeres"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
msgstr "Metaadat frissÃtés sikertelen"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
msgstr "Száminformáció"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Formátum:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">MinÅség:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">Bitráta:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">CÃm</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">ElÅadó</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Megjegyzés</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Műfaj</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Ãv</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Szám sorszáma</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
msgstr "Nincs ehhez információ %s.\n"
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Audacious névjegye"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Ugrás idÅpontra"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Köszönet"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "FordÃtók"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Lejátszólista exportálása"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Lejátszólista importálása"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "FelülÃrja %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Várakozási sor menedzser"
+
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Fájlok megnyitása"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "Fájlok hozzáadása"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "Párbeszédablak bezárása megnyitás után"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "Párbeszédablak bezárása hozzáadás után"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Kiszedés a sorból"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
msgstr "_Sorba állÃtás"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Ugrás számra"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "_Kiszedés a sorból"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Ugrás a számra"
+
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
msgstr "SzűrÅ: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
msgstr "_SzűrÅ: "
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
msgstr "Megjegyzés"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
msgstr "Tö_rlés"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
msgstr "Bezárás ugrás után"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr "Lejátszólista kezelÅ"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Elemek"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "Ãt_nevezés"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
msgstr "_Párbeszédablak bezárása a lejátszólista aktÃválása után"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
msgstr "URL megnyitása"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
msgstr "URL hozzáadása"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(További üzenetek el vannak rejtve.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "A fájl nem valós .desktop fájl"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Ismeretlen desktop fájl verzió '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "IndÃtás %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "Az alkalmazás nem fog el dokumentumokat a parancssorban"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Ismeretlen futtatási opció: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "Nem adja át a dokumentum URI a 'Type=Link' desktop értéket"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "Nincs futtatható elem"
@@ -1250,1986 +1228,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Munkamenet-kezelŠopciók"
+msgstr "Munkamenet kezelési lehetÅségek:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Munkamenet-kezelŠopciók mutatása"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s KépernyŠmegnyitása sikertelen, kilépés.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Preamp:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Alapértelmezett nyereség:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Ez az erÅsÃtési érték lesz használva ha a fájl nem tartalmaz lejátszási "
-#~ "erÅsÃtési metaadatot."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Kérjük vegy figyelembe hogy a leghatékonyabb módja a "
-#~ "jel vágásának ha nem ad meg pozitÃv értékeket.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Lejátszási erÅsÃtés beállÃtása</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Szám erÅsÃtés/csúcsérték"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Album erÅsÃtés/csúcsérték"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Használja a csúcs értéket a lejátszási csúcs információ túllépésének "
-#~ "megelÅzéséhez"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Klasszikus Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Egyéb"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Ipari"
-
-#~ msgid "Alternative"
-#~ msgstr "AlternatÃv"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Filmzene"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Ãnek"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentális"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Játék"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Zenei klip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "MeditatÃv"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumentális Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumentális Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etnikai"
-
-#~ msgid "Gothic"
-#~ msgstr "Gótikus"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Ipari"
-
-#~ msgid "Electronic"
-#~ msgstr "Elektronikus"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Déli Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komédia"
-
-#~ msgid "Cult"
-#~ msgstr "Kultusz"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Keresztény Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "NatÃv Amerikai"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaré"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Pszihedelikus"
-
-#~ msgid "Rave"
-#~ msgstr "Rév"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "ElÅzetes"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Törzsi"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Nemzeti Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Kelta"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgárd"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gótikus Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "ProgresszÃv Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Pszihedelikus Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Szimfónikus Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Lassú Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Kórus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akusztikus"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Szöveg"
-
-#~ msgid "Chanson"
-#~ msgstr "Sanzon"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Szonáta"
-
-#~ msgid "Symphony"
-#~ msgstr "Szimfónikus"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "SzatÃra"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Klub"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Szamba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklór"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Ritmikus Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "SzabadstÃlus"
-
-#~ msgid "Duet"
-#~ msgstr "Duett"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Dobszóló"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Lengyel Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Keresztény gengszter Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Kortárs keresztény"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Keresztény Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Trash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Egy audio lejátszó sokféle platformon.\n"
-#~ "Copyright (C) 2005-2010 Audacious-fejlesztÅcsapat"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Nem lehet létrehozni a naplófájlt (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr ""
-#~ "Minden hiba és figyelmeztetés megjelenÃtése a kimeneti eszközön (stdout)"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Csomagolóban használt"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Sajnálom, a szálak kezelése nem támogatott az ön platformján.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "BÅvÃtmény betöltés nem támogatott! A bÅvÃtmények nem lettek betöltve.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Nem támogatott verzió figyelmeztetés"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 még nincs kész!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Kérem ne küldjön hibás fájlokat, ha nem jelentÅs problémába ütközött.</"
-#~ "b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Ez az Audacious2 egy <i>alpha</i> kiadása. Ez még mindig meglehetÅsen "
-#~ "hiányos és csiszolatlan.\n"
-#~ "Ãgy gondoljuk hogy a legtöbb kisebb hibát amit jelentettek hamarosan "
-#~ "megoldjuk és tovább stabilizáljuk.\n"
-#~ "Azonban, ha egy jelentÅs hibát tapasztal, mint például a program leállása "
-#~ "egy adott fájl lejátszásakor,\n"
-#~ "akkor nekünk tudnunk kell errÅl.\n"
-#~ "\n"
-#~ "Megkérjük, hogy legyen elnézŠa viszonylag jelentéktelen hibákkal szemben "
-#~ "ezen a ponton,\n"
-#~ "és nem fontos hogy jelentse nekünk. ElÅre is köszönjük!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr ""
-#~ "<b>Megjegyzéseket Ãrni (bloggolni) a megtalálható hibákról szintén nem "
-#~ "szerencsés.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "UgyanÃgy vagyunk mi a fejlesztÅk is. Nem olvasunk blogokat rendszeresen. "
-#~ "Ha van egy nagyobb hiba,\n"
-#~ "kérjük, hogy azt a jelezze a mi hibakövetŠrendszerünkben például a "
-#~ "http://jira.atheme.org/,\n"
-#~ "vagy azon a fórumokon, amelyek a honlapon megtalálhatóak.\n"
-#~ "\n"
-#~ "Ez segÃt nekünk megtalálni a további információkat a problémára, amit "
-#~ "valószÃnűleg\n"
-#~ "nem tudnánk meg másképpen."
-
-#~ msgid "Playback"
-#~ msgstr "Lejátszás"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Lejátszás</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Az Audacious indulásakor automatikusan arról a pontról folytatja a "
-#~ "lejátszást, ahol korábban meg lett állÃtva."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ne legyen léptetés a lejátszólistában"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Egy szám lejátszásának befejezése után automatikusan ne lépjen a "
-#~ "következÅre."
-
-#~ msgid "Enabled"
-#~ msgstr "Engedélyezve"
-
-#~ msgid "Description"
-#~ msgstr "LeÃrás"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Kimeneti bÅvÃtmény beállÃtásai"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Kimeneti bÅvÃtmény információja"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "_Dekódolólista:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Dekódolók</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Ã_ltalános bÅvÃtmények listája:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Ãltalános</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Kijelzési bÅvÃtmények listája:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Kijelzési mód</b>"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "_Effektus bÅvÃtmények listája:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Ãltalános</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Hely</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Nyers metaadat</span>"
-
-#~ msgid "Key"
-#~ msgstr "Kulcs"
-
-#~ msgid "Value"
-#~ msgstr "Ãrték"
-
-#~ msgid "170 Hz"
-#~ msgstr "170 Hz"
-
-#~ msgid "310 Hz"
-#~ msgstr "310 Hz"
-
-#~ msgid "3 kHz"
-#~ msgstr "3 kHz"
-
-#~ msgid "6 kHz"
-#~ msgstr "6 kHz"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "ElérhetÅ _beállÃtások:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "ElérhetÅ _beállÃtások:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Fájlok hozzáadása/megnyitása párbeszédablak"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Adja meg a lejátszani kÃvánt helyet:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Fájlnév:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Egyik bemeneti bÅvÃtmény sem ismerte fel a fájlt"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Bemeneti bÅvÃtmény: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Nem lett kiválasztva kimeneti bÅvÃtmény.</big></b>\n"
-#~ "Nem választott ki kimeneti bÅvÃtményt."
-
-#~ msgid "Connectivity"
-#~ msgstr "Kapcsolódás"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formátum-felismerés</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Ha be van kapcsolva az Audacious a fájlformátumokat kérés esetén ismeri "
-#~ "fel. Ez rendetlenebb lejátszólistát eredményezhet, viszont "
-#~ "sebességnövekedést érhet el vele."
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Lejátszás</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "A UNIX-os multimédia jövÅje.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2006 Audacious-fejlesztÅcsapat\n"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Fájlformátumok felismerése kérés esetén, azonnali mód helyett."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Ha be van kapcsolva az Audacious a fájlformátumokat kérés esetén ismeri "
-#~ "fel. Ez rendetlenebb lejátszólistát eredményezhet, viszont "
-#~ "sebességnövekedést érhet el vele."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Metaadat betöltése lejátszólistákból és fájlokból"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Metaadat (tag információ) betöltése a zenefájlokból."
-
-#~ msgid "Jump to Time"
-#~ msgstr "Ugrás idÅpontra"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "perc:másodperc"
-
-#~ msgid "Track length:"
-#~ msgstr "Szám hossza:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Lejátszólista mentése"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Hiba a(z) \"%s\" lejátszólista Ãrása közben: %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "A(z) %s már létezik. Folytatja?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet menteni a lejátszólistát.</big></b>\n"
-#~ "\n"
-#~ "Ismeretlen fájltÃpus: '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "BeállÃtások"
-
-#~ msgid "Mouse"
-#~ msgstr "Egér"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Szünet a számok között"
-
-#~ msgid "Pause for"
-#~ msgstr "Szünet"
-
-#~ msgid "seconds"
-#~ msgstr "másodpercre"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Fájlnév</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Aláhúzás karakterek konvertálása szóközre"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "%20 konvertálása szóközre"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Fájl párbeszédablak</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Mindig frissÃtse a könyvtárat a fájl párbeszédablak megnyitásakor"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Mindig frissÃtse a fájl párbeszédablakot (ez lassÃtja a párbeszédablak "
-#~ "megnyitását nagy könyvtáraknál, és a Gnome VFS automatikusan kezeli ezt)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Megváltoztatja a hangerÅt"
-
-#~ msgid "percent"
-#~ msgstr "százalékkal"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Ennyit görget a lejátszólistában:"
-
-#~ msgid "lines"
-#~ msgstr "sor"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "/LeállÃtás a jelenlegi szám után"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "/Szünet"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Ismétlés"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Véletlenszerű sorrend"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/A lejátszólista ne legyen léptetve"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Lejátszás"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Szünet"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/LeállÃtás"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/ElÅzÅ"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/KövetkezÅ"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Kijelzési mód"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Analizátor-üzemmód/Tűz"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Szkóp-üzemmód"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Analizátor-üzemmód/Tűz"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Roló-üzemmód"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/FrissÃtési sebesség"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Analizátor esése"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Csúcsértékek esése"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Lejátszólista mentése"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Kijelölés rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Lista betöltése"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr ""
-#~ "Igény szerint betölti a metaadatot, amikor megjelenÃti a fájlt a "
-#~ "lejátszólistában"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Lista mentése"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Alapértelmezett lista mentése"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "BÅrlista frissÃtése"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/A lejátszólista ne legyen léptetve"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Nézet"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/InternetcÃm hozzáadása..."
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Fájlok hozzáadása..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "Keresési mélység: "
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Kijelölés megfordÃtása"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#~ msgid "Select All"
-#~ msgstr "Mindent kijelöl"
-
-#, fuzzy
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "/Lista rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Kijelölés megszüntetése"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Ãsszes eltávolÃtása"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Nem elérhetÅ fájlok eltávolÃtása"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/Sor törlése"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Nem elérhetÅ fájlok eltávolÃtása"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Nem elérhetÅ fájlok eltávolÃtása"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Duplikátumok eltávolÃtása"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "CÃm"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Duplikátumok eltávolÃtása/Ãtvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Fájlnév"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Duplikátumok eltávolÃtása/Ãtvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Lista rendezése/Ãtvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Duplikátumok eltávolÃtása/Ãtvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Kijelöletlenek eltávolÃtása"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Duplikátumok eltávolÃtása/Ãtvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Kijelöltek eltávolÃtása"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Duplikátumok eltávolÃtása/Ãtvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Véletlenszerű listasorrend"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Véletlenszerű listasorrend"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Lista megfordÃtása"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Lista rendezése"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Lista rendezése/CÃm alapján"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Lista rendezése/CÃm alapján"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "ElÅadó"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Lista rendezése/ElÅadó alapján"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Lista rendezése/Fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Lista rendezése/Fájlnév alapján"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Dátum"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Lista rendezése/CÃm alapján"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Szám sorszáma"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Lista rendezése/Szám sorszáma alapján"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/Lista rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Lista rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Kijelölés rendezése"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "CÃm"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Megjegyzés"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Szám részleteinek megtekintése"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Fájl lejátszása"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Metaadat betöltése lejátszólistákból és fájlokból"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "/Hely lejátszása"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "BÅvÃtmények"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/BeállÃtások"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "BeállÃtások ablak"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Kilépés"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Audacious névjegye"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "/A-B beállÃtása"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/A-B törlése"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Ugrás a lejátszólista elejére"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Ugrás fájlra"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Betevés a sorba"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Betöltés"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Importálás"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/Mentés"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Törlés"
-
-#~ msgid "Preset"
-#~ msgstr "BeállÃtás"
-
-#~ msgid "Load preset"
-#~ msgstr "BeállÃtás betöltése"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Betöltés/Automatikusan betöltÅdÅ beállÃtás"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Betöltés/Automatikusan betöltÅdÅ beállÃtás"
-
-#, fuzzy
-#~ msgid "Default"
-#~ msgstr "Alapértelmezett bÅr:"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Automatikusan betöltÅdÅ beállÃtás mentése"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "sztereó"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Equalizer-beállÃtás mentése"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Betöltés/Fájlból"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "BeállÃtás betöltése"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Betöltés/Winamp EQF fájlból"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Betöltés/Winamp EQF fájlból"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Importálás/Winamp-beállÃtások"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Importálás/Winamp-beállÃtások"
-
-#~ msgid "Save preset"
-#~ msgstr "BeállÃtás mentése"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Mentés/Automatikusan betöltÅdÅ beállÃtás"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Automatikusan betöltÅdÅ beállÃtás mentése"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/Betöltés/Fájlból"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "BeállÃtás mentése"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Mentés/Winamp EQF fájlba"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Mentés/Winamp EQF fájlba"
-
-#~ msgid "Delete preset"
-#~ msgstr "BeállÃtás törlése"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Törlés/Automatikusan betöltÅdÅ beállÃtás"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">IdÅtartam ezredmásodpercben, amennyivel a hangfolyam "
-#~ "elÅpufferelve lesz.\n"
-#~ "Növelje ezt az értéket, ha hangkihagyást tapasztal. \n"
-#~ "Figyeljen arra, hogy a magas értékek az Audacious "
-#~ "teljesÃtménycsökkenéséhez vezethetnek.</span>"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet betölteni a bÅrt.</big></b>\n"
-#~ "\n"
-#~ "EllenÅrizze, hogy a(z) '%s' helyen található bÅr használható-e és az "
-#~ "alapértelmezett bÅr megfelelÅen telepÃtve van-e itt: '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Szöveges üzemmód [kÃsérleti]"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious fÅ fejlesztÅi:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Equalizer"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/Fájl lejátszása"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/Betöltés/Fájlból"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "monó"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Válassza ki a fŠlejátszóablak betűkészletét:"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "POZICIONÃLÃS IDE: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Mindig legfelül"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Mindig legfelül"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Kijelzési mód"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Nem lehet megnyitni a hangot.</big></b>\n"
-#~ "\n"
-#~ "EllenÅrizze a következÅket:\n"
-#~ "1. A megfelelÅ kimeneti bÅvÃtmény van kiválasztva.\n"
-#~ "2. Semmilyen más program nem foglalja le a hangkártyát.\n"
-#~ "3. A hangkártya megfelelÅen van beállÃtva.\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Számnév automatikus görgetése"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/Lejátszó megjelenÃtése"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Lejátszólista-szerkesztÅ megjelenÃtése"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Equalizer megjelenÃtése"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Mindig legfelül"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/MegjelenÃtés minden munkaterületen"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Lejátszó felgördÃtése"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Lejátszólista-szerkesztÅ felgördÃtése"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Equalizer felgördÃtése"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/Mentés"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Analizátor-üzemmód"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Szkóp-üzemmód"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Analizátor-üzemmód/Tűz"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Analizátor-üzemmód/FüggÅleges vonalak"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "sor"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Szkóp-üzemmód/Pontok"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Szkóp-üzemmód/Vonalak"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Szkóp-üzemmód/Tömör"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "monó"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/FrissÃtési sebesség/Teljes (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/FrissÃtési sebesség/Fél (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/FrissÃtési sebesség/Negyed (~13 fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/FrissÃtési sebesség/Nyolcad (~6 fps)"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Eltelt idÅ"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/HátralévÅ idÅ"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "BÅvÃtmények"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Elválasztók megjelenÃtése a lejátszólistában"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "CÃm"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "ElÅadó"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Fájlnév:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious lejátszólista-szerkesztÅ"
-
-#~ msgid "Appearance"
-#~ msgstr "Megjelenés"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Betűkészletek</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Lejátszó:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Válassza ki a fŠlejátszóablak betűkészletét:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "L_ejátszólista:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Válassza ki a fŠlejátszóablak betűkészletét:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Bitmap betűkészletek használata, ha elérhetÅek"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Bitmap betűkészletek használata, ha elérhetÅek. A bitmap betűkészletek "
-#~ "nem támogatják a Unicode karakterláncokat."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Egyebek</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Számok sorszámának megjelenÃtése a lejátszólistában"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Elválasztók megjelenÃtése a lejátszólistában"
-
-#~ msgid "On load"
-#~ msgstr "Betöltéskor"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Metaadat betöltése fájl lejátszólistához adásakor vagy megnyitáskor"
-
-#~ msgid "On display"
-#~ msgstr "MegjelenÃtéskor"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Metaadat betöltése fájl lejátszólistához adásakor vagy megnyitáskor"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Görög:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_BÅr</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "BÅrlista frissÃtése"
-
-#~ msgid "PREAMP"
-#~ msgstr "ELÅERÅSÃTÅ"
-
-#~ 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 "Archived Winamp 2.x skin"
-#~ msgstr "TömörÃtett Winamp 2.x bÅr"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "TömörÃtetlen Winamp 2.x bÅr"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Egyéni kurzorok használata"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "BÅvÃtmények"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Sajnos az Ãn platformján a szálak nincsenek támogatva.\n"
-#~ "\n"
-#~ "Ha libc5-alapú Linux-rendszere van, és a Glib-et és a GTK+-t a "
-#~ "LinuxThreads\n"
-#~ "elÅtt telepÃtette, akkor újra kell fordÃtania a Glib-et és a GTK+-t.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Audacious/BMP/XMMS-munkamenet kiválasztása (Alapértelmezés: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>BeállÃtások</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "FájlbeállÃtás kiterjesztése:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Könyvtár-beállÃtás fájlja:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet létrehozni a(z) %s-t.</big></b>\n"
-#~ "\n"
-#~ "Nem lehet megnyitni a glade fájlt (%s). EllenÅrizze a telepÃtését.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "CÃM\n"
-#~ "ELÅADÃ - CÃM\n"
-#~ "ELÅADÃ - ALBUM - CÃM\n"
-#~ "ELÅADÃ - ALBUM - SZÃM. CÃM\n"
-#~ "ELÅADÃ [ ALBUM ] - SZÃM. CÃM\n"
-#~ "ALBUM - CÃM\n"
-#~ "Egyéni"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Száminformáció ablak"
-
-#~ msgid "Preferences Window"
-#~ msgstr "BeállÃtások ablak"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>ElÅadó</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>CÃm</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>Album</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Audacious lejátszólista-szerkesztÅ"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>ElÅadó</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>Album</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "HANGERÅ: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANSZ: %d%% BAL"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANSZ: KÃZÃP"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANSZ: %d%% JOBB"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "/Hely lejátszása"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "/Hely lejátszása"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Nem található lejátszható CD.</big></b>\n"
-#~ "\n"
-#~ "Nincs behelyezve CD, vagy a behelyezett CD nem audio CD.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/CD hozzáadása..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/CD lejátszása"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "ElÅadó/szerzÅ"
-
-#~ msgid "File name"
-#~ msgstr "Fájlnév"
-
-#~ msgid "File path"
-#~ msgstr "Fájlútvonal"
-
-#~ msgid "File extension"
-#~ msgstr "Fájlkiterjesztés"
-
-#~ msgid "Track number"
-#~ msgstr "Szám sorszáma"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: \"...\" csak akkor legyen megjelenÃtve, ha van %n elem"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Sajnos az Ãn GTK+ verziója (%d.%d.%d) nem működik az Audacious-szel.\n"
-#~ "Használjon GTK+ %s verziót vagy újabbat.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "BEÃLLÃTÃSOK MENÃ"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "MINDIG LEGFELÃL KIKAPCSOLÃSA"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "MINDIG LEGFELÃL BEKAPCSOLÃSA"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "FÃJLINFÃ ABLAK"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "KIJELZÃS MENÃ"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Szám neve"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Nem lehet fájlokat lejátszani.</big></b>\n"
-#~ "\n"
-#~ "A következÅ fájlok nem játszhatóak le. EllenÅrizze a következÅket:\n"
-#~ "1. A fájlok hozzáférhetÅek.\n"
-#~ "2. A szükséges médiabÅvÃtmények be vannak kapcsolva."
-
-#~ msgid "Show more _details"
-#~ msgstr "Több _részlet megjelenÃtése"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "SIGSEGV érkezett\n"
-#~ "\n"
-#~ "Ez egy hiba lehet az Audacious-ban. Ha nem tudja, hogy miért történt, "
-#~ "jelentse be a hibát a http://bugs.nenolod.net/ oldalon.\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Lejátszólista átlátszóságának bekapcsolása. Nem ajánlott lassabb "
-#~ "számÃtógépeknél, mivel több CPU idÅt igényel az átlátszósághoz használt "
-#~ "képek létrehozása és gyorsÃtótárazása."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Lejátszólista átlátszóságának bekapcsolása"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: a(z) `%s' opció nem egyértelmű\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: a(z) `--%s' opció nem enged meg argumentumot\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: a(z) `%c%s' opció nem enged meg argumentumot\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: a(z) `%s' opcióhoz meg kell adni argumentumot\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: ismeretlen opció: `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: helytelen opció -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: érvénytelen opció -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: az opcióhoz meg kell adni argumentumot -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: a `-W %s' opció nem egyértelmű\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: a `-W %s' opció nem enged meg argumentumot\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Használat: audacious [opciók] [fájlok] ...\n"
-#~ "\n"
-#~ "Opciók:\n"
-#~ "-------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Ezen szöveg megjelenÃtése és kilépés"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Audacious aktiválása"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ElÅzÅ munkamenet-azonosÃtó"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Hiba/figyelmeztetés elfogásának kikapcsolása (naplózás)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Verziószám megjelenÃtése és kilépés\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Fájlok hozzáadása/megnyitása párbeszédablak"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Párbeszédablak bezárása hozzáadás után"
-
-#~ msgid "Deselect All"
-#~ msgstr "Kijelölés megszüntetése"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "Felbukkanó száminformáció"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Műfaj</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Ãv</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Szám sorszáma</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>Szám hossza</i>"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Szám részleteinek megtekintése"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Kijelzési mód/Analizátor"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Kijelzési mód/Szkóp"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Kijelzési mód/Szkóp"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Kijelzési mód/Kikapcsolva"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Analizátor-üzemmód/Normál"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Analizátor-üzemmód/Vonalak"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Analizátor-üzemmód/Oszlopok"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Analizátor-üzemmód/Csúcsértékek"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Analizátor-üzemmód/Normál"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Roló-üzemmód/Normál"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Roló-üzemmód/Finom"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Analizátor esése/Leglassabb"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Analizátor esése/Lassú"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Analizátor esése/Közepes"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Analizátor esése/Gyors"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Analizátor esése/Leggyorsabb"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Csúcsértékek esése/Leglassabb"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Csúcsértékek esése/Lassú"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Csúcsértékek esése/Közepes"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Csúcsértékek esése/Gyors"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Csúcsértékek esése/Leggyorsabb"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Ugrás idÅpontra"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/Audacious névjegye"
-
-#~ msgid "/Files..."
-#~ msgstr "/Fájlok..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Internethely..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Ãj lista"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Elválasztók megjelenÃtése a lejátszólistában"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Száminformáció"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Betöltés/BeállÃtás"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Betöltés/Alapértelmezett beállÃtás"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Betöltés/Nulla"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Mentés/BeállÃtás"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Mentés/Alapértelmezett beállÃtás"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Mentés/Fájlba"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Törlés/BeállÃtás"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Automatikusan betöltÅdÅ beállÃtás betöltése"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Equalizer-beállÃtás betöltése"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Automatikusan betöltÅdÅ beállÃtás törlése"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/Felbukkanó infó megjelenÃtése"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Duplikátumok eltávolÃtása/CÃm alapján"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Duplikátumok eltávolÃtása/Fájlnév alapján"
-
-#~ msgid "/Update View"
-#~ msgstr "/Nézet frissÃtése"
-
-#~ msgid "/Select All"
-#~ msgstr "/Mindent kijelöl"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Lista rendezése/Dátum alapján"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Kijelölés rendezése/CÃm alapján"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Kijelölés rendezése/ElÅadó alapján"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Kijelölés rendezése/Fájlnév alapján"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Kijelölés rendezése/Ãtvonal + fájlnév alapján"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Kijelölés rendezése/Dátum alapján"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Kijelölés rendezése/Szám sorszáma alapján"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Kijelölés rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Egyebek</b>"
+msgstr "Munkamenet kezelési lehetÅségek mutatása"
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** A DUPLA MÃRET EL LETT TÃVOLÃTVA **"
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>Ã_tlátszóság</b>"
diff --git a/po/it.po b/po/it.po
index dbb95fb..c89968e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,2645 +1,1241 @@
-# translation of it.po to Italian
-# Italian translation of bmp.
-# Copyright (C) 2004 Alessio D'Ascanio <g3ntaro at gmail.com>
-# This file is distributed under the same license as the bmp package.
+# Italian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
#
+# Translators:
# Alessio D'Ascanio <g3ntaro at gmail.com>, 2004.
# Diego 'Flameeyes' Pettenò <flameeyes at gentoo.org>, 2006.
# Diego 'Flameeyes' Pettenò <flameeyes at gmail.com>, 2007.
+# Jacopo Lorenzetti <jacopo.jl at gmail.com>, 2011, 2012.
msgid ""
msgstr ""
-"Project-Id-Version: it\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2007-02-19 19:12+0100\n"
-"Last-Translator: Diego 'Flameeyes' Pettenò <flameeyes at gmail.com>\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-11 18:54+0000\n"
+"Last-Translator: Jacopo Lorenzetti <jacopo.jl at gmail.com>\n"
"Language-Team: Italian\n"
-"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Italian\n"
-"X-Poedit-Country: ITALY\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Ricerca in corsoâ¦"
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Trovato %d file"
+msgstr[1] "Trovati %d file"
+
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
-msgstr " (UTF-8 invalido)"
+msgstr " (UTF-8 non valido)"
-#: src/audacious/credits.c:35
-#, fuzzy
+#: src/audacious/credits.c:37
msgid "Core developers:"
-msgstr "Sviluppatori di 0.1.x:"
+msgstr "Core developer:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
msgstr "Grafica:"
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
msgstr "Skin predefinita:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
msgstr "Sviluppo plugin:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
-msgstr "Autori di modifiche:"
+msgstr "Autori di patch:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:131
msgid "1.x developers:"
-msgstr "Sviluppatori di 0.1.x:"
+msgstr "Sviluppatori 1.x:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
msgstr "Sviluppatori di BMP:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:185
msgid "Belarusian:"
-msgstr "Bulgaro:"
+msgstr "Bielorusso:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
-msgstr ""
+msgstr "Basco:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
-msgstr "Portoghese (Brasile):"
+msgstr "Portoghese brasiliano:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
msgstr "Bretone:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
msgstr "Bulgaro:"
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:202
msgid "Catalan:"
-msgstr "Italiano:"
+msgstr "Catalano:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:206
msgid "Chinese:"
-msgstr "Linee"
+msgstr "Cinese:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
msgid "Croatian:"
msgstr "Croato:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
msgstr "Ceco:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
msgstr "Olandese:"
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:219
msgid "Estonian:"
-msgstr "Rumeno:"
+msgstr "Estone:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
msgid "Finnish:"
msgstr "Finlandese:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
msgstr "Francese:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
msgstr "Tedesco:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
msgid "Georgian:"
msgstr "Georgiano:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
msgstr "Greco:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
msgstr "Ungherese:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
msgstr "Italiano:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
msgstr "Giapponese:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
msgstr "Coreano:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
msgid "Latvian:"
-msgstr "Croato:"
+msgstr "Lettone:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
msgstr "Lituano:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
msgstr "Macedone:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Spagnolo messicano:"
+
+#: src/audacious/credits.c:280
msgid "Polish:"
msgstr "Polacco:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Portuguese:"
-msgstr "Portoghese (Brasile):"
+msgstr "Portoghese:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
msgstr "Rumeno:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
msgstr "Russo:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
msgstr "Serbo (Latino):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
msgstr "Serbo (Cirillico):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
msgstr "Cinese semplificato:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
msgstr "Slovacco:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
msgstr "Spagnolo:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
msgstr "Svedese:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
msgstr "Cinese tradizionale:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
msgstr "Turco:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
msgstr "Ucraino:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:341
msgid "Welsh:"
msgstr "Gallese:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Carica playlist"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
+msgstr "Errore durante l'importazione del file EQF di Winamp '%s'"
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
-msgstr "Indietreggia nella playlist"
+msgstr "Salta indietro nella playlist"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
-msgstr "Riproduci la playlist corrente"
+msgstr "Avvia la riproduzione della playlist corrente"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
-msgstr "Pausa"
+msgstr "Interrompi il brano corrente"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
-msgstr "Ferma la canzone"
+msgstr "Ferma il brano corrente"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
-msgstr "Pausa se si sta suonando, altrimenti riproduci"
+msgstr "Interrompi se in riproduzione, altrimenti riproduci"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
-msgstr "Avanza nella playlist"
+msgstr "Salta avanti nella playlist"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "Visualizza la finestra di dialogo Salta al File"
+msgstr "Visualizza la finestra di dialogo Salta al file"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "Aggiunge file alla playlist."
+msgstr "Aggiunge file alla playlist"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
-msgstr "Aggiungi nuovi file ad una playlist temporanea"
+msgstr "Aggiunge nuovi file a una playlist temporanea"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
-msgstr "Mostra la finestra principale"
+msgstr "Visualizza la finestra principale"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostra tutte le finestre di Audacious aperte"
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
msgid "Show version"
-msgstr "Mostra player"
+msgstr "Mostra versione"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "Visualizza messaggi di debug"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modalità headless (beta)"
+
+#: src/audacious/main.c:256
msgid "FILE..."
-msgstr "FILE..."
+msgstr "FILEâ¦"
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- riproduci file multimediali"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
"%s: %s\n"
-"Per maggiori informazioni si veda `%s --help' .\n"
-
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
+"Per maggiori informazioni prova `%s --help'.\n"
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "Nessun decoder trovato per %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Impossibile %s %s: estensione file non supportata."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "salvare"
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "caricare"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
msgstr "Nuova playlist"
-#: src/audacious/ui_preferences.c:88
-msgid "Audio"
-msgstr "Audio"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "In riproduzione"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
msgstr ""
+"La playlist non può essere riordinata poiché la scansione dei metadati è "
+"ancora in corso (o è stata disabilitata)."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Audio"
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
-msgstr ""
+msgstr "Rete"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Playlist"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
-msgstr "Plugins"
+msgstr "Plugin"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Titolo"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Numero di traccia"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "Genere"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Nome del file"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
-msgstr "Percorso file"
+msgstr "Percorso del file"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Anno"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Commento"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
-msgstr ""
+msgstr "Codec"
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
-msgstr "_Esci"
+msgstr "Qualità "
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
-msgstr ""
+msgstr "Nessuna"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Araba"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltica"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Cinese"
#: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Giapponese:"
+msgid "Greek"
+msgstr "Greca"
#: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Giapponese:"
+msgid "Hebrew"
+msgstr "Ebraica"
#: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Linee"
+msgid "Japanese"
+msgstr "Giapponese"
#: src/audacious/ui_preferences.c:118
-#, fuzzy
msgid "Korean"
-msgstr "Coreano:"
+msgstr "Coreana"
#: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Russo:"
+msgid "Polish"
+msgstr "Polacca"
#: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Greco:"
+msgid "Russian"
+msgstr "Russa"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Taiwanese"
#: src/audacious/ui_preferences.c:122
-#, fuzzy
msgid "Turkish"
-msgstr "Turco:"
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Polacco:"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
+msgstr "Turca"
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Nome del file</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modalità album"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>Impostazioni di uscita</b>"
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Rotellina del mouse</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profondità di bit:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+msgid "Buffer size:"
+msgstr "Dimensione del buffer:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- riproduci file multimediali"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Utilizza controllo volume software (non raccomandato)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Configurazione Proxy</b>"
+msgstr "Replay Gain"
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
-msgstr "Abilita utilizzo del proxy"
-
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
+msgstr "Abilita Replay Gain"
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Mostra i dettagli della traccia."
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evita il clipping (raccomandato)"
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Nome dell'album: "
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>Rotellina del mouse</b>"
+msgstr "<b>Regola i livelli</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplifica tutti i file:"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informazioni di popup</b>"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr ""
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplifica i file senza tag:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
-msgstr "Nome del proxy:"
+msgstr "Host del proxy:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Porta del proxy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Utente proxy:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Password proxy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
-msgstr "<b>Configurazione Proxy</b>"
+msgstr "<b>Configurazione proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Abilita utilizzo del proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "Usa autenticazione con il proxy"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Modificare queste impostazioni richiederà un riavvio di "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Individuazione automatica della codifica dei caratteri per:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
-msgstr "Codifica dei caratteri di riserva:"
+msgstr "Codifiche di riserva dei caratteri:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista di codifiche di caratteri utilizzate per la conversione di riserva dei "
-"metadati. Se l'individuazione della codifica di caratteri fallisce o è stata "
-"disattivata, verranno considerati candidati per la codifica dei metadati le "
-"codifiche di questa lista, e sarà tentata una conversione di riserva da "
-"queste a UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>Nome del file</b>"
+msgstr "<b>Comportamento</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Continua la riproduzione all'avvio"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avanza quando il brano corrente viene eliminato"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "Crea una nuova playlist con gli elementi individuati"
+msgstr "Cancella la playlist quando si aprono i file"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Aggiungi nuovi file ad una playlist temporanea"
+msgstr "Apri i file in una playlist temporanea"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
-msgstr "<b>Metadata</b>"
+msgstr "<b>Metadati</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Non caricare i metadati dei brani finché non vengono riprodotti"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITOLO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TITOLO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ALBUM - TITOLO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ALBUM - TRACCIA. TITOLO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ALBUM] - TRACCIA. TITOLO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITOLO"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Categoria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
-msgstr "Impostazioni delle informazioni di popup"
+msgstr "Impostazioni delle informazioni popup"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Ricerca delle immagini delle copertine</b>"
+msgstr "<b>Recupero dell'immagine di copertina</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-"Quando si cerca la copertina di un album, Audacious cerca certe parole nel "
-"nome del file.Si possono specificare tali parole nella lista seguente, "
-"separate da virgola."
+"Durante la ricerca della copertina dell'album, Audacious cerca certe parole "
+"nel nome del file. Puoi specificare tali parole nella lista seguente, "
+"separate da virgole."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "Escludi:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Includi:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "Cerca la copertina ricorsivamente"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
-msgstr "Profondità di ricerca:"
+msgstr "Profondità di ricerca: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Usa una copertina diversa per file"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Varie</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
-msgstr "Mostra barra di avanzamento per la traccia corrente."
+msgstr "Mostra barra di avanzamento per la traccia corrente"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
-msgstr "Attendi fino alla comparsa del popup file:"
+msgstr "Ritardo prima della comparsa del popup file: "
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizzato"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
-msgstr ""
+msgstr "<b>Visualizzazione del brano</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr ""
+msgstr "Mostra numeri dei brani"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostra zeri iniziali (02:00 invece di 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
-msgstr "Mostra informazioni sulla stringa del titolo"
-
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Stringa personalizzata:"
+msgstr "Mostra informazioni sul formato della stringa del titolo"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Stringa personalizzata:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Formato titolo:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
-msgstr "<b>Informazioni di popup</b>"
+msgstr "<b>Informazioni popup</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
-msgstr "Mostra le inforormazioni di popup per gli elementi della playlist"
+msgstr "Mostra informazioni popup per gli elementi della playlist"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-"Abilita la finestra di informazioni di popup per l'elemento puntato. La "
-"finestra mostra il titolo della canzone, il nome dell'album, il genere, "
-"l'anno di pubblicazione, il numero di traccia, la lunghezza della traccia e "
-"l'artwork."
+"Attiva la finestra di informazioni popup per l'elemento puntato nella "
+"playlist. La finestra mostra il titolo della canzone, il nome dell'album, il"
+" genere, l'anno di pubblicazione, il numero di traccia, la durata della "
+"traccia e la grafica."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
-msgstr "Modifica impostazioni per le informazioni di popup"
-
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Dimensione del buffer:"
+msgstr "Modifica impostazioni per le informazioni popup"
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin di output corrente:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Plugin di uscita:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "Traduttori"
+msgstr "Trasporto"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Ingresso"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Effetti</b>"
+msgstr "Effetto"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
msgstr "Visualizzazione"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "Generici"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
-msgstr "Impostazioni di Audacious"
+msgstr "Preferenze di Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Impossibile creare la directory (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr ""
+msgstr "Posizione non trovata."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
-msgstr ""
+msgstr "Nessun brano in riproduzione."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD Audio, traccia %s"
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Mono"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canale"
+msgstr[1] "%d canali"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Crediti"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traduttori"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Informazioni su Audacious"
+
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Sei sicuro di voler chiudere %s? Se lo fai, qualunque modifica apportata "
+"dopo l'esportazione della playlist andrà persa."
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
-msgstr "Non mostrare più questo avvertimento"
+msgstr "_Non mostrare più questo messaggio"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
-msgstr "Salva playlist"
+msgstr "Rinomina playlist"
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
-msgstr ""
+msgstr "impostazioniâ¦"
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
-msgstr "Abilitato"
+msgstr "_Abilita"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "Equalizzatore"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
-msgstr ""
+msgstr "Preamplificazione"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "Numero di traccia"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
-msgstr "Lunghezza della traccia"
+msgstr "Durata della traccia"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
-msgstr ""
+msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
-msgstr ""
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
-msgstr ""
+msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
-msgstr ""
+msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
-#, fuzzy
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
-msgstr "Blu"
+msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:80
msgid "Blues"
-msgstr "Blu"
+msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
-msgstr ""
+msgstr "Musica da camera"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
-msgstr ""
+msgstr "Classica"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
-msgstr ""
+msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
-msgstr ""
+msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
-msgstr ""
+msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
-msgstr ""
+msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
-msgstr ""
+msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
-msgstr ""
+msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
-msgstr ""
+msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
-msgstr ""
+msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
-msgstr ""
+msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
-msgstr ""
+msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
-msgstr ""
+msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
-msgstr ""
+msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
-#, fuzzy
+#: src/libaudgui/infowin.c:95
msgid "House"
-msgstr "Mouse"
+msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
-msgstr ""
+msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
-msgstr ""
+msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
-msgstr ""
+msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
-msgstr ""
+msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
-msgstr ""
+msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
-#, fuzzy
+#: src/libaudgui/infowin.c:101
msgid "Noise"
-msgstr "Mouse"
+msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
-msgstr ""
+msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
-msgstr ""
+msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
-msgstr ""
+msgstr "Rap"
-#: src/libaudgui/infowin.c:107
-#, fuzzy
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
-msgstr "_Rinomina"
+msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
-msgstr ""
+msgstr "Rock"
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
-msgstr ""
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
-msgstr ""
+msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
-msgstr ""
+msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
-msgstr ""
+msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
-msgstr ""
+msgstr "Techno"
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
-msgstr ""
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"small\">Anno</span>"
+msgstr "<span size=\"small\">n/d</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
-msgstr ""
+msgstr "Metadati aggiornati con successo"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
-msgstr ""
+msgstr "Errore nell'aggiornamento dei metadati"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
msgstr "Informazioni sulla traccia"
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"small\">Commenti</span>"
+msgstr "<span size=\"small\">Formato:</span>"
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"small\">Titolo</span>"
+msgstr "<span size=\"small\">Qualità :</span>"
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Commenti</span>"
+msgstr "<span size=\"small\">Bitrate:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">Titolo</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Artista</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"small\">Commenti</span>"
+msgstr "<span size=\"small\">Commento</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Genere</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Anno</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Numero di traccia</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
#, c-format
msgid "%d kb/s"
-msgstr ""
+msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Nessuna informazione disponibile per %s.\n"
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Informazioni su Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Salta alla posizione"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Crediti"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Traduttori"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Esporta playlist"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importa playlist"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Sovrascrivere %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Gestione coda"
+
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
-msgstr "Apri Files"
+msgstr "Apri file"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
-msgstr "Aggiungi Files"
+msgstr "Aggiungi file"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "Chiudi finestra quando Apri"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "Chiudi finestra quando Aggiungi"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Rimuovi dalla _coda"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
msgstr "_Coda"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Salta alla traccia"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Rimuovi dalla _coda"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Salta al brano"
+
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
-msgstr "Filtro:"
+msgstr "Filtro: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
msgstr "_Filtro:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
-msgstr ""
+msgstr "Ricorda"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
-msgstr "Cancella coda"
+msgstr "Ca_ncella"
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
-msgstr "Chiudi finestra quando Apri"
+msgstr "Chiudi quando salti"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "Gestore playlist"
+msgstr "Gestione playlist"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Elementi"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "_Rinomina"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "Chiudi finestra quando Apri"
+msgstr "_Chiudi finestra quando attivi la playlist"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
-msgstr ""
+msgstr "Apri URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
+msgstr "Aggiungi URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
+"\n"
+"(Ulteriori messaggi sono stati nascosti.)"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Il file non è un file .desktop valido"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr ""
+msgstr "Versione '%s' del file desktop non riconosciuta"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
-msgstr ""
+msgstr "Avvio di %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "L'applicazione non accetta documenti sulla linea di comando"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
-msgstr ""
+msgstr "Opzione di lancio non riconosciuta: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
+"Impossibile passare URI di documenti ad una voce del desktop di tipo "
+"'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
-msgstr ""
+msgstr "Non è un elemento avviabile"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Disabilita la connessione al gestore della sessione"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Specifica il file contenente la configurazione salvata"
#: src/libeggsmclient/eggsmclient.c:229
-#, fuzzy
msgid "FILE"
-msgstr "FILE..."
+msgstr "FILE"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr ""
+msgstr "Specifica l'ID della gestione della sessione"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
-msgstr ""
+msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Mostra le decorazioni del gestore delle finestre"
+msgstr "Opzioni di gestione della sessione:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Mostra le decorazioni del gestore delle finestre"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Impossibile aprire display, uscita in corso.\n"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Skin predefinita:"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Nome traccia"
-
-#, fuzzy
-#~ msgid "Dance"
-#~ msgstr "Data"
-
-#, fuzzy
-#~ msgid "Oldies"
-#~ msgstr "linee"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pausa"
-
-#, fuzzy
-#~ msgid "Fusion"
-#~ msgstr "Russo:"
-
-#, fuzzy
-#~ msgid "Trance"
-#~ msgstr "Aspetto"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Barre"
-
-#, fuzzy
-#~ msgid "Space"
-#~ msgstr "Salva"
-
-#, fuzzy
-#~ msgid "Comedy"
-#~ msgstr "Commento"
-
-#, fuzzy
-#~ msgid "Cult"
-#~ msgstr "Stringa personalizzata:"
-
-#, fuzzy
-#~ msgid "Rave"
-#~ msgstr "Salva"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Molto lenta"
-
-#, fuzzy
-#~ msgid "Trailer"
-#~ msgstr "Titolo"
-
-#, fuzzy
-#~ msgid "Polka"
-#~ msgstr "Play"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Zero"
-
-#, fuzzy
-#~ msgid "Latin"
-#~ msgstr "Italiano:"
-
-#, fuzzy
-#~ msgid "Slow Rock"
-#~ msgstr "Lenta"
-
-#, fuzzy
-#~ msgid "Primus"
-#~ msgstr "Precedente"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Fuoco"
-
-#, fuzzy
-#~ msgid "Slow Jam"
-#~ msgstr "Lenta"
-
-#, fuzzy
-#~ msgid "Duet"
-#~ msgstr "Olandese:"
-
-#, fuzzy
-#~ msgid "Club-House"
-#~ msgstr "Mouse"
-
-#, fuzzy
-#~ msgid "Terror"
-#~ msgstr "Zero"
-
-#, fuzzy
-#~ msgid "Indie"
-#~ msgstr "Includi:"
-
-#, fuzzy
-#~ msgid "Beat"
-#~ msgstr "Ripeti"
-
-#, fuzzy
-#~ msgid "Synthpop"
-#~ msgstr "Stop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Il futuro del multimediale UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Audacious Development Team\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Impossibile creare il file di log (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Visualizza tutti gli errori e gli avvisi su stdout"
-
-#~ msgid "Playback"
-#~ msgstr "Riproduzione"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Riproduzione</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Quando Audacious viene avviato, inizia automaticament a riprodurre dal "
-#~ "punto in cui è stato fermato."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Non avanzare nella playlist"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Una volta terminata la riproduzione della canzone non avanzare alla "
-#~ "prossima."
-
-#~ msgid "Enabled"
-#~ msgstr "Abilitato"
-
-#~ msgid "Description"
-#~ msgstr "Descrizione"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Impostazioni del plugin di output"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informazioni sul plugin di output"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista di _decoder:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Decoder</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Lista plugin generici"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Generale</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista plugin _Visualizzazione"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualizzazione</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Lista plugin _Effetti"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Genere</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Posizione</span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Anno</span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Blu"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "_Preset Disponibili:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "_Preset Disponibili:"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Finestra di dialogo Aggiungi/Apri URL"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Inserisci indirizzo da riprodurre:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Non cancellare la playlist"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Nome del file:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Nessun input plugin per questo file"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Input plugin: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Nessun plugin di uscita selezionato.</big></b>\n"
-#~ "Non è stato selezionato un plugin di uscita."
-
-#~ msgid "Connectivity"
-#~ msgstr "Connettività "
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Individuazione formato</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Individua formato di file dall'estensione."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Quando abilitato, Audacious individuerà i formati di file basandosi "
-#~ "sull'estensione. Si tratta di un metodo più lento dell'individuazione su "
-#~ "richiesta, ma fornisce ancora un livello minimo di individuazione del "
-#~ "formato."
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Riproduzione</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Il futuro del multimediale UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Audacious Development Team"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr ""
-#~ "Individuazione formato di file su richiesta, anziché immediatamente."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Quando abilitato, Audacious individuerà i formati di file su richiesta. "
-#~ "Questo può risultare in una playlist più confusa, ma fornisce migliore "
-#~ "velocità ."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Carica metadata dalla playlist e dai file"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Carica metadata (ID3) dai file musicali"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Salta alla posizione"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuti:secondi"
-
-#~ msgid "Track length:"
-#~ msgstr "Lunghezza traccia:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Salva playlist"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Errore nello scrivere la playlist \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s esiste già . Continuare?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile salvare la playlist!</big></b>\n"
-#~ "\n"
-#~ "Tipo di file sconosciuto per '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "_Presets"
-
-#~ msgid "Mouse"
-#~ msgstr "Mouse"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Pausa tra le canzoni"
-
-#~ msgid "Pause for"
-#~ msgstr "Pausa per"
-
-#~ msgid "seconds"
-#~ msgstr "secondi"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Nome del file</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Converti underscores in spazi"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Converti %%20 in spazi"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "Converti le barre inverse '\\' in barre dritte '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Finestra File</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Aggiorna sempre la directory quando si apre la finestra file"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Aggiorna sempre la finestra file (questo rallenterà l'apertura della "
-#~ "finestra su grandi directory, e Gnome VFS dovrebbe gestirlo "
-#~ "automaticamente)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Varia il volume del"
-
-#~ msgid "percent"
-#~ msgstr "percento"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Scorre la playlist di"
-
-#~ msgid "lines"
-#~ msgstr "linee"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Fermati dopo la canzone corrente"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pausa"
-
-#~ msgid "Repeat"
-#~ msgstr "Ripeti"
-
-#~ msgid "Shuffle"
-#~ msgstr "Shuffle"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Nessun Avanzamento in Playlist"
-
-#~ msgid "Play"
-#~ msgstr "Play"
-
-#~ msgid "Pause"
-#~ msgstr "Pausa"
-
-#~ msgid "Stop"
-#~ msgstr "Stop"
-
-#~ msgid "Previous"
-#~ msgstr "Precedente"
-
-#~ msgid "Next"
-#~ msgstr "Prossimo"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Modo Visualizzazione"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Modo Analizzatore"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Modo Spettrogramma"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "WindowShade VU Mode"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Frequenza Aggiornamento"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Discesa analizzatore"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Discesa picchi"
-
-#~ msgid "New Playlist"
-#~ msgstr "Nuova playlist"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Seleziona prossima playlist"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Seleziona precedente playlist"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Cancella playlist"
-
-#~ msgid "Load List"
-#~ msgstr "Carica Lista"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Carica un file playlist nella playlist selezionata"
-
-#~ msgid "Save List"
-#~ msgstr "Salva lista"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Salva la playlist selezionata."
-
-#~ msgid "Save Default List"
-#~ msgstr "Salva lista predefinita"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Salva la playlist selezionata alla posizione predefinita."
-
-#~ msgid "Refresh List"
-#~ msgstr "Aggiorna lista"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Aggiorna i metadati associati con l'elemento della playlist."
-
-#~ msgid "List Manager"
-#~ msgstr "Gestore liste"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Apre il gestore delle playlist."
-
-#~ msgid "View"
-#~ msgstr "Visualizza"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Aggiungi Indirizzo internet..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Aggiunge una traccia remota alla playlist."
-
-#~ msgid "Add Files..."
-#~ msgstr "Aggiungi files..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Cerca e seleziona"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Cerca nella playlist e seleziona gli elementi basati su criteri specifici."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Inverti selezione"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Inverte gli elementi selezionati e non selezionati."
-
-#~ msgid "Select All"
-#~ msgstr "Seleziona tutti"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Seleziona tutti gli elementi "
-
-#~ msgid "Select None"
-#~ msgstr "Deseleziona tutti"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Deseleziona tutti gli elementi della playlist."
-
-#~ msgid "Remove All"
-#~ msgstr "Rimuovi tutti"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Rimuove tutti gli elementi dalla playlist."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Cancella coda"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Cancella la coda associata con questa playlist."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Rimuovi file non disponibili"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Rimuove i file non disponibilid alla playlist."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Rimuovi duplicati"
-
-#~ msgid "By Title"
-#~ msgstr "Per titolo"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Rimuove dalla playlist gli elementi duplicati per titolo."
-
-#~ msgid "By Filename"
-#~ msgstr "Per nome del file"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "Rimuove dalla playlist gli elementi duplicati per nome del file."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Per percorso e nome del file"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Rimuove dalla playlist gli elementi duplicati per il loro percorso "
-#~ "completo."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Rimuovi non selezionati"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Rimuove gli elementi non selezionati dalla playlist."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Rimuovi selezionati"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Rimuove gli elementi selezionati dalla playlist."
-
-#~ msgid "Randomize List"
-#~ msgstr "Riordina lista a caso"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Riordina la playlist secondo un ordine casuale."
-
-#~ msgid "Reverse List"
-#~ msgstr "Inverti l'ordine della lista"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Inverte l'ordine degli elementi nella playlist."
-
-#~ msgid "Sort List"
-#~ msgstr "Ordina Lista"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Ordina la lista per titolo."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Ordina la lista per titolo."
-
-#~ msgid "By Artist"
-#~ msgstr "Per artista"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Ordina la lista per artista."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Ordina la lista per nome del file."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Ordina la lista per percorso completo del file."
-
-#~ msgid "By Date"
-#~ msgstr "Per data"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Ordina la lista per data di modifica."
-
-#~ msgid "By Track Number"
-#~ msgstr "Per numero di traccia"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Ordina la lista per numero di traccia."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "Per elemento della playlist"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Ordina la lista per elemento della playlist."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Ordina selezione"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Fuoco"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Commento"
-
-#~ msgid "View Track Details"
-#~ msgstr "Mostra dettagli traccia"
-
-#~ msgid "Play File"
-#~ msgstr "Riproduci file"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Carica e riproduce un file"
-
-#~ msgid "Play Location"
-#~ msgstr "Riproduci posizione"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Riproduce un file dalla posizione indicata"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Plugins"
-
-#~ msgid "Preferences"
-#~ msgstr "Impostazioni"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Apre la finestra delle impostazioni"
-
-#~ msgid "_Quit"
-#~ msgstr "_Esci"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Esce da Audacious"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "Cancella coda"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Salta all'inizio della playlist"
-
-#~ msgid "Jump to File"
-#~ msgstr "Salta al file"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "Attiva/disattiva coda"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Attiva o disattiva l'elemento nella coda della playlist"
-
-#~ msgid "Load"
-#~ msgstr "Carica"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid "Save"
-#~ msgstr "Salva"
-
-#~ msgid "Delete"
-#~ msgstr "Cancella"
-
-#~ msgid "Preset"
-#~ msgstr "Preset"
-
-#~ msgid "Load preset"
-#~ msgstr "Carica preset"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Preset automatico"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Carica preset automatico"
-
-#~ msgid "Default"
-#~ msgstr "Predefinito"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Carica il preset di default nell'equalizzatore"
-
-#~ msgid "Zero"
-#~ msgstr "Zero"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Imposta i livelli di preset dell'equalizzatore a zero"
-
-#~ msgid "From file"
-#~ msgstr "Da file"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Carica i preset da file"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "Da un file EQF di WinAMP"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Carica i preset da un file EQF di WinAMP"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "Preset di WinAMP"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Importa i preset di WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "Salva preset"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Salva preset automatico"
-
-#~ msgid "Save default preset"
-#~ msgstr "Salva preset predefinito"
-
-#~ msgid "To file"
-#~ msgstr "Su file"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Salva preset su file"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "Su file EQF di WinAMP"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Salva i preset su un file EQF di WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "Cancella preset"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "Cancella preset automatico"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Quantità di tempo in millisecondi da precaricare dai "
-#~ "flussi audio.\n"
-#~ "Aumentate questo valore se si stanno avendo salti nella riproduzione.\n"
-#~ "Si noti comunque che valori troppo alti risulteranno in basse prestazioni "
-#~ "per Audacious.</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "Abilita il funzionamento invisibile"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile caricare la skin.</big></b>\n"
-#~ "\n"
-#~ "Controllare che la skin '%s' sia usabile e che la skin di default sia "
-#~ "installata in '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Abilita il funzionamento invisibile"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Sviluppatori primari Audacious:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Equalizzatore di Audacious"
-
-#~ msgid "Play files"
-#~ msgstr "Riproduci file"
-
-#~ msgid "Load files"
-#~ msgstr "Carica file"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Seleziona font per la finestra principale"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "SEEK TO: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Sempre in primo piano"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Sempre in primo piano"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "Modo Visualizzazione"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Impossibile avviare l'audio.</big></b>\n"
-#~ "\n"
-#~ "Controllare che:\n"
-#~ "1. Ã stato selezionato il giusto output plugin.\n"
-#~ "2. Altri progrmmi non stiano bloccando la scheda audio.\n"
-#~ "3. La scheda audio sia configurata.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Scorri automaticamente il titolo"
-
-#~ msgid "Show Player"
-#~ msgstr "Mostra player"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Mostra editor playlist"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "Mostra Equalizzatore"
-
-#~ msgid "Always on Top"
-#~ msgstr "Sempre in primo piano"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Mostra su Tutti i Desktop"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Arrotola Player"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Arrotola Editor della Playlist"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Arrotola Equalizzatore"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "Salva"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Doppia dimensione"
-
-#~ msgid "Easy Move"
-#~ msgstr "Movimento facilitato"
-
-#~ msgid "Analyzer"
-#~ msgstr "Analizzatore"
-
-#~ msgid "Scope"
-#~ msgstr "Spettrogramma"
-
-#~ msgid "Off"
-#~ msgstr "Spento"
-
-#~ msgid "Normal"
-#~ msgstr "Normale"
-
-#~ msgid "Fire"
-#~ msgstr "Fuoco"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Linee verticali"
-
-#~ msgid "Lines"
-#~ msgstr "Linee"
-
-#~ msgid "Bars"
-#~ msgstr "Barre"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Spettro a punti"
-
-#~ msgid "Line Scope"
-#~ msgstr "Spettro a linee"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Spettro solido"
-
-#~ msgid "Ice"
-#~ msgstr "Ghiaccio"
-
-#~ msgid "Smooth"
-#~ msgstr "Morbido"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Piena (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Dimezzata (~ 25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Un Quarto (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Un Ottavo (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Molto lenta"
-
-#~ msgid "Slow"
-#~ msgstr "Lenta"
-
-#~ msgid "Medium"
-#~ msgstr "Media"
-
-#~ msgid "Fast"
-#~ msgstr "Veloce"
-
-#~ msgid "Fastest"
-#~ msgstr "Molto veloce"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Tempo trascorso"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Tempo Rimanente"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Plugins"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Ricerca elementi nella playlist attiva"
-
-#~ 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 ""
-#~ "Seleziona gli elementi nella playlist riempiendo uno o più campi. I campi "
-#~ "utilizzano la sintassi delle espressioni regolari, senza distinzione "
-#~ "maiuscole/minuscole. Se non si conosce come funzionano le espressioni "
-#~ "regolari, si inserisca semplicemente il testo che si sta cercando."
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Titolo"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Album"
-
-#~ msgid "Artist: "
-#~ msgstr "Artista: "
-
-#~ msgid "Filename: "
-#~ msgstr "Nome del file: "
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "Pulisci la selezione precedente prima di cercare"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr ""
-#~ "Abilita/disabilita coda automaticamente per gli elementi individuati"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Editor di lista di Audacious"
-
-#~ msgid "Appearance"
-#~ msgstr "Aspetto"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Font</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Player:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Seleziona font per la finestra principale"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Playlist:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Seleziona font per la finestra principale"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Usa i font bitmap se disponibili."
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Usa i font bitmap se disponibili. I font bitmap non hanno supporto per le "
-#~ "stringhe Unicode."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Varie</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Mostra numero traccia nella playlist"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Mostra separatori nella playlist"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Mostra la decorazione del gestore delle finestre"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr ""
-#~ "Abilita il gestore delle finestre a mostrare le decorazioni per la "
-#~ "finestra."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Usa la selezione file in stile XMMS invece di quella predefinita"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Abilita le finestre di dialogo di selezione del file in stile XMMS/GTK1. "
-#~ "Questa finestra è fornita direttamente da Audacious ed è più veloce della "
-#~ "finestra GTK2 (ma sfortunatamente non così user-friendly)."
-
-#~ msgid "On load"
-#~ msgstr "Durante il caricamento"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Carica metadata quando vengono aggiunti file alla playlist o vengono "
-#~ "aperti"
-
-#~ msgid "On display"
-#~ msgstr "Durante la visualizzazione"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Carica i metadati su richiesta quando si visualizza il file nella playlist"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Aggiustamento colori"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious ti permette di alterare il bilanciamento dei colori "
-#~ "dell'interfaccia Skin tramite le slitte sottostanti."
-
-#~ msgid "Blue"
-#~ msgstr "Blu"
-
-#~ msgid "Green"
-#~ msgstr "Verde"
-
-#~ msgid "Red"
-#~ msgstr "Rosso"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Skin</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Aggiorna lista skin"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Skin Winamp 2.x compressa"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Skin Winamp 2.x non compressa"
-
-#~ msgid "Show version and builtin features"
-#~ msgstr "Mostra la versione e le funzionalità integrate"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Usa cursore personalizzato"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Plugins"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "La tua piattaforma non supporta i threads.\n"
-#~ "\n"
-#~ "Se usi un sistema linux basato su libc5 e hai installato Glib & GTK+ "
-#~ "prima di quando\n"
-#~ "hai installato LinuxThreads devi ricompilareGlib & GTK+.\n"
-
-#~ msgid "Error in Audacious."
-#~ msgstr "Errore in Audacious."
-
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Seleziona quale ID sessione di Audacious usare"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "Doppia dimensione"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "Doppia dimensione"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Presets</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Estensione dei file preset:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Directory per i file preset:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile creare %s.</big></b>\n"
-#~ "\n"
-#~ "Impossibile aprire il file glade (%s). Controllare l'installazione.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TITOLO\n"
-#~ "ARTISTA - TITOLO\n"
-#~ "ARTISTA - ALBUM - TITOLO\n"
-#~ "ARTISTA - ALBUM - TRACCIA. TITOLO\n"
-#~ "ARTISTA [ ALBUM ] - TRACCIA. TITOLO\n"
-#~ "ALBUM - TITOLO\n"
-#~ "Personalizzato"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Finestra di informazioni sulla traccia"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Preferenze"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<b>Presets</b>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Nome del file</b>"
+msgstr "Mostra le opzioni di gestione della sessione"
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "Album"
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Editor di lista di Audacious"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<b>Presets</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Nome del file</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUME: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANCE: %d%% SINISTRA"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANCE: CENTRO"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANCE: %d%% DESTRA"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Riproduci posizione"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Riproduci posizione"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Nessun cd riproducibile trovato.</big></b>\n"
-#~ "\n"
-#~ "Nessun CD inserito, oppure non è un CD audio.\n"
-
-#~ msgid "Add CD..."
-#~ msgstr "Aggiungi CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Aggiunge un CD alla playlist."
-
-#~ msgid "Play CD"
-#~ msgstr "Riproduci CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Artista"
-
-#~ msgid "File name"
-#~ msgstr "Nome file"
-
-#~ msgid "File path"
-#~ msgstr "Percorso file"
-
-#~ msgid "File extension"
-#~ msgstr "Estensione file"
-
-#~ msgid "Track number"
-#~ msgstr "Traccia n°"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Mostra \"...\" solo se l'elemento %n è presente"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "La tua versione di GTK+ (%d.%d.%d) non è compatibile con Audacious.\n"
-#~ "Si usi GTK+ %s o superiore.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENU OPZIONI"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "DISABILITA SEMPRE IN PRIMO PIANO"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ABILITA SEMPRE IN PRIMO PIANO"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "FILE INFO BOX"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DISABILITA DIMENSIONE DOPPIA"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "ABILITA DIMENSIONE DOPPIA"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENU VISUALIZZAZIONE"
-
-#~ msgid "Track name: "
-#~ msgstr "Nome della traccia: "
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Impossibile riprodurre il file.</big></b>\n"
-#~ "\n"
-#~ "I seguenti files non possono essere riprodotti. Controllare che:\n"
-#~ "1. siano accessibili.\n"
-#~ "2. sia abilitato il plugin richiesto."
-
-#~ msgid "Show more _details"
-#~ msgstr "Mostra piu _dettagli"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ricevuto SIGSEGV\n"
-#~ "\n"
-#~ "Questo potrebbe essere un bug in Audacious. Se non si conosce il motivo "
-#~ "per cui questo è accaduto, si apra un bug su http://bugs-meta.atheme."
-#~ "org/\n"
-#~ "\n"
diff --git a/po/ja.po b/po/ja.po
index 4149f17..95af996 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audacious HEAD\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2009-06-19 12:22+0900\n"
"Last-Translator: dai <d+po at vdr.jp>\n"
"Language-Team: Japanese <ja at li.org>\n"
@@ -22,6 +22,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (䏿£ãª UTF-8)"
@@ -104,113 +115,113 @@ msgstr "ã¨ã¹ããã¢èª:"
msgid "Finnish:"
msgstr "ãã£ã³ã©ã³ãèª:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "ãã©ã³ã¹èª:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "ãã¤ãèª:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "ã°ã«ã¸ã¢èª:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "ã®ãªã·ã¢èª:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "ãã³ãã£èª:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "ãã³ã¬ãªã¼èª:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ã¤ã¿ãªã¢èª:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "æ¥æ¬èª:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "æé®®èª:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "ã¯ãã¢ãã¢èª:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "ãªãã¢ãã¢èª:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "ãã±ããã¢èª:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "ãã¼ã©ã³ãèª:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "ãã©ã¸ã«ãã«ãã¬ã«èª:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "ã«ã¼ããã¢èª:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "ãã·ã¢èª:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "ã»ã«ãã¢èª (ã©ãã³æå):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "ã»ã«ãã¢èª (ããªã«æå):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "ç°¡ä½åä¸å½èª:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "ã¹ãããã¢èª:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "ã¹ãã¤ã³èª:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "ã¹ã¦ã§ã¼ãã³èª:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "ç¹ä½åä¸å½èª:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "ãã«ã³èª:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "ã¦ã¯ã©ã¤ãèª:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "ã¦ã§ã¼ã«ãºèª:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "ãã¬ã¤ãªã¹ãã®èªã¿è¾¼ã¿"
@@ -220,79 +231,64 @@ msgstr "ãã¬ã¤ãªã¹ãã®èªã¿è¾¼ã¿"
msgid "Error importing Winamp EQF file '%s'"
msgstr "Winamp EQF ãã¡ã¤ã« '%s' ã®ã¤ã³ãã¼ãã¨ã©ã¼"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "ãã¬ã¤ãªã¹ãã®ä¸ã¤åã®æ²ã«ã¸ã£ã³ããã"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "ç¾å¨ã®ãã¬ã¤ãªã¹ãã§æ¼å¥ãéå§ãã"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "ç¾å¨ã®æ²ã䏿忢ãã"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "ç¾å¨ã®æ²ã忢ãã"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "æ¼å¥ãã¦ããã䏿忢ã, ãã以å¤ã¯æ¼å¥ãã"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "ãã¬ã¤ãªã¹ãã®ä¸ã¤æ¬¡ã®æ²ã«ã¸ã£ã³ããã"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "ãã¡ã¤ã«ãã¤ã¢ãã°ã¸ã®ã¸ã£ã³ãã表示"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "ãã¡ã¤ã«ããã¬ã¤ãªã¹ãã«è¿½å ãã¾ã."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "æ°ãããã¡ã¤ã«ã䏿ãã¬ã¤ãªã¹ãã«è¿½å ãã"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "ã¡ã¤ã³ã¦ã£ã³ãã¦ã表示ãã"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "éããã Audacious ã¦ã£ã³ãã¦ãå
¨ã¦è¡¨ç¤ºãã"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr "ã´ã¡ã¼ã¸ã§ã³ã表示ãã"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "ãã¡ã¤ã«..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- ãã«ãã¡ãã£ã¢ãã¡ã¤ã«ãåçãã"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -301,7 +297,7 @@ msgstr ""
"%s: %s\n"
"詳ãã㯠`%s --help' ãå®è¡ãã¦ä¸ãã.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -309,261 +305,235 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
msgid "Untitled Playlist"
msgstr "ã¿ã¤ãã«ãªããã¬ã¤ãªã¹ã"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "ãªã¼ãã£ãª"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "ãªãã¬ã¤ã²ã¤ã³"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "ãã¬ã¤ãªã¹ã"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "ãã©ã°ã¤ã³"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "ã¢ã¼ãã£ã¹ã"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "ã¢ã«ãã å"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "ãã©ãã¯çªå·"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "ã¸ã£ã³ã«"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "ãã¡ã¤ã«å"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "ãã¹å"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "æ¥ä»"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "å¶ä½å¹´"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "ã³ã¡ã³ã"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "ã³ã¼ããã¯"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "é³è³ª"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "ãªã"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "æ¥æ¬èª"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "ç¹ä½ä¸å½èª"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "ç°¡ä½ä¸å½èª"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "æé®®èª"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "ãã·ã¢èª"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "ã®ãªã·ã¢èª"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "ããã©ã¤èª"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "ãã«ã³èª"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "ã¢ã©ãã¢èª"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "ãã¼ã©ã³ãèª:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "ã»ã«ãã£ãã¯"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "æ±ç¨"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>ãããæ·±åº¦</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "ãã©ãã¯ã®è©³ç´°"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "åºåãããæ·±åº¦:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">ãã¹ã¦ã®ã¹ããªã¼ã ã¯ãã®ãããæ·±åº¦ã«å¤æããã¾ãï¼\n"
-"ããã¯ãµã¦ã³ãã«ã¼ããåºåãã©ã°ã¤ã³ã§ãµãã¼ãããããããæ·±åº¦ã®æå¤§å¤ã¨ãªã"
-"ã¯ãã§ãï¼</span>"
+#, fuzzy
+msgid "Album mode"
+msgstr "ã¢ã«ãã ã¢ã¼ã: "
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>ããªã¥ã¼ã ã³ã³ããã¼ã«</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>ãã©ã¼ãããã®æ¤åº</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ã½ããã¦ã§ã¢ããªã¥ã¼ã ã³ã³ããã¼ã«ã使ã"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "åºåãããæ·±åº¦:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"ã½ããã¦ã§ã¢ããªã¥ã¼ã ã³ã³ããã¼ã«ã使ãã¾ãï¼ãªã¼ãã£ãªã·ã¹ãã ãåçé³éã®"
-"ã³ã³ããã¼ã«ããµãã¼ããã¦ããªãç¶æ³ã§æç¨ã§ãããï¼"
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "ãããã¡ã®ãµã¤ãº:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- ãã«ãã¡ãã£ã¢ãã¡ã¤ã«ãåçãã"
+msgid "Use software volume control (not recommended)"
+msgstr "ã½ããã¦ã§ã¢ããªã¥ã¼ã ã³ã³ããã¼ã«ã使ã"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>ãªãã¬ã¤ã²ã¤ã³ã¢ã¼ã</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "ãªãã¬ã¤ã²ã¤ã³æå¹ã«ãã"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ã¡ã¿ãã¼ã¿</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "ãã©ãã¯ã®è©³ç´°"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ã¢ã«ãã ã¢ã¼ã: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>ãã¦ã¹ã®ãã£ã¼ã«</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ãããã¢ããæ
å ±</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "ã¯ãªããã³ã°é²æ¢ã®ããã«ãã¼ã¯æ
å ±ãæå¹ã«ãã"
+msgid "Amplify untagged files:"
+msgstr "- ãã«ãã¡ãã£ã¢ãã¡ã¤ã«ãåçãã"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "ãããã·ã®ãã¹ãå:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "ãããã·ã®ãã¼ã:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "ãããã·ã®ã¦ã¼ã¶å:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "ãããã·ã®ãã¹ã¯ã¼ã:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>ãããã·è¨å®</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "ãããã·ã®ä½¿ç¨ãæå¹ã«ãã"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "ãããã·ã®èªè¨¼ãè¡ã"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -571,15 +541,15 @@ msgstr ""
"<span size=\"small\">夿´ããè¨å®ãæå¹ã«ããã«ã¯ Audacious ã®åèµ·åãå¿
è¦ã§"
"ã.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "èªåãã£ã©ã¯ã¿ã¨ã³ã³ã¼ãã£ã³ã°æ¤åº:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "代æ¿ãã£ã©ã¯ã¿ã¨ã³ã³ã¼ãã£ã³ã°:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -591,46 +561,46 @@ msgstr ""
"ã°ã®åè£ã¨ãã¦ãªã¹ãä¸ã®ã¨ã³ã³ã¼ãã£ã³ã°ãç¨ããã, ãããã®ã¨ã³ã³ã¼ãã£ã³ã°"
"ãã UTF-8 ã¸ã®å¤æã試ã¿ããã¾ã."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>ãããæ·±åº¦</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "èµ·åæã«åçãç¶ãã"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "ãããããã¨ã³ããªã§æ°ãããã¬ã¤ãªã¹ãã使"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "æ°ãããã¡ã¤ã«ã䏿ãã¬ã¤ãªã¹ãã«è¿½å ãã"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>ã¡ã¿ãã¼ã¿</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "ã«ãã´ãª"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "ãããã¢ããæ
å ±ã®è¨å®"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>ã«ãã¼ç»åã®åå¾</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -639,99 +609,99 @@ msgstr ""
"ã¢ã«ãã ã®ã«ãã¼ãæ¤ç´¢ããé, Audacious ã¯ãã¡ã¤ã«åã®ä¸ã®åèªãæ¢ãã¾ã. ã³"
"ã³ãã§åºåãããåèªãªã¹ãã以ä¸ã«æå®ã§ãã¾ã."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "å«ã¾ãªã:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "å«ã:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "ã«ãã¼ã®å帰æ¤ç´¢"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "æ¤ç´¢ã®æ·±ã: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "ãã¡ã¤ã«ãã¨ã®ã«ãã¼ã使ã"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>ãã®ä»</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "ç¾å¨ã®ãã©ãã¯ã®ããã°ã¬ã¹ãã¼ã表示ãã"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "ãã¡ã¤ã«ãããã¢ããã表示ãããã¾ã§ã®é
å»¶: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>æ²ã®è¡¨ç¤º</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr "æ²çªå·ã®è¡¨ç¤º"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "ã¿ã¤ãã«ã«ä½¿ç¨ã§ããæ¸å¼ã表示ãã¾ã"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "ã¢ã¼ãã£ã¹ã - ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "ã¢ã¼ãã£ã¹ã - ã¢ã«ãã - ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "ã¢ã¼ãã£ã¹ã - ã¢ã«ãã - ãã©ãã¯. ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "ã¢ã¼ãã£ã¹ã [ ã¢ã«ãã ] - ãã©ãã¯. ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ã¢ã«ãã - ã¿ã¤ãã«"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "ã«ã¹ã¿ã "
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "ã«ã¹ã¿ã æåå:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "ã¿ã¤ãã«ã®æ¸å¼:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>ãããã¢ããæ
å ±</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "ãã¬ã¤ãªã¹ãã®ã¨ã³ããªã®ãããã¢ããæ
å ±ã表示ãã"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -741,54 +711,47 @@ msgstr ""
"ã¾ã. ã¦ã£ã³ãã¦ã«ã¯æ²ã®ã¿ã¤ãã«, ã¢ã«ãã å, ã¸ã£ã³ã«, 製ä½å¹´, ãã©ãã¯çª"
"å·, ãã©ãã¯ã®é·ãã¨ã¢ã¼ãã¯ã¼ã¯ã表示ããã¾ã."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "ãããã¢ããæ
å ±ã®è¨å®ãç·¨éãã"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ãªã¼ãã£ãªã·ã¹ãã :</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ãããã¡ã®ãµã¤ãº:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "ç¾å¨ã®åºåãã©ã°ã¤ã³:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "å
¥åãã©ã°ã¤ã³: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "翻訳è
"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>ã¨ãã§ã¯ã</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "è¦è¦å"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious ã®è¨å®"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "ãã£ã¬ã¯ã㪠(%s) ã使ã§ãã¾ããã§ãã: %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -807,22 +770,24 @@ msgstr "ã¹ãã¬ãª"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "次åãããã®è¦åã表示ããªã"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "ãã¬ã¤ãªã¹ãã®ä¿å"
@@ -885,11 +850,11 @@ msgstr "ã¤ã³ã©ã¤ã¶"
msgid "Preamp"
msgstr "ããªã¢ã³ã:"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "ãã©ãã¯çªå·"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "ãã©ãã¯ã®é·ã:"
@@ -1121,6 +1086,29 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "æå®ããæéã¸ç§»å"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "ãã¬ã¤ãªã¹ãã®èªã¿è¾¼ã¿"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "ãã¬ã¤ãªã¹ãã®èªã¿è¾¼ã¿"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Audacious ã«ã¤ãã¦"
@@ -1181,19 +1169,19 @@ msgstr "ã¯ãªã¢(_r)"
msgid "Close on Jump"
msgstr "ã¸ã£ã³ãããããã¤ã¢ãã°ãéãã"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "ãã¬ã¤ãªã¹ãããã¼ã¸ã£"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "ã¨ã³ããª"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "ãªãã¼ã (_R)"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "éããããã¤ã¢ãã°ãéãã"
@@ -1206,6 +1194,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "æå¹ãª .desktop ãã¡ã¤ã«ã§ã¯ããã¾ãã"
@@ -1215,25 +1209,25 @@ msgstr "æå¹ãª .desktop ãã¡ã¤ã«ã§ã¯ããã¾ãã"
msgid "Unrecognized desktop file Version '%s'"
msgstr "èªèã§ããªããã¹ã¯ããããã¡ã¤ã«ã´ã¡ã¼ã¸ã§ã³ '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "%s ãéå§"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "ã¢ããªã±ã¼ã·ã§ã³ã¯ã³ãã³ãã©ã¤ã³ä¸ã®ããã¥ã¡ã³ããåãä»ãã¾ãã"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "èªèã§ããªããã¼ã³ããªãã·ã§ã³: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "'Type=Link' ãã¹ã¯ãããã¨ã³ããªã«ããã¥ã¡ã³ã URI ãæ¸¡ãã¾ãã"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "ãã¼ã³ãå¯è½ãªã¢ã¤ãã ã§ã¯ããã¾ãã"
@@ -1267,6 +1261,52 @@ msgstr "ã»ãã·ã§ã³ããã¼ã¸ã¡ã³ããªãã·ã§ã³"
msgid "Show session management options"
msgstr "ã»ãã·ã§ã³ããã¼ã¸ã¡ã³ããªãã·ã§ã³ã表示ãã"
+#~ msgid "Replay Gain"
+#~ msgstr "ãªãã¬ã¤ã²ã¤ã³"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>ãããæ·±åº¦</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">ãã¹ã¦ã®ã¹ããªã¼ã ã¯ãã®ãããæ·±åº¦ã«å¤æããã¾ãï¼\n"
+#~ "ããã¯ãµã¦ã³ãã«ã¼ããåºåãã©ã°ã¤ã³ã§ãµãã¼ãããããããæ·±åº¦ã®æå¤§å¤ã¨ãª"
+#~ "ãã¯ãã§ãï¼</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>ããªã¥ã¼ã ã³ã³ããã¼ã«</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "ã½ããã¦ã§ã¢ããªã¥ã¼ã ã³ã³ããã¼ã«ã使ãã¾ãï¼ãªã¼ãã£ãªã·ã¹ãã ãåçé³é"
+#~ "ã®ã³ã³ããã¼ã«ããµãã¼ããã¦ããªãç¶æ³ã§æç¨ã§ãããï¼"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>ã¡ã¿ãã¼ã¿</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>ãããã¢ããæ
å ±</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "ã¯ãªããã³ã°é²æ¢ã®ããã«ãã¼ã¯æ
å ±ãæå¹ã«ãã"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>ãªã¼ãã£ãªã·ã¹ãã :</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "ç¾å¨ã®åºåãã©ã°ã¤ã³:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "éããã Audacious ã¦ã£ã³ãã¦ãå
¨ã¦è¡¨ç¤ºãã"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: ãã£ã¹ãã¬ã¤ãéãã¾ãã. çµäºãã¾ã.\n"
@@ -1780,9 +1820,6 @@ msgstr "ã»ãã·ã§ã³ããã¼ã¸ã¡ã³ããªãã·ã§ã³ã表示ãã"
#~ msgid "No input plugin recognized this file"
#~ msgstr "ãã®ãã¡ã¤ã«ãèªèããå
¥åãã©ã°ã¤ã³ã§ã¯ããã¾ãã"
-#~ msgid "Input plugin: %s"
-#~ msgstr "å
¥åãã©ã°ã¤ã³: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1825,9 +1862,6 @@ msgstr "ã»ãã·ã§ã³ããã¼ã¸ã¡ã³ããªãã·ã§ã³ã表示ãã"
#~ "ããã¯ãµã¦ã³ãã«ã¼ããåºåãã©ã°ã¤ã³ã§ãµãã¼ãããããµã³ããªã³ã°ã¬ã¼ãã®æ"
#~ "大å¤ã¨ãªãã¯ãã§ãï¼</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>ãã©ã¼ãããã®æ¤åº</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "ãã¡ã¤ã«ãã©ã¼ããããæ¡å¼µåã§æ¤åºãã"
@@ -1952,9 +1986,6 @@ msgstr "ã»ãã·ã§ã³ããã¼ã¸ã¡ã³ããªãã·ã§ã³ã表示ãã"
#~ msgid "Can't jump to time when no track is being played.\n"
#~ msgstr "åçããããã©ãã¯ããªãæéã¸ã¯ç§»åã§ãã¾ãã.\n"
-#~ msgid "Jump to Time"
-#~ msgstr "æå®ããæéã¸ç§»å"
-
#~ msgid "minutes:seconds"
#~ msgstr "å:ç§"
diff --git a/po/ka.po b/po/ka.po
index 54f8986..a574f5e 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1.35\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2005-10-14 13:54+0400\n"
"Last-Translator: George Machitidze <giomac at gmail.com>\n"
"Language-Team: Georgian <giomac at gmail.com>\n"
@@ -19,6 +19,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.10.2\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (áá áá¡á¬áá á UTF-8)"
@@ -109,116 +120,116 @@ msgstr "á á£áááá£áá:"
msgid "Finnish:"
msgstr "áá¡áááá£á á:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "á¤á áááá£áá:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "ááá áááá£áá"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
#, fuzzy
msgid "Georgian:"
msgstr "ááá áááá£áá"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "ááá á«áá£áá:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr ""
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "á£ááá á£áá:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "áá¢áááá£á á:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "áááááá£á á:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "ááá áá£áá:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "áááááá áááá:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "ááá¢áá£á á:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "ááááááááá£á á:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "áááááá£á á:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "ááá á¢á:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "á á£áááá£áá:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "á á£á¡á£áá:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr ""
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr ""
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr ""
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "á¡áááááá£á á:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "áá¡áááá£á á:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "á¨áááá£á á:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
#, fuzzy
msgid "Traditional Chinese:"
msgstr "ááááá¢ááááá ááá®ááá ááá:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
#, fuzzy
msgid "Ukrainian:"
msgstr "á á£áááá£áá:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "á£ááá¡á£á á:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "á áááá á¢á£áá áá¡ á©áá¢ááá ááá"
@@ -228,90 +239,75 @@ msgstr "á áááá á¢á£áá áá¡ á©áá¢ááá ááá"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "á áááá á¢á£áá á¨á á£ááá ááááá¡ááá"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "áááááááá á á áááá á¢á£áá áá¡ ááááá á"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "áááááááá á á¡ááá¦áá áá¡ ááááá£áááá"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "áááááááá á á¡ááá¦áá áá¡ ááá©áá ááá"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "áááááá£áááá áᣠá£áá ááá¡, áᣠáá á - ááááá á"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "á áááá á¢á£áá á¨á á¬áá ááááá®á¢ááá"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
#, fuzzy
msgid "Display Jump to File dialog"
msgstr "/á¤ááááá ááááá¡ááá"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "á áááá á¢á£áá áá¡ ááá¬áááááá¡ ááá áá¨á"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
#, fuzzy
msgid "Add new files to a temporary playlist"
msgstr "á áááá á¢á£áá áá¡ ááá¬áááááá¡ ááá áá¨á"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
#, fuzzy
msgid "Display the main window"
msgstr "á«áá ááááá á¤ááá¯á áá¡ á©áááááá"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "/á áááá á¢á£áá áá¡ á©áááááá"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -319,288 +315,267 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
#, fuzzy
msgid "Buffering ..."
msgstr "áá£á¤áá á"
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "á áááá á¢á£áá áá¡ á¨áááá®áá"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
#, fuzzy
msgid "Audio"
msgstr "MPEG áá£ááá-áááááááá¡ á¨áá¡áá®áá"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "á áááá á¢á£áá á"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "ááááááááá"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "á¨ááá¡á á£áááááá"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "áááááá"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "á¡áááá£á á"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "á©áááá¬áá áá¡ ááááá á"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "áááá á"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "á¤ááááá¡ á¡áá®ááá"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "á¤ááááá¡ áááá"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "ááá áá¦á"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "á¬ááá"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "áááááá¢áá á"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
#, fuzzy
msgid "Codec"
msgstr "/ááááá¢áá"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "/_ááá¡ááá"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "áá áá áá¡"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "áááááá£á á:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "áááááá£á á:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "á©ááá£á á:"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "ááá áá£áá:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "á á£á¡á£áá:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "ááá á«áá£áá:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "áááááá£á á:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "áááá¢á£á á"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
#, fuzzy
msgid "Universal"
msgstr "áááá á"
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "ááááááá¡ á¡áá©á¥áá á:"
+msgid "Single track mode"
+msgstr "/á©áááá¬áá áá¡ ááá¢ááááá"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "áááááá"
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "á®ááá¡ áááá¢á ááá:"
+msgid "<b>Output Settings</b>"
+msgstr "ááá¢áááá¢á£á áá áá¦ááá©ááá"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "áá ááá ááá£áá á®ááá¡ áááá¢á ááá"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "ááááááá¡ á¡áá©á¥áá á:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+#, fuzzy
+msgid "Buffer size:"
+msgstr "áá£á¤áá áá¡ áááá (áá):"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+#: src/audacious/ui_preferences.c:158
+#, fuzzy
+msgid "Use software volume control (not recommended)"
+msgstr "áá ááá ááá£áá á®ááá¡ áááá¢á ááá"
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>á¤ááááá¡ á¡áá®ááá</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "/á§áááááááá¡ ááááááá"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>á¤ááááá¡ á¡áá®ááá</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/á©áááá¬áá áá¡ ááá¢ááááá"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "áááááá"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>áááá£ááá¡ ááá áááá</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "MPEG áá£ááá-áááááááá¡ áááá¤ááá£á ááªáá"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr ""
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
#, fuzzy
msgid "Proxy port:"
msgstr "áá áá¥á¡á:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
#, fuzzy
msgid "Proxy username:"
msgstr "á¡áá®ááá:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
#, fuzzy
msgid "Proxy password:"
msgstr "ááá ááá:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
#, fuzzy
msgid "<b>Proxy Configuration</b>"
msgstr "MPEG áá£ááá-áááááááá¡ áááá¤ááá£á ááªáá"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr ""
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
#, fuzzy
msgid "Use authentication with proxy"
msgstr "áá£áááá¢ááááªááá¡ ááááá§ááááá"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr ""
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -608,211 +583,201 @@ msgid ""
"fall back conversion from these encodings to UTF-8 would be attempted."
msgstr ""
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "ááááááá¡ á¡áá©á¥áá á:"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr ""
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "/á¡ááá¡ áááááááá/á¡áááá£á áá¡ ááá®ááááá"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "á áááá á¢á£áá áá¡ ááá¬áááááá¡ ááá áá¨á"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>ááá¢ááááááªááááá</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "ááá¢áááá áá"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
#, fuzzy
msgid "Popup Information Settings"
msgstr "MPEG áá£ááá-áááááááá¡ áááá¤ááá£á ááªáá"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
#, fuzzy
msgid "<b>Cover image retrieve</b>"
msgstr "ááá¢áááá¢á£á áá áá¦ááá©ááá"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr ""
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
#, fuzzy
msgid "Include:"
msgstr "áááá"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
#, fuzzy
msgid "<b>Miscellaneous</b>"
msgstr "<b>_á¡á®ááááá¡á®áá</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
#, fuzzy
msgid "<b>Song Display</b>"
msgstr "<b>á¡ááá¦áá áá¡ á¡áá®áááá¡ á©áááááá</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr ""
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "áá£á¤áá áá¡ áá á (áá¬á):"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr ""
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "á¡áááá£á áá¡ á¤áá ááá¢á:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
#, fuzzy
msgid "<b>Popup Information</b>"
msgstr "MPEG áá£ááá-áááááááá¡ áááá¤ááá£á ááªáá"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "á¨ááá¡á á£áááááá:"
-
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "áá£á¤áá áá¡ áááá (áá):"
-
-#: src/audacious/ui_preferences.c:1734
+#: src/audacious/ui_preferences.c:1497
#, fuzzy
-msgid "Current output plugin:"
-msgstr "_áááááááá á áááááá§áááá ááááááá:"
+msgid "Output plugin:"
+msgstr "OSS áááááá§áááá ááááááá"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "áááá áááááááá"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>áá¤áá¥á¢ááá</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Visualization"
msgstr "/áááá£ááááááªááá¡ á ááááá"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
#, fuzzy
msgid "Audacious Preferences"
msgstr "BMP-áá¡ áááá¡ááááá"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, fuzzy, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "(%s) ááá áá¥á¢áá ááá¡ á¨áá¥ááá á¨áá£á«ááááááá : %s"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -831,22 +796,24 @@ msgstr "á¡á¢áá áá"
#: src/libaudcore/tuple.c:689
#, fuzzy, c-format
-msgid "%d channels"
-msgstr "áá á®ááá:"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "áá á®ááá:"
+msgstr[1] "áá á®ááá:"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "áá¦áá áá©áááá áá¡ ááá¤á á®ááááá"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "á áááá á¢á£áá áá¡ á¨áááá®áá"
@@ -916,12 +883,12 @@ msgstr "áááááááááá á"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
#, fuzzy
msgid "Track Number"
msgstr "á©áááá¬áá áá¡ ááááá á"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
#, fuzzy
msgid "Track Length"
msgstr "á©áááá¬áá áá¡ á¡ááá á«á:"
@@ -1172,6 +1139,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "áá ááá ááááá¡ááá"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "á áááá á¢á£áá áá¡ á©áá¢ááá ááá"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "á áááá á¢á£áá áá¡ á©áá¢ááá ááá"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
#, fuzzy
msgid "About Audacious"
@@ -1238,21 +1228,21 @@ msgstr "/á áááá¡ ááá¬ááááá"
msgid "Close on Jump"
msgstr "ááá®á¡ááá¡ á¨ááááá áááááááá¡ ááááá¢áá"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
#, fuzzy
msgid "Playlist Manager"
msgstr "/á áááá á¢á£áá áá¡ á©áááááá"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
#, fuzzy
msgid "_Rename"
msgstr "á¤ááááá¡ á¡áá®ááá"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "ááá®á¡ááá¡ á¨ááááá áááááááá¡ ááááá¢áá"
@@ -1265,6 +1255,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1274,25 +1270,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "%s: áááá£áªáááá ááá áááá¢á á `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, fuzzy, c-format
msgid "Starting %s"
msgstr "áá¢áááá£á á:"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, fuzzy, c-format
msgid "Unrecognized launch option: %d"
msgstr "%s: áááá£áªáááá ááá áááá¢á á `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1325,6 +1321,30 @@ msgid "Show session management options"
msgstr ""
#, fuzzy
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "ááááááá¡ á¡áá©á¥áá á:"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "á®ááá¡ áááá¢á ááá:"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>á¤ááááá¡ á¡áá®ááá</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "MPEG áá£ááá-áááááááá¡ áááá¤ááá£á ááªáá"
+
+#, fuzzy
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "á¨ááá¡á á£áááááá:"
+
+#, fuzzy
+#~ msgid "Current output plugin:"
+#~ msgstr "_áááááááá á áááááá§áááá ááááááá:"
+
+#, fuzzy
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "BMP: á¨áá£á«ááááááá ááá áááá¡ ááá®á¡áá, áááááááááá ."
@@ -1779,10 +1799,6 @@ msgstr ""
#~ msgstr "áá£áááá¢ááááªááá¡ ááááá§ááááá"
#, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "ááá¢áááá¢á£á áá áá¦ááá©ááá"
-
-#, fuzzy
#~ msgid "<b>Sampling Rate Converter</b>"
#~ msgstr "á¡áááááá áááá¡ á¡áá®á¨áá á:"
@@ -1808,9 +1824,6 @@ msgstr ""
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "ááá¢á-áááááªáááááá¡ (á¢áááááá¡) á©áá¢ááá ááá áá£á¡ááááá£á á á¤ááááááááá."
-#~ msgid "Jump to Time"
-#~ msgstr "áá ááá ááááá¡ááá"
-
#~ msgid "minutes:seconds"
#~ msgstr "á¬á£áááá:á¬ááááá"
@@ -3548,9 +3561,6 @@ msgstr ""
#~ msgid "MPEG Level:"
#~ msgstr "MPEG-áá¡ áááá:"
-#~ msgid "Bit rate:"
-#~ msgstr "ááááááá¡ á¡áá©á¥áá á:"
-
#~ msgid "Sample rate:"
#~ msgstr "á¡áááááá áááá¡ á¡áá®á¨áá á:"
@@ -3710,9 +3720,6 @@ msgstr ""
#~ msgid " Close "
#~ msgstr "/ááááá¢áá"
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS áááááá§áááá ááááááá"
-
#~ msgid "About OSS Driver"
#~ msgstr "OSS áá ááááá áá¡ á¨áá¡áá®áá"
diff --git a/po/ko.po b/po/ko.po
index a24a05a..5976d3e 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audacious 1.4.6\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2008-02-14 22:00+0900\n"
"Last-Translator: ChoSeongWoo <syn333 at gmail.com>\n"
"Language-Team: Korean <ko at li.org>\n"
@@ -20,6 +20,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (ì í¨íì§ ìì UTF-8)"
@@ -104,113 +115,113 @@ msgstr "ìì¤í ëìì´:"
msgid "Finnish:"
msgstr "íëëì´:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "íëì¤ì´:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "ë
ì¼ì´:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "그루ì§ì¼ì´:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "그리ì¤ì´:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "íëì´:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "íê°ë¦¬ì´:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ì´í리ìì´:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "ì¼ë³¸ì´:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "íêµì´:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "í¬ë¡ìí°ìì´:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "리í¬ìëìì´:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "ë§ì¼ëëìì´:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "í´ëëì´:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "í¬ë¥´í¬ê°ì´ (ë¸ë¼ì§):"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "루ë§ëìì´:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "ë¬ììì´:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "ì¸ë¥´ë¹ìì´ (ë¼í´):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "ì¸ë¥´ë¹ìì´ (í¤ë¦´):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "ì¤êµì´ (ê°ìì²´):"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "ì¬ë¡ë°í¤ìì´:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "ì¤íì¸ì´:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "ì¤ì¨ë´ì´:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "ì¤êµì´ (ë²ìì²´):"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "í°í¤ì´:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "ì°í¬ë¼ì´ëì´:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "ì¨ì¼ì¤ì´:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "ì°ì£¼ ëª©ë¡ ë¶ë¬ì¤ê¸°"
@@ -220,80 +231,65 @@ msgstr "ì°ì£¼ ëª©ë¡ ë¶ë¬ì¤ê¸°"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "ì°ì£¼ 목ë¡ì ë·ë¶ë¶ ê±´ëë°ê¸°"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "íì¬ ì°ì£¼ ëª©ë¡ ì¬ì ìì"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "íì¬ ë
¸ë ë©ì¶¤"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "íì¬ ë
¸ë ì ì§"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "ì¬ì ì¤ì´ë©´ ë©ì¶¤, ê·¸ ì¸ìë ì¬ì"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "ì°ì£¼ 목ë¡ì ìë¶ë¶ ê±´ëë°ê¸°"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "íì¼ ì°½ìì ì´ë íì"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "ì°ì£¼ 목ë¡ì íì¼ì ì¶ê°í©ëë¤."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "ì íì¼ì ìì ì°ì£¼ 목ë¡ì ì¶ê°"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "기본 ì°½ íì"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "모ë ì´ë¦° ì°½ íì"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "ì¬ì기 보기"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "íì¼..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr " - ë©í°ë¯¸ëì´ íì¼ ì¬ì"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -302,7 +298,7 @@ msgstr ""
"%s: %s\n"
"'%s --help'를 ì¤ííë©´ ë ë§ì ì 보를 ë³¼ ì ììµëë¤.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -310,285 +306,257 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "ì ì°ì£¼ 목ë¡"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "ì¤ëì¤"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "ì°ì£¼ 목ë¡"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "íë¬ê·¸ì¸"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "ìì
ê°"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "ìë°"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "ì 목"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "í¸ë ë²í¸"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "ì¥ë¥´"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "íì¼ ì´ë¦"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "íì¼ ê²½ë¡"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "ë ì§"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "ì°ë"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "주ì"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "ì½ë±"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "ìì§"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "ì¼ë³¸ì´:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "ì¼ë³¸ì´:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "ì¤"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "íêµì´:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "ë¬ììì´:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "그리ì¤ì´:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
#, fuzzy
msgid "Turkish"
msgstr "í°í¤ì´:"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "í´ëëì´:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>íì ê°ì§</b>"
+msgid "Single track mode"
+msgstr "í¸ë ìì¸í 보기"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
#, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">모ë ì¤í¸ë¦¼ì ì´ ìíë§ì¨ë¡ë³íí©ëë¤.\n"
-"ì¬ì´ëì¹´ëë ì¶ë ¥ íë¬ê·¸ì¸ìì ì§ìíë\n"
-"ìµë ìíë§ì¨ë¡ ì¤ì íë ê²ì´ ì¢ìµëë¤.</span>"
+msgid "Album mode"
+msgstr "ìë°: "
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>ìë ì ì´</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>íì ê°ì§</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ìíí¸ì¨ì´ ìë ì ì´ ì¬ì©"
-
-#: src/audacious/ui_preferences.c:154
#, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"ìíí¸ì¨ì´ ìë ì ì´ë¥¼ ì¬ì©í©ëë¤. ì´ê²ì ì¤ëì¤ ìì¤í
ì´ ìë ì ì´ë¥¼ ì§ìí"
-"ì§ ìì ë ì ì©í©ëë¤."
+msgid "Bit depth:"
+msgstr "<b>íì ê°ì§</b>"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "ë²í¼ í¬ê¸°:"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr " - ë©í°ë¯¸ëì´ íì¼ ì¬ì"
+msgid "Use software volume control (not recommended)"
+msgstr "ìíí¸ì¨ì´ ìë ì ì´ ì¬ì©"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>íë½ì ì¤ì </b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "íë½ì ì¬ì©"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ë©íë°ì´í°</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "í¸ë ìì¸í 보기"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ìë°: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>ë§ì°ì¤ í </b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>íì
ì ë³´</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr " - ë©í°ë¯¸ëì´ íì¼ ì¬ì"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "í¸ì¤í¸ ì´ë¦:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "í¬í¸:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "ì¬ì©ì ì´ë¦:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "ë¹ë°ë²í¸:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>íë½ì ì¤ì </b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "íë½ì ì¬ì©"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "íë½ììì ì¸ì¦ ì¬ì©"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr "<span size=\"small\">ë°ë ì¤ì ê°ì ì¬ìì í´ì¼ì ì©ë©ëë¤.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "문ì ì¸ì½ë© ìë ê°ì§ê¸°:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "ëì²´í 문ì ì¸ì½ë©:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -599,46 +567,46 @@ msgstr ""
"ì ê°ì§íëë° ì¤í¨íê±°ë ì¬ì©í ì ìì ë, ì´ ëª©ë¡ ì¤ìì ì¸ì½ë©ì ìëíë©° "
"ì´ë¤ì UTF-8 ì¸ì½ë©ì ëì²´í ì ìëë¡ ëìì ì¤ëë¤."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>íì ê°ì§</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "ììí ë ì´ì´ì ì¬ì"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "ì¼ì¹íë í목ì¼ë¡ ì ì°ì£¼ 목ë¡ì ë§ë¦"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "ì íì¼ì ìì ì°ì£¼ 목ë¡ì ì¶ê°"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>ë©íë°ì´í°</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "ë¶ë¬¸"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "íì
ì ë³´ ì¤ì "
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>íì§ ì´ë¯¸ì§ ë°ê¸°</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -647,100 +615,100 @@ msgstr ""
"ìë° íì§ë¥¼ ì°¾ì ëê¹ì§ íì¼ ì´ë¦ì ì íí ë¨ì´ë¡ ì°¾ìµëë¤. ìë 목ë¡ìì ì°¾"
"ì ë¨ì´ë¥¼ ì§ì í ì ììµëë¤. ì¼í(,)ë¡ êµ¬ë¶íì¸ì."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "ì ì¸:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "í¬í¨:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "ë°ë³µí´ì íì§ ì°¾ê¸°"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "ê²ì ìì¤: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "ì¬ì©ì íì¼ íì§ ì¬ì©"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>기í</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "íì¬ í¸ëìì ì§í ë§ë 보기"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "íì¼ íì
ì ëì¸ ì§ì° ìê°: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>ë
¸ë íì</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "ì 목 íì íìì ëí ì ë³´ 보기"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "ì¬ì©ì ì ì:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "ì¬ì©ì ì ì:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "ì 목 íì:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>íì
ì ë³´</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "ì°ì£¼ ëª©ë¡ í목ìì íì
ì ë³´ 보기"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -749,54 +717,47 @@ msgstr ""
"ì°ì£¼ 목ë¡ì í목ìì íì
ì ë³´ ì°½ì ë³´ê±°ë ëëë¤. ì°½ìì ë
¸ë ì 목, ìë°, ì¥"
"르, ì°ë, í¸ë ë²í¸, í¸ë ê¸¸ì´ ë±ì ë³´ì¬ì¤ëë¤."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "íì
ì ë³´ ì¤ì í¸ì§"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ì¤ëì¤ ìì¤í
</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ë²í¼ í¬ê¸°:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "íì¬ ì¶ë ¥ íë¬ê·¸ì¸:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "ì
ë ¥ íë¬ê·¸ì¸: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "ë²ììë¤"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>ìì± í¨ê³¼</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "ìê° í¨ê³¼"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious íê²½ ì¤ì "
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "(%s) ëë í°ë¦¬ë¥¼ ë§ë¤ ì ìì: %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -815,22 +776,24 @@ msgstr "ì¤í
ë ì¤"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "ì´ ê²½ê³ ë¥¼ ë¤ì íìíì§ ìì"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "ì°ì£¼ ëª©ë¡ ì ì¥"
@@ -892,11 +855,11 @@ msgstr "ì´íë¼ì´ì "
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "í¸ë ë²í¸"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "í¸ë 길ì´"
@@ -1132,6 +1095,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "ìê° ì´ë"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "ì°ì£¼ ëª©ë¡ ë¶ë¬ì¤ê¸°"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "ì°ì£¼ ëª©ë¡ ë¶ë¬ì¤ê¸°"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Audacious ìê°"
@@ -1193,19 +1179,19 @@ msgstr "êµ¬ê° ë¹ì"
msgid "Close on Jump"
msgstr "ì´ëíë©´ ë«ê¸°"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "ì°ì£¼ ëª©ë¡ ê´ë¦¬ì"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "í목"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "ì´ë¦ ë°ê¾¸ê¸°(_R)"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "ì íí´ì ì´ë©´ ì°½ ë«ê¸°"
@@ -1218,6 +1204,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1227,25 +1219,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1280,6 +1272,44 @@ msgstr "ìëì° ê´ë¦¬ì ê¾¸ë° ë³´ê¸°"
msgid "Show session management options"
msgstr "ìëì° ê´ë¦¬ì ê¾¸ë° ë³´ê¸°"
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">모ë ì¤í¸ë¦¼ì ì´ ìíë§ì¨ë¡ë³íí©ëë¤.\n"
+#~ "ì¬ì´ëì¹´ëë ì¶ë ¥ íë¬ê·¸ì¸ìì ì§ìíë\n"
+#~ "ìµë ìíë§ì¨ë¡ ì¤ì íë ê²ì´ ì¢ìµëë¤.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>ìë ì ì´</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "ìíí¸ì¨ì´ ìë ì ì´ë¥¼ ì¬ì©í©ëë¤. ì´ê²ì ì¤ëì¤ ìì¤í
ì´ ìë ì ì´ë¥¼ ì§ì"
+#~ "íì§ ìì ë ì ì©í©ëë¤."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>ë©íë°ì´í°</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>íì
ì ë³´</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>ì¤ëì¤ ìì¤í
</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "íì¬ ì¶ë ¥ íë¬ê·¸ì¸:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "모ë ì´ë¦° ì°½ íì"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: ëì¤íë ì´ë¥¼ ì´ ì ìì´ ì¢
ë£í©ëë¤.\n"
@@ -1495,9 +1525,6 @@ msgstr "ìëì° ê´ë¦¬ì ê¾¸ë° ë³´ê¸°"
#~ msgid "No input plugin recognized this file"
#~ msgstr "ì´ íì¼ì ì¸ìíë ì
ë ¥ íë¬ê·¸ì¸ ìì"
-#~ msgid "Input plugin: %s"
-#~ msgstr "ì
ë ¥ íë¬ê·¸ì¸: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1532,9 +1559,6 @@ msgstr "ìëì° ê´ë¦¬ì ê¾¸ë° ë³´ê¸°"
#~ "ì¬ì´ëì¹´ëë ì¶ë ¥ íë¬ê·¸ì¸ìì ì§ìíë\n"
#~ "ìµë ìíë§ì¨ë¡ ì¤ì íë ê²ì´ ì¢ìµëë¤.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>íì ê°ì§</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "íì¥ìë¡ íì¼ íìì ê°ì§"
@@ -1628,9 +1652,6 @@ msgstr "ìëì° ê´ë¦¬ì ê¾¸ë° ë³´ê¸°"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "ìì
íì¼ë¡ë¶í° ë©íë°ì´í°(íê·¸ ì ë³´)를 ë¶ë¬ìµëë¤."
-#~ msgid "Jump to Time"
-#~ msgstr "ìê° ì´ë"
-
#~ msgid "minutes:seconds"
#~ msgstr "ë¶:ì´"
diff --git a/po/lt.po b/po/lt.po
index 173aff1..e5002ba 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -1,4738 +1,1241 @@
-# Lithuanian translation of BMP.
-# Copyright (C) 2004 Rimas Kudelis <rq at akl.lt>
-# This file is distributed under the same license as the BMP package.
-# Rimas Kudelis <rq at akl.lt>, 2004.
-#
+# Lithuanian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
#
+# Translators:
+# <>, 2012.
+# Algimantas MargeviÄius <gymka at mail.ru>, 2011.
+# Algimantas MargeviÄius <margevicius.algimantas at gmail.com>, 2011, 2012.
+# Gymka <gymka at mail.ru>, 2011.
+# Rimas Kudelis <rq at akl.lt>, 2004.
msgid ""
msgstr ""
-"Project-Id-Version: BMP\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2004-12-06 19:02+0200\n"
-"Last-Translator: Rimas Kudelis <rq at akl.lt>\n"
-"Language-Team: Lithuanian <komp_lt at konferencijos.lt>\n"
-"Language: lt\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-13 12:21+0000\n"
+"Last-Translator: Algimantas MargeviÄius <margevicius.algimantas at gmail.com>\n"
+"Language-Team: Lithuanian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Ieškoma ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d failas rastas"
+msgstr[1] "%d failai rasti"
+msgstr[2] "%d failų rasti"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (blogas UTF-8)"
-#: src/audacious/credits.c:35
-#, fuzzy
+#: src/audacious/credits.c:37
msgid "Core developers:"
-msgstr "KÅ«rÄjai:"
+msgstr "Autoriai:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
-msgstr ""
+msgstr "Grafika:"
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
-msgstr "Įprastasis rūbas:"
+msgstr "Numatytoji išvaizda:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
-msgstr ""
+msgstr "Ä®skiepių kÅ«rÄjai:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
-msgstr ""
+msgstr "Pataisymų kÅ«rÄjai:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:131
msgid "1.x developers:"
msgstr "KÅ«rÄjai:"
-#: src/audacious/credits.c:148
-#, fuzzy
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
msgstr "KÅ«rÄjai:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:185
msgid "Belarusian:"
-msgstr "Į vengrų k.:"
+msgstr "Į baltarusių k.:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
-msgstr ""
+msgstr "Į Baskų k.:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
msgstr "Ä® brazilų k. (portugalų dialektÄ
):"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
-msgstr "į bretonų k.:"
+msgstr "Į bretonų k.:"
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
-msgstr "Į vengrų k.:"
+msgstr "Į bulgarų k.:"
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:202
msgid "Catalan:"
-msgstr "Į italų k.:"
+msgstr "Į katalonų k.:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:206
msgid "Chinese:"
msgstr "Į kinų k.:"
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:209
msgid "Croatian:"
-msgstr "Vieta:"
+msgstr "Į kroatų k.:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
msgstr "Ä® Äekų k.:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
msgstr "Į olandų k.:"
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:219
msgid "Estonian:"
-msgstr "Į rumunų k.:"
+msgstr "Į estų k.:"
-#: src/audacious/credits.c:215
-#, fuzzy
+#: src/audacious/credits.c:222
msgid "Finnish:"
-msgstr "Į ispanų k.:"
+msgstr "Į suomių k.:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
msgstr "Į prancūzų k.:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
msgstr "Ä® vokieÄių k.:"
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:240
msgid "Georgian:"
msgstr "Ä® vokieÄių k.:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
msgstr "Į graikų k.:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
-msgstr ""
+msgstr "Ä® hindi"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
msgstr "Į vengrų k.:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
msgstr "Į italų k.:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
msgstr "Į japonų k.:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
msgstr "Ä® korÄjieÄių k.:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
msgid "Latvian:"
-msgstr "Vieta:"
+msgstr "Į latvių k.:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
msgstr "Į lietuvių k.:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
msgstr "Į makedonų k.:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Ispanų (Meksika)"
+
+#: src/audacious/credits.c:280
msgid "Polish:"
msgstr "Į lenkų k.:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Portuguese:"
-msgstr "Portas:"
+msgstr "Į portugalų k.:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
msgstr "Į rumunų k.:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
msgstr "Į rusų k.:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
-msgstr ""
+msgstr "Į serbų (lotynų) k."
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "Į serbų (Kirilica) k.:"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Supaprastinta kinų k."
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
msgstr "Į slovakų k.:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
msgstr "Į ispanų k.:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
msgstr "Į švedų k.:"
-#: src/audacious/credits.c:304
-#, fuzzy
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
-msgstr "Taip pat prisidÄjo:"
+msgstr "TradicinÄ kinų:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
-msgstr ""
+msgstr "Turkų:"
-#: src/audacious/credits.c:313
-#, fuzzy
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
-msgstr "Į rumunų k.:"
+msgstr "Ä® ukrainieÄių k.:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "VietnamieÄių:"
+
+#: src/audacious/credits.c:341
msgid "Welsh:"
msgstr "Ä® velsieÄių k.:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Įkrauti grojaraštį"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Klaida įkeliant Winamp EQF failÄ
â%sâ"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "Šoktelti atgal grojaraštyje"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
-msgstr "PradÄti groti esamÄ
grojaraštį"
+msgstr "PradeÌti groti dabartinį grojarasÌtį"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Pristabdyti grojamÄ
dainÄ
"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Sustabdyti grojamÄ
dainÄ
"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Pristabdyti, jei grojama, kitu atveju groti"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "Šoktelti pirmyn grojaraštyje"
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "/Å okti į bylÄ
"
+msgstr "Rodyti Å¡okti į bylÄ
langÄ
"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
+msgstr "PridÄti failus į grojaraÅ¡tį"
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
-msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
+msgstr "PridÄti naujus failus į laikinÄ
grojaraštį"
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "Parodyti pagrindinį langÄ
"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
msgid "Show version"
-msgstr "/Parodyti grojaraÅ¡Äio redaktorių"
+msgstr "Rodyti versijÄ
"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "Rodyti derinimo pranešimus"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Begalvis režimas (beta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
-msgstr ""
+msgstr "FAILAS..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
-msgstr ""
+msgstr "- groti daugialypÄs terpÄs failus"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
+"%s: %s\n"
+"Bandykite `%s --help' išsamesniai informacijai.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
-msgstr ""
+msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "Failui %s dekoderis nerastas."
-#: src/audacious/playback.c:519
-#, fuzzy
-msgid "Buffering ..."
-msgstr "Buferiavimas"
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Neįmanoma %s %s: nepalaikomas failo plÄtinys."
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Išsaugoti grojaraštį"
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "išsaugoti"
-#: src/audacious/ui_preferences.c:88
-#, fuzzy
-msgid "Audio"
-msgstr "Apie MPEG audio įskiepį"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "įkelti"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Naujas grojaraštis"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Dabar grojama"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
msgstr ""
+"Vis dar vyksta(arba iÅ¡jungta) meta duomenų skaitymas, todÄl neįmanoma "
+"surikiuoti grojaraÅ¡Äio."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Garsas"
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
-msgstr ""
+msgstr "Tinklas"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Grojaraštis"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Įskiepiai"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "AtlikÄjas"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "Albumas"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Pavadinimas"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Takelio numeris"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "Žanras"
-# msgstr[0] "Įtrauktas %d elementas."
-# msgstr[1] "Įtraukti %d elementai."
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Bylos vardas"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Bylos kelias"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Metai"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Komentaras"
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
-msgstr "/Užverti"
+msgstr "Kodekas"
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
-msgstr "/_Išeiti"
+msgstr "KokybÄ"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "Joks"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabų"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltijos"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Kinų"
+
#: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Į japonų k.:"
+msgid "Greek"
+msgstr "Graikų"
#: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Į japonų k.:"
+msgid "Hebrew"
+msgstr "Hebrajų"
#: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Į kinų k.:"
+msgid "Japanese"
+msgstr "Japonų"
#: src/audacious/ui_preferences.c:118
-#, fuzzy
msgid "Korean"
-msgstr "Ä® korÄjieÄių k.:"
+msgstr "KorÄjieÄių"
#: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Į rusų k.:"
+msgid "Polish"
+msgstr "Lenkų"
#: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Į graikų k.:"
+msgid "Russian"
+msgstr "Rusų"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "TaivanieÄių"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Į lenkų k.:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Celtic"
-
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "Žanras"
+msgstr "Turkų"
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "Nominalus bitų sekos greitis:"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Albumo režimas"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>Išvesties nustatymai</b>"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "Garso valdymas:"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Nominalus bitų sekos greitis:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Naudoti programinį garso valdymÄ
"
+msgid "Buffer size:"
+msgstr "Buferio dydis (kb):"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Naudoti programinį garso valdymÄ
(nerekomenduojama)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Bylos vardas</b>"
+msgstr "<b>Garso lygio sulyginimas</b>"
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
-msgstr "/Visada viršuje"
-
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Bylos vardas</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Takelio informacija"
+msgstr "Ä®jungt garso lygio sulyginimÄ
"
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albumas"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Uždrausti apkarpymÄ
(rekomenduojama)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>PelÄs ratukas</b>"
+msgstr "<b>Nustatyti lygius</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "MPEG garso įskiepio konfigūravimas"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Pagarsinti visus failus:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Aktyvuoti apkarpymo prevencijÄ
"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Pagarsinti nepažymÄtus failus:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
-msgstr ""
+msgstr "Tarpinis serveris:"
-#: src/audacious/ui_preferences.c:181
-#, fuzzy
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
-msgstr "TarpinÄ stotis:"
+msgstr "Tarpinio serverio prievadas:"
-#: src/audacious/ui_preferences.c:185
-#, fuzzy
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
-msgstr "Vartotojas:"
+msgstr "Naudotojas:"
-#: src/audacious/ui_preferences.c:186
-#, fuzzy
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Slaptažodis:"
-#: src/audacious/ui_preferences.c:190
-#, fuzzy
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
-msgstr "MPEG garso įskiepio konfigūravimas"
+msgstr "<b>Tarpinio serverio nustatymai</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
-msgstr ""
+msgstr "Leisti naudoti tarpinį serverį"
-#: src/audacious/ui_preferences.c:194
-#, fuzzy
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
-msgstr "Autentikuotis"
+msgstr "Su tarpiniu serveriu naudoti tapatybÄs nustatymÄ
"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr ""
+msgstr "Automatinis koduotÄs nustatymas:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
+msgstr "Atsarginis kodavimas:"
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "Nominalus bitų sekos greitis:"
+msgstr "<b>Elgsena</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
-msgstr ""
+msgstr "Paleidžiant tÄsti atkÅ«rimÄ
"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Kai pasirinkta daina ištrinama, žengti į priekį"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
+msgstr "Kai atidaromas failas, išvalyti grojaraštį"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
+msgstr "Atidaryti failus laikiname grojaraštyje"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
-msgstr "<b>Aprašai</b>"
+msgstr "<b>Meta duomenys</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Kol negrojama, dainom neįkrauti meta duomenų"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ATLIKÄJAS - PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ATLIKÄJAS - ALBUMAS - PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ATLIKÄJAS - ALBUMAS - TAKELIS. PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ATLIKÄJAS [ ALBUMAS ] - TAKELIS. PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUMAS - PAVADINIMAS"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Kategorija"
-#: src/audacious/ui_preferences.c:815
-#, fuzzy
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
-msgstr "MPEG garso įskiepio konfigūravimas"
+msgstr "IššokanÄio informacijos lango nustatymai"
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr "Automatinis parinkimas"
+msgstr "<b>Albumo viršelio gavimas</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
+"Kai ieškoma albumo viršelio, Audacious ieško tam tikrų žodžių failo varde. "
+"Tu gali įraÅ¡yt paieÅ¡kos žodžius apaÄioj esanÄiame langelyje, atskiriant "
+"kableliais."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
-msgstr ""
+msgstr "Išimtis:"
-#: src/audacious/ui_preferences.c:853
-#, fuzzy
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
-msgstr "Indie"
+msgstr "Įterpti:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
-msgstr ""
+msgstr "Rekursyviai ieškoti viršelio"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
-msgstr ""
+msgstr "Paieškos gylis:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
-msgstr ""
+msgstr "Kiekvienam failui atskiras viršelis"
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Kita</b>"
+msgstr "<b>Kita</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Esamam takeliui, rodyti pažangos juostÄ
"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
-msgstr ""
+msgstr "Palaukti kol pasirodys failo iššokantis langas: "
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Pasirinkta eilutÄ"
-#: src/audacious/ui_preferences.c:1459
-#, fuzzy
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Kūrinio pavadinimo vaizdavimas</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr ""
+msgstr "Rodyti dainos numerį"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Rodyti nulius priekyje (02:00 vietoj 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Parodyti informacijÄ
apie pavadinimo formatÄ
"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Derinta eilutÄ:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
-msgstr "Derinta eilutÄ:"
+msgstr "Pasirinkta eilutÄ:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Pavadinimo formatas:"
-#: src/audacious/ui_preferences.c:1545
-#, fuzzy
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
-msgstr "MPEG garso įskiepio konfigūravimas"
+msgstr "<b>IššokanÄio lango informacija</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
-msgstr ""
+msgstr "GrojaraÅ¡Äio elementams, rodyti iššokantį langÄ
"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
+"Nurodytam grojaraÅ¡Äio elementui, įjungia iššokanÄio lango informacinį langÄ
."
+" Lange rodomas dainos pavadinimas, albumo pavadinimas, žanras, išleidimo "
+"data, takelio numeris, takelio trukmÄ bei dizainas."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "<b>Å ablonai</b>"
+msgstr "Keisti iššokanÄio lango nustatymus"
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "Buferio dydis (kb):"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Išvesties įskiepis:"
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "_Pasirinktas išvesties įskiepies:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "VertÄjai"
+msgstr "Transportas"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Įvestis"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Efektai</b>"
+msgstr "Efektai"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "Vizualizacijos tipas"
+msgstr "Vizualizacija"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "Pagrindiniai"
-#: src/audacious/ui_preferences.c:1831
-#, fuzzy
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
-msgstr "BMP nustatymai"
+msgstr "Audacious nustatymai"
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:120
+#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "Nepavyko sukurti aplanko (%s): %s"
+msgstr "Nepavyko sukurti aplanko (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr ""
+msgstr "Pozicija nerasta."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
-msgstr ""
+msgstr "Negroja jokia daina."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio CD, takelis %s"
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
msgid "Mono"
msgstr "Mono"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
msgstr "Stereo"
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanalai:"
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanalas"
+msgstr[1] "%d kanalai"
+msgstr[2] "%d kanalų"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "PadÄkos"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "VertÄjai"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Apie Audacious"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Ar tu tikrai nori uždaryti %s? Jei taip, visi pakeitimai padaryti po "
+"grojaraÅ¡Äio eksportavimo bus prarasti."
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
-msgstr "Daugiau neberodyti šio pranešimo"
+msgstr "_Daugiau neberodyti šio pranešimo"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
-msgstr "Išsaugoti grojaraštį"
+msgstr "Pervadinti grojaraštį"
-#: src/libaudgui/effects-menu.c:76
-#, fuzzy
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
-msgstr "Mikserio nustatymai:"
+msgstr "nustatymai ..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
-msgstr "Įjungtas"
+msgstr "_Įjungtas"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
-msgstr "1:2 (22 kHz)"
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "Ekvalaizeris"
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
-msgstr "Dream"
+msgstr "Preamp"
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "Takelio numeris"
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
-msgstr "Takelio trukmÄ:"
+msgstr "Takelio trukmÄ"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
msgstr "Bebob"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:80
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
-msgstr "c"
+msgstr "Chamber Music"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
msgstr "Classical"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
-msgstr "cGrunge"
+msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
msgstr "Hip-Hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
-msgstr "cPopsas"
+msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
-msgstr "cRegis"
+msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
msgstr "Trip-Hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">n/a</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
-msgstr ""
+msgstr "Meta duomenys atnaujinti sÄkmingai"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
-msgstr ""
+msgstr "Meta duomenų atnaujinti nepavyko"
-#: src/libaudgui/infowin.c:318
-#, fuzzy
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
-msgstr "CD Audio grotuvo konfigūravimas"
+msgstr "Takelio informacija"
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Formatas:</span>"
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">KokybÄ:</span>"
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Bitai per sekundÄ:</span>"
-#: src/libaudgui/infowin.c:387
-#, fuzzy
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">Pavadinimas</span>"
-#: src/libaudgui/infowin.c:399
-#, fuzzy
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"medium\"><b>Išvestis</b></span>"
+msgstr "<span size=\"small\">AtlikÄjas</span>"
-#: src/libaudgui/infowin.c:411
-#, fuzzy
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
-msgstr "<span size=\"medium\"><b>Išvestis</b></span>"
+msgstr "<span size=\"small\">Albumas</span>"
-#: src/libaudgui/infowin.c:423
-#, fuzzy
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Komentaras</span>"
-#: src/libaudgui/infowin.c:435
-#, fuzzy
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Žanras</span>"
-#: src/libaudgui/infowin.c:456
-#, fuzzy
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">Metai</span>"
-#: src/libaudgui/infowin.c:467
-#, fuzzy
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Takelio numeris</span>"
-#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#: src/libaudgui/infowin.c:548
+#, c-format
msgid "%d kb/s"
-msgstr "%d KBit/s"
+msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
-msgstr ""
+msgstr "NÄra informacijos apie %s.\n"
-#: src/libaudgui/ui_about.c:71
-#, fuzzy
-msgid "About Audacious"
-msgstr "Apie MPEG audio įskiepį"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Å okti į laikÄ
"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Credits"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "VertÄjai"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Eksportuoti grojaraštį"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Įkrauti grojaraštį"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Perrašyti %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "EilÄs redaktorius"
+
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Atverti bylas"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "PridÄti bylas"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "AtvÄrus, užverti dialogÄ
"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "PridÄjus, užverti dialogÄ
"
-#: src/libaudgui/ui_jumptotrack.c:133
-#, fuzzy
-msgid "Un_queue"
-msgstr "EilÄ"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
-msgstr "EilÄ"
+msgstr "_Ä® eilÄ"
+
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "IÅ¡ _eilÄs"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Šokti į takelį"
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "PerÅ¡okti į dainÄ
"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
msgstr "Filtruoti:"
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
-msgstr "Filtruoti:"
+msgstr "_Filtruoti:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
-msgstr ""
+msgstr "Prisiminti"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
-msgstr "/IÅ¡valyti eilÄ"
+msgstr "Išvalyt_i"
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
-msgstr "AtvÄrus, užverti dialogÄ
"
+msgstr "Užverti peršokant"
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "/Nesislinkti grojaraÅ¡Äiu"
+msgstr "GrojaraÅ¡Äio redaktorius"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
-msgstr ""
+msgstr "Elementai"
-# msgstr[0] "Įtrauktas %d elementas."
-# msgstr[1] "Įtraukti %d elementai."
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
-msgstr "Bylos vardas"
+msgstr "_Pervadinti"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "AtvÄrus, užverti dialogÄ
"
+msgstr "_Ä®jungiant grojaraÅ¡tį, užverti dialogÄ
"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
-msgstr ""
+msgstr "Atverti URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
msgstr "PridÄti URL"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Sekantys praneÅ¡imai paslÄpti.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "SÌis failas neÌra tinkamas .desktop failas"
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: neatpažintas raktas â--%sâ\n"
+msgstr "Neatpažinta âdesktopâ failo versija â%sâ"
-#: src/libeggsmclient/eggdesktopfile.c:968
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
msgid "Starting %s"
-msgstr "Į italų k.:"
+msgstr "Pradedama %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Programa nepriima dokumentų iÅ¡ komandinÄs eilutÄs"
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
msgid "Unrecognized launch option: %d"
-msgstr "%s: neatpažintas raktas â--%sâ\n"
+msgstr "Neatpažinta paleisties pasirinktis: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
-msgstr ""
+msgstr "Negaliu perduot dokumento URI į darbastalio įraÅ¡Ä
âType=Linkâ"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
-msgstr ""
+msgstr "Nepaleistinas elementas"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Uždrausti prisijungimÄ
prie sesijos valdymo"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Nurodykite failÄ
kuriame išsaugoti nustatymai"
#: src/libeggsmclient/eggsmclient.c:229
msgid "FILE"
-msgstr ""
+msgstr "FAILAS"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr ""
+msgstr "Nurodyk sesijos valdymo ID"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
-msgstr ""
+msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
msgid "Session management options:"
-msgstr ""
+msgstr "Sesijos valdymo pasirinktys:"
#: src/libeggsmclient/eggsmclient.c:254
msgid "Show session management options"
-msgstr ""
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "BMP: Nepavyko pasinaudoti displÄjum, baigiu darbÄ
."
-
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "Dream"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Įprastasis rūbas:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Takelio pavadinimas"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Classic Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Other"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternative"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumental Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumental Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electronic"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "c"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtic"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Speech"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Stereo"
-
-#, fuzzy
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "c"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "c"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "c"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "c"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "c"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "Media grotuvas, XMMS pagrindu\n"
-#~ "\n"
-#~ "© 2003-2004 BMP Development Team\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Nepavyko sukurti žurnalo bylos (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/Groti"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Grojimas</b>"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Nesislinkti grojaraÅ¡Äiu"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Baigus groti kÅ«rinį, į kitÄ
automatiškai neperšokti."
-
-#~ msgid "Enabled"
-#~ msgstr "Įjungtas"
-
-#~ msgid "Description"
-#~ msgstr "Aprašymas"
-
-#, fuzzy
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "OSS išvesties įskiepis"
-
-#, fuzzy
-#~ msgid "Output Plugin Information"
-#~ msgstr "ESD išvesties įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "_Decoder list:"
-#~ msgstr "Dekoderis"
-
-#, fuzzy
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Bendrinių įskiepių sÄ
rašas"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Vizualizacijos įskiepių sÄ
rašas:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Vizualizacija</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "_Efektų įskiepių sÄ
rašas:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>Efektai</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"xx-large\"><b>PelÄ</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"medium\"><b>Media</b></span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "_Galimi šablonai:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "_Galimi šablonai:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "PridÄti/atverti bylas"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
-
-#, fuzzy
-#~ msgid "audacious: %s"
-#~ msgstr "CD audio įskiepis"
-
-#~ msgid "Filename:"
-#~ msgstr "Bylos vardas:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Šiai bylai nerasta įvesties įskiepio"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "įvesties įskiepis: %s"
-
-#, fuzzy
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Autentikuotis"
-
-#, fuzzy
-#~ msgid "Linear Interpolation"
-#~ msgstr "Autentikuotis"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Autentikuotis"
-
-#, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "Automatinis parinkimas"
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "Media grotuvas, XMMS pagrindu\n"
-#~ "\n"
-#~ "© 2003-2004 BMP Development Team\n"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Ä®kelti apraÅ¡us iÅ¡ grojaraÅ¡Äių bei bylų"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Ä®kelti apraÅ¡us, esanÄius garso bylose"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Å okti į laikÄ
"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuÄių:sekundžių"
-
-#~ msgid "Track length:"
-#~ msgstr "Takelio trukmÄ:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Išsaugoti grojaraštį"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Klaida įraÅ¡ant grojaraÅ¡tį â%sâ: %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s jau egzistuoja. TÄsti?"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr "Nepavyko iÅ¡saugoti grojaraÅ¡Äio! Nežinomas bylos %s tipas"
-
-#~ msgid "Presets"
-#~ msgstr "Å ablonai"
-
-#~ msgid "Mouse"
-#~ msgstr "PelÄ"
-
-#~ msgid "Pause between songs"
-#~ msgstr "PauzÄ tarp dainų"
-
-#~ msgid "Pause for"
-#~ msgstr "Pristabdyti"
-
-#~ msgid "seconds"
-#~ msgstr "sekundÄms"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Keisti pabraukimus tarpais"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Keisti %20 tarpais"
-
-#, fuzzy
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "Changes volume by"
-#~ msgstr "PelÄs ratukas keiÄia garsumÄ
"
-
-#~ msgid "percent"
-#~ msgstr "procentų"
-
-#, fuzzy
-#~ msgid "Scrolls playlist by"
-#~ msgstr "PelÄs ratukas perÅ¡oka grojaraÅ¡Äiu"
-
-#~ msgid "lines"
-#~ msgstr "eiluÄių"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "Sustabdyti grojamÄ
dainÄ
"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pranks"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Kartoti"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Atsitiktine tvarka"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/Nesislinkti grojaraÅ¡Äiu"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Groti"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Pristabdyti"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Sustabdyti"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Å okti atgal"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Å okti pirmyn"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "Vizualizacijos tipas"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/AnalizÄs bÅ«das/Ugnis"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/AkiraÄio bÅ«das"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/AnalizÄs bÅ«das/Ugnis"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "s"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Atnaujinimo dažnis"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/AnalizÄs atkritimas"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Pikų atkritimas"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Išsaugoti grojaraštį"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Pasirinkite grojaraÅ¡Äio Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Pasirinkite grojaraÅ¡Äio Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Įkelti grojaraštį"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "ApraÅ¡us įkelti tik rodant bylÄ
grojaraštyje"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Išsaugoti grojaraštį"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Pasirinkite grojaraÅ¡Äio Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/IÅ¡saugoti/Ä®prastÄ
jį"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Pasirinkite grojaraÅ¡Äio Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "/Atnaujinimo dažnis"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/Nesislinkti grojaraÅ¡Äiu"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Rodinys"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/PridÄti adresÄ
interneteâ¦"
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/PridÄti bylasâ¦"
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "/Rūšiuoti pasirinktus"
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/ŽymÄti prieÅ¡ingai"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Pasirinkite grojaraÅ¡Äio Å¡riftÄ
:"
-
-#~ msgid "Select All"
-#~ msgstr "ŽymÄti visus"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Panaikinti žymÄjimÄ
"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Pašalinti visus"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Pašalinti nepasiekiamas bylas"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/IÅ¡valyti eilÄ"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Pasirinkite grojaraÅ¡Äio Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Pašalinti nepasiekiamas bylas"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Pašalinti nepasiekiamas bylas"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/PaÅ¡alinti pažymÄtus"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Pavadinimas"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal keliÄ
ir bylÄ
"
-
-# msgstr[0] "Įtrauktas %d elementas."
-# msgstr[1] "Įtraukti %d elementai."
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Bylos vardas"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal keliÄ
ir bylÄ
"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal keliÄ
ir bylÄ
"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal keliÄ
ir bylÄ
"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/PaÅ¡alinti nepažymÄtus"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal keliÄ
ir bylÄ
"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/PaÅ¡alinti pažymÄtus"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal keliÄ
ir bylÄ
"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Sumaišyti grojaraštį"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Sumaišyti grojaraštį"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Apversti grojaraštį"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "NeiÅ¡valyti grojaraÅ¡Äio"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Rūšiuoti grojaraštį"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Albumas"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "AtlikÄjas"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal bylos vardÄ
"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal bylos vardÄ
"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Data"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Takelio numeris"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/pagal datÄ
"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "BMP grojaraÅ¡Äio redaktorius"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Rūšiuoti pasirinktus"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Komentaras"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Takelio informacija"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Groti"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Ä®kelti apraÅ¡us iÅ¡ grojaraÅ¡Äių bei bylų"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "Vieta:"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Nustatymai"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Nustatymų langas"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Išeiti"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "/ŽymÄti visus"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/IÅ¡valyti eilÄ"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Å okti į grojaraÅ¡Äio pradžiÄ
"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Å okti į bylÄ
"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Perjungti eilÄs rodomumÄ
"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Įkelti"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Importuoti"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/Išsaugoti"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Å alinti"
-
-#~ msgid "Preset"
-#~ msgstr "Å ablonas"
-
-#~ msgid "Load preset"
-#~ msgstr "Ä®kelti Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Ä®kelti/AutomatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Ä®kelti/AutomatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#~ msgid "Default"
-#~ msgstr "Įprastasis"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "IÅ¡saugoti automatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "Retro"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "IÅ¡saugoti ekvalaizerio Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Įkelti/Iš bylos"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Ä®kelti Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Įkelti/Iš WinAMP EQF bylos"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Įkelti/Iš WinAMP EQF bylos"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Įmportuoti/WinAMP šablonus"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Įmportuoti/WinAMP šablonus"
-
-#~ msgid "Save preset"
-#~ msgstr "IÅ¡saugoti Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/IÅ¡saugoti/AutomatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "IÅ¡saugoti automatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/Įkelti/Iš bylos"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "IÅ¡saugoti Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Išsaugoti/WinAMP EQF bylon"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Išsaugoti/WinAMP EQF bylon"
-
-#~ msgid "Delete preset"
-#~ msgstr "PaÅ¡alinti Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Å alinti/AutomatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Nepavyko įkelti rūbo.</big></b>\n"
-#~ "\n"
-#~ "Ä®sitikinkite, jog įmanoma naudoti rÅ«bÄ
, esantį â%sâ ir kad tvarkingai "
-#~ "įdiegtas numatytasis rÅ«bas, esantis â%sâ.\n"
-
-#, fuzzy
-#~ msgid "Audacious core developers:"
-#~ msgstr "BMP nustatymai"
-
-#, fuzzy
-#~ msgid "Audacious Equalizer"
-#~ msgstr "/Sutraukti ekvalaizerį"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/Groti"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/Įkelti/Iš bylos"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#, fuzzy
-#~ msgid "mono"
-#~ msgstr "Mono"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Pasirinkite pagrindinio grotuvo lango Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "Joks"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "PERÅ OKTI Ä®: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "Nustatymai"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Visada viršuje"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Visada viršuje"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "Apie bylÄ
"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Ignoruoti ID3v2 žymas"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "Vizualizacijos tipas"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Nepavyko atverti garso įrenginio.</big></b>\n"
-#~ "\n"
-#~ "Prašome įsitikinti, kad:\n"
-#~ "\n"
-#~ "1. JÅ«s iÅ¡sirinkote tinkamÄ
išvesties įskiepį.\n"
-#~ "2. Kitos programos neblokuoja garso įrenginio.\n"
-#~ "3. Jūsų garso įrenginys sukonfigūruotas teisingai.\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/AutomatiÅ¡kai slinkti pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/Parodyti grojaraÅ¡Äio redaktorių"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Parodyti grojaraÅ¡Äio redaktorių"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Rodyti ekvalaizerį"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Visada viršuje"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Rodyti visuose darbalaukiuose"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Sutraukti grotuvÄ
"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Sutraukti grojaraÅ¡Äio redaktorių"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Sutraukti ekvalaizerį"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/Išsaugoti"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/AnalizÄs bÅ«das"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/AkiraÄio bÅ«das"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/AnalizÄs bÅ«das/Ugnis"
-
-#, fuzzy
-#~ msgid "Normal"
-#~ msgstr "Pavadinimo formatas:"
-
-#, fuzzy
-#~ msgid "Fire"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/AnalizÄs bÅ«das/GulsÄios linijos"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "eiluÄių"
-
-#, fuzzy
-#~ msgid "Bars"
-#~ msgstr "Bass"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/AkiraÄio bÅ«das/TaÅ¡kinis akiratis"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/AkiraÄio bÅ«das/Linijinis akiratis"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/AkiraÄio bÅ«das/Vientisas akiratis"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "Mono"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Pilnas (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Pusinis (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Ketvirtinis (~13fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Aštuntinis (~6fps)"
-
-#, fuzzy
-#~ msgid "Slowest"
-#~ msgstr "Showtunes"
-
-#, fuzzy
-#~ msgid "Slow"
-#~ msgstr "Slow Jam"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/PraÄjÄs laikas"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/LikÄs laikas"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Pavadinimas:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Albumas:"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "AtlikÄjas:"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Bylos vardas:"
-
-#, fuzzy
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "/Parodyti grojaraÅ¡Äio redaktorių"
-
-#~ msgid "Appearance"
-#~ msgstr "Išvaizda"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Å riftai:</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Grotuvas:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Pasirinkite pagrindinio grotuvo lango Å¡riftÄ
:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Grojaraštis:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Pasirinkite pagrindinio grotuvo lango Å¡riftÄ
:"
-
-#, fuzzy
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Stereo (jei įmanoma)"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Kita</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#, fuzzy
-#~ msgid "Show separators in playlist"
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#~ msgid "On load"
-#~ msgstr "Įkraunant"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "ApraÅ¡us įkelti, pridedant bylÄ
į grojaraštį ar jį atveriant"
-
-#~ msgid "On display"
-#~ msgstr "Rodant"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "ApraÅ¡us įkelti, pridedant bylÄ
į grojaraštį ar jį atveriant"
-
-#, fuzzy
-#~ msgid "Blue"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Į graikų k.:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Rūbas:</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "/Atnaujinimo dažnis"
-
-#~ msgid "PREAMP"
-#~ msgstr "Stiprinimas"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Naudoti derintus kursorius"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Įskiepiai"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Atsiprašome, jūsų platformoje nepalaikomos gijos.\n"
-#~ "\n"
-#~ "Jei jÅ«s naudojate libc5 pagrindo linux sistemÄ
ir įsidiegÄte Glib bei GTK"
-#~ "+ prieš\n"
-#~ "įsidiegdami LinuxThreads, jums reikia perkompiliuoti Glib ir GTK+.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "Įjungtas"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Pasirinkti BMP/XMMS sesijÄ
(Nutylimai: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Å ablonai</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Bylos ekvalaizerio Å¡ablono plÄtinys:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Aplanko ekvalaizerio šablono byla:"
-
-#, fuzzy
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "PAVADINIMAS\n"
-#~ "ATLIKÄJAS - PAVADINIMAS\n"
-#~ "ATLIKÄJAS - ALBUMAS - PAVADINIMAS\n"
-#~ "ALBUMAS - PAVADINIMAS\n"
-#~ "Derinta"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Nustatymų langas"
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/Užverti"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "AtlikÄjas"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "/Parodyti grojaraÅ¡Äio redaktorių"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "AtlikÄjas"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "GARSUMAS: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANSAS: %d%% KAIRÄJE"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANSAS: VIDURYS"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANSAS: %d%% DEÅ INÄJE"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Vieta:"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Vieta:"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Neradau CD, kurį galÄÄiau groti.</big></b>\n"
-#~ "\n"
-#~ "CD įrenginyje nÄra disko, arba įdÄtas ne AudioCD diskas.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/PridÄti CDâ¦"
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/Groti"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "AtlikÄjas"
-
-#~ msgid "File name"
-#~ msgstr "Bylos pavadinimas"
-
-#~ msgid "File path"
-#~ msgstr "Bylos kelias"
-
-#~ msgid "File extension"
-#~ msgstr "Bylos plÄtinys"
-
-#~ msgid "Track number"
-#~ msgstr "Takelio numeris"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Rodyti ââ¦â tik jei rastas elementas %n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "AtsipraÅ¡ome, taÄiau jÅ«sų GTK+ versija (%d.%d.%d) neveiks su BMP.\n"
-#~ "PraÅ¡ome naudoti GTK+ %s ar naujesnÄ versijÄ
.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "NUSTATYMŲ MENIU"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ATJUNGTI âVISADA VIRÅ UJEâ"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "Ä®JUNGTI âVISADA VIRÅ UJEâ"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "DIALOGAS âAPIE BYLÄâ"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "VIZUALIZACIJOS MENIU"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Takelių pavadinimai:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Nepavyko groti bylų.</big></b>\n"
-#~ "\n"
-#~ "Å ios bylos negalÄjo bÅ«ti pagrotos. PraÅ¡ome patikrinti, ar:\n"
-#~ "1. jos prieinamos.\n"
-#~ "2. įjungtas joms reikalingas media įskiepis."
-
-#~ msgid "Show more _details"
-#~ msgstr "Rodyti _detaliau"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Gautas SIGSEGV signalas\n"
-#~ "\n"
-#~ "Tai gali bÅ«ti BMP riktas. Jei nežinote, kodÄl tai nutiko, praÅ¡ome "
-#~ "nusiųsti laiÅ¡kÄ
adresu beepmp-devel at lists.sourceforge.net\n"
-#~ "\n"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: raktas â%sâ netinkama\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: raktas â--%sâ nepriima argumento\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: raktas â%c%sâ nepriima argumento\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: raktas â%sâ reikalauja argumento\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: neatpažintas raktas â%c%sâ\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: netinkamas raktas -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: netinkamas raktas -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: raktas reikalauja argumento -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: raktas â-W %sâ yra netinkamas\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: raktas â-W %sâ nepriima argumento\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Naudojimas: beep-media-player [raktai] [bylos] â¦\n"
-#~ "\n"
-#~ "Raktai:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Parodyti Å¡iÄ
žinutÄ ir baigti darbÄ
"
-
-#, fuzzy
-#~ msgid "Activate Audacious"
-#~ msgstr "Aktyvinti BMP"
-
-#~ msgid "Previous session ID"
-#~ msgstr "PraÄjusios sesijos ID"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Parodyti versijos numerį ir baigti darbÄ
\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "PridÄti/atverti bylas"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "PridÄjus, užverti dialogÄ
2"
-
-#~ msgid "Deselect All"
-#~ msgstr "AtžymÄti visus"
-
-#, fuzzy
-#~ msgid "Artist Popup"
-#~ msgstr "AtlikÄjas"
-
-#, fuzzy
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<i>Year</i>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "Takelio numeris"
-
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Takelio trukmÄ:"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Takelio informacija"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Vizualizacijos tipas/AnalizÄ"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "Vizualizacijos tipas/Akiratis"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "Vizualizacijos tipas/Akiratis"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Vizualizacijos tipas/Išjungta"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/AnalizÄs bÅ«das/Normali"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/AnalizÄs bÅ«das/Linijos"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/AnalizÄs bÅ«das/Stulpeliai"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/AnalizÄs režimas/Pikai"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/AnalizÄs bÅ«das/Normali"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Suvynioto lango VU būdas/Normalus"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Suvynioto lango VU būdas/Glodus"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/AnalizÄs atkiritimas/LÄÄiausias"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/AnalizÄs atkritimas/LÄtas"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/AnalizÄs atkritimas/Vidutinis"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/AnalizÄs atkritimas/Greitas"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/AnalizÄs atkritimas/GreiÄiausias"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Pikų atkritimas/LÄÄiausias"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Pikų atkritimas/LÄtas"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Pikų atkritimas/Vidutinis"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Pikų atkritimas/Greitas"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Pikų atkritimas/GreiÄiausias"
-
-#~ msgid "/Pause"
-#~ msgstr "/Pristabdyti"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Å okti į laikÄ
"
-
-#, fuzzy
-#~ msgid "/About Audacious"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#~ msgid "/Files..."
-#~ msgstr "/Bylasâ¦"
-
-#~ msgid "/Internet location..."
-#~ msgstr "/AdresÄ
interneteâ¦"
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Naujas grojaraštis"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#~ msgid "/Load"
-#~ msgstr "/Įkelti"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Ä®kelti/Å ablonÄ
"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Ä®kelti/Ä®prastÄ
jį"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Įkelti/Nulius"
-
-#~ msgid "/Save"
-#~ msgstr "/Išsaugoti"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/IÅ¡saugoti/Å ablonÄ
"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/IÅ¡saugoti/Ä®prastÄ
jį"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/IÅ¡saugoti/Ä® bylÄ
"
-
-#~ msgid "/Delete"
-#~ msgstr "/Å alinti"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Å alinti/Å ablonÄ
"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Ä®kelti automatinį Å¡ablonÄ
"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Ä®kelti ekvalaizerio Å¡ablonÄ
"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "PaÅ¡alinti automatiÅ¡kai įsikeliantį Å¡ablonÄ
"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/Pagal bylos vardÄ
"
-
-#~ msgid "/Update View"
-#~ msgstr "/Atnaujinti vaizdÄ
"
-
-#~ msgid "/Select All"
-#~ msgstr "/ŽymÄti visus"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Rūšiuoti grojaraÅ¡tį/pagal datÄ
"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal pavadinimÄ
"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal bylos vardÄ
"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal keliÄ
ir bylÄ
"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal datÄ
"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal datÄ
"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Rūšiuoti pasirinktus/Pagal pavadinimÄ
"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Kita</b>"
-
-#, fuzzy
-#~ msgid "About AudioCompress"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#~ msgid "Ok"
-#~ msgstr "Gerai"
-
-#, fuzzy
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Effect intensity:"
-#~ msgstr "_Efektų įskiepių sÄ
rašas:"
-
-#, fuzzy
-#~ msgid "Cancel"
-#~ msgstr "Dance"
-
-#, fuzzy
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "LIRC Plugin "
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "LIRC Plugin"
-#~ msgstr "Įskiepiai"
-
-#~ msgid "Username:"
-#~ msgstr "Vartotojas:"
-
-#~ msgid "Password:"
-#~ msgstr "Slaptažodis:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Commands"
-#~ msgstr "Komentaras"
-
-#, fuzzy
-#~ msgid "Command:"
-#~ msgstr "Komentaras:"
-
-#, fuzzy
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr "ApraÅ¡us įkelti tik rodant bylÄ
grojaraštyje"
-
-#, fuzzy
-#~ msgid "About "
-#~ msgstr "Apie BMP"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#~ msgid "Name:"
-#~ msgstr "Pavadinimas:"
-
-#, fuzzy
-#~ msgid " MIDI Info "
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "Length (msec):"
-#~ msgstr "TrukmÄ:"
-
-#, fuzzy
-#~ msgid "Num of Tracks:"
-#~ msgstr "Šokti į takelį"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "CD audio įskiepis"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "CD audio takelis %02u"
-
-#~ msgid "(unknown)"
-#~ msgstr "(nežinomas)"
-
-#~ msgid "Drive %d"
-#~ msgstr "Įrenginys %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nepavyko atverti įrenginio %s\n"
-#~ "Klaida: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nepavyko nuskaityti disko turinio\n"
-#~ "Gal diskų įrenginyje nÄra disko?\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "Įrenginys %s OK.\n"
-#~ "Diske yra %d takeliai"
-
-# msgstr[0] ""
-# "Įrenginys %s OK.\n"
-# "Diske yra %d takelis"
-# msgstr[2] ""
-# "Įrenginys %s OK.\n"
-# "Diske yra %d takelių"
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d duomenų takeliai)"
-
-# msgstr[0] " (%d duomenų takelis)"
-# msgstr[2] " (%d duomenų takelių)"
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Bendra trukmÄ: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "Skaitmeninio garso nuskaitymas neiÅ¡bandytas, nes diske nÄra garso "
-#~ "takelių\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Skaitmeninio garso nuskaitymo testas: OK\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Skaitmeninio garso nuskaitymo testas nepavyko: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to check directory %s\n"
-#~ "Error: %s"
-#~ msgstr ""
-#~ "Nepavyko ištrinti aplanko %s\n"
-#~ "Klaida: %s"
-
-#~ msgid "Error: %s exist, but is not a directory"
-#~ msgstr "Klaida: %s egzistuoja, taÄiau tai nÄra segtuvas"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "Aplankas %s OK."
-
-#~ msgid "Device:"
-#~ msgstr "įrenginys:"
-
-#~ msgid "_Device:"
-#~ msgstr "Į_renginys:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "_Aplankas:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Grojimo režimas:"
-
-#~ msgid "Analog"
-#~ msgstr "Analoginis"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "Skaitmeninis garso nuskaitymas"
-
-#~ msgid "No mixer"
-#~ msgstr "Jokio mikserio"
-
-#~ msgid "CDROM drive"
-#~ msgstr "CDROM įrenginys"
-
-#~ msgid "OSS mixer"
-#~ msgstr "OSS mikseris"
-
-#~ msgid "Check drive..."
-#~ msgstr "Patikrinti įrenginįâ¦"
-
-#~ msgid "Remove drive"
-#~ msgstr "Pašalinti įrenginį"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#~ msgid "Add drive"
-#~ msgstr "PridÄti įrenginį"
-
-#~ msgid "Device"
-#~ msgstr "įrenginys"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "Naudoti CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "Parsisiųsti serverių sÄ
raÅ¡Ä
"
-
-#~ msgid "Show network window"
-#~ msgstr "Parodyti tinklo langÄ
"
-
-#~ msgid "CDDB server:"
-#~ msgstr "CDDB serveris:"
-
-#~ msgid "CD Index:"
-#~ msgstr "CD rodyklÄ:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "Naudoti CD rodyklÄ"
-
-#~ msgid "CD Index server:"
-#~ msgstr "CD rodyklÄs serveris:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "Nepaisyti bendro pavadinimų formato"
-
-#~ msgid "Name format:"
-#~ msgstr "Pavadinimo formatas:"
-
-#~ msgid "CD Info"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "Į japonų k.:"
-
-#, fuzzy
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr " (blogas UTF-8)"
-
-#, fuzzy
-#~ msgid "Korean (UHC)"
-#~ msgstr "Ä® korÄjieÄių k.:"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "IÅ¡rinkite aplankÄ
, kuriame saugosite MPEG srautus:"
-
-#, fuzzy
-#~ msgid "Resolution"
-#~ msgstr "Raiška:"
-
-#, fuzzy
-#~ msgid "16 bps"
-#~ msgstr "16 bitų"
-
-#~ msgid "Buffering:"
-#~ msgstr "Buferiavimas:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "Buferio dydis (kb):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "Išankstinis buferiavimas (procentais):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "IÅ¡saugoti srautÄ
diske:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "IÅ¡saugoti srautÄ
diske"
-
-#~ msgid "Path:"
-#~ msgstr "Kelias:"
-
-#~ msgid "Browse"
-#~ msgstr "naršyti"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Enable Icecast Metadata UDP Channel"
-#~ msgstr "Aktyvuoti Icecast metainformacijos UDP kanalÄ
"
-
-#~ msgid "Streaming"
-#~ msgstr "Srautai"
-
-#, fuzzy
-#~ msgid "About Flac Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "Channels: %d"
-#~ msgstr "Kanalai:"
-
-# msgstr[0] " (%d duomenų takelis)"
-# msgstr[2] " (%d duomenų takelių)"
-#, fuzzy
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "\n"
-#~ "Bendra trukmÄ: %d:%d\n"
-
-#, fuzzy
-#~ msgid "Filesize: %ld B"
-#~ msgstr "Bylos dydis:"
-
-#, fuzzy
-#~ msgid "Tag:"
-#~ msgstr "Tango"
-
-#~ msgid "Comment:"
-#~ msgstr "Komentaras:"
-
-#~ msgid "Date:"
-#~ msgstr "Data:"
-
-#~ msgid "Track number:"
-#~ msgstr "Takelio numeris:"
-
-#~ msgid "Genre:"
-#~ msgstr "Žanras:"
-
-#, fuzzy
-#~ msgid "Remove Tag"
-#~ msgstr "/Pašalinti visus"
-
-#, fuzzy
-#~ msgid "FLAC Info:"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "File Info - %s"
-#~ msgstr "Apie bylÄ
"
-
-# msgstr[0] "%lu Baitas"
-# msgstr[1] "%lu Baitai"
-#~ msgid "Error"
-#~ msgstr "Klaida"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "IEÅ KAU %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Nepavyko rasti hosto %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "JUNGIUOSI PRIE %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Nepavyko prisijungti prie hosto %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "PRISIJUNGIAU. LAUKIU ATSAKYMO"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Nepavyko prisijungti prie hosto %s\n"
-#~ "Serveris praneÅ¡Ä: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "BUFERIUOJU: %dKB/%dKB"
-
-#, fuzzy
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "CD audio įskiepis"
-
-#, fuzzy
-#~ msgid "ModPlug Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bitų"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bitai"
-
-#, fuzzy
-#~ msgid "Resampling"
-#~ msgstr "Srautai"
-
-#, fuzzy
-#~ msgid "Fast Playlist Info"
-#~ msgstr "Įkrauti grojaraštį"
-
-#, fuzzy
-#~ msgid "Reverb"
-#~ msgstr "Serveris"
-
-#, fuzzy
-#~ msgid "Depth"
-#~ msgstr "Duet"
-
-#, fuzzy
-#~ msgid "Amount"
-#~ msgstr "Apie BMP"
-
-#, fuzzy
-#~ msgid "Range"
-#~ msgstr "Rave"
-
-#, fuzzy
-#~ msgid "MOD Info"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "Samples"
-#~ msgstr "c"
-
-#, fuzzy
-#~ msgid "Instruments"
-#~ msgstr "Instrumental"
-
-#, fuzzy
-#~ msgid "About Modplug"
-#~ msgstr "Apie ESounD įskiepį"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#~ msgid "Resolution:"
-#~ msgstr "Raiška:"
-
-#~ msgid "Channels:"
-#~ msgstr "Kanalai:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Stereo (jei įmanoma)"
-
-#~ msgid "Down sample:"
-#~ msgstr "KokybÄs santykis:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 kHz)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 kHz)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 kHz)"
-
-#~ msgid "Decoder"
-#~ msgstr "Dekoderis"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "ID3 žymos:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "Pavadinimo formatas:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Jungtinis stereo"
-
-#~ msgid "Dual channel"
-#~ msgstr "Du kanalai"
-
-#~ msgid "Single channel"
-#~ msgstr "Vienas kanalas"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d KBit/s"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Hz"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 ms"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "Ne"
-
-#~ msgid "Yes"
-#~ msgstr "Taip"
-
-#~ msgid " MPEG Info "
-#~ msgstr "MPEG informacija"
-
-#~ msgid "MPEG Level:"
-#~ msgstr "MPEG lygis:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Nominalus bitų sekos greitis:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Semplų dažnis:"
-
-#~ msgid "File size:"
-#~ msgstr "Bylos dydis:"
-
-#, fuzzy
-#~ msgid "Mode:"
-#~ msgstr "Dekoderis:"
-
-#~ msgid "Error Protection:"
-#~ msgstr "Apsauga nuo klaidų:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Apsaugota autorinÄmis teisÄmis:"
-
-#~ msgid "Original:"
-#~ msgstr "Originalas:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "PabrÄžimas:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr " ID3 žyma"
-
-#~ msgid "Year:"
-#~ msgstr "Metai:"
-
-#~ msgid "N/A"
-#~ msgstr "Neprieinama"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu Baitų"
-
-#, fuzzy
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Nepavyko prisijungti prie hosto %s"
-
-#, fuzzy
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "BUFERIUOJU: %dKB/%dKB"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "MPEG audio įskiepis"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "22000 Hz"
-#~ msgstr "1:2 (22 kHz)"
-
-#, fuzzy
-#~ msgid "44100 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "Sample Width"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "įvesties įskiepis: %s"
-
-#, fuzzy
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Nepavyko rasti hosto %s"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr "IÅ¡rinkite aplankÄ
, kuriame saugosite Ogg Vorbis srautus:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "Ogg Vorbis garso įskiepio kofigūravimas"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Ogg Vorbis žymos:"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Įvyko klaida:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "Klaida!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Nepavyko pakeisti (atverti) žymos"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Nepavyko pakeisti (užverti) žymos"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Nepavyko pakeisti žymos"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Ogg Vorbis žyma"
-
-#~ msgid "Description:"
-#~ msgstr "Aprašymas:"
-
-#~ msgid "Version:"
-#~ msgstr "Versija:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "ISRC numeris:"
-
-#~ msgid "Organization:"
-#~ msgstr "Organizacija:"
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr " Ogg Vorbis informacija"
-
-#~ msgid "Length:"
-#~ msgstr "TrukmÄ:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d KBit/s (nominaliai)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Hz"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d Baitų"
-
-# msgstr[0] "%d Baitas"
-# msgstr[1] "%d Baitai"
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Ogg Vorbis audio įskiepis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "Apie Ogg Vorbis audio įskiepį"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Ogg Vorbis įskiepio autoriai - Xiph.org Foundation\n"
-#~ "\n"
-#~ "Pradinis kodas:\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Papildymai:nChris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Aplankykite Xiph.org Foundation adresu http://www.xiph.org/\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA 02110-1301 USA"
-#~ msgstr ""
-#~ "XMMS ESounD įskiepis\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "WAV audio įskiepis"
-
-#, fuzzy
-#~ msgid "About %s"
-#~ msgstr "Apie BMP"
-
-#, fuzzy
-#~ msgid " Close "
-#~ msgstr "/Užverti"
-
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS išvesties įskiepis"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "Apie OSS įskiepį"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS OSS tvarkyklÄ\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "Įprastasis (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "OSS tvarkyklÄs konfigÅ«ravimas"
-
-#~ msgid "Audio device:"
-#~ msgstr "Garso įrenginys:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "Naudoti alternatyvų įrenginį:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "Mikserio įrenginys:"
-
-#~ msgid "Devices"
-#~ msgstr "įrenginiai"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "Mikserio nustatymai:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Garsas reguliuoja pagrindinį, o ne PCM kanalÄ
"
-
-#~ msgid "Mixer"
-#~ msgstr "Mikseris"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "Apie ALSAįskiepį"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "XMMS ALSA tvarkyklÄ\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.\n"
-#~ "Autorius: Matthieu Sozeau (mattam at altern.org)"
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "ALSA %s išvesties įskiepis"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "Nežinoma garso plokÅ¡tÄ"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "Įprastasis PCM įrenginys (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "ALSA tvarkyklÄs konfigÅ«ravimas"
-
-#~ msgid "Mixer:"
-#~ msgstr "Mikseris:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "Mikserio korta:"
-
-#~ msgid "Device settings"
-#~ msgstr "Įrenginio nustatymai:"
-
-#, fuzzy
-#~ msgid "Soundcard:"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "Periodas (ms):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid "aRts Driver configuration"
-#~ msgstr "OSS tvarkyklÄs konfigÅ«ravimas"
-
-#, fuzzy
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "IÅ¡rinkite aplankÄ
, kuriame saugosite MPEG srautus:"
-
-#, fuzzy
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "OSS tvarkyklÄs konfigÅ«ravimas"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS ESounD įskiepis\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Host:"
-#~ msgstr "Hostas:"
-
-#~ msgid "Use remote host"
-#~ msgstr "Naudoti nutolusį hostÄ
"
-
-#~ msgid "Volume controls OSS mixer"
-#~ msgstr "Garsas reguliuoja OSS mikserį"
-
-#~ msgid "Server"
-#~ msgstr "Serveris"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "eSound išvesties įskiepis"
-
-#, fuzzy
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "eSound išvesties įskiepis"
-
-#, fuzzy
-#~ msgid "About the Sun Driver"
-#~ msgstr "Apie OSS įskiepį"
-
-#, fuzzy
-#~ msgid "Audio control device:"
-#~ msgstr "Garso įrenginys:"
-
-#, fuzzy
-#~ msgid "Volume controls device:"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "Sun driver configuration"
-#~ msgstr "OSS tvarkyklÄs konfigÅ«ravimas"
-
-#~ msgid "/Toggle Decorations"
-#~ msgstr "/Perjungti dekoracijų vaizdavimÄ
"
-
-#~ msgid "Blur scope"
-#~ msgstr "Akiratis"
-
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Akiratis: spalvos pasirinkimas"
-
-#~ msgid "Options:"
-#~ msgstr "Nustatymai:"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** DVIGUBAS DYDIS PAÅ ALINTAS IÅ PROGRAMOS **"
-
-#, fuzzy
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>Grojimas</b>"
-
-#, fuzzy
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "Song Change Configuration"
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#, fuzzy
-#~ msgid "Song Metadata"
-#~ msgstr "Sonata"
-
-#, fuzzy
-#~ msgid "Port"
-#~ msgstr "Portas:"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "Bylos pavadinimas"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "Takelio pavadinimas"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "ALSA %s išvesties įskiepis"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr "Konvertuoti ID3 aprašus į UTF-8"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "ID3 aprašų koduotÄ:"
-
-#, fuzzy
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "Konvertuoti ID3 aprašus į UTF-8"
-
-#, fuzzy
-#~ msgid "Vorbis encoding:"
-#~ msgstr "ID3 aprašų koduotÄ:"
-
-#, fuzzy
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>Vizualizacija</b>"
-
-#, fuzzy
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "Kanalai:"
-
-#, fuzzy
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "WMA Info"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>_Å riftai:</b>"
-
-#, fuzzy
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>Grojimas</b>"
-
-#, fuzzy
-#~ msgid "Tags"
-#~ msgstr "Tango"
-
-#~ msgid "Artem Baguinski"
-#~ msgstr "Artem Baguinski"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Andrei Badea"
-#~ msgstr "Andrei Badea"
-
-#~ msgid "Peter Behroozi"
-#~ msgstr "Peter Behroozi"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Liviu Danicel"
-#~ msgstr "Liviu Danicel"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastian Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev"
-
-#~ msgid "Jolan Luff"
-#~ msgstr "Jolan Luff"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michael Marineau"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Julien Portalier"
-#~ msgstr "Julien Portalier"
-
-#~ msgid "Andrew Ruder"
-#~ msgstr "Andrew Ruder"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Philipi Pinto"
-#~ msgstr "Philipi Pinto"
-
-#~ msgid "Thierry Vignaud"
-#~ msgstr "Thierry Vignaud"
-
-#~ msgid "Jan Narovec"
-#~ msgstr "Jan Narovec"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "Kouzinopoulos Haris"
-#~ msgstr "Kouzinopoulos Haris"
-
-#~ msgid "Laszlo Dvornik"
-#~ msgstr "Laszlo Dvornik"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Arangel Angov"
-#~ msgstr "Arangel Angov"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Pavel Kanzelsberger"
-#~ msgstr "Pavel Kanzelsberger"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Įskiepiai</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "_Media įskiepių sÄ
rašas"
-
-#, fuzzy
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Pakeitimas iÅ¡saugotas BMP nustatymų duomenų bazÄje, taÄiau jis įsigalios "
-#~ "tik pradÄjus groti kitÄ
dainÄ
!\n"
-#~ "\n"
-#~ "Jei norite, galite sustabdyti ir perleisti esamÄ
dainÄ
, kad pakeitimai "
-#~ "įsigaliotų nedelsiant."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Išvaizda</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>PelÄ</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Grojaraštis</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Ekvalaizeris</b></span>"
-
-#~ msgid "Use proxy"
-#~ msgstr "Naudoti tarpinÄ stotį"
-
-#~ msgid "Frames:"
-#~ msgstr "Kadrai:"
-
-#~ msgid ""
-#~ "Variable,\n"
-#~ "avg. bitrate: %d KBit/s"
-#~ msgstr ""
-#~ "Kintamas,\n"
-#~ "vid. greitis:·%d·KBit/s"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to write to file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nepavyksta įrašyti bylos: %s"
-
-#~ msgid "Couldn't write tag!"
-#~ msgstr "Nepavyko įrašyti žymos!"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to open file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nepavyksta atverti bylos: %s"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to truncate file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nepavyksta apkapoti bylos: %s"
-
-#~ msgid "Couldn't remove tag!"
-#~ msgstr "Nepavyko pašalinti žymos!"
-
-#~ msgid "No tag to remove!"
-#~ msgstr "Šalinama žyma neegzistuoja!"
-
-#~ msgid "Copy album tags"
-#~ msgstr "Kopijuoti albumo duomenis"
-
-#~ msgid "Paste album tags"
-#~ msgstr "Ä®dÄti albumo duomenis"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin"
-#~ msgstr "MPEG audio įskiepis"
-
-#~ msgid "Content"
-#~ msgstr "Turinys"
-
-#~ msgid "Extension"
-#~ msgstr "PlÄtinys"
-
-#~ msgid "Extension and content"
-#~ msgstr "Turinys ir plÄtinys"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2000-2004 Peter Eisenlohr <peter at eisenlohr.org>\n"
-#~ "\n"
-#~ "based on the original OSS Output Plugin Copyright (C) 1998-2000\n"
-#~ "Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front "
-#~ "Technologies\n"
-#~ "\n"
-#~ "This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS ESounD įskiepis\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#, fuzzy
-#~ msgid " Enable"
-#~ msgstr "Įjungtas"
-
-#, fuzzy
-#~ msgid "About XMMS Crossfade Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Advanced XF"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid "Advanced options"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid "Crossfade"
-#~ msgstr "c"
-
-#, fuzzy
-#~ msgid "Crossfader"
-#~ msgstr "c"
-
-#, fuzzy
-#~ msgid "Enable volume control"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "Limit OP buffer usage (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#, fuzzy
-#~ msgid "Mixing buffer size (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#, fuzzy
-#~ msgid "Position:"
-#~ msgstr "Aprašymas:"
-
-#, fuzzy
-#~ msgid "Quality:"
-#~ msgstr "/_Išeiti"
-
-#, fuzzy
-#~ msgid "Rate:"
-#~ msgstr "Data:"
-
-#, fuzzy
-#~ msgid "Reopen"
-#~ msgstr "/Kartoti"
-
-#, fuzzy
-#~ msgid "Use plugin"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Volume control options"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "Volume normalizer"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "same file"
-#~ msgstr "/IÅ¡saugoti/Ä® bylÄ
"
-
-#, fuzzy
-#~ msgid "LibVisual Audacious Plugin"
-#~ msgstr "_Vizualizacijos įskiepių sÄ
rašas:"
-
-#, fuzzy
-#~ msgid "Visualization Plugins"
-#~ msgstr "_Vizualizacijos įskiepių sÄ
rašas:"
-
-#, fuzzy
-#~ msgid "All plugins"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid " (enabled)"
-#~ msgstr "Įjungtas"
-
-#, fuzzy
-#~ msgid "Version: "
-#~ msgstr "Versija:"
-
-#, fuzzy
-#~ msgid " error"
-#~ msgstr "Terror"
-
-#, fuzzy
-#~ msgid "Cannot initialize SDL!\n"
-#~ msgstr "Nepavyko inicializuoti gnome-vfs.\n"
-
-#~ msgid "DISABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ATJUNGTI âVISADA VIRÅ UJEâ (N/A)"
-
-#~ msgid "ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "Ä®JUNGTI âVISADA VIRÅ UJEâ (N/A)"
-
-#, fuzzy
-#~ msgid "Downsample:"
-#~ msgstr "KokybÄs santykis:"
-
-#~ msgid "%s - BMP"
-#~ msgstr "%s - BMP"
-
-#~ msgid "bmp: %s"
-#~ msgstr "bmp: %s"
-
-#, fuzzy
-#~ msgid "/Play Directory"
-#~ msgstr "_Aplankas:"
-
-#~ msgid "Add Folders"
-#~ msgstr "PridÄti aplankus"
-
-#, fuzzy
-#~ msgid "/Add Folders..."
-#~ msgstr "/PridÄti bylasâ¦"
-
-#~ msgid "3DNow! optimized decoder"
-#~ msgstr "3DNow! optimizuotas dekoderis"
-
-#~ msgid "MMX optimized decoder"
-#~ msgstr "MMX optimizuotas dekoderis"
-
-#~ msgid "FPU decoder"
-#~ msgstr "FPU dekoderis"
-
-#~ msgid ""
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Plugin by The XMMS team"
-#~ msgstr ""
-#~ "mpg123 dekodavimo variklio autorius Michael Hipp <mh at mpg123.de>\n"
-#~ "Ä®skiepį paraÅ¡Ä XMMS komanda"
-
-#~ msgid "Advanced settings:"
-#~ msgstr "Papildomi nustatymai:"
-
-#, fuzzy
-#~ msgid "Thread buffer time (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#~ msgid "Mmap mode"
-#~ msgstr "Mmap režimas"
-
-#~ msgid "Homepage and Graphics:"
-#~ msgstr "Interneto svetainÄ ir grafika:"
-
-#~ msgid "Takeshi Aihana"
-#~ msgstr "Takeshi Aihana"
-
-#~ msgid "BMP Equalizer"
-#~ msgstr "BMP ekvalaizeris"
-
-#~ msgid "Beep Media Player"
-#~ msgstr "Multimedijos grotuvas âBeepâ"
-
-#~ msgid "/About BMP"
-#~ msgstr "/Apie BMP"
-
-#~ msgid "BMP"
-#~ msgstr "BMP"
-
-#~ msgid "Add Internet Address"
-#~ msgstr "PridÄti adresÄ
interneteâ¦"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "Vlad Gerasimov"
-#~ msgstr "Vlad Gerasimov"
-
-#~ msgid "/By extension"
-#~ msgstr "/Pagal plÄtinį"
-
-#~ msgid "Add Folders - BMP"
-#~ msgstr "PridÄti aplankus â BMP"
-
-#~ msgid "/Sort by Title"
-#~ msgstr "?Rūšiuoti pagal pavadinimÄ
"
+msgstr "Rodyti sesijos valdymo pasirinktis"
-#~ msgid "/Sort by Filename"
-#~ msgstr "/Rūšiuoti pagal bylos vardÄ
"
-#~ msgid "/Sort by Date"
-#~ msgstr "/Rūšiuoti pagal datÄ
"
diff --git a/po/lv.po b/po/lv.po
index 4432b81..e5717ed 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: audacious2_25062009\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-03-03 01:48+0200\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
+"PO-Revision-Date: 2011-10-30 16:21+0200\n"
"Last-Translator: Einars Sprugis <einars8 at gmail.com>\n"
"Language-Team: Latvian <kde-i18n-doc at kde.org>\n"
"Language: lv\n"
@@ -18,6 +18,18 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "MeklÄ ..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Atrasts %d fails"
+msgstr[1] "Atrasti %d faili"
+msgstr[2] "Atrasti %d faili"
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (nederīgs UTF-8)"
@@ -98,112 +110,111 @@ msgstr "IgauÅu:"
msgid "Finnish:"
msgstr "Somu:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "FranÄu:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "VÄcu:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Gruzīnu:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "GrieÄ·u:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hindu:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "UngÄru:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ItÄļu:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "JapÄÅu:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Korejiešu:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:258
msgid "Latvian:"
-msgstr "HorvÄtu:"
+msgstr "Latviešu:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Lietuviešu:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Maķedoniešu:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Poļu:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
msgid "Portuguese:"
msgstr "PortugÄļu:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "RumÄÅu:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Krievu:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Serbu (latÄ«Åu):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Serbu (kirilica):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "VienkÄrÅ¡otÄ Ä·Ä«nieÅ¡u:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "SlovÄku:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "SpÄÅu:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Zviedru:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "TradiciionÄlÄ Ä·Ä«nieÅ¡u:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Turku:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "UkraiÅu:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Velsiešu:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
msgid "Temporary Playlist"
msgstr "Pagaidu repertuÄrs"
@@ -212,79 +223,63 @@ msgstr "Pagaidu repertuÄrs"
msgid "Error importing Winamp EQF file '%s'"
msgstr "Kļūda importÄjot Winamp EQF failu '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "MeklÄ ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Atrasts %d fails"
-msgstr[1] "Atrasti %d faili"
-msgstr[2] "Atrasti %d faili"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "RepertuÄrÄ izlaist atpakaļgaitÄ"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "SÄkt atskaÅot paÅ¡reizÄjo repertuÄru"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "NopauzÄt paÅ¡reizÄjo dziesmu"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "ApturÄt paÅ¡reizÄjo dziesmu"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "NopauzÄt, ja paÅ¡laik atskaÅo, citÄdi atskaÅot"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "RepertuÄrÄ izlaist uz priekÅ¡u"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "ParÄdÄ«t 'PÄriet uz failu' dialogu"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
msgid "Add files to the playlist"
msgstr "Pievieno failus repertuÄram"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Pievienot jaunus failus pagaidu repertuÄram"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "RÄdÄ«t galveno logu"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "RÄdÄ«t visus atvÄrtos Audacious logus"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr "ParÄdÄ«t versiju"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr "DrukÄt atkļūdoÅ¡anas ziÅojumus"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "FAILS..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- atskaÅot multivides failus"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -293,267 +288,237 @@ msgstr ""
"%s: %s\n"
"MÄÄ£iniet `%s --help', lai iegÅ«tu vairÄk informÄcijas.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
"data loss. If Audacious is not running, you can safely ignore this "
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
+"Audacious, šķiet, jau ir palaista, bet neatbild. Varat palaist vÄl vienu "
+"programmas instanci, tomÄr tas var izraisÄ«t datu zudumus. Ja Audacious nav "
+"palaista, Å¡o brÄ«dinÄjumu droÅ¡i varat izlaist. Nospiediet 'Labi', lai "
+"startÄtu Audacious, vai 'Atcelt', lai to aizvÄrtu."
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr "Netika atrasts dekodÄtÄjs priekÅ¡ %s."
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr "BuferizÄcija ..."
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
msgid "Untitled Playlist"
msgstr "Nenosaukts repertuÄrs"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "SkaÅa"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "NormalizÄÅ¡ana"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr "Tīkls"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "RepertuÄrs"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "SpraudÅi"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "IzpildÄ«tÄjs"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Albums"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Nosaukums"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "CeliÅa numurs"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Žanrs"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Faila nosaukums"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Faila ceļš"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Datums"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Gads"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "KomentÄrs"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Kodeks"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "KvalitÄte"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Neviens"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "JapÄÅu"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "TaivÄnu"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "Ķīniešu"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Korejiešu"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Krievu"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "GrieÄ·u"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "Ebreju"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Turku"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "ArÄbu"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
msgid "Polish"
msgstr "Poļu"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr "Baltu"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "UniverÄls"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitu dziļums</b>"
+msgid "Single track mode"
+msgstr "Viena celiÅa režīms"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Izvades bitu dziļums:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Visas straumes tiks pÄrveidotas uz Å¡o bitu dziļumu.\n"
-"Tas bÅ«tu jÄuzstÄda uz lielÄko bitu dziļuma vÄrtÄ«bu,\n"
-"ko atbalsta jÅ«su skaÅas karte vai izvades spraudnis."
+msgid "Album mode"
+msgstr "Albuma režīms"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Skaļuma kontrole</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Izvades iestatījumi</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Lietot programmatūras skaļuma kontroli"
+msgid "Bit depth:"
+msgstr "Bitu dziļums:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Lietot programmatÅ«ras skaļuma kontroli. Tas var noderÄt situÄcijÄs, kad jÅ«su "
-"skaÅas sistÄma neatbalsta atskaÅoÅ¡anas skaļuma kontroli."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Bufera izmÄrs:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Lietot programmatūras skaļuma kontroli (nav ieteicams)"
#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- atskaÅot multivides failus"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
-msgstr "<b>NormalizÄÅ¡anas režīms</b>"
+msgstr "<b>NormalizÄÅ¡ana</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "IeslÄgt normalizÄÅ¡anu"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "NovÄrst apgrieÅ¡anu (ieteicams)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>RegulÄt lÄ«meÅus</b>"
+
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadati</b>"
+msgid "Amplify all files:"
+msgstr "PastiprinÄt visus failus:"
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "SkatÄ«t celiÅa detaļas"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albums"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Peles ritenis</b>"
+msgid "Amplify untagged files:"
+msgstr "PastiprinÄt netagotos failus:"
#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>UzlecoÅ¡Ä informÄcija</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "IeslÄgt maksimumu info apgrieÅ¡anas novÄrÅ¡anu"
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr "Starpniekservera nosaukums:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Starpniekservera ports:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Starpniekservera lietotÄjvÄrds:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Starpniekservera parole:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Starpniekservera konfigurÄcija</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "IeslÄgt starpniekservera izmantoÅ¡anu"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Savienojoties ar starpniekserveri, izmantot autentificÄÅ¡anos"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -561,15 +526,15 @@ msgstr ""
"<span size=\"small\">Nomainot Å¡os iestatÄ«jumus, vajadzÄs pÄrstartÄt "
"Audacious.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "AutomÄtiska rakstzÄ«mju kodÄjuma noteikÅ¡ana priekÅ¡:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "AtkÄpÅ¡anÄs rakstzÄ«mju kodÄjumi:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -581,43 +546,43 @@ msgstr ""
"atslÄgta, Å¡ajÄ sarakstÄ esoÅ¡ie kodÄjumi tiks uztverti kÄ kandidÄti metadatu "
"kodÄjumam, un tiks mÄÄ£inÄta pÄrveidoÅ¡ana no Å¡iem kodÄjumiem uz UTF-8."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
msgstr "<b>IzturÄÅ¡anÄs</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "TurpinÄt atskaÅoÅ¡anu pÄc programmas palaiÅ¡anas"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr "Iet uz priekÅ¡u, ja paÅ¡reizÄjÄ dziesma tiek dzÄsta"
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
msgstr "Atverot failus, notÄ«rÄ«t repertuÄru"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
msgstr "AtvÄrt failus pagaidu repertuÄrÄ"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metadati</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Kategorija"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "UzlecoÅ¡Äs informÄcijas iestatÄ«jumi"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>VÄka attÄla meklÄÅ¡ana</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -627,99 +592,99 @@ msgstr ""
"nosaukumos. JÅ«s varat norÄdÄ«t Å¡os vÄrdus lejÄ esoÅ¡ajos sarakstos, atdalot "
"atsevišķus vÄrdus ar komatiem."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "IzslÄgt:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Iekļaut:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "MeklÄt vÄku rekursÄ«vi"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "MeklÄÅ¡anas dziļums: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Izmantot vienu vÄku katram failam"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>DažÄdi</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "RÄdÄ«t progresa indikatoru paÅ¡reizÄjajam celiÅam"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "Aizture pirms faila informÄcijas parÄdīšanÄs:"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Dziesmu attÄlojums</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr "RÄdÄ«t dziesmu numurus"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr "RÄdÄ«t ievadoÅ¡Äs nulles (02:00 nevis 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "RÄdÄ«t informÄciju par nosaukuma formÄtu"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "NOSAUKUMS"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "IZPILDĪTÄJS - NOSAUKUMS"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "IZPILDĪTÄJS - ALBUMS - NOSAUKUMS"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "IZPILDĪTÄJS - ALBUMS - CELIÅ
Å . NOSAUKUMS"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "IZPILDĪTÄJS [ ALBUMS ] - CELIÅ
Å . NOSAUKUMS"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ALBUMS - NOSAUKUMS"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "PielÄgots"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "PielÄgota virkne:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Nosaukuma formÄts:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>UzlecoÅ¡Ä informÄcija</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "RÄdÄ«t uzlecoÅ¡o informÄciju repertuÄra ierakstiem"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -729,52 +694,44 @@ msgstr ""
"repertuÄra ierakstam. Logs rÄda dziesmas nosaukumu, albuma nosaukumu, žanru, "
"publicÄÅ¡anas gadu, celiÅa numuru, celiÅa garumu un albuma vÄka attÄlu."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "RediÄ£Ät iestatÄ«jumus uzlecoÅ¡ajai informÄcijai"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>SkaÅas sistÄma</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Bufera izmÄrs:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "PaÅ¡reizÄjais izvades spraudnis:"
+#: src/audacious/ui_preferences.c:1497
+msgid "Output plugin:"
+msgstr "Izvades spraudnis:"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Transport"
msgstr "Transports"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr "Ievade"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Effect"
msgstr "Efekti"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "VizualizÄÅ¡ana"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr "VispÄrÄ«gi"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious iestatījumi"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "NeizdevÄs izveidot mapi (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr "Pozīcija nav atrasta."
@@ -792,10 +749,13 @@ msgstr "Stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanÄls"
+msgstr[1] "%d kanÄli"
+msgstr[2] "%d kanÄlu"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -804,14 +764,13 @@ msgstr ""
"Vai tieÅ¡Äm vÄlaties aizvÄrt %s? Ja to izdarÄ«siet, visas izmaiÅas, kas "
"veiktas kopÅ¡ repertuÄra eksportÄÅ¡anas, tiks zaudÄtas."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
msgid "_Don't show this message again"
msgstr "_Vairs nerÄdÄ«t Å¡o ziÅojumu"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:124
msgid "Rename Playlist"
-msgstr "SaglabÄt repertuÄru"
+msgstr "PÄrdÄvÄt repertuÄru"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
@@ -869,11 +828,11 @@ msgstr "Equalizer"
msgid "Preamp"
msgstr "PriekÅ¡pastiprinÄjums"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "CeliÅa numurs"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "CeliÅa garums"
@@ -882,18 +841,16 @@ msgid "Acid Jazz"
msgstr "Acid Jazz"
#: src/libaudgui/infowin.c:78
-#, fuzzy
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
#: src/libaudgui/infowin.c:79
msgid "Ambient"
msgstr "Ambient"
#: src/libaudgui/infowin.c:80
-#, fuzzy
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
#: src/libaudgui/infowin.c:81
msgid "Bluegrass"
@@ -956,9 +913,8 @@ msgid "Heavy Metal"
msgstr "Heavy Metal"
#: src/libaudgui/infowin.c:96
-#, fuzzy
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
#: src/libaudgui/infowin.c:97
msgid "House"
@@ -974,7 +930,7 @@ msgstr "Jungle"
#: src/libaudgui/infowin.c:100
msgid "Metal"
-msgstr "MetÄls"
+msgstr "Metal"
#: src/libaudgui/infowin.c:101
msgid "New Age"
@@ -1009,13 +965,12 @@ msgid "Rock"
msgstr "Roks"
#: src/libaudgui/infowin.c:109
-#, fuzzy
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
#: src/libaudgui/infowin.c:110
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
#: src/libaudgui/infowin.c:111
msgid "Ska"
@@ -1034,9 +989,8 @@ msgid "Techno"
msgstr "Tehno"
#: src/libaudgui/infowin.c:115
-#, fuzzy
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1105,6 +1059,27 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr "InformÄcija priekÅ¡ %s nav pieejama.\n"
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "PÄriet uz laiku"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "EksportÄt repertuÄru"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "ImportÄt repertuÄru"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr "PÄrrakstÄ«t %s?"
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Par Audacious"
@@ -1165,19 +1140,19 @@ msgstr "Notī_rīt"
msgid "Close on Jump"
msgstr "AizvÄrt pÄrejot"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "RepertuÄru pÄrvaldnieks"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Ieraksti"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "PÄ_rdÄvÄt"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
msgid "_Close dialog on activating playlist"
msgstr "_AizvÄrt dialoglogu, aktivizÄjot repertuÄru"
@@ -1189,6 +1164,14 @@ msgstr "AtvÄrt URL"
msgid "Add URL"
msgstr "Pievienot URL"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(TurpmÄkie ziÅojumi tika paslÄpti.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Fails nav atļauts '.desktop' fails"
@@ -1198,25 +1181,25 @@ msgstr "Fails nav atļauts '.desktop' fails"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Neatpazīta darbvirsmas faila versija '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "StartÄ %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "Programma nepieÅem failus no komandrindas"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Neatpazīta palaišanas opcija: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "Nevar padot dokumenta URI uz 'Tips=Saite' darbvirsmas ierakstu"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "Nav palaižams elements"
@@ -1241,15 +1224,56 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Sesiju pÄrvaldīšanas opcijas"
+msgstr "Sesiju pÄrvaldīšanas opcijas:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
msgstr "ParÄdÄ«t sesiju pÄrvaldīšanas opcijas"
+#~ msgid "Replay Gain"
+#~ msgstr "NormalizÄÅ¡ana"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bitu dziļums</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Visas straumes tiks pÄrveidotas uz Å¡o bitu dziļumu.\n"
+#~ "Tas bÅ«tu jÄuzstÄda uz lielÄko bitu dziļuma vÄrtÄ«bu,\n"
+#~ "ko atbalsta jÅ«su skaÅas karte vai izvades spraudnis."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Skaļuma kontrole</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Lietot programmatÅ«ras skaļuma kontroli. Tas var noderÄt situÄcijÄs, kad "
+#~ "jÅ«su skaÅas sistÄma neatbalsta atskaÅoÅ¡anas skaļuma kontroli."
+
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Režīms</b>"
+
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>ApgrieÅ¡anas novÄrÅ¡ana</b>"
+
+#~ msgid "Enable clipping prevention"
+#~ msgstr "IeslÄgt apgrieÅ¡anas novÄrÅ¡anu"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>SkaÅas sistÄma</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "PaÅ¡reizÄjais izvades spraudnis:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "RÄdÄ«t visus atvÄrtos Audacious logus"
+
#~ msgid ""
#~ "Running multiple instances of Audacious can lead to corrupted "
#~ "configuration files. If Audacious is not already running, or if you want "
@@ -1827,9 +1851,6 @@ msgstr "ParÄdÄ«t sesiju pÄrvaldīšanas opcijas"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Neviens ievades spraudnis neatpazina šo failu"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ievades spraudnis: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1872,9 +1893,6 @@ msgstr "ParÄdÄ«t sesiju pÄrvaldīšanas opcijas"
#~ "Tas bÅ«tu jÄuzstÄda uz lielÄko iztverÅ¡anas tempa vÄrtÄ«bu, ko atbalsta jÅ«su "
#~ "skaÅas karte vai izvades spraudnis.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>FormÄta noteikÅ¡ana</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Noteikt failu formÄtus pÄc paplaÅ¡inÄjuma."
@@ -2007,9 +2025,6 @@ msgstr "ParÄdÄ«t sesiju pÄrvaldīšanas opcijas"
#~ msgid "Can't jump to time when no track is being played.\n"
#~ msgstr "Nevar pÄriet uz noteiktu laiku, ja nekas netiek atskaÅots.\n"
-#~ msgid "Jump to Time"
-#~ msgstr "PÄriet uz laiku"
-
#~ msgid "minutes:seconds"
#~ msgstr "minūtes:sekundes"
diff --git a/po/mk.po b/po/mk.po
index 8b4270b..b9ee33d 100644
--- a/po/mk.po
+++ b/po/mk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: mk\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-04-29 22:25+0200\n"
"Last-Translator: Jovan Naumovski <jovan at lugola.net>\n"
"Language-Team: Macedonian <ossm-members at hedona.on.net.mk>\n"
@@ -18,6 +18,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (невалиден UTF-8)"
@@ -104,113 +115,113 @@ msgstr "РоманÑки:"
msgid "Finnish:"
msgstr "ФинÑки:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "ФÑанÑÑÑки:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "ÐеÑманÑки:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "ÐÑÑзиÑки:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "ÐÑÑки:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Хинди:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "УнгаÑÑки:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ÐÑалиÑанÑки:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "ÐапонÑки:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "ÐоÑеÑÑки:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Ð¥ÑваÑÑки:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "ÐиÑванÑки:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "ÐакедонÑки:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "ÐолÑки:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "ÐÑазилÑко-поÑÑÑгалÑки:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "РоманÑки:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Ð ÑÑки:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "СÑпÑки (ÐаÑиниÑа):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "СÑпÑки (ÐиÑилиÑа):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "ÐоедноÑÑавен кинеÑки:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "СловаÑки:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "ШпанÑки:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "ШведÑки:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "ТÑадиÑионален кинеÑки:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "ТÑÑÑки:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "УкÑаинÑки:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "ÐелÑки:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "ÐÑиÑÐ°Ñ Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
@@ -220,80 +231,65 @@ msgstr "ÐÑиÑÐ°Ñ Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Скокни назад на лиÑÑаÑа"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "ÐÑÑÑи Ñа ÑековнаÑа лиÑÑа"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "ÐаÑзиÑÐ°Ñ Ñа оваа пеÑна"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "СÑопиÑÐ°Ñ Ñа оваа пеÑна"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "ÐаÑзиÑÐ°Ñ Ð°ÐºÐ¾ е пÑÑÑена, Ð¸Ð½Ð°ÐºÑ Ð¿ÑÑÑи"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Скокни напÑед на лиÑÑаÑа"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "ÐÑикажи го диÑалог пÑозоÑеÑÐ¾Ñ âÐди до даÑоÑекаâ"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Ðодава даÑоÑеки во Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑаÑа."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "ÐÐ¾Ð´Ð°Ñ Ð½Ð¾Ð²Ð¸ даÑоÑеки во пÑивÑемена Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "ÐÑикажи го Ð³Ð»Ð°Ð²Ð½Ð¸Ð¾Ñ Ð¿ÑозоÑеÑ"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "ÐÑикажи ги ÑиÑе оÑвоÑени пÑозоÑÑи на Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "Ðокажи го пÑÑÑаÑоÑ"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "ÐÐТÐТÐÐÐ..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- пÑÑÑи мÑлÑимедиÑални даÑоÑеки"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -302,7 +298,7 @@ msgstr ""
"%s: %s\n"
"ÐбидеÑе Ñе `%s --help' за повеÑе инÑоÑмаÑии.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -310,266 +306,243 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Ðова Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "ÐÑдио"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "ÐÐ»ÐµÑ Ð»Ð¸ÑÑа"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "ÐодаÑоÑи"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "ÐзведÑваÑ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "ÐлбÑм"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "ÐаÑлов"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "ÐÑÐ¾Ñ Ð½Ð° пеÑнаÑа"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Ðид"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Ðме на даÑоÑека"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "ÐаÑека на даÑоÑекаÑа"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "ÐаÑÑм"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Ðодина"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "ÐоменÑаÑ"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "_Ðзлез"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "ÐапонÑки:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "ÐапонÑки:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Ðинии"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "ÐоÑеÑÑки:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "Ð ÑÑки:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "ÐÑÑки:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
#, fuzzy
msgid "Turkish"
msgstr "ТÑÑÑки:"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "ÐолÑки:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b> Ðме на даÑоÑека</b>"
+msgid "Single track mode"
+msgstr "Ðиди деÑали за пеÑна"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Ðме на албÑм: "
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>ТÑкалÑеÑо на глÑÑеÑоÑ</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>ÐÑкÑиваÑе на ÑоÑмаÑ</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<b> Ðме на даÑоÑека</b>"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "ÐаÑÐµÑ Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð°:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
msgstr ""
#: src/audacious/ui_preferences.c:160
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- пÑÑÑи мÑлÑимедиÑални даÑоÑеки"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>ÐонÑигÑÑаÑиÑа на пÑокÑи</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "Ðвозможи ÑпоÑÑеба на пÑокÑи"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ÐеÑа подаÑоÑи</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Ðиди деÑали за пеÑна"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ðме на албÑм: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>ТÑкалÑеÑо на глÑÑеÑоÑ</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ÐнÑоÑмаÑии во ÑкокаÑки пÑозоÑеÑ</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- пÑÑÑи мÑлÑимедиÑални даÑоÑеки"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Ðме на Ñ
оÑÑ Ð½Ð° пÑокÑи:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "ÐоÑÑа за пÑокÑи:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "ÐоÑиÑниÑко име на пÑокÑиÑо:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Ðозинка на пÑокÑиÑо:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>ÐонÑигÑÑаÑиÑа на пÑокÑи</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Ðвозможи ÑпоÑÑеба на пÑокÑи"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "ÐоÑиÑÑи пÑовеÑка на авÑенÑиÑноÑÑ Ñо пÑокÑи"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -577,15 +550,15 @@ msgstr ""
"<span size=\"small\">ÐÑоменаÑа на Ñие поÑÑавÑваÑа Ñе баÑа ÑеÑÑаÑÑиÑаÑе "
"наAudacious.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "ÐÑкÑÐ¸Ð²Ð°Ñ Ð½Ð° авÑомаÑÑко енкодиÑаÑе на знаÑи за:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "ÐомоÑни енкодиÑаÑа на знаÑи:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -598,46 +571,46 @@ msgstr ""
"енкодиÑаÑе на меÑа подаÑоÑиÑе и Ñе Ñе напÑави обид за конвеÑзиÑа на овие "
"енкодиÑаÑа во UTF-8."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b> Ðме на даÑоÑека</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "ÐÑодолжи Ñо пÑÑÑаÑеÑо по ÑÑаÑÑÑваÑе"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "ÐÑеиÑÐ°Ñ Ð½Ð¾Ð²Ð° Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа Ñо ÑовпаÑаÑкиÑе запиÑи"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "ÐÐ¾Ð´Ð°Ñ Ð½Ð¾Ð²Ð¸ даÑоÑеки во пÑивÑемена Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>ÐеÑа подаÑоÑи</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "ÐаÑегоÑиÑа"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "ÐоÑÑавÑваÑа на инÑоÑмаÑииÑе во ÑкокаÑки пÑозоÑÑи"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>ÐобиваÑе на Ñлика од албÑмоÑ</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -647,100 +620,100 @@ msgstr ""
"даÑоÑекаÑа. ÐожеÑе да ги одÑедиÑе Ñие збоÑови во лиÑÑаÑа подолÑ, одделени Ñо "
"запиÑки."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "ÐÑклÑÑи:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "ÐклÑÑи:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "РекÑÑзивно пÑебаÑÑÐ²Ð°Ñ Ñлики од пакÑваÑа"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "ÐлабоÑина на баÑаÑеÑо:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Ðвозможи Ñлики од пакÑваÑа по даÑоÑеки"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Разно</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "ÐÑикажи ленÑа за напÑедок на ÑековнаÑа пеÑна"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "ÐадÑжи додека ÑкокаÑÐºÐ¸Ð¾Ñ Ð¿ÑозоÑÐµÑ Ð·Ð° даÑоÑека не Ñе поÑави: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>ÐÑиказ на пеÑни</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Ðокажи инÑоÑмаÑии за ÑоÑмаÑÐ¾Ñ Ð½Ð° наÑловоÑ"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "СопÑÑвен ÑÑÑинг:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "СопÑÑвен ÑÑÑинг:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "ФоÑÐ¼Ð°Ñ Ð½Ð° наÑлов:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>ÐнÑоÑмаÑии во ÑкокаÑки пÑозоÑеÑ</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "ÐÑикажи инÑоÑмаÑии во ÑкокаÑки пÑозоÑÐµÑ Ð·Ð° запиÑиÑе од Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑаÑа"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -750,54 +723,47 @@ msgstr ""
"лиÑÑаÑа. ÐÑозоÑеÑÐ¾Ñ Ð¿Ð¾ÐºÐ°Ð¶Ñва наÑлов од пеÑнаÑа, име на албÑмоÑ, жанÑ, година "
"на издаваÑе, бÑÐ¾Ñ Ð½Ð° пеÑна, должина на пеÑнаÑа и Ñлики."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "УÑеди ги поÑÑавÑваÑаÑа за ÑкокаÑкиÑе инÑоÑмаÑии"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ÐÑдио ÑиÑÑем</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ÐаÑÐµÑ Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð°:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Тековен излезен додаÑок:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ðлезен додаÑок: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "ÐÑеведÑваÑи"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>ÐÑекÑи</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "ÐизÑелизаÑиÑа"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "ÐÑеÑеÑенÑии на Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Ðе можам да го кÑеиÑам диÑекÑоÑиÑÐ¼Ð¾Ñ (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -816,22 +782,24 @@ msgstr "ÑÑеÑео"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Ðе го пÑикажÑÐ²Ð°Ñ Ð¿ÑедÑпÑедÑваÑеÑо повеÑе"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "ÐаÑÑÐ²Ð°Ñ Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
@@ -893,11 +861,11 @@ msgstr "ÐзеднаÑÑваÑ"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "ÐÑÐ¾Ñ Ð½Ð° пеÑна"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Ðолжина на пеÑна"
@@ -1133,6 +1101,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Скокни до вÑеме"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "ÐÑиÑÐ°Ñ Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "ÐÑиÑÐ°Ñ Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑа"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Ðа Audacious"
@@ -1195,19 +1186,19 @@ msgstr "ÐÑÑиÑÑи A-B"
msgid "Close on Jump"
msgstr "ÐаÑвоÑи диÑалог на оÑвоÑаÑе"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "ÐенаÑÐµÑ Ð½Ð° Ð¿Ð»ÐµÑ Ð»Ð¸ÑÑи"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "ÐапиÑи"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_ÐÑеименÑваÑ"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "ÐаÑвоÑи диÑалог на оÑвоÑаÑе"
@@ -1220,6 +1211,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1229,25 +1226,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1282,6 +1279,27 @@ msgstr "ÐÑикажи декоÑаÑии од менаÑеÑÐ¾Ñ Ð½Ð° пÑоз
msgid "Show session management options"
msgstr "ÐÑикажи декоÑаÑии од менаÑеÑÐ¾Ñ Ð½Ð° пÑозоÑÑи"
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>ТÑкалÑеÑо на глÑÑеÑоÑ</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>ÐеÑа подаÑоÑи</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>ÐнÑоÑмаÑии во ÑкокаÑки пÑозоÑеÑ</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>ÐÑдио ÑиÑÑем</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Тековен излезен додаÑок:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "ÐÑикажи ги ÑиÑе оÑвоÑени пÑозоÑÑи на Audacious"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Ðе можам да го оÑвоÑам пÑиказоÑ, напÑÑÑам.\n"
@@ -1507,9 +1525,6 @@ msgstr "ÐÑикажи декоÑаÑии од менаÑеÑÐ¾Ñ Ð½Ð° пÑоз
#~ msgid "No input plugin recognized this file"
#~ msgstr "Ðиеден влезен додаÑок не Ñа пÑепоознава оваа даÑоÑека"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ðлезен додаÑок: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1520,9 +1535,6 @@ msgstr "ÐÑикажи декоÑаÑии од менаÑеÑÐ¾Ñ Ð½Ð° пÑоз
#~ msgid "Connectivity"
#~ msgstr "ÐовÑзливоÑÑ"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>ÐÑкÑиваÑе на ÑоÑмаÑ</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "ÐÑкÑÐ¸Ð²Ð°Ñ Ð³Ð¸ ÑоÑмаÑиÑе на даÑоÑекиÑе по екÑÑензиÑа."
@@ -1566,9 +1578,6 @@ msgstr "ÐÑикажи декоÑаÑии од менаÑеÑÐ¾Ñ Ð½Ð° пÑоз
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "ÐÑиÑÐ°Ñ Ð¿Ð¾Ð´Ð°ÑоÑи (инÑоÑмаÑии за Ñаг) од мÑзиÑки даÑоÑеки."
-#~ msgid "Jump to Time"
-#~ msgstr "Скокни до вÑеме"
-
#~ msgid "minutes:seconds"
#~ msgstr "минÑÑи:ÑекÑнди"
diff --git a/po/nl.po b/po/nl.po
index 4a55ecd..8b89bdb 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,29 +1,41 @@
# Dutch translation for Audacious
-# Copyright (C) 2004 Laurens Buhler <masterpe at xs4all.nl>
-# Copyright (C) 2006 Tony Vroon <chainsaw at gentoo.org>
+# Copyright (C) Audacious translators
# This file is distributed under the same license as the Audacious package.
#
+# Translators:
+# <glenn_de_groot at hotmail.com>, 2012.
msgid ""
msgstr ""
-"Project-Id-Version: nl\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2006-11-16 20:02+0100\n"
-"Last-Translator: Tony Vroon <chainsaw at gentoo.org>\n"
-"Language-Team: (not responsive)\n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-08 08:24+0000\n"
+"Last-Translator: Glennz <glenn_de_groot at hotmail.com>\n"
+"Language-Team: Dutch\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Zoeken..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (ongeldige UTF-8)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "0.1.x ontwikkelaars:"
+msgstr "Hoofdontwikkelaars:"
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -41,612 +53,531 @@ msgstr "Plugin-ontwikkeling:"
msgid "Patch authors:"
msgstr "Patches aangeleverd door:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
msgid "1.x developers:"
-msgstr "0.1.x ontwikkelaars:"
+msgstr "1.x ontwikkelaars:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
msgstr "BMP ontwikkelaars:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
msgid "Belarusian:"
-msgstr "Hongaars:"
+msgstr "Wit-Russisch:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
-msgstr ""
+msgstr "Baskisch:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
msgstr "Braziliaans Portugees:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
msgstr "Bretons:"
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
-msgstr "Hongaars:"
+msgstr "Bulgaars:"
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:198
msgid "Catalan:"
-msgstr "Italiaans:"
+msgstr "Catalaans:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:202
msgid "Chinese:"
msgstr "Chinees:"
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:205
msgid "Croatian:"
-msgstr "Roemeens:"
+msgstr "Kroatisch:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
msgid "Czech:"
msgstr "Tjechisch:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
msgid "Dutch:"
msgstr "Nederlands:"
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:215
msgid "Estonian:"
-msgstr "Roemeens:"
+msgstr "Estisch:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
msgid "Finnish:"
msgstr "Fins:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
msgid "French:"
msgstr "Frans:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
msgid "German:"
msgstr "Duits:"
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:236
msgid "Georgian:"
msgstr "Georgisch:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
msgid "Greek:"
msgstr "Grieks:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
msgid "Hungarian:"
msgstr "Hongaars:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
msgid "Italian:"
msgstr "Italiaans:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
msgid "Japanese:"
msgstr "Japans:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
msgid "Korean:"
msgstr "Koreaans:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
msgid "Latvian:"
-msgstr "Roemeens:"
+msgstr "Lets:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
msgid "Lithuanian:"
msgstr "Lets:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
msgid "Macedonian:"
msgstr "Macedonisch:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
msgid "Polish:"
msgstr "Pools:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
msgid "Portuguese:"
-msgstr "Braziliaans Portugees:"
+msgstr "Portugees:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
msgid "Romanian:"
msgstr "Roemeens:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
msgid "Russian:"
msgstr "Russisch:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
msgid "Serbian (Latin):"
-msgstr ""
+msgstr "Servisch (Latijn):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "Servisch (Cyrillisch):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Vereenvoudigd Chinees:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
msgid "Slovak:"
msgstr "Slowaaks:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
msgid "Spanish:"
msgstr "Spaans:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
msgid "Swedish:"
msgstr "Zweeds:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
msgid "Traditional Chinese:"
-msgstr ""
+msgstr "Traditioneel Chinees:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
msgid "Turkish:"
-msgstr ""
+msgstr "Turks:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
msgid "Ukrainian:"
msgstr "Ukrainees:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Vietnamees:"
+
+#: src/audacious/credits.c:331
msgid "Welsh:"
msgstr "Welsh:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Afspeellijst laden"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-# -r, --rew switch
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "Ga terug in de speellijst"
-# -p, --play switch
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Begin de huidige speellijst af te spelen"
-# -u, --pause switch
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Pauzeer huidig nummer"
-# -s, --stop switch
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Stop huidig nummer"
-# -t, --play-pause switch
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Pauzeer tijdens spelen, anders afspelen"
-# -f, --fwd switch
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "Ga vooruit in de speellijst"
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "Spring-naar-bestand dialoog weergeven"
+msgstr ""
-# -e, --enqueue switch
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "Speellijst niet wissen"
+msgstr "Voeg bestanden toe aan de afspeellijst"
-# -e, --enqueue switch
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
-msgstr "Speellijst niet wissen"
+msgstr ""
-# -m, --show-main-window switch
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
msgid "Display the main window"
-msgstr "Geef het hoofdvenster weer"
-
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
msgstr ""
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
msgid "Show version"
-msgstr "Sp/eler weergeven"
+msgstr "Toon de versie"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
-msgid "FILE..."
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "BESTAND..."
+
+#: src/audacious/main.c:268
msgid "- play multimedia files"
-msgstr ""
+msgstr "- speel multimedia bestanden af"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nieuwe afspeellijst"
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Afspeellijst opslaan"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Nu aan het afspelen"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Geluid"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
-msgstr ""
+msgstr "Netwerk"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Speellijst"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Plugins"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "Artiest"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Titel"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "Nummer"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Genre"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Bestandsnaam"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Bestandslocatie"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Jaar"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Opmerking"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
-msgstr ""
+msgstr "Codec"
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
-msgstr "/_Afsluiten"
+msgstr "Kwaliteit"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
-msgstr ""
+msgstr "Geen"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltisch"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chinees"
#: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Japans:"
+msgid "Greek"
+msgstr "Grieks"
#: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Japans:"
+msgid "Hebrew"
+msgstr "Hebreeuws"
#: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Chinees:"
+msgid "Japanese"
+msgstr "Japans"
#: src/audacious/ui_preferences.c:118
-#, fuzzy
msgid "Korean"
-msgstr "Koreaans:"
+msgstr "Koreaans"
#: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Russisch:"
+msgid "Polish"
+msgstr "Pools"
#: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Grieks:"
+msgid "Russian"
+msgstr "Russisch"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Taiwanees"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Pools:"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
+msgstr "Turks"
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<i>Titel</i>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album modus"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
+msgid "<b>Output Settings</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
msgstr ""
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Muiswiel</b>"
-
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+msgid "Buffer size:"
+msgstr "Bufferomvang:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Gebruik de software volumeregelaar (niet aangeraden)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
msgstr ""
#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Enable Replay Gain"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
msgstr ""
#: src/audacious/ui_preferences.c:164
-#, fuzzy
-msgid "<b>Replay Gain</b>"
-msgstr "<b>Proxy-configuratie</b>"
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
-msgid "Enable Replay Gain"
-msgstr "Proxy gebruiken"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Nummer details weergeven"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Muiswiel</b>"
-
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Popup-informatie</b>"
-
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+msgid "Amplify untagged files:"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Proxy-hostnaam:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Proxy-poort:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Proxy-gebruikersnaam:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Proxy-wachtwoord:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Proxy-configuratie</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "Proxy gebruiken"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "Gebruik authenticatie voor proxy"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Het aanpassen van deze instellingen vereist een "
-"herstart van Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Automatische karakter-encoding detector ingeschakeld voor:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "Terugvallen op karakter-encodings:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lijst van karakter-encodings welke voor conversie van metadata worden "
-"gebruikt (hier wordt op teruggevallen als automatische detectie faalt of is "
-"uitgeschakeld)."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<i>Titel</i>"
+msgstr "<b>Gedrag</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Afspeelpositie onthouden"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Ga verder wanneer het huidige liedje is verwijderd"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "/Lijst sorteren/Op volgorde afspeellijst"
+msgstr "Wis de afspeellijst wanneer bestanden worden geopend"
-# -e, --enqueue switch
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Speellijst niet wissen"
+msgstr ""
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Metadata</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITEL"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTIEST - TITEL"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTIEST - ALBUM -TITEL"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTIEST - ALBUM - NUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTIEST [ ALBUM ] - NUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITEL"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Categorie"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Instellingen van popup-informatie"
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Formaat-detectie</b>"
+msgstr ""
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -656,101 +587,75 @@ msgstr ""
"bestandsnaam gekeken. Deze woorden kunnen hier worden opgegeven, gescheiden "
"door komma's."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "Uitsluiten:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Zoeken naar:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "Recursief zoeken naar covers"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Zoekdiepte: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Cover per bestand"
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Diversen</b>"
+msgstr ""
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Toon voortgangsbalk voor het huidige nummer"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Aangepast"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Nummer weergave</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Toon leidende nullen (02:00 in plaats van 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Geef informatie over het titelformaat"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Handmatige instelling:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Handmatige instelling:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Titelformaat:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Popup-informatie</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr "Popup-informatie tonen voor items in afspeellijst"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -761,396 +666,403 @@ msgstr ""
"het album, het genre, het jaar van publicatie, tracknummer en eventuele "
"cover art."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Instellingen aanpassen voor popup-informatie"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Geluidssysteem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Bufferomvang:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Huidige uitvoer-plugin:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Uitvoer plugin"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "Vertalers"
+msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Invoer"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Effecten</b>"
+msgstr "Effect"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "/Visualisatie"
+msgstr "Visualisatie "
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "Algemeen"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Audacious voorkeuren"
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:120
+#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "Kon de map (%s) niet aanmaken: %s"
+msgstr ""
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr ""
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr ""
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio CD, nummer %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Mono"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr "Deze waarschuwing niet meer weergeven"
+msgstr "_Toon dit bericht niet opnieuw"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "Afspeellijst opslaan"
+msgstr "Afspeellijst hernoemen"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "instellingen ..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
-msgstr "Actief"
+msgstr "_Inschakelen"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
msgstr "Equalizer"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
-msgstr "Nummer"
+msgstr ""
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
-msgstr "Duur:"
-
-#: src/libaudgui/infowin.c:77
-msgid "Acid Jazz"
msgstr ""
#: src/libaudgui/infowin.c:78
-msgid "Acid Rock"
-msgstr ""
+msgid "Acid Jazz"
+msgstr "Acid Jazz"
#: src/libaudgui/infowin.c:79
-msgid "Ambient"
-msgstr ""
+msgid "Acid Rock"
+msgstr "Acid Rock"
#: src/libaudgui/infowin.c:80
-msgid "Bebop"
-msgstr ""
+msgid "Ambient"
+msgstr "Ambient"
#: src/libaudgui/infowin.c:81
-msgid "Bluegrass"
-msgstr ""
+msgid "Bebop"
+msgstr "Bebop"
#: src/libaudgui/infowin.c:82
-#, fuzzy
-msgid "Blues"
-msgstr "regels"
+msgid "Bluegrass"
+msgstr "Bluegrass"
#: src/libaudgui/infowin.c:83
-msgid "Chamber Music"
-msgstr ""
+msgid "Blues"
+msgstr "Blues"
#: src/libaudgui/infowin.c:84
-msgid "Classical"
-msgstr ""
+msgid "Chamber Music"
+msgstr "Kamermuziek"
#: src/libaudgui/infowin.c:85
-msgid "Country"
-msgstr ""
+msgid "Classical"
+msgstr "Klassiek"
#: src/libaudgui/infowin.c:86
-msgid "Death Metal"
-msgstr ""
+msgid "Country"
+msgstr "Country"
#: src/libaudgui/infowin.c:87
-msgid "Disco"
-msgstr ""
+msgid "Death Metal"
+msgstr "Death Metal"
#: src/libaudgui/infowin.c:88
-msgid "Easy Listening"
-msgstr ""
+msgid "Disco"
+msgstr "Disco"
#: src/libaudgui/infowin.c:89
-msgid "Folk"
-msgstr ""
+msgid "Easy Listening"
+msgstr "Easy Listening"
#: src/libaudgui/infowin.c:90
-msgid "Funk"
-msgstr ""
+msgid "Folk"
+msgstr "Folk"
#: src/libaudgui/infowin.c:91
-msgid "Gangsta Rap"
-msgstr ""
+msgid "Funk"
+msgstr "Funk"
#: src/libaudgui/infowin.c:92
-msgid "Gospel"
-msgstr ""
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
#: src/libaudgui/infowin.c:93
-msgid "Grunge"
-msgstr ""
+msgid "Gospel"
+msgstr "Gospel"
#: src/libaudgui/infowin.c:94
-msgid "Hard Rock"
-msgstr ""
+msgid "Grunge"
+msgstr "Grunge"
#: src/libaudgui/infowin.c:95
-msgid "Heavy Metal"
-msgstr ""
+msgid "Hard Rock"
+msgstr "Hard Rock"
#: src/libaudgui/infowin.c:96
-msgid "Hip-hop"
-msgstr ""
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
#: src/libaudgui/infowin.c:97
-#, fuzzy
-msgid "House"
-msgstr "Muis"
+msgid "Hip-hop"
+msgstr "Hip-hop "
#: src/libaudgui/infowin.c:98
-msgid "Jazz"
-msgstr ""
+msgid "House"
+msgstr "House"
#: src/libaudgui/infowin.c:99
-msgid "Jungle"
-msgstr ""
+msgid "Jazz"
+msgstr "Jazz"
#: src/libaudgui/infowin.c:100
-msgid "Metal"
-msgstr ""
+msgid "Jungle"
+msgstr "Jungle"
#: src/libaudgui/infowin.c:101
-msgid "New Age"
-msgstr ""
+msgid "Metal"
+msgstr "Metal"
#: src/libaudgui/infowin.c:102
-msgid "New Wave"
-msgstr ""
+msgid "New Age"
+msgstr "New Age"
#: src/libaudgui/infowin.c:103
-#, fuzzy
-msgid "Noise"
-msgstr "Muis"
+msgid "New Wave"
+msgstr "New Wave"
#: src/libaudgui/infowin.c:104
-msgid "Pop"
-msgstr ""
+msgid "Noise"
+msgstr "Noise"
#: src/libaudgui/infowin.c:105
-msgid "Punk Rock"
-msgstr ""
+msgid "Pop"
+msgstr "Pop"
#: src/libaudgui/infowin.c:106
-msgid "Rap"
-msgstr ""
+msgid "Punk Rock"
+msgstr "Punk Rock"
#: src/libaudgui/infowin.c:107
-#, fuzzy
-msgid "Reggae"
-msgstr "Bestandsnaam"
+msgid "Rap"
+msgstr "Rap"
#: src/libaudgui/infowin.c:108
-msgid "Rock"
-msgstr ""
+msgid "Reggae"
+msgstr "Reggae"
#: src/libaudgui/infowin.c:109
-msgid "Rock and Roll"
-msgstr ""
+msgid "Rock"
+msgstr "Rock"
#: src/libaudgui/infowin.c:110
-msgid "Rhythm and Blues"
-msgstr ""
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
#: src/libaudgui/infowin.c:111
-msgid "Ska"
-msgstr ""
+msgid "Rhythm and Blues"
+msgstr "Rhythm-and-Blues"
#: src/libaudgui/infowin.c:112
-msgid "Soul"
-msgstr ""
+msgid "Ska"
+msgstr "Ska"
#: src/libaudgui/infowin.c:113
-msgid "Swing"
-msgstr ""
+msgid "Soul"
+msgstr "Soul"
#: src/libaudgui/infowin.c:114
-msgid "Techno"
-msgstr ""
+msgid "Swing"
+msgstr "Swing"
#: src/libaudgui/infowin.c:115
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
-msgstr ""
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"small\">Jaar</span>"
+msgstr ""
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
msgid "Metadata updated successfully"
msgstr ""
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
msgstr ""
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
msgstr "Nummer-informatie:"
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"small\">Commentaar</span>"
+msgstr ""
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"small\">Titel</span>"
+msgstr ""
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Commentaar</span>"
+msgstr ""
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">Titel</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Artiest</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Commentaar</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Genre</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Jaar</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Nummer</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
#, c-format
msgid "%d kb/s"
msgstr ""
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
msgstr ""
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Ga naar tijd"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr ""
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "Over Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Met dank aan"
@@ -1174,96 +1086,97 @@ msgstr "Sluit venster bij openen"
msgid "Close dialog on Add"
msgstr "Sluit venster bij toevoegen"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Uit wachtrij verwijderen"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
msgid "_Queue"
msgstr "_In wachtrij plaatsen"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Ga naar nummer"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "_Uit wachtrij verwijderen"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
msgid "Filter: "
msgstr "Filter: "
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:285
msgid "_Filter:"
-msgstr "Filter: "
+msgstr "_Filter:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Remember"
-msgstr ""
+msgstr "Onthouden"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:302
msgid "Clea_r"
-msgstr "A-B /wissen"
+msgstr "Wis_sen"
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "Close on Jump"
-msgstr "Sluit venster bij openen"
+msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "/Niet vooruitlopen in de speellijst"
+msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
-msgstr "Bestandsnaam"
+msgstr "_Hernoemen"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "Sluit venster bij openen"
+msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
-msgstr ""
+msgstr "Open URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
+msgstr "Voeg URL toe"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: onbekende optie `--%s'\n"
+msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
-msgstr ""
+msgstr "Starten %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
msgid "Unrecognized launch option: %d"
-msgstr "%s: onbekende optie `--%s'\n"
+msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr ""
@@ -1277,7 +1190,7 @@ msgstr ""
#: src/libeggsmclient/eggsmclient.c:229
msgid "FILE"
-msgstr ""
+msgstr "BESTAND"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
@@ -1288,1689 +1201,11 @@ msgid "ID"
msgstr ""
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Toon vensterdecoraties"
+msgstr ""
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Toon vensterdecoraties"
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr ""
-#~ "audacious: Kan het venster niet openen, het programma sluit nu af.\n"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Standaard skin:"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Dance"
-#~ msgstr "Datum"
-
-#, fuzzy
-#~ msgid "Oldies"
-#~ msgstr "regels"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid "Fusion"
-#~ msgstr "Russisch:"
-
-#, fuzzy
-#~ msgid "Trance"
-#~ msgstr "Uiterlijk"
-
-#, fuzzy
-#~ msgid "Space"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Comedy"
-#~ msgstr "Opmerking"
-
-#, fuzzy
-#~ msgid "Cult"
-#~ msgstr "Handmatige instelling:"
-
-#, fuzzy
-#~ msgid "Rave"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Trailer"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Polka"
-#~ msgstr "/Afspelen"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "stereo"
-
-#, fuzzy
-#~ msgid "Latin"
-#~ msgstr "Italiaans:"
-
-#, fuzzy
-#~ msgid "Primus"
-#~ msgstr "/Vorige"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Duet"
-#~ msgstr "Nederlands:"
-
-#, fuzzy
-#~ msgid "Club-House"
-#~ msgstr "Muis"
-
-#, fuzzy
-#~ msgid "Terror"
-#~ msgstr "stereo"
-
-#, fuzzy
-#~ msgid "Indie"
-#~ msgstr "Zoeken naar:"
-
-#, fuzzy
-#~ msgid "BritPop"
-#~ msgstr "Artiest Popup"
-
-#, fuzzy
-#~ msgid "Beat"
-#~ msgstr "/Herhalen"
-
-#, fuzzy
-#~ msgid "Synthpop"
-#~ msgstr "/Stop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "De toekomst van UNIX multimedia.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2006 Audacious ontwikkelteam\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Kon logbestand niet aanmaken (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/A_fspelen"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Afspelen</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Wanneer Audacious gestart wordt zal afspelen hervatten van dezelfde "
-#~ "positie als waar het bij het afsluiten stopte."
-
-# -e, --enqueue switch
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Niet vooruitlopen in de speellijst"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Ga niet automatisch naar het volgende nummer, wanneer het huidige nummer "
-#~ "is afgelopen."
-
-#~ msgid "Enabled"
-#~ msgstr "Actief"
-
-#~ msgid "Description"
-#~ msgstr "Beschrijving"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Instellingen uitvoer-plugin"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informatie over uitvoer-plugin"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "_Decoder-lijst:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Decoders</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Algemene plugin-lijst:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Algemeen</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Visualisatie plugin-lijst:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualisatie</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "_Effect plugin-lijst:"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Genre</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Locatie</span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Jaar</span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "Beschikbare _Opgeslagen instellingen:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Beschikbare _Opgeslagen instellingen:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Toevoegen/Bestanden openen venster"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Geef afspeellocatie op:"
-
-# -e, --enqueue switch
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Speellijst niet wissen"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Bestandsnaam:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Geen invoer-plugin heeft dit bestand herkend"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Invoer plugin: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Geen uitvoer-plugin geselecteerd.</big></b>\n"
-#~ "U heeft (nog) geen uitvoer-plugin gekozen."
-
-#~ msgid "Connectivity"
-#~ msgstr "Verbindingen"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formaat-detectie</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Als deze optie ingeschakeld is wordt het formaat van een bestand pas bij "
-#~ "het afspelen bepaald. Dit kan een rommelige afspeellijst opleveren, maar "
-#~ "versnelt het inladen van bestanden aanzienlijk."
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Afspelen</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "De toekomst van UNIX multimedia.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2006 Audacious ontwikkelteam\n"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Detecteer bestandsformaat op het laatste moment."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Als deze optie ingeschakeld is wordt het formaat van een bestand pas bij "
-#~ "het afspelen bepaald. Dit kan een rommelige afspeellijst opleveren, maar "
-#~ "versnelt het inladen van bestanden aanzienlijk."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Metadata van speellijsten en bestanden laden"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Metadata (tag-informatie) van muziekbestanden laden"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Ga naar tijd"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuten:seconden"
-
-#~ msgid "Track length:"
-#~ msgstr "Duur:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Afspeellijst opslaan"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Fout bij wegschrijven afspeellijst \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s bestaat reeds. Wilt u doorgaan?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Kon de afspeellijst niet opslaan.</big></b>\n"
-#~ "\n"
-#~ "Onbekend bestandstype voor '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Standen"
-
-#~ msgid "Mouse"
-#~ msgstr "Muis"
-
-# -u, --pause switch
-#~ msgid "Pause between songs"
-#~ msgstr "Pauzeer tussen nummers"
-
-#~ msgid "Pause for"
-#~ msgstr "Pauzeer voor"
-
-#~ msgid "seconds"
-#~ msgstr "seconden"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Bestandsnaam</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Converteer underscores naar spaties"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Converteer %20 naar spaties"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Bestandsvenster</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr ""
-#~ "Ververs altijd de mapinhoud bij het openen van het bestandsvenster, niet "
-#~ "noodzakelijk als Gnome VFS actief is."
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Ververs altijd het bestandsvenster (dit kan het openen van het venster "
-#~ "vertragen voor grote mappen, en mag worden uitgeschakeld als Gnome-VFS "
-#~ "actief is)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Muiswiel verandert het volume met"
-
-#~ msgid "percent"
-#~ msgstr "procent"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Muiswiel scrollt de speellijst met"
-
-#~ msgid "lines"
-#~ msgstr "regels"
-
-# -s, --stop switch
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "/Stop na huidig nummer"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Herhalen"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Willekeurig afspelen"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/Niet vooruitlopen in de speellijst"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Afspelen"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Stop"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Vorige"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Volgende"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Visualisatie type"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Analyzer type/Vurig"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Scope type"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Analyzer type/Vurig"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Vensterschaduw VU type"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Ververssnelheid"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Analyzer snelheid"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Toppen snelheid"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Afspeellijst opslaan"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Selectie sorteren/Op volgorde afspeellijst"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Lijst laden"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Metadata laden zodra het bestand wordt weergegeven in de speellijst"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Lijst opslaan"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Standaardlijst Opslaan"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Gebruik XMMS-stijl bestandsdialoog ipv standaard"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "Skin-lijst verversen"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/Niet vooruitlopen in de speellijst"
-
-# -e, --enqueue switch
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Geef weer"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Internet adres toevoegen..."
-
-# -e, --enqueue switch
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Bestanden toevoegen..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "Zoekdiepte: "
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Selectie omkeren"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#~ msgid "Select All"
-#~ msgstr "Selecteer alles"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Deselecteer alles"
-
-# -e, --enqueue switch
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Alles wissen"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Ontoegankelijke bestanden wissen"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/Wachtrij wissen"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Ontoegankelijke bestanden wissen"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Ontoegankelijke bestanden wissen"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Dubbele nummers wissen"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Bestandsnaam"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Lijst sorteren/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Selectie behouden"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Selectie wissen"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Willekeurig verdelen"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Willekeurig verdelen"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Omdraaien"
-
-# -e, --enqueue switch
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Lijst sorteren"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Lijst sorteren/Op titel"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Lijst sorteren/Op titel"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "Artiest"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Lijst sorteren/Op artiest"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Lijst sorteren/Op bestandsnaam"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Lijst sorteren/Op bestandsnaam"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Datum"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Lijst sorteren/Op titel"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Nummer"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Lijst sorteren/Op tracknummer"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/Lijst sorteren/Op volgorde afspeellijst"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Lijst sorteren/Op volgorde afspeellijst"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Selectie sorteren"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Opmerking"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Nummer details weergeven"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "Bestand afspelen"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Metadata van speellijsten en bestanden laden"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "Afspeellocatie:"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Plugins"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Instellingen"
-
-# load the interface
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Instellingen venster"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Afsluiten"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Over Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "A-B /herhaling"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "A-B /wissen"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Naar het begin van de speellijst"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Ga naar bestand"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/In de wachtrij zetten"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Laden"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Importeer"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Wissen"
-
-#~ msgid "Preset"
-#~ msgstr "Standen"
-
-#~ msgid "Load preset"
-#~ msgstr "Standen laden"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Laden/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Laden/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid "Default"
-#~ msgstr "Standaard skin:"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Automatische stand opslaan"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "stereo"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Equalizer standen opslaan"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Laden/Bestand"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Standen laden"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Laden/WinAMP EQF-bestand"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Laden/WinAMP EQF-bestand"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Importeer/WinAMP Equalizer stand"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Importeer/WinAMP Equalizer stand"
-
-#~ msgid "Save preset"
-#~ msgstr "Stand opslaan"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Opslaan/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Automatische stand opslaan"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "Bestanden laden"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Stand opslaan"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Opslaan/Als WinAMP EQF bestand"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Opslaan/Als WinAMP EQF bestand"
-
-#~ msgid "Delete preset"
-#~ msgstr "Stand wissen"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Wissen/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Dit is de grootte van de prebuffer in "
-#~ "milliseconden.\n"
-#~ "Verhoog deze waarde als de audio klikt of overslaat.\n"
-#~ "Gelieve er rekening mee te houden dat overdreven grote waardes de "
-#~ "prestaties van Audacious sterk kunnen verminderen.</span>"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Kon de skin niet laden.</big></b>\n"
-#~ "\n"
-#~ "Controleer dat de skin bij '%s' bruikbaar is en de standaardskin correct "
-#~ "geinstalleerd bij '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Geen interface weergeven (headless) [experimenteel]"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious kern-ontwikkelaars:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Equalizer"
-
-#~ msgid "Play files"
-#~ msgstr "Bestanden afspelen"
-
-#~ msgid "Load files"
-#~ msgstr "Bestanden laden"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Kies het lettertype voor het hoofdvenster:"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ZOEK NAAR: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Altijd op de voorgrond"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Altijd op de voorgrond"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Visualisatie type"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Kon geluid niet openen.</big></b>\n"
-#~ "\n"
-#~ "Gelieve te controleren dat:\n"
-#~ "1. De correcte uitvoer plugin geselecteerd is\n"
-#~ "2. Geen andere programma's de geluidskaart blokkeren\n"
-#~ "3. Uw geluidskaart juist geconfigureerd is\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Titel automatisch scrollen"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "Sp/eler weergeven"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Speellijst weergeven"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Equalizer weergeven"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Altijd op de voorgrond"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Op alle bureaubladen weergeven"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Speler oprollen"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Speellijst oprollen"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Equalizer oprollen"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "DoubleSize"
-#~ msgstr "/Dubbele grootte"
-
-#, fuzzy
-#~ msgid "Easy Move"
-#~ msgstr "/Eenvoudig verplaatsen"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Analyzer type"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Scope type"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Analyzer type/Vurig"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Analyzer type/Verticale lijnen"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "regels"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Scope type/Punt Scope"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Scope type/Lijn Scope"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Scope type/Solide Scope"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "mono"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Ververssnelheid/Volledig (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Ververssnelheid/Half (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Ververssnelheid/ɩn vierde (~13 fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Ververssnelheid/ɩn achtste (~6 fps)"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Verstreken tijd"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Resterende tijd"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Plugins"
-
-# -r, --rew switch
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Scheidingslijnen in de speellijst weergeven"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "Artiest"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Bestandsnaam:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious afspeellijst-editor"
-
-#~ msgid "Appearance"
-#~ msgstr "Uiterlijk"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Lettertypen</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Speler:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Kies het lettertype voor het hoofdvenster:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Afspeellijst:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Kies het lettertype voor het hoofdvenster:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Gebruik bitmapfonts (mits beschikbaar)"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Gebruik bitmap-lettertypen als deze beschikbaar zijn. Bitmaplettertypen "
-#~ "ondersteunen geen unicode strings."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Diversen</b>"
-
-# -r, --rew switch
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Positienummers in de speellijst weergeven"
-
-# -r, --rew switch
-#~ msgid "Show separators in playlist"
-#~ msgstr "Scheidingslijnen in de speellijst weergeven"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Toon vensterdecoraties"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr "Dit laat de venster-beheerder decoraties om de vensters tekenen."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Gebruik XMMS-stijl bestandsdialoog ipv standaard"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Dit schakelt de bestandsdialoog naar XMMS/GTK1-stijl. Deze selector wordt "
-#~ "door Audacious zelf aangeboden en is sneller dan de GTK2 uitvoering (maar "
-#~ "helaas niet even gebruikersvriendelijk)."
-
-#~ msgid "On load"
-#~ msgstr "Bij laden"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Metadata laden zodra een bestand wordt toegevoegd of geopened"
-
-#~ msgid "On display"
-#~ msgstr "Bij weergave"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Metadata laden zodra een bestand wordt toegevoegd of geopened"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Grieks:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>S_kin</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "Skin-lijst verversen"
-
-#~ msgid "PREAMP"
-#~ msgstr "Voorsterker"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Ingepakte Winamp 2.x skin"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Uitgepakte Winamp 2.x skin"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Gebruik muiscursors van skin"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Plugins"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Sorry, threads zijn niet ondersteund op uw platform.\n"
-#~ "\n"
-#~ "Als u gebruikt maakt van libc5 gebaseerde linux en u heeft Glib/GTK+ "
-#~ "geinstalleerd voordat u\n"
-#~ "LinuxThreads heeft geinstalleerd moet u Glib/GTK+ hercompileren.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-# -n, --session switch
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Kies Audacious sessie (Standaard: 0)"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "/Dubbele grootte"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "/Dubbele grootte"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Opgeslagen equalizer standen</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Extensie van standenbestand:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Map voor standenbestand:"
-
-#~ msgid "localhost"
-#~ msgstr "locale machine"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Kan %s niet aanmaken.</big></b>\n"
-#~ "\n"
-#~ "Het glade-bestand (%s) kon niet geopend worden. Is uw installatie "
-#~ "compleet?\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TITEL\n"
-#~ "ARTIEST - TITLE\n"
-#~ "ARTIEST - ALBUM - TITEL\n"
-#~ "ARTIEST - ALBUM - TRACKNR. TITEL\n"
-#~ "ARTIEST [ ALBUM ] - TRACKNR. TITEL\n"
-#~ "ALBUM - TITEL\n"
-#~ "Aanpassen"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Nummer-info"
-
-# load the interface
-#~ msgid "Preferences Window"
-#~ msgstr "Instellingen venster"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>Artiest</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>Titel</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>Album</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Audacious afspeellijst-editor"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>Artiest</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>Album</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUME: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANS: %d%% LINKS"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANS: MIDDEN"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANS: %d%% RECHTS"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Afspeellocatie:"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Afspeellocatie:"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Geen afspeelbare CD gevonden.</big></b>\n"
-#~ "\n"
-#~ "Geen CD aanwezig of de aanwezige CD is geen audio CD.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/CD toevoegen..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/CD afspelen"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Artiest"
-
-#~ msgid "File name"
-#~ msgstr "Bestandsnaam"
-
-#~ msgid "File path"
-#~ msgstr "Bestandslocatie"
-
-#~ msgid "File extension"
-#~ msgstr "Bestandstype"
-
-#~ msgid "Track number"
-#~ msgstr "Nummer"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr ""
-#~ "%{n:...%}: Geef \"...\" alleen weer wanneer element %n beschikbaar is"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Sorry, uw GTK+ versie (%d.%d.%d) werkt niet met Audacious.\n"
-#~ "Gelieve GTK+ %s of nieuwer te installeren.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "OPTIES-MENU"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ALTIJD OP VOORGROND UITSCHAKELEN"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ALTIJD OP VOORGROND INSCHAKELEN"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "BESTANDSINFORMATIE BOX"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DUBBEL FORMAAT UIT"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "DUBBEL FORMAAT AAN"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "VISUALISATIE MENU"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Titel"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Kon bestanden niet afspelen.</big></b>\n"
-#~ "\n"
-#~ "De bestanden konden niet afgespeeld worden, controleer dat:\n"
-#~ "1. U toegang heeft to de bestanden.\n"
-#~ "2. U de correcte plugins heeft aanstaan."
-
-#~ msgid "Show more _details"
-#~ msgstr "Geef meer _details weer"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "SIGSEGV-signaal ontvangen\n"
-#~ "\n"
-#~ "Dit is mogelijk een bug in Audacious. Gelieve zonder externe plugins te "
-#~ "proberen.\n"
-#~ "Als u niet weet waarom dit gebeurde, rapporteer dan een bug bij uw "
-#~ "linuxdistributie.\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Maakt de afspeellijst doorzichtig. Dit is niet aan te raden op langzamere "
-#~ "machines aangezien er enige CPU-tijd nodig is om de benodigde pixmaps aan "
-#~ "te maken en actueel te houden."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Gebruik doorzichtige speellijst"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: optie `%s' is dubbelzinnig\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: optie `--%s' staat geen argument toe\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: optie `%c%s' staat geen argument toe\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: optie `%s' heeft een argument nodig\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: unbekende optie `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: illegale optie -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: ongeldige optie -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: optie heeft een argument nodig -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: optie `-W %s' is dubbelzinnig\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: optie `-W %s' staat geen argument toe\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Gebruik: audacious [opties] [bestanden] ...\n"
-#~ "\n"
-#~ "Opties:\n"
-#~ "--------\n"
-
-# -h, --help switch
-#~ msgid "Display this text and exit"
-#~ msgstr "Deze tekst weergeven en stoppen"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Activeer Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "Vorige session ID"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Fouten & waarschuwingen niet afvangen (logging uitschakelen)"
-
-# -v, --version switch
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Versienummer weergeven en stoppen\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Toevoegen/Bestanden openen venster"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Sluit venster bij toevoegen"
-
-#~ msgid "Deselect All"
-#~ msgstr "Deselecteer alles"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "Nummer-info popup"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Genre</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Jaar</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Nummer</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>Speelduur:</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Nummer details weergeven"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Visualisatie type/Analyzer"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Visualisatie type/Scope"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Visualisatie type/Scope"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Visualisatie type/Uit"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Analyzer type/Normaal"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Analyzer type/Lijnen"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Analyzer type/Balken"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Analyzer type/Toppen"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Analyzer type/Normaal"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Vensterschaduw VU type/Normaal"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Vensterschaduw VU type/Soepel"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Analyzer snelheid/Sloom"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Analyzer snelheid/Langzaam"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Analyzer snelheid/Normaal"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Analyzer snelheid/Sneller"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Analyzer snelheid/Snelst"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Toppen snelheid/Sloom"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Toppen snelheid/Langzaam"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Toppen snelheid/Normaal"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Toppen snelheid/Sneller"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Toppen snelheid/Snelst"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Ga naar tijd"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/Over Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Bestanden..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Internet adres..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Nieuwe lijst"
-
-# -r, --rew switch
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Scheidingslijnen in de speellijst weergeven"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Nummer-informatie:"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Laden/Stand"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Laden/Standaard stand"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Laden/Neutrale stand"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Opslaan/Huidige stand"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Opslaan/Als standaard stand"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Opslaan/Als bestand"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Wissen/Stand"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Automatische standen laden"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Equalizer standen laden"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Automatische standen wissen"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/Popup informatie tonen"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Dubbele nummers wissen/Op titel"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Dubbele nummers wissen/Op bestandsnaam"
-
-#~ msgid "/Update View"
-#~ msgstr "/Verversen"
-
-#~ msgid "/Select All"
-#~ msgstr "/Selecteer alles"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Lijst sorteren/Op datum"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Selectie sorteren/Op titel"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Selectie sorteren/Op artiest"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Selectie sorteren/Op bestandsnaam"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Selectie sorteren/Op locatie en bestandsnaam"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Selectie sorteren/Op datum"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Selectie sorteren/Op tracknummer"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Selectie sorteren/Op volgorde afspeellijst"
+msgstr ""
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>Diverse opties</b>"
-#~ msgid "This enables the window mangaer to show decorations for windows."
-#~ msgstr "Dit laat de venster-beheerder decoraties om de vensters tekenen."
diff --git a/po/pl.po b/po/pl.po
index f2306a6..eb070ef 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,38 +1,45 @@
-# Polish translation for audacious
-# Copyright (C) 2006, Wojciech Myrda <vojcek at tlen.pl>
-# Copyright (C) 2006, MichaÅ Kiedrowicz <esqualante at o2.pl>
-# Copyright (C) 2010, Szymon Weihs <sz.weihs at gmail.com>
-# This file is distributed under the same license as the audacious package.
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+# Polish translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
#
-# Based on the Polish translation of XMMS by:
+# Translators:
+# Bartosz Kosiorek <gang65 at poczta.onet.pl>, 2003.
+# GNOME PL Team <translators at gnome.pl>, 2004.
# Grzegorz Kowal <g_kowal at poczta.onet.pl>, 2000, 2001.
-# Bartosz Kosiorek <gang65 at poczta.onet.pl>, 2003
-#
-# Based on the Polish translation of BMP by:
-# GNOME PL Team <translators at gnome.pl>, 2004
-# Jacek Wolszczak <shutdownrunner at o2.pl>,2004
+# Piotr SokóŠ<psokol at jabster.pl>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Audacious\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-14 18:38+0200\n"
-"Last-Translator: Szymon Weihs <sz.weihs at gmail.com>\n"
-"Language-Team:\n"
-"Language: \n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-11 10:46+0000\n"
+"Last-Translator: Piotr SokóŠ<psokol at jabster.pl>\n"
+"Language-Team: Polish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Wyszukiwanie..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Znaleziono %d plik"
+msgstr[1] "Znaleziono %d pliki"
+msgstr[2] "Znaleziono %d plików"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
-msgstr " (nieprawidÅowy UTF-8)"
+msgstr " (nieprawidÅowe kodowanie UTF-8)"
#: src/audacious/credits.c:35
msgid "Core developers:"
-msgstr "ProgramiÅci:"
+msgstr "GÅówni programiÅci:"
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -40,259 +47,246 @@ msgstr "Grafika:"
#: src/audacious/credits.c:54
msgid "Default skin:"
-msgstr "DomyÅlna skóra:"
+msgstr "DomyÅlny styl:"
#: src/audacious/credits.c:60
msgid "Plugin development:"
-msgstr "Twórcy pluginów:"
+msgstr "ProgramiÅci wtyczek:"
#: src/audacious/credits.c:83
msgid "Patch authors:"
msgstr "Autorzy poprawek:"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:127
msgid "1.x developers:"
msgstr "ProgramiÅci wersji 1.x"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
msgstr "ProgramiÅci BMP:"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:181
msgid "Belarusian:"
msgstr "BuÅgarski:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
msgstr "Baskijski:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
msgstr "Brazylijski Portugalski:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
msgstr "BretoÅski:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
msgstr "BuÅgarski:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
msgid "Catalan:"
msgstr "KataloÅski:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:202
msgid "Chinese:"
msgstr "ChiÅski:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
msgid "Croatian:"
msgstr "Chorwacki:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
msgid "Czech:"
msgstr "Czeski:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
msgid "Dutch:"
msgstr "Holenderski:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
msgid "Estonian:"
msgstr "EstoÅski:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
msgid "Finnish:"
msgstr "FiÅski:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
msgid "French:"
msgstr "Francuski:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
msgid "German:"
msgstr "Niemiecki:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
msgid "Georgian:"
msgstr "GruziÅski:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
msgid "Greek:"
msgstr "Grecki:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
msgid "Hindi:"
msgstr "Hinduski:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
msgid "Hungarian:"
msgstr "WÄgierski:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
msgid "Italian:"
msgstr "WÅoski:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
msgid "Japanese:"
msgstr "JapoÅski:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
msgid "Korean:"
msgstr "KoreaÅski:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
msgid "Latvian:"
-msgstr "Chorwacki:"
+msgstr "Åotewski:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
msgid "Lithuanian:"
msgstr "Litewski:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
msgid "Macedonian:"
msgstr "MacedoÅski:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
msgid "Polish:"
msgstr "Polski:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
msgid "Portuguese:"
msgstr "Portugalski:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
msgid "Romanian:"
msgstr "RumuÅski:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
msgid "Russian:"
msgstr "Rosyjski:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
msgid "Serbian (Latin):"
msgstr "Serbski (ÅaciÅski):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
msgid "Serbian (Cyrillic):"
msgstr "Serbski (Cyrylica):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
msgid "Simplified Chinese:"
msgstr "ChiÅski uproszczony:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
msgid "Slovak:"
msgstr "SÅowacki:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
msgid "Spanish:"
msgstr "HiszpaÅski:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
msgid "Swedish:"
msgstr "Szwedzki:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
msgid "Traditional Chinese:"
msgstr "ChiÅski tradycyjny:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
msgid "Turkish:"
msgstr "Turecki:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
msgid "Ukrainian:"
msgstr "UkraiÅski:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Wietnamski:"
+
+#: src/audacious/credits.c:331
msgid "Welsh:"
msgstr "Walijski:"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Tymczasowa lista odtwarzania"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr "BÅÄ
d importowania pliku Winamp EQF: %s"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Szukanie..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Znaleziono %d plik"
-msgstr[1] "Znaleziono %d plików"
+msgstr "BÅÄ
d importowania pliku EQF, programu Winamp: %s"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
-msgstr "Przeskakuje do poprzedniego utworu na liÅcie odtwarzania"
+msgstr "Przechodzi do poprzedniego nagrania na liÅcie odtwarzania"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "Rozpoczyna odtwarzanie bieżÄ
cej listy odtwarzania"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
-msgstr "Wstrzymuje bieżÄ
cy utwór"
+msgstr "Wstrzymuje odtwarzanie bieżÄ
cego nagrania"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
-msgstr "Zatrzymuje bieżÄ
cy utwór"
+msgstr "Zatrzymuje odtwarzanie bieżÄ
cego nagrania"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
-msgstr "Wstrzymuje, jeÅli odtwarzany jest utwór, w przeciwnym razie wznawia"
+msgstr "Wstrzymuje i wznawia odtwarzanie bieżÄ
cego nagrania"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
-msgstr "Przechodzi do nastÄpnego utworu na liÅcie odtwarzania"
+msgstr "Przechodzi do nastÄpnego nagrania na liÅcie odtwarzania"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "WyÅwietl okno dialogowe Skocz do pliku"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "Dodaje pliki do listy odtwarzania."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Dodaj nowe pliki do tymczasowej listy odtwarzania"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "WyÅwietla gÅówne okno"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "WyÅwietla wszystkie otwarte okna"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Pokaż wersjÄ"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "WyÅwietl komunikaty debugera"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Tryb \"Headless\" (bez gui - beta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "PLIK..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr " - odtwarza pliki multimedialne"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -301,335 +295,297 @@ msgstr ""
"%s: %s\n"
"Napisz `%s --help', żeby dowiedzieÄ siÄ wiÄcej.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "Nie znaleziono dekodera dla %s"
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Buforowanie ..."
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nowa lista odtwarzania"
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Nowa lista"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Odtwarzane"
-#: src/audacious/ui_preferences.c:88
-msgid "Audio"
-msgstr "Audio"
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Lista odtwarzania nie może zostaÄ posortowana, gdyż odczytywanie metadanych "
+"nadal trwa albo zostaÅo ono wyÅÄ
czone."
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "DźwiÄk"
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "SieÄ"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Lista odtwarzania"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Wtyczki"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "Wykonawca"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "TytuÅ"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
-msgstr "Numer utworu"
+msgstr "Numer Åcieżki"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Gatunek"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Nazwa pliku"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "PoÅożenie pliku"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Rok"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Komentarz"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Kodek"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "JakoÅÄ"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "Brak"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabski"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "BaÅtycki"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "ChiÅski"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "JapoÅski"
+msgid "Greek"
+msgstr "Grecki"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "TajwaÅski"
+msgid "Hebrew"
+msgstr "Hebrajski"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "ChiÅski"
+msgid "Japanese"
+msgstr "JapoÅski"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "KoreaÅski"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Rosyjski"
+msgid "Polish"
+msgstr "Polski"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Grecki"
+msgid "Russian"
+msgstr "Rosyjski"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebrajski"
+msgid "Taiwanese"
+msgstr "TajwaÅski"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "Turecki"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabski"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polski"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "BaÅtycki"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Uniwersalny"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>CzÄstotliwoÅÄ próbkowania</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "WyjÅcie:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Wszystkie strumienie bÄdÄ
konwertowane do tej czÄstotliwoÅci \n"
-"próbkowania. Powinna to byÄ maksymalna czÄstotliwoÅÄ wspierana \n"
-"przez kartÄ dźwiÄkowÄ
lub wtyczkÄ wyjÅciowÄ
."
+msgid "<b>Output Settings</b>"
+msgstr "<b>WyjÅcie dźwiÄku</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Kontrola gÅoÅnoÅci</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "RozdzielczoÅÄ bitowa:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Użyj programowej zmiany gÅoÅnoÅci:"
+msgid "Buffer size:"
+msgstr "Rozmiar bufora:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Używa programowej zmiany gÅoÅnoÅci. Może byÄ użyteczne w sytuacji, gdy karta "
-"dźwiÄkowa / wtyczka wyjÅciowa nie obsÅuguje zmiany gÅoÅnoÅci."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr " - odtwarza pliki multimedialne"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Użycie programowej regulacji gÅoÅnoÅci (niezalecane)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Tryb Replay Gain</b>"
+msgstr "<b>Replay Gain</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
-msgstr "WÅÄ
cz Replay Gain"
+msgstr "WÅÄ
czenie"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Nazwa:</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Pokaż informacje o pliku"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album:"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Zapobieganie zakÅóceniom (zalecane)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>Opcje rolki myszy:</b>"
+msgstr "<b>Dostrajanie</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informacja w dymkach</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Wzmocnienie wszystkich plików:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Użyj informacji o wzmocnieniu z pliku, aby zapobiec zakÅóceniom"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Wzmocnienie plików bez etykiet:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
-msgstr "Nazwa proxy:"
+msgstr "Nazwa komputera:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
-msgstr "Port proxy:"
+msgstr "Port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
-msgstr "Użytkownik proxy:"
+msgstr "Nazwa użytkownika:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
-msgstr "HasÅo dla proxy:"
+msgstr "HasÅo:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
-msgstr "<b>Konfiguracja proxy</b>"
+msgstr "<b>PoÅrednik sieciowy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
-msgstr "WÅÄ
cz ustawienia proxy"
+msgstr "WÅÄ
czenie"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
-msgstr "Użyj uwierzytelniania dla proxy"
+msgstr "Uwierzytelnianie"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Zmiana tych ustawieÅ wymaga ponownego uruchomienia "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr "Autodetekcja kodowania na:"
+msgstr "Automatycze wykrywanie kodowania dla:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "ZastÄpcze kodowanie znaków:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista kodowania znaków używana jest podczas konwersji metadanych plików. "
-"JeÅli automatyczne ustawienie kodowania siÄ nie powiodÅo lub zostaÅo "
-"wyÅÄ
czone, znaki kodowania w tej liÅcie bÄdÄ
uważane jako kandydaci dla "
-"kodowania informacji o pliku. Wówczas zostanie podjÄta próba konwersji "
-"kodowania na UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>CzÄstotliwoÅÄ próbkowania</b>"
+msgstr "<b>Zachowanie</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
-msgstr "Kontynuuj grÄ po uruchomieniu programu"
+msgstr "Kontynuowanie odtwarzania po uruchomieniu programu"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Odtwarzaj nastÄpny, gdy aktualny utwór zostanie usuniÄty"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "WyczyÅÄ aktualnÄ
listÄ odtwarzania przy otwieraniu nowych plików"
+msgstr "WyczyÅÄ listÄ odtwarzania przy otwieraniu nowych plików"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Dodaj nowe pliki do tymczasowej listy odtwarzania"
+msgstr "Dodawanie plików do tymczasowej listy odtwarzania"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
-msgstr "<b>Opcje metadanych</b>"
+msgstr "<b>Metadane</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Pomijanie wczytywania metadanych nagraÅ do czasu odtworzenia"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TYTUÅ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "WYKONAWCA - TYTUÅ"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "WYKONAWCA - ALBUM - TYTUÅ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "WYKONAWCA - ALBUM - UTWÃR. TYTUÅ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "WYKONAWCA [ ALBUM ] - UTWÃR. TYTUÅ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TYTUÅ"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Kategoria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Ustawienia informacji w dymkach"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Wyszukiwanie okÅadek albumów</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -639,99 +595,75 @@ msgstr ""
"nazwach plików. Możesz okreÅliÄ te sÅowa w listach poniżej, oddzielajÄ
c je "
"Årednikami"
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "OmiÅ:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Użyj:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "Rekurencyjnie szukaj okÅadek"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "GÅÄbokoÅÄ wyszukiwania: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Użyj osobnej okÅadki do każdego pliku"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Różne</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "Pokaż pasek postÄpu dla aktualnej Åcieżki"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Opóźnienie wyÅwietlania informacji:"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "WÅasny"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>WyÅwietlanie utworu</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr "Pokaż numery utworów"
+msgstr "Numery Åcieżek"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Zera wiodÄ
ce (02:00 zamiast 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Pokaż informacjÄ o formacie ciÄ
gu tytuÅowego"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TYTUÅ"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTYSTA - TYTUÅ"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTYSTA - ALBUM - TYTUÅ"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTYSTA - ALBUM - UTWÃR. TYTUÅ"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTYSTA [ ALBUM ] - UTWÃR. TYTUÅ"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - TYTUÅ"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "WÅasny"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "WÅasny:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Format tytuÅu:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Informacja w dymkach</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr "Pokaż informacje w dymkach dla wpisów na liÅcie"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -741,76 +673,73 @@ msgstr ""
"Okno to ukazuje informacje o tytule, nazwie albumu, rodzaju muzyki, roku "
"publikacji, numeru Åcieżki, jej dÅugoÅci oraz zdjÄcie okÅadki."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Edytuj wpisy dla informacji o dymkach"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>System Audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Rozmiar bufora:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktualna wtyczka wyjÅciowa:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Wtyczka:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "Lokalizacja"
+msgstr "Transport"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "WejÅcie"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>Efekty</b>"
+msgstr "Efekty"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
msgstr "Wizualizacja"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "Ogólne"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
-msgstr "Ustawienia Audacious"
+msgstr "Preferencje Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "Nie można utworzyÄ folderu (%s): %s\n"
+msgstr "Nie można utworzyÄ katalogu (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr "Pozycja nie zostaÅa znaleziona"
+msgstr "Nie odnaleziono pozycji"
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "Żaden utwór nie jest odtwarzany"
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "PÅyta Audio CD, Åcieżka %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
msgstr "Mono"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "KanaÅy"
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanaÅ"
+msgstr[1] "%d kanaÅy"
+msgstr[2] "%d kanaÅów"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -819,322 +748,341 @@ msgstr ""
"JesteÅ pewien, że chcesz zamknÄ
Ä %s? JeÅli to zrobisz, wszelkie zmiany "
"poczynione od momentu eksportowania listy zostanÄ
utracone."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
msgstr "Nie pokazuj wiÄcej tego _ostrzeżenia"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "Zapisz listÄ odtwarzania"
+msgstr "ZmieÅ nazwÄ playlisty"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr "Ustawienia miksera"
+msgstr "Preferencje miksera"
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
-msgstr "_WÅÄ
czony"
+msgstr "_WÅÄ
czenie"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
msgstr "Korektor graficzny"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
-msgstr "Przedwzmacniacz"
+msgstr "Przedwzmocnienie"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "Numer utworu"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "DÅugoÅÄ utworu"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
msgid "Chamber Music"
msgstr "Muzyka kameralna"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
msgid "Classical"
msgstr "Klasyczna"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
msgid "Easy Listening"
msgstr "Lekka w sÅuchaniu"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
msgid "Gangsta Rap"
msgstr "Gangsta rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
msgid "Gospel"
-msgstr "Religijna"
+msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
msgid "Hard Rock"
msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
msgid "New Wave"
msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
msgid "Noise"
-msgstr "Szum"
+msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
msgid "Rock and Roll"
msgstr "Rock & Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
msgid "Soul"
msgstr "Duchowa"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">n/a</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
msgid "Metadata updated successfully"
-msgstr "Aktualizacja metadanych zakoÅczona powodzeniem"
+msgstr "Zaktualizowano metadane"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
msgstr "Nie udaÅo siÄ zaktualizowaÄ metadanych"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
msgstr "Informacje o Åcieżce"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Format:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">JakoÅÄ:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Próbkowanie:</span>"
+msgstr "<span size=\"small\">Tempo bitowe:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">TytuÅ</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"small\">Artysta</span>"
+msgstr "<span size=\"small\">Wykonawca</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Komentarz</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"small\">Rodzaj</span>"
+msgstr "<span size=\"small\">Gatunek</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Rok</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">Numer utworu</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
msgstr "Brak informacji dla %s. \n"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Skok do czasu"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Wybór pliku eksportowania"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Wybór pliku importowania"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "ZastÄ
piÄ %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Menedżer kolejki"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
-msgstr "Informacje o Audacious"
+msgstr "Informacje o programie Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "ZasÅugi"
#: src/libaudgui/ui_credits.c:126
msgid "Translators"
-msgstr "Lokalizacja"
+msgstr "TÅumaczenia"
#: src/libaudgui/ui_fileopener.c:108
msgid "Open Files"
-msgstr "Wczytaj pliki"
+msgstr "Wybór pliku"
#: src/libaudgui/ui_fileopener.c:108
msgid "Add Files"
@@ -1142,96 +1090,105 @@ msgstr "Dodaj pliki"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Open"
-msgstr "Zamknij to okno przy otwarciu"
+msgstr "ZamkniÄcie tego okna po otworzeniu"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Add"
-msgstr "Zamknij to okno przy dodaniu"
-
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Odejmij z kolejki"
+msgstr "ZamkniÄcie tego okna po dodaniu"
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
msgid "_Queue"
-msgstr "_Dodaj do Kolejki"
+msgstr "_Dodaj do kolejki"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Skok do utworu"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "_UsuÅ z kolejki"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Przechodzenie do nagrania"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
msgid "Filter: "
msgstr "Filtr: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
msgid "_Filter:"
msgstr "_Filtr: "
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Remember"
-msgstr "PamiÄtaj"
+msgstr "PamiÄtanie"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:302
msgid "Clea_r"
msgstr "_WyczyÅÄ"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "Close on Jump"
-msgstr "Zamknij to okno przy otwarciu"
+msgstr "ZamkniÄcie tego okna po przejÅciu"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "Menadżer list"
+msgstr "Menedżer list odtwarzania"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Pozycje"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "ZmieÅ _nazwÄ"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "Zamknij to okno przy aktywa_cji playlisty"
+msgstr "Za_mkniÄcie tego okna po aktywowaniu listy"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
-msgstr "Otwórz URL"
+msgstr "Otwieranie adresu URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
-msgstr "Dodaj URL"
+msgstr "Dodawanie adresu URL"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Dalsze informacje zostaÅy ukryte.)"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr "Ten plik nie jest prawidÅowym plikiem typu .desktop"
+msgstr "Plik nie jest prawidÅowym plikiem typu .desktop"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Nierozpoznana wersja pliku desktop: '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "Uruchamianie %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "Aplikacja nie przyjmuje dokumentów poprzez wiersz poleceÅ"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Nieznana opcja uruchamiania: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "Nie można przekazaÄ URLi dokumentu do wpisu desktop 'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "NieobsÅugiwany typ pliku"
@@ -1256,4512 +1213,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Opcje zarzÄ
dzania sesjÄ
"
+msgstr "Opcje zarzÄ
dzania sesjÄ
:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
msgstr "Pokaż opcje zarzÄ
dzania sesjÄ
"
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Nie można otworzyÄ trybu graficznego, zamkniÄcie.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Przedwzmacniacz:"
-
-#~ msgid "Default gain:"
-#~ msgstr "DomyÅlne wzmocnienie:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "To wcmocnienie zostanie użyte, jeÅli plik nie zawiera informacji na temat "
-#~ "Replay Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">ProszÄ pamiÄtaÄ, że najlepszÄ
jakoÅÄ dźwiÄku zapewni "
-#~ "ustawienie powyżej ujemnych wartoÅci.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Konfiguracja Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Wzmocnienie dla utworu"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Wzmocnienie dla caÅego albumu"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Używa wartoÅci wzmocnienia z Replay Gain w celu poprawienia jakoÅci i "
-#~ "zapobiegniÄciu zakÅóceniom."
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock klasyczny"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Stare przeboje"
-
-#~ msgid "Other"
-#~ msgstr "Inne"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternatywna"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Åcieżka filmowa"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Wokal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentalna"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Klip dźwiÄkowy"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock alternatywny"
-
-#~ msgid "Bass"
-#~ msgstr "Bas"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "PrzestrzeÅ"
-
-#~ msgid "Meditative"
-#~ msgstr "Medytacja"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop instrumentalny"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock instrumentalny"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etniczna"
-
-#~ msgid "Gothic"
-#~ msgstr "Gotycka"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electroniczna"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Rock poÅudniowy"
-
-#~ msgid "Comedy"
-#~ msgstr "Komediowa"
-
-#~ msgid "Cult"
-#~ msgstr "Kultowa"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap ChrzeÅcijaÅski"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Rdzennych Amerykanów"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaretowa"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychodeliczna"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Zwiastun"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Plemienna"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Folk Narodowy"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latynoska"
-
-#~ msgid "Revival"
-#~ msgstr "OżywiajÄ
ca"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtycka"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Awangardowa"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock Gotycki"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock Progresywny"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock Psychodeliczny"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock Symfoniczny"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Wolny Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chóralna"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustyczna"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Mowa"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Satyra"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Wolny Jam"
-
-#~ msgid "Club"
-#~ msgstr "Klubowa"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklor"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Mocna Ballada"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rytmiczna duchowa"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo perkusyjne"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Gangsta Rap ChrzeÅcijaÅski"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "WspóÅczesna ChrzeÅcijaÅska"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock ChrzeÅcijaÅski"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "MaÅy i szybki odtwarzacz muzyki dla wielu platform.\n"
-#~ "Copyright (C) 2005-2010 ZespóŠTwórców Audacious"
-
-#~ msgid "Surround"
-#~ msgstr "Surround"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Nie można utworzyÄ pliku dziennika (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Wypisuje wszystkie bÅÄdy i ostrzeżenia na standardowe wyjÅcie"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Przykro mi, wÄ
tki nie sÄ
obsÅugiwane przez twojÄ
platformÄ. \n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Åadowanie moduÅów nie jest obsÅugiwane! Wtyczki nie zostanÄ
wÅÄ
czone.\n"
-
-#, fuzzy
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - ostrzeżenie o niewspieranej wersji"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 nie jest jeszcze gotowy!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>ProszÄ nie wysyÅaÄ informacji o bugach na tym etapie jeżeli nie "
-#~ "opisujÄ
one ważnych problemów.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "To jest wersja <i>alfa</i> programu Audacious2. Jest ona niedokoÅczona i "
-#~ "może dziaÅaÄ niepoprawnie.\n"
-#~ "Spodziewamy siÄ, że wiÄkszoÅÄ zgÅoszonych ważnych bugów zostanie "
-#~ "naprawiona gdy tylko inne sprawy siÄ\n"
-#~ "ustabilizujÄ
. Jednakże poważne problemy dotyczÄ
ce odtwarzania okreÅlonych "
-#~ "plików\n"
-#~ "powinny zostaÄ do nas zgÅoszone.\n"
-#~ "\n"
-#~ "Ostrzegamy przy tym, że zajmowanie siÄ obecnie trywialnymi problemami "
-#~ "może byÄ rozpraszajÄ
ce na tym etapie,\n"
-#~ "prosimy powstrzymaÄ siÄ od ich zgÅaszania. Z góry dziÄkujemy!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Dyskusje na temat bugów w programie również nie sÄ
pomocne. </b>"
-
-#~ msgid "Playback"
-#~ msgstr "Odtwarzanie"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Odtwarzanie</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Gdy Audacious zostanie wÅÄ
czony, automatycznie zacznyna graÄ od miejsca, "
-#~ "w którym poprzednio przerwano."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Odtwarzanie utworów pojedynczo"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Po zakoÅczeniu odtwarzania utworu nie przechodź automatycznie do "
-#~ "nastÄpnego."
-
-#~ msgid "Enabled"
-#~ msgstr "WÅÄ
czona"
-
-#~ msgid "Description"
-#~ msgstr "Opis"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Konfiguracja wtyczki wyjÅciowej"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informacje o wtyczce wyjÅciowej"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista _dekoderów:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Dekodery</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Lista wtyczek:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Ogólne</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista wtyczek _wizualizacji:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Wizualizacja</b>"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Lista wtyczek efektów dźwiÄkowych:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>Efekty</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\"><b>Ogólne</b></span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Lokalizacja</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Surowe metadane</span>"
-
-#~ msgid "Key"
-#~ msgstr "Klucz"
-
-#~ msgid "Value"
-#~ msgstr "WartoÅÄ"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "11 kHz"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "11 kHz"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "DostÄ_pne ustawienia:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "DostÄ_pne ustawienia:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Dodawanie plików"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Wpisz lokalizacjÄ:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Nie czyÅci listy odtwarzania"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Nazwa pliku:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Żaden plugin nie rozpoznaŠtego pliku"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Wtyczka wejÅciowa: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Niewybrany plugin wyjÅcia.</big></b>\n"
-#~ "Nie wybraÅeÅ wtyczki wyjÅciowej."
-
-#~ msgid "Connectivity"
-#~ msgstr "SieÄ"
-
-#, fuzzy
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Użyj interpolacji"
-
-#, fuzzy
-#~ msgid "Linear Interpolation"
-#~ msgstr "Użyj interpolacji"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "CzÄstotliwoÅÄ próbkowania [Hz]:"
-
-#, fuzzy
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Użyj interpolacji"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Wszystkie strumienie bÄdÄ
konwertowane do tej "
-#~ "czÄstotliwoÅci próbkowania.\n"
-#~ "Powinna to byÄ maksymalna czÄstotliwoÅÄ wspierana przez kartÄ dźwiÄkowÄ
"
-#~ "lub wtyczkÄ wyjÅciowÄ
.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Autodetekcja formatu</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Rozpoznawaj format plików poprzez rozszerzenie."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Gdy ta opcja jest zaznaczona, Audacious bÄdzie sprawdzaÅ formaty plików, "
-#~ "bazujÄ
c na ich rozszerzeniu. Jest to trochÄ wolniejsze od sprawdzania na "
-#~ "życzenie, ale zapewnia minimalny poziom rozpoznawania formatów plików."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Konwersja czÄstotliwoÅci próbkowania</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "WÅÄ
cz konwersjÄ czÄstotliwoÅci próbkowania"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "Zaawansowane"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Audacious has caught signal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "We apologize for the inconvenience, but Audacious has crashed.\n"
-#~ "This is a bug in the program, and should never happen under normal "
-#~ "circumstances.\n"
-#~ "Your current configuration has been saved and should not be damaged.\n"
-#~ "\n"
-#~ "You can help improve the quality of Audacious by filing a bug at http://"
-#~ "jira.atheme.org/\n"
-#~ "Please include the entire text of this message and a description of what "
-#~ "you were doing when\n"
-#~ "this crash occured in order to quickly expedite the handling of your bug "
-#~ "report:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Audacious przechwyciÅ sygnaÅ 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "Przepraszamy za kÅopot, ale Audacious spowodowaÅ bÅÄ
d i teraz nastÄ
pi "
-#~ "jego zamkniÄcie.\n"
-#~ "Jest to bÅÄ
d w programie i nie powinien nigdy wystÄ
piÄ w normalnych "
-#~ "okolicznoÅciach.\n"
-#~ "Twoja bieżÄ
ca konfiguracja zostaÅa zapisana i nie powinna zostaÄ "
-#~ "uszkodzona.\n"
-#~ "\n"
-#~ "Możesz pomóc udoskonalaÄ Audacious poprzez wypeÅnienie raportu na http://"
-#~ "bugs-meta.atheme.org\n"
-#~ "ProszÄ zaÅÄ
cz caÅÄ
treÅÄ tej wiadomoÅci i opisz, co robiÅeÅ, gdy wystÄ
þiŠ"
-#~ "ten bÅÄ
d,\n"
-#~ "abyÅmy mogli szybciej zajÄ
Ä siÄ tym raportem:\n"
-#~ "\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Bugs can be reported at http://jira.atheme.org/ against the Audacious or "
-#~ "Audacious Plugins product.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "BÅÄdy mogÄ
byÄ raportowane na http://bugs-meta.atheme.org w projekcie "
-#~ "Audacious.\n"
-
-#~ msgid ""
-#~ "Your signaling implementation is broken.\n"
-#~ "Expect unusable crash reports.\n"
-#~ msgstr ""
-#~ "Twoja implementacja sygnaÅów jest uszkodzona.\n"
-#~ "Możesz siÄ spodziewaÄ nieużywalnych raportów o bÅÄdach.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 ZespóŠtwórców Audacious"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Rozpoznawaj format plików na życzenie, zamiast natychmiast."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Gdy ta opcja jest zaznaczona, Audacious bÄdzie sprawdzaÅ formaty plików "
-#~ "na życzenie. Może to spowodowaÄ wczytanie do listy odtwarzania plików, "
-#~ "które nie bÄdÄ
pózniej mogÅy byÄ odtworzone, lecz znacznie przyspieszy "
-#~ "czas jej wgrywania."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Pobieranie metadanych z list odtwarzania i plików"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr ""
-#~ "WÅÄ
cza pobieranie metadanych (informacji ze znacznika) z plików "
-#~ "muzycznych."
-
-#~ msgid "Jump to Time"
-#~ msgstr "Skok do czasu"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuty:sekundy"
-
-#~ msgid "Track length:"
-#~ msgstr "DÅugoÅÄ utworu:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Zapisz listÄ odtwarzania"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "BÅÄ
d zapisu listy utworów \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s już istnieje. Czy chcesz kontynuowaÄ?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Nie można zapisaÄ listy utworów.<b><big>\n"
-#~ "\n"
-#~ "Typ pliku '%s' nieznany.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Ustawienia"
-
-#~ msgid "Mouse"
-#~ msgstr "Mysz"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Przerwa miÄdzy utworami"
-
-#~ msgid "Pause for"
-#~ msgstr "Przerwij na"
-
-#~ msgid "seconds"
-#~ msgstr "sekund"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Opcje nazw plików</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Zamiana podkreÅleÅ na spacje"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Zamiana sekwencji %20 na spacje"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "ZamieÅ '\\' na '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Opcje plików</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Zawsze odÅwież katalog otwierajÄ
c okno dialogowe"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Zawsze odÅwierz listÄ plików (spowolni to otwieranie katalogów z "
-#~ "zawartoÅciÄ
dużej liczby plików, Gnome VFS powinno to zaÅatwiÄ "
-#~ "automatycznie)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Rolka myszy zmienia gÅoÅnoÅÄ o"
-
-#~ msgid "percent"
-#~ msgstr "procent"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Rolka myszy przesuwa listÄ o"
-
-#~ msgid "lines"
-#~ msgstr "wiersze"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Zatrzymaj po bieżÄ
cym utworze"
-
-#~ msgid "Peaks"
-#~ msgstr "Szczyty"
-
-#~ msgid "Repeat"
-#~ msgstr "Powtarzaj"
-
-#~ msgid "Shuffle"
-#~ msgstr "Losowo"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Odtwarzaj pliki pojedynczo"
-
-#~ msgid "Play"
-#~ msgstr "Odtwarzaj"
-
-#~ msgid "Pause"
-#~ msgstr "Wstrzymaj"
-
-#~ msgid "Stop"
-#~ msgstr "Zatrzymaj"
-
-#~ msgid "Previous"
-#~ msgstr "Poprzedni"
-
-#~ msgid "Next"
-#~ msgstr "NastÄpny"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Tryb wizualizacji"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Tryb analizatora"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Tryb sygnaÅu"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "Tryb odcisku gÅosu"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Wskaźnik sygnaÅu"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "CzÄstotliwoÅÄ odÅwieżania"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Zanik analizatora"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Zanik szczytów"
-
-#~ msgid "New Playlist"
-#~ msgstr "Nowa lista"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "NastÄpna lista"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Poprzednia lista"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "UsuÅ listÄ"
-
-#~ msgid "Load List"
-#~ msgstr "Wczytaj listÄ"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Wczytanie pliku z listÄ
do wybranej listy odtwarzania."
-
-#~ msgid "Save List"
-#~ msgstr "Zapisz listÄ"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Zapisuje listÄ odtwarzania."
-
-#~ msgid "Save Default List"
-#~ msgstr "Zapisz DomyÅlnÄ
ListÄ"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Zapisuje wybranÄ
listÄ odtwarzania w domyÅlnej lokalizacji."
-
-#~ msgid "Refresh List"
-#~ msgstr "OdÅwież listÄ"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "OdÅwieża dane zwiÄ
zane z elementem listy."
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "Menadżer list"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Otwiera menadźera list."
-
-#~ msgid "View"
-#~ msgstr "Widok"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Dodaj adres internetowy..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Dodaje zdalnÄ
ÅcieżkÄ do listy odtwarzania."
-
-#~ msgid "Add Files..."
-#~ msgstr "Dodaj pliki..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Znajdź i zaznacz"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr "Wyszukuje pozycje w oparciu o podane kryteria."
-
-#~ msgid "Invert Selection"
-#~ msgstr "OdwrÃ³Ä zaznaczenie"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Odwraca zaznaczone z niezaznaczonymi"
-
-#~ msgid "Select All"
-#~ msgstr "Zaznacz wszystkie"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Zaznacza wszystkie pozycje z listy odtwarzania."
-
-#~ msgid "Select None"
-#~ msgstr "Odznacz wszystkie"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Odznacza wszystkie pozycje listy odtwarzania."
-
-#~ msgid "Remove All"
-#~ msgstr "UsuÅ wszystkie"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Usuwa wszystkie pozycje z listy odtwarzania."
-
-#~ msgid "Clear Queue"
-#~ msgstr "WyczyÅÄ kolejkÄ"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "CzyÅci kolejkÄ zwiÄ
zanÄ
z tÄ
listÄ
odtwarzania."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "UsuÅ martwe pliki"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Usuwa martwe pliki z listy odtwarzania."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "UsuÅ duplikaty"
-
-#~ msgid "By Title"
-#~ msgstr "WedÅug tytuÅów"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Usuwa powtarzajÄ
ce siÄ pozycje w liÅcie otwarzania wedÅug tytuÅu."
-
-#~ msgid "By Filename"
-#~ msgstr "WedÅug nazw plików"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "UsuÅ duplikaty wedÅug poÅożenia i nazwy pliku"
-
-#~ msgid "By Path + Filename"
-#~ msgstr "WedÅug poÅożenia i nazwy plików"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Usuwa powtarzajÄ
ce siÄ pozycje w liÅcie otwarzania wedÅug poÅożenia i "
-#~ "nazwy pliku."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "UsuÅ niezaznaczone"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Usuwa niezaznaczone pozycje z listy odtwarzania."
-
-#~ msgid "Remove Selected"
-#~ msgstr "UsuÅ zaznaczone"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Usuwa zaznaczone pozycje z listy odtwarzania."
-
-#~ msgid "Randomize List"
-#~ msgstr "Wymieszaj listÄ"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Miesza listÄ odtwarzania."
-
-#~ msgid "Reverse List"
-#~ msgstr "OdwrÃ³Ä listÄ"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Odwraca listÄ odtwarzania."
-
-#~ msgid "Sort List"
-#~ msgstr "Sortuj listÄ"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Sortuje listÄ wedÅug tytuÅów."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Sortuje listÄ wedÅug tytuÅów."
-
-#~ msgid "By Artist"
-#~ msgstr "WedÅug wykonawców"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Sortuje listÄ wedÅug wykonawców."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Sortuje listÄ wedÅug nazw plików."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Sortuje listÄ wedÅug poÅożenia i nazwy plików."
-
-#~ msgid "By Date"
-#~ msgstr "Wedug dat"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Sortuje listÄ wedÅug czasu modyfikacji."
-
-#~ msgid "By Track Number"
-#~ msgstr "WedÅug numerów utworów"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Sortuje listÄ wedÅug numerów utworów."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "WedÅug kolejnoÅci wpisów"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Sortuje listÄ wedÅug kolejnoÅci wpisu."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Sortuj zaznaczone"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "OgieÅ"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Komentarz"
-
-#~ msgid "View Track Details"
-#~ msgstr "Informacje o pliku"
-
-#~ msgid "Play File"
-#~ msgstr "Odtwórz plik"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Wczytaj i odtwórz plik"
-
-#~ msgid "Play Location"
-#~ msgstr "Odtwórz lokalizacjÄ"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Odtwórz plik z podanej lokalizacji"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Wtyczki"
-
-#~ msgid "Preferences"
-#~ msgstr "Ustawienia"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Otwórz okno ustawieÅ"
-
-#~ msgid "_Quit"
-#~ msgstr "ZakoÅcz"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "WyÅÄ
cz Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "Zaznacz wszystkie"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/WyczyÅÄ kolejkÄ"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Skocz do poczÄ
tku listy"
-
-#~ msgid "Jump to File"
-#~ msgstr "Skocz do pliku"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "Dodaj/usuÅ z kolejki"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Dodaje/usuwa pozycjÄ z kolejki."
-
-#~ msgid "Load"
-#~ msgstr "Wczytaj"
-
-#~ msgid "Import"
-#~ msgstr "Importuj"
-
-#~ msgid "Save"
-#~ msgstr "Zapisz"
-
-#~ msgid "Delete"
-#~ msgstr "UsuÅ"
-
-#~ msgid "Preset"
-#~ msgstr "Ustawienie"
-
-#~ msgid "Load preset"
-#~ msgstr "Wczytywanie ustawienia"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Automatycznie wczytane ustawienie"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Wczytaj automatyczne ustawienie"
-
-#~ msgid "Default"
-#~ msgstr "DomyÅlne"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Wczytaj domyÅlne ustawienia korektora"
-
-#~ msgid "Zero"
-#~ msgstr "Wyzeruj"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Wyzeruj ustawienia korektora"
-
-#~ msgid "From file"
-#~ msgstr "Z pliku"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Wczytaj ustawienie z pliku"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "Z pliku WinAMP EQF"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Wczytaj z pliku WinAMP EQF"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "Ustawienia WinAMPa"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Importuj ustawienia WinAMPa"
-
-#~ msgid "Save preset"
-#~ msgstr "Zapisywanie ustawienia"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Zapisz automatycznie wczytywane ustawienie"
-
-#~ msgid "Save default preset"
-#~ msgstr "Zapisz domyÅlne ustawienie"
-
-#~ msgid "To file"
-#~ msgstr "Do pliku"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Zapisz ustawienie do pliku"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "Do pliku WinAMP EQF"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Zapisz ustawienie do pliku WinAMP EQF"
-
-#~ msgid "Delete preset"
-#~ msgstr "UsuniÄcie ustawienia"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "UsuÅ automatycznie wczytywane ustawienie"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Jest to dÅugoÅÄ czasu w milisekundach, na który "
-#~ "buforowane sÄ
Åcieżki audio\n"
-#~ "ZwiÄksz tÄ wartoÅÄ, jeÅli doÅwiadczasz przerywania pÅynnoÅci "
-#~ "odtwarzania. \n"
-#~ "ZwrÃ³Ä jednak uwagÄ, że ustawienie tej wartoÅci za wysoko może powodowaÄ, "
-#~ "że Audacious bÄdzie siÄ sÅabo sprawowaÅ.</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "WÅÄ
cza dziaÅanie jako serwer"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Nie można wczytaÄ skóry.</big></b>\n"
-#~ "\n"
-#~ "Sprawdź czy skóra '%s' jest poprawna i czy domyÅlna skóra jest "
-#~ "zainstalowana w '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "WÅÄ
cza dziaÅanie jako serwer"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Twórcy podstaw aplikacji Audacious:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Korektor graficzny Audacious"
-
-#~ msgid "Play files"
-#~ msgstr "Odtwórz pliki"
-
-#~ msgid "Load files"
-#~ msgstr "Wczytaj pliki"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "Audacious - visibility warning"
-#~ msgstr "Audacious - ostrzeżenie o widocznoÅci"
-
-#~ msgid "Show main player window"
-#~ msgstr "Pokaż gÅowne okno"
-
-#~ msgid "Ignore"
-#~ msgstr "Ignoruj"
-
-#~ 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 ""
-#~ "Audacious zostaÅ uruchomiony ze schowanymi wszystkimi oknami.\n"
-#~ "Możesz wyÅwietliÄ gÅówne okno, aby kontrolowaÄ Audacious; możesz też "
-#~ "kontrolowaÄ go zdalnie poprzez audtool lub uruchomione pluginy (takie jak "
-#~ "statusicon)."
-
-#~ msgid "Always ignore, show/hide is controlled remotely"
-#~ msgstr "Zawsze ignoruj, wyÅwietlanie/chowanie kontrolowane zdalnie"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "SKOK DO: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Volume: %d%%"
-#~ msgstr "GÅoÅnoÅÄ"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "Opcje"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Zawsze na wierzchu"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Zawsze na wierzchu"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "Informacje o pliku"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "WyÅÄ
czenie znaczników ID3V2"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "Tryb wizualizacji"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Nie można otworzyÄ wyjÅcia dźwiÄku.</big></b>\n"
-#~ "\n"
-#~ "Sprawdź, czy:\n"
-#~ "1. WybraÅeÅ odpowiedniÄ
wtyczkÄ wyjÅciowÄ
.\n"
-#~ "2. Å»aden inny program nie blokuje karty dźwiÄkowej.\n"
-#~ "3. Twoja karta dźwiÄkowa jest poprawnie skonfigurowana.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Przewijanie tytuÅu utworu"
-
-#~ msgid "Show Player"
-#~ msgstr "Pokaż gÅówne okno"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Pokaż listÄ odtwarzania"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "Pokaż korektor graficzny"
-
-#~ msgid "Always on Top"
-#~ msgstr "Zawsze na wierzchu"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Na wszystkich obszarach roboczych"
-
-#~ msgid "Roll up Player"
-#~ msgstr "ZwiniÄte okno gÅówne"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "ZwiniÄta lista odtwarzania"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "ZwiniÄty korektor graficzny"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "Zapisz"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Podwójny rozmiar"
-
-#~ msgid "Easy Move"
-#~ msgstr "Uproszczone przesuwanie"
-
-#~ msgid "Analyzer"
-#~ msgstr "Analizator"
-
-#~ msgid "Scope"
-#~ msgstr "SygnaÅ"
-
-#~ msgid "Voiceprint"
-#~ msgstr "Odcisk gÅosu"
-
-#~ msgid "Off"
-#~ msgstr "WyÅÄ
czona"
-
-#~ msgid "Normal"
-#~ msgstr "Normalny"
-
-#~ msgid "Fire"
-#~ msgstr "OgieÅ"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Pionowe linie"
-
-#~ msgid "Lines"
-#~ msgstr "Linie"
-
-#~ msgid "Bars"
-#~ msgstr "SÅupki"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Kropki"
-
-#~ msgid "Line Scope"
-#~ msgstr "Linie"
-
-#~ msgid "Solid Scope"
-#~ msgstr "CiÄ
gÅy"
-
-#~ msgid "Ice"
-#~ msgstr "Lód"
-
-#~ msgid "Smooth"
-#~ msgstr "PÅynny"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "PeÅna (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "PoÅowa (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Jedna czwarta (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Jedna ósma (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Najwolniejszy"
-
-#~ msgid "Slow"
-#~ msgstr "Wolny"
-
-#~ msgid "Medium"
-#~ msgstr "Normalny"
-
-#~ msgid "Fast"
-#~ msgstr "Szybki"
-
-#~ msgid "Fastest"
-#~ msgstr "Najszybszy"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Miniony czas"
-
-#~ msgid "Time Remaining"
-#~ msgstr "PozostaÅy czas"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Wtyczki"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Szukaj pozycji w aktualnej liÅcie"
-
-#~ 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 ""
-#~ "Wybierz pozycje w liÅcie odtwarzania wypeÅniajÄ
c jedno lub wiÄcej pól. "
-#~ "Pola wykorzystujÄ
wyrażenia regularne, bez uwzglÄdnienia wielkoÅci "
-#~ "znaków. Jeżeli nie wiesz, jak dziaÅajÄ
wyrażenia regularne, po prostu "
-#~ "wstaw czÄÅÄ nazwy tego, czego szukasz."
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "TytuÅ:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Album:"
-
-#~ msgid "Artist: "
-#~ msgstr "Wykonawca:"
-
-#~ msgid "Filename: "
-#~ msgstr "Nazwa pliku:"
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "WyczyÅÄ poprzednie zaznaczenie przed szukaniem"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "Autmatycznie wstaw do kolejki znalezione pozycje"
-
-#~ msgid "Create a new playlist with matching entries"
-#~ msgstr "Stwórz nowÄ
listÄ odtwarzania ze znalezionych pozycji"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Lista odtwarzania Audacious"
-
-#~ msgid "Appearance"
-#~ msgstr "WyglÄ
d"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>Czcionki:</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "GÅówne okno:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Wybór czcionki okna gÅównego:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "Lista odtwarzania:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Wybór czcionki okna gÅównego:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Użyj czcionek bitmapowych, jeÅli to możliwe"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Użyj czcionek bitmapowych, jeÅli to możliwe. Miej na uwadze, że nie "
-#~ "wspierajÄ
one znaków Unikod."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>Różne:</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "WyÅwietlanie numerów utworów na liÅcie odtwarzania"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "WyÅwietlanie separatorów na liÅcie odtwarzania"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Pokaż dekoracje okien"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr "WÅÄ
cza dekoracje okien."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Użyj styl okna wyboru plików jak w XMMS, zamiast standardowego"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "WÅÄ
cza okno wybierania plików w stylu XMMS/GTK1. Jest szybsze niż "
-#~ "domyÅlne okno GTK2, ale niestety nie takie przyjazne."
-
-#~ msgid "On load"
-#~ msgstr "Przy wgrywaniu"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Pobieranie metadanych przy odtworzeniu utworu lub dodawaniu utworu do "
-#~ "listy"
-
-#~ msgid "On display"
-#~ msgstr "Przy wyÅwietlaniu"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Pobieranie metadanych przy odtworzeniu utworu lub dodawaniu utworu do "
-#~ "listy"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Dopasowanie kolorów"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious pozwala na modyfikacjÄ intensywnoÅci kolorów w skórce. Aby to "
-#~ "zrobiÄ, użyj poniższych suwaków."
-
-#~ msgid "Blue"
-#~ msgstr "Niebieski"
-
-#~ msgid "Green"
-#~ msgstr "Zielony"
-
-#~ msgid "Red"
-#~ msgstr "Czerwony"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Skóra</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "OdÅwież listÄ skórek"
-
-#~ msgid "PREAMP"
-#~ msgstr "PRZEDWZM"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Zarchiwizowana skóra Winamp 2.x"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Niezarchiwizowana sĸóra Winamp 2.x"
-
-#~ msgid "Show version and builtin features"
-#~ msgstr "WyÅwietla numer wersji i wbudowane opcje"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Użyj wÅasnych kursorów"
-
-#~ msgid "Reload Plugins"
-#~ msgstr "ZaÅaduj ponownie wtyczki"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Niestety, twoja platforma nie wspiera wielowÄ
tkowoÅci.\n"
-#~ "\n"
-#~ "JeÅli używasz Linuksa bazowanego na libc5 i zainstalowaÅeÅ Glib i GTK+ "
-#~ "zanim \n"
-#~ "zainstalowaÅeÅ LinuxThreads potrzebujesz przekompilowaÄ Glib & GTK+.\n"
-
-#~ msgid "Error in Audacious."
-#~ msgstr "BÅÄ
d w Audacious."
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "WÅÄ
czenie 6dB wzmocnienia i twardego ograniczenia"
-
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Wybierz sesje Audacious (Standardowa: 0)"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "Podwójny rozmiar"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "Podwójny rozmiar"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Ustawienia</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Rozszerzenie pliku ustawieÅ:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Folder pliku ustawieÅ:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Nie można utworzyÄ %s.</big></b>\n"
-#~ "\n"
-#~ "Nie mógÅ otworzyÄ pliku glade (%s). Sprawdź poprawnoÅÄ instalacji.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TYTUÅ\n"
-#~ "WYKONAWCA - TYTUÅ\n"
-#~ "WYKONAWCA - ALBUM - TYTUÅ\n"
-#~ "WYKONAWCA - ALBUM - ÅCIEÅ»KA. TYTUÅ\n"
-#~ "WYKONAWCA [ ALBUM ] - ÅCIEÅ»KA. TYTUÅ\n"
-#~ "ALBUM - TYTUÅ\n"
-#~ "WÅasny"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Informacje o utworze"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Okno ustawieÅ"
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/Zamknij"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>Wykonawca</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>TytuÅ</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>Album</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Lista odtwarzania Audacious"
-
-#, fuzzy
-#~ msgid "Station:"
-#~ msgstr "WÅoski:"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>Wykonawca</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<i>TytuÅ</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>Album</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "GLOSNOSC: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANS: %d%% LEWY"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANS: SRODEK"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANS: %d%% PRAWY"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Odtwórz lokalizacjÄ"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Odtwórz lokalizacjÄ"
-
-#~ msgid "Converter Type:"
-#~ msgstr "Rodzaj konwertera:"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Nie znaleziono odpowiedniego CD.</big></b>\n"
-#~ "\n"
-#~ "Brak CD w trayu, lub wÅożona pÅytka nie jest audio CD.\n"
-
-#~ msgid "Add CD..."
-#~ msgstr "Dodaj Audio CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Dodaje Audio CD do listy odtwarzania."
-
-#~ msgid "Play CD"
-#~ msgstr "Odtwórz Audio CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Wykonawca"
-
-#~ msgid "File name"
-#~ msgstr "Nazwa pliku"
-
-#~ msgid "File path"
-#~ msgstr "PoÅożenie"
-
-#~ msgid "File extension"
-#~ msgstr "Rozszerzenie pliku"
-
-#~ msgid "Track name"
-#~ msgstr "Nazwa utworu"
-
-#~ msgid "Track number"
-#~ msgstr "Numer utworu"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Pokaż \"...\" tylko gdy element %n jest obecny"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Niestety, Twoja wersja GTK+ (%d.%d.%d) nie dziaÅa z Audacious.\n"
-#~ "Zainstaluj bibliotekÄ GTK+ %s lub nowszÄ
.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENU OPCJI"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "WYÅÄCZ ZAWSZE NA WIERZCHU"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ZAWSZE NA WIERZCHU"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "OKNO INFORMACJI PLIKU"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "WYÅÄCZ PODWÃJNY ROZMIAR"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "PODWÃJNY ROZMIAR"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENU WIZUALIZACJI"
-
-#~ msgid "Track name: "
-#~ msgstr "Nazwa utworu:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Nie można odtworzyÄ plików.</big></b>\n"
-#~ "\n"
-#~ "Nie można odtworzyÄ nastÄpujÄ
cych plików. Sprawdź czy:\n"
-#~ "1. masz do nich dostÄp.\n"
-#~ "2. wÅÄ
czona jest wymagana wtyczka."
-
-#~ msgid "Show more _details"
-#~ msgstr "Pokaż _szczegóÅy"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Otrzymano SIGSEGV\n"
-#~ "\n"
-#~ "MógÅ to byÄ bÅÄ
d w Audacious. JeÅli nie wiesz czemu tak siÄ staÅo, napisz "
-#~ "informacjÄ o bÅÄdzie na http://bugs.nenolod.net/\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "WÅÄ
cza przeźroczystoÅÄ playlisty. Nie jest to zalecane dla wolniejszych "
-#~ "maszyn ponieważ potrzebuje ono pewnÄ
iloÅÄ czasu procesora oraz "
-#~ "zachowania w pamiÄci obrazów użytych dla przeźroczystoÅci."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "WÅÄ
cz przeźroczystoÅÄ playlisty"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: opcja '%s' jest dwuznaczna\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja '--%s' nie zezwala na podanie argumentun\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja '%c%s' nie zezwala na podanie argumentu\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: opcja `%s' wymaga argumentu\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: nieznana opcja %c%s\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: niedozwolona opcja -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: nieprawidÅowa opcja -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: opcja wymaga podania argumentu -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: opcja 'W %s' jest dwuznaczna\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja `-W %s' nie pozwala na argument\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Użycie: audacious [opcje] [pliki] ...\n"
-#~ "\n"
-#~ "Opcje:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "WyÅwietla ten tekst i zamyka program"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Aktywuj Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID poprzedniej sesji"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "WyÅÄ
cz przechwytywanie bÅÄdóÅ/ostrzerzeÅ (logowanie)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "WyÅwietla numer wersji i koÅczy dziaÅanie programu.\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Dodawanie plików"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Zamknij InformacjÄ przy dodaniu"
-
-#~ msgid "Deselect All"
-#~ msgstr "Odznacz wszystkie"
-
-#~ msgid "Artist Popup"
-#~ msgstr "Dymki o Wykonawcy"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Rodzaj</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Rok</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Numer utworu</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>DÅugoÅÄ utworu</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Informacje o pliku"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Tryb wizualizacji/Analizator"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Tryb wizualizacji/SygnaÅ"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Tryb wizualizacji/SygnaÅ"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Tryb wizualizacji/Brak"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Tryb analizatora/ZwykÅy"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Tryb analizatora/Linie"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Tryb analizatora/SÅupki"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Tryb analizatora/Piki"
-
-#~ msgid "/Scope Mode/Dot Scope"
-#~ msgstr "/Tryb sygnaÅu/SygnaÅ punktowany"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Tryb analizatora/ZwykÅy"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Wskaźnik sygnaÅu/ZwykÅy"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Wskaźnik sygnaÅu/GÅadki"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Zanik analizatora/Najwolniejszy"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Zanik analizatora/Wolny"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Zanik analizatora/Åredni"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Zanik analizatora/Szybki"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Zanik analizatora/Najszybszy"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Zanik analizatora/Najwolniejszy"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Zanik analizatora/Wolny"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Zanik analizatora/Åredni"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Zanik analizatora/Szybki"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Zanik analizatora/Najszybszy"
-
-#~ msgid "/Pause"
-#~ msgstr "/Wstrzymaj"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Skocz do czasu"
-
-#~ msgid "/About Audacious"
-#~ msgstr "Informacje o Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Pliki..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "Adres internetowy..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Nowa lista"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Zaktualizuj listÄ"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Uzyskanie utworu:"
-
-#~ msgid "/Load"
-#~ msgstr "/Wczytaj"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Wczytaj/Ustawienie"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Wczytaj/DomyÅlne"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Wczytaj/Wyzeruj"
-
-#~ msgid "/Import"
-#~ msgstr "/Importuj"
-
-#~ msgid "/Save"
-#~ msgstr "/Zapisz"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Zapisz/Ustawienie"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Zapisz/DomyÅlne"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Zapisz/Do pliku"
-
-#~ msgid "/Delete"
-#~ msgstr "/UsuÅ"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/UsuÅ/Ustawienie"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Wczytywanie automatycznego ustawienia"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Wczytywanie ustawieÅ korektora"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "UsuniÄcie automatycznego ustawienia"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "Pokaż informacje w dymkach"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/UsuÅ Duplikaty/WedÅug TytuÅu"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/UsuÅ Duplikaty/WedÅug nazwy pliku"
-
-#~ msgid "/Update View"
-#~ msgstr "/Zaktualizuj Widok"
-
-#~ msgid "/Select All"
-#~ msgstr "Zaznacz wszystkie"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Sortuj listÄ/WedÅug daty"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Sortuj zaznaczone/WedÅug tytuÅu"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Sortuj zaznaczone/WedÅug Artysty"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Sortuj zaznaczone/WedÅug nazwy pliku"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Sortuj zaznaczone/WedÅug poÅożenia i nazwy pliku"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Sortuj zaznaczone/WedÅug daty"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Sortuj zaznaczone/WedÅug numeru Åcieżki"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Sortuj zaznaczone/WedÅug kolejnoÅci wpisu"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Różne:</b>"
-
-#~ msgid "AudioCompress "
-#~ msgstr "AudioCompress "
-
-#~ msgid ""
-#~ "\n"
-#~ "(c)2003 trikuare studios(http://trikuare.cx)\n"
-#~ "Ported to Audacious by Tony Vroon (chainsaw at gentoo.org)\n"
-#~ "\n"
-#~ "Simple dynamic range compressor for transparently\n"
-#~ "keeping the volume level more or less consistent"
-#~ msgstr ""
-#~ "\n"
-#~ "(c)2003 trikuare studios(http://trikuare.cx)\n"
-#~ "PortowaÅ do Audacious Tony Vroon (chainsaw at gentoo.org)\n"
-#~ "\n"
-#~ "Prosty kompresor dynamicznie \n"
-#~ "utrzymujÄ
cy poziom gÅoÅnoÅci na staÅym poziomie"
-
-#~ msgid "About AudioCompress"
-#~ msgstr "Informacje o wtyczce AudioCompress"
-
-#~ msgid "Ok"
-#~ msgstr "Ok"
-
-#~ msgid ""
-#~ "Extra Stereo Plugin\n"
-#~ "\n"
-#~ "By Johan Levin 1999."
-#~ msgstr ""
-#~ "Wtyczka Extra Stereo\n"
-#~ "\n"
-#~ "Autor Johan Levin 1999."
-
-#~ msgid "Extra Stereo Plugin %s"
-#~ msgstr "Wtyczka Extra Stereo %s"
-
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "Informacje o wtyczce Extra Stereo"
-
-#~ msgid "Configure Extra Stereo"
-#~ msgstr "Konfiguruj Extra Stereo"
-
-#~ msgid "Effect intensity:"
-#~ msgstr "IntensywnoÅÄ efektu:"
-
-#~ msgid "Cancel"
-#~ msgstr "Anuluj"
-
-#~ msgid "Apply"
-#~ msgstr "Zatwierdź"
-
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "Informacje o wtyczce LIRC"
-
-#~ msgid "LIRC Plugin "
-#~ msgstr "Wtyczka LIRC"
-
-#~ msgid ""
-#~ "\n"
-#~ "A simple plugin that lets you control\n"
-#~ "Audacious using the LIRC remote control daemon\n"
-#~ "\n"
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the XMMS LIRC plugin by:\n"
-#~ "Carl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "You can get LIRC information at:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-#~ msgstr ""
-#~ "\n"
-#~ "Prosta wtyczka pozwalajÄ
ca na kontrolÄ\n"
-#~ "Audacious poprzez demon LIRC\n"
-#~ "\n"
-#~ "PortowaÅ do Audacious Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "z wtyczki XMMS LIRC stworzonej przez:\n"
-#~ "Carl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "Informacje o LIRC można pobraÄ z:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-
-#~ msgid "LIRC Plugin"
-#~ msgstr "Wtyczka LIRC"
-
-#~ msgid "%s: could not init LIRC support\n"
-#~ msgstr "%s: nie mógÅ zainicjowaÄ wtyczki LIRC\n"
-
-#~ msgid ""
-#~ "%s: could not read LIRC config file\n"
-#~ "%s: please read the documentation of LIRC\n"
-#~ "%s: how to create a proper config file\n"
-#~ msgstr ""
-#~ "%s: nie mógÅ przeczytaÄ pliku konfiguracyjnego\n"
-#~ "%s: przeczytaj dokumentacjÄ LIRC\n"
-#~ "%s: odnoÅnie tworzenia poprawnej konfiguracji\n"
-
-#~ msgid "%s: unknown command \"%s\"\n"
-#~ msgstr "%s: nieznana komenda \"%s\"\n"
-
-#~ msgid "%s: disconnected from LIRC\n"
-#~ msgstr "%s: odÅÄ
czono od LIRC\n"
-
-#~ msgid "<b>Scrobbler Preferences</b>"
-#~ msgstr "<b>Preferencje</b>"
-
-#~ msgid "Username:"
-#~ msgstr "Użytkownik:"
-
-#~ msgid "Password:"
-#~ msgstr "HasÅo:"
-
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "Informacje o wtyczce Scrobbler"
-
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "Wtyczka Scrobbler"
-
-#~ msgid "Song Change %s"
-#~ msgstr "Zmiana Piosenki %s"
-
-#~ msgid "Commands"
-#~ msgstr "Komendy"
-
-#~ msgid "Command to run when Audacious starts a new song."
-#~ msgstr "Komenda do uruchomienia przy grze nowego utworu"
-
-#~ msgid "Command:"
-#~ msgstr "Komenda:"
-
-#~ msgid "Command to run toward the end of a song."
-#~ msgstr "Komenda do uruchomienia przy koÅcu gry utworu"
-
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr "Komenda do uruchomienia przy dotarciu do koÅca playlisty"
-
-#~ msgid ""
-#~ "You can use the following format strings which\n"
-#~ "will be substituted before calling the command\n"
-#~ "(not all are useful for the end-of-playlist command).\n"
-#~ "\n"
-#~ "%%F: Frequency (in hertz)\n"
-#~ "%%c: Number of channels\n"
-#~ "%%f: filename (full path)\n"
-#~ "%%l: length (in milliseconds)\n"
-#~ "%%n or %%s: Song name\n"
-#~ "%%r: Rate (in bits per second)\n"
-#~ "%%t: Playlist position (%%02d)\n"
-#~ "%%p: Currently playing (1 or 0)"
-#~ msgstr ""
-#~ "Możliwe jest użycie poniższych zmiennych które zostanÄ
użyte podczas "
-#~ "uruchamiania komendy (Nie wszystkie sÄ
użyteczne przy komendzie dla koÅca "
-#~ "playlisty).\n"
-#~ "\n"
-#~ "%%F: CzÄstotliwoÅÄ (w hertzach)\n"
-#~ "%%c: Liczba kanaÅów\n"
-#~ "%%f: Nazwa pliku (peÅna Åcieżka)\n"
-#~ "%%l: DÅugoÅÄ (w milisekundach)\n"
-#~ "%%n lub %%s: TytuÅ piosenki\n"
-#~ "%%r: Rate (w bitach na sekundÄ)\n"
-#~ "%%t: Pozycja w playliÅcie (%%02d)\n"
-#~ "%%p: Obecnie gra (1 or 0)"
-
-#~ msgid ""
-#~ "<span size='small'>Parameters passed to the shell should be encapsulated "
-#~ "in quotes. Doing otherwise is a security risk.</span>"
-#~ msgstr ""
-#~ "<span size='small'>Parametry podawane do konsoli powinny byÄ wpisane "
-#~ "pomiÄdzy cudzysÅowy. Zrobienie inaczej stwarza ryzyko dla bezpieczeÅstwa."
-#~ "</span>"
-
-#~ msgid "About "
-#~ msgstr "Informacje o"
-
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2002, 2003 Simon Peter <dn.tlp at gmx.net>\n"
-#~ "\n"
-#~ "This plugin is released under the terms and conditions of the GNU LGPL.\n"
-#~ "See http://www.gnu.org/licenses/lgpl.html for details.\n"
-#~ "\n"
-#~ "This plugin uses the AdPlug library, which is copyright (C) Simon Peter, "
-#~ "et al.\n"
-#~ "Linked AdPlug library version: "
-#~ msgstr ""
-#~ "\n"
-#~ "Prawa (C) 2002, 2003 Simon Peter <dn.tlp at gmx.net>\n"
-#~ "\n"
-#~ "Ten plugin jest udostÄpniony zgodnie z prawami i postanowieniami GNU "
-#~ "LGPL.\n"
-#~ "zobacz http://www.gnu.org/licenses/lgpl.html dla uzyskania szczeguÅów.\n"
-#~ "\n"
-#~ "Plugin ten używa biblioteki AdPlug stworzonej przez (C) Simon Peter, et "
-#~ "al.\n"
-#~ "Wersja biblioteki AdPlug: "
-
-#~ msgid "AMIDI-Plug %s (MIDI Player)"
-#~ msgstr "AMIDI-Plug %s (MIDI Player)"
-
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "AMIDI-Plug - ostrzeżenie"
-
-#~ msgid ""
-#~ "No sequencer backend has been selected!\n"
-#~ "Please configure AMIDI-Plug before playing."
-#~ msgstr ""
-#~ "Żaden sequencer nie zostaŠwybrany!\n"
-#~ "ProszÄ skonfiguruj AMIDI-Plug przed odtwarzaniem."
-
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "AMIDI-Plug - wybierz plik"
-
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "AMIDI-Plug - konfiguracja"
-
-#~ msgid "AMIDI-Plug message"
-#~ msgstr "AMIDI-Plug wiadomoÅÄ"
-
-#~ msgid "Please stop the player before changing AMIDI-Plug settings."
-#~ msgstr "ProszÄ zatrzymaj odtwarzacz przed zmianÄ
ustawieÅ MIDI-Plug"
-
-#~ msgid "Name:"
-#~ msgstr "Nazwa:"
-
-#~ msgid " MIDI Info "
-#~ msgstr "Informacje o pliku MIDI"
-
-#~ msgid "Length (msec):"
-#~ msgstr "DÅugoÅÄ (msec):"
-
-#~ msgid "Num of Tracks:"
-#~ msgstr "Liczba Utworów:"
-
-#~ msgid "variable"
-#~ msgstr "zmienna"
-
-#~ msgid "BPM:"
-#~ msgstr "BPM:"
-
-#~ msgid "BPM (wavg):"
-#~ msgstr "BPM (Årednia):"
-
-#~ msgid "Time Div:"
-#~ msgstr "Time Div:"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "Wtyczka audio CD"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "Utwór %02u pÅyty CD Audio"
-
-#~ msgid "(unknown)"
-#~ msgstr "(nieznany)"
-
-#~ msgid "Drive %d"
-#~ msgstr "NapÄd %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nie można otworzyÄ urzÄ
dzenia %s\n"
-#~ "BÅÄ
d: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nie można odczytaÄ \"Tablicy zawartoÅci\"\n"
-#~ "Sprawdź czy dysk jest w napÄdzie.\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "UrzÄ
dzenie %s jest OK.\n"
-#~ "Dysk ma %d Åcieżek"
-
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d Åcieżek z danymi)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "CaÅkowita dÅugoÅÄ: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "ŹródÅo dźwiÄku cyfrowego nie zostaÅo przetestowane, ponieważ dysk nie "
-#~ "zawiera Åcieżek audio\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Testowanie źródÅa dźwiÄku cyfrowego: OK\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Testowanie źródÅa dźwiÄku cyfrowego: Niepowodzenie %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to check directory %s\n"
-#~ "Error: %s"
-#~ msgstr ""
-#~ "BÅÄ
d w sprawdzaniu folderu %s\n"
-#~ "BÅÄ
d: %s"
-
-#~ msgid "Error: %s exist, but is not a directory"
-#~ msgstr "BÅÄ
d: %s isnieje, lecz nie jest to folderem"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "Folder %s jest w porzÄ
dku."
-
-#~ msgid "Device:"
-#~ msgstr "UrzÄ
dzenie:"
-
-#~ msgid "_Device:"
-#~ msgstr "_UrzÄ
dzenie:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "Ka_talog:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Tryb odtwarzania:"
-
-#~ msgid "Analog"
-#~ msgstr "Analogowy"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "Pochodzenie dźwiÄku cyfrowego"
-
-#~ msgid "No mixer"
-#~ msgstr "Brak miksera"
-
-#~ msgid "CDROM drive"
-#~ msgstr "NapÄd CDROM"
-
-#~ msgid "OSS mixer"
-#~ msgstr "Mikser OSS"
-
-#~ msgid "Check drive..."
-#~ msgstr "Sprawdź napÄd..."
-
-#~ msgid "Remove drive"
-#~ msgstr "UsuÅ napÄd"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "Konfiguracja odtwarzacza CD Audio"
-
-#~ msgid "Add drive"
-#~ msgstr "Dodaj napÄd"
-
-#~ msgid "Device"
-#~ msgstr "UrzÄ
dzenie"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "Użycie CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "Pobierz listÄ serwerów"
-
-#~ msgid "Show network window"
-#~ msgstr "WyÅwietl okno sieciowe"
-
-#~ msgid "CDDB server:"
-#~ msgstr "Serwer CDDB:"
-
-#~ msgid "CD Index:"
-#~ msgstr "Indeks pÅyt CD:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "Użycie indeksu pÅyt CD"
-
-#~ msgid "CD Index server:"
-#~ msgstr "Serwer indeksu pÅyt CD:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "Nie stosowanie ogólnych tytuÅów"
-
-#~ msgid "Name format:"
-#~ msgstr "Format nazwy:"
-
-#~ msgid "CD Info"
-#~ msgstr "Informacje o pÅycie CD"
-
-#~ msgid "About the Console Music Decoder"
-#~ msgstr "Informacje o Console Music Decoder"
-
-#~ msgid ""
-#~ "Console music decoder engine based on Game_Music_Emu 0.3.0.\n"
-#~ "Audacious implementation by: William Pitcock <nenolod at nenolod.net>, \n"
-#~ " Shay Green <hotpop.com at blargg>"
-#~ msgstr ""
-#~ "Console music decoder engine bazowany na Game_Music_Emu 0.3.0.\n"
-#~ "portowNy do Audacious przez: William Pitcock <nenolod at nenolod.net>, \n"
-#~ " Shay Green <hotpop.com at blargg>"
-
-#~ msgid "SPC, VGM, NSF/NSFE, GBS, and GYM module decoder"
-#~ msgstr "SPC, VGM, NSF/NSFE, GBS, and GYM module decoder"
-
-#~ msgid "Arabic (IBM-864)"
-#~ msgstr "Arabski (IBM-864)"
-
-#~ msgid "Arabic (ISO-8859-6)"
-#~ msgstr "Arabski (ISO-8859-6)"
-
-#~ msgid "Arabic (Windows-1256)"
-#~ msgstr "Arabski (Windows-1256)"
-
-#~ msgid "Baltic (ISO-8859-13)"
-#~ msgstr "BaÅtycki (ISO-8859-13)"
-
-#~ msgid "Baltic (ISO-8859-4)"
-#~ msgstr "BaÅtycki (ISO-8859-4)"
-
-#~ msgid "Baltic (Windows-1257)"
-#~ msgstr "BaÅtycki (Windows-1257)"
-
-#~ msgid "Celtic (ISO-8859-14)"
-#~ msgstr "Celtycki (ISO-8859-14)"
-
-#~ msgid "Central European (IBM-852)"
-#~ msgstr "Årodkowo-Europejski (IBM-852)"
-
-#~ msgid "Central European (ISO-8859-2)"
-#~ msgstr "Årodkowo-Europejski (ISO-8859-2)"
-
-#~ msgid "Central European (Windows-1250)"
-#~ msgstr "Årodkowo-Europejski (Windows-1250)"
-
-#~ msgid "Chinese Simplified (GB18030)"
-#~ msgstr "ChiÅski Uproszczony (GB18030)"
-
-#~ msgid "Chinese Simplified (GB2312)"
-#~ msgstr "ChiÅski Uproszczony (GB2312)"
-
-#~ msgid "Chinese Traditional (Big5)"
-#~ msgstr "ChiÅski Tradycyjny (Big5)"
-
-#~ msgid "Chinese Traditional (Big5-HKSCS)"
-#~ msgstr "ChiÅski Tradycyjny (Big5-HKSCS)"
-
-#~ msgid "Cyrillic (IBM-855)"
-#~ msgstr "Cyrylica (IBM-855)"
-
-#~ msgid "Cyrillic (ISO-8859-5)"
-#~ msgstr "Cyrylica (ISO-8859-5)"
-
-#~ msgid "Cyrillic (ISO-IR-111)"
-#~ msgstr "Cyrylica (ISO-IR-111)"
-
-#~ msgid "Cyrillic (KOI8-R)"
-#~ msgstr "Cyrylica (KOI8-R)"
-
-#~ msgid "Cyrillic (Windows-1251)"
-#~ msgstr "Cyrylica (Windows-1251)"
-
-#~ msgid "Cyrillic/Russian (CP-866)"
-#~ msgstr "Cyrylica/Rosyjski (CP-866)"
-
-#~ msgid "Cyrillic/Ukrainian (KOI8-U)"
-#~ msgstr "Cyrylica/UkraiÅski (KOI8-U)"
-
-#~ msgid "English (US-ASCII)"
-#~ msgstr "Angielski (US-ASCII)"
-
-#~ msgid "Greek (ISO-8859-7)"
-#~ msgstr "Grecki (ISO-8859-7)"
-
-#~ msgid "Greek (Windows-1253)"
-#~ msgstr "Grecki (Windows-1253)"
-
-#~ msgid "Hebrew (IBM-862)"
-#~ msgstr "Hebrajski (IBM-862)"
-
-#~ msgid "Hebrew (Windows-1255)"
-#~ msgstr "Hebrajski (Windows-1255)"
-
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "JapoÅski (EUC-JP)"
-
-#~ msgid "Japanese (ISO-2022-JP)"
-#~ msgstr "JapoÅski (ISO-2022-JP)"
-
-#~ msgid "Japanese (Shift_JIS)"
-#~ msgstr "JapoÅski (Shift_JIS)"
-
-#~ msgid "Korean (EUC-KR)"
-#~ msgstr "KoreaÅski (EUC-KR)"
-
-#~ msgid "Nordic (ISO-8859-10)"
-#~ msgstr "Nordycki (ISO-8859-10)"
-
-#~ msgid "South European (ISO-8859-3)"
-#~ msgstr "PoÅudniowo-Europejski (ISO-8859-3)"
-
-#~ msgid "Thai (TIS-620)"
-#~ msgstr "Tajski (TIS-620)"
-
-#~ msgid "Turkish (IBM-857)"
-#~ msgstr "Turecki (IBM-857)"
-
-#~ msgid "Turkish (ISO-8859-9)"
-#~ msgstr "Turecki (ISO-8859-9)"
-
-#~ msgid "Turkish (Windows-1254)"
-#~ msgstr "Turecki (Windows-1254)"
-
-#~ msgid "Unicode (UTF-7)"
-#~ msgstr "Unikod (UTF-7)"
-
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "Unikod (UTF-8)"
-
-#~ msgid "Unicode (UTF-16BE)"
-#~ msgstr "Unikod (UTF-16BE)"
-
-#~ msgid "Unicode (UTF-16LE)"
-#~ msgstr "Unikod (UTF-16LE)"
-
-#~ msgid "Unicode (UTF-32BE)"
-#~ msgstr "Unikod (UTF-32BE)"
-
-#~ msgid "Unicode (UTF-32LE)"
-#~ msgstr "Unikod (UTF-32LE)"
-
-#~ msgid "Vietnamese (VISCII)"
-#~ msgstr "Wietnamski (VISCII)"
-
-#~ msgid "Vietnamese (Windows-1258)"
-#~ msgstr "Wietnamski (Windows-1258)"
-
-#, fuzzy
-#~ msgid "Visual Hebrew (ISO-8859-8)"
-#~ msgstr "Hebrajski (ISO-8859-8)"
-
-#~ msgid "Western (IBM-850)"
-#~ msgstr "Zachodni (IBM-850)"
-
-#~ msgid "Western (ISO-8859-1)"
-#~ msgstr "Zachodni (ISO-8859-1)"
-
-#~ msgid "Western (ISO-8859-15)"
-#~ msgstr "Zachodni (ISO-8859-15)"
-
-#~ msgid "Western (Windows-1252)"
-#~ msgstr "Zachodni (Windows-1252)"
-
-#~ msgid "Arabic (IBM-864-I)"
-#~ msgstr "Arabski (IBM-864-I)"
-
-#~ msgid "Arabic (ISO-8859-6-E)"
-#~ msgstr "Arabski (ISO-8859-6-E)"
-
-#~ msgid "Arabic (ISO-8859-6-I)"
-#~ msgstr "Arabski (ISO-8859-6-I)"
-
-#~ msgid "Arabic (MacArabic)"
-#~ msgstr "Arabski (MacArabic)"
-
-#~ msgid "Armenian (ARMSCII-8)"
-#~ msgstr "ArmeÅski (ARMSCII-8)"
-
-#~ msgid "Central European (MacCE)"
-#~ msgstr "Årodkowo-Europejski (MacCE)"
-
-#~ msgid "Chinese Simplified (GBK)"
-#~ msgstr "ChiÅski Uproszczony (GBK)"
-
-#~ msgid "Chinese Simplified (HZ)"
-#~ msgstr "ChiÅski Uproszczony (HZ)"
-
-#~ msgid "Chinese Traditional (EUC-TW)"
-#~ msgstr "ChiÅski Tradycyjny (EUC-TW)"
-
-#~ msgid "Croatian (MacCroatian)"
-#~ msgstr "Chorwacki (MacCroatian)"
-
-#~ msgid "Cyrillic/Ukrainian (MacUkrainian)"
-#~ msgstr "Cyrylica/UkraiÅski (MacUkrainian)"
-
-#~ msgid "Farsi (MacFarsi)"
-#~ msgstr "Farski (MacFarsi)"
-
-#~ msgid "Greek (MacGreek)"
-#~ msgstr "Grecki (MacGreek)"
-
-#~ msgid "Hebrew (ISO-8859-8-E)"
-#~ msgstr "Hebrajski (ISO-8859-8-E)"
-
-#~ msgid "Hebrew (ISO-8859-8-I)"
-#~ msgstr "Hebrajski (ISO-8859-8-I)"
-
-#~ msgid "Hebrew (MacHebrew)"
-#~ msgstr "Hebrajski (MacHebrew)"
-
-#~ msgid "Hindi (MacDevanagari)"
-#~ msgstr "Hinduski (MacDevanagari)"
-
-#~ msgid "Icelandic (MacIcelandic)"
-#~ msgstr "Islandzki (MacIcelandic)"
-
-#~ msgid "Korean (JOHAB)"
-#~ msgstr "KoreaÅski (JOHAB)"
-
-#~ msgid "Korean (UHC)"
-#~ msgstr "KoreaÅski (UHC)"
-
-#~ msgid "Romanian (MacRomanian)"
-#~ msgstr "RumuÅski (MacRomanian)"
-
-#~ msgid "Turkish (MacTurkish)"
-#~ msgstr "Turecki (MacTurkish)"
-
-#~ msgid "User Defined"
-#~ msgstr "Zdefiniowany przez użytkownika:"
-
-#~ msgid "Vietnamese (TCVN)"
-#~ msgstr "Wietnamski (TCVN)"
-
-#~ msgid "Vietnamese (VPS)"
-#~ msgstr "Wietnamski (VPS)"
-
-#~ msgid "Western (MacRoman)"
-#~ msgstr "Zachodni (MacRoman)"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "Wybór folderu przechowujÄ
cego strumienie MPEG:"
-
-#~ msgid "Flac Configuration"
-#~ msgstr "Konfiguracja wtyczki FLAC"
-
-#~ msgid "Tag Handling"
-#~ msgstr "Preferencje Znaczników"
-
-#~ msgid "Convert character set from :"
-#~ msgstr "Konwertuj TablicÄ KodowÄ
z :"
-
-#~ msgid "to :"
-#~ msgstr "do :"
-
-#~ msgid "Enable ReplayGain processing"
-#~ msgstr "WÅÄ
czenie powtarzania uzyskanego"
-
-#~ msgid "Resolution"
-#~ msgstr "RozdzielczoÅÄ:"
-
-#~ msgid "Without ReplayGain"
-#~ msgstr "Bez Powtarzania uzyskanego"
-
-#~ msgid "With ReplayGain"
-#~ msgstr "Wraz z powtarzaj uzyskanym"
-
-#~ msgid "Noise shaping"
-#~ msgstr "GÅadzenie szumu"
-
-#~ msgid "high"
-#~ msgstr "wysoki"
-
-#~ msgid "16 bps"
-#~ msgstr "16 bitów"
-
-#~ msgid "24 bps"
-#~ msgstr "24 bity"
-
-#~ msgid "Output"
-#~ msgstr "WyjÅcie"
-
-#~ msgid "Buffering:"
-#~ msgstr "Buforowanie:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "Rozmiar bufora (kb):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "WstÄpne wypeÅnienie bufora (procenty):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "Zapis strumienia na dysku:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "WÅÄ
czenie zapisu strumienia na dysk"
-
-#~ msgid "Path:"
-#~ msgstr "PoÅożenie:"
-
-#~ msgid "Browse"
-#~ msgstr "PrzeglÄ
daj"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Enable SHOUT/Icecast title streaming"
-#~ msgstr "WÅÄ
czenie strumieniowania tytuÅu SHOUT/Icecast"
-
-#~ msgid "Enable Icecast Metadata UDP Channel"
-#~ msgstr "WÅÄ
czenie kanaÅu Icecast Metadata UDP"
-
-#~ msgid "Streaming"
-#~ msgstr "Strumieniowanie"
-
-#~ msgid "About Flac Plugin"
-#~ msgstr "Informacje o wtyczce FLAC"
-
-#~ msgid ""
-#~ "Flac Plugin by Josh Coalson\n"
-#~ "contributions by\n"
-#~ "......\n"
-#~ "......\n"
-#~ "and\n"
-#~ "Daisuke Shimamura\n"
-#~ "Visit http://flac.sourceforge.net/"
-#~ msgstr ""
-#~ "Wtyczka Flac autorstwa Josh Coalson\n"
-#~ "w wspóÅpracy z\n"
-#~ "......\n"
-#~ "......\n"
-#~ "oraz\n"
-#~ "Daisuke Shimamura\n"
-#~ "Odwiedź http://flac.sourceforge.net/"
-
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "Próbkowanie: %d Hz"
-
-#~ msgid "Channels: %d"
-#~ msgstr "KanaÅy: %d"
-
-#~ msgid "Bits/Sample: %d"
-#~ msgstr "Bity/PróbkÄ: %d"
-
-#~ msgid "Blocksize: %d"
-#~ msgstr "Rozmiar bloku: %d"
-
-#~ msgid ""
-#~ "Blocksize: variable\n"
-#~ " min/max: %d/%d"
-#~ msgstr ""
-#~ "Rozmiar bloku: zmienna\n"
-#~ " min/max: %d/%d"
-
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr "Sample: %llu\\nDÅugoÅÄ: %d:%d"
-
-#~ msgid "Filesize: %ld B"
-#~ msgstr "Rozmiar pliku: %ld B"
-
-#~ msgid ""
-#~ "Avg. bitrate: %.1f kb/s\n"
-#~ "Compression ratio: %.1f%%"
-#~ msgstr ""
-#~ "Årednie bitrate: %.1f kb/s\n"
-#~ "WspóÅczynnik kompresji: %.1f%%"
-
-#~ msgid "Tag:"
-#~ msgstr "Znacznik:"
-
-#~ msgid "Comment:"
-#~ msgstr "Komentarz:"
-
-#~ msgid "Date:"
-#~ msgstr "Data:"
-
-#~ msgid "Track number:"
-#~ msgstr "Numer utworu:"
-
-#~ msgid "Genre:"
-#~ msgstr "Gatunek:"
-
-#~ msgid "Remove Tag"
-#~ msgstr "UsuÅ Znacznik"
-
-#~ msgid "FLAC Info:"
-#~ msgstr "Informacje o pliku FLAC"
-
-#~ msgid "File Info - %s"
-#~ msgstr "Informacje o pliku %s"
-
-#~ msgid "Error"
-#~ msgstr "BÅÄ
d"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "WYSZUKIWANIE %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Nie można odnaleÅºÄ serwera %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "ÅÄCZENIE SIÄ Z %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Nie można poÅÄ
czyÄ siÄ z serwerem %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "POÅÄCZENIE: OCZEKIWANIE NA ODPOWIEDŹ"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Nie można poÅÄ
czyÄ siÄ z serwerem %s\n"
-#~ "Serwer zwróciÅ: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "WSTÄPNE BUFOROWANIE: %dKB/%dKB"
-
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "Wtyczka FLAC"
-
-#~ msgid "ModPlug Configuration"
-#~ msgstr "Konfiguracja wtyczki ModPlug"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bitów"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bitów"
-
-#~ msgid "Mono (downmix)"
-#~ msgstr "Mono (downmix)"
-
-#~ msgid "Nearest (fastest)"
-#~ msgstr "Najbliższy (najszybszy)"
-
-#~ msgid "Linear (fast)"
-#~ msgstr "Liniowy (szybki)"
-
-#~ msgid "Spline (good quality)"
-#~ msgstr "Spline (dobra jakoÅÄ)"
-
-#~ msgid "8-tap Fir (extremely high quality)"
-#~ msgstr "8-tap Fir (ekstremalnie wysoka jakoÅÄ)"
-
-#~ msgid "Use Filename as Song Title"
-#~ msgstr "Użyj nazwy pliku jako tytuŠpiosenki"
-
-#~ msgid "Fast Playlist Info"
-#~ msgstr "Szybka informacja playlisty"
-
-#~ msgid "Noise Reduction"
-#~ msgstr "Redukcja Szumu"
-
-#~ msgid "Play Amiga MOD"
-#~ msgstr "Graj Amiga MOD"
-
-#~ msgid "Depth"
-#~ msgstr "GÅÄbia"
-
-#~ msgid "Delay"
-#~ msgstr "Opóźnienie"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Podbicie Basów"
-
-#~ msgid "Amount"
-#~ msgstr "IloÅÄ"
-
-#~ msgid "Range"
-#~ msgstr "Zakres"
-
-#~ msgid ""
-#~ "Note: Setting the preamp too high may cause\n"
-#~ "clipping / distortion!"
-#~ msgstr ""
-#~ "ZapamiÄtaj: ustawienie wzmocnienia za wysoko\n"
-#~ "może prowadziÄ do zakÅuceÅ!"
-
-#~ msgid "Looping"
-#~ msgstr "Powtarzanie"
-
-#~ msgid "Loop"
-#~ msgstr "Powtórzenie"
-
-#~ msgid "time(s)"
-#~ msgstr "czas(s)"
-
-#~ msgid "Loop forever"
-#~ msgstr "Powtarzaj bez koÅca"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "MOD Info"
-#~ msgstr "Informacje o MOD"
-
-#~ msgid ""
-#~ "Filename:\n"
-#~ "Title:\n"
-#~ "Type:\n"
-#~ "Length:\n"
-#~ "Speed:\n"
-#~ "Tempo:\n"
-#~ "Samples:\n"
-#~ "Instruments:\n"
-#~ "Patterns:\n"
-#~ "Channels:"
-#~ msgstr ""
-#~ "Nazwa Pliku:\n"
-#~ "TytuÅ:\n"
-#~ "Typ:\n"
-#~ "DÅugoÅÄ:\n"
-#~ "PrÄdkoÅÄ:\n"
-#~ "Tempo:\n"
-#~ "Sample:\n"
-#~ "Instrumenty:\n"
-#~ "Patterns:\n"
-#~ "KanaÅy:"
-
-#~ msgid "Samples"
-#~ msgstr "Sample"
-
-#~ msgid "Instruments"
-#~ msgstr "Instrumenty"
-
-#~ msgid "Message"
-#~ msgstr "WiadomoÅÄ"
-
-#~ msgid "Modplug Input Plugin for Audacious ver"
-#~ msgstr "Modplug Input Plugin dla Audacious"
-
-#~ msgid ""
-#~ "\n"
-#~ "Modplug sound engine written by Olivier Lapicque.\n"
-#~ "XMMS interface for Modplug by Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque and Kenton Varda.\n"
-#~ "Updates and Maintainance by Konstanty Bialkowski.\n"
-#~ "Ported to BMP by Theofilos Intzoglou."
-#~ msgstr ""
-#~ "\n"
-#~ "Modplug sound engine napisany przez Olivier Lapicque.\n"
-#~ "XMMS interface dla Modplug przez Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque oraz Kenton Varda.\n"
-#~ "Poprawki i opieka przez Konstanty Bialkowski.\n"
-#~ "Portowany do BMP przez Theofilos Intzoglou."
-
-#~ msgid "About Modplug"
-#~ msgstr "Informacje o wtyczce Modplug"
-
-#~ msgid "Couldn't find pixmap file: %s"
-#~ msgstr "Nie mógÅ odnaleÅÄ pliku pixmap: %s"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "Konfiguracja wtyczki audio MPEG"
-
-#~ msgid "Resolution:"
-#~ msgstr "RozdzielczoÅÄ:"
-
-#~ msgid "Channels:"
-#~ msgstr "KanaÅy:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Stereo (jeÅli to możliwe)"
-
-#~ msgid "Down sample:"
-#~ msgstr "Obniżenie próbkowania:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 kHz)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 kHz)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 kHz)"
-
-#~ msgid "Decoder"
-#~ msgstr "Dekoder"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "Znacznik ID3:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "Format ID3:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "ÅÄ
czone stereo"
-
-#~ msgid "Dual channel"
-#~ msgstr "Podwójny kanaÅ"
-
-#~ msgid "Single channel"
-#~ msgstr "Pojedynczy kanaÅ"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d KBit/s"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Hz"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 ms"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "Nie"
-
-#~ msgid "Yes"
-#~ msgstr "Tak"
-
-#~ msgid " MPEG Info "
-#~ msgstr " Informacje MPEG"
-
-#~ msgid "MPEG Level:"
-#~ msgstr "Poziom MPEG"
-
-#~ msgid "Bit rate:"
-#~ msgstr "SzybkoÅÄ:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Próbkowanie:"
-
-#~ msgid "File size:"
-#~ msgstr "Rozmiar pliku:"
-
-#~ msgid "Mode:"
-#~ msgstr "Tryb:"
-
-#~ msgid "Error Protection:"
-#~ msgstr "Ochrona przed bÅÄdami:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Prawa WÅasnoÅci:"
-
-#~ msgid "Original:"
-#~ msgstr "OryginaÅ:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "Emfaza:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr " Znacznik ID3"
-
-#~ msgid "Year:"
-#~ msgstr "Rok:"
-
-#~ msgid "N/A"
-#~ msgstr "N/D"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu bajtów"
-
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Nie można poÅÄ
czyÄ siÄ z serwerem %s:%d"
-
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "WSTÄPNE BUFOROWANIE: %zuKB/%zuKB"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "Informacje o wtyczce audio MPEG"
-
-#~ msgid ""
-#~ "Audacious decoding engine by William Pitcock <nenolod at nenolod.net>, "
-#~ "derived from:\n"
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Derived partially from mpg123 0.59s.mc3 as well.\n"
-#~ "Based on the original XMMS plugin."
-#~ msgstr ""
-#~ "Audacious decoding engine przez William Pitcock <nenolod at nenolod.net>, na "
-#~ "bazie:\n"
-#~ "mpg123 decoding engine przez Michael Hipp <mh at mpg123.de>\n"
-#~ "CzeÅciowo także z mpg123 0.59s.mc3.\n"
-#~ "Bazowany na orginalnym pluginie XMMS."
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "Wtyczka audio MPEG"
-
-#~ msgid "TiMidity Configuration"
-#~ msgstr "Konfiguracja wtyczki TiMidity"
-
-#~ msgid "22000 Hz"
-#~ msgstr "22 kHz"
-
-#~ msgid "44100 Hz"
-#~ msgstr "44 kHz"
-
-#~ msgid "Sample Width"
-#~ msgstr "Próbkowanie:"
-
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "Konfiguracja wtyczki TiMidity"
-
-#~ msgid ""
-#~ "TiMidity Plugin\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "by Konstantin Korikov"
-#~ msgstr ""
-#~ "Wtyczka TiMidity\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "przez Konstantin Korikov"
-
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "Wtyczka TiMidity %s"
-
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Nie można wczytaÄ pliku MIDI"
-
-#~ msgid "About Tone Generator"
-#~ msgstr "O Tone Generatorze"
-
-#~ msgid ""
-#~ "Sinus tone generator by Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Modified by Daniel J. Peng <danielpeng at bigfoot.com>\n"
-#~ "\n"
-#~ "To use it, add a URL: tone://frequency1;frequency2;frequency3;...\n"
-#~ "e.g. tone://2000;2005 to play a 2000Hz tone and a 2005Hz tone"
-#~ msgstr ""
-#~ "Sinus tone generator przez Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Zmodyfikowany przez Daniel J. Peng <danielpeng at bigfoot.com>\n"
-#~ "\n"
-#~ "By użyÄ dodaj URL: tone://frequency1;frequency2;frequency3;...\n"
-#~ "np. tone://2000;2005 by zagraÄ tony 2000Hz i 2005Hz."
-
-#~ msgid "Tone Generator: "
-#~ msgstr "Generator Tonów"
-
-#~ msgid "Tone Generator %s"
-#~ msgstr "Generator Tonów %s"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr "Wybierz folderu przechowujÄ
cego strumienie Ogg Vorbis:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "Konfiguracja wtyczki audio Ogg Vorbis"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Znaczniki Ogg Vorbis"
-
-#~ msgid "ReplayGain Settings:"
-#~ msgstr "Ustawienia powtarzania uzyskanego:"
-
-#~ msgid "ReplayGain Type:"
-#~ msgstr "Typ powtarzania uzyskanego:"
-
-#~ msgid "use Track Gain/Peak"
-#~ msgstr "użycie utworu uzyskanego/szczytowego"
-
-#~ msgid "use Album Gain/Peak"
-#~ msgstr "użyj albumu uzyskanego/szczytowego"
-
-#~ msgid "Enable 6dB Boost + Hard Limiting"
-#~ msgstr "WÅÄ
czenie 6dB wzmocnienia i twardego ograniczenia"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "WystÄ
piÅ bÅÄ
d:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "BÅÄ
d!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Nie udaÅo siÄ zmodyfikowaÄ znacznika (otwarcie)"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Nie udaÅo siÄ zmodyfikowaÄ znacznika (zamkniÄcie)"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Nie udaÅo siÄ zmodyfikowaÄ znacznika"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Znacznik Ogg Vorbis "
-
-#~ msgid "Description:"
-#~ msgstr "Opis:"
-
-#~ msgid "Version:"
-#~ msgstr "Wersja:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "Numer ISRC:"
-
-#~ msgid "Organization:"
-#~ msgstr "Organizacja:"
-
-#~ msgid " Ogg Vorbis ReplayGain "
-#~ msgstr "Powtarzanie uzyskane Ogg Vorbis"
-
-#~ msgid "Album peak:"
-#~ msgstr "Szczytowe uzyskanie Albumu:"
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr " Informacje Ogg Vorbis"
-
-#~ msgid "Length:"
-#~ msgstr "DÅugoÅÄ:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d KBit/s (nominalnie)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Hz"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d bajtów"
-
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Wtyczka audio Ogg Vorbis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "Informacje o wtyczce audio Ogg Vorbis"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Wtyczka Ogg Vorbis autorstwa fundacji Xiph.org\n"
-#~ "\n"
-#~ "Autor oryginalnego kodu:\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "WspóÅpracownicy:\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Odwiedź fundacjÄ Xiph.org na stronie http://www.xiph.org/\n"
-
-#~ msgid "About sndfile WAV support"
-#~ msgstr "O pluginie sndfile WAV"
-
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA 02110-1301 USA"
-#~ msgstr ""
-#~ "Adaptowany dla Audacious przez Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "z plugina xmms_sndfile autorstwa:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ " Jest to program darmowy; możesz go rozprowadzaÄ i/lub modyfikowaÄ\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadziejÄ
, że bÄdzie użyteczny,\n"
-#~ "ale BEZ Å»ADNEJ GWARANCJI; nie zawierajÄ
cej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÃLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskaÄ wiÄcej informacji.\n"
-#~ "\n"
-#~ "PowinieneÅ otrzymaÄ kopiÄ GNU General Public License razem\n"
-#~ "z tym programem; jeÅli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid "sndfile WAV plugin"
-#~ msgstr "plugin sndfile WAV"
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "Wtyczka audio WAV"
-
-#~ msgid "WMA Player %s"
-#~ msgstr "Player WMA %s"
-
-#~ msgid "About %s"
-#~ msgstr "Informacje o %s"
-
-#~ msgid " Close "
-#~ msgstr "Zamknij"
-
-#~ msgid "OSS Output Plugin"
-#~ msgstr "Wtyczka wyjÅciowa OSS"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "Informacje o sterowniku OSS"
-
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Audacious - sterownik OSS\n"
-#~ "\n"
-#~ "Jest to program darmowy; możesz go rozprowadzaÄ i/lub modyfikowaÄ\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadziejÄ
, że bÄdzie użyteczny,\n"
-#~ "ale BEZ Å»ADNEJ GWARANCJI; nie zawierajÄ
cej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÃLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskaÄ wiÄcej informacji.\n"
-#~ "\n"
-#~ "PowinieneÅ otrzymaÄ kopiÄ GNU General Public License razem\n"
-#~ "z tym programem; jeÅli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "DomyÅlnie (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "Konfiguracja sterownika OSS"
-
-#~ msgid "Audio device:"
-#~ msgstr "UrzÄ
dzenie dźwiÄkowe:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "Użycie alternatywnego urzÄ
dzenia:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "UrzÄ
dzenie miksera:"
-
-#~ msgid "Devices"
-#~ msgstr "UrzÄ
dzenia"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "Ustawienia miksera:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Zmiana gÅoÅnoÅci poprzez kanaÅ zbiorczy, a nie PCM"
-
-#~ msgid "Mixer"
-#~ msgstr "Mikser"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "Informacje o sterowniku ALSA"
-
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "Audacious - sterownik ALSA\n"
-#~ "\n"
-#~ "Jest to program darmowy; możesz go rozprowadzaÄ i/lub modyfikowaÄ\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadziejÄ
, że bÄdzie użyteczny,\n"
-#~ "ale BEZ Å»ADNEJ GWARANCJI; nie zawierajÄ
cej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÃLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskaÄ wiÄcej informacji.\n"
-#~ "\n"
-#~ "PowinieneÅ otrzymaÄ kopiÄ GNU General Public License razem\n"
-#~ "z tym programem; jeÅli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "Wtyczka wyjÅciowa ALSA %s"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "Nieznana karta dźwiÄkowa"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "DomyÅlnie urzÄ
dzenie PCM (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "Konfiguracja sterownika ALSA"
-
-#~ msgid "Mixer:"
-#~ msgstr "Mikser:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "Karta miksera:"
-
-#~ msgid "Device settings"
-#~ msgstr "Ustawienia urzÄ
dzenia"
-
-#~ msgid "Soundcard:"
-#~ msgstr "Karta DżwiÄkowa:"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "DÅugoÅÄ okresu (ms):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Zaawansowane ustawienia"
-
-#~ msgid "aRts Driver configuration"
-#~ msgstr "Konfiguracja sterownika aRts"
-
-#~ msgid "Disk Writer Plugin %s"
-#~ msgstr "Wtyczka Disk Writer %s"
-
-#~ msgid ""
-#~ "You cannot use the Disk Writer plugin\n"
-#~ "when you're running in realtime mode."
-#~ msgstr ""
-#~ "Nie możesz użyÄ wtyczki Disk Writer\n"
-#~ "bÄdÄ
c w trybie czasu rzeczywistego."
-
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "Wybór folderu przechowujÄ
cego plik wynikowy:"
-
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "Konfiguracja wtyczki Disk Writer"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "Informacje o wtyczce ESound"
-
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Audacious - wtyczka ESounD\n"
-#~ "\n"
-#~ " Jest to program darmowy; możesz go rozprowadzaÄ i/lub modyfikowaÄ\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadziejÄ
, że bÄdzie użyteczny,\n"
-#~ "ale BEZ Å»ADNEJ GWARANCJI; nie zawierajÄ
cej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÃLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskaÄ wiÄcej informacji.\n"
-#~ "\n"
-#~ "PowinieneÅ otrzymaÄ kopiÄ GNU General Public License razem\n"
-#~ "z tym programem; jeÅli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid "Host:"
-#~ msgstr "Serwer:"
-
-#~ msgid "Use remote host"
-#~ msgstr "Użycie zdalnego serwera"
-
-#~ msgid "Volume controls OSS mixer"
-#~ msgstr "Zmiany gÅoÅnoÅci poprzez mikser OSS"
-
-#~ msgid "Server"
-#~ msgstr "Serwer"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "Wtyczka wyjÅciowa eSound"
-
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "Wtyczka wyjÅciowa JACK v0.15"
-
-#~ msgid ""
-#~ "XMMS jack Driver 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Audacious port by\n"
-#~ "Giacomo Lozito from develia.org"
-#~ msgstr ""
-#~ "XMMS jack Driver 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Port Audacious przez\n"
-#~ "Giacomo Lozito z develia.org"
-
-#~ msgid "About the Sun Driver"
-#~ msgstr "Informacje o sterowniku Sun"
-
-#~ msgid ""
-#~ "XMMS BSD Sun Driver\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Maintainer: <vedge at csoft.org>.\n"
-#~ msgstr ""
-#~ "Sterownik Audacious BSD Sun\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Opieka: <vedge at csoft.org>.\n"
-
-#~ msgid "Audio control device:"
-#~ msgstr "UrzÄ
dzenie kontroli dźwiÄku:"
-
-#~ msgid "Volume controls device:"
-#~ msgstr "UrzÄ
dzenie zmiany gÅoÅnoÅci:"
-
-#~ msgid "XMMS uses mixer exclusively."
-#~ msgstr "WyÅÄ
czne uźycie mixera przez Audacious"
-
-#~ msgid "Status"
-#~ msgstr "Status"
-
-#~ msgid "Sun driver configuration"
-#~ msgstr "Konfiguracja sterownika Sun"
-
-#~ msgid "BSD Sun Driver %s"
-#~ msgstr "Sterownik BSD Sun %s"
-
-#~ msgid "Blur scope"
-#~ msgstr "Zakres plam"
-
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Zakres plam: Ywbór koloru"
-
-#~ msgid "Options:"
-#~ msgstr "Opcje:"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** USUNIÄTO PODWÃJNY ROZMIAR **"
-
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>PrzeźroczystoÅÄ</b>"
-
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "Konfiguracja wtyczki Scrobbler"
-
-#~ msgid "Warning"
-#~ msgstr "Ostrzeżenie"
-
-#~ msgid ""
-#~ "Filename and song title tags should be inside double quotes (\"). Not "
-#~ "doing so might be a security risk. Continue anyway?"
-#~ msgstr ""
-#~ "Nazwa pliku oraz znaczniki tytuÅu piosenki powinny byÄ poÅród cudzysÅowów "
-#~ "(\"). Ich brak może byÄ ryzykiem dla bezpieczeÅstwa. KontynuÅowaÄ mimo "
-#~ "to?"
-
-#, fuzzy
-#~ msgid "Song Change Configuration"
-#~ msgstr "Konfiguracja Zmiany Piosenki"
-
-#~ msgid "Song Metadata"
-#~ msgstr "Informacje o utworze"
-
-#~ msgid "Port"
-#~ msgstr "Port"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "Nazwa pliku"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "Nazwa utworu"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "UrzÄ
dzenie wyjÅciowe ALSA %s"
-
-#~ msgid "pre-calculate length of MIDI files in playlist"
-#~ msgstr "wtÄpna kalkulacja dÅugoÅci plików MIDI w playliÅcie"
-
-#~ msgid ""
-#~ "* Select ALSA output ports *\n"
-#~ "MIDI events will be sent to the ports selected here. At least one port "
-#~ "must be selected in order to play MIDI with AMIDI-Plug. Unless you know "
-#~ "what you're doing, you'll probably want to use the wavetable synthesizer "
-#~ "ports."
-#~ msgstr ""
-#~ "* Wybierz urzÄ
dzneie wyjÅciowe ALSA *\n"
-#~ "MIDI bÄdzie grana przy użyciu tego urzÄ
dzenia. Przynajmniej jedno "
-#~ "urzÄ
dzeniemusi byÄ wybrane by móc graÄ MIDI poprzez AMIDI-Plug. JeÅli nie "
-#~ "wiesz które wybraÄ najprawdopodobniej najlepszym wyborem bÄdzie "
-#~ "syntezator wavetable."
-
-#~ msgid ""
-#~ "* Select ALSA mixer control *\n"
-#~ "AMIDI-Plug outputs directly through ALSA, it doesn't use effect and ouput "
-#~ "plugins from the player. While playing with AMIDI-Plug, the player volume "
-#~ "will manipulate the control you select here. Unless you know what you're "
-#~ "doing, you'll probably want to select the Synth control here."
-#~ msgstr ""
-#~ "* Wybierz mixer ALSA do kontroli *\n"
-#~ "AMIDI-Plug gra bezpoÅrednio przez ALSA, nieużywa efektów dodawanych "
-#~ "przez pluginy wyjÅciowe. Podczas gry przy użyciu AMIDI-Plug, program "
-#~ "bÄdzie zmieniaÅ gÅoÅnoÅÄ w kontrolerze tu wybranym. JeÅli nie wiesz które "
-#~ "wybraÄ najprawdopodobniej najlepszym wyborem bÄdzie Synth Control."
-
-#~ msgid ""
-#~ "* Pre-calculate MIDI length *\n"
-#~ "If this option is enabled, AMIDI-Plug will calculate the MIDI file length "
-#~ "as soon as the player requests it, instead of doing that only when the "
-#~ "the MIDI file is being played. In example, MIDI length will be calculated "
-#~ "straight after adding MIDI files in a playlist. Disable this option if "
-#~ "you want faster playlist loading (when a lot of MIDI files are added), "
-#~ "enable it to display more information in the playlist straight after "
-#~ "loading."
-#~ msgstr ""
-#~ "* WtÄpne obliczenie dÅugoÅci MIDI *\n"
-#~ "JeÅli ta opcja jest wÅÄ
czona, AMIDI-Plug obliczy dÅugoÅÄ pliku MIDI w "
-#~ "momencie gdy zostanie takÄ
instrukcjÄ z playera, zamiast dokonaÄ tego "
-#~ "jedynie gdy plik MIDI jest odtwarzany. Np., DÅugoÅÄ MIDI bÄdzie obliczona "
-#~ "po dodaniu pliku MIDI do playlisty. WyÅÄ
cz tÄ
opcjÄ jeÅli zależy ci na "
-#~ "szybszem wczytaniu siÄ playlisty (kiedy duża iloÅÄ plików MIDI jest "
-#~ "dodawana), wÅÄ
cz by wyÅwietliÄ wiÄcej informacji o plikach zaraz po "
-#~ "wczytaniu listy."
-
-#~ msgid ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-#~ msgstr ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr "Konwertuj znaczniki nie-UTF8 do UTF8"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "Enkodowanie ID3:"
-
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "Konwertuj znaczniki nie-UTF8 do UTF8"
-
-#~ msgid "Vorbis encoding:"
-#~ msgstr "Enkodowanie Vorbis"
-
-#~ msgid "Info dialog is already opened!\n"
-#~ msgstr "Okno informacji jest już otwarte!\n"
-
-#~ msgid "%02d:%02d:%02d"
-#~ msgstr "%02d:%02d:%02d"
-
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>Wersja WMA</b>"
-
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "<b>KanaÅy:</b>"
-
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Rozmiar pliku</b>"
-
-#~ msgid "WMA Info"
-#~ msgstr "Informacje o pliku WMA"
-
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>Komentarz:</b>"
-
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>Åcieżka:</b>"
-
-#~ msgid "Tags"
-#~ msgstr "Znaczniki"
-
-#~ msgid "Audacious:"
-#~ msgstr "Audacious:"
-
-#~ msgid "George Averill"
-#~ msgstr "George Averill"
-
-#~ msgid "Giacomo Lozito"
-#~ msgstr "Giacomo Lozito"
-
-#~ msgid "William Pitcock"
-#~ msgstr "William Pitcock"
-
-#~ msgid "Derek Pomery"
-#~ msgstr "Derek Pomery"
-
-#~ msgid "Tony Vroon"
-#~ msgstr "Tony Vroon"
-
-#~ msgid "Yoshiki Yazawa"
-#~ msgstr "Yoshiki Yazawa"
-
-#~ msgid "Stephan Sokolow"
-#~ msgstr "Stephan Sokolow"
-
-#~ msgid "Kiyoshi Aman"
-#~ msgstr "Kiyoshi Aman"
-
-#~ msgid "Shay Green"
-#~ msgstr "Shay Green"
-
-#~ msgid "Mohammed Sameer"
-#~ msgstr "Mohammed Sameer"
-
-#~ msgid "Artem Baguinski"
-#~ msgstr "Artem Baguinski"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Andrei Badea"
-#~ msgstr "Andrei Badea"
-
-#~ msgid "Peter Behroozi"
-#~ msgstr "Peter Behroozi"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Liviu Danicel"
-#~ msgstr "Liviu Danicel"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastian Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev"
-
-#~ msgid "Jolan Luff"
-#~ msgstr "Jolan Luff"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michael Marineau"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Julien Portalier"
-#~ msgstr "Julien Portalier"
-
-#~ msgid "Andrew Ruder"
-#~ msgstr "Andrew Ruder"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Philipi Pinto"
-#~ msgstr "Philipi Pinto"
-
-#~ msgid "Thierry Vignaud"
-#~ msgstr "Thierry Vignaud"
-
-#~ msgid "Chao-Hsiung Liao"
-#~ msgstr "Chao-Hsiung Liao"
-
-#~ msgid "Jan Narovec"
-#~ msgstr "Jan Narovec"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "Pauli Virtanen"
-#~ msgstr "Pauli Virtanen"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "George Machitidze"
-#~ msgstr "George Machitidze"
-
-#~ msgid "Kouzinopoulos Haris"
-#~ msgstr "Kouzinopoulos Haris"
-
-#~ msgid "Stavros Giannouris"
-#~ msgstr "Stavros Giannouris"
-
-#~ msgid "Dhananjaya Sharma"
-#~ msgstr "Dhananjaya Sharma"
-
-#~ msgid "Laszlo Dvornik"
-#~ msgstr "Laszlo Dvornik"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "Dai"
-#~ msgstr "Dai"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Arangel Angov"
-#~ msgstr "Arangel Angov"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Vitaly Lipatov"
-#~ msgstr "Vitaly Lipatov"
-
-#~ msgid "Pavel Kanzelsberger"
-#~ msgstr "Pavel Kanzelsberger"
-
-#~ msgid "Gustavo D. Vranjes"
-#~ msgstr "Gustavo D. Vranjes"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "Mykola Lynnyk"
-#~ msgstr "Mykola Lynnyk"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Wtyczki</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "_Lista wtyczek:"
-
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Zmiany w ustawieniach zostaÅy zapisane, \n"
-#~ "ale zacznÄ
dziaÅaÄ dopiero przy \n"
-#~ "uruchomieniu nastÄpnego utworu!\n"
-#~ "\n"
-#~ "Opcjonalnie możesz zatrzymaÄ i ponownie \n"
-#~ "wÅÄ
czyÄ utwór, żeby wprowadziÄ zmiany."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>WyglÄ
d</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Mysz</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Lista odtwarzania</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Korektor graficzny</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Connectivity</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>SieÄ</b></span>"
-
-#~ msgid "Use proxy"
-#~ msgstr "Użycie poÅrednika"
-
-#~ msgid "Frames:"
-#~ msgstr "Ramki:"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to write to file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nie można zapisaÄ do pliku: %s"
-
-#~ msgid "Couldn't write tag!"
-#~ msgstr "Nie można zapisaÄ znacznika!"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to open file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nie można otworzyÄ pliku: %s"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to truncate file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nie można obciÄ
Ä pliku: %s"
-
-#~ msgid "Couldn't remove tag!"
-#~ msgstr "Nie można usunÄ
Ä znacznika!"
-
-#~ msgid "No tag to remove!"
-#~ msgstr "Brak znacznika do usuniÄcia"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "Informacje o wtyczce TiMidity"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin"
-#~ msgstr "Wtyczka TiMidity"
-
-#~ msgid "Content"
-#~ msgstr "ZawartoÅÄ"
-
-#~ msgid "Extension"
-#~ msgstr "Rozszerzenie"
-
-#~ msgid "Extension and content"
-#~ msgstr "Rozszerzenie i zawartoÅÄ"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2000-2004 Peter Eisenlohr <peter at eisenlohr.org>\n"
-#~ "\n"
-#~ "based on the original OSS Output Plugin Copyright (C) 1998-2000\n"
-#~ "Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front "
-#~ "Technologies\n"
-#~ "\n"
-#~ "This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Audacious - wtyczka OSS\n"
-#~ "\n"
-#~ " Jest to program darmowy; możesz go rozprowadzaÄ i/lub modyfikowaÄ\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadziejÄ
, że bÄdzie użyteczny,\n"
-#~ "ale BEZ Å»ADNEJ GWARANCJI; nie zawierajÄ
cej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÃLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskaÄ wiÄcej informacji.\n"
-#~ "\n"
-#~ "PowinieneÅ otrzymaÄ kopiÄ GNU General Public License razem\n"
-#~ "z tym programem; jeÅli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid " Enable"
-#~ msgstr "WÅÄ
czona"
-
-#~ msgid "About XMMS Crossfade Plugin"
-#~ msgstr "Informacje o wtyczce Crossfade"
-
-#~ msgid "Advanced XF"
-#~ msgstr "Zaawansowane XF"
-
-#~ msgid "Advanced options"
-#~ msgstr "Zaawansowane ustawienia"
-
-#~ msgid "Configure"
-#~ msgstr "Konfiguruj"
-
-#~ msgid "Crossfade"
-#~ msgstr "Crossfade"
-
-#~ msgid "Crossfader"
-#~ msgstr "Crossfader"
-
-#~ msgid "Enable volume control"
-#~ msgstr "WÅÄ
cz zmianÄ gÅoÅnoÅci"
-
-#~ msgid "Limit OP buffer usage (ms):"
-#~ msgstr "Limituj użycie bufora OP (ms):"
-
-#, fuzzy
-#~ msgid "Mixing buffer size (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Plugin compatibility options"
-#~ msgstr "Tryb zgodnoÅci pluginów"
-
-#~ msgid "Position:"
-#~ msgstr "Pozycja:"
-
-#~ msgid "Quality:"
-#~ msgstr "JakoÅÄ:"
-
-#, fuzzy
-#~ msgid "Rate:"
-#~ msgstr "Rok:"
-
-#~ msgid "Reopen"
-#~ msgstr "Otwórz ponownie"
-
-#~ msgid "Use plugin"
-#~ msgstr "Użyj wtyczki"
-
-#~ msgid "Volume control options"
-#~ msgstr "Opcje zmiany gÅoÅnoÅci:"
-
-#, fuzzy
-#~ msgid "Volume normalizer"
-#~ msgstr "Zmiana gÅoÅnoÅci:"
-
-#, fuzzy
-#~ msgid "same file"
-#~ msgstr "Z pliku"
-
-#~ msgid "LibVisual Audacious Plugin"
-#~ msgstr "Wtyczka LibVisual"
-
-#~ msgid "Visualization Plugins"
-#~ msgstr "Wtyczki wizualizacji"
-
-#~ msgid "All plugins"
-#~ msgstr "Wszystkie Wtyczki"
-
-#~ msgid "GL plugins only"
-#~ msgstr "Jedynie wtyczki GL"
-
-#~ msgid "non GL plugins only"
-#~ msgstr "Jedynie wtyczki nieGL"
-
-#~ msgid " (enabled)"
-#~ msgstr "(wÅÄ
czona)"
-
-#~ msgid "Version: "
-#~ msgstr "Wersja: "
-
-#~ msgid " error"
-#~ msgstr " bÅÄ
d"
-
-#~ msgid "Audacious plugin"
-#~ msgstr "Wtyczka Audacious"
-
-#~ msgid "Cannot initialize SDL!\n"
-#~ msgstr "Nie można zainicjowaÄ SDL!\n"
-
-#~ msgid "DISABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "WYÅÄCZ ZAWSZE NA WIERCZHU (N/D)"
-
-#~ msgid "ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ZAWSZE NA WIERZCHU (N/D)"
-
-#~ msgid "Downsample:"
-#~ msgstr "Obniżenie próbkowania:"
-
-#~ msgid "%s - BMP"
-#~ msgstr "%s - BMP"
-
-#~ msgid "bmp: %s"
-#~ msgstr "bmp: %s"
-
-#, fuzzy
-#~ msgid "/Play Directory"
-#~ msgstr "Graj Folder"
-
-#~ msgid "Add Folders"
-#~ msgstr "Dodaj folderów"
-
-#~ msgid "/Add Folders..."
-#~ msgstr "/Dodaj Foldery..."
-
-#~ msgid "3DNow! optimized decoder"
-#~ msgstr "Dekoder zoptymalizowany pod kÄ
tem 3DNow!"
-
-#~ msgid "MMX optimized decoder"
-#~ msgstr "Dekoder zoptymalizowany pod kÄ
tem MMX!"
-
-#~ msgid "FPU decoder"
-#~ msgstr "Dekoder używajÄ
cy FPU"
-
-#~ msgid ""
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Plugin by The XMMS team"
-#~ msgstr ""
-#~ "Mechanizm dekodujÄ
cy mpg123 autorstwa Michaela Hippa <mh at mpg123.de>\n"
-#~ "Wtyczka stworzona przez zespóŠtwórców XMMS-a"
-
-#~ msgid "Advanced settings:"
-#~ msgstr "Zaawansowane ustawienia:"
-
-#, fuzzy
-#~ msgid "Thread buffer time (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Mmap mode"
-#~ msgstr "Tryb Mmap"
-
-#~ msgid "Homepage and Graphics:"
-#~ msgstr "Strona domowa i grafika:"
-
-#~ msgid "Takeshi Aihana"
-#~ msgstr "Takeshi Aihana"
-
-#~ msgid "BMP Equalizer"
-#~ msgstr "Korektor graficzny BMP"
-
-#~ msgid "Beep Media Player"
-#~ msgstr "Beep Media Player"
-
-#~ msgid "/About BMP"
-#~ msgstr "/Informacje o programie"
-
-#~ msgid "BMP"
-#~ msgstr "BMP"
-
-#~ msgid "Add Internet Address"
-#~ msgstr "Dodaj Adres internetowy"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "Danicel Liviu Cristian"
-#~ msgstr "Danicel Liviu Cristian"
-
-#~ msgid "Vlad Gerasimov"
-#~ msgstr "Vlad Gerasimov"
-
-#~ msgid "/5 seconds REW"
-#~ msgstr "/Cofnij o 5 sek"
-
-#~ msgid "/5 seconds FFWD"
-#~ msgstr "/PrzewiÅ o 5 sek"
-
-#~ msgid "/Add"
-#~ msgstr "/Dodaj"
-
-#~ msgid "/_Options"
-#~ msgstr "/_Opcje"
-
-#~ msgid "/By extension"
-#~ msgstr "/WedÅug rozszerzenia"
-
-#~ msgid "/Close Window"
-#~ msgstr "/Zamknij okno"
-
-#~ msgid "/Sort by Title"
-#~ msgstr "/Sortuj wedÅug tytuÅu"
-
-#~ msgid "/Sort by Filename"
-#~ msgstr "/Sortuj wedÅug nazwy pliku"
-
-#~ msgid "/Sort by Date"
-#~ msgstr "/Sortuj wedÅug daty"
-
-#~ msgid "/Show Graphical EQ"
-#~ msgstr "/WyÅwietlaj korektor graficzny"
-
-#~ msgid "/Show on all desktops"
-#~ msgstr "/WyÅwietlaj na wszystkich pulpitach"
-
-#~ msgid "/WindowShade Mode"
-#~ msgstr "/ZwiÅ okno gÅówne"
-
-#~ msgid "/Playlist WindowShade Mode"
-#~ msgstr "/ZwiÅ listÄ odtwarzania"
-
-#~ msgid "/Equalizer WindowShade Mode"
-#~ msgstr "/ZwiÅ korektor graficzny"
-
-#~ msgid "Jump to:"
-#~ msgstr "Skok do:"
-
-#~ msgid "Jump"
-#~ msgstr "Skocz"
-
-#~ msgid "Failed to delete \"%s\": %s."
-#~ msgstr "Nie udaÅo siÄ usunÄ
Ä \"%s\": %s."
-
-#~ msgid "%d of %d files successfully deleted."
-#~ msgstr "Skasowano %d z %d plików."
-
-#~ msgid "XMMS: Files deleted"
-#~ msgstr "XMMS: UsuniÄto pliki"
-
-#~ msgid "Really delete %d files?"
-#~ msgstr "Czy naprawdÄ usunÄ
Ä %d plików"
-
-#~ msgid "Really delete: \"%s\"?"
-#~ msgstr "Czy naprawdÄ usunÄ
Ä \"%s\"?"
-
-#~ msgid "Smooth title scrolling in main window"
-#~ msgstr "PÅynne przesuwanie tytuÅu utworu w gÅównym oknie"
-
-#~ msgid "%d items were added."
-#~ msgstr "Dodano %d utworów."
-
-#~ msgid "Directory browser"
-#~ msgstr "PrzeglÄ
darka folderów"
-
-#~ msgid "Unplayable files - BMP"
-#~ msgstr "NieprawidÅowe pliki - BMP"
-
-#~ msgid ""
-#~ "The following files could not be played. They are either not accessible "
-#~ "or require a dedicated input plugin."
-#~ msgstr ""
-#~ "Nie można odtworzyÄ nastÄpujÄ
cych plików. Nie sÄ
dostÄpne albo wymagajÄ
"
-#~ "zainstalowania dpowiedniej wtyczki."
-
-#~ msgid "/Add/Directories..."
-#~ msgstr "/Dodaj/Foldery..."
-
-#~ msgid "Add Directories... "
-#~ msgstr "Dodawanie folderów..."
-
-#~ msgid "Look into sub_folders"
-#~ msgstr "Przeszukiwanie pod_folderów"
-
-#~ msgid "<b>Other options</b>"
-#~ msgstr "<b>Inne opcje</b>"
-
-#~ msgid ""
-#~ "Update the playlist according to the settings. This doesn't happen "
-#~ "automatically because it can take a very long time when having a lot of "
-#~ "files in the list."
-#~ msgstr ""
-#~ "Aktualizuje listÄ odtwarzania zgodnie z ustawieniami. Przy dużej iloÅci "
-#~ "plików na liÅcie operacja ta może zajÄ
Ä dużo czasu, dlatego nie jest "
-#~ "wykonywana automatycznie."
-
-#~ msgid "BMP Equalizer Preferences"
-#~ msgstr "Ustawienia korektora graficznego BMP"
-
-#~ msgid ""
-#~ "If \"Auto\" is enabled on the equalizer, xmms will try to load equalizer "
-#~ "presets like this:\n"
-#~ "1: Look for a preset file in the directory of the file we are about to "
-#~ "play.\n"
-#~ "2: Look for a directory preset file in the same directory.\n"
-#~ "3: Look for a preset saved with the \"auto-load\" feature\n"
-#~ "4: Finally, try to load the \"default\" preset"
-#~ msgstr ""
-#~ "JeÅli w korektorze wÅÄ
czone jest \"Auto\", xmms bÄdzie próbowaÅ wczytaÄ "
-#~ "ustawienia korektora w nastÄpujÄ
cy sposób:\n"
-#~ "1: Spróbuje odszukaÄ plik ustawieÅ w folderze aktualnie odtwarzanego "
-#~ "pliku.\n"
-#~ "2: Spróbuje odszukaÄ folderu pliku ustawieÅ w tym samym folderze.\n"
-#~ "3: Spróbuje odszukaÄ ustawienia zapisane z wÅasnoÅciÄ
\"auto-load\"\n"
-#~ "4: Ostatecznie, spróbuje zaÅadowaÄ \"domyÅlne\" ustawienia"
-
-#~ msgid "/Jump to Track"
-#~ msgstr "/Skocz do utworu"
-
-#~ msgid "/Save as..."
-#~ msgstr "/Zapisz jako..."
-
-#~ msgid "A_dd all"
-#~ msgstr "Dodaj _wszystkie"
-
-#~ msgid "_Skin list:"
-#~ msgstr "Lista _skór:"
-
-#~ msgid "<b>_Main window font:</b>"
-#~ msgstr "<b>Okno _gÅówne:</b>"
-
-#~ msgid "Mixer device"
-#~ msgstr "UrzÄ
dzenie miksera"
-
-#~ msgid "<b><span size=\"medium\">Output</span></b>"
-#~ msgstr "<b><span size=\"medium\">WyjÅciowe</span></b>"
-
-#, fuzzy
-#~ msgid "BMP: Add Directories... "
-#~ msgstr "BMP : Dodawanie katalogów... "
-#~ msgid "Choose a preferences category"
-#~ msgstr "Wybierz kategoriÄ ustawieÅ"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 2070306..cdd9d3f 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,11 +1,13 @@
-# Brazilian Portuguese translation for Audacious
+# Brazilian Portuguese translation for Audacious
+# Karen Eliot <kareneliot at riseup. net>, 2011.
+#
msgid ""
msgstr ""
"Project-Id-Version: pt_BR\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2008-02-07 17:45-0000\n"
-"Last-Translator: Thadeu Knychala Tucci <havacci at gmail.com>\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
+"PO-Revision-Date: 2011-08-03 00:59-0300\n"
+"Last-Translator: Karen Eliot <kareneliot at riseup. net>\n"
"Language-Team: Brazilian Portuguese <havacci at gmail.com>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
@@ -15,14 +17,18 @@ msgstr ""
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: BRAZIL\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Procurando..."
+
+#: src/audacious/adder.c:99 src/audacious/chardet.c:37
+#, c-format
msgid " (invalid UTF-8)"
msgstr " (UTF-8 inválido)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "Desenvolvedores do 0.1.x:"
+msgstr "Desenvolvedores do núcleo:"
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -41,22 +47,20 @@ msgid "Patch authors:"
msgstr "Autores de correções:"
#: src/audacious/credits.c:126
-#, fuzzy
msgid "1.x developers:"
-msgstr "Desenvolvedores do 0.1.x:"
+msgstr "Desenvolvedores do 1.x:"
#: src/audacious/credits.c:148
msgid "BMP Developers:"
msgstr "Desenvolvedores do BMP:"
#: src/audacious/credits.c:180
-#, fuzzy
msgid "Belarusian:"
-msgstr "Búlgaro:"
+msgstr "Bielorrusso:"
#: src/audacious/credits.c:183
msgid "Basque:"
-msgstr ""
+msgstr "Basco:"
#: src/audacious/credits.c:186
msgid "Brazilian Portuguese:"
@@ -75,9 +79,8 @@ msgid "Catalan:"
msgstr "Catalão:"
#: src/audacious/credits.c:199
-#, fuzzy
msgid "Chinese:"
-msgstr "Chines"
+msgstr "Chinês:"
#: src/audacious/credits.c:202
msgid "Croatian:"
@@ -99,196 +102,176 @@ msgstr "Estónio:"
msgid "Finnish:"
msgstr "Finlândes:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Francês:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Alemão:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Georgiano:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Grego:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hindú:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Húngaro:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Italiano:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Japonês:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Coreano:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:258
msgid "Latvian:"
-msgstr "Croata:"
+msgstr "Letão:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "LÃtuano:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Macedônio:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Polonês:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:274
msgid "Portuguese:"
-msgstr "Português do Brasil:"
+msgstr "Português:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Romeno:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Russo:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Sérvio (Latino):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Sérvio (Cyrillic):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Chinês Simplificado:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Eslovaco:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Espanhol:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Sueco:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Chinês Tradicional:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Turco:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ucraniano:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Galês:"
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:256
msgid "Temporary Playlist"
-msgstr "Abrir Lista de Reprodução"
+msgstr "Lista de Reprodução Temporária"
#: src/audacious/equalizer_preset.c:186
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
+msgstr "Erro importando arquivo EQF do Winamp '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Voltar na lista de reprodução"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Reproduzir lista de reprodução atual"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
-msgstr "Pausar arquivo atual"
+msgstr "Pausar música atual"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
-msgstr "Parar arquivo atual"
+msgstr "Parar música atual"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Pausar ou reproduzir"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Próximo na lista de reprodução"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
-msgstr "Mostrar caixa de diálogo de \"Ir para o Arquivo\""
+msgstr "Mostrar caixa de diálogo \"Ir para o Arquivo\""
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:263
msgid "Add files to the playlist"
-msgstr "Adicionar arquivos à lista de reprodução."
+msgstr "Adicionar arquivos à lista de reprodução"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
-msgstr "Adicionar novos arquivos à lista de reprodução temporária"
+msgstr "Adicionar novos arquivos a uma lista de reprodução temporária"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Mostrar janela principal"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostrar janelas abertas do Audacious"
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:266
msgid "Show version"
-msgstr "Mostrar Reprodutor"
+msgstr "Mostrar versão"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir mensagens de depuração"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "ARQUIVO..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- reproduzir arquivos multimÃdia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -297,271 +280,238 @@ msgstr ""
"%s: %s\n"
"Tente `%s --help' para mais informações.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
"data loss. If Audacious is not running, you can safely ignore this "
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
+"Parece que o Audacious já está sendo executado mas não responde. Você pode "
+"iniciar o programa denovo, mas cuidado porque isto pode causar perda de "
+"dados. Se o Audacious não está sendo executado, você pode ignorar esta "
+"mensagem com segurança. Pressione OK para iniciar Audacious ou Cancelar para "
+"fechar."
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "Decodificador para %s não encontrado "
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
-msgstr ""
+msgstr "Carregando..."
-#: src/audacious/playlist-new.c:288
-#, fuzzy
+#: src/audacious/playlist-new.c:303
msgid "Untitled Playlist"
-msgstr "Nova Lista de Reprodução"
+msgstr "Lista de Reprodução sem tÃtulo"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Ãudio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Repetir aumento"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
-msgstr ""
+msgstr "Rede"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Lista de Reprodução"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Plugins"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Ãlbum"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "TÃtulo"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
-msgstr "Número do arquivo"
+msgstr "Número da faixa"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Gênero"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Nome do arquivo"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Localização"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Ano"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Comentário"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Codec"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
-msgstr "Calidad"
+msgstr "Qualidade"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Nenhum"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "Japonês"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "Taiwanês"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "Chines"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Koreano"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Russo"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "Grego"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "Hebraico"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Turco"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "Ãrabe"
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
+#: src/audacious/ui_preferences.c:122
msgid "Polish"
-msgstr "Polonês:"
+msgstr "Polonês"
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
-msgstr "Celta"
+msgstr "Báltico"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "Geral"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Taxa:</b>"
+msgid "Single track mode"
+msgstr "Modo faixa única"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Taxa de saÃda:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Todas as streams serão convertidas tamanho.\n"
-"Este deve ser o tamaho máximo suportado\n"
-"pela placa de som ou plugin de saÃda"
+msgid "Album mode"
+msgstr "Modo álbum"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Controle de Volume</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Configuração de SaÃda</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usar software de controle de volume"
+msgid "Bit depth:"
+msgstr "Profundidade de bit:"
-#: src/audacious/ui_preferences.c:154
-#, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Use software para controle de volume. Isto pode ser útil para situações onde "
-"seu sistema de áudio não suporta controlar o volume de reprodução."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tamanho do armazenamento:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Usar controle de volume de software (não recomendado)"
#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproduzir arquivos multimÃdia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
-msgstr "<b>Modo de Ganho de Replay</b>"
+msgstr "<b>Ganho de Replay</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "Habilitar Ganho de Replay"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "Prevenir ruÃdos (recomendado)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar NÃveis</b>"
+
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>TAGs</b>"
+msgid "Amplify all files:"
+msgstr "Amplificar todos os arquivos:"
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Visualizar detalhes do arquivo"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ãlbum:"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Roda do mouse</b>"
+msgid "Amplify untagged files:"
+msgstr "Amplificar arquivos não-marcados:"
#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informações Popup</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Habilitar prevenção de clipping"
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr "Endereço do proxy:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Porta do proxy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Nome de usuário do proxy:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Senha do proxy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configurações de Proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Ativar o uso de proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Usar autenticação do proxy"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -569,15 +519,15 @@ msgstr ""
"<span size=\"small\">Em caso de alteração, o Audacious deve ser reiniciado</"
"span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Converter caracteres automaticamente para:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Códigos de caracteres de arquivos:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -589,46 +539,43 @@ msgstr ""
"tratados como informações codificadas de TAG, e os códigos serão convertidos "
"para UTF-8."
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
-msgstr "<b>Taxa:</b>"
+msgstr "<b>Comportamento</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Continuar reprodução ao iniciar"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avançar quando a música atual for excluÃda"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
-msgstr "Criar nova lista de reprodução com arquivos encontrados"
+msgstr "Limpar lista de reprodução ao abrir arquivos"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
-msgstr "Adicionar novos arquivos à lista de reprodução temporária"
+msgstr "Abrir arquivos em uma lista de reprodução temporária"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>TAGs</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Categoria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "Configuração de informações em janelas popup"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Buscar imagem de capa</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -638,100 +585,100 @@ msgstr ""
"arquivo. Mas, você pode especificar outras palavras na lista abaixo, "
"separadas por vÃrgulas."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Excluir:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Incluir:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
-msgstr "Busca de capa"
+msgstr "Buscar pela capa"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
-msgstr "Repetir busca:"
+msgstr "Profundidade da busca:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Exibir capa"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
-msgstr "<b>Vários</b>"
+msgstr "<b>Diversos</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Mostrar Barra de Progresso para o arquivo atual"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
-msgstr "Atraso da janela popup do arquivo em:"
+msgstr "Tempo até que a janela popup do arquivo apareça:"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Exibição do Arquivo</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
-msgstr ""
+msgstr "Mostrar números das músicas"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar zero a esquerda (02:00 ao invés de 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Mostrar informações sobre o formato do tÃtulo"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "TÃTULO"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "ARTISTA - TÃTULO"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "ARTISTA - ÃLBUM - TÃTULO"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "ARTISTA - ÃLBUM - FAIXA. TÃTULO"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "ARTISTA [ ÃLBUM ] - FAIXA. TÃTULO"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ÃLBUM - TÃTULO"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Personalizado"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
-msgstr "Campo personalizado:"
+msgstr "Formato personalizado:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Formato do tÃtulo:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Informações Popup</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
"Exibir informações de arquivos da lista de reprodução em uma janela popup"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -741,156 +688,137 @@ msgstr ""
"janela popup. A janela mostra o tÃtulo, número, álbum, gênero, ano, duração "
"e arte do arquivo selecionado."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Editar valores para informações popup"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema de Ãudio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamanho do armazenamento:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin de saÃda atual:"
+#: src/audacious/ui_preferences.c:1497
+msgid "Output plugin:"
+msgstr "Plugin de saÃda:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1556
msgid "Transport"
-msgstr "Tradutores"
+msgstr "Transportar"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
-msgstr ""
+msgstr "Entrada"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1557
msgid "Effect"
-msgstr "<b>Efeitos</b>"
+msgstr "Efeito"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Visualização"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
-msgstr ""
+msgstr "Geral"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Preferências do Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Erro ao criar o diretório (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
-msgstr ""
+msgstr "Posição não encontrada."
#: src/audtool/handlers_vitals.c:64
msgid "No song playing."
-msgstr ""
+msgstr "Nenhuma música tocando."
#: src/libaudcore/tuple.c:685
msgid "Mono"
-msgstr ""
+msgstr "Mono"
#: src/libaudcore/tuple.c:687
-#, fuzzy
msgid "Stereo"
-msgstr "estéreo"
-
-#: src/libaudcore/tuple.c:689
-#, c-format
-msgid "%d channels"
-msgstr ""
+msgstr "Estéreo"
-#: src/libaudgui/confirm.c:65
+#: src/libaudcore/tuple.c:689 src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Você tem certeza que deseja fechar %s? Se você fizer isto, todas as mudanças "
+"feitas desde que a lista de reprodução foi exportada serão perdidas."
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:86
msgid "_Don't show this message again"
-msgstr "Não mostrar mais este aviso"
+msgstr "_Não mostrar esta mensagem novamente"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:124
msgid "Rename Playlist"
-msgstr "Salvar Lista de Reprodução"
+msgstr "Renomear Lista de Reprodução"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "configurações..."
#: src/libaudgui/equalizer.c:68
-#, fuzzy
msgid "_Enable"
-msgstr "Ativado"
+msgstr "_Ativar"
#: src/libaudgui/equalizer.c:140
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
#: src/libaudgui/equalizer.c:140
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
#: src/libaudgui/equalizer.c:141
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
#: src/libaudgui/equalizer.c:141
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
#: src/libaudgui/equalizer.c:141
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
#: src/libaudgui/equalizer.c:141
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
#: src/libaudgui/equalizer.c:141
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
#: src/libaudgui/equalizer.c:142
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
#: src/libaudgui/equalizer.c:142
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
#: src/libaudgui/equalizer.c:142
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
#: src/libaudgui/equalizer.c:147
-#, fuzzy
msgid "Equalizer"
-msgstr "Mostrar Equalizador"
+msgstr "Equalizador"
#: src/libaudgui/equalizer.c:163
-#, fuzzy
msgid "Preamp"
-msgstr "Preamplificación:"
+msgstr "Preamplificação"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Número do Arquivo"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Duração do arquivo"
@@ -899,18 +827,16 @@ msgid "Acid Jazz"
msgstr "Jazz ácido"
#: src/libaudgui/infowin.c:78
-#, fuzzy
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
#: src/libaudgui/infowin.c:79
msgid "Ambient"
msgstr "Ambient"
#: src/libaudgui/infowin.c:80
-#, fuzzy
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
#: src/libaudgui/infowin.c:81
msgid "Bluegrass"
@@ -942,7 +868,7 @@ msgstr "Disco"
#: src/libaudgui/infowin.c:88
msgid "Easy Listening"
-msgstr "Escucha fácil"
+msgstr "Fácil de escutar"
#: src/libaudgui/infowin.c:89
msgid "Folk"
@@ -973,9 +899,8 @@ msgid "Heavy Metal"
msgstr "Heavy Metal"
#: src/libaudgui/infowin.c:96
-#, fuzzy
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
#: src/libaudgui/infowin.c:97
msgid "House"
@@ -1003,7 +928,7 @@ msgstr "New wave"
#: src/libaudgui/infowin.c:103
msgid "Noise"
-msgstr "Ruido"
+msgstr "Noise"
#: src/libaudgui/infowin.c:104
msgid "Pop"
@@ -1026,13 +951,12 @@ msgid "Rock"
msgstr "Rock"
#: src/libaudgui/infowin.c:109
-#, fuzzy
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
#: src/libaudgui/infowin.c:110
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
#: src/libaudgui/infowin.c:111
msgid "Ska"
@@ -1051,9 +975,8 @@ msgid "Techno"
msgstr "Techno"
#: src/libaudgui/infowin.c:115
-#, fuzzy
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1120,7 +1043,28 @@ msgstr "%d kb/s"
#: src/libaudgui/infowin.c:579
#, c-format
msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Sem informação disponÃvel para %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Avançar Tempo até"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportar Lista de Reprodução"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importar Lista de Reprodução"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Substituir %s?"
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
@@ -1132,7 +1076,7 @@ msgstr "Créditos"
#: src/libaudgui/ui_credits.c:126
msgid "Translators"
-msgstr "Tradutores"
+msgstr "Tradutores(as)"
#: src/libaudgui/ui_fileopener.c:108
msgid "Open Files"
@@ -1140,15 +1084,15 @@ msgstr "Abrir Arquivos"
#: src/libaudgui/ui_fileopener.c:108
msgid "Add Files"
-msgstr "Adicionar Arquivos..."
+msgstr "Adicionar Arquivos"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Open"
-msgstr "Fechar janela ao abrir"
+msgstr "Fechar janela ao Abrir"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Add"
-msgstr "Fechar janela ao adicionar"
+msgstr "Fechar janela ao Adicionar"
#: src/libaudgui/ui_jumptotrack.c:133
msgid "Un_queue"
@@ -1160,7 +1104,7 @@ msgstr "_Inserir na fila"
#: src/libaudgui/ui_jumptotrack.c:399
msgid "Jump to Track"
-msgstr "Ir para o Arquivo"
+msgstr "Ir para a Faixa"
#: src/libaudgui/ui_jumptotrack.c:442
msgid "Filter: "
@@ -1175,100 +1119,152 @@ msgid "Remember"
msgstr "Lembrar"
#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
msgid "Clea_r"
-msgstr "Limpar tudo"
+msgstr "Clea_r"
#: src/libaudgui/ui_jumptotrack.c:504
msgid "Close on Jump"
msgstr "Fechar janela ao abrir"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Editor de Lista de Reprodução"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
-msgstr "Arquivos"
+msgstr "Entradas"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Renomear"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:309
msgid "_Close dialog on activating playlist"
-msgstr "Fechar janela ao abrir"
+msgstr "_Fechar janela ao ativar lista de reprodução"
#: src/libaudgui/ui_urlopener.c:58
msgid "Open URL"
-msgstr ""
+msgstr "Abrir URL"
#: src/libaudgui/ui_urlopener.c:58
msgid "Add URL"
+msgstr "Adicionar URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
+"\n"
+"(Demais mensagens foram escondidas.)"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Este não é um arquivo .desktop válido"
#: src/libeggsmclient/eggdesktopfile.c:188
#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr ""
+msgstr "Arquivo desktop desconhecido Versão '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
-msgstr ""
+msgstr "Iniciando %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Aplicação não aceita documentos na linha de comando"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
-msgstr ""
+msgstr "Opção de inicialização desconhecida: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
+"Não se pode passar URIs de documentos para uma entrada de desktop \"Type=Link"
+"\""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
-msgstr ""
+msgstr "Não é possÃvel iniciar este item"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Desabilitar conexão com gerenciador de sessão"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Especificar arquivo contendo configuração salva"
#: src/libeggsmclient/eggsmclient.c:229
-#, fuzzy
msgid "FILE"
-msgstr "ARQUIVO..."
+msgstr "ARQUIVO"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr ""
+msgstr "Especificar ID de gerenciamento de sessão"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
-msgstr ""
+msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Mostrar decoração de janelas do gerenciador de janelas"
+msgstr "Opções de gerenciamento de sessão:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Mostrar decoração de janelas do gerenciador de janelas"
+msgstr "Mostrar opções de gerenciamento de sessão"
+
+#~ msgid "Replay Gain"
+#~ msgstr "Repetir aumento"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Taxa:</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Todas as streams serão convertidas tamanho.\n"
+#~ "Este deve ser o tamaho máximo suportado\n"
+#~ "pela placa de som ou plugin de saÃda"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Controle de Volume</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Use software para controle de volume. Isto pode ser útil para situações "
+#~ "onde seu sistema de áudio não suporta controlar o volume de reprodução."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>TAGs</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Informações Popup</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Habilitar prevenção de clipping"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Sistema de Ãudio</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Plugin de saÃda atual:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Mostrar janelas abertas do Audacious"
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Erro ao abrir exibidor, abortando.\n"
@@ -1745,9 +1741,6 @@ msgstr "Mostrar decoração de janelas do gerenciador de janelas"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Nenhum plugin de entrada reconheceu este arquivo"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Plugin de entrada: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1790,9 +1783,6 @@ msgstr "Mostrar decoração de janelas do gerenciador de janelas"
#~ "Provavelmente é a taxa de amostragem máxima suportada\n"
#~ "pela placa de som ou pelo plugin de saÃda.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detecção de Formato</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Detectar formatos dos arquivos pela extenção."
@@ -1891,9 +1881,6 @@ msgstr "Mostrar decoração de janelas do gerenciador de janelas"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "Carregar TAGs dos arquivos."
-#~ msgid "Jump to Time"
-#~ msgstr "Avançar Tempo até"
-
#~ msgid "minutes:seconds"
#~ msgstr "minutos:segundos"
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 2add3e7..1890c14 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -1,22 +1,36 @@
-# Portuguese translation of audacious
-# Copyright (C) 2010 Pitxyoki <pitxyoki at gmail.com>
-# This file is distributed under the same license as the audacious package.
-# LuÃs Picciochi <Pitxyoki at gmail.com>, 2010.
+# Portuguese translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
#
+# Translators:
+# LuÃs Picciochi <Pitxyoki at gmail.com>, 2010.
+# Valter Vicente <souobadaro at gmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: pt_PT\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-02-14 01:34+0000\n"
-"Last-Translator: LuÃs Picciochi <Pitxyoki at gmail.com>\n"
-"Language-Team: Portuguese <traduz at debianpt.org>\n"
-"Language: pt\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://jira.atheme.org/browse/AUD\n"
+"POT-Creation-Date: 2011-10-19 21:32-0400\n"
+"PO-Revision-Date: 2011-11-06 02:19+0000\n"
+"Last-Translator: valtervicente <souobadaro at gmail.com>\n"
+"Language-Team: Portuguese\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Ã procura..."
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "um: %d ficheiro encontrado"
+msgstr[1] "outro: %d ficheiros encontrados"
+
+#: src/audacious/chardet.c:38
msgid " (invalid UTF-8)"
msgstr " (UTF-8 inválido)"
@@ -49,9 +63,8 @@ msgid "BMP Developers:"
msgstr "Programadores do BMP:"
#: src/audacious/credits.c:180
-#, fuzzy
msgid "Belarusian:"
-msgstr "Búlgaro:"
+msgstr "Bielorrusso"
#: src/audacious/credits.c:183
msgid "Basque:"
@@ -61,232 +74,220 @@ msgstr "Basco:"
msgid "Brazilian Portuguese:"
msgstr "Português do Brasil:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
msgid "Breton:"
msgstr "Bretão:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
msgid "Bulgarian:"
msgstr "Búlgaro:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
msgid "Catalan:"
msgstr "Catalão:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:200
msgid "Chinese:"
msgstr "Chinês"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
msgid "Croatian:"
msgstr "Croata:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
msgid "Czech:"
msgstr "Checo:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
msgid "Dutch:"
msgstr "Holandês:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
msgid "Estonian:"
msgstr "Estónio:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
msgid "Finnish:"
msgstr "Finlandês:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
msgid "French:"
msgstr "Francês:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
msgid "German:"
msgstr "Alemão:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
msgid "Georgian:"
msgstr "Georgiano:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
msgid "Greek:"
msgstr "Grego:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
msgid "Hindi:"
msgstr "Hindi:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
msgid "Hungarian:"
msgstr "Húngaro:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
msgid "Italian:"
msgstr "Italiano:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
msgid "Japanese:"
msgstr "Japonês:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
msgid "Korean:"
msgstr "Coreano:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:259
msgid "Latvian:"
-msgstr "Croata:"
+msgstr "Letão"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
msgid "Lithuanian:"
msgstr "Lituano:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
msgid "Macedonian:"
msgstr "Macedónio:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
msgid "Polish:"
msgstr "Polaco:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:276
msgid "Portuguese:"
-msgstr "Português do Brasil:"
+msgstr "Português"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
msgid "Romanian:"
msgstr "Romeno:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
msgid "Russian:"
msgstr "Russo:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
msgid "Serbian (Latin):"
msgstr "Sérvio (Latino):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
msgid "Serbian (Cyrillic):"
msgstr "Sérvio (CirÃlico):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
msgid "Simplified Chinese:"
msgstr "Chinês Simplificado:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
msgid "Slovak:"
msgstr "Eslovaco:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
msgid "Spanish:"
msgstr "Espanhol:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
msgid "Swedish:"
msgstr "Sueco:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
msgid "Traditional Chinese:"
msgstr "Chinês Tradicional:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
msgid "Turkish:"
msgstr "Turco:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
msgid "Ukrainian:"
msgstr "Ucraniano:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "Vietnamita"
+
+#: src/audacious/credits.c:326
msgid "Welsh:"
msgstr "Galês:"
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:234
msgid "Temporary Playlist"
-msgstr "Passar à frente na lista de reprodução"
+msgstr "Lista de reprodução temporária"
#: src/audacious/equalizer_preset.c:186
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Erro ao importar ficheiro EQF do Winamp '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
msgid "Skip backwards in playlist"
msgstr "Saltar para trás na lista de reprodução"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
msgid "Start playing current playlist"
msgstr "Começar a reproduzir a lista de reprodução actual"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
msgid "Pause current song"
msgstr "Colocar faixa actual em pausa"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
msgid "Stop current song"
msgstr "Parar faixa actual"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
msgid "Pause if playing, play otherwise"
msgstr "Colocar em pausa se estiver a reproduzir. Caso contrário, reproduzir"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
msgid "Skip forward in playlist"
msgstr "Passar à frente na lista de reprodução"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
msgid "Display Jump to File dialog"
msgstr "Mostrar diálogo 'Ir Para Faixa'"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:246
msgid "Add files to the playlist"
-msgstr "Adicionar novos ficheiros a uma lista de reprodução temporária"
+msgstr "Adicionar ficheiros à lista de reprodução"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
msgid "Add new files to a temporary playlist"
msgstr "Adicionar novos ficheiros a uma lista de reprodução temporária"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
msgid "Display the main window"
msgstr "Mostrar a janela principal"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostrar todas as janelas do Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
msgid "Show version"
msgstr "Mostrar versão"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir mensagens de depuração"
+
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr "Modo headless (beta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:252
msgid "FILE..."
msgstr "FICHEIRO..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
msgid "- play multimedia files"
msgstr "- reproduzir ficheiros multimédia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
#, c-format
msgid ""
"%s: %s\n"
@@ -295,97 +296,89 @@ msgstr ""
"%s: %s\n"
"Tente `%s --help' para mais informações.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:303
#, c-format
msgid "No decoder found for %s."
-msgstr ""
-
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+msgstr "Descodificador não encontrado para %s."
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:315
msgid "Untitled Playlist"
msgstr "Lista de Reprodução Sem TÃtulo"
+#: src/audacious/playlist-new.c:1496
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"A lista de reprodução não pode ser ordenada porque a análise de metadados "
+"ainda está a decorrer (ou está desabilitada)."
+
#: src/audacious/ui_preferences.c:88
msgid "Audio"
msgstr "Ãudio"
#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
msgid "Network"
-msgstr ""
+msgstr "Rede"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
msgid "Playlist"
msgstr "Lista de Reprodução"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
msgid "Plugins"
msgstr "Plugins"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "Artista"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Ãlbum"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
msgid "Title"
msgstr "TÃtulo"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
msgid "Tracknumber"
msgstr "Número da Faixa"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Género"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
msgid "Filename"
msgstr "Nome do Ficheiro"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
msgid "Filepath"
msgstr "Caminho para o Ficheiro"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Ano"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
msgid "Comment"
msgstr "Comentário"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
msgid "Codec"
msgstr "Codec"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
msgid "Quality"
msgstr "Qualidade"
@@ -394,236 +387,202 @@ msgid "None"
msgstr "Nenhum"
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japonês"
+msgid "Arabic"
+msgstr "Ãrabe"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwanês"
+msgid "Baltic"
+msgstr "Báltico"
#: src/audacious/ui_preferences.c:117
msgid "Chinese"
msgstr "Chinês"
#: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr "Coreano"
+msgid "Greek"
+msgstr "Grego"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Russo"
+msgid "Hebrew"
+msgstr "Hebreu"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Grego"
+msgid "Japanese"
+msgstr "Japonês"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebreu"
+msgid "Korean"
+msgstr "Coreano"
#: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr "Turco"
+msgid "Polish"
+msgstr "Polaco"
#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Ãrabe"
+msgid "Russian"
+msgstr "Russo"
#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Polaco:"
+msgid "Taiwanese"
+msgstr "Taiwanês"
#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Celta"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit Depth</b>"
+msgid "Turkish"
+msgstr "Turco"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Bits depth da saÃda:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Todas as streams serão convertidas para este bit depth.\n"
-"Este deve corresponder ao bit depth máximo suportado\n"
-"pela placa de som ou pelo plugin de saÃda."
+msgid "Album mode"
+msgstr "Modo de álbum"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Controlo de Volume</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Definições de SaÃda</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Utilizar controlo de volume por software"
+msgid "Bit depth:"
+msgstr "Profundidade de bit:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Utilizar controlo de volume por software. Isto pode ser útil em situações em "
-"que o seu sistema de som não suporte o controlo do volume de reprodução."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tamanho do buffer:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Usar software de controlo de volume (não recomendado)"
#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproduzir ficheiros multimédia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
-msgstr "<b>Modo Replay Gain</b>"
+msgstr "<b>Ganho de Reprodução</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "Activar Replay Gain"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "Prevenir recortar (recomendado)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar nÃveis</b>"
+
#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadados</b>"
+msgid "Amplify all files:"
+msgstr "Amplificar todos os ficheiros:"
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ãlbum"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Avançado</b>"
+msgid "Amplify untagged files:"
+msgstr "Amplificar ficheiros sem etiquetas:"
#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informação das Dicas</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Activar prevenção de clipping de picos de informação"
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr "Nome de máquina do proxy:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Porto do Proxy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Nome de utilizador do proxy:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Palavra-passe do proxy:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configuração de Proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Activar utilização de proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
msgid "Use authentication with proxy"
msgstr "Utilizar autenticação no proxy"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Será necessário reiniciar o Audacious depois de alterar "
-"estas opções.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
msgid "Auto character encoding detector for:"
msgstr "Detectar codificação de caracteres automaticamente para:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Recurso para codificações de caracteres:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista de codificações de caracteres utilizada como recurso na conversão de "
-"metadados. Se o detector automático de codificação de caracteres falhar ou "
-"tiver sido desactivado, as codificações nesta lista serão tratadas como "
-"candidatas para a codificação de metadados e será tentada uma conversão de "
-"recurso destas codificações para UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
-msgstr "<b>Bit Depth</b>"
+msgstr "<b>Comportamento</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Continuar a reprodução no arranque"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avançar quando a música actual é removida"
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
-msgstr ""
+msgstr "Apagar a lista de reprodução quando abrir ficheiros"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
-msgstr "Adicionar novos ficheiros a uma lista de reprodução temporária"
+msgstr "Abrir ficheiros numa lista de reprodução temporária"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metadados</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr "Não carregar metadados da música até ser tocada"
+
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr "TÃTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÃTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÃLBUM - FAIXA - TÃTULO"
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÃLBUM ] - FAIXA. TÃTULO"
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr "ÃLBUM - TÃTULO"
+
+#: src/audacious/ui_preferences.c:577
msgid "Category"
msgstr "Categoria"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:801
msgid "Popup Information Settings"
msgstr "Definições de Dicas de Informação"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:810
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Obtenção de imagem da capa</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -633,99 +592,75 @@ msgstr ""
"nomes dos ficheiros. Pode especificar estas palavras na lista abaixo, "
"separadas por vÃrgulas."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
msgid "Exclude:"
msgstr "Excluir:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
msgid "Include:"
msgstr "Incluir:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
msgid "Recursively search for cover"
msgstr "Pesquisar capa recursivamente"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
msgid "Search depth: "
msgstr "Profundidade da pesquisa: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
msgid "Use per-file cover"
msgstr "Utilizar capa por ficheiro"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:883
msgid "<b>Miscellaneous</b>"
msgstr "<b>Miscelânea</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
msgid "Show Progress bar for the current track"
msgstr "Mostrar barra de progresso para a faixa actual"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
msgid "Delay until filepopup comes up: "
msgstr "Atraso para o aparecimento da informação do ficheiro: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr "Personalizado"
+
+#: src/audacious/ui_preferences.c:1383
msgid "<b>Song Display</b>"
msgstr "<b>Apresentação de Faixas</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
msgid "Show song numbers"
msgstr "Mostrar números das faixas"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar zeros (02:00 em vez de 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
msgid "Show information about titlestring format"
msgstr "Mostrar informação acerca do formato do tÃtulo"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TÃTULO"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTA - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTA - ÃLBUM - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTA - ÃLBUM - FAIXA - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTA [ ÃLBUM ] - FAIXA. TÃTULO"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÃLBUM - TÃTULO"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personalizado"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
msgid "Custom string:"
msgstr "String de Personalização:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
msgid "Title format:"
msgstr "Formato do tÃtulo:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
msgid "<b>Popup Information</b>"
msgstr "<b>Informação das Dicas</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
msgid "Show popup information for playlist entries"
msgstr "Mostrar dicas com informação nas entradas da lista de reprodução"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -735,55 +670,44 @@ msgstr ""
"reprodução. A janela mostra o tÃtulo da faixa, o nome do álbum, género, ano "
"de publicação, número da faixa, tamanho da faixa e a capa."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
msgid "Edit settings for popup information"
msgstr "Editar definições para dica de informação"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema de Som</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamanho do buffer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin de saÃda actual:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
+msgstr "Plugin de saÃda:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1634
msgid "Transport"
-msgstr "Tradutores"
+msgstr "Transporte"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
msgid "Input"
-msgstr ""
+msgstr "Entrada"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
msgid "Effect"
-msgstr "<b>Efeitos</b>"
+msgstr "Efeito"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
msgid "Visualization"
-msgstr "<b>Visualização</b>"
+msgstr "Visualização"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "General"
-msgstr ""
+msgstr "Geral"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
msgid "Audacious Preferences"
msgstr "Preferências do Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:123
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Não foi possÃvel criar directoria (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
msgid "Position not found."
msgstr "Posição não encontrada."
@@ -793,96 +717,97 @@ msgstr "Nenhuma música em reprodução."
#: src/libaudcore/tuple.c:685
msgid "Mono"
-msgstr ""
+msgstr "Mono"
#: src/libaudcore/tuple.c:687
msgid "Stereo"
-msgstr ""
+msgstr "Stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "um: %d canal"
+msgstr[1] "outro: %d canais"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Tem a certeza que quer fechar %s? Se sim, todas as modificações feitas desde"
+" que a lista de reprodução foi exportada serão perdidas."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr ""
+msgstr "_Não mostrar esta mensagem novamente"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "Lista de Reprodução"
+msgstr "Renomear lista de reprodução"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "definições..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:52
msgid "_Enable"
-msgstr "Activado"
+msgstr "_Activar"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
msgid "Equalizer"
-msgstr ""
+msgstr "Equalizador"
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:147
msgid "Preamp"
-msgstr "Pré-amplificação:"
+msgstr "Pré-Amplificador"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "Número da Faixa"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "Tamanho da Faixa"
@@ -891,18 +816,16 @@ msgid "Acid Jazz"
msgstr "Acid Jazz"
#: src/libaudgui/infowin.c:78
-#, fuzzy
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
#: src/libaudgui/infowin.c:79
msgid "Ambient"
msgstr "Ambiente"
#: src/libaudgui/infowin.c:80
-#, fuzzy
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
#: src/libaudgui/infowin.c:81
msgid "Bluegrass"
@@ -965,9 +888,8 @@ msgid "Heavy Metal"
msgstr "Heavy Metal"
#: src/libaudgui/infowin.c:96
-#, fuzzy
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
#: src/libaudgui/infowin.c:97
msgid "House"
@@ -1018,13 +940,12 @@ msgid "Rock"
msgstr "Rock"
#: src/libaudgui/infowin.c:109
-#, fuzzy
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
#: src/libaudgui/infowin.c:110
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
#: src/libaudgui/infowin.c:111
msgid "Ska"
@@ -1043,9 +964,8 @@ msgid "Techno"
msgstr "Tecno"
#: src/libaudgui/infowin.c:115
-#, fuzzy
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1112,13 +1032,38 @@ msgstr "%d kb/s"
#: src/libaudgui/infowin.c:579
#, c-format
msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Nenhuma informação disponÃvel para %s.\n"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Saltar para tempo"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm: ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportar lista de reprodução"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importar lista de reprodução"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Sobrepor %s?"
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr "Gestor de fila"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "Acerca do Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Créditos"
@@ -1126,80 +1071,86 @@ msgstr "Créditos"
msgid "Translators"
msgstr "Tradutores"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "Abrir Ficheiros"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "Adicionar Ficheiros"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "Fechar caixa de diálogo depois de Abrir"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "Fechar caixa de diálogo depois de Adicionar"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Retirar da Fila"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "_Queue"
msgstr "_Colocar na Fila"
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "_Retirar da Fila"
+
+#: src/libaudgui/ui_jumptotrack.c:239
msgid "Jump to Track"
msgstr "Ir Para Faixa"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
msgid "Filter: "
msgstr "Filtro: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
msgid "_Filter:"
msgstr "_Filtro:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
msgid "Remember"
msgstr "Lembrar"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Clea_r"
msgstr "Limpa_r"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
msgid "Close on Jump"
msgstr "Fechar ao ir para a faixa"
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:250
msgid "Playlist Manager"
-msgstr "Lista de Reprodução"
+msgstr "Gestor de lista de reprodução"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
msgid "Entries"
-msgstr ""
+msgstr "Entradas"
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:298
msgid "_Rename"
-msgstr "Nome do Ficheiro"
+msgstr "_Renomear"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:322
msgid "_Close dialog on activating playlist"
-msgstr "Fechar caixa de diálogo depois de Abrir"
+msgstr "_Fechar diálogo de activação de lista de reprodução"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
-msgstr ""
+msgstr "Abrir URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
+msgstr "Adicionar URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
+"\n"
+"(Mensagens adicionais foram escondidas.)"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
@@ -1210,27 +1161,27 @@ msgstr "O ficheiro não é um ficheiro .desktop válido"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Versão de ficheiro desktop desconhecida, '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "A iniciar %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "A aplicação não aceita documentos na linha de comandos"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Opção de arranque desconhecida: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"Não é possÃvel passar URIs de documentos para uma entrada de desktop "
"'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "Não é um item iniciável"
@@ -1255,664 +1206,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Opções de Gestão de Sessão"
+msgstr "Opções de gestão de sessão:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Mostrar Opções de Gestão de Sessão"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: ImpossÃvel aceder ao ecrã, a terminar.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Pré-amplificação:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Ganho pré-definido:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Será usado este ganho se o ficheiro não contiver metadados para Replay "
-#~ "Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Tenha em conta que a forma mais eficiente de evitar "
-#~ "<i>clipping</i> do sinal passa por evitar usar aqui valores positivos.</"
-#~ "span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuração do Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Ganho/pico da faixa"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Ganho/pico do álbum"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Utilizar valor de pico da informação do Replay Gain para prevenção de "
-#~ "clipping"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock Clássico"
-
-#~ msgid "Dance"
-#~ msgstr "Dança"
-
-#~ msgid "Oldies"
-#~ msgstr "Clássicos"
-
-#~ msgid "Other"
-#~ msgstr "Outro"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Pranks"
-#~ msgstr "Piadas"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Banda Sonora"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Tecno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusão"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Videojogo"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Clip de Som"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock Alternativo"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativa"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop Instrumental"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock Instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ãtnica"
-
-#~ msgid "Gothic"
-#~ msgstr "Gótica"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tecno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electrónica"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comédia"
-
-#~ msgid "Cult"
-#~ msgstr "Culta"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap Cristão"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Nativa Americana"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaré"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psicadélica"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polca"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusão"
-
-#~ msgid "Latin"
-#~ msgstr "Latina"
-
-#~ msgid "Revival"
-#~ msgstr "Revivalista"
-
-#~ msgid "Celtic"
-#~ msgstr "Celta"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock Gótico"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock Progressivo"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock Psicadélico"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock Sinfónico"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Coro"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acústica"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Falado"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Ãpera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Sinfonia"
-
-#~ 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"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folclórica"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Balada Pop/Rock"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Soul RÃtmico"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Dueto"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo de Bateria"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Capela"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Gangsta Rap Cristão"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Cristã Contemporânea"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock Cristão"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Um leitor de audio multiplataforma.\n"
-#~ "Copyright (C) 2005-2009 Equipa de Desenvolvimento do Audacious"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Incapaz de criar ficheiro de relatório (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Escrever todos os erros e avisos no stdout"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Usado em macpacking"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Infelizmente não é possÃvel utilizar threads nesta plataforma.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Carregamento de módulos não suportado! Os plugins não serão iniciados.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Aviso de Versão Não-Suportada"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>O Audacious2 ainda não está preparado!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Por favor não reporte falhas neste momento a menos que sejam problemas "
-#~ "realmente graves.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Esta é uma versão <i>alfa</i> do Audacious2. Ainda está muito incompleta "
-#~ "e tem muitas arestas por polir.\n"
-#~ "A maior parte das falhas menores reportadas durante esta fase serão "
-#~ "resolvidas numa versão\n"
-#~ "mais estável. No entanto, se detectar uma falha grave, como o terminar do "
-#~ "audacious\n"
-#~ "enquanto ouve um dado ficheiro, agradecemos que nos avise\n"
-#~ "(por favor reporte as falhas em inglês).\n"
-#~ "\n"
-#~ "Pedimos-lhe especial atenção uma vez que tratar de falhas triviais neste "
-#~ "momento pode\n"
-#~ "causar muita distracção para detalhes irrelevantes, portanto evite fazê-"
-#~ "lo.\n"
-#~ "Obrigado desde já!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Publicar sobre falhas em blogs também não ajuda muito.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "A maior parte de nós são programadores e não lemos blogs de forma "
-#~ "regular. Se encontrar uma\n"
-#~ "falha grave, pedimos-lhe que a traga à nossa atenção através do nosso "
-#~ "sistema de\n"
-#~ "<i>bugtracking</i> em http://jira.atheme.org/, ou através do fórum no "
-#~ "nosso website.\n"
-#~ "\n"
-#~ "Desta forma ajuda-nos a encontrar mais informação sobre o problema, que "
-#~ "nos seria difÃcil\n"
-#~ "encontrar de outra forma."
-
-#~ msgid "Playback"
-#~ msgstr "Reprodução"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Reprodução</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Quando o Audacious iniciar, começar a tocar automaticamente a partir do "
-#~ "ponto em que parámos anteriormente."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Não avançar na lista de reprodução"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Não avançar automaticamente para a faixa seguinte depois de acabar de "
-#~ "reproduzir a anterior."
-
-#~ msgid "Enabled"
-#~ msgstr "Activado"
-
-#~ msgid "Description"
-#~ msgstr "Descrição"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Preferências do Plugin de SaÃda"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informações do Plugin de SaÃda"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista de _Descodificadores:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Descodificadores</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Lista de Plugins _Gerais:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Gerais</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista de Plugins de _Visualização:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Geral</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Localização</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Metadados Originais</span>"
-
-#~ msgid "Key"
-#~ msgstr "Chave"
-
-#~ msgid "Value"
-#~ msgstr "Valor"
-
-#~ msgid "Interface to use (use -i list to view available interfaces)"
-#~ msgstr "Interface a usar (usar -i list para ver os interfaces disponÃveis)"
-
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Interfaces disponÃveis:\n"
-#~ "\n"
-
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Preferências do Plugin DisponÃveis: \n"
-
-#~ msgid "Headless Interface"
-#~ msgstr "Interface Não-Visual"
-
-#~ msgid "Effect plugins (for 16-bit output only):"
-#~ msgstr "Plugins de efeitos (apenas para saÃda de 16 bit):"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Adicionar/Abrir URL"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Indique localização para tocar:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Não limpar a lista de reprodução"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Ficheiro:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Nenhum plugin de entrada reconheceu este ficheiro"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Plugin de entrada: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Nenhum plugin de saÃda seleccionado.</big></b>\n"
-#~ "Não seleccionou nenhum plugin de saÃda."
-
-#~ msgid "Connectivity"
-#~ msgstr "Conectividade"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Interpolação de Sincronização Ãptima"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Interpolação de Sincronização Média"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Interpolação de Sincronização Rápida"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Interpolação ZOH"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Interpolação Linear"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Taxa de Amostragem [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Mecanismo de Interpolação:"
-
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Todas as streams serão convertidas para esta taxa de "
-#~ "amostragem.\n"
-#~ "Esta deve corresponder à taxa de amostragem máxima suportada pela\n"
-#~ "placa de som ou pelo plugin de saÃda.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detecção do Formato</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Detectar formatos dos ficheiros pela extensão."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Quando activado, o Audacious irá detectar os formatos dos ficheiros pela "
-#~ "sua extensão. Apenas serão abertos ficheiros com extensões de formatos "
-#~ "suportados."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Conversor de Taxa de Amostragem</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Activar o Conversor de Taxa de Amostragem"
-
-#~ msgid "Bypass all of signal processing if possible"
-#~ msgstr "Ignorar todo o processamento de sinal se possÃvel"
-
-#~ msgid ""
-#~ "Try to pass input plugin's output directly to output plugin, if the "
-#~ "latter supports format produced by input plugin. If it's true, all signal "
-#~ "processing will be disabled (i.e. DSP plugins, equalizer, resampling, "
-#~ "Replay Gain and software volume control)."
-#~ msgstr ""
-#~ "Tentar passar a saÃda do plugin de entrada directamente para o output "
-#~ "desaÃda, se o último suportar o formato produzido pelo plugin de entrada. "
-#~ "Se suceder, todo o processamento de sinal será desactivado (i.e. plugins "
-#~ "de DSP, equalizador, resampling, Replay Gain e controlo de volume por "
-#~ "software)."
-
-#~ msgid "Use fast floating-point conversion (16-bit output only)"
-#~ msgstr ""
-#~ "Utilizar conversão rápida de vÃrgula flutuante (apenas com saÃda de 16 "
-#~ "bits)"
+msgstr "Mostrar opções de gestão de sessão"
-#~ msgid "Dynamically adjust scale factor to prevent clipping"
-#~ msgstr "Ajustar o factor de escala dinamicamente para prevenir clipping"
-#~ msgid "Decrease scale factor (gain) if clipping nevertheless occurred"
-#~ msgstr "Reduzir o factor de escala (ganho) se mesmo assim ocorrer clipping"
diff --git a/po/ro.po b/po/ro.po
index e05ebf1..d867bd7 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audacious 1.4.0\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-08-26 03:55+0300\n"
"Last-Translator: Cristi MÄgheruÈan <majeru at atheme.org>\n"
"Language-Team: Romanian\n"
@@ -18,6 +18,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (UTF-8 invalid)"
@@ -103,113 +114,113 @@ msgstr "RomânÄ:"
msgid "Finnish:"
msgstr "FinlandezÄ:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "FrancezÄ:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "GermanÄ:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "GeorgianÄ:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "GreacÄ:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "HindusÄ:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "MaghiarÄ:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "ItalianÄ:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "JaponezÄ:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "CoreeanÄ:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "CroatÄ:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "LituanianÄ:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "MacedoneanÄ:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "PolonezÄ:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "PortughezÄ brazilianÄ:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "RomânÄ:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "RusÄ:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "SârbÄ (cu caractere latine):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "SârbÄ·(caractere·chirilice):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "ChinezÄ simplificatÄ:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "SlovacÄ:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "SpaniolÄ:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "SuedezÄ:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "ChinezÄ·tradiÈionalÄ:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "TurcÄ:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "UcrainianÄ:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "GalezÄ:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "IncarcÄ Playlist"
@@ -219,80 +230,65 @@ msgstr "IncarcÄ Playlist"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "SÄri înapoi în playlist"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Ãncepe redarea playlist-ului curent"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "PauzÄ"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "OpreÈte melodia curentÄ"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "PauzÄ daca se redÄ, redare altfel"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "SÄri înainte în playlist"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "AfiÈeazÄ dialogul de salt la fiÈier"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "AdaugÄ fiÈiere la playlist"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "AdaugÄ fiÈiere noi la un playlist temporar"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "AratÄ fereastra principalÄ"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "AfiÈeazÄ ferestrele Audacious deschise"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "AratÄ player-ul"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "FiÈier..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- redÄ fiÈierele multimedia"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -301,7 +297,7 @@ msgstr ""
"%s:·%s\n"
"RuleazÄ·`%s·--help'·pentru mai multe informaÈii.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -309,271 +305,243 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Playlist Nou"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Playlist"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Plugin-uri"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Artist"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Titlu"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "NumÄrul Track-ului"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Genul"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "FiÈier"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Calea spre fiÈier"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Data"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Anul"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Comentariu"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr ""
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "_IeÈire"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr ""
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
#, fuzzy
msgid "Japanese"
msgstr "JaponezÄ:"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
#, fuzzy
msgid "Taiwanese"
msgstr "JaponezÄ:"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Chineza"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "CoreeanÄ:"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "RusÄ:"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "GreacÄ:"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
#, fuzzy
msgid "Turkish"
msgstr "TurcÄ:"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "PolonezÄ:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr ""
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<i>Titlu</i>"
+msgid "Single track mode"
+msgstr "VizualizeazÄ Detaliile Track-ului"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
#, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span·size=\"small\">Toate semnalele vor fi convertite la aceastÄ ratÄ de "
-"eÈantionare.\n"
-"Este recomandat sÄ setaÈi valoarea maximÄ dintre cea a plÄcii de sunet\n"
-"sau a plugin-ului de iesire.</span>"
+msgid "Album mode"
+msgstr "Numele Albumului"
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>RotiÈa mouse-ului</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Detectarea formatului</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<i>Titlu</i>"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "MÄrimea Buffer-ului:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
msgstr ""
#: src/audacious/ui_preferences.c:160
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- redÄ fiÈierele multimedia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Configurarea Proxy-ului</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "ActiveazÄ proxy"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "VizualizeazÄ Detaliile Track-ului"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Numele Albumului"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>RotiÈa mouse-ului</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Popup cu InformaÈii</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- redÄ fiÈierele multimedia"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Adresa sau numele:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Port-ul:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Utilizator:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "ParolÄ:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Configurarea Proxy-ului</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "ActiveazÄ proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "FoloseÈte autentificarea"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -581,15 +549,15 @@ msgstr ""
"<span size=\"small\">Schimbarea acestor setÄri necesitÄ restartul aplicaÈiei."
"</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "DetecÈie automatÄ a codificÄrii caracterelor pentru:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "SetÄri de rezervÄ pentru codificÄrile caracterelor"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -601,46 +569,46 @@ msgstr ""
"dezactivatÄ, codificÄrile din aceastÄ listÄ vor fi tratate ca Èi candidate, "
"Èi se va încerca convertirea din acestea în UTF-8"
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<i>Titlu</i>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "ContinuÄ redarea la pornire"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "CreeazÄ un nou playlist pentru intrÄrile care se potrivesc"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "AdaugÄ fiÈiere noi la un playlist temporar"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Metadata</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Categorie"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "OpÈiuni pentru Popup-ul cu informaÈii suplimentare"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>AfiÈeazÄ coperta albumului</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -649,100 +617,100 @@ msgstr ""
"Când cautÄ coperta albumului, Audacious urmÄreste anumite cuvinte in fiÈier. "
"PuteÈi specifica aceste cuvinte în lista de mai jos, separate prin spaÈii. "
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Exclude:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Include:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Cauta recursiv pentru coperta"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Adancimea cautarii"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Foloseste coperta per-fiÈier"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Diverse</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "AfiÈeazÄ progresul piesei curente"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "AÈteaptÄ apariÈia popup-ului"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Vizualizarea melodiei</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "AfiÈeazÄ informaÈii despre formatarea titlurilor"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "Format specificat:"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Format specificat:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Formatul titlului:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Popup cu InformaÈii</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "AratÄ informaÈii popup pentru intrÄrile din playlist"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -752,54 +720,47 @@ msgstr ""
"Sunt afiÈate titlul, numele albumului, genul, anul apariÈiei, numÄrul "
"piesei, lungimea Èi imaginea copertei albumului, dacÄ existÄ"
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "EditeazÄ setÄrile informaÈiilor din popup"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistemul Audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "MÄrimea Buffer-ului:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin-ul de ieÈire curent"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Plugin de intrare: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "TraducÄtori"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efecte</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Vizualizare"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "PreferinÈe Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Nu s-a putut crea directorul (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -818,22 +779,24 @@ msgstr "stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Nu mai arata aceast avertisment"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "SalveazÄ Playlist"
@@ -895,11 +858,11 @@ msgstr "Egalizator"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "NumÄrul Trackului"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "MÄrimea track-ului"
@@ -1135,6 +1098,29 @@ msgstr ""
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "SÄri la Timp"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "IncarcÄ Playlist"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "IncarcÄ Playlist"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Despre Audacious"
@@ -1196,19 +1182,19 @@ msgstr "AnuleazÄ A-B"
msgid "Close on Jump"
msgstr "Ãnchide dialogul dupÄ salt"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Manager de Playlist"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "IntrÄri"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_RedenumeÈte"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Ãnchide dialogul la deschidere"
@@ -1221,6 +1207,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1230,25 +1222,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "%s: optiune nerecunoscuta `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, fuzzy, c-format
msgid "Unrecognized launch option: %d"
msgstr "%s: optiune nerecunoscuta `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1283,6 +1275,38 @@ msgstr "AratÄ decoraÈiile managerului de ferestre"
msgid "Show session management options"
msgstr "AratÄ decoraÈiile managerului de ferestre"
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span·size=\"small\">Toate semnalele vor fi convertite la aceastÄ ratÄ de "
+#~ "eÈantionare.\n"
+#~ "Este recomandat sÄ setaÈi valoarea maximÄ dintre cea a plÄcii de sunet\n"
+#~ "sau a plugin-ului de iesire.</span>"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>RotiÈa mouse-ului</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metadata</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Popup cu InformaÈii</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Sistemul Audio</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Plugin-ul de ieÈire curent"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "AfiÈeazÄ ferestrele Audacious deschise"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Nu s-a putut deschide display-ul, ieÈire din program.\n"
@@ -1516,9 +1540,6 @@ msgstr "AratÄ decoraÈiile managerului de ferestre"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Nici un plugin de intrare nu a recunoscut acest fiÈier"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Plugin de intrare: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1543,9 +1564,6 @@ msgstr "AratÄ decoraÈiile managerului de ferestre"
#~ "Este recomandat sÄ setaÈi valoarea maximÄ dintre cea a plÄcii de sunet\n"
#~ "sau a plugin-ului de iesire.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detectarea formatului</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "DetecÈia formatului dupÄ extensie."
@@ -1649,9 +1667,6 @@ msgstr "AratÄ decoraÈiile managerului de ferestre"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "ÃncarcÄ informaÈiile suplimentare prezente în fiÈierele audio."
-#~ msgid "Jump to Time"
-#~ msgstr "SÄri la Timp"
-
#~ msgid "minutes:seconds"
#~ msgstr "minute:secunde"
diff --git a/po/ru.po b/po/ru.po
index 2e01e00..61ff722 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,303 +1,300 @@
-# Russian translation for Audacious.
-# Copyright (C) 2006,2007 Alexander Orlov <alxorlov at pochta.ru>
+# Russian translation for Audacious
+# Copyright (C) Audacious translators
# This file is distributed under the same license as the Audacious package.
#
-# Ðа оÑÐ½Ð¾Ð²Ñ Ð²Ð·ÑÑ Ð¿ÐµÑевод ÐиÑÐ°Ð»Ð¸Ñ ÐипаÑова Ð´Ð»Ñ BMP.
-# УлÑÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑевода пÑивеÑÑÑвÑÑÑÑÑ :)
-#
-#
+# Translators:
# Alexander Orlov <alxorlov at pochta.ru>, 2007.
-# Vitaly Lipatov <lav at etersoft.ru>, 2007.
+# <a.michurin at gmail.com>, 2011.
+# Eugene Paskevich <eugene at raptor.kiev.ua>, 2010.
# Eugene Zagidullin <e.asphyx at gmail.com>, 2007.
+# NaiLi Rootaerc <theism at mail.ru>, 2012.
# serg0 <serg0 at ulx.ru>, 2009.
-# Eugene Paskevich <eugene at raptor.kiev.ua>, 2010.
# Sergey V. Mironov <sergo at bk.ru>, 2010.
+# Vitaly Lipatov <lav at etersoft.ru>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: audacious 2.4\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-22 22:15+0400\n"
-"Last-Translator: Sergey V. Mironov <sergo at bk.ru>\n"
-"Language-Team: Russian <kde-russian at lists.kde.ru>\n"
-"Language: ru\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-13 11:35+0000\n"
+"Last-Translator: NaiLi Rootaerc <theism at mail.ru>\n"
+"Language-Team: Russian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.0\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Poedit-Language: Russian\n"
-"X-Poedit-Basepath: /home/asphyx/ahinea/audacious\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "ÐоиÑк ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Ðайден %d Ñайл"
+msgstr[1] "Ðайдено %d Ñайла"
+msgstr[2] "Ðайдено %d Ñайлов"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (недопÑÑÑÐ¸Ð¼Ð°Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ð®Ð½Ð¸ÐºÐ¾Ð´)"
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
msgid "Core developers:"
msgstr "ÐлавнÑе ÑазÑабоÑÑики:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
msgstr "ÐÑаÑика:"
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
msgid "Default skin:"
msgstr "СÑандаÑÑÐ½Ð°Ñ Ñема:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
msgstr "РазÑабоÑка модÑлей:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
msgstr "ÐвÑоÑÑ Ð¿Ð°ÑÑей:"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
msgid "1.x developers:"
msgstr "РазÑабоÑÑики веÑÑий 1.x:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
msgstr "РазÑабоÑÑики BMP:"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
msgid "Belarusian:"
msgstr "ÐелоÑÑÑÑкий:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
msgstr "ÐаÑкÑкий:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
msgstr "ÐÑазилÑÑкий поÑÑÑгалÑÑкий:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
msgstr "ÐÑеÑонÑкий:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
msgstr "ÐолгаÑÑкий:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
msgid "Catalan:"
msgstr "ÐаÑалонÑкий:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
msgid "Chinese:"
msgstr "ÐиÑайÑкий:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
msgid "Croatian:"
msgstr "ХоÑваÑÑкий:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
msgstr "ЧеÑÑкий:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
msgstr "ÐолландÑкий:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
msgid "Estonian:"
msgstr "ÐÑÑонÑкий:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
msgid "Finnish:"
msgstr "ФинÑкий:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
msgstr "ФÑанÑÑзÑкий:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
msgstr "ÐемеÑкий:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
msgid "Georgian:"
msgstr "ÐÑÑзинÑкий:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
msgstr "ÐÑеÑеÑкий:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
msgstr "Хинди:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
msgstr "ÐенгеÑÑкий:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
msgstr "ÐÑалÑÑнÑкий:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
msgstr "ЯпонÑкий:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
msgstr "ÐоÑейÑкий:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
msgid "Latvian:"
-msgstr "ХоÑваÑÑкий:"
+msgstr "ÐаÑÑÑÑкий:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
msgstr "ÐиÑовÑкий:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
msgstr "ÐакедонÑкий:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "ÐÑпанÑкий ÑзÑк, ÐекÑика:"
+
+#: src/audacious/credits.c:280
msgid "Polish:"
msgstr "ÐолÑÑкий:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Portuguese:"
msgstr "ÐоÑÑÑгалÑÑкий:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
msgstr "Ð ÑмÑнÑкий:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
msgstr "Ð ÑÑÑкий:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
msgstr "СеÑбÑкий (лаÑиниÑа):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
msgstr "СеÑбÑкий (киÑиллиÑа):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
msgstr "УпÑоÑÑннÑй киÑайÑкий:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
msgstr "СловаÑкий:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
msgstr "ÐÑпанÑкий:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
msgstr "ШведÑкий:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
msgstr "ТÑадиÑионнÑй киÑайÑкий:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
msgstr "ТÑÑеÑкий:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
msgstr "УкÑаинÑкий:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "ÐÑеÑнамÑкий:"
+
+#: src/audacious/credits.c:341
msgid "Welsh:"
msgstr "УÑлÑÑкий:"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "ÐÑеменнÑй ÑпиÑок воÑпÑоизведениÑ"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Ðевозможно импоÑÑиÑоваÑÑ Winamp EQF Ñайл '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "ÐоиÑк ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Ðайден %d Ñайл"
-msgstr[1] "Ðайдено %d Ñайла"
-msgstr[2] "Ðайдено %d Ñайлов"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "ÐеÑейÑи к пÑедÑдÑÑей доÑожке в ÑпиÑке воÑпÑоизведениÑ"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "ÐаÑаÑÑ Ð¿ÑоигÑÑваÑÑ ÑекÑÑий ÑпиÑок воÑпÑоизведениÑ"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "ÐÑиоÑÑановиÑÑ ÑекÑÑÑÑ Ð´Ð¾ÑожкÑ"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "ÐÑÑановиÑÑ ÑекÑÑÑÑ Ð´Ð¾ÑожкÑ"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "ÐÑиоÑÑановиÑÑ Ð¿Ñи пÑоигÑÑвании, инаÑе â воÑпÑоизводиÑÑ"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "ÐеÑейÑи к ÑледÑÑÑей доÑожке в ÑпиÑке воÑпÑоизведениÑ"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "ÐоказаÑÑ Ð´Ð¸Ð°Ð»Ð¾Ð³ пеÑеÑ
ода к ÑайлÑ"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "ÐобавиÑÑ ÑÐ°Ð¹Ð»Ñ Ð² ÑпиÑок воÑпÑоизведениÑ"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "ÐобавиÑÑ ÑÐ°Ð¹Ð»Ñ Ð²Ð¾ вÑеменнÑй ÑпиÑок воÑпÑоизведениÑ"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "ÐоказаÑÑ Ð³Ð»Ð°Ð²Ð½Ð¾Ðµ окно"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "ÐоказаÑÑ Ð²Ñе оÑкÑÑÑÑе окна Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "ÐоказаÑÑ Ð²ÐµÑÑиÑ"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "ÐеÑаÑаÑÑ Ð¾ÑладоÑнÑÑ Ð¸Ð½ÑоÑмаÑиÑ"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "УпÑавление Ñ ÐºÐ¾Ð½Ñоли (беÑа)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "ФÐÐÐ..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- пÑоигÑаÑÑ Ð¼ÑлÑÑимедийнÑе ÑайлÑ"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -306,333 +303,310 @@ msgstr ""
"%s: %s\n"
"ÐопÑобÑйÑе `%s --help' Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñобного опиÑаниÑ.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "Ðе найден Ð´ÐµÐºÐ¾Ð´ÐµÑ Ð´Ð»Ñ %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "ÐÑÑеÑизаÑиÑ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Ðевозможно %s %s: ÑаÑÑиÑение Ñайла не поддеÑживаеÑÑÑ."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "ÑоÑ
ÑаниÑÑ"
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "ÐовÑй ÑпиÑок воÑпÑоизведениÑ"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "загÑÑзиÑÑ"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "ÐовÑй СпиÑок"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "СейÑÐ°Ñ ÐоÑпÑоизводиÑÑÑ"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"СпиÑок не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾ÑÑоÑÑиÑован, Ñак как ÑканиÑование меÑаданнÑÑ
вÑÑ ÐµÑÑ "
+"пÑоиÑÑ
Ð¾Ð´Ð¸Ñ (или бÑло вÑклÑÑено)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "ÐвÑк"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "СеÑÑ"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "СпиÑок воÑпÑоизведениÑ"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "ÐодÑли"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "ÐÑполниÑелÑ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "ÐлÑбом"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Ðазвание"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾Ñожки"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "ÐанÑ"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "ÐÐ¼Ñ Ñайла"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "ÐÑÑÑ Ðº ÑайлÑ"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "ÐаÑа"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Ðод"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "ÐомменÑаÑий"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Ðодек"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "ÐаÑеÑÑво"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "ÐеÑ"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "ÐÑабÑкий"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "ÐалÑийÑкие ÑзÑки"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "ÐиÑайÑкий"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "ЯпонÑкий"
+msgid "Greek"
+msgstr "ÐÑеÑеÑкий"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "ТайванÑÑкий"
+msgid "Hebrew"
+msgstr "ÐвÑиÑ"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "ÐиÑайÑкий"
+msgid "Japanese"
+msgstr "ЯпонÑкий"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "ÐоÑейÑкий"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Ð ÑÑÑкий"
+msgid "Polish"
+msgstr "ÐолÑÑкий"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "ÐÑеÑеÑкий"
+msgid "Russian"
+msgstr "Ð ÑÑÑкий"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "ÐвÑиÑ"
+msgid "Taiwanese"
+msgstr "ТайванÑÑкий"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "ТÑÑеÑкий"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "ÐÑабÑкий"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "ÐолÑÑкий"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "ÐалÑийÑкие ÑзÑки"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "УнивеÑÑалÑнÑй Ñежим"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>РазÑÑдноÑÑÑ</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Режим алÑбома"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "РазÑÑдноÑÑÑ Ð²ÑÑ
одного поÑока:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"ÐÑе поÑоки бÑдÑÑ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ñ Ðº ÑÑой ÑазÑÑдноÑÑи,\n"
-"коÑоÑÐ°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¼Ð°ÐºÑималÑной поддеÑживаемой\n"
-"ÑазÑÑдноÑÑÑÑ Ð·Ð²Ñковой каÑÑÑ Ð¸Ð»Ð¸ вÑÑ
одного модÑлÑ."
+msgid "<b>Output Settings</b>"
+msgstr "<b>ÐаÑÑÑойки вÑвода</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>РегÑлиÑовка гÑомкоÑÑи</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "РазÑÑдноÑÑÑ"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ÐÑогÑÐ°Ð¼Ð¼Ð½Ð°Ñ ÑегÑлиÑовка гÑомкоÑÑи"
+msgid "Buffer size:"
+msgstr "Ð Ð°Ð·Ð¼ÐµÑ Ð±ÑÑеÑа:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"ÐÑполÑзоваÑÑ Ð¿ÑогÑаммное ÑпÑавление гÑомкоÑÑÑÑ. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾, еÑли "
-"ваÑа звÑÐºÐ¾Ð²Ð°Ñ ÑиÑÑема не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑпÑавление гÑомкоÑÑÑÑ."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "мÑ"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "дÐ"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "ÐÑполÑзоваÑÑ Ð¿ÑогÑаммнÑÑ ÑегÑлиÑÐ¾Ð²ÐºÑ Ð³ÑомкоÑÑи (не ÑекомендÑеÑÑÑ)"
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- пÑоигÑаÑÑ Ð¼ÑлÑÑимедийнÑе ÑайлÑ"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Режим Replay Gain</b>"
+msgstr "<b>ÐÑÑавнивание гÑомкоÑÑи</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "ÐклÑÑиÑÑ Replay Gain"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ÐеÑа-инÑоÑмаÑÐ¸Ñ Ð¾ доÑожке</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ÐлÑбом"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "ÐÑедоÑвÑаÑиÑÑ Ñипение/ÑÑеÑк (ÑекомендÑеÑÑÑ)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>ÐвÑÐºÐ¾Ð²Ð°Ñ ÑиÑÑема</b>"
+msgstr "<b>РегÑлиÑовка ÑÑовней</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ÐÑплÑваÑÑее инÑоÑмаÑионное окно</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "УвелиÑиÑÑ Ð²Ñем Ñайлам:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "ÐÑполÑзоваÑÑ Ð¿Ð¸ÐºÐ¾Ð²Ð¾Ðµ знаÑение Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ ÑÑезаниÑ"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "дÐ"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "УвелиÑиÑÑ Ð½ÐµÐ¿Ð¾Ð¼ÐµÑеннÑм Ñайлам"
+
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "ÐÑокÑи ÑеÑвеÑ:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "ÐоÑÑ Ð¿ÑокÑи:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "ÐÐ¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¿ÑокÑи:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "ÐаÑÐ¾Ð»Ñ Ð¿ÑокÑи:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>ÐаÑÑÑойка пÑокÑи</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "ÐÑполÑзоваÑÑ Ð¿ÑокÑи"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "ÐÑполÑзоваÑÑ Ð°Ð²ÑоÑизаÑÐ¸Ñ ÑеÑез пÑокÑи"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Ðзменение ÑÑиÑ
наÑÑÑоек поÑÑебÑÐµÑ Ð¿ÐµÑезапÑÑка Audacious."
-"</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "ЯзÑк Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð¸Ñовки:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "ÐодиÑовка по ÑмолÑаниÑ:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"СпиÑок кодиÑовок, иÑполÑзÑемÑÑ
пÑи оÑобÑажении меÑаданнÑÑ
. ÐÑли "
-"авÑомаÑиÑеÑкое опÑеделение кодиÑовки оÑклÑÑено или не ÑÑабоÑаеÑ, Ñо Ð´Ð»Ñ "
-"пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼ÐµÑаданнÑÑ
в UTF-8 бÑдÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ ÐºÐ¾Ð´Ð¸Ñовки из ÑÑого "
-"ÑпиÑка."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>РазÑÑдноÑÑÑ</b>"
+msgstr "<b>Режим</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "ÐÑодолжаÑÑ Ð²Ð¾ÑпÑоизведение пÑи запÑÑке"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "ÐÑодвигаÑÑÑÑ Ð´Ð°Ð»ÑÑе еÑли ÑекÑÑÐ°Ñ Ð¿ÐµÑÐ½Ñ Ñдалена"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "ÐÑиÑÑиÑÑ ÑекÑÑий ÑпиÑок воÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ñи оÑкÑÑÑии новÑÑ
Ñайлов "
+msgstr "ÐÑиÑаÑÑ ÑпиÑок еÑли оÑкÑÑваеÑÑÑ Ð½Ð¾Ð²Ð°Ñ Ð¿ÐµÑнÑ"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "ÐобавиÑÑ ÑÐ°Ð¹Ð»Ñ Ð²Ð¾ вÑеменнÑй ÑпиÑок воÑпÑоизведениÑ"
+msgstr "ÐÑкÑÑваÑÑ ÑÐ°Ð¹Ð»Ñ Ð²Ð¾ вÑеменном ÑпиÑке"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>ÐеÑа-инÑоÑмаÑÐ¸Ñ Ð¾ доÑожке</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ðе загÑÑжаÑÑ Ð¼ÐµÑаданнÑе пеÑен до Ñого как они наÑнÑÑ Ð¿ÑоигÑÑваÑÑÑÑ"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "ÐÐÐÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ÐСÐÐÐÐÐТÐÐЬ - ÐÐÐÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ÐСÐÐÐÐÐТÐÐЬ - ÐÐЬÐÐÐ - ÐÐÐÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ÐСÐÐÐÐÐТÐÐЬ - ÐÐЬÐÐÐ - ÐÐÐ ÐÐÐÐ. ÐÐÐÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ÐСÐÐÐÐÐТÐÐЬ [ ÐÐЬÐÐÐ ] - ÐÐÐ ÐÐÐÐ. ÐÐÐÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÐÐЬÐÐÐ - ÐÐÐÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "ÐаÑегоÑиÑ"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "ÐаÑÑÑойка вÑплÑваÑÑей инÑоÑмаÑии"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>ÐоиÑк обложки алÑбома</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -641,101 +615,77 @@ msgstr ""
"ÐÑи поиÑке обложки алÑбома Audacious иÑÐµÑ Ð¾Ð¿ÑеделеннÑе Ñлова в именаÑ
"
"Ñайлов. ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑказаÑÑ ÑÑи Ñлова ниже, Ñазделив иÑ
запÑÑÑми."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "ÐÑклÑÑаÑ:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "ÐклÑÑаÑ:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "ÐÑкаÑÑ Ð¾Ð±Ð»Ð¾Ð¶ÐºÑ Ð²Ð¾ вложеннÑÑ
каÑалогаÑ
"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "ÐлÑбина поиÑка: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "ÐÑкаÑÑ Ð¸Ð·Ð¾Ð±Ñажение Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñайла"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Разное</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "ÐоказÑваÑÑ Ð¿Ð¾Ð»Ð¾ÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿ÑоигÑÑваемой доÑожки"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "ÐадеÑжка поÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð²ÑплÑваÑÑей инÑоÑмаÑии: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "СобÑÑвеннÑе ÑÑÑановки"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>ÐÑобÑажение доÑожек</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr "ÐоказаÑÑ Ð½Ð¾Ð¼ÐµÑ Ð´Ð¾Ñожки"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "ÐÑобÑажаÑÑ Ð½Ð°Ñало Ñ Ð½ÑÐ»Ñ (02:00 вмеÑÑо 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "ÐоказаÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑоÑмаÑе названиÑ"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "ÐÐÐÐÐÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ÐСÐÐÐÐÐТÐÐЬ - ÐÐÐÐÐÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ÐСÐÐÐÐÐТÐÐЬ - ÐÐЬÐÐÐ - ÐÐÐÐÐÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ÐСÐÐÐÐÐТÐÐЬ - ÐÐЬÐÐÐ - ÐÐÐ ÐÐÐÐ. ÐÐÐÐÐÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ÐСÐÐÐÐÐТÐÐЬ [ ÐÐЬÐÐÐ ] - ÐÐÐ ÐÐÐÐ. ÐÐÐÐÐÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÐÐЬÐÐÐ - ÐÐÐÐÐÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "СобÑÑвеннÑе ÑÑÑановки"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Свой ÑоÑмаÑ:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "ФоÑÐ¼Ð°Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>ÐÑплÑваÑÑее инÑоÑмаÑионное окно</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr ""
"ÐоказÑваÑÑ Ð²ÑплÑваÑÑее инÑоÑмаÑионное окно Ð´Ð»Ñ Ð´Ð¾Ñожек в ÑпиÑке "
"воÑпÑоизведениÑ"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -745,76 +695,85 @@ msgstr ""
"воÑпÑоизведениÑ. Ðкно ÑодеÑÐ¶Ð¸Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ пеÑни, название алÑбома, жанÑ, год, "
"Ð½Ð¾Ð¼ÐµÑ Ð´Ð¾Ñожки, длиÑелÑноÑÑÑ Ð¿ÐµÑни и Ð¾Ð±Ð»Ð¾Ð¶ÐºÑ Ð°Ð»Ñбома."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "ÐзмениÑÑ Ð½Ð°ÑÑÑойки вÑплÑваÑÑего инÑоÑмаÑионного окна"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ÐвÑÐºÐ¾Ð²Ð°Ñ ÑиÑÑема</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Ð Ð°Ð·Ð¼ÐµÑ Ð±ÑÑеÑа:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "ТекÑÑий модÑÐ»Ñ Ð²Ñвода звÑка:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Ðлагин вÑвода:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "ÐеÑеводÑики"
+msgstr "ТÑанÑпоÑÑ"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "Ðвод"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>ÐÑÑекÑÑ</b>"
+msgstr "ÐÑÑекÑÑ"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "<b>ÐизÑализаÑиÑ</b>"
+msgstr "ÐизÑализаÑиÑ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "ÐбÑие"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "ÐаÑамеÑÑÑ Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Ðевозможно ÑоздаÑÑ ÐºÐ°Ñалог (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr "ÐозиÑÐ¸Ñ Ð½Ðµ найдена."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "ÐиÑего не пÑоигÑÑваеÑÑÑ."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "ÐÑдио CD, ÑÑек %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Ðоно"
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr ""
+msgstr "СÑеÑео"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d канал"
+msgstr[1] "%d каналов"
+msgstr[2] "%d каналÑ"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "ÐвÑоÑÑ"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "ÐеÑеводÑики"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Ðб Audacious"
+
+#: src/libaudgui/confirm.c:76
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -823,421 +782,438 @@ msgstr ""
"ÐÑ ÑвеÑенÑ, ÑÑо Ñ
оÑиÑе закÑÑÑÑ %s? Ð ÑÑом ÑлÑÑае вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа "
"ÑкÑпоÑÑа ÑпиÑка воÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ ÑÑеÑÑнÑ."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
msgid "_Don't show this message again"
msgstr "ÐолÑÑе не показÑваÑÑ ÑÑо пÑедÑпÑеждение"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
-msgstr "СпиÑок воÑпÑоизведениÑ"
+msgstr "ÐеÑеименоваÑÑ Ð¡Ð¿Ð¸Ñок"
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
msgstr "наÑÑÑойки..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
msgstr "ÐклÑÑиÑÑ"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
msgstr "31 ÐÑ"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
msgstr "63 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
msgstr "125 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
msgstr "250 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
msgstr "500 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
msgstr "1 кÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
msgstr "2 кÐÑ"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
msgstr "4 кÐÑ"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
msgstr "8 кÐÑ"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
msgstr "16 кÐÑ"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "ÐквалайзеÑ"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
msgstr "ÐÑед. ÑÑиление"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾Ñожки"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
msgstr "ÐлиÑелÑноÑÑÑ"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "ÐйÑид-Ñок"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Ðибоп"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
msgstr "Chamber Music"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
msgstr "Classical"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Хип-Ñ
оп"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Рок-н-Ñолл"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "РиÑм и ÐлÑз"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "ТÑип-Хоп"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">недоÑÑÑпно</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
msgstr "ÐеÑаданнÑе ÑÑпеÑно обновленÑ"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
msgstr "ÐÑибка пÑи обновлении меÑаданнÑÑ
"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
msgstr "ÐнÑоÑмаÑÐ¸Ñ Ð¾ доÑожке"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">ФоÑмаÑ:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">ÐаÑеÑÑво:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">ÐиÑÑейÑ:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">Ðазвание</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">ÐÑполниÑелÑ</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">ÐлÑбом</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">ÐомменÑаÑии</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">ÐанÑ</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Ðод</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">ÐÐ¾Ð¼ÐµÑ Ð´Ð¾Ñожки</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
#, c-format
msgid "%d kb/s"
msgstr "%d кб/Ñ"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
msgstr "ÐÐµÑ Ð¸Ð½ÑоÑмаÑии Ð´Ð»Ñ %s.\n"
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Ðб Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Ðжамп ÑÑ Ñайм"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "ÐвÑоÑÑ"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "мин:Ñек"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "ÐеÑеводÑики"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "ÐкÑпоÑÑиÑоваÑÑ Ð¡Ð¿Ð¸Ñок"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "ÐмпоÑÑиÑоваÑÑ Ð¡Ð¿Ð¸Ñок"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "ÐеÑезапиÑаÑÑ %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "ÐÐµÐ½ÐµÐ´Ð¶ÐµÑ ÐÑеÑеди"
+
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "ÐÑкÑÑÑÑ ÑайлÑ"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "ÐобавиÑÑ ÑайлÑ"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "ÐакÑÑÑÑ Ð¾ÐºÐ½Ð¾ пÑи оÑкÑÑÑии"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "ÐакÑÑÑÑ Ð¾ÐºÐ½Ð¾ пÑи добавлении"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "УбÑаÑÑ Ð¸Ð· оÑеÑеди"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
msgstr "РоÑеÑедÑ"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "ÐеÑейÑи к доÑожке"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "УбÑаÑÑ Ð¸Ð· оÑеÑеди"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "ÐÑÑжок к ÐеÑне"
+
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
msgstr "ФилÑÑÑ: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
msgstr "ФилÑÑÑ:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
msgstr "ÐапомниÑÑ"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
msgstr "ÐÑиÑÑиÑÑ"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
msgstr "ÐакÑÑÑÑ Ð¿Ð¾Ñле пеÑеÑ
ода"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr "ÐÐµÐ½ÐµÐ´Ð¶ÐµÑ ÑпиÑков"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "ÐлеменÑов"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "ÐеÑеименоваÑÑ"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
msgstr "ÐакÑÑÑÑ Ð¾ÐºÐ½Ð¾ пÑи вÑбоÑе ÑпиÑка"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
msgstr "ÐÑкÑÑÑÑ Ð°Ð´ÑеÑ"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
msgstr "ÐобавиÑÑ Ð°Ð´ÑеÑ"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(ÐалÑнейÑие ÑообÑÐµÐ½Ð¸Ñ Ð±Ñли ÑкÑÑÑÑ.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "ÐÑÐ¾Ñ Ñайл не ÑвлÑеÑÑÑ ÐºÐ¾ÑÑекÑнÑм Ñайлом .desktop"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "ÐаннÑй .desktop Ñайл Ð¸Ð¼ÐµÐµÑ Ð½ÐµÐ¸Ð·Ð²ÐµÑÑнÑÑ Ð²ÐµÑÑÐ¸Ñ '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "ÐапÑÑкаеÑÑÑ %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
-msgstr "ÐÑиложение не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñказание имени докÑменÑа в командной ÑÑÑоке"
+msgstr ""
+"ÐÑиложение не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñказание имени докÑменÑа в командной ÑÑÑоке"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "ÐеизвеÑÑнÑй паÑамеÑÑ: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-"Ðевозможно пеÑедаÑÑ URI докÑменÑа пÑи иÑполÑзовании запиÑи 'Type=Link' в ."
-"desktop Ñайле."
+"Ðевозможно пеÑедаÑÑ URI докÑменÑа пÑи иÑполÑзовании запиÑи 'Type=Link' в "
+".desktop Ñайле."
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "ÐÑÐ¾Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½ÐµÐ»ÑÐ·Ñ Ð·Ð°Ð¿ÑÑÑиÑÑ"
@@ -1262,545 +1238,11 @@ msgid "ID"
msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "ÐаÑамеÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑми"
+msgstr "УпÑавление опÑиÑми ÑеÑÑий:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "ÐоказаÑÑ Ð¿Ð°ÑамеÑÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑми"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Ðевозможно оÑкÑÑÑÑ ÑкÑан, вÑÑ
од.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "ÐÑедваÑиÑелÑное ÑÑиление:"
-
-#~ msgid "Default gain:"
-#~ msgstr "УÑиление по ÑмолÑаниÑ:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "ÐÑо знаÑение бÑÐ´ÐµÑ Ð¸ÑполÑзовано в ÑлÑÑае, еÑли доÑожка\n"
-#~ "не ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
Replay Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">ÐомниÑе, ÑÑо наиболее ÑÑÑекÑивнÑй ÑпоÑоб избежаÑÑ "
-#~ "ÑÑезаниÑ, â не иÑполÑзоваÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸ÑелÑнÑе знаÑениÑ.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>ÐаÑамеÑÑÑ Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "УÑиление и пиковое знаÑение доÑожки"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "УÑиление и пиковое знаÑение алÑбома"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "ÐÑполÑзоваÑÑ Ð·Ð½Ð°Ñение пика из меÑаданнÑÑ
Replay Gain Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ "
-#~ "ÑÑезаниÑ"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Classic Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Other"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternative"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumental Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumental Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electronic"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtic"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Speech"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ 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"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rhythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Christian Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "ÐвÑковой пÑоигÑÑваÑÐµÐ»Ñ Ð´Ð»Ñ ÑазлиÑнÑÑ
плаÑÑоÑм.\n"
-#~ "Copyright (C) 2005-2010 команда ÑазÑабоÑÑиков Audacious"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Ðевозможно ÑоздаÑÑ Ñайл жÑÑнала (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "ÐÑводиÑÑ Ð²Ñе оÑибки и пÑедÑпÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² ÑÑандаÑÑнÑй вÑвод"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "ÐÐ»Ñ Ð²Ð½ÑÑÑеннего иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´ OS X"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr ""
-#~ "Ð ÑожалениÑ, многопоÑоÑноÑÑÑ Ð½Ðµ поддеÑживаеÑÑÑ Ð½Ð° данной плаÑÑоÑме.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "ÐагÑÑзка модÑлей не поддеÑживаеÑÑÑ! ÐодÑли не бÑдÑÑ Ð¸ÑполÑзованÑ.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - пÑедÑпÑеждение о неподдеÑживаемой веÑÑии"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 вÑÑ ÐµÑÑ Ð½Ðµ гоÑова!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>ÐожалÑйÑÑа, не ÑведомлÑйÑе пока ÑÑо об оÑибкаÑ
, еÑли они не ÑвлÑÑÑÑÑ "
-#~ "кÑиÑиÑеÑкими.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "ÐÑо <i>алÑÑа</i> веÑÑÐ¸Ñ Audacious2. Ðна пока еÑÑ Ð½Ðµ законÑена и не "
-#~ "оÑполиÑована.\n"
-#~ "ÐÑ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼, ÑÑо многие мелкие оÑибки, о коÑоÑÑÑ
бÑло ÑообÑено за ÑÑо "
-#~ "вÑемÑ, бÑдÑÑ ÑÑÑÑаненÑ.\n"
-#~ "Ðднако, еÑли еÑÑÑ ÑеÑÑÑÐ·Ð½Ð°Ñ Ð¾Ñибка, ÑакаÑ, как аваÑийное завеÑÑение во "
-#~ "вÑÐµÐ¼Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐºÑеÑного Ñайла, Ñо мÑ\n"
-#~ " Ñ
оÑели Ð±Ñ Ð·Ð½Ð°ÑÑ Ð¾Ð± ÑÑом.\n"
-#~ "\n"
-#~ "Ðднако, Ð¼Ñ Ð¿ÑоÑим Ð²Ð°Ñ Ð²Ð¾Ð·Ð´ÐµÑжаÑÑÑÑ Ð¾Ñ ÑÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ пÑоÑÑÑÑ
оÑибкаÑ
.\n"
-#~ "ÐаÑанее благодаÑим!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>ÐпиÑание оÑибок в блогаÑ
Ñакже мало полезно.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "Ðолее Ñого, Ð¼Ñ â ÑазÑабоÑÑики. ÐÑ Ð½Ðµ ÑиÑаем блоги на ÑегÑлÑÑной оÑнове. "
-#~ "ÐÑли обнаÑÑжена ÑеÑÑÑÐ·Ð½Ð°Ñ Ð¾Ñибка,\n"
-#~ "Ð¼Ñ Ð¿ÑоÑим Ð²Ð°Ñ Ð¿ÑедÑÑавиÑÑ ÐµÑ Ð½Ð°ÑÐµÐ¼Ñ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ ÑеÑез ÑиÑÑÐµÐ¼Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ "
-#~ "оÑибок на ÑайÑе http://jira.atheme.org/,\n"
-#~ "или же ÑеÑез ÑоÑÑм на ÑÑом ÑайÑе.\n"
-#~ "\n"
-#~ "ÐÑо Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°Ð¼ полÑÑиÑÑ Ð±Ð¾Ð»ÑÑе инÑоÑмаÑии о ваÑиÑ
пÑоблемаÑ
, о коÑоÑÑÑ
"
-#~ "мÑ, веÑоÑÑно,\n"
-#~ "не Ñзнаем инÑм ÑпоÑобом."
-
-#~ msgid "Playback"
-#~ msgstr "ÐоÑпÑоизведение"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>ÐоÑпÑоизведение</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "ÐоÑле запÑÑка Audacious, авÑомаÑиÑеÑки пÑодолжаÑÑ Ð¿ÑоигÑÑвание Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñа "
-#~ "оÑÑановки."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ðе пÑодвигаÑÑÑÑ Ð¿Ð¾ ÑпиÑÐºÑ Ð²Ð¾ÑпÑоизведениÑ"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¿ÑоигÑÑÐ²Ð°Ð½Ð¸Ñ Ð´Ð¾Ñожки не пеÑедвигаÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки на "
-#~ "ÑледÑÑÑÑÑ."
-
-#~ msgid "Enabled"
-#~ msgstr "ÐклÑÑÑн"
-
-#~ msgid "Description"
-#~ msgstr "ÐпиÑание"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "ÐаÑамеÑÑÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ñвода звÑка"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "ÐнÑоÑмаÑÐ¸Ñ Ð¾ модÑле вÑвода звÑка"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "СпиÑок модÑлей декодеÑов:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÐекодеÑÑ</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "СпиÑок модÑлей обÑего назнаÑениÑ:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÐбÑие</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "СпиÑок модÑлей визÑализаÑии:"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "СпиÑок модÑлей ÑÑÑекÑов:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">ÐÑновное</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">РаÑположение</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">ÐеÑаданнÑе</span>"
-
-#~ msgid "Key"
-#~ msgstr "ÐлÑÑ"
-
-#~ msgid "Value"
-#~ msgstr "ÐнаÑение"
-
-#~ msgid "170 Hz"
-#~ msgstr "170 ÐÑ"
-
-#~ msgid "310 Hz"
-#~ msgstr "310 ÐÑ"
+msgstr "ÐоказаÑÑ Ð¾Ð¿Ñии ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑми"
-#~ msgid "3 kHz"
-#~ msgstr "3 кÐÑ"
-#~ msgid "6 kHz"
-#~ msgstr "6 кÐÑ"
diff --git a/po/sk.po b/po/sk.po
index 41947f8..b8b1d32 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,26 +1,37 @@
-# translation of sk.po to Slovak
# Slovak translation for Audacious
-# Copyright (C) 2007, 2009, 2010, 2011 Andrej Herceg <herceg.andrej at zoznam.sk>
+# Copyright (C) Audacious translators
# This file is distributed under the same license as the Audacious package.
#
-#
+# Translators:
# Andrej Herceg <herceg.andrej at zoznam.sk>, 2007, 2009, 2010, 2011.
+# Tomáš Vadina <kyberdev at gmail.com>, 2012.
msgid ""
msgstr ""
-"Project-Id-Version: sk\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-03-13 20:31+0100\n"
-"Last-Translator: Andrej Herceg <herceg.andrej at zoznam.sk>\n"
-"Language-Team: Slovak <Slovak <sk-i18n at lists.linux.sk>>\n"
-"Language: sk\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-06 08:50+0000\n"
+"Last-Translator: Tomáš Vadina <kyberdev at gmail.com>\n"
+"Language-Team: Slovak\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: KBabel 1.11.4\n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Vyhľadáva sa â¦"
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Nájdených %d súborov"
+msgstr[1] "Nájdený %d súbor"
+msgstr[2] "Nájdené %d súbory"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (neplatné UTF-8)"
@@ -44,248 +55,236 @@ msgstr "Vývoj zásuvných modulov:"
msgid "Patch authors:"
msgstr "Autori záplat:"
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:127
msgid "1.x developers:"
msgstr "Vývojári verzie 1.x:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
msgstr "Vývojári BMP:"
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:181
msgid "Belarusian:"
msgstr "Bieloruština:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
msgstr "BaskiÄtina:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
msgstr "BrazÃlska portugalÄina:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
msgstr "BretónÄina:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
msgstr "BulharÄina:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
msgid "Catalan:"
msgstr "KatalánÄina:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:202
msgid "Chinese:"
msgstr "ÄÃnÅ¡tina:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
msgid "Croatian:"
msgstr "ChorvátÄina:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
msgid "Czech:"
msgstr "ÄeÅ¡tina:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
msgid "Dutch:"
msgstr "HolandÄina:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
msgid "Estonian:"
msgstr "EstónÄina:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
msgid "Finnish:"
msgstr "FÃnÄina:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
msgid "French:"
msgstr "FrancúzÅ¡Äina:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
msgid "German:"
msgstr "NemÄina:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
msgid "Georgian:"
msgstr "GruzÃnÄina:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
msgid "Greek:"
msgstr "GréÄtina:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
msgid "Hindi:"
msgstr "HindÄina:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
msgid "Hungarian:"
msgstr "MaÄarÄina:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
msgid "Italian:"
msgstr "TalianÄina:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
msgid "Japanese:"
msgstr "JaponÄina:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
msgid "Korean:"
msgstr "KórejÄina:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:262
msgid "Latvian:"
msgstr "Lotyština:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
msgid "Lithuanian:"
msgstr "LitovÄina:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
msgid "Macedonian:"
msgstr "MacedónÄina:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
msgid "Polish:"
msgstr "Poľština:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:279
msgid "Portuguese:"
msgstr "PortugalÄina:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
msgid "Romanian:"
msgstr "RumunÄina:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
msgid "Russian:"
msgstr "Ruština:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
msgid "Serbian (Latin):"
msgstr "SrbÅ¡Äina (latinka):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
msgid "Serbian (Cyrillic):"
msgstr "SrbÅ¡Äina (cyrilika):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
msgid "Simplified Chinese:"
msgstr "ZjednoduÅ¡ená ÄÃnÅ¡tina:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
msgid "Slovak:"
msgstr "SlovenÄina:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
msgid "Spanish:"
msgstr "Å panielÄina:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
msgid "Swedish:"
msgstr "Å védÄina:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
msgid "Traditional Chinese:"
msgstr "TradiÄná ÄÃnÅ¡tina:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
msgid "Turkish:"
msgstr "TureÄtina:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
msgid "Ukrainian:"
msgstr "UkrajinÄina:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "VietnamÄina:"
+
+#: src/audacious/credits.c:331
msgid "Welsh:"
msgstr "WelsÄina:"
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "DoÄasný zoznam skladieb"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr "Chyba pri importovanà WinAMP EQF súboru '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Vyhľadáva sa â¦"
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Nájdený jeden súbor"
-msgstr[1] "Nájdené %d súbory"
-msgstr[2] "Nájdených %d súborov"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
msgstr "PreskoÄà na predchádzajúcu skladbu"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "ZaÄne prehrávaÅ¥ aktuálny zoznam skladieb"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "Pozastavà prehrávanú skladbu"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "Zastavà prehrávanú skladbu"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "Pri prehrávanà pozastavÃ, inak zaÄne prehrávaÅ¥"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
msgstr "PreskoÄà na nasledujúcu skladbu"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
msgstr "Zobrazà okno \"Presun na súbor\""
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
msgstr "Pridá súbory do zoznamu skladieb"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
msgstr "Pridá súbory do doÄasného zoznamu skladieb"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "Zobrazà hlavné okno"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Zobrazà všetky otvorené okná Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
msgstr "Zobrazà verziu"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
msgstr "Vypisuje ladiace hlásenia"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Bezhlavý režim (beta)"
+
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "SÃBOR..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
msgstr "- prehrať multimediálne súbory"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
@@ -294,329 +293,297 @@ msgstr ""
"%s: %s\n"
"Ak chcete viac informácià vyskúšajte \"%s --help\".\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
msgstr "Pre %s nebol nájdený žiadny dekodér."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "NapĺÅanie vyrovnávacej pamäte â¦"
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nový zoznam skladieb"
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Nepomenovaný zoznam skladieb"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Práve hrá"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Zoznam skladieb nie je možné triediť, pretože skenovanie metadát stále "
+"prebieha (alebo boli zakázané)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "Zvuk"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Zosilnenie pri prehrávanÃ"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
msgstr "Sieť"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "Zoznam skladieb"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "Moduly"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "Umelec"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Názov"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "ÄÃslo stopy"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "Žáner"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Názov súboru"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "Cesta k súboru"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "Dátum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Rok"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "Komentár"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Kodér"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "Kvalita"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "Žiadne"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabština"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltské jazyky"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "ÄÃnÅ¡tina"
+
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "JaponÄina"
+msgid "Greek"
+msgstr "GréÄtina"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "TaiwanÄina"
+msgid "Hebrew"
+msgstr "HebrejÄina"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "ÄÃnÅ¡tina"
+msgid "Japanese"
+msgstr "JaponÄina"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
msgstr "KórejÄina"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Ruština"
+msgid "Polish"
+msgstr "Poľština"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "GréÄtina"
+msgid "Russian"
+msgstr "Ruština"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "HebrejÄina"
+msgid "Taiwanese"
+msgstr "TaiwanÄina"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "TureÄtina"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabština"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Poľština"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Baltské jazyky"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Univerzálne"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitová hĺbka</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Režim albumu"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Bitová hĺbka výstupu:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Všetky prúdy budú skonvertované na túto bitovú hĺbku.\n"
-"Mala by to byÅ¥ najväÄÅ¡ia podporovaná bitová hĺbka zvukovej\n"
-"karty alebo výstupného modulu."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Nastavenia výstupu</b>"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ovládanie hlasitosti</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Bitová hĺbka:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Použiť softvérové ovládanie hlasitosti"
+msgid "Buffer size:"
+msgstr "Veľkosť vyrovnávacej pamäte:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Použije sa softvérové ovládanie hlasitosti. Toto môže byÅ¥ užitoÄné v "
-"prÃpade, že zvukový systém nepodporuje ovládanie hlasitosti prehrávania."
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- prehrať multimediálne súbory"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "PoužiÅ¥ softvérové ovládanie hlasitosti (neodporúÄa sa)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Režim zosilnenia pri prehrávanÃ</b>"
+msgstr "<b>Zosilnenie pri prehrávanÃ</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "PovoliÅ¥ zosilnenie pri prehrávanÃ"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadáta</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "PredchádzaÅ¥ orezávaniu (odporúÄa sa)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>Zvukový systém</b>"
+msgstr "<b>Nastavenie úrovnÃ</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Vyskakovacie okno s podrobnosťami</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Zosilniť všetky súbory:"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "PoužiÅ¥ informácie o vrchole na ochranu pred orezanÃm signálu"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Zosilniť súbory bez popisov:"
+
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
msgstr "Meno poÄÃtaÄa:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
msgstr "Port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "PoužÃvateľ:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "Heslo:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Nastavenie proxy</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "PoužÃvaÅ¥ proxy"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
msgstr "PoužÃvaÅ¥ autentifikáciu"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Zmena týchto nastavenà sa prejavà až po reštarte "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Automatické rozoznávanie kódovania znakov:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
msgstr "Záložné kódovanie znakov:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Zoznam kódovanà znakov použitých pri konverzii metadát, ak je automatické "
-"rozpoznávanie zakázané alebo neuspeje. Kódovania z tohoto zoznamu budú "
-"použité na konverziu metadát do UTF-8."
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
msgstr "<b>Správanie</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "Po spustenà pokraÄovaÅ¥ v prehrávanÃ"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
msgstr "Prejsť na nasledujúcu skladbu ak je aktuálna skladba vymazaná"
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
msgstr "Pri otvorenà súborov vyprázdniť zoznam skladieb"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
msgstr "OtvoriÅ¥ súbory do doÄasného zoznamu skladieb"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
msgstr "<b>Metadáta</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "NenaÄÃtaÅ¥ metadáta skladieb pred prehranÃm"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "NÃZOV"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "UMELEC - NÃZOV"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "UMELEC - ALBUM - NÃZOV"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "UMELEC - ALBUM - STOPA. NÃZOV"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "UMELEC [ALBUM] - STOPA. NÃZOV"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - NÃZOV"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "Kategória"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
msgstr "Nastavenie vyskakovacieho okna s informáciami"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
msgstr "<b>ZÃskanie obrázku obalu</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -625,175 +592,151 @@ msgstr ""
"Pri hľadanà obalu albumu hľadá Audacious urÄité slová v názve súboru. Tieto "
"slová môžete zadaÅ¥, oddelené Äiarkou, do nižšie uvedených zoznamov."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "VylúÄiÅ¥:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "Zahrnúť:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "RekurzÃvne hľadanie obalu"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "Hĺbka hľadania: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
msgstr "Obrázok obalu pre každý súbor zvlášť"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
msgstr "<b>Rôzne</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "ZobraziÅ¥ pruh priebehu pre pozÃciu v prehrávanej skladbe"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
msgstr "Oneskorenie zobrazenia vyskakovacieho okna: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Vlastné"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>Zobrazenie skladby</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
msgstr "ZobraziÅ¥ ÄÃsla skladieb"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr "Zobrazovať úvodné nuly (02:00 namiesto 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "Zobraziť informácie o formáte názvu"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "NÃZOV"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "UMELEC - NÃZOV"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "UMELEC - ALBUM - NÃZOV"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "UMELEC - ALBUM - STOPA. NÃZOV"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "UMELEC [ALBUM] - STOPA. NÃZOV"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - NÃZOV"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Vlastné"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
msgstr "Vlastný reťazec:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "Formát názvu:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
msgstr "<b>Vyskakovacie okno s podrobnosťami</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
msgstr "Zobrazovať okno s informáciami pre položky v zozname skladieb"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-"Prepne zobrazovanie vyskakovacieho okna s podrobnosťami o vybranej položke v "
-"zozname skladieb. V okne sa zobrazà názov skladby, názov albumu, žáner, rok "
-"vydania, ÄÃslo stopy, dĺžka stopy a obal."
+"Prepne zobrazovanie vyskakovacieho okna s podrobnosťami o vybranej položke v"
+" zozname skladieb. V okne sa zobrazà názov skladby, názov albumu, žáner, rok"
+" vydania, ÄÃslo stopy, dĺžka stopy a obal."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
msgstr "Upraviť nastavenia pre vyskakovacie okno s informáciami"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Zvukový systém</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Veľkosť vyrovnávacej pamäte:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktuálny výstupný modul:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Výstupný modul:"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
msgstr "Prenos"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
msgstr "Vstup"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
msgstr "Efekt"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
msgstr "Vizualizácia"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
msgstr "Všeobecné"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Nastavenia programu"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Nepodarilo sa vytvoriť adresár (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
msgstr "PozÃcia nenájdená."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
msgstr "Nehrá žiadna skladba."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Zvukové CD, stopa %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
msgstr "Mono"
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
msgstr "Stereo"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr "%d kanálov"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanálov"
+msgstr[1] "%d kanál"
+msgstr[2] "%d kanály"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
@@ -802,11 +745,11 @@ msgstr ""
"Ste si istý, že chcete zatvoriÅ¥ %s? Ak tak urobÃte, akékoľvek zmeny urobené "
"od posledného exportu budú stratené."
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
msgstr "_Túto správu už nezobrazovať"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
msgstr "Premenovať zoznam skladieb"
@@ -814,299 +757,319 @@ msgstr "Premenovať zoznam skladieb"
msgid "settings ..."
msgstr "nastavenia â¦"
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
msgstr "_Povoliť"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
msgstr "Ekvalizér"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
msgstr "Predzosilnenie"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "ÄÃslo stopy"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "Dĺžka stopy"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
msgid "Acid Jazz"
msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
msgid "Bluegrass"
msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
msgid "Blues"
msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
msgid "Chamber Music"
msgstr "Komorná hudba"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
msgid "Classical"
msgstr "Klasika"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
msgid "Country"
msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
msgid "Death Metal"
msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
msgid "Disco"
msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
msgid "Easy Listening"
msgstr "PrÃjemné poÄúvanie"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
msgid "Folk"
msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
msgid "Funk"
msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
msgid "Gangsta Rap"
msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
msgid "Gospel"
msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
msgid "Grunge"
msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
msgid "Hard Rock"
msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
msgid "Heavy Metal"
msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
msgid "House"
msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
msgid "Jazz"
msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
msgid "Jungle"
msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
msgid "Metal"
msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
msgid "New Age"
msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
msgid "New Wave"
msgstr "Nová vlna"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
msgid "Noise"
msgstr "Ruch"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
msgid "Pop"
msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
msgid "Punk Rock"
msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
msgid "Rap"
msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
msgid "Reggae"
msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
msgid "Rock"
msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
msgid "Ska"
msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
msgid "Soul"
msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
msgid "Swing"
msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
msgid "Techno"
msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">-</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
msgid "Metadata updated successfully"
msgstr "Matadáta boli úspešne aktualizované"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
msgstr "Aktualizácia metadát zlyhala"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
msgstr "Informácie o stope"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">Formát:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">Kvalita:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
msgstr "<span size=\"small\">Dátový tok:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">Názov</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">Umelec</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">Album</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">Komentár</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">Žáner</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Rok</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">ÄÃslo stopy</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
msgstr "Pre %s nie sú dostupné žiadne informácie.\n"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "SkoÄiÅ¥ na Äas"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportovať zoznam skladieb"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importovať zoznam skladieb"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "PrepÃsaÅ¥ %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Správca fronty"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "O Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "Zásluhy"
@@ -1130,91 +1093,100 @@ msgstr "ZatvoriÅ¥ okno po otvorenÃ"
msgid "Close dialog on Add"
msgstr "ZatvoriÅ¥ okno po pridanÃ"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "O_dobrať z fronty"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
msgid "_Queue"
msgstr "Pri_dať do fronty"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Skok na stopu"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "O_dobrať z fronty"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "SkoÄiÅ¥ na skladbu"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
msgid "Filter: "
msgstr "Filter: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
msgid "_Filter:"
msgstr "_Filter:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Remember"
msgstr "Zapamätať si filter"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:302
msgid "Clea_r"
msgstr "VyÄi_stiÅ¥"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "Close on Jump"
msgstr "Zatvoriť po skoku"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
msgstr "Správca zoznamu skladieb"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "Položky"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "P_remenovať"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
msgstr "_Zatvoriť okno po aktivácii zoznamu skladieb"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
msgstr "Otvoriť URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
msgstr "Pridať URL"
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(ÄalÅ¡ie správy boli skryté.)"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Súbor nie je platný .desktop súbor"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
msgstr "Nerozpoznaná verzia '%s' súboru pracovnej plochy"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "Spúšťa sa %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
msgstr "Aplikácia neprijÃma dokumenty v prÃkazovom riadku"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Nerozpoznaná spúšťacia voľba: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"URI adresa dokumentu sa nedá predať položke pracovnej plochy 'Type=Link'"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
msgstr "Nespustiteľná položka"
@@ -1239,391 +1211,11 @@ msgid "ID"
msgstr "IDENTIFIKÃTOR"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "Možnosti správy relácie"
+msgstr "Možnosti správcu relácie:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "Zobraziť možnosti správy relácie"
-
-#~ msgid ""
-#~ "Running multiple instances of Audacious can lead to corrupted "
-#~ "configuration files. If Audacious is not already running, or if you want "
-#~ "to run another instance anyway, please delete the file %s and run "
-#~ "Audacious again. Audacious will now close."
-#~ msgstr ""
-#~ "Spúšťanie viacerých inštancià Audacious môže viesť k poškodeniu "
-#~ "konfiguraÄných súborov. Ak Audacious eÅ¡te nie je spustený, alebo chcete "
-#~ "aj tak spustiÅ¥ ÄalÅ¡iu inÅ¡tanciu, prosÃm, vymažte súbor %s a spuste "
-#~ "Audacious znova. Audacious sa teraz ukonÄÃ."
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Nepodarilo sa otvoriÅ¥ displej, ukonÄujem sa.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Predzosilnenie:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Štandardné zosilnenie:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Toto zosilnenie bude použité v prÃpade, že súbor neobsahuje informácie o "
-#~ "zosilnenà pri prehrávanÃ."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">ProsÃm, zapamätajte si, že najlepÅ¡ou ochranou proti "
-#~ "orezaniu signálu je nepoužÃvaÅ¥ kladné hodnoty vyššie uvedených parametrov."
-#~ "</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Nastavenie zosilnenia pri prehrávanÃ</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Zosilnenie/vrchol skladby"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Zosilnenie/vrchol albumu"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Použije hodnotu vrcholu z informácii o zosilnenà pri prehrávanà na "
-#~ "ochranu proti orezaniu signálu"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Klasický rok"
-
-#~ msgid "Dance"
-#~ msgstr "TaneÄná"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Iná"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "AlternatÃvna hudba"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vokálna"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fúzia"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Inštrumentálna"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Zvukový klip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "MeditatÃvna"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Inštrumentálny pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Inštrumentálny rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etnická hudba"
-
-#~ msgid "Gothic"
-#~ msgstr "Gotická hudba"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Elektronická"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Južanský rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komédia"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Kresťanský rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Indiánska hudba"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Upútavka"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Muzikál"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Národná ľudová"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latinská"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Keltská"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgardná"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gotický rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "ProgresÃvny rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symfonický rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustická"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Hovorené slovo"
-
-#~ msgid "Chanson"
-#~ msgstr "Šansón"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonáta"
-
-#~ msgid "Symphony"
-#~ msgstr "Symfónia"
-
-#~ 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"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklór"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Rocková balada"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rytmický soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Kresťanský gangsta rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Kresťanský rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
+msgstr "Zobraziť možnosti správcu relácie"
-#~ msgid "JPop"
-#~ msgstr "JPop"
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
diff --git a/po/audacious.pot b/po/sl.po
similarity index 55%
copy from po/audacious.pot
copy to po/sl.po
index 931a6ad..88d42c2 100644
--- a/po/audacious.pot
+++ b/po/sl.po
@@ -1,58 +1,71 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Slovenian translation for Audacious
+# Copyright (C) Audacious Translators
+# This file is distributed under the same license as the Audacious package.
#
-#, fuzzy
+# Translators:
+# kv1dr <poznic.davor at gmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://jira.atheme.org/browse/AUD\n"
+"POT-Creation-Date: 2011-10-19 21:32-0400\n"
+"PO-Revision-Date: 2011-10-20 10:45+0000\n"
+"Last-Translator: kv1dr <poznic.davor at gmail.com>\n"
+"Language-Team: Slovenian\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "IÅ¡Äem ..."
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d datoteka najdena"
+msgstr[1] "%d datoteki najdeni"
+msgstr[2] "%d datotek najdene"
+msgstr[3] "%d datotek najdenih"
+
+#: src/audacious/chardet.c:38
msgid " (invalid UTF-8)"
-msgstr ""
+msgstr " (neveljaven UTF-8)"
#: src/audacious/credits.c:35
msgid "Core developers:"
-msgstr ""
+msgstr "Razvijalci jedra:"
#: src/audacious/credits.c:49
msgid "Graphics:"
-msgstr ""
+msgstr "Grafika:"
#: src/audacious/credits.c:54
msgid "Default skin:"
-msgstr ""
+msgstr "Privzeta obleka:"
#: src/audacious/credits.c:60
msgid "Plugin development:"
-msgstr ""
+msgstr "Razvijalci vtiÄnikov:"
#: src/audacious/credits.c:83
msgid "Patch authors:"
-msgstr ""
+msgstr "Avtorji popravkov:"
#: src/audacious/credits.c:126
msgid "1.x developers:"
-msgstr ""
+msgstr "Razvijalci razliÄice 1.x:"
#: src/audacious/credits.c:148
msgid "BMP Developers:"
-msgstr ""
+msgstr "BMP razvijalci:"
#: src/audacious/credits.c:180
msgid "Belarusian:"
-msgstr ""
+msgstr "BeloruÅ¡Äina:"
#: src/audacious/credits.c:183
msgid "Basque:"
@@ -60,790 +73,736 @@ msgstr ""
#: src/audacious/credits.c:186
msgid "Brazilian Portuguese:"
-msgstr ""
+msgstr "Brazilska portugalÅ¡Äina:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
msgid "Breton:"
msgstr ""
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
msgid "Bulgarian:"
-msgstr ""
+msgstr "BolgarÅ¡Äina:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
msgid "Catalan:"
-msgstr ""
+msgstr "KatalonÅ¡Äina:"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:200
msgid "Chinese:"
-msgstr ""
+msgstr "KitajÅ¡Äina:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
msgid "Croatian:"
-msgstr ""
+msgstr "HrvaÅ¡Äina:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
msgid "Czech:"
-msgstr ""
+msgstr "ÄeÅ¡Äina:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
msgid "Dutch:"
-msgstr ""
+msgstr "NizozemÅ¡Äina:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
msgid "Estonian:"
-msgstr ""
+msgstr "EstonÅ¡Äina:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
msgid "Finnish:"
-msgstr ""
+msgstr "FinÅ¡Äina:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
msgid "French:"
-msgstr ""
+msgstr "FrancoÅ¡Äina:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
msgid "German:"
-msgstr ""
+msgstr "NemÅ¡Äina:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
msgid "Georgian:"
-msgstr ""
+msgstr "GruzijÅ¡Äina:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
msgid "Greek:"
-msgstr ""
+msgstr "GrÅ¡Äina:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
msgid "Hindi:"
-msgstr ""
+msgstr "HindijÅ¡Äina:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
msgid "Hungarian:"
-msgstr ""
+msgstr "MadžarÅ¡Äina:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
msgid "Italian:"
-msgstr ""
+msgstr "ItalijanÅ¡Äina:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
msgid "Japanese:"
-msgstr ""
+msgstr "JaponÅ¡Äina:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
msgid "Korean:"
-msgstr ""
+msgstr "KorejÅ¡Äina:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:259
msgid "Latvian:"
-msgstr ""
+msgstr "LatvijÅ¡Äina:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
msgid "Lithuanian:"
-msgstr ""
+msgstr "LitovÅ¡Äina:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
msgid "Macedonian:"
-msgstr ""
+msgstr "MakedonÅ¡Äina:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
msgid "Polish:"
-msgstr ""
+msgstr "PolÅ¡Äina:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:276
msgid "Portuguese:"
-msgstr ""
+msgstr "PortugalÅ¡Äina:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
msgid "Romanian:"
-msgstr ""
+msgstr "RomunÅ¡Äina:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
msgid "Russian:"
-msgstr ""
+msgstr "RuÅ¡Äina:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
msgid "Serbian (Latin):"
-msgstr ""
+msgstr "SrbÅ¡Äina (latinsko):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "SrbÅ¡Äina (cirilica):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Poenostavljena kitajÅ¡Äina:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
msgid "Slovak:"
-msgstr ""
+msgstr "SlovaÅ¡Äina:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
msgid "Spanish:"
-msgstr ""
+msgstr "Å panÅ¡Äina:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
msgid "Swedish:"
-msgstr ""
+msgstr "Å vedÅ¡Äina:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
msgid "Traditional Chinese:"
-msgstr ""
+msgstr "Tradicionalna kitajÅ¡Äina:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
msgid "Turkish:"
-msgstr ""
+msgstr "TurÅ¡Äina:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
msgid "Ukrainian:"
-msgstr ""
+msgstr "UkrajinÅ¡Äina:"
+
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "VietnamÅ¡Äina:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:326
msgid "Welsh:"
-msgstr ""
+msgstr "ValižanÅ¡Äina:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:234
msgid "Temporary Playlist"
-msgstr ""
+msgstr "ZaÄasni seznam predvajanja"
#: src/audacious/equalizer_preset.c:186
#, c-format
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
msgid "Skip backwards in playlist"
msgstr ""
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
msgid "Start playing current playlist"
msgstr ""
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
msgid "Pause current song"
msgstr ""
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
msgid "Stop current song"
-msgstr ""
+msgstr "Ustavi trenutno pesem"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
msgid "Pause if playing, play otherwise"
msgstr ""
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
msgid "Skip forward in playlist"
msgstr ""
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
msgid "Display Jump to File dialog"
msgstr ""
-#: src/audacious/main.c:254
+#: src/audacious/main.c:246
msgid "Add files to the playlist"
msgstr ""
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
msgid "Add new files to a temporary playlist"
msgstr ""
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
msgid "Display the main window"
msgstr ""
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
msgid "Show version"
-msgstr ""
+msgstr "Prikaži razliÄico"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
-msgid "FILE..."
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:252
+msgid "FILE..."
+msgstr "DATOTEKA ..."
+
+#: src/audacious/main.c:264
msgid "- play multimedia files"
-msgstr ""
+msgstr "- predvajaj veÄpredstavnostne datoteke"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
+"%s: %s\n"
+"Poizkusi `%s --help' za veÄ informacij.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
msgid "Audacious"
-msgstr ""
+msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:303
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
-
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:315
msgid "Untitled Playlist"
+msgstr "Neimenovan seznam predvajanja"
+
+#: src/audacious/playlist-new.c:1496
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
msgstr ""
#: src/audacious/ui_preferences.c:88
msgid "Audio"
-msgstr ""
+msgstr "Zvok"
#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
msgid "Network"
-msgstr ""
+msgstr "Omrežje"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
msgid "Playlist"
-msgstr ""
+msgstr "Seznam predvajanja"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
msgid "Plugins"
-msgstr ""
+msgstr "VtiÄniki"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
msgid "Artist"
-msgstr ""
+msgstr "Izvajalec"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
msgid "Album"
-msgstr ""
+msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
msgid "Title"
-msgstr ""
+msgstr "Naslov"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
msgid "Tracknumber"
-msgstr ""
+msgstr "Å t. skladbe"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
msgid "Genre"
-msgstr ""
+msgstr "Zvrst"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
msgid "Filename"
-msgstr ""
+msgstr "Ime datoteke"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
msgid "Filepath"
-msgstr ""
+msgstr "Pot datoteke"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
msgid "Date"
-msgstr ""
+msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
msgid "Year"
-msgstr ""
+msgstr "Leto"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
msgid "Comment"
-msgstr ""
+msgstr "Komentar"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
msgid "Codec"
-msgstr ""
+msgstr "Kodek"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
msgid "Quality"
-msgstr ""
+msgstr "Kvaliteta"
#: src/audacious/ui_preferences.c:114
msgid "None"
-msgstr ""
+msgstr "NiÄesar"
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr ""
+msgid "Arabic"
+msgstr "ArabÅ¡Äina"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
+msgid "Baltic"
msgstr ""
#: src/audacious/ui_preferences.c:117
msgid "Chinese"
-msgstr ""
+msgstr "KitajÅ¡Äina"
#: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr ""
+msgid "Greek"
+msgstr "GrÅ¡Äina"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr ""
+msgid "Hebrew"
+msgstr "HebrejÅ¡Äina"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr ""
+msgid "Japanese"
+msgstr "JaponÅ¡Äina"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Korean"
+msgstr "KorejÅ¡Äina"
#: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr ""
+msgid "Polish"
+msgstr "PolÅ¡Äina"
#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
+msgid "Russian"
+msgstr "RuÅ¡Äina"
#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr ""
+msgid "Taiwanese"
+msgstr "TajvanÅ¡Äina"
#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr ""
+msgid "Turkish"
+msgstr "TurÅ¡Äina"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+msgid "Album mode"
msgstr ""
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr ""
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Nastavitve odvoda</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
+msgid "Bit depth:"
msgstr ""
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
+
#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:160
+msgid "<b>Replay Gain</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
+#: src/audacious/ui_preferences.c:161
+msgid "Enable Replay Gain"
msgstr ""
#: src/audacious/ui_preferences.c:164
-msgid "<b>Replay Gain</b>"
+msgid "Prevent clipping (recommended)"
msgstr ""
-#: src/audacious/ui_preferences.c:165
-msgid "Enable Replay Gain"
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
msgstr ""
#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
+msgid "Amplify all files:"
msgstr ""
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:172
-msgid "<b>Adjust Levels</b>"
+msgid "Amplify untagged files:"
msgstr ""
#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:180
msgid "Proxy hostname:"
msgstr ""
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
-msgstr ""
+msgstr "Proxy vrata:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
-msgstr ""
+msgstr "Proxy uporabniško ime:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
-msgstr ""
+msgstr "Proxy geslo:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
-msgstr ""
+msgstr "<b>Proxy konfiguracija</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
-msgstr ""
+msgstr "OmogoÄi uporabi Proxy-ja"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
msgid "Use authentication with proxy"
msgstr ""
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
-msgstr ""
+msgstr "Nadaljuj predvajanje ob zagonu programa"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
-msgstr ""
+msgstr "PoÄisti seznam predvajanja ob odpiranju datotek"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
-msgstr ""
+msgstr "Odpri datoteke v zaÄasnem seznamu predvajanja"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:501
-msgid "Category"
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
msgstr ""
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr "NASLOV"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr "IZVAJALEC - NASLOV"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "IZVAJALEC - ALBUM - NASLOV"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - NASLOV"
+
+#: src/audacious/ui_preferences.c:577
+msgid "Category"
+msgstr "Kategorija"
+
+#: src/audacious/ui_preferences.c:801
msgid "Popup Information Settings"
msgstr ""
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:810
msgid "<b>Cover image retrieve</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
msgid "Exclude:"
msgstr ""
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
msgid "Include:"
msgstr ""
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:883
msgid "<b>Miscellaneous</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:1383
msgid "<b>Song Display</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
msgid "Show information about titlestring format"
msgstr ""
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
msgid "Custom string:"
msgstr ""
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
msgid "Title format:"
msgstr ""
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
msgid "<b>Popup Information</b>"
msgstr ""
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
msgid "Transport"
msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "Effect"
-msgstr ""
+msgstr "Efekti"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "Visualization"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
msgid "Audacious Preferences"
-msgstr ""
+msgstr "Nastavitve Audacious"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:123
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr ""
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
msgid "Position not found."
msgstr ""
#: src/audtool/handlers_vitals.c:64
msgid "No song playing."
-msgstr ""
+msgstr "Nobena pesem se ne predvaja"
#: src/libaudcore/tuple.c:685
msgid "Mono"
-msgstr ""
+msgstr "Mono"
#: src/libaudcore/tuple.c:687
msgid "Stereo"
-msgstr ""
+msgstr "Stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
-
-#: src/libaudgui/confirm.c:65
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanal"
+msgstr[1] "%d kanala"
+msgstr[2] "%d kanali"
+msgstr[3] "%d kanalov"
+
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr ""
+msgstr "_Ne prikaži veÄ tega sporoÄila"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr ""
+msgstr "Preimenuj seznam predvajanja"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "nastavitve ..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:52
msgid "_Enable"
-msgstr ""
+msgstr "_OmogoÄi"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
msgid "Equalizer"
msgstr ""
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:147
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
-msgstr ""
+msgstr "Å tevilka skladbe"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
-msgstr ""
+msgstr "Dolžina skladbe"
#: src/libaudgui/infowin.c:77
msgid "Acid Jazz"
@@ -1016,15 +975,15 @@ msgstr ""
#: src/libaudgui/infowin.c:318
msgid "Track Information"
-msgstr ""
+msgstr "Podatk o skladbi"
#: src/libaudgui/infowin.c:350
msgid "<span size=\"small\">Format:</span>"
-msgstr ""
+msgstr "<span size=\"small\">Format:</span>"
#: src/libaudgui/infowin.c:354
msgid "<span size=\"small\">Quality:</span>"
-msgstr ""
+msgstr "<span size=\"small\">Kvaliteta:</span>"
#: src/libaudgui/infowin.c:357
msgid "<span size=\"small\">Bitrate:</span>"
@@ -1032,126 +991,158 @@ msgstr ""
#: src/libaudgui/infowin.c:387
msgid "<span size=\"small\">Title</span>"
-msgstr ""
+msgstr "<span size=\"small\">Naslov</span>"
#: src/libaudgui/infowin.c:399
msgid "<span size=\"small\">Artist</span>"
-msgstr ""
+msgstr "<span size=\"small\">Izvajalec</span>"
#: src/libaudgui/infowin.c:411
msgid "<span size=\"small\">Album</span>"
-msgstr ""
+msgstr "<span size=\"small\">Album</span>"
#: src/libaudgui/infowin.c:423
msgid "<span size=\"small\">Comment</span>"
-msgstr ""
+msgstr "<span size=\"small\">Komentar</span>"
#: src/libaudgui/infowin.c:435
msgid "<span size=\"small\">Genre</span>"
-msgstr ""
+msgstr "<span size=\"small\">Zvrst</span>"
#: src/libaudgui/infowin.c:456
msgid "<span size=\"small\">Year</span>"
-msgstr ""
+msgstr "<span size=\"small\">Leto</span>"
#: src/libaudgui/infowin.c:467
msgid "<span size=\"small\">Track Number</span>"
-msgstr ""
+msgstr "<span size=\"small\">Å tevilka skladbe</span>"
#: src/libaudgui/infowin.c:549
#, c-format
msgid "%d kb/s"
-msgstr ""
+msgstr "%d kb/s"
#: src/libaudgui/infowin.c:579
#, c-format
msgid "No info available for %s.\n"
msgstr ""
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
msgstr ""
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Izvozi seznam predvajanja"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Uvozi seznam predvajanja"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr ""
+
+#: src/libaudgui/ui_about.c:69
+msgid "About Audacious"
+msgstr "O Audacious"
+
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr ""
#: src/libaudgui/ui_credits.c:126
msgid "Translators"
-msgstr ""
+msgstr "Prevajalci"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
-msgstr ""
+msgstr "Odpri datoteke"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
-msgstr ""
+msgstr "Dodaj datoteke"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr ""
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
+msgid "_Queue"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
-msgid "_Queue"
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:239
msgid "Jump to Track"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
msgid "Filter: "
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
msgid "_Filter:"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
msgid "Remember"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Clea_r"
msgstr ""
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
msgid "Close on Jump"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:250
msgid "Playlist Manager"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:298
msgid "_Rename"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:322
msgid "_Close dialog on activating playlist"
msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
msgstr ""
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1161,25 +1152,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1193,7 +1184,7 @@ msgstr ""
#: src/libeggsmclient/eggsmclient.c:229
msgid "FILE"
-msgstr ""
+msgstr "DATOTEKA"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
@@ -1201,7 +1192,7 @@ msgstr ""
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
-msgstr ""
+msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
msgid "Session management options:"
@@ -1210,3 +1201,5 @@ msgstr ""
#: src/libeggsmclient/eggsmclient.c:254
msgid "Show session management options"
msgstr ""
+
+
diff --git a/po/sr.po b/po/sr.po
index 2f7db70..84d1ca9 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,32 +1,43 @@
-# translation of sr.po to
-# Strahinja Kustudic <kustudic at gmail.com>, 2007, 2008.
-# translation of audacious.pot to Serbian Cyrillic
-# Copyright (C) 2007 Strahinja KustudiÄ <kustodian at gmail.com>
+# Serbian translation for Audacious
+# Copyright (C) Audacious translators
# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Strahinja Kustudic <kustudic at gmail.com>, 2007, 2008.
+# ÐиÑоÑлав ÐÐ¸ÐºÐ¾Ð»Ð¸Ñ <miroslavnikolic at rocketmail.com>, 2011, 2012.
msgid ""
msgstr ""
-"Project-Id-Version: sr\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2008-07-19 11:57+0200\n"
-"Last-Translator: Strahinja Kustudic <kustudic at gmail.com>\n"
-"Language-Team: <en at li.org>\n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-08 17:19+0000\n"
+"Last-Translator: MirosNik <miroslavnikolic at rocketmail.com>\n"
+"Language-Team: Serbian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Language: sr\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "ТÑажим ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "ÐÑонаÑао Ñам %d даÑоÑекÑ"
+msgstr[1] "ÐÑонаÑао Ñам %d даÑоÑеке"
+msgstr[2] "ÐÑонаÑао Ñам %d даÑоÑека"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
-msgstr " (неиÑпÑаван UTF-8)"
+msgstr " (неиÑпÑаван УТФ-8)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "0.1.x ÑÑваÑаоÑи:"
+msgstr "ÐÑогÑамеÑи ÑезгÑа:"
#: src/audacious/credits.c:49
msgid "Graphics:"
@@ -34,1100 +45,1031 @@ msgstr "ÐÑаÑика:"
#: src/audacious/credits.c:54
msgid "Default skin:"
-msgstr "ÐодÑазÑмевана маÑка:"
+msgstr "ÐÑновна маÑка:"
#: src/audacious/credits.c:60
msgid "Plugin development:"
-msgstr "Ð Ð°Ð·Ð²Ð¾Ñ Ð´Ð¾Ð´Ð°Ñака:"
+msgstr "Ð Ð°Ð·Ð²Ð¾Ñ Ð¿ÑикÑÑÑка:"
#: src/audacious/credits.c:83
msgid "Patch authors:"
msgstr "ÐÑÑоÑи закÑпа:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
msgid "1.x developers:"
msgstr "0.1.x ÑÑваÑаоÑи:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
-msgstr "BMP ÑÑваÑаоÑи:"
+msgstr "ÐÐРпÑогÑамеÑи:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
msgid "Belarusian:"
-msgstr "ÐÑгаÑÑки:"
+msgstr "ÐелоÑÑÑки:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
-msgstr ""
+msgstr "ÐаÑкиÑÑки:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
-msgstr "ÐÑазилÑко ÐоÑÑÑгалÑки:"
+msgstr "ÐÑазилÑки-поÑÑÑгалÑки:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
msgstr "ÐÑеÑонÑки:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
msgstr "ÐÑгаÑÑки:"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
msgid "Catalan:"
msgstr "ÐаÑалонÑки:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:202
msgid "Chinese:"
-msgstr "ÐинеÑки"
+msgstr "ÐинеÑки:"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
msgid "Croatian:"
msgstr "Ð¥ÑваÑÑки:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
msgid "Czech:"
msgstr "ЧеÑки:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
msgid "Dutch:"
msgstr "ХоландÑки:"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
msgid "Estonian:"
msgstr "ÐÑÑонÑки:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
msgid "Finnish:"
msgstr "ФинÑки:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
msgid "French:"
msgstr "ФÑанÑÑÑки:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
msgid "German:"
msgstr "ÐемаÑки:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
msgid "Georgian:"
msgstr "ÐÑменÑки:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
msgid "Greek:"
msgstr "ÐÑÑки:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
msgid "Hindi:"
-msgstr "ÐндиÑÑки:"
+msgstr "ХиндÑ:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
msgid "Hungarian:"
msgstr "ÐаÑаÑÑки:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
msgid "Italian:"
msgstr "ÐÑалиÑанÑки:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
msgid "Japanese:"
msgstr "ÐапанÑки:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
msgid "Korean:"
-msgstr "ÐоÑеанÑки:"
+msgstr "ÐоÑеÑÑки:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
msgid "Latvian:"
-msgstr "Ð¥ÑваÑÑки:"
+msgstr "ÐеÑонÑки:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
msgid "Lithuanian:"
msgstr "ÐиÑванÑки:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
msgid "Macedonian:"
msgstr "ÐакедонÑки:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
msgid "Polish:"
msgstr "ÐоÑÑки:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
msgid "Portuguese:"
-msgstr "ÐÑазилÑко ÐоÑÑÑгалÑки:"
+msgstr "ÐоÑÑÑгалÑки:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
msgid "Romanian:"
msgstr "Ð ÑмÑнÑки:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
msgid "Russian:"
msgstr "Ð ÑÑки:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
msgid "Serbian (Latin):"
msgstr "СÑпÑки (ÐаÑиниÑа):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
msgid "Serbian (Cyrillic):"
msgstr "СÑпÑки (ÐиÑилиÑа):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
msgid "Simplified Chinese:"
-msgstr "УпÑоÑÑен ÐинеÑки:"
+msgstr "УпÑоÑÑени кинеÑки:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
msgid "Slovak:"
msgstr "СловенаÑки:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
msgid "Spanish:"
msgstr "ШпанÑки:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
msgid "Swedish:"
msgstr "ШведÑки:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
msgid "Traditional Chinese:"
-msgstr "ТÑадиÑионални ÐинеÑки:"
+msgstr "ТÑадиÑионални кинеÑки:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
msgid "Turkish:"
msgstr "ТÑÑÑки:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
msgid "Ukrainian:"
msgstr "УкÑаинÑки:"
-#: src/audacious/credits.c:316
-msgid "Welsh:"
-msgstr "ÐелÑанÑки:"
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "ÐиÑеÑнамÑки:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "УÑиÑÐ°Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
+#: src/audacious/credits.c:331
+msgid "Welsh:"
+msgstr "ÐелÑки:"
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr "ÐÑеÑка пÑиликом ÑвозеÑа Winamp EQF даÑоÑеке '%s'"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr "ÐÑеÑка пÑиликом Ñвоза ÐинÐÐÐ ÐÐÑФ даÑоÑеке â%sâ"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
-msgstr "СкоÑи Ñназад Ñ Ð»Ð¸ÑÑи нÑмеÑа"
+msgstr "ÐÑеÑкаÑе Ñназад Ñ ÑпиÑÐºÑ Ð½ÑмеÑа"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
-msgstr "ÐÑÑÑи ÑекÑÑÑ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
+msgstr "ÐÑÑÑа ÑекÑÑи ÑпиÑак нÑмеÑа"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
-msgstr "ÐаÑзиÑÐ°Ñ ÑекÑÑÑ Ð¿ÐµÑмÑ"
+msgstr "ÐаÑзиÑа ÑекÑÑÑ Ð¿ÐµÑмÑ"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
-msgstr "ÐаÑÑÑави ÑекÑÑÑ Ð¿ÐµÑмÑ"
+msgstr "ÐаÑÑÑавÑа ÑекÑÑÑ Ð¿ÐµÑмÑ"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
-msgstr "ÐаÑзиÑÐ°Ñ Ð°ÐºÐ¾ ÑвиÑа, инаÑе пÑÑÑи"
+msgstr "ÐаÑзиÑа ако ÑвиÑа, инаÑе пÑÑÑа"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
-msgstr "СкоÑи ÑнапÑед Ñ Ð»Ð¸ÑÑи нÑмеÑа"
+msgstr "ÐÑеÑкаÑе ÑнапÑед Ñ ÑпиÑÐºÑ Ð½ÑмеÑа"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "ÐÑикажи ÐÑеÑи на даÑоÑÐµÐºÑ Ð¾ÐºÐ²Ð¸Ñ"
+msgstr "ÐÑиказÑÑе пÑозоÑÑе âÐÑеÑи на даÑоÑекÑâ"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "ÐодаÑе даÑоÑеке Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа."
+msgstr "ÐодаÑе даÑоÑеке на ÑпиÑак нÑмеÑа"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
-msgstr "ÐодаÑе нове даÑоÑеке Ñ Ð¿ÑивÑÐµÐ¼ÐµÐ½Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
+msgstr "ÐодаÑе нове даÑоÑеке Ñ Ð¿ÑивÑемени ÑпиÑак нÑмеÑа"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
msgid "Display the main window"
-msgstr "ÐÑикажи главни пÑозоÑ"
+msgstr "ÐÑиказÑÑе главни пÑозоÑ"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "ÐÑикажи Ñве оÑвоÑене Audacious пÑозоÑе"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
msgid "Show version"
-msgstr "ÐÑикажи веÑзиÑÑ"
+msgstr "ÐÑиказÑÑе издаÑе"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "ÐÑпиÑÑÑе поÑÑке за иÑпÑавÑаÑе гÑеÑака"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Ðезглави Ñежим (беÑа)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
msgstr "ÐÐТÐТÐÐÐ..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
-msgstr "- пÑÑÑи мÑлÑимедиÑалне даÑоÑеке"
+msgstr "â пÑÑÑа мÑлÑимедиÑалне даÑоÑеке"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
"%s: %s\n"
-"ÐÑобаÑÑе `%s --help' за виÑе инÑоÑмаÑиÑа.\n"
-
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
+"ÐÑобаÑÑе â%s --helpâ за виÑе инÑоÑмаÑиÑа.\n"
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
-msgstr "Audacious"
+msgstr "ÐезоÑник"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "ÐиÑам пÑонаÑао Ð´ÐµÐºÐ¾Ð´ÐµÑ Ð·Ð° %s."
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Ðови ÑпиÑак нÑмеÑа"
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Ðова лиÑÑа нÑмеÑа"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Сад пÑÑÑам"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"ÐиÑÑа нÑмеÑа не може биÑи поÑеÑана заÑо ÑÑо Ñе пÑегледаÑе меÑаподаÑака ÑÐ¾Ñ "
+"Ñвек Ñ ÑÐ¾ÐºÑ (или Ñе иÑкÑÑÑено)."
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "ÐÑдио"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
-msgstr ""
+msgstr "ÐÑежа"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
-msgstr "ÐиÑÑа нÑмеÑа"
+msgstr "СпиÑак нÑмеÑа"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
-msgstr "ÐодаÑи"
+msgstr "ÐÑикÑÑÑÑи"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "ÐзвоÑаÑ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "ÐлбÑм"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "ÐаÑлов"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "ÐÑÐ¾Ñ Ð½ÑмеÑе"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "ÐанÑ"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
-msgstr "Ðме даÑоÑеке"
+msgstr "Ðазив даÑоÑеке"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "ÐÑÑаÑа даÑоÑеке"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "ÐаÑÑм"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "Ðодина"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "ÐоменÑаÑ"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
msgstr "Ðодек"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "ÐвалиÑеÑ"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
-msgstr "ÐиÑедан"
+msgstr "ÐиÑÑа"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "ÐÑапÑки"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "ÐалÑиÑки"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "ÐинеÑки"
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "ÐапанÑки"
+msgid "Greek"
+msgstr "ÐÑÑки"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "ТаÑванÑки"
+msgid "Hebrew"
+msgstr "ÐевÑеÑÑки"
#: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "ÐинеÑки"
+msgid "Japanese"
+msgstr "ÐапанÑки"
#: src/audacious/ui_preferences.c:118
msgid "Korean"
-msgstr "ÐоÑеанÑки"
+msgstr "ÐоÑеÑÑки"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Ð ÑÑки"
+msgid "Polish"
+msgstr "ÐоÑÑки"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "ÐÑÑки"
+msgid "Russian"
+msgstr "Ð ÑÑки"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "ÐевÑеÑÑки"
+msgid "Taiwanese"
+msgstr "ТаÑванÑки"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
msgstr "ТÑÑÑки"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "ÐÑапÑки"
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "ÐоÑÑки:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "ÐелÑÑка"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "УнивеÑзалан"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>ÐÑбина биÑа</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Режим албÑма"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "ÐÑбина биÑа излаза:"
+msgid "<b>Output Settings</b>"
+msgstr "<b>ÐодеÑаваÑа излаза</b>"
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Сви Ñокови Ñе биÑи пÑеÑвоÑени Ñ Ð¾Ð²Ñ Ð´ÑÐ±Ð¸Ð½Ñ Ð±Ð¸Ñа.\n"
-"Ðво би ÑÑебала да бÑде макÑимална подÑжана дÑбина биÑа\n"
-"мÑзиÑке каÑÑиÑе или излазног додаÑка."
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>ÐонÑÑола ÑаÑине звÑка</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "ÐÑбина биÑа:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ÐоÑиÑÑи ÑоÑÑвеÑÑÐºÑ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð·Ð²Ñка"
+msgid "Buffer size:"
+msgstr "ÐелиÑина баÑеÑа:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"ÐоÑиÑÑи ÑоÑÑвеÑÑÐºÑ ÐºÐ¾Ð½ÑÑÐ¾Ð»Ñ Ð·Ð²Ñка. Ðво може биÑи коÑиÑно Ñ ÑиÑÑаÑиÑама где "
-"Ð²Ð°Ñ Ð°Ñдио ÑиÑÑем не подÑжава конÑÑÐ¾Ð»Ñ ÑаÑине звÑка ÑепÑодÑкÑиÑе."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+msgid "ms"
+msgstr "ms"
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- пÑÑÑи мÑлÑимедиÑалне даÑоÑеке"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "ÐоÑиÑÑи ÑоÑÑвеÑÑко ÑпÑавÑаÑе ÑаÑином звÑка (ниÑе пÑепоÑÑÑÑиво)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Replay Gain Ñежим</b>"
+msgstr "<b>ÐоÑаÑаÑе понавÑаÑа</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
-msgstr "УкÑÑÑи Replay Gain"
-
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ÐеÑа-подаÑи</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "ÐÑикажи деÑаÑе нÑмеÑе"
+msgstr "УкÑÑÑи поÑаÑаÑе понавÑаÑа"
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ÐлбÑм: "
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "СпÑеÑи одÑеÑаÑе (пÑепоÑÑÑÑиво)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>ТоÑÐºÐ¸Ñ Ð¼Ð¸Ñа</b>"
+msgstr "<b>ÐодеÑи нивое</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "ÐоÑаÑÐ°Ñ Ñве даÑоÑеке:"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ÐÑкаÑÑÑе инÑоÑмаÑиÑе</b>"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "УкÑÑÑи заÑÑиÑÑ Ð¾Ð´ одÑеÑаÑа вÑÑ
ÑнаÑа"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "ÐоÑаÑÐ°Ñ Ð´Ð°ÑоÑеке без ознака:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
-msgstr "Ðме домаÑина поÑÑедника:"
+msgstr "Ðазив домаÑина поÑÑедника:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
-msgstr "ÐоÑÑедниÑки поÑÑ:"
+msgstr "ÐоÑÑ Ð¿Ð¾ÑÑедника:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
-msgstr "ÐоÑÑедниÑко коÑиÑниÑко име:"
+msgstr "ÐоÑиÑниÑко име поÑÑедника:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
-msgstr "ÐоÑÑедниÑка лозинка:"
+msgstr "Ðозинка поÑÑедника:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
-msgstr "<b>ÐонÑигÑÑаÑиÑа поÑÑедника</b>"
+msgstr "<b>ÐодеÑаваÑа поÑÑедника</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
msgstr "УкÑÑÑи коÑиÑÑеÑе поÑÑедника"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
-msgstr "ÐоÑиÑÑи пÑовеÑÑ Ð¸Ð´ÐµÐ½ÑиÑеÑа Ñа поÑÑедником"
+msgstr "ÐоÑиÑÑи поÑвÑÑиваÑе иденÑиÑеÑа Ñа поÑÑедником"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">ÐеÑаÑе овиÑ
подеÑаваÑа Ñе заÑ
ÑеваÑи поновно покÑеÑаÑе "
-"Audacious-а.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr "ÐÑÑо-пÑепознаваÑе кодиÑаÑа каÑакÑеÑа за:"
+msgstr "ÐеÑекÑÐ¾Ñ Ð°ÑÑомаÑÑког кодиÑаÑа знакова за:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
-msgstr "РезеÑвно кодиÑаÑе каÑакÑеÑа:"
-
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"ÐиÑÑа кодиÑаÑа каÑакÑеÑа коÑа Ñе коÑиÑÑе за ÑезеÑÐ²Ð½Ñ ÐºÐ¾Ð½Ð²ÐµÑзиÑÑ Ð¼ÐµÑа-"
-"подаÑака. Ðко аÑÑомаÑÑко пÑепознаваÑе кодиÑаÑа каÑакÑеÑа не ÑпÑе или Ñе "
-"иÑкÑÑÑено, кодиÑаÑа Ñ Ð¾Ð²Ð¾Ñ Ð»Ð¸ÑÑи Ñе биÑи кандидаÑи за ÑиÑÑоваÑе меÑа-"
-"поаÑака, и ÑезеÑвна конвеÑзиÑа из овиÑ
кодиÑаÑа Ñ UTF-8 Ñе биÑи покÑÑана."
+msgstr "РезеÑвно кодиÑаÑе знакова:"
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "<b>ÐÑбина биÑа</b>"
+msgstr "<b>ÐонаÑаÑе</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
msgstr "ÐаÑÑави ÑепÑодÑковаÑе на поÑеÑкÑ"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "ÐапÑедÑÑ ÐºÐ°Ð´Ð° Ñе обÑиÑана ÑекÑÑа пеÑма"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "ÐапÑави Ð½Ð¾Ð²Ñ Ð»Ð¸ÑÑÑ Ð¾Ð´ наÑениÑ
ÑÑавки"
+msgstr "ÐÑиÑÑи лиÑÑÑ Ð½ÑмеÑа пÑиликом оÑваÑаÑа даÑоÑека"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "ÐодаÑе нове даÑоÑеке Ñ Ð¿ÑивÑÐµÐ¼ÐµÐ½Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
+msgstr "ÐÑвоÑи даÑоÑеке Ñ Ð¿ÑивÑÐµÐ¼ÐµÐ½Ð¾Ñ Ð»Ð¸ÑÑи нÑмеÑа"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
-msgstr "<b>ÐеÑа-подаÑи</b>"
+msgstr "<b>ÐеÑаподаÑи</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ðе ÑÑиÑÐ°Ð²Ð°Ñ Ð¼ÐµÑаподаÑке за пеÑме док Ñе не пÑÑÑе"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "ÐÐСÐÐÐ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ÐÐÐÐÐÐЧ â ÐÐСÐÐÐ"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ÐÐÐÐÐÐЧ â ÐÐÐУРâ ÐÐСÐÐÐ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ÐÐÐÐÐÐЧ â ÐÐÐУРâ ÐÐ ÐÐ. ÐÐСÐÐÐ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ÐÐÐÐÐÐЧ [ ÐÐÐУР] â ÐÐ ÐÐ. ÐÐСÐÐÐ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÐÐÐУРâ ÐÐСÐÐÐ"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "ÐаÑегоÑиÑа"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
-msgstr "ÐодеÑаваÑа иÑкаÑÑÑиÑ
инÑоÑмаÑиÑа"
+msgstr "ÐоÑÑавке облаÑиÑа инÑоÑмаÑиÑа"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr "<b>УÑиÑаваÑе наÑловне Ñлике</b>"
+msgstr "<b>УÑиÑаваÑе Ñлике омоÑа</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-"Ðок ÑÑажи наÑловне Ñлике албÑма, Audacious ÑÑажи одÑеÑене ÑеÑи Ñ Ð¸Ð¼ÐµÐ½Ñ "
-"даÑоÑеке. ÐожеÑе навеÑÑи Ñе ÑеÑи доле Ñ Ð»Ð¸ÑÑи, ÑаздвоÑене запеÑама."
+"Ðок ÑÑажи Ñлике омоÑа албÑма, ÐезоÑник ÑÑажи одÑеÑене ÑеÑи Ñ Ð½Ð°Ð·Ð¸Ð²Ñ "
+"даÑоÑеке. ÐожеÑе навеÑÑи Ñе ÑеÑи Ñ ÑпиÑÐºÑ Ð´Ð¾Ð»Ðµ, ÑаздвоÑене заÑезима."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
msgstr "ÐÑкÑÑÑи:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
msgstr "УкÑÑÑи:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
-msgstr "РекÑÑзивно ÑÑажи наÑÐ»Ð¾Ð²Ð½Ñ ÑликÑ"
+msgstr "РекÑÑзивно ÑÑажи ÑÐ»Ð¸ÐºÑ Ð¾Ð¼Ð¾Ñа"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
msgstr "ÐÑбина пÑеÑÑаге: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
-msgstr "ÐоÑиÑÑи ÑÐµÐ´Ð½Ñ Ð½Ð°ÑÐ»Ð¾Ð²Ð½Ñ ÑÐ»Ð¸ÐºÑ Ð¿Ð¾ даÑоÑеÑи"
+msgstr "ÐоÑиÑÑи Ñедан Ð¾Ð¼Ð¾Ñ Ð¿Ð¾ даÑоÑеÑи"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
-msgstr "<b>ÐÑÑало</b>"
+msgstr "<b>Разно</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
msgstr "ÐÑикажи индикаÑÐ¾Ñ Ð½Ð°Ð¿ÑедоваÑа за ÑекÑÑÑ Ð½ÑмеÑÑ"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
-msgstr "ÐакаÑÑеÑе поÑавÑиваÑа иÑкаÑÑÑег пÑоз. даÑоÑеке: "
+msgstr "ÐаÑÑеÑе до поÑавÑиваÑа облаÑиÑа даÑоÑеке: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "ÐÑоизвоÑно"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
msgstr "<b>ÐÑиказ пеÑме</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr ""
+msgstr "ÐÑикажи бÑоÑеве пеÑама"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "ÐÑикажи поÑеÑне нÑле (02:00 ÑмеÑÑо 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
-msgstr "ÐÑикажи инÑоÑмаÑиÑе о ÑоÑмаÑÑ Ð·Ð½Ð°ÐºÐ¾Ð²Ð½Ð¾Ð³ низа наÑлова"
-
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "ÐÐСÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ÐÐÐÐÐÐЧ - ÐÐСÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ÐÐÐÐÐÐЧ - ÐÐÐУР- ÐÐСÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ÐÐÐÐÐÐЧ - ÐÐÐУР- ÐÐ ÐÐ. ÐÐСÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ÐÐÐÐÐÐЧ [ ÐÐÐУР] - ÐÐ ÐÐ. ÐÐСÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÐÐÐУР- ÐÐСÐÐÐ"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "СопÑÑвени"
+msgstr "ÐÑикажи инÑоÑмаÑиÑе о ÑоÑмаÑÑ Ð½Ð°Ñлова"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
-msgstr "СопÑÑвени знаковни низ:"
+msgstr "ÐÑоизвоÑна ниÑка:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "ФоÑÐ¼Ð°Ñ Ð½Ð°Ñлова:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
-msgstr "<b>ÐÑкаÑÑÑе инÑоÑмаÑиÑе</b>"
+msgstr "<b>ÐблаÑÐ¸Ñ Ð¸Ð½ÑоÑмаÑиÑа</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
-msgstr "ÐÑикажи иÑкаÑÑÑе инÑоÑмаÑиÑе за ÑÑавке Ñ Ð»Ð¸ÑÑи нÑмеÑа"
+msgstr "ÐÑикажи облаÑÐ¸Ñ Ð¸Ð½ÑоÑмаÑиÑа за ÑÑавке на ÑпиÑÐºÑ Ð½ÑмеÑа"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-"УкÑÑÑÑÑе/иÑкÑÑÑÑÑе иÑкаÑÑÑи пÑÐ¾Ð·Ð¾Ñ Ñа инÑоÑмаÑиÑама за Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑÐ°Ð²ÐºÑ Ñ "
-"лиÑÑи нÑмеÑа. ÐÑÐ¾Ð·Ð¾Ñ Ð¿ÑиказÑÑе име пеÑме, име албÑма, жанÑ, Ð³Ð¾Ð´Ð¸Ð½Ñ Ð¸Ð·Ð´Ð°Ð²Ð°Ñа, "
-"бÑÐ¾Ñ Ð½ÑмеÑе, дÑÐ¶Ð¸Ð½Ñ Ð½ÑмеÑе и ÑликÑ."
+"УкÑÑÑÑÑе/иÑкÑÑÑÑÑе пÑÐ¾Ð·Ð¾Ñ Ð¾Ð±Ð»Ð°ÑиÑа инÑоÑмаÑиÑа за ÑÐºÐ°Ð·Ð°Ð½Ñ ÑÑÐ°Ð²ÐºÑ Ð½Ð° ÑпиÑÐºÑ "
+"нÑмеÑа. ÐÑÐ¾Ð·Ð¾Ñ Ð¿ÑиказÑÑе наÑлов пеÑме, име албÑма, жанÑ, Ð³Ð¾Ð´Ð¸Ð½Ñ Ð¸Ð·Ð´Ð°Ð²Ð°Ñа, "
+"бÑÐ¾Ñ Ð½ÑмеÑе, дÑÐ¶Ð¸Ð½Ñ Ð½ÑмеÑе и ÑÐ»Ð¸ÐºÑ Ð¾Ð¼Ð¾Ñа."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
-msgstr "УÑеди подеÑаваÑа за иÑкаÑÑÑе инÑоÑмаÑиÑе"
-
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>ÐÑдио ÑиÑÑем</b>"
+msgstr "УÑедиÑе поÑÑавке за облаÑÐ¸Ñ Ð¸Ð½ÑоÑмаÑиÑа"
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ÐелиÑина баÑеÑа:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "ÐÑикÑÑÑак излаза:"
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "ТекÑÑи излазни додаÑак:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "ÐÑеводиоÑи"
+msgstr "ÐÑеноÑ"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "УноÑ"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>ÐÑекÑи</b>"
+msgstr "ÐÑекаÑ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "ÐизÑелизаÑиÑа"
+msgstr "ÐÑиказиваÑе"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "ÐпÑÑе"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
-msgstr "Audacious подеÑаваÑа"
+msgstr "ÐоÑÑавке ÐезоÑника"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "ÐиÑе могÑÑе напÑавиÑи диÑекÑоÑиÑÑм (%s): %s\n"
+msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° напÑавим ÑаÑÑÐ¸ÐºÐ»Ñ (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr ""
+msgstr "ÐÐ¾Ð»Ð¾Ð¶Ð°Ñ Ð½Ð¸Ñе наÑен."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
-msgstr ""
+msgstr "ÐиÑе пÑÑÑена ниÑедна пеÑма."
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "ÐвÑÑни ЦÐ, нÑмеÑа %s"
+
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "Ðоно"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
-msgstr "ÑÑеÑео"
+msgstr "СÑеÑео"
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d канал"
+msgstr[1] "%d канала"
+msgstr[2] "%d канала"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
+"Ðа ли ÑÑе ÑигÑÑни да желиÑе да заÑвоÑиÑе %s? Ðко Ñо ÑÑадиÑе, Ñве измене "
+"напÑавÑене од када Ñе извежен ÑпиÑак нÑмеÑа биÑе изгÑбÑене."
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr "Ðе пÑиказÑÑ Ð¾Ð²Ð¾ ÑпозоÑеÑе"
+msgstr "_Ðе пÑиказÑÑ Ð²Ð¸Ñе Ð¾Ð²Ñ Ð¿Ð¾ÑÑкÑ"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "СаÑÑÐ²Ð°Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
+msgstr "ÐÑеименÑÑ ÑпиÑак нÑмеÑа"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "подеÑаваÑа ..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
-msgstr "УкÑÑÑен"
+msgstr "_УкÑÑÑи"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
-#: src/libaudgui/equalizer.c:147
-#, fuzzy
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
-msgstr "ÐÑикажи еквилаÑзеÑ"
+msgstr "УÑеднаÑаваÑ"
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
-msgstr "ÐÑедпоÑаÑало:"
+msgstr "ÐÑеÑпоÑаÑаÑе"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "ÐÑÐ¾Ñ Ð½ÑмеÑе"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "ÐÑжина нÑмеÑе"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
msgid "Acid Jazz"
-msgstr "ÐÑид Ñез"
+msgstr "ÐиÑели Ñез"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
msgid "Acid Rock"
-msgstr "ХаÑд Ñок"
+msgstr "ÐиÑели Ñок"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
msgid "Ambient"
msgstr "ÐмбиÑенÑална"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
msgid "Bebop"
-msgstr "Ðибоп"
+msgstr "Ðебоп"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
msgid "Bluegrass"
-msgstr "ÐлÑ-гÑаÑ"
+msgstr "ÐлÑгÑаÑ"
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
msgid "Blues"
msgstr "ÐлÑз"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
msgid "Chamber Music"
msgstr "ÐамеÑна мÑзика"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
msgid "Classical"
msgstr "ÐлаÑиÑна"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
msgid "Country"
msgstr "ÐанÑÑи"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
msgid "Death Metal"
-msgstr "ÐÐµÑ Ð¼ÐµÑал"
+msgstr "ÐÑÑви меÑал"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
msgid "Disco"
msgstr "ÐиÑко"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
msgid "Easy Listening"
-msgstr "Ðака за ÑлÑÑаÑе"
+msgstr "Ðако ÑлÑÑаÑе"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
msgid "Folk"
msgstr "ÐаÑодна"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
msgid "Funk"
msgstr "Фанки"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
msgid "Gangsta Rap"
-msgstr "ÐангÑÑеÑÑки Ñеп"
+msgstr "ÐангÑÑа Ñеп"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
msgid "Gospel"
msgstr "ÐеÑÑка"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
msgid "Grunge"
msgstr "ÐÑанÑ"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
msgid "Hard Rock"
msgstr "ХаÑд Ñок"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
msgid "Heavy Metal"
msgstr "Хеви меÑал"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
msgid "Hip-hop"
-msgstr "Хип Ñ
оп"
+msgstr "Хип-Хоп"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
msgid "House"
msgstr "ХаÑÑ"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
msgid "Jazz"
msgstr "Ðез"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
msgid "Jungle"
-msgstr "Ðангл"
+msgstr "ÐÑнгла"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
msgid "Metal"
msgstr "ÐеÑал"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
msgid "New Age"
-msgstr "ÐÑ ÐÑÑ"
+msgstr "Ðово доба"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
msgid "New Wave"
msgstr "Ðови ÑалаÑ"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
msgid "Noise"
-msgstr "ШÑм"
+msgstr "ÐÑка"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
msgid "Pop"
msgstr "Ðоп"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
msgid "Punk Rock"
-msgstr "Ðанк Ñок"
+msgstr "Ðанк Рок"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
msgid "Rap"
msgstr "Реп"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
msgid "Reggae"
msgstr "Реге"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
msgid "Rock"
msgstr "Рок"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
msgid "Rock and Roll"
msgstr "РокенÑол"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "РиÑам и ÐлÑз"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
msgid "Ska"
msgstr "Ска"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
msgid "Soul"
-msgstr "Сол"
+msgstr "СоÑл"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
msgid "Swing"
msgstr "Свинг"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
msgid "Techno"
msgstr "ТеÑ
но"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
msgstr "ТÑип-Хоп"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
msgstr "<span size=\"small\">недоÑÑÑпно</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
msgid "Metadata updated successfully"
-msgstr "ÐеÑа подаÑи ÑÑ ÑÑпеÑно оÑвежени"
+msgstr "ÐеÑаподаÑи ÑÑ ÑÑпеÑно оÑвежени"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
-msgstr "ÐÑвежаваÑе меÑа подаÑака неÑÑпеÑно"
+msgstr "ÐÑвежаваÑе меÑаподаÑака ниÑе ÑÑпело"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
msgstr "ÐнÑоÑмаÑиÑе о нÑмеÑи"
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
msgstr "<span size=\"small\">ФоÑмаÑ:</span>"
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
msgstr "<span size=\"small\">ÐвалиÑеÑ:</span>"
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">ÐÑзина Ñ Ð±Ð¸Ñовима:</span>"
+msgstr "<span size=\"small\">ÐÑоÑок биÑа:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">ÐаÑлов</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">ÐзвоÑаÑ</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">ÐлбÑм</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
msgstr "<span size=\"small\">ÐоменÑаÑ</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
msgstr "<span size=\"small\">ÐанÑ</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">Ðодина</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">ÐÑÐ¾Ñ Ð½ÑмеÑе</span>"
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
#, c-format
msgid "%d kb/s"
msgstr "%d kb/s"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
-msgstr ""
+msgstr "ÐиÑÑ Ð´Ð¾ÑÑÑпни подаÑи за %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "ÐÑеÑи на вÑеме"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "мм:ÑÑ"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Ðзвези лиÑÑÑ"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Увези лиÑÑÑ"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Ðа пÑепиÑем %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "УпÑавник ÑедоÑледа"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
-msgstr "O Audacious-u"
+msgstr "Ð ÐезоÑникÑ"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "ÐаÑлÑге"
@@ -1145,105 +1087,112 @@ msgstr "ÐÐ¾Ð´Ð°Ñ Ð´Ð°ÑоÑеке"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Open"
-msgstr "ÐаÑвоÑи Ð¾ÐºÐ²Ð¸Ñ ÐºÐ»Ð¸ÐºÐ¾Ð¼ на ÐÑвоÑи"
+msgstr "ÐаÑвоÑи пÑозоÑÑе на âÐÑвоÑиâ"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Add"
-msgstr "ÐаÑвоÑи Ð¾ÐºÐ²Ð¸Ñ ÐºÐ»Ð¸ÐºÐ¾Ð¼ на ÐодаÑ"
+msgstr "ÐаÑвоÑи пÑозоÑÑе на âÐодаÑâ"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "ÐзбаÑи из _Ñеда"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
msgid "_Queue"
msgstr "СÑави Ñ _Ñед"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "ÐÑеÑи на нÑмеÑÑ"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "ÐзбаÑи из _Ñеда"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "ÐÑеÑи на пеÑмÑ"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
msgid "Filter: "
msgstr "ФилÑеÑ: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
msgid "_Filter:"
msgstr "_ФилÑеÑ:"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Remember"
msgstr "ÐапамÑи"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:302
msgid "Clea_r"
-msgstr "ÐбÑиÑи Ð-Ð"
+msgstr "ÐÑиÑ_Ñи"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "Close on Jump"
msgstr "ÐаÑвоÑи поÑле Ñкока"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "ÐенаÑÐµÑ Ð»Ð¸ÑÑе нÑмеÑа"
+msgstr "УпÑавник ÑпиÑка нÑмеÑа"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
msgstr "СÑавке"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
msgstr "_ÐÑеименÑÑ"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "ÐаÑвоÑи Ð¾ÐºÐ²Ð¸Ñ ÐºÐ»Ð¸ÐºÐ¾Ð¼ на ÐÑвоÑи"
+msgstr "_ÐаÑвоÑи пÑозоÑÑе након акÑивиÑаÑа ÑпиÑка нÑмеÑа"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
-msgstr ""
+msgstr "ÐÑвоÑи адÑеÑÑ"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
+msgstr "ÐÐ¾Ð´Ð°Ñ Ð°Ð´ÑеÑÑ"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
+"\n"
+"(ÐодаÑне поÑÑке ÑÑ ÑкÑивене.)"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr "ÐаÑоÑека ниÑе валидна .desktop даÑоÑека"
+msgstr "ÐаÑоÑека ниÑе иÑпÑавна â.desktopâ даÑоÑека"
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr "ÐепознаÑа веÑзиÑа даÑоÑеке Ñадне повÑÑи (.desktop) '%s'"
+msgstr "ÐиÑе познаÑо издаÑе â%sâ даÑоÑеке за ÑÐ°Ð´Ð½Ñ Ð¿Ð¾Ð²ÑÑ"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
msgstr "ÐокÑеÑем %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
-msgstr "ÐпликаÑиÑа не подÑжава докÑменÑе Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ñ Ð»Ð¸Ð½Ð¸Ñи"
+msgstr "ÐÑогÑам не пÑиÑ
ваÑа докÑменÑа из линиÑе наÑедби"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "ÐепознаÑа опÑиÑа покÑеÑаÑа: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-"Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑоÑледим адÑеÑе докÑменÑа Ñ ÑÑÐ°Ð²ÐºÑ Ñадне повÑÑи 'Тип=Link' "
+"Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° пÑоÑледим адÑеÑе докÑменÑа Ñ ÑÑÐ°Ð²ÐºÑ Ñадне повÑÑи âType=Linkâ"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
-msgstr "СÑавка не може да Ñе покÑене"
+msgstr "ÐиÑе ÑÑавка за покÑеÑаÑе"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr "ÐÑÑÑÑи Ð²ÐµÐ·Ñ Ñа менаÑеÑом ÑеÑиÑе"
+msgstr "ÐнемогÑÑава повезиваÑе Ñа ÑпÑавником ÑеÑиÑе"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
@@ -1255,1602 +1204,18 @@ msgstr "ÐÐТÐТÐÐÐ"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr "ÐаведиÑе ID ÑпÑавÑаÑа ÑеÑиÑе"
+msgstr "ÐаведиÑе ÐÐ ÑпÑавника ÑеÑиÑе"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
-msgstr "ID"
+msgstr "ÐÐ"
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "ÐпÑиÑе ÑпÑавÑаÑа ÑеÑиÑе"
+msgstr "ÐпÑиÑе ÑпÑавÑаÑа ÑеÑиÑом:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "ÐÑикажи опÑиÑе ÑпÑавÑаÑа ÑеÑиÑе"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: ÐиÑе могÑÑе оÑвоÑиÑи пÑиказ, излазим.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "ÐÑедпоÑаÑало:"
-
-#~ msgid "Default gain:"
-#~ msgstr "ÐодÑазÑмевано поÑаÑаÑе:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Ðво поÑаÑаÑе Ñе Ñе коÑиÑÑиÑи ако даÑоÑека не ÑадÑжи Replay Gain "
-#~ "меÑаподаÑке."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">ÐапамÑиÑе да наÑеÑикаÑниÑи наÑин да ÑпÑеÑиÑе "
-#~ "одÑеÑаÑе Ñигнала Ñе да не коÑиÑÑиÑе позиÑивне вÑедноÑÑи изнад.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Replay Gain конÑигÑÑаÑиÑа</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "ÐоÑаÑаÑе/вÑÑ
ÑÐ½Ð°Ñ Ð½ÑмеÑе"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "ÐоÑаÑаÑе/вÑÑ
ÑÐ½Ð°Ñ Ð°Ð»Ð±Ñма"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr "ÐоÑиÑÑи вÑедноÑÑ Ð²ÑÑ
ÑнÑа из Replay Gain-а као заÑÑиÑÑ Ð¾Ð´ одÑеÑаÑа"
-
-#~ msgid "Classic Rock"
-#~ msgstr "ÐлаÑиÑни Ñок"
-
-#~ msgid "Dance"
-#~ msgstr "ÐенÑ"
-
-#~ msgid "Oldies"
-#~ msgstr "ÐвеÑгÑин"
-
-#~ msgid "Other"
-#~ msgstr "ÐÑÑало"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "ÐндÑÑÑÑиÑа"
-
-#~ msgid "Alternative"
-#~ msgstr "ÐлÑеÑнаÑива"
-
-#~ msgid "Pranks"
-#~ msgstr "Шале"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Тема из Ñилма"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "ÐÑÑо-ÑеÑ
но"
-
-#~ msgid "Vocal"
-#~ msgstr "Ðокал"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Ðез и Фанки"
-
-#~ msgid "Fusion"
-#~ msgstr "ФÑзиÑа"
-
-#~ msgid "Trance"
-#~ msgstr "ТÑенÑ"
-
-#~ msgid "Instrumental"
-#~ msgstr "ÐнÑÑÑÑменÑал"
-
-#~ msgid "Acid"
-#~ msgstr "ÐÑид"
-
-#~ msgid "Game"
-#~ msgstr "ÐÑзика из игÑе"
-
-#~ msgid "Sound Clip"
-#~ msgstr "ТонÑки запиÑ"
-
-#~ msgid "AlternRock"
-#~ msgstr "ÐлÑеÑнРок"
-
-#~ msgid "Bass"
-#~ msgstr "ÐаÑ"
-
-#~ msgid "Punk"
-#~ msgstr "Ðанк"
-
-#~ msgid "Space"
-#~ msgstr "СпеÑÑ"
-
-#~ msgid "Meditative"
-#~ msgstr "ÐедиÑаÑиона"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "ÐнÑÑÑÑменÑални поп"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "ÐнÑÑÑÑменÑални Ñок"
-
-#~ msgid "Ethnic"
-#~ msgstr "ÐÑно"
-
-#~ msgid "Gothic"
-#~ msgstr "ÐоÑÑка"
-
-#~ msgid "Darkwave"
-#~ msgstr "ЦÑни ÑалаÑ"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "ТеÑ
но-ÐндÑÑÑÑиÑа"
-
-#~ msgid "Electronic"
-#~ msgstr "ÐлекÑÑонÑка"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Ðоп-Фолк"
-
-#~ msgid "Eurodance"
-#~ msgstr "ÐÑÑоденÑ"
-
-#~ msgid "Dream"
-#~ msgstr "ÐÑим"
-
-#~ msgid "Southern Rock"
-#~ msgstr "ÐÑжÑаÑки Ñок"
-
-#~ msgid "Comedy"
-#~ msgstr "ÐомедиÑа"
-
-#~ msgid "Cult"
-#~ msgstr "ÐÑлÑна"
-
-#~ msgid "Top 40"
-#~ msgstr "ÐаÑпопÑлаÑниÑиÑ
40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Ð¥ÑиÑÑанÑки Ñеп"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Ðоп/Фанки"
-
-#~ msgid "Native American"
-#~ msgstr "ТÑадиÑионална амеÑиÑка"
-
-#~ msgid "Cabaret"
-#~ msgstr "ÐабаÑе"
-
-#~ msgid "Psychedelic"
-#~ msgstr "ÐÑиÑ
оделиÑно"
-
-#~ msgid "Rave"
-#~ msgstr "РеÑв"
-
-#~ msgid "Showtunes"
-#~ msgstr "ÐÑзика из пÑедÑÑаве"
-
-#~ msgid "Trailer"
-#~ msgstr "ТÑеÑлеÑ"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "ÐлеменÑка"
-
-#~ msgid "Acid Punk"
-#~ msgstr "ÐÑид панк"
-
-#~ msgid "Polka"
-#~ msgstr "Ðолка"
-
-#~ msgid "Retro"
-#~ msgstr "РеÑÑо"
-
-#~ msgid "Musical"
-#~ msgstr "ÐÑзиÑка"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "ÐаÑодна/Рок"
-
-#~ msgid "National Folk"
-#~ msgstr "ÐаÑионална"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "ФаÑÑ-ФÑÑжн"
-
-#~ msgid "Latin"
-#~ msgstr "ÐаÑино"
-
-#~ msgid "Revival"
-#~ msgstr "ÐживÑеÑе"
-
-#~ msgid "Celtic"
-#~ msgstr "ÐелÑÑка"
-
-#~ msgid "Avantgarde"
-#~ msgstr "ÐвангаÑдна"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "ÐоÑÑки Ñок"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "ÐÑогÑеÑивни Ñок"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "ÐÑиÑ
оделиÑни Ñок"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "СимÑониÑÑки Ñок"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Ðагани Ñок"
-
-#~ msgid "Big Band"
-#~ msgstr "Ðиг Ðeнд"
-
-#~ msgid "Chorus"
-#~ msgstr "ХоÑÑка"
-
-#~ msgid "Acoustic"
-#~ msgstr "ÐкÑÑÑиÑна"
-
-#~ msgid "Humour"
-#~ msgstr "Ð¥ÑмоÑ"
-
-#~ msgid "Speech"
-#~ msgstr "ÐовоÑ"
-
-#~ msgid "Chanson"
-#~ msgstr "ШанÑона"
-
-#~ msgid "Opera"
-#~ msgstr "ÐпеÑа"
-
-#~ msgid "Sonata"
-#~ msgstr "СонаÑа"
-
-#~ msgid "Symphony"
-#~ msgstr "СимÑониÑа"
-
-#~ msgid "Booty Bass"
-#~ msgstr "ÐÑÑи ÐаÑ"
-
-#~ msgid "Primus"
-#~ msgstr "ÐÑимÑÑ"
-
-#~ msgid "Porn Groove"
-#~ msgstr "ÐÑоÑÑка"
-
-#~ msgid "Satire"
-#~ msgstr "СаÑиÑиÑна"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Ðагани Ñем"
-
-#~ msgid "Club"
-#~ msgstr "ÐлÑбÑка"
-
-#~ msgid "Tango"
-#~ msgstr "Танго"
-
-#~ msgid "Samba"
-#~ msgstr "Самба"
-
-#~ msgid "Folklore"
-#~ msgstr "ФолклоÑ"
-
-#~ msgid "Ballad"
-#~ msgstr "Ðалада"
-
-#~ msgid "Power Ballad"
-#~ msgstr "ÐÑжа балада"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "РиÑмиÑни ÑоÑл"
-
-#~ msgid "Freestyle"
-#~ msgstr "ФÑиÑÑаÑл"
-
-#~ msgid "Duet"
-#~ msgstr "ÐÑеÑ"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Соло бÑбÑеви"
-
-#~ msgid "A Cappella"
-#~ msgstr "Ркапела"
-
-#~ msgid "Euro-House"
-#~ msgstr "ÐÑÑо-ХаÑÑ"
-
-#~ msgid "Dance Hall"
-#~ msgstr "ÐенÑ"
-
-#~ msgid "Goa"
-#~ msgstr "Ðоа"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "ÐÑаменбеÑÑ"
-
-#~ msgid "Club-House"
-#~ msgstr "Ðлаб-ХаÑÑ"
-
-#~ msgid "Hardcore"
-#~ msgstr "ХаÑдкоÑ"
-
-#~ msgid "Terror"
-#~ msgstr "ТеÑоÑ"
-
-#~ msgid "Indie"
-#~ msgstr "Ðнди"
-
-#~ msgid "BritPop"
-#~ msgstr "ÐÑиÑÐоп"
-
-#~ msgid "Negerpunk"
-#~ msgstr "ÐигеÑпанк"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "ÐоÑÑки панк"
-
-#~ msgid "Beat"
-#~ msgstr "ÐиÑ"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Ð¥ÑиÑÑанÑки гангÑÑеÑÑки Ñеп"
-
-#~ msgid "Black Metal"
-#~ msgstr "ЦÑни меÑал"
-
-#~ msgid "Crossover"
-#~ msgstr "ÐÑелазна"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "СавÑемена Ñ
ÑиÑÑанÑка"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Ð¥ÑиÑÑанÑки Ñок"
-
-#~ msgid "Merengue"
-#~ msgstr "ÐиÑингва"
-
-#~ msgid "Salsa"
-#~ msgstr "СалÑа"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "ТÑÐµÑ Ð¼ÐµÑал"
-
-#~ msgid "Anime"
-#~ msgstr "Ðниме"
-
-#~ msgid "JPop"
-#~ msgstr "ÐеÑÐоп"
-
-#~ msgid "Synthpop"
-#~ msgstr "СинÑпоп"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "ÐаÑкиÑани мÑлÑимедиÑални плеÑÐµÑ Ð·Ð° виÑе плаÑÑоÑми.\n"
-#~ "\n"
-#~ "Сва пÑава задÑжана, 2005-2008 Audacious РазвоÑни Тим\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "ÐиÑе могÑÑе напÑавиÑи даÑоÑÐµÐºÑ ÐµÐ²Ð¸Ð´ÐµÐ½ÑиÑе (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "ШÑÐ°Ð¼Ð¿Ð°Ñ Ñве гÑеÑке и ÑпозоÑеÑа Ñ stdout"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "ÐоÑиÑÑи Ñе за макпаковаÑе"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Ðао ми Ñе, али ваÑа плаÑÑоÑма не подÑжава ниÑи.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "УÑиÑаваÑе модÑла ниÑе подÑжано! ÐодаÑи неÑе биÑи ÑÑиÑани.\n"
-
-#, fuzzy
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - ÑпозоÑеÑе коÑиÑÑеÑа покваÑене GTK маÑине"
-
-#~ msgid "Playback"
-#~ msgstr "РепÑодÑковаÑе"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>РепÑодÑковаÑе</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Ðад Ñе Audacious покÑене, аÑÑомаÑÑки наÑÑави да ÑепÑодÑкÑÑе од ÑÑенÑÑка "
-#~ "где Ñмо заÑÑÑавили пÑÑÑаÑе."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "ÐÐµÐ¼Ð¾Ñ Ð½Ð°Ð¿ÑедоваÑи Ñ Ð»Ð¸ÑÑи нÑмеÑа"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Ðад Ñе завÑÑи пеÑма, Ð½ÐµÐ¼Ð¾Ñ Ð°ÑÑомаÑÑки пÑеÑи на ÑледеÑÑ."
-
-#~ msgid "Enabled"
-#~ msgstr "УкÑÑÑен"
-
-#~ msgid "Description"
-#~ msgstr "ÐпиÑ"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "ÐоÑÑавке излазног додаÑка"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "ÐнÑоÑмаÑиÑе о излазном додаÑкÑ"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "ÐиÑÑа _декодеÑа:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÐекодеÑи</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_ÐпÑÑа лиÑÑа додаÑака:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÐпÑÑе</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "ÐиÑÑа _визÑелизаÑиониÑ
додаÑака:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>ÐизÑелизаÑиÑа</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "ÐиÑÑа _еÑекÑниÑ
додаÑака:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">ÐпÑÑе</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">ÐокаÑиÑа</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">СиÑови меÑаподаÑи</span>"
-
-#~ msgid "Key"
-#~ msgstr "ÐÑÑÑ"
-
-#~ msgid "Value"
-#~ msgstr "ÐÑедноÑÑ"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "ÐоÑÑавке излазног додаÑка"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "ÐÐºÐ²Ð¸Ñ Ð´Ð¾Ð´Ð°Ñ/оÑвоÑи URL"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "УнеÑиÑе локаÑиÑÑ Ð·Ð° ÑепÑодÑковаÑе:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "ÐÐµÐ¼Ð¾Ñ Ð¾Ð±ÑиÑаÑи лиÑÑÑ Ð½ÑмеÑа"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Ðме даÑоÑеке:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "ÐиÑедан Ñлазни додаÑак ниÑе пÑепознао Ð¾Ð²Ñ Ð´Ð°ÑоÑекÑ"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Улазни додаÑак: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>ÐиÑе изабÑан излазни додаÑак.</big></b>\n"
-#~ "ÐиÑÑе изабÑали излазни додаÑак."
-
-#~ msgid "Connectivity"
-#~ msgstr "ÐовезаноÑÑ"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "ÐаÑбоÑа Ð¡Ð¸Ð½Ñ Ð¸Ð½ÑеÑполаÑиÑа"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "СÑедÑа Ð¡Ð¸Ð½Ñ Ð¸Ð½ÑеÑполаÑиÑа"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "ÐабÑжа Ð¡Ð¸Ð½Ñ Ð¸Ð½ÑеÑполаÑиÑа"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "ÐÐÐ¥ инÑеÑполаÑиÑа"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "ÐинеаÑна инÑеÑполаÑиÑа"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "УÑеÑÑалоÑÑ Ð¾Ð´Ð°Ð±Ð¸ÑаÑа ÑзоÑака [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "ÐнÑеÑполаÑиона маÑина:"
-
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Сви Ñокови Ñе биÑи пÑеÑвоÑени Ñ Ð¾Ð²Ñ ÑÑеÑÑалоÑÑ "
-#~ "одабиÑаÑа ÑзоÑака.\n"
-#~ "Ðво би ÑÑебала да бÑде макÑимална подÑжана ÑÑеÑÑалоÑÑ Ð¾Ð´Ð°Ð±Ð¸ÑаÑа ÑзоÑака\n"
-#~ "мÑзиÑке каÑÑиÑе или излазног додаÑка.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>ÐÑепознаваÑе ÑоÑмаÑа</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "ÐÑÐµÐ¿Ð¾Ð·Ð½Ð°Ñ ÑоÑÐ¼Ð°Ñ Ð´Ð°ÑоÑеке на оÑÐ½Ð¾Ð²Ñ Ð¾Ð·Ð½Ð°ÐºÐµ Ñипа."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Ðко Ñе поÑвÑÑено, Audacious Ñе пÑепознаÑи ÑоÑÐ¼Ð°Ñ Ð´Ð°ÑоÑеке пÑема ознаÑи "
-#~ "Ñипа. Само даÑоÑеке Ñа подÑжаним ознакама Ñипа Ñе биÑи ÑÑиÑане."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>ÐÑеÑваÑÐ°Ñ ÑÑеÑÑалоÑÑи одабиÑаÑа ÑзоÑака</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "УкÑÑÑи пÑеÑваÑÐ°Ñ ÑÑеÑÑалоÑÑи одабиÑаÑа ÑзоÑака"
-
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>ÐапÑедно</b>"
-
-#~ msgid "Bypass all of signal processing if possible"
-#~ msgstr "ÐаобиÑи Ñве обÑаде Ñигнала, ако Ñе могÑÑе"
-
-#~ msgid ""
-#~ "Try to pass input plugin's output directly to output plugin, if the "
-#~ "latter supports format produced by input plugin. If it's true, all signal "
-#~ "processing will be disabled (i.e. DSP plugins, equalizer, resampling, "
-#~ "Replay Gain and software volume control)."
-#~ msgstr ""
-#~ "ÐокÑÑÐ°Ñ Ð´Ð° пÑоÑÐ»ÐµÐ´Ð¸Ñ Ð¸Ð·Ð»Ð°Ð· Ñлазног додаÑка диÑекÑно Ñ Ð¸Ð·Ð»Ð°Ð·Ð½Ð¸ додаÑак, "
-#~ "ако каÑниÑи подÑжава ÑоÑÐ¼Ð°Ñ ÐºÐ¾Ñи ÑÑваÑа Ñлазни додаÑак. Ðко Ñе ово ÑаÑно, "
-#~ "Ñвака обÑада Ñигнала Ñе биÑи иÑкÑÑÑена (нпÑ. DSP додаÑи, еквилаÑзеÑ, "
-#~ "Replay Gain и оÑÑала ÑоÑÑвеÑÑка конÑÑола ÑаÑине звÑка)."
-
-#~ msgid "Dynamically adjust scale factor to prevent clipping"
-#~ msgstr "ÐинамиÑки подеÑи ÑакÑÐ¾Ñ ÑкалиÑаÑа да би Ñе ÑпÑеÑило одÑеÑаÑе"
-
-#~ msgid "Decrease scale factor (gain) if clipping nevertheless occurred"
-#~ msgstr "Ðко доÑе до одÑеÑаÑа, ÑмаÑи ÑакÑÐ¾Ñ ÑкалиÑаÑа"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Audacious has caught signal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "We apologize for the inconvenience, but Audacious has crashed.\n"
-#~ "This is a bug in the program, and should never happen under normal "
-#~ "circumstances.\n"
-#~ "Your current configuration has been saved and should not be damaged.\n"
-#~ "\n"
-#~ "You can help improve the quality of Audacious by filing a bug at http://"
-#~ "jira.atheme.org/\n"
-#~ "Please include the entire text of this message and a description of what "
-#~ "you were doing when\n"
-#~ "this crash occured in order to quickly expedite the handling of your bug "
-#~ "report:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Audacious Ñе ÑÑ
ваÑио Ñигнал 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "ÐзвиÑавамо Ñе због непÑилика, али Audacious Ñе оÑказао.\n"
-#~ "Ðво Ñе гÑеÑка Ñ Ð¿ÑогÑамÑ, и никад не би ÑÑебала да Ñе деÑи под ноÑмалним "
-#~ "околноÑÑима.\n"
-#~ "ÐаÑа ÑÑенÑÑна конÑигÑÑаÑиÑа Ñе ÑаÑÑвана и неби ÑÑебала биÑи оÑÑеÑена.\n"
-#~ "\n"
-#~ "ÐожеÑе побоÑÑаÑи квалиÑÐµÑ Audacious-а пÑиÑавÑиваÑем гÑеÑке на http://bugs-"
-#~ "meta.atheme.org\n"
-#~ "Ðолим Ð²Ð°Ñ ÑкÑÑÑиÑе ÑелокÑпан ÑекÑÑ Ð¾Ð²Ðµ поÑÑке и опиÑиÑе нам ÑÑа ÑÑе "
-#~ "Ñадили кад Ñе оваÑ\n"
-#~ "оÑказ догодио, да биÑмо бÑзо могли обÑадиÑи ÐÐ°Ñ Ð¸Ð·Ð²ÐµÑÑÐ°Ñ Ð³ÑеÑке:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Stacktrace was unavailable. You might want to reproduce this problem "
-#~ "while running Audacious under GDB to get a proper backtrace.\n"
-#~ msgstr ""
-#~ "ТÑаг ÑÑека ниÑе доÑÑÑпан. Ðогли биÑÑе да ÑепÑодÑкÑÑеÑе Ð¾Ð²Ð°Ñ Ð¿Ñоблем док "
-#~ "покÑеÑеÑе Audacious Ñ GDB-Ñ Ð´Ð° биÑÑе добили иÑпÑавно ÑÑабло позиваÑа.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Bugs can be reported at http://jira.atheme.org/ against the Audacious or "
-#~ "Audacious Plugins product.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ÐÑеÑке за пÑоизводе Audacious и Audacious Plugins Ñе Ð¼Ð¾Ð³Ñ Ð¿ÑиÑавиÑи на "
-#~ "http://bugs-meta.atheme.org\n"
-
-#~ msgid ""
-#~ "Your signaling implementation is broken.\n"
-#~ "Expect unusable crash reports.\n"
-#~ msgstr ""
-#~ "ÐаÑа имплеменÑаÑиÑа Ñигнала Ñе покваÑена.\n"
-#~ "ÐÑекÑÑÑе неиÑкоÑиÑÑиве извеÑÑаÑе о гÑеÑкама.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Сва пÑава задÑжана, 2005-2008 Audacious РазвоÑни Тим"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "ÐÑÐµÐ¿Ð¾Ð·Ð½Ð°Ñ ÑоÑÐ¼Ð°Ñ Ð´Ð°ÑоÑеке на заÑ
Ñев, ÑмеÑÑо одма."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Ðко Ñе поÑвÑÑено, Audacious Ñе пÑепознаÑи ÑоÑÐ¼Ð°Ñ Ð´Ð°ÑоÑеке на заÑ
Ñев. Ðво "
-#~ "може довеÑÑи до збÑканиÑе лиÑÑе нÑмеÑа, али обезбеÑÑÑе веÑи добиÑак Ñ "
-#~ "бÑзини."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "УÑиÑÐ°Ñ Ð¼ÐµÑа-подаÑке из лиÑÑа нÑмеÑа и даÑоÑека"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "УÑиÑÐ°Ñ Ð¼ÐµÑа-подаÑке (инÑоÑмаÑиÑе ознака) из мÑзиÑкиÑ
даÑоÑека."
-
-#~ msgid "Can't jump to time when no track is being played.\n"
-#~ msgstr "Ðе Ð¼Ð¾Ð³Ñ Ð´Ð° ÑкоÑим на вÑеме кад ниÑедна нÑмеÑа ниÑе пÑÑÑена.\n"
-
-#~ msgid "Jump to Time"
-#~ msgstr "ÐÑеÑи на вÑеме"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "минÑÑи:ÑекÑнде"
-
-#~ msgid "Track length:"
-#~ msgstr "ÐÑжина нÑмеÑе:"
-
-#~ msgid "Save as Static Playlist"
-#~ msgstr "СаÑÑÐ²Ð°Ñ ÐºÐ°Ð¾ ÑÑаÑиÑÐºÑ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
-
-#~ msgid "Use Relative Path"
-#~ msgstr "ÐоÑиÑÑи ÑелаÑивне пÑÑаÑе"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "ÐÑеÑка Ñ Ð¿Ð¸ÑаÑÑ Ð»Ð¸ÑÑе нÑмеÑа \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s Ð²ÐµÑ Ð¿Ð¾ÑÑоÑи. ÐаÑÑавиÑи?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>ÐиÑе могÑÑе ÑаÑÑваÑи лиÑÑÑ Ð½ÑмеÑа.</big></b>\n"
-#~ "\n"
-#~ "ÐепознаÑа вÑÑÑа даÑоÑеке за '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "ÐÑеÑподеÑаваÑа"
-
-#~ msgid "Mouse"
-#~ msgstr "ÐиÑ"
-
-#~ msgid "Pause between songs"
-#~ msgstr "ÐаÑза измеÑÑ Ð¿ÐµÑама"
-
-#~ msgid "Pause for"
-#~ msgstr "ÐаÑзиÑÐ°Ñ Ð·Ð°"
-
-#~ msgid "seconds"
-#~ msgstr "ÑекÑнди"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Ðме даÑоÑеке</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "ÐÑеÑвоÑи доÑе ÑÑÑе Ñ Ð¿Ñазнине"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "ÐÑеÑвоÑи %20 Ñ Ð¿Ñазнине"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "ÐÑеÑвоÑи обÑнÑÑÑ ÐºÐ¾ÑÑ ÑÑÑÑ '\\' Ñ ÐºÐ¾ÑÑ ÑÑÑÑ '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>ÐÐºÐ²Ð¸Ñ Ð´Ð°ÑоÑеке</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Увек оÑвежи диÑекÑоÑиÑÑм пÑиликом оÑваÑаÑа оквиÑа даÑоÑеке"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Увек оÑвежи Ð¾ÐºÐ²Ð¸Ñ Ð´Ð°ÑоÑеке (ово Ñе ÑÑпоÑиÑи оÑваÑаÑе оквиÑа за велике "
-#~ "диÑекÑоÑиÑÑме, и Gnome VFS би ÑÑебао аÑÑомаÑÑки обавиÑи)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "ÐеÑа ÑаÑÐ¸Ð½Ñ Ð·Ð²Ñка за"
-
-#~ msgid "percent"
-#~ msgstr "поÑÑо"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "ÐомеÑа лиÑÑÑ Ð½ÑмеÑа за"
-
-#~ msgid "lines"
-#~ msgstr "линиÑе"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "ÐаÑÑÑави поÑле ÑекÑÑе пеÑме"
-
-#~ msgid "Peaks"
-#~ msgstr "ÐÑÑ
ови"
-
-#~ msgid "Repeat"
-#~ msgstr "Ðонови"
-
-#~ msgid "Shuffle"
-#~ msgstr "ÐаÑÑмиÑно"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Ðе напÑедÑÑ Ñ Ð»Ð¸ÑÑи нÑмеÑа"
-
-#~ msgid "Play"
-#~ msgstr "ÐÑÑÑи"
-
-#~ msgid "Pause"
-#~ msgstr "ÐаÑза"
-
-#~ msgid "Stop"
-#~ msgstr "ÐаÑÑÑави"
-
-#~ msgid "Previous"
-#~ msgstr "ÐÑеÑÑ
одна"
-
-#~ msgid "Next"
-#~ msgstr "СледеÑа"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Режим визÑелизаÑиÑе"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Режим анализаÑоÑа"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Режим доÑега"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "Режим пÑиказа глаÑа"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "ÐУ Ñежим делимиÑно ÑкÑивеног пÑозоÑа"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "УÑеÑÑалоÑÑ Ð¾ÑвежаваÑа"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "ÐнализаÑоÑи падаÑÑ"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "ÐÑÑ
ови падаÑÑ"
-
-#~ msgid "New Playlist"
-#~ msgstr "Ðова лиÑÑа нÑмеÑа"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "ÐзабеÑи ÑледеÑÑ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "ÐзабеÑи пÑеÑÑ
Ð¾Ð´Ð½Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "ÐзбÑиÑи лиÑÑÑ Ð½ÑмеÑа"
-
-#~ msgid "Load List"
-#~ msgstr "УÑиÑÐ°Ñ Ð»Ð¸ÑÑÑ"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "УÑиÑа даÑоÑÐµÐºÑ Ð»Ð¸ÑÑе нÑмеÑа Ñ Ð¸Ð·Ð°Ð±ÑÐ°Ð½Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа."
-
-#~ msgid "Save List"
-#~ msgstr "СаÑÑÐ²Ð°Ñ Ð»Ð¸ÑÑÑ"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "СаÑÑÐ²Ð°Ñ Ð¸Ð·Ð°Ð±ÑÐ°Ð½Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа."
-
-#~ msgid "Save Default List"
-#~ msgstr "СаÑÑÐ²Ð°Ñ Ð¿Ð¾Ð´ÑазÑÐ¼ÐµÐ²Ð°Ð½Ñ Ð»Ð¸ÑÑÑ"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "СаÑÑÐ²Ð°Ñ Ð¸Ð·Ð°Ð±ÑÐ°Ð½Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа Ñ Ð¿Ð¾Ð´ÑазÑÐ¼ÐµÐ²Ð°Ð½Ñ Ð»Ð¾ÐºÐ°ÑиÑÑ."
-
-#~ msgid "Refresh List"
-#~ msgstr "ÐÑвежи лиÑÑÑ"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "ÐÑвежава меÑа-подаÑке пÑидÑÑжене ÑÑавки лиÑÑе нÑмеÑа."
-
-#~ msgid "List Manager"
-#~ msgstr "ÐенаÑÐµÑ Ð»Ð¸ÑÑе"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "ÐÑваÑа менаÑÐµÑ Ð»Ð¸ÑÑе."
-
-#~ msgid "View"
-#~ msgstr "ÐÑиказ"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "ÐÐ¾Ð´Ð°Ñ Ð¸Ð½ÑеÑÐ½ÐµÑ Ð°Ð´ÑеÑÑ..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "ÐодаÑе ÑдаÑÐµÐ½Ñ Ð½ÑмеÑÑ Ñ Ð»Ð¸ÑÑÑ Ð½ÑмеÑа."
-
-#~ msgid "Add Files..."
-#~ msgstr "ÐÐ¾Ð´Ð°Ñ Ð´Ð°ÑоÑеке..."
-
-#~ msgid "Search and Select"
-#~ msgstr "ÐÑеÑÑажи и ознаÑи"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "ÐÑеÑÑажÑÑе лиÑÑÑ Ð½ÑмеÑа и ознаÑи ÑÑавке лиÑÑе нÑмеÑа по одÑеÑеном "
-#~ "кÑиÑеÑиÑÑмÑ."
-
-#~ msgid "Invert Selection"
-#~ msgstr "ÐнвеÑÑÑÑ ÑелекÑиÑÑ"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "ÐнвеÑÑÑÑе ознаÑене и неознаÑене ÑÑавке."
-
-#~ msgid "Select All"
-#~ msgstr "ÐзнаÑи Ñве"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "ÐзнаÑи Ñве ÑÑавке Ñ Ð»Ð¸ÑÑи нÑмеÑа."
-
-#~ msgid "Select None"
-#~ msgstr "ÐзнаÑи ниÑÑа"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Скине Ð¾Ð·Ð½Ð°ÐºÑ Ñа ÑвиÑ
ÑÑавки Ñ Ð»Ð¸ÑÑи нÑмеÑа."
-
-#~ msgid "Remove All"
-#~ msgstr "Уклони Ñве"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "УклаÑа Ñве ÑÑавке из лиÑÑе нÑмеÑа."
-
-#~ msgid "Clear Queue"
-#~ msgstr "ÐбÑиÑи Ñед"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "ÐÑиÑе Ñед пÑидÑÑжен Ð¾Ð²Ð¾Ñ Ð»Ð¸ÑÑи нÑмеÑа."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Уклони непоÑÑоÑеÑе даÑоÑеке"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "УклаÑа непоÑÑоÑеÑе даÑоÑеке из лиÑÑе нÑмеÑа."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Уклони дÑпликаÑе"
-
-#~ msgid "By Title"
-#~ msgstr "Ðо наÑловÑ"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "УклаÑа дÑпликаÑе из лиÑÑе нÑмеÑа на оÑÐ½Ð¾Ð²Ñ Ð½Ð°Ñлова."
-
-#~ msgid "By Filename"
-#~ msgstr "Ðо Ð¸Ð¼ÐµÐ½Ñ Ð´Ð°ÑоÑеке"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "УклаÑа дÑпликаÑе из лиÑÑе нÑмеÑа на оÑÐ½Ð¾Ð²Ñ Ð¸Ð¼ÐµÐ½Ð° даÑоÑеке."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Ðо пÑÑаÑи + Ð¸Ð¼ÐµÐ½Ñ Ð´Ð°ÑоÑеке"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "УклаÑа дÑпликаÑе из лиÑÑе нÑмеÑа на оÑÐ½Ð¾Ð²Ñ Ð¿Ñне пÑÑаÑе даÑоÑеке."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Уклони неознаÑене"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "УклаÑа неознаÑене ÑÑавке из лиÑÑе нÑмеÑа."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Уклони ознаÑене"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "УклаÑа ознаÑене ÑÑавке из лиÑÑе нÑмеÑа."
-
-#~ msgid "Randomize List"
-#~ msgstr "ÐаÑÑмиÑе иÑпÑемеÑÑÐ°Ñ Ð»Ð¸ÑÑÑ"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "ÐаÑÑмиÑе иÑпÑемеÑÑа ÑÑавке Ñ Ð»Ð¸ÑÑи нÑмеÑа."
-
-#~ msgid "Reverse List"
-#~ msgstr "ÐбÑни лиÑÑÑ"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "ÐбÑне ÑедоÑлед лиÑÑе."
-
-#~ msgid "Sort List"
-#~ msgstr "СоÑÑиÑÐ°Ñ Ð»Ð¸ÑÑÑ"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема наÑловÑ."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "ÐлбÑм"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема наÑловÑ."
-
-#~ msgid "By Artist"
-#~ msgstr "Ðо извоÑаÑÑ"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема извоÑаÑÑ."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема Ð¸Ð¼ÐµÐ½Ñ Ð´Ð°ÑоÑеке."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема пÑÐ½Ð¾Ñ Ð¿ÑÑаÑи даÑоÑеке."
-
-#~ msgid "By Date"
-#~ msgstr "Ðо даÑÑмÑ"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема даÑÑÐ¼Ñ Ð¸Ð·Ð¼ÐµÐ½Ðµ."
-
-#~ msgid "By Track Number"
-#~ msgstr "Ðо бÑоÑÑ Ð½ÑмеÑе"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема бÑоÑÑ Ð½ÑмеÑе."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "Ðо ÑÑавки лиÑÑе"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "СоÑÑиÑа лиÑÑÑ Ð¿Ñема ÑÑавки лиÑÑе нÑмеÑа."
-
-#~ msgid "Sort Selected"
-#~ msgstr "СоÑÑиÑÐ°Ñ Ð¾Ð·Ð½Ð°Ñене"
-
-#~ msgid "File"
-#~ msgstr "ФаÑл"
-
-#~ msgid "Help"
-#~ msgstr "ÐомоÑ"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "ÐоменÑаÑ"
-
-#~ msgid "View Track Details"
-#~ msgstr "ÐÑикажи деÑаÑе нÑмеÑе"
-
-#~ msgid "Play File"
-#~ msgstr "ÐÑÑÑи даÑоÑекÑ"
-
-#~ msgid "Load and play a file"
-#~ msgstr "УÑиÑÐ°Ñ Ð¸ пÑÑÑи даÑоÑекÑ"
-
-#~ msgid "Play Location"
-#~ msgstr "ÐÑÑÑи локаÑиÑÑ"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "ÐÑÑÑи медиÑe из изабÑане локаÑиÑе"
-
-#~ msgid "Plugin services"
-#~ msgstr "УÑлÑге додаÑака"
-
-#~ msgid "Preferences"
-#~ msgstr "ÐоÑÑавке"
-
-#~ msgid "Open preferences window"
-#~ msgstr "ÐÑвоÑи пÑÐ¾Ð·Ð¾Ñ Ð¿Ð¾ÑÑавки"
-
-#~ msgid "_Quit"
-#~ msgstr "_ÐзаÑи"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "УгаÑи Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "ÐоÑÑави Ð-Ð"
-
-#~ msgid "Clear A-B"
-#~ msgstr "ÐбÑиÑи Ð-Ð"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "ÐÑеÑи на поÑеÑак лиÑÑе нÑмеÑа"
-
-#~ msgid "Jump to File"
-#~ msgstr "ÐÑеÑи на даÑоÑекÑ"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "У Ñед/из Ñеда"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "УкÑÑÑÑÑе/иÑкÑÑÑÑÑе ÑÑавке Ñ/из Ñед(а) лиÑÑе нÑмеÑа."
-
-#~ msgid "Load"
-#~ msgstr "УÑиÑаÑи"
-
-#~ msgid "Import"
-#~ msgstr "УвеÑÑи"
-
-#~ msgid "Save"
-#~ msgstr "СаÑÑваÑи"
-
-#~ msgid "Delete"
-#~ msgstr "ÐзбÑиÑаÑи"
-
-#~ msgid "Preset"
-#~ msgstr "ÐÑеÑподеÑаваÑе"
-
-#~ msgid "Load preset"
-#~ msgstr "УÑиÑаÑи пÑеÑподеÑаваÑе"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "AÑÑо-ÑÑиÑана пÑеÑподеÑаваÑа"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "УÑиÑаÑи аÑÑо-ÑÑиÑана пÑеÑподеÑаваÑа"
-
-#~ msgid "Default"
-#~ msgstr "ÐодÑазÑмевано"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "УÑиÑаÑи подÑазÑмевано пÑеÑподеÑаваÑе Ñ ÐµÐºÐ²Ð¸Ð»Ð°ÑзеÑ"
-
-#~ msgid "Zero"
-#~ msgstr "ÐÑла"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "ÐоÑÑавиÑи нивое еквилаÑзеÑа на нÑлÑ"
-
-#~ msgid "From file"
-#~ msgstr "Ðз даÑоÑеке"
-
-#~ msgid "Load preset from file"
-#~ msgstr "УÑиÑаÑи пÑеÑподеÑаваÑе из даÑоÑеке"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "Ðз WinAMP EQF даÑоÑеке"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "УÑиÑаÑи пÑеÑподеÑаваÑе из WinAMP EQF даÑоÑеке"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "WinAMP пÑеÑподеÑаваÑа"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "УвеÑÑи WinAMP пÑеÑподеÑаваÑа"
-
-#~ msgid "Save preset"
-#~ msgstr "СаÑÑваÑи пÑеÑподеÑаваÑе"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "СаÑÑваÑи аÑÑо-ÑÑиÑано пÑеÑподеÑаваÑе"
-
-#~ msgid "Save default preset"
-#~ msgstr "СаÑÑваÑи подÑазÑмевано пÑеÑподеÑаваÑе"
-
-#~ msgid "To file"
-#~ msgstr "У даÑоÑекÑ"
-
-#~ msgid "Save preset to file"
-#~ msgstr "СаÑÑваÑи пÑеÑподеÑаваÑе Ñ Ð´Ð°ÑоÑекÑ"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "У WinAMP EQF даÑоÑекÑ"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "СаÑÑваÑи пÑеÑподеÑаваÑе Ñ WinAMP EQF даÑоÑекÑ"
-
-#~ msgid "Delete preset"
-#~ msgstr "ÐзбÑиÑаÑи пÑеÑподеÑаваÑе"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "ÐзбÑиÑаÑи аÑÑо-ÑÑиÑано пÑеÑподеÑаваÑе"
-
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Ðво Ñе колиÑина вÑемена за колико Ñе ÑнапÑед ÑÑиÑаÑÑ "
-#~ "аÑдио Ñокови, Ñ Ð¼Ð¸Ð»Ð¸ÑекÑндама.\n"
-#~ "ÐовеÑаÑÑе Ð¾Ð²Ñ Ð²ÑедноÑÑ Ð°ÐºÐ¾ вам Ñе деÑаваÑÑ Ð¿ÑеÑкакаÑа звÑка. \n"
-#~ "ÐмаÑÑе на ÑмÑ, да виÑоке вÑедноÑÑи Ñе изазваÑи да Audacious ÑлабиÑе Ñади."
-#~ "</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "УкÑÑÑи Ð±ÐµÐ·Ð³Ð»Ð°Ð²Ñ Ð¾Ð¿ÐµÑаÑиÑÑ"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>ÐиÑе могÑÑе ÑÑиÑаÑи маÑкÑ.</big></b>\n"
-#~ "\n"
-#~ "ÐÑовеÑиÑе да ли Ñе маÑка Ñ '%s' ÑпоÑÑебÑива и да ли Ñе подÑазÑмевана "
-#~ "маÑка пÑавилно инÑÑалиÑана Ñ '%s'\n"
-
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Ðезглава опеÑаÑиÑа Ñе ÑкÑÑÑена\n"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious оÑновни ÑÑваÑаоÑи:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious ÐквилаÑзеÑ"
-
-#~ msgid "Play files"
-#~ msgstr "ÐÑÑÑи даÑоÑеке"
-
-#~ msgid "Load files"
-#~ msgstr "УÑиÑÐ°Ñ Ð´Ð°ÑоÑеке"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "ÐÐÐ "
-
-#~ msgid "mono"
-#~ msgstr "моно"
-
-#~ msgid "Audacious - visibility warning"
-#~ msgstr "Audacious - ÑпозоÑеÑе видÑивоÑÑи"
-
-#~ msgid "Show main player window"
-#~ msgstr "ÐÑикажи главни пÑÐ¾Ð·Ð¾Ñ Ð¿Ð»ÐµÑеÑа"
-
-#~ msgid "Ignore"
-#~ msgstr "ÐгноÑиÑи"
-
-#~ 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 ""
-#~ "Audacious Ñе покÑенÑÑ Ñа Ñвим Ñеговим пÑозоÑима ÑакÑивеним.\n"
-#~ "Ðожда биÑÑе Ñ
Ñели да поново пÑикажеÑе пÑÐ¾Ð·Ð¾Ñ Ð¿Ð»ÐµÑеÑа да биÑÑе "
-#~ "конÑÑолиÑали Audacious; Ñ ÑÑпÑоÑном, моÑаÑеÑе га конÑÑолиÑаÑи даÑинÑки "
-#~ "пÑеко audtool или ÑкÑÑÑениÑ
додаÑака (као ÑÑо Ñе додаÑак \"ÑÑаÑÑÑна "
-#~ "икониÑа\")."
-
-#~ msgid "Always ignore, show/hide is controlled remotely"
-#~ msgstr "Увек игноÑиÑи, пÑикажи/ÑакÑÐ¸Ñ Ñе конÑÑолиÑе даÑинÑки"
-
-#~ msgid ""
-#~ "<big><b>Broken GTK engine in use</b></big>\n"
-#~ "\n"
-#~ "Audacious has detected that you are using a broken GTK engine.\n"
-#~ "\n"
-#~ "The theme engine you are using, <i>%s</i>, 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 ""
-#~ "<big><b>ÐокваÑена GTK маÑина Ñ ÑпоÑÑеби</b></big>\n"
-#~ "\n"
-#~ "Audacious Ñе оÑкÑио да коÑиÑÑиÑе покваÑÐµÐ½Ñ GTK маÑинÑ.\n"
-#~ "\n"
-#~ "ÐаÑина за Ñеме коÑÑ ÐºÐ¾ÑиÑÑиÑе, <i>%s</i>, ниÑе компаÑибилна Ñа неким од "
-#~ "елеменаÑа коÑе коÑиÑÑе модеÑне маÑке. ÐекомпаÑибилне оÑобине ÑÑ Ð¸ÑкÑÑÑене "
-#~ "за Ð¾Ð²Ñ ÑеÑиÑÑ.\n"
-#~ "\n"
-#~ "Ðа биÑÑе коÑиÑÑили ове оÑобине, ÑазмиÑлиÑе о коÑиÑÑеÑÑ Ð½ÐµÐºÐµ дÑÑге GTK "
-#~ "маÑине за Ñеме."
-
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ТÑажи до: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#~ msgid "Volume: %d%%"
-#~ msgstr "ÐаÑина звÑка: %d%%"
-
-#~ msgid "Balance: %d%% left"
-#~ msgstr "ÐаланÑ: %d%% леви"
-
-#~ msgid "Balance: center"
-#~ msgstr "ÐаланÑ: ÑенÑÑиÑано"
-
-#~ msgid "Balance: %d%% right"
-#~ msgstr "ÐаланÑ: %d%% деÑни"
-
-#~ msgid "Options Menu"
-#~ msgstr "Ðени опÑиÑа"
-
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "ÐÑкÑÑÑи 'Увек на вÑÑ
Ñ'"
-
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "УкÑÑÑи 'Увек на вÑÑ
Ñ'"
-
-#~ msgid "File Info Box"
-#~ msgstr "ÐÐºÐ²Ð¸Ñ Ð¸Ð½ÑоÑмаÑиÑа о даÑоÑеÑи"
-
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "ÐÑкÑÑÑи 'СкалиÑаÑе GUI-а'"
-
-#~ msgid "Enable 'GUI Scaling'"
-#~ msgstr "УкÑÑÑи 'СкалиÑаÑе GUI-а'"
-
-#~ msgid "Visualization Menu"
-#~ msgstr "Ðени визÑелизаÑиÑе"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>ÐиÑе могÑÑе оÑвоÑиÑи аÑдио.</big></b>\n"
-#~ "\n"
-#~ "Ðолим Ð²Ð°Ñ Ð¿ÑовеÑиÑе:\n"
-#~ "1. Ðа ли ÑÑе изабÑали Ð´Ð¾Ð±Ð°Ñ Ð¸Ð·Ð»Ð°Ð·Ð½Ð¸ додаÑак.\n"
-#~ "2. ÐиÑедан дÑÑги пÑогÑам не блокиÑа звÑÑÐ½Ñ ÐºÐ°ÑÑиÑÑ.\n"
-#~ "3. ÐаÑа звÑÑна каÑÑиÑа Ñе иÑпÑавно подеÑена.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "ÐÑÑопомеÑÐ°Ñ Ð¸Ð¼Ðµ пеÑме"
-
-#~ msgid "Show Player"
-#~ msgstr "ÐÑикажи плеÑеÑ"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "ÐÑикажи едиÑÐ¾Ñ Ð»Ð¸ÑÑе нÑмеÑа"
-
-#~ msgid "Always on Top"
-#~ msgstr "Увек на вÑÑ
Ñ"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "СÑави на Ñве Ñадне повÑÑине"
-
-#~ msgid "Roll up Player"
-#~ msgstr "ÐамоÑÐ°Ñ Ð¿Ð»ÐµÑеÑ"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "ÐамоÑÐ°Ñ ÐµÐ´Ð¸ÑÐ¾Ñ Ð»Ð¸ÑÑе нÑмеÑа"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "ÐамоÑÐ°Ñ ÐµÐºÐ²Ð¸Ð»Ð°ÑзеÑ"
-
-#~ msgid "Scale"
-#~ msgstr "СкалиÑаÑ"
-
-#~ msgid "DoubleSize"
-#~ msgstr "ÐÑпла велиÑина"
-
-#~ msgid "Easy Move"
-#~ msgstr "Ðако помеÑаÑе"
-
-#~ msgid "Analyzer"
-#~ msgstr "ÐнализаÑоÑа"
-
-#~ msgid "Scope"
-#~ msgstr "ÐоÑег"
-
-#~ msgid "Voiceprint"
-#~ msgstr "ÐÑиказа глаÑа"
-
-#~ msgid "Off"
-#~ msgstr "ÐÑкÑÑÑен"
-
-#~ msgid "Normal"
-#~ msgstr "ÐоÑмалан"
-
-#~ msgid "Fire"
-#~ msgstr "ÐаÑÑа"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "ÐеÑÑикалне линиÑе"
-
-#~ msgid "Lines"
-#~ msgstr "ÐиниÑе"
-
-#~ msgid "Bars"
-#~ msgstr "ТÑаке"
-
-#~ msgid "Dot Scope"
-#~ msgstr "ТаÑкаÑÑи доÑег"
-
-#~ msgid "Line Scope"
-#~ msgstr "ÐиниÑÑки доÑег"
-
-#~ msgid "Solid Scope"
-#~ msgstr "ÐÑпÑÑен доÑег"
-
-#~ msgid "Ice"
-#~ msgstr "Ðед"
-
-#~ msgid "Smooth"
-#~ msgstr "Ðладак"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Цела (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Ðола (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "ЧеÑвÑÑ (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "ÐÑмина (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "ÐаÑÑпоÑиÑе"
-
-#~ msgid "Slow"
-#~ msgstr "СпоÑо"
-
-#~ msgid "Medium"
-#~ msgstr "СÑедÑе"
-
-#~ msgid "Fast"
-#~ msgstr "ÐÑзо"
-
-#~ msgid "Fastest"
-#~ msgstr "ÐаÑбÑже"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "ÐÑеме пÑоÑекло"
-
-#~ msgid "Time Remaining"
-#~ msgstr "ÐÑеме пÑеоÑÑало"
-
-#~ msgid "Plugin Services"
-#~ msgstr "УÑлÑге додаÑака"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "ÐÑеÑÑажи ÑÑавке Ñ Ð°ÐºÑÐ¸Ð²Ð½Ð¾Ñ Ð»Ð¸ÑÑи нÑмеÑа"
-
-#~ 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 ""
-#~ "Ðбележи ÑÑавке Ñ Ð»Ð¸ÑÑи нÑмеÑа попÑÑаваÑÑÑи Ñедно или виÑе поÑа. ÐоÑа "
-#~ "коÑиÑÑе ÑинÑакÑÑ ÑегÑлаÑниÑ
изÑаза и ÑазликÑÑÑ Ð²ÐµÐ»Ð¸ÑÐ¸Ð½Ñ Ñлова. Ðко не "
-#~ "знаÑе како ÑегÑлаÑни изÑази ÑÑнкÑиониÑÑ, ÑедноÑÑавно ÑнеÑиÑе доÑловно део "
-#~ "онога ÑÑо ÑÑажиÑе."
-
-#~ msgid "Title: "
-#~ msgstr "ÐаÑлов: "
-
-#~ msgid "Artist: "
-#~ msgstr "ÐзвоÑаÑ: "
-
-#~ msgid "Filename: "
-#~ msgstr "Ðме даÑоÑеке: "
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "ÐбÑиÑи пÑеÑÑ
Ð¾Ð´Ð½Ñ ÑелекÑиÑÑ Ð¿Ñе пÑеÑÑаге"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "ÐаÑене ÑÑавке аÑÑомаÑÑки пÑебаÑи Ñ Ñед"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious едиÑÐ¾Ñ Ð»Ð¸ÑÑе нÑмеÑа"
-
-#~ msgid "Appearance"
-#~ msgstr "Ðзглед"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_ФонÑови</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_ÐлеÑеÑ:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "ÐзабеÑиÑе ÑÐ¾Ð½Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³ пÑозоÑа плеÑеÑа:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_ÐиÑÑа нÑмеÑа:"
-
-#~ msgid "Select playlist font:"
-#~ msgstr "ÐзабеÑиÑе ÑÐ¾Ð½Ñ Ð»Ð¸ÑÑе нÑмеÑа:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "ÐоÑиÑÑи биÑмапиÑане ÑонÑове, ако ÑÑ Ð´Ð¾ÑÑÑпни"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "ÐоÑиÑÑи биÑмапиÑане ÑонÑове, ако ÑÑ Ð´Ð¾ÑÑÑпни. ÐиÑмапиÑани ÑонÑови не "
-#~ "подÑжаваÑÑ Ð£Ð½Ð¸ÐºÐ¾Ð´Ð½Ðµ знаковне низове."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_ÐÑÑало</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "ÐÑикажи бÑоÑеве нÑмеÑа Ñ Ð»Ð¸ÑÑи нÑмеÑа"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "ÐÑикажи ÑаздваÑаÑе Ñ Ð»Ð¸ÑÑи нÑмеÑа"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "ÐÑикажи ÑкÑÐ°Ñ Ð¿ÑогÑама за ÑпÑавÑаÑе пÑозоÑима"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr ""
-#~ "Ðво омогÑÑава пÑогÑÐ°Ð¼Ñ Ð·Ð° ÑпÑавÑаÑe пÑозоÑима да пÑикаже ÑкÑаÑе на "
-#~ "пÑозоÑима."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "ÐоÑиÑÑи XMMS-ов ÑелекÑÐ¾Ñ Ð´Ð°ÑоÑека ÑмеÑÑо подÑазÑмеваног"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Ðво ÑкÑÑÑÑÑе XMMS/GTK1-ÑÑил оквиÑа за ÑелекÑиÑÑ Ð´Ð°ÑоÑека. Audacious "
-#~ "обезбеÑÑÑе Ð¾Ð²Ð°Ñ ÑелекÑÐ¾Ñ Ð¸ бÑжи Ñе од подÑазÑмеваног GTK2 ÑелекÑоÑа "
-#~ "(нажалоÑÑ, не Ñолико ÑедноÑÑаван)."
-
-#~ msgid "Use two-way text scroller"
-#~ msgstr "ÐоÑиÑÑи двоÑмеÑни ÑекÑÑ ÐºÐ»Ð¸Ð·Ð°Ñ"
-
-#~ 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 ""
-#~ "Ðко Ñе ÑкÑÑÑено, ÑекÑÑ ÐºÐ¾Ñи пÑиказÑÑе инÑоÑмаÑиÑе о даÑоÑеÑи Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð¼ "
-#~ "пÑозоÑÑ Ñе клизаÑи напÑед и назад. Ðко Ñе иÑкÑÑÑено, ÑекÑÑ Ñе Ñе клизаÑи "
-#~ "Ñамо Ñ Ñедном ÑмеÑÑ."
-
-#~ msgid "Disable inline gtk theme"
-#~ msgstr "ÐÑкÑÑÑи ÑгÑаÑÐµÐ½Ñ gtk ÑемÑ"
-
-#~ msgid "Allow loading incomplete skins"
-#~ msgstr "Ðозволи ÑÑиÑаваÑе непоÑпÑниÑ
маÑки"
-
-#~ msgid ""
-#~ "If selected, audacious won't refuse loading broken skins. Use only if "
-#~ "your favourite skin doesn't work"
-#~ msgstr ""
-#~ "Ðко Ñе ÑкÑÑÑено, Audacious неÑе забÑаниÑи ÑÑиÑаваÑе неиÑпÑавниÑ
маÑки. "
-#~ "ÐоÑиÑÑиÑе Ñамо ако ваÑа омиÑена маÑка не Ñади"
-
-#~ msgid "On load"
-#~ msgstr "ÐÑиликом ÑÑиÑаваÑа"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "УÑиÑÐ°Ñ Ð¼ÐµÑа-подаÑке пÑи додаваÑÑ Ð´Ð°ÑоÑеке Ñ Ð»Ð¸ÑÑÑ Ð¸Ð»Ð¸ пÑиликом оÑваÑаÑа"
-
-#~ msgid "On display"
-#~ msgstr "ÐÑиликом пÑиказиваÑа"
-
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "УÑиÑÐ°Ñ Ð¼ÐµÑа-подаÑке пÑиликом пÑиказиваÑа даÑоÑеке Ñ Ð»Ð¸ÑÑи нÑмеÑа. Ðожда "
-#~ "ÑеÑе моÑаÑи да поÑÑавиÑе \"ÐÑÐµÐ¿Ð¾Ð·Ð½Ð°Ñ ÑоÑÐ¼Ð°Ñ Ð´Ð°ÑоÑеке на заÑ
Ñев\" Ñ ÐÑдио "
-#~ "одеÑкÑ."
-
-#~ msgid "Color Adjustment"
-#~ msgstr "ÐодеÑаваÑе боÑе"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious вам дозвоÑава да пÑомениÑе Ð±Ð°Ð»Ð°Ð½Ñ Ð±Ð¾Ñа маÑкиÑаног УÐ-а. ÐоÑи "
-#~ "клизаÑи Ñе вам омогÑÑиÑи да Ñо ÑÑадиÑе."
-
-#~ msgid "Blue"
-#~ msgstr "Ðлаво"
-
-#~ msgid "Green"
-#~ msgstr "Ðелено"
-
-#~ msgid "Red"
-#~ msgstr "ЦÑвено"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_ÐаÑка</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "ÐÑвежи лиÑÑÑ Ð¼Ð°Ñки"
-
-#~ msgid "PREAMP"
-#~ msgstr "ÐÐ ÐÐÐÐ"
-
-#~ msgid "60HZ"
-#~ msgstr "60Hz"
-
-#~ msgid "170HZ"
-#~ msgstr "170Hz"
-
-#~ msgid "310HZ"
-#~ msgstr "310Hz"
-
-#~ msgid "600HZ"
-#~ msgstr "600Hz"
-
-#~ msgid "1KHZ"
-#~ msgstr "1kHz"
-
-#~ msgid "3KHZ"
-#~ msgstr "3kHz"
-
-#~ msgid "6KHZ"
-#~ msgstr "6kHz"
-
-#~ msgid "12KHZ"
-#~ msgstr "12kHz"
-
-#~ msgid "14KHZ"
-#~ msgstr "14kHz"
-
-#~ msgid "16KHZ"
-#~ msgstr "16kHz"
+msgstr "ÐÑиказÑÑе могÑÑноÑÑи ÑпÑавÑаÑа ÑеÑиÑом"
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "ÐÑÑ
ивиÑана Winamp 2.x маÑка"
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "ÐеаÑÑ
ивиÑана Winamp 2.x маÑка"
diff --git a/po/sr at Latn.po b/po/sr at Latn.po
index 714814f..92cb755 100644
--- a/po/sr at Latn.po
+++ b/po/sr at Latn.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: sr at Latn\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2008-07-19 11:56+0200\n"
"Last-Translator: Strahinja Kustudic <kustudic at gmail.com>\n"
"Language-Team: <en at li.org>\n"
@@ -19,6 +19,18 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (neispravan UTF-8)"
@@ -103,113 +115,113 @@ msgstr "Estonski:"
msgid "Finnish:"
msgstr "Finski:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Francuski:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "NemaÄki:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Armenski:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "GrÄki:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Indijski:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "MaÄarski:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "Italijanski:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Japanski:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Koreanski:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Hrvatski:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Litvanski:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Makedonski:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Poljski:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Brazilsko Portugalski:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Rumunski:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Ruski:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Srpski (Latinica):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Srpski (Äirilica):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "Uprošten Kineski:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "SlovenaÄki:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "Å panski:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "Å vedski:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Tradicionalni Kineski:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Turski:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ukrainski:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Velšanski:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "UÄitaj listu numera"
@@ -219,80 +231,64 @@ msgstr "UÄitaj listu numera"
msgid "Error importing Winamp EQF file '%s'"
msgstr "Greška prilikom uvozenja Winamp EQF datoteke '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "SkoÄi unazad u listi numera"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Pusti tekuÄu listu numera"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Pauziraj tekuÄu pesmu"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Zaustavi tekuÄu pesmu"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Pauziraj ako svira, inaÄe pusti"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "SkoÄi unapred u listi numera"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "Prikaži PreÄi na datoteku okvir"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Dodaje datoteke u listu numera."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Dodaje nove datoteke u privremenu listu numera"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Prikaži glavni prozor"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Prikaži sve otvorene Audacious prozore"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
msgid "Show version"
msgstr "Prikaži verziju"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "DATOTEKA..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- pusti multimedijalne datoteke"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -301,7 +297,7 @@ msgstr ""
"%s: %s\n"
"Probajte `%s --help' za više informacija.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -309,262 +305,236 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Nova lista numera"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Audio"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Lista numera"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Dodaci"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "IzvoÄaÄ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Naslov"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Broj numere"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Žanr"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Ime datoteke"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Putanja datoteke"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Godina"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Komentar"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Kodek"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Kvalitet"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Nijedan"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "Japanski"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "Tajvanski"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "Kineski"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Koreanski"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Ruski"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "GrÄki"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "Jevrejski"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Turski"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "Arapski"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Poljski:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "Keltska"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "Univerzalan"
#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Dubina bita</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "Prikaži detalje numere"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Dubina bita izlaza:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Svi tokovi Äe biti pretvoreni u ovu dubinu bita.\n"
-"Ovo bi trebala da bude maksimalna podržana dubina bita\n"
-"muziÄke kartice ili izlaznog dodatka."
+#, fuzzy
+msgid "Album mode"
+msgstr "Album: "
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Kontrola jaÄine zvuka</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Prepoznavanje formata</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Koristi softversku kontrolu zvuka"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Dubina bita izlaza:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Koristi softversku kontrolu zvuka. Ovo može biti korisno u situacijama gde "
-"vaÅ¡ audio sistem ne podržava kontrolu jaÄine zvuka reprodukcije."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "VeliÄina bafera:"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- pusti multimedijalne datoteke"
+msgid "Use software volume control (not recommended)"
+msgstr "Koristi softversku kontrolu zvuka"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Replay Gain režim</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "UkljuÄi Replay Gain"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-podaci</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Prikaži detalje numere"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>ToÄkiÄ miÅ¡a</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>IskaÄuÄe informacije</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "UkljuÄi zaÅ¡titu od odsecanja vrhunaca"
+msgid "Amplify untagged files:"
+msgstr "- pusti multimedijalne datoteke"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Ime domaÄina posrednika:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "PosredniÄki port:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "PosredniÄko korisniÄko ime:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "PosredniÄka lozinka:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Konfiguracija posrednika</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "UkljuÄi koriÅ¡Äenje posrednika"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Koristi proveru identiteta sa posrednikom"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -572,15 +542,15 @@ msgstr ""
"<span size=\"small\">Menjanje ovih podeÅ¡avanja Äe zahtevati ponovno "
"pokretanje Audacious-a.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Auto-prepoznavanje kodiranja karaktera za:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Rezervno kodiranje karaktera:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -592,46 +562,46 @@ msgstr ""
"iskljuÄeno, kodiranja u ovoj listi Äe biti kandidati za Å¡ifrovanje meta-"
"poataka, i rezervna konverzija iz ovih kodiranja u UTF-8 Äe biti pokuÅ¡ana."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Dubina bita</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "Nastavi reprodukovanje na poÄetku"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Napravi novu listu od naÄenih stavki"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Dodaje nove datoteke u privremenu listu numera"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Meta-podaci</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Kategorija"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "PodeÅ¡avanja iskaÄuÄih informacija"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>UÄitavanje naslovne slike</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -640,99 +610,99 @@ msgstr ""
"Dok traži naslovne slike albuma, Audacious traži odreÄene reÄi u imenu "
"datoteke. Možete navesti te reÄi dole u listi, razdvojene zapetama."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "IskljuÄi:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "UkljuÄi:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Rekurzivno traži naslovnu sliku"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "Dubina pretrage: "
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Koristi jednu naslovnu sliku po datoteci"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>Ostalo</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Prikaži indikator napredovanja za tekuÄu numeru"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "ZakaÅ¡njenje pojavljivanja iskaÄuÄeg proz. datoteke: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Prikaz pesme</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "Prikaži informacije o formatu znakovnog niza naslova"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "NASLOV"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "IZVOÄAÄ - NASLOV"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "IZVOÄAÄ - ALBUM - NASLOV"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "IZVOÄAÄ - ALBUM - BROJ. NASLOV"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "IZVOÄAÄ [ ALBUM ] - BROJ. NASLOV"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ALBUM - NASLOV"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Sopstveni"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Sopstveni znakovni niz:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Format naslova:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>IskaÄuÄe informacije</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Prikaži iskaÄuÄe informacije za stavke u listi numera"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -742,54 +712,47 @@ msgstr ""
"listi numera. Prozor prikazuje ime pesme, ime albuma, žanr, godinu "
"izdavanja, broj numere, dužinu numere i sliku."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Uredi podeÅ¡avanja za iskaÄuÄe informacije"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio sistem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "VeliÄina bafera:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "TekuÄi izlazni dodatak:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ulazni dodatak: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Prevodioci"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efekti</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Vizuelizacija"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious podešavanja"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Nije moguÄe napraviti direktorijum (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -808,22 +771,25 @@ msgstr "stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Ne prikazuj ovo upozorenje"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "SaÄuvaj listu numera"
@@ -887,11 +853,11 @@ msgstr "Prikaži ekvilajzer"
msgid "Preamp"
msgstr "PredpojaÄalo:"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Broj numere"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Dužina numere"
@@ -1123,6 +1089,29 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "PreÄi na vreme"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "UÄitaj listu numera"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "UÄitaj listu numera"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "O Audacious-u"
@@ -1184,19 +1173,19 @@ msgstr "Obriši A-B"
msgid "Close on Jump"
msgstr "Zatvori posle skoka"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Menadžer liste numera"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Stavke"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Preimenuj"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Zatvori okvir klikom na Otvori"
@@ -1209,6 +1198,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "Datoteka nije validna .desktop datoteka"
@@ -1218,26 +1213,26 @@ msgstr "Datoteka nije validna .desktop datoteka"
msgid "Unrecognized desktop file Version '%s'"
msgstr "Nepoznata verzija datoteke radne površi (.desktop) '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "PokreÄem %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "Aplikacija ne podržava dokumente u komandnoj liniji"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "Nepoznata opcija pokretanja: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
"Ne mogu da prosledim adrese dokumenta u stavku radne površi 'Tip=Link' "
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "Stavka ne može da se pokrene"
@@ -1271,6 +1266,52 @@ msgstr "Opcije upravljanja sesije"
msgid "Show session management options"
msgstr "Prikaži opcije upravljanja sesije"
+#~ msgid "Replay Gain"
+#~ msgstr "Replay Gain"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Dubina bita</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Svi tokovi Äe biti pretvoreni u ovu dubinu bita.\n"
+#~ "Ovo bi trebala da bude maksimalna podržana dubina bita\n"
+#~ "muziÄke kartice ili izlaznog dodatka."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Kontrola jaÄine zvuka</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Koristi softversku kontrolu zvuka. Ovo može biti korisno u situacijama "
+#~ "gde vaÅ¡ audio sistem ne podržava kontrolu jaÄine zvuka reprodukcije."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Meta-podaci</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>IskaÄuÄe informacije</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "UkljuÄi zaÅ¡titu od odsecanja vrhunaca"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audio sistem</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "TekuÄi izlazni dodatak:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Prikaži sve otvorene Audacious prozore"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Nije moguÄe otvoriti prikaz, izlazim.\n"
@@ -1758,9 +1799,6 @@ msgstr "Prikaži opcije upravljanja sesije"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Nijedan ulazni dodatak nije prepoznao ovu datoteku"
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ulazni dodatak: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1803,9 +1841,6 @@ msgstr "Prikaži opcije upravljanja sesije"
#~ "Ovo bi trebala da bude maksimalna podržana uÄestalost odabiranja uzoraka\n"
#~ "muziÄke kartice ili izlaznog dodatka.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Prepoznavanje formata</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Prepoznaj format datoteke na osnovu oznake tipa."
@@ -1932,9 +1967,6 @@ msgstr "Prikaži opcije upravljanja sesije"
#~ msgid "Can't jump to time when no track is being played.\n"
#~ msgstr "Ne mogu da skoÄim na vreme kad nijedna numera nije puÅ¡tena.\n"
-#~ msgid "Jump to Time"
-#~ msgstr "PreÄi na vreme"
-
#~ msgid "minutes:seconds"
#~ msgstr "minuti:sekunde"
diff --git a/po/sv.po b/po/sv.po
index a39c359..795868a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: bmp 0.9.7\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2004-02-29 02:46+0100\n"
"Last-Translator: Martin Persenius <martin at persenius.net>\n"
"Language-Team: Sweden\n"
@@ -19,6 +19,18 @@ msgstr ""
"NPOT-Creation-Date: 2004-02-21 19:35+0200\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
+#: src/audacious/adder.c:71
+#, fuzzy
+msgid "Searching ..."
+msgstr "Söker i kataloger..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (invalid UTF-8)"
@@ -111,122 +123,122 @@ msgstr "Plats:"
msgid "Finnish:"
msgstr ""
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr ""
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
#, fuzzy
msgid "German:"
msgstr "Genre"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
#, fuzzy
msgid "Georgian:"
msgstr "Genre"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
#, fuzzy
msgid "Greek:"
msgstr "Genre"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr ""
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
#, fuzzy
msgid "Hungarian:"
msgstr "Buffrande:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
#, fuzzy
msgid "Italian:"
msgstr "Plats:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr ""
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
#, fuzzy
msgid "Korean:"
msgstr "Genre"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Plats:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr ""
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
#, fuzzy
msgid "Macedonian:"
msgstr "Genre"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr ""
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Port:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
#, fuzzy
msgid "Romanian:"
msgstr "Plats:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr ""
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr ""
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr ""
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr ""
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr ""
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr ""
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr ""
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr ""
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr ""
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
#, fuzzy
msgid "Ukrainian:"
msgstr "Organisation:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr ""
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "Ladda spellista"
@@ -236,91 +248,75 @@ msgstr "Ladda spellista"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-#, fuzzy
-msgid "Searching ..."
-msgstr "Söker i kataloger..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Hoppa båket i spellista"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Börja spela nuvarande spellista"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Pausa nuvarande sång"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Stoppa nuvarande sång"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Pausa om spelandes, spela annars"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Hoppas framåt i spellistan"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
#, fuzzy
msgid "Display Jump to File dialog"
msgstr "/Hoppa till fil"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Kunde ej skriva spellista!"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
#, fuzzy
msgid "Add new files to a temporary playlist"
msgstr "Kunde ej skriva spellista!"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
#, fuzzy
msgid "Display the main window"
msgstr "Visa huvudfönstret."
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "/Visa spellistredigeraren"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr ""
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr ""
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -328,293 +324,269 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
#, fuzzy
msgid "Buffering ..."
msgstr "Buffrande"
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "/Ny spellista"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
#, fuzzy
msgid "Audio"
msgstr "Om MPEG-ljudinsticksmodulen"
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ReplayGain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Playlist"
msgstr "/Spellista"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
#, fuzzy
msgid "Plugins"
msgstr "Insticksmoduler"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
#, fuzzy
msgid "Artist"
msgstr "Artist:"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Album"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "Titel"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
#, fuzzy
msgid "Tracknumber"
msgstr "Spårnummer"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Genre"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Filnamn"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
#, fuzzy
msgid "Filepath"
msgstr "Sökväg"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Datum"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Ã
r"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Kommentar"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
#, fuzzy
msgid "Codec"
msgstr "Stäng"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
#, fuzzy
msgid "Quality"
msgstr "/_Avsluta"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Ingen"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr ""
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr ""
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
#, fuzzy
msgid "Chinese"
msgstr "Kanaler:"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
#, fuzzy
msgid "Korean"
msgstr "Genre"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
#, fuzzy
msgid "Russian"
msgstr "Fusion"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
#, fuzzy
msgid "Greek"
msgstr "Genre"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr ""
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr ""
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr ""
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
msgid "Polish"
msgstr ""
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
#, fuzzy
msgid "Baltic"
msgstr "Keltisk"
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
#, fuzzy
msgid "Universal"
msgstr "Genre"
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "_Filter:"
+msgid "Single track mode"
+msgstr "/Visa spårdetaljer"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Album"
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "Volymkontrol:"
+msgid "<b>Output Settings</b>"
+msgstr "_Filter:"
#: src/audacious/ui_preferences.c:152
#, fuzzy
-msgid "Use software volume control"
-msgstr "Volymkontrol:"
+msgid "Bit depth:"
+msgstr "Bit-hastighet:"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+#, fuzzy
+msgid "Buffer size:"
+msgstr "Buffertstorlek (kB):"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+#: src/audacious/ui_preferences.c:158
+#, fuzzy
+msgid "Use software volume control (not recommended)"
+msgstr "Volymkontrol:"
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "Police de la liste d'écoute:"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "Aktivera ReplayGain"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "_Filter:"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Visa spårdetaljer"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "_Filter:"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Aktivera klippskydd"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr ""
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
#, fuzzy
msgid "Proxy port:"
msgstr "Proxy:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
#, fuzzy
msgid "Proxy username:"
msgstr "Användarnamn:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
#, fuzzy
msgid "Proxy password:"
msgstr "Lösenord:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
#, fuzzy
msgid "<b>Proxy Configuration</b>"
msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr ""
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
#, fuzzy
msgid "Use authentication with proxy"
msgstr "Använd autentisering"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
msgstr ""
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr ""
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -622,212 +594,202 @@ msgid ""
"fall back conversion from these encodings to UTF-8 would be attempted."
msgstr ""
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "_Filter:"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr ""
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "Välj typsnitt för spellistan:"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Kunde ej skriva spellista!"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
#, fuzzy
msgid "<b>Metadata</b>"
msgstr "_Filter:"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr ""
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
#, fuzzy
msgid "Popup Information Settings"
msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
#, fuzzy
msgid "<b>Cover image retrieve</b>"
msgstr "Automatiskt upptäckande"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr ""
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
#, fuzzy
msgid "Include:"
msgstr "Indisk"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr ""
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr ""
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr ""
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
#, fuzzy
msgid "<b>Miscellaneous</b>"
msgstr "_Filter:"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr ""
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr ""
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
#, fuzzy
msgid "<b>Song Display</b>"
msgstr "_Filter:"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr ""
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr ""
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
#, fuzzy
msgid "Custom"
msgstr "Bufferttid (ms):"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr ""
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "Titelformat:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
#, fuzzy
msgid "<b>Popup Information</b>"
msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr ""
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr ""
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "Förinställningar"
-
-#: src/audacious/ui_preferences.c:1715
+#: src/audacious/ui_preferences.c:1497
#, fuzzy
-msgid "Buffer size:"
-msgstr "Buffertstorlek (kB):"
+msgid "Output plugin:"
+msgstr "OSS-uppspelningsinsticksmodul"
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "eSound-uppspelningsinsticksmodul"
-
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Transport"
msgstr ""
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "Förinställningar"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Visualization"
msgstr "/Visualiseringsläge"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "General"
msgstr "Generella insticksmoduler"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
#, fuzzy
msgid "Audacious Preferences"
msgstr "/Inställningar"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, fuzzy, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Kunde ej skapa mapp (%s): %s"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -846,22 +808,24 @@ msgstr "Stereo"
#: src/libaudcore/tuple.c:689
#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanaler:"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "Kanaler:"
+msgstr[1] "Kanaler:"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Vissa inte denna varning igen"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Spara spellista"
@@ -933,12 +897,12 @@ msgstr "BMP Equalizer"
msgid "Preamp"
msgstr "Dream"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
#, fuzzy
msgid "Track Number"
msgstr "Spårnummer"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
#, fuzzy
msgid "Track Length"
msgstr "Spårlängd:"
@@ -1173,6 +1137,30 @@ msgstr "%d kbit/s"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "/Hoppa till tiden"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Ladda spellista"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Ladda spellista"
+
+#: src/libaudgui/playlists.c:71
+#, fuzzy, c-format
+msgid "Overwrite %s?"
+msgstr "Skriv över"
+
#: src/libaudgui/ui_about.c:71
#, fuzzy
msgid "About Audacious"
@@ -1243,21 +1231,21 @@ msgstr "/Rensa kön"
msgid "Close on Jump"
msgstr "Stäng"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
#, fuzzy
msgid "Playlist Manager"
msgstr "/Fortsätt ej i spellista"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr ""
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
#, fuzzy
msgid "_Rename"
msgstr "/Byt namn"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Stäng"
@@ -1271,6 +1259,12 @@ msgstr ""
msgid "Add URL"
msgstr "Lägg till URL..."
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1280,25 +1274,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr "%s: okänt val `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, fuzzy, c-format
msgid "Starting %s"
msgstr "Mixerinställningar:"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, fuzzy, c-format
msgid "Unrecognized launch option: %d"
msgstr "%s: okänt val `--%s'\n"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1333,6 +1327,38 @@ msgid "Show session management options"
msgstr "Visa fönsterhanterarens dekorationer"
#, fuzzy
+#~ msgid "Replay Gain"
+#~ msgstr "ReplayGain"
+
+#, fuzzy
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "_Filter:"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "Volymkontrol:"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "_Filter:"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Aktivera klippskydd"
+
+#, fuzzy
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "Förinställningar"
+
+#, fuzzy
+#~ msgid "Current output plugin:"
+#~ msgstr "eSound-uppspelningsinsticksmodul"
+
+#, fuzzy
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "BMP: Kunde ej öppna för visning, avslutar."
@@ -1838,10 +1864,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
#~ msgid "_Effect plugin list:"
#~ msgstr "Effektinsticksmoduler"
-#, fuzzy
-#~ msgid "Jump to Time"
-#~ msgstr "/Hoppa till tiden"
-
#~ msgid "minutes:seconds"
#~ msgstr "minuter:sekunder"
@@ -3683,9 +3705,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
#~ msgid "MPEG Level:"
#~ msgstr "MPEG-nivå:"
-#~ msgid "Bit rate:"
-#~ msgstr "Bit-hastighet:"
-
#~ msgid "Sample rate:"
#~ msgstr "Uppsamlingstakt:"
@@ -3940,9 +3959,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
#~ msgid "About %s"
#~ msgstr "Om"
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS-uppspelningsinsticksmodul"
-
#~ msgid "About OSS Driver"
#~ msgstr "Om OSS-drivrutinen"
@@ -4630,10 +4646,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
#~ msgstr "Kolla i underkataloger"
#, fuzzy
-#~ msgid "<b>Other options</b>"
-#~ msgstr "_Filter:"
-
-#, fuzzy
#~ msgid "BMP Equalizer Preferences"
#~ msgstr "BMP Equalizer"
@@ -4815,9 +4827,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
#~ msgid "bmp: Error: File exists!"
#~ msgstr "bmp: Fel: Filen finns redan!"
-#~ msgid "Overwrite"
-#~ msgstr "Skriv över"
-
#~ msgid "Unknown filetype for %s"
#~ msgstr "%s är av okänd filtyp"
diff --git a/po/tr.po b/po/tr.po
index e86ddb8..978fdd0 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: audi-temel\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
"PO-Revision-Date: 2007-12-23 00:26+0200\n"
"Last-Translator: Murat Senel <muratasenel at gmail.com>\n"
"Language-Team: <tr at li.org>\n"
@@ -21,6 +21,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
#: src/audacious/chardet.c:37
msgid " (invalid UTF-8)"
msgstr " (geçersiz UTF-8)"
@@ -105,113 +116,113 @@ msgstr "Estonyaca:"
msgid "Finnish:"
msgstr "Fince:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
msgid "French:"
msgstr "Fransızca:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
msgid "German:"
msgstr "Almanca:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
msgid "Georgian:"
msgstr "Gürcüce:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
msgid "Greek:"
msgstr "Yunanca:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
msgid "Hindi:"
msgstr "Hintçe:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
msgid "Hungarian:"
msgstr "Macarca:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
msgid "Italian:"
msgstr "İtalyanca:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
msgid "Japanese:"
msgstr "Japonca:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
msgid "Korean:"
msgstr "Korece:"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
#, fuzzy
msgid "Latvian:"
msgstr "Hırvatça:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
msgid "Lithuanian:"
msgstr "Litvanyaca:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
msgid "Macedonian:"
msgstr "Makedonca:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
msgid "Polish:"
msgstr "Lehçe:"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
#, fuzzy
msgid "Portuguese:"
msgstr "Brezilya Portekizcesi:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
msgid "Romanian:"
msgstr "Romanca:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
msgid "Russian:"
msgstr "Rusça:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
msgid "Serbian (Latin):"
msgstr "Sırpça (Latin):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
msgid "Serbian (Cyrillic):"
msgstr "Sırpça (Kiril):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
msgid "Simplified Chinese:"
msgstr "BasitleÅtirilmiÅ Ãince:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
msgid "Slovak:"
msgstr "Slovakça:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
msgid "Spanish:"
msgstr "İspanyolca:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
msgid "Swedish:"
msgstr "İsveçce:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
msgid "Traditional Chinese:"
msgstr "Geleneksel Ãince:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
msgid "Turkish:"
msgstr "Türkçe:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
msgid "Ukrainian:"
msgstr "Ukraynaca:"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
msgid "Welsh:"
msgstr "Galce:"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
#, fuzzy
msgid "Temporary Playlist"
msgstr "Parça Listesi Yükle"
@@ -221,80 +232,65 @@ msgstr "Parça Listesi Yükle"
msgid "Error importing Winamp EQF file '%s'"
msgstr ""
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
msgid "Skip backwards in playlist"
msgstr "Parça listesinde geri git"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
msgid "Start playing current playlist"
msgstr "Mevcut parça listesini çal"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
msgid "Pause current song"
msgstr "Ãalan Åarkıyı beklet"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
msgid "Stop current song"
msgstr "Ãalan Åarkıyı durdur"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
msgid "Pause if playing, play otherwise"
msgstr "Ãalıyorsa beklet, deÄilse çal"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
msgid "Skip forward in playlist"
msgstr "Parça listesinde ileri git"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
msgid "Display Jump to File dialog"
msgstr "Dosya Atla penceresini göster"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
#, fuzzy
msgid "Add files to the playlist"
msgstr "Parça listesine dosya ekle."
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
msgid "Add new files to a temporary playlist"
msgstr "Geçici parça listesine yeni dosya ekle"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
msgid "Display the main window"
msgstr "Ana pencereyi göster"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Açık olan tüm Audacious pencerelerini göster"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
#, fuzzy
msgid "Show version"
msgstr "Oynatıcıyı Göster"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
msgid "Print debugging messages"
msgstr ""
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
msgid "FILE..."
msgstr "DOSYA..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
msgid "- play multimedia files"
msgstr "- çoklu ortam dosyalarını çal"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
#, c-format
msgid ""
"%s: %s\n"
@@ -303,7 +299,7 @@ msgstr ""
"%s: %s\n"
"Daha fazla bilgi için `%s --help' komutunu kullanın.\n"
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
msgid ""
"Audacious seems to be already running but is not responding. You can start "
"another instance of the program, but please be warned that this can cause "
@@ -311,265 +307,236 @@ msgid ""
"message. Press OK to start Audacious or Cancel to quit."
msgstr ""
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
#, c-format
msgid "No decoder found for %s."
msgstr ""
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
msgid "Buffering ..."
msgstr ""
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
#, fuzzy
msgid "Untitled Playlist"
msgstr "Yeni Parça Listesi"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
msgid "Audio"
msgstr "Ses"
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
msgid "Network"
msgstr ""
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
msgid "Playlist"
msgstr "Parça Listesi"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
msgid "Plugins"
msgstr "Eklentiler"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
msgid "Artist"
msgstr "Sanatçı"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
msgid "Album"
msgstr "Albüm"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
msgid "Title"
msgstr "BaÅlık"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
msgid "Tracknumber"
msgstr "Parça numarası"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
msgid "Genre"
msgstr "Tür"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
msgid "Filename"
msgstr "Dosya adı"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
msgid "Filepath"
msgstr "Dosya yolu"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
msgid "Date"
msgstr "Tarih"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
msgid "Year"
msgstr "Yıl"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
msgid "Comment"
msgstr "Yorum"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
msgid "Codec"
msgstr "Kodlayıcı"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
msgid "Quality"
msgstr "Kalite"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
msgid "None"
msgstr "Hiçbiri"
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
msgid "Japanese"
msgstr "Japonca"
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
msgid "Taiwanese"
msgstr "Tayvanca"
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
msgid "Chinese"
msgstr "Ãince"
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
msgid "Korean"
msgstr "Korece"
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
msgid "Russian"
msgstr "Rusça"
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
msgid "Greek"
msgstr "Yunanca"
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
msgid "Hebrew"
msgstr "İbranice"
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
msgid "Turkish"
msgstr "Türkçe"
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
msgid "Arabic"
msgstr "Arapça"
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
#, fuzzy
msgid "Polish"
msgstr "Lehçe:"
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
msgid "Baltic"
msgstr ""
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
msgid "Universal"
msgstr "Evrensel"
#: src/audacious/ui_preferences.c:146
#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Biçim Tanıma</b>"
+msgid "Single track mode"
+msgstr "Parça bilgilerini göster"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
#, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">Tüm müzik yayınları, bu örnekleme oranına "
-"dönüÅtürülecek.\n"
-"Bu, ses kartının veya çıktı eklentisinin desteklediÄi\n"
-"azami örnekleme oranı olacaktır.</span>"
+msgid "Album mode"
+msgstr "Albüm: "
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ses Kontrolü</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Biçim Tanıma</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Yazılımın ses kontrolünü kullan"
-
-#: src/audacious/ui_preferences.c:154
#, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Yazılımın ses kontrolünü kullan. Bu, ses sisteminizin sesi kontrol edemediÄi "
-"durumlarda kullanıÅlı olacaktır."
+msgid "Bit depth:"
+msgstr "<b>Biçim Tanıma</b>"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tampon büyüklüÄü:"
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
msgstr ""
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- çoklu ortam dosyalarını çal"
+msgid "Use software volume control (not recommended)"
+msgstr "Yazılımın ses kontrolünü kullan"
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
#, fuzzy
msgid "<b>Replay Gain</b>"
msgstr "<b>Vekil Sunucu Seçenekleri</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
#, fuzzy
msgid "Enable Replay Gain"
msgstr "Vekil sunucu kullanımını etkinleÅtir"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Parça Bilgisi</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Parça bilgilerini göster"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albüm: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
#, fuzzy
msgid "<b>Adjust Levels</b>"
msgstr "<b>Fare tekerleÄi</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Açılır Pencere Bilgisi</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
msgstr ""
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- çoklu ortam dosyalarını çal"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "Vekil sunucu makine adı:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "Vekil sunucu portu:"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "Vekil sunucu kullanıcı adı:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "Vekil sunucu parolası:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>Vekil Sunucu Seçenekleri</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "Vekil sunucu kullanımını etkinleÅtir"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
msgid "Use authentication with proxy"
msgstr "Vekil sunucu ile yetkilendirme kullan"
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
msgid ""
"<span size=\"small\">Changing these settings will require a restart of "
"Audacious.</span>"
@@ -577,15 +544,15 @@ msgstr ""
"<span size=\"small\">Bu ayarların deÄiÅtirilmesi Audacious'un yeniden "
"baÅlatılmasını gerektirecektir.</span>"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
msgstr "Otomatik karakter kodlama bulucu:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "Geri düÅüm karakter kodlaması:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid ""
"List of character encodings used for fall back conversion of metadata. If "
"automatic character encoding detector failed or has been disabled, encodings "
@@ -597,46 +564,46 @@ msgstr ""
"veya etkin deÄilse, bu listedeki kodlamalar parça bilgisi kodlaması olarak "
"varsayılır ve bu kodlamalardan UTF-8'e geri düÅüm dönüÅümü denenir."
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
#, fuzzy
msgid "<b>Behavior</b>"
msgstr "<b>Biçim Tanıma</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "BaÅlatıldıÄında parçayı kaldıÄı yerden oynat"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr ""
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
#, fuzzy
msgid "Clear the playlist when opening files"
msgstr "EÅleÅen girdilerle yeni bir parça listesi oluÅtur"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
#, fuzzy
msgid "Open files in a temporary playlist"
msgstr "Geçici parça listesine yeni dosya ekle"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>Parça Bilgisi</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
msgid "Category"
msgstr "Kategori"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
msgid "Popup Information Settings"
msgstr "Açılır Pencere Bilgisi Ayarları"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
msgid "<b>Cover image retrieve</b>"
msgstr "<b>Kapak resmi getirme</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -645,99 +612,99 @@ msgstr ""
"Albüm kapakları için ararken, Audacious dosya ismindeki belirli kelimeleri "
"kullanır. Bu kelimeleri, altta virgülle ayrılmıŠlistede belirtebilirsiniz."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
msgid "Exclude:"
msgstr "Dahil etme:"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
msgid "Include:"
msgstr "Dahil et:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
msgid "Recursively search for cover"
msgstr "Kapak için özyinelemeli olarak ara"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
msgid "Search depth: "
msgstr "DerinliÄi araÅtır:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
msgid "Use per-file cover"
msgstr "Her dosya için kapak kullan"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
msgid "<b>Miscellaneous</b>"
msgstr "<b>ÃeÅitli</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
msgid "Show Progress bar for the current track"
msgstr "Åuan çalan parça için İlerleme ÃubuÄunu göster"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
msgid "Delay until filepopup comes up: "
msgstr "Açılır pencere açılana kadar bekle: "
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
msgid "<b>Song Display</b>"
msgstr "<b>Parça Gösterimi</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
msgid "Show song numbers"
msgstr ""
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
msgid "Show leading zeroes (02:00 instead of 2:00)"
msgstr ""
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
msgid "Show information about titlestring format"
msgstr "BaÅlık dizisi biçimi hakkında bilgi göster"
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
msgid "TITLE"
msgstr "BAÅLIK"
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
msgid "ARTIST - TITLE"
msgstr "SANATÃI - BAÅLIK"
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
msgid "ARTIST - ALBUM - TITLE"
msgstr "SANATÃI - ALBÃM - BAÅLIK"
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
msgid "ARTIST - ALBUM - TRACK. TITLE"
msgstr "SANATÃI - ALBÃM - PARÃA - BAÅLIK"
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
msgstr "SANATÃI [ ALBÃM ] - PARÃA - BAÅLIK"
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
msgid "ALBUM - TITLE"
msgstr "ALBÃM - BAÅLIK"
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
msgid "Custom"
msgstr "Ãzel"
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
msgid "Custom string:"
msgstr "Ãzel dizi:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
msgid "Title format:"
msgstr "BaÅlık biçimi:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
msgid "<b>Popup Information</b>"
msgstr "<b>Açılır Pencere Bilgisi</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
msgid "Show popup information for playlist entries"
msgstr "Parça listesi girdileri için açılır pencere bilgisini göster"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -747,54 +714,47 @@ msgstr ""
"Pencere, Åarkı baÅlıÄını, albüm adını, türünü, yayınlanma yılını, parça, "
"parça numarasını, uzunluÄunu ve resimi gösterir."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
msgid "Edit settings for popup information"
msgstr "Açılır pencere bilgisi için ayarları düzenle"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Ses Sistemi</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tampon büyüklüÄü:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Mevcut çıkıŠeklentisi:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "GiriÅ eklentisi: %s"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
#, fuzzy
msgid "Transport"
msgstr "Ãevirmenler"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
msgid "Input"
msgstr ""
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
#, fuzzy
msgid "Effect"
msgstr "<b>Efektler</b>"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "Visualization"
msgstr "Canlandırma"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
msgid "General"
msgstr ""
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
msgid "Audacious Preferences"
msgstr "Audacious Seçenekleri"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
#, c-format
msgid "Could not create directory (%s): %s\n"
msgstr "Dizin oluÅturulamadı (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
msgid "Position not found."
msgstr ""
@@ -813,22 +773,24 @@ msgstr "stereo"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr ""
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
#, fuzzy
msgid "_Don't show this message again"
msgstr "Bu uyarıyı bir daha gösterme"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
#, fuzzy
msgid "Rename Playlist"
msgstr "Parça Listesini Kaydet"
@@ -891,11 +853,11 @@ msgstr "Ekolayzırı Göster"
msgid "Preamp"
msgstr ""
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
msgid "Track Number"
msgstr "Parça Numarası"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
msgid "Track Length"
msgstr "Parça UzunluÄu"
@@ -1127,6 +1089,29 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr ""
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Zamana Atla"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Parça Listesi Yükle"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Parça Listesi Yükle"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
#: src/libaudgui/ui_about.c:71
msgid "About Audacious"
msgstr "Audacious Hakkında"
@@ -1188,19 +1173,19 @@ msgstr "A-B Temizle"
msgid "Close on Jump"
msgstr "GeçiÅten sonra kapat"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
msgid "Playlist Manager"
msgstr "Parça Listesi Yöneticisi"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
msgid "Entries"
msgstr "Girdiler"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
msgid "_Rename"
msgstr "_Yeniden adlandır"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
#, fuzzy
msgid "_Close dialog on activating playlist"
msgstr "Açtıktan sonra pencereyi kapat"
@@ -1213,6 +1198,12 @@ msgstr ""
msgid "Add URL"
msgstr ""
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr ""
@@ -1222,25 +1213,25 @@ msgstr ""
msgid "Unrecognized desktop file Version '%s'"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr ""
@@ -1275,6 +1266,45 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
msgid "Show session management options"
msgstr "Pencere yöneticisi dekorasyonunu göster"
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">Tüm müzik yayınları, bu örnekleme oranına "
+#~ "dönüÅtürülecek.\n"
+#~ "Bu, ses kartının veya çıktı eklentisinin desteklediÄi\n"
+#~ "azami örnekleme oranı olacaktır.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Ses Kontrolü</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Yazılımın ses kontrolünü kullan. Bu, ses sisteminizin sesi kontrol "
+#~ "edemediÄi durumlarda kullanıÅlı olacaktır."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Parça Bilgisi</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Açılır Pencere Bilgisi</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Ses Sistemi</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Mevcut çıkıŠeklentisi:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Açık olan tüm Audacious pencerelerini göster"
+
#~ msgid "%s: Unable to open display, exiting.\n"
#~ msgstr "%s: Görüntü açılamıyor, çıkıyor.\n"
@@ -1491,9 +1521,6 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
#~ msgid "No input plugin recognized this file"
#~ msgstr "Hiç bir giriŠeklentisi bu dosyayı tanıyamadı"
-#~ msgid "Input plugin: %s"
-#~ msgstr "GiriÅ eklentisi: %s"
-
#~ msgid ""
#~ "<b><big>No output plugin selected.</big></b>\n"
#~ "You have not selected an output plugin."
@@ -1536,9 +1563,6 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
#~ "Bu, ses kartının veya çıktı eklentisinin desteklediÄi\n"
#~ "azami örnekleme oranı olacaktır.</span>"
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Biçim Tanıma</b>"
-
#~ msgid "Detect file formats by extension."
#~ msgstr "Uzantıya göre dosya biçimini belirle"
@@ -1637,9 +1661,6 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
#~ msgid "Load metadata (tag information) from music files."
#~ msgstr "Parça bilgisini (etiket bilgisi) müzik dosyalarından yükle"
-#~ msgid "Jump to Time"
-#~ msgstr "Zamana Atla"
-
#~ msgid "minutes:seconds"
#~ msgstr "dakika:saniye"
diff --git a/po/uk.po b/po/uk.po
index 32b0f7c..e9ffa86 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,4604 +1,1242 @@
-# Translation of audacious.pot to Ukrainian for Beep Media Player.
-# Copyright (C) 2005 Mykola Lynnyk<definer at users.sf.net>
-# ÐеÑеклад здÑйÑнено на оÑÐ½Ð¾Ð²Ñ Ð¿ÐµÑÐµÐºÐ»Ð°Ð´Ñ XMMS
-# ÐмиÑÑа ÐовалÑова
-# Based on XMMS translation by Dmytro Koval'ov <kov at tokyo.email.ne.jp>
+# Ukrainian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
#
+# Translators:
+# Kostyantyn Fedenko <fedenko at ukr.net>, 2011.
+# NaiLi Rootaerc <theism at mail.ru>, 2012.
+# Rax Garfield (http://biokillaz.com/), 2012.
msgid ""
msgstr ""
-"Project-Id-Version: bmp 0.9.7\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2005-12-17 11:01+0400\n"
-"Last-Translator: Mykola Lynnyk<pydefiner at gmail.com>\n"
-"Language-Team: Ukrainian <linux at linux.org.ua>\n"
-"Language: uk\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-13 11:46+0000\n"
+"Last-Translator: NaiLi Rootaerc <theism at mail.ru>\n"
+"Language-Team: Ukrainian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "ÐоÑÑк ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "ÐнаиÌдено %d ÑаиÌл"
+msgstr[1] "ÐнаиÌдено %d ÑаиÌли"
+msgstr[2] "ÐнаиÌдено %d ÑаиÌлÑв"
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
msgstr " (недопÑÑÑима поÑлÑдовнÑÑÑÑ Ð®Ð½Ñкод)"
-#: src/audacious/credits.c:35
-#, fuzzy
+#: src/audacious/credits.c:37
msgid "Core developers:"
-msgstr "РазÑобники:"
+msgstr "ÐÑÐ½Ð¾Ð²Ð½Ñ ÑозÑобники:"
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
msgid "Graphics:"
-msgstr ""
+msgstr "ÐÑаÑÑка:"
-#: src/audacious/credits.c:54
-#, fuzzy
+#: src/audacious/credits.c:56
msgid "Default skin:"
-msgstr "ÐÑновний (%s)"
+msgstr "СÑандаÑÑна обкладинка:"
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
msgid "Plugin development:"
-msgstr ""
+msgstr "РозÑобка модÑлÑв:"
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
msgid "Patch authors:"
-msgstr ""
+msgstr "ÐвÑоÑи паÑÑÑв:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:131
msgid "1.x developers:"
-msgstr "РазÑобники:"
+msgstr "РозÑобники веÑÑÑÑ 1.x:"
-#: src/audacious/credits.c:148
-#, fuzzy
+#: src/audacious/credits.c:153
msgid "BMP Developers:"
-msgstr "РазÑобники:"
+msgstr "РозÑобники BMP:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:185
msgid "Belarusian:"
-msgstr "УгоÑÑÑкий"
+msgstr "ÐÑлоÑÑÑÑка:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
msgid "Basque:"
-msgstr ""
+msgstr "ÐаÑкÑÑка:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
msgid "Brazilian Portuguese:"
-msgstr ""
+msgstr "ÐÑазилÑÑÑка поÑÑÑгалÑÑÑка:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
msgid "Breton:"
-msgstr ""
+msgstr "ÐÑеÑонÑÑка:"
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:199
msgid "Bulgarian:"
-msgstr "УгоÑÑÑкий"
+msgstr "ÐолгаÑÑÑка:"
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:202
msgid "Catalan:"
-msgstr "ÐÑалÑйÑÑкий:"
+msgstr "ÐаÑалонÑÑка:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:206
msgid "Chinese:"
-msgstr "ÐиÑайÑÑкий:"
+msgstr "ÐиÑаиÌÑÑка:"
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:209
msgid "Croatian:"
-msgstr "ÐнаÑ
одженнÑ:"
+msgstr "ХоÑваÑÑÑка:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
msgid "Czech:"
-msgstr "ЧеÑÑкий:"
+msgstr "ЧеÑÑка:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
msgid "Dutch:"
-msgstr "ÐолладÑÑкий:"
+msgstr "ÐÑдеÑландÑÑка:"
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:219
msgid "Estonian:"
-msgstr "Ð ÑмÑнÑÑкий:"
+msgstr "ÐÑÑонÑÑка:"
-#: src/audacious/credits.c:215
-#, fuzzy
+#: src/audacious/credits.c:222
msgid "Finnish:"
-msgstr "ÐÑпанÑÑкий:"
+msgstr "ФÑнÑÑка:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
msgid "French:"
-msgstr "ФÑанÑÑзÑкий:"
+msgstr "ФÑанÑÑзÑка:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
msgid "German:"
-msgstr "ÐÑмеÑÑкий:"
+msgstr "ÐÑмеÑÑка:"
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:240
msgid "Georgian:"
-msgstr "ÐÑмеÑÑкий:"
+msgstr "ÐÑÑзинÑÑка:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
msgid "Greek:"
-msgstr "ÐÑеÑÑкий:"
+msgstr "ÐÑеÑÑка:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
msgid "Hindi:"
-msgstr ""
+msgstr "Ð¥ÑндÑ:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
msgid "Hungarian:"
-msgstr "УгоÑÑÑкий"
+msgstr "УгоÑÑÑка:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
msgid "Italian:"
-msgstr "ÐÑалÑйÑÑкий:"
+msgstr "ÐÑалÑиÌÑÑка:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
msgid "Japanese:"
-msgstr "ЯпонÑÑкий:"
+msgstr "ЯпонÑÑка:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
msgid "Korean:"
-msgstr "ÐоÑейÑÑкий:"
+msgstr "ÐоÑеиÌÑÑка:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
msgid "Latvian:"
-msgstr "ÐнаÑ
одженнÑ:"
+msgstr "ÐаÑиÑÑка:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
msgid "Lithuanian:"
-msgstr "ÐиÑовÑÑкий:"
+msgstr "ÐиÑовÑÑка:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
msgid "Macedonian:"
-msgstr "ÐакедонÑÑкий"
+msgstr "ÐакедонÑÑка:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "ÐÑпанÑÑка мова, ÐекÑика:"
+
+#: src/audacious/credits.c:280
msgid "Polish:"
-msgstr "ÐолÑÑкий:"
+msgstr "ÐолÑÑÑка:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
msgid "Portuguese:"
-msgstr "ÐоÑÑ:"
+msgstr "ÐоÑÑÑгалÑÑÑка:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
msgid "Romanian:"
-msgstr "Ð ÑмÑнÑÑкий:"
+msgstr "Ð ÑмÑнÑÑка:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
msgid "Russian:"
-msgstr "РоÑÑйÑÑкий:"
+msgstr "РоÑÑиÌÑÑка:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
msgid "Serbian (Latin):"
-msgstr ""
+msgstr "СеÑбÑÑка (лаÑиниÑÑ):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "СеÑбÑÑка (киÑилиÑÑ):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
msgid "Simplified Chinese:"
-msgstr ""
+msgstr "СпÑоÑена киÑаиÌÑÑка:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
msgid "Slovak:"
-msgstr "СловаÑÑкий"
+msgstr "СловаÑÑка:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
msgid "Spanish:"
-msgstr "ÐÑпанÑÑкий:"
+msgstr "ÐÑпанÑÑка:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
msgid "Swedish:"
-msgstr "ШведÑÑкий:"
+msgstr "ШведÑÑка:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
msgid "Traditional Chinese:"
-msgstr ""
+msgstr "ТÑадиÑÑиÌна киÑаиÌÑÑка:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
msgid "Turkish:"
-msgstr ""
+msgstr "ТÑÑеÑÑка:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
msgid "Ukrainian:"
-msgstr "УкÑаÑнÑÑкий:"
+msgstr "УкÑаÑÌнÑÑка:"
-#: src/audacious/credits.c:316
-msgid "Welsh:"
-msgstr "ÐаллÑйÑÑкий:"
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "ÐâÑÑнамÑÑка:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "ÐаванÑажии ÑпиÑок пÑогÑаваннÑ"
+#: src/audacious/credits.c:341
+msgid "Welsh:"
+msgstr "ÐаллÑиÌÑÑка:"
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Ðе вдалоÑÑ ÑмпоÑÑÑваÑи Winamp EQF ÑаиÌл '%s'"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
-msgstr "ÐеÑейÑи до попеÑеднÑÐ¾Ñ Ð¿ÑÑÐ½Ñ Ñ ÑпиÑкÑ"
+msgstr "ÐеÑейÑи до попеÑеднÑÐ¾Ñ Ð´Ð¾ÑÑжки Ñ ÑпиÑкÑ"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "ÐоÑаÑи пÑогÑаваÑи поÑоÑний ÑпиÑок"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
msgstr "ÐÑизÑпиниÑи поÑоÑÐ½Ñ Ð¿ÑÑнÑ"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
msgstr "ÐÑпиниÑи поÑоÑÐ½Ñ Ð¿ÑÑнÑ"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
msgstr "ÐÑизÑпиниÑи, ÑкÑо Ñо-небÑÑÑ Ð¿ÑогÑаÑÑÑÑÑ, в ÑнÑÐ¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð¿ÑогÑаваÑи"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
-msgstr "ÐеÑейÑи до наÑÑÑÐ¿Ð½Ð¾Ñ Ð¿ÑÑÐ½Ñ Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
+msgstr "ÐеÑейÑи до наÑÑÑÐ¿Ð½Ð¾Ñ Ð´Ð¾ÑÑжки Ñ ÑпиÑÐºÑ Ð²ÑдÑвоÑеннÑ"
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "/ÐеÑейÑи до ÑайлÑ"
+msgstr "ÐоказаÑи дÑалог пеÑеÑ
Ð¾Ð´Ñ Ð´Ð¾ ÑайлÑ"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
+msgstr "ÐодаÑи Ñайли до ÑпиÑÐºÑ Ð²ÑдÑвоÑеннÑ"
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
-msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
+msgstr "ÐодаÑи Ð½Ð¾Ð²Ñ Ñайли до ÑимÑаÑового ÑпиÑÐºÑ Ð²ÑдÑвоÑеннÑ"
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
msgid "Display the main window"
-msgstr "ÐоказаÑи головне вÑкно."
-
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
+msgstr "ÐоказаÑи головне вÑкно"
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
msgid "Show version"
-msgstr "/ÐоказаÑи ÑедакÑÐ¾Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
+msgstr "ÐоказаÑи веÑÑÑÑ"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "ÐÑÑкÑваÑи повÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñо налагодженнÑ"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Headless-Ñежим (Ñк демон Ñ Ð±ÐµÐ· X11, беÑа)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
-msgstr ""
+msgstr "ФÐÐÌÐ..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
-msgstr ""
+msgstr "- пÑогÑаÑи мÑлÑÑимедÑÐ¹Ð½Ñ Ñайли"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
+"%s: %s\n"
+"СпÑобÑйÑе `%s --help' Ð´Ð»Ñ Ð¾ÑÑÐ¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÐ»Ð°Ð´Ð½ÑÑого опиÑÑ.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
msgid "Audacious"
-msgstr ""
+msgstr "Audacious"
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "Ðе знайдено Ð´ÐµÐºÐ¾Ð´ÐµÑ Ð´Ð»Ñ %s."
-#: src/audacious/playback.c:519
-#, fuzzy
-msgid "Buffering ..."
-msgstr "ÐÑÑеÑ"
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Ðеможливо %s %s: ÑозÑиÑÐµÐ½Ð½Ñ ÑÐ°Ð¹Ð»Ñ Ð½Ðµ пÑдÑÑимÑÑÑÑÑÑ."
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "ÐбеÑегÑи ÑпиÑок пÑогÑаваннÑ"
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "збеÑегÑи"
-#: src/audacious/ui_preferences.c:88
-#, fuzzy
-msgid "Audio"
-msgstr "ÐÑо Audacious"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "заванÑажиÑи"
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ÐÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿Ñи пÑогÑаваннÑ"
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Ðовий ÑпиÑок вÑдÑвоÑеннÑ"
-#: src/audacious/ui_preferences.c:90
-msgid "Network"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "ÐаÑаз вÑдÑвоÑÑÑÑÑÑÑ"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
msgstr ""
+"СпиÑок вÑдÑвоÑÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾ вÑдÑоÑÑÑваÑи, поки ÑканÑÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑаданиÑ
ÑÑÐ¸Ð²Ð°Ñ "
+"або вимкнено."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "ÐвÑк"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "ÐеÑежа"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
-msgstr "СпиÑок пÑогÑаваннÑ"
+msgstr "СпиÑок вÑдÑвоÑеннÑ"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
msgstr "ÐодÑлÑ"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
msgid "Artist"
msgstr "ÐиконавеÑÑ"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
msgid "Album"
msgstr "ÐлÑбом"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "Ðаголовок"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжки"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
msgid "Genre"
msgstr "СÑилÑ"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "Ðм'Ñ ÑайлÑ"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "ШлÑÑ
до ÑайлÑ"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "ÐаÑа"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
msgid "Year"
msgstr "Ð Ñк"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
msgstr "ÐоменÑаÑ"
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
-msgstr "/ÐакÑиÑи"
+msgstr "Ðодек"
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
msgstr "ЯкÑÑÑÑ"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
msgstr "ÐÑÑого"
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "ÐÑабÑÑка"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "ÐалÑÑйÑÑÐºÑ Ð¼Ð¾Ð²Ð¸"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "ÐиÑайÑÑка"
+
#: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "ЯпонÑÑкий:"
+msgid "Greek"
+msgstr "ÐÑеÑÑка"
#: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "ЯпонÑÑкий:"
+msgid "Hebrew"
+msgstr "ÐвÑиÑ"
#: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "ÐиÑайÑÑкий:"
+msgid "Japanese"
+msgstr "ЯпонÑÑка"
#: src/audacious/ui_preferences.c:118
-#, fuzzy
msgid "Korean"
-msgstr "ÐоÑейÑÑкий:"
+msgstr "ÐоÑейÑÑка"
#: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "РоÑÑйÑÑкий:"
+msgid "Polish"
+msgstr "ÐолÑÑÑка"
#: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "ÐÑеÑÑкий:"
+msgid "Russian"
+msgstr "РоÑÑйÑÑка"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "ТайванÑÑка"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
-msgstr ""
+msgstr "ТÑÑеÑÑка"
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "ÐолÑÑкий:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "ÐелÑÑÑÑка"
-
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "СÑилÑ"
-
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "ÐÑÑова ÑаÑÑоÑа:"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Режим алÑбомÑ"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>ÐаÑамеÑÑи виводÑ</b>"
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "ÐеÑÑÐ²Ð°Ð½Ð½Ñ Ð³ÑÑнÑÑÑÑ:"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "ÐмплÑÑÑдна ÑозÑÑднÑÑÑÑ:"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ÐÑогÑамне кеÑÑÐ²Ð°Ð½Ð½Ñ Ð³ÑÑнÑÑÑÑ"
+msgid "Buffer size:"
+msgstr "РозмÑÑ Ð±ÑÑеÑа:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+msgid "ms"
+msgstr "мÑ"
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "ÐÑогÑамно кеÑÑваÑи гÑÑнÑÑÑÑ (не Ñекомендовано)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
+msgstr "<b>Replay Gain</b>"
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
-msgstr "ÐмикнÑÑи пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿ÑогÑаваннÑ"
+msgstr "УвÑмкнÑÑи Replay Gain"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ÐнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/ÐнÑоÑмаÑÑÑ Ð¿Ñо пÑÑнÑ"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ÐлÑбом"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "ÐапобÑгаÑи зÑÑÐ·Ð°Ð½Ð½Ñ (Ñекомендовано)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>ÐолеÑо миÑÑ</b>"
+msgstr "<b>РегÑлÑваÑи ÑÑвнÑ</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "ÐÑдÑилÑваÑи вÑÑ Ñайли:"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "дÐ"
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "ÐозволиÑи попеÑÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð¿ÐµÑеÑкакÑÐ²Ð°Ð½Ð½Ñ Ð·Ð²ÑкÑ"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "ÐÑдÑилÑваÑи непознаÑÐµÐ½Ñ Ñайли:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
-msgstr ""
+msgstr "ÐдÑеÑа пÑокÑÑ-ÑеÑвеÑа:"
-#: src/audacious/ui_preferences.c:181
-#, fuzzy
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
-msgstr "ÐÑокÑÑ:"
+msgstr "ÐоÑÑ:"
-#: src/audacious/ui_preferences.c:185
-#, fuzzy
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
msgstr "Ðм'Ñ ÐºÐ¾ÑиÑÑÑваÑа:"
-#: src/audacious/ui_preferences.c:186
-#, fuzzy
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
msgstr "ÐаÑолÑ:"
-#: src/audacious/ui_preferences.c:190
-#, fuzzy
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
-msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
+msgstr "<b>ÐонÑÑгÑÑаÑÑÑ Ð¿ÑокÑÑ</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
-msgstr ""
+msgstr "ÐикоÑиÑÑовÑваÑи пÑокÑÑ"
-#: src/audacious/ui_preferences.c:194
-#, fuzzy
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
-msgstr "ÐикоÑиÑÑовÑваÑи авÑенÑикаÑÑÑ"
-
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
+msgstr "ÐикоÑиÑÑовÑваÑи авÑенÑиÑÑкаÑÑÑ"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr ""
+msgstr "ÐвÑомаÑиÑне визнаÑÐµÐ½Ð½Ñ ÐºÐ¾Ð´ÑÐ²Ð°Ð½Ð½Ñ ÑимволÑв длÑ:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
-msgstr ""
+msgstr "СÑандаÑÑне кодÑÐ²Ð°Ð½Ð½Ñ ÑимволÑв:"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "ÐÑÑова ÑаÑÑоÑа:"
+msgstr "<b>ÐоведÑнка</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
-msgstr ""
+msgstr "ÐÑодовжиÑи вÑдÑвоÑÐµÐ½Ð½Ñ Ð¿Ñд ÑÐ°Ñ Ð·Ð°Ð¿ÑÑкÑ"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "ÐаздалегÑдÑ, коли поÑоÑна пÑÑÐ½Ñ Ð±Ñде видалена"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
+msgstr "ÐÑиÑаÑи ÑпиÑок вÑдÑвоÑÐµÐ½Ð½Ñ Ð¿Ñд ÑÐ°Ñ Ð²ÑдкÑиÑÑÑ ÑайлÑв"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
+msgstr "ÐÑдкÑиваÑи Ñайли Ñ ÑимÑаÑÐ¾Ð²Ð¾Ð¼Ñ ÑпиÑÐºÑ Ð²ÑдÑвоÑеннÑ"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
-msgstr "<b>ÐнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ</b>"
+msgstr "<b>ÐеÑаданÑ</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ðе заванÑажÑваÑи меÑÐ°Ð´Ð°Ð½Ñ Ð´Ð¾ÑÑжок до вÑдÑвоÑеннÑ"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "ÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ÐÐÐÐÐÐÐÐЦЬ - ÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ÐÐÐÐÐÐÐÐЦЬ - ÐÐЬÐÐÐ - ÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ÐÐÐÐÐÐÐÐЦЬ - ÐÐЬÐÐÐ - ÐÐÐ ÐÐÐÐ. ÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ÐÐÐÐÐÐÐÐЦЬ [ ÐÐЬÐÐÐ ] ÐÐÐ ÐÐÐÐ. ÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÐÐЬÐÐÐ - ÐÐÐÐÐ"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
msgstr "ÐаÑегоÑÑÑ"
-#: src/audacious/ui_preferences.c:815
-#, fuzzy
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
-msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
+msgstr "ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ ÑпливаÑÑÐ¾Ñ ÑнÑоÑмаÑÑÑ"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr ""
+msgstr "<b>ÐоÑÑк обкладинки</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
+"ÐÑд ÑÐ°Ñ Ð¿Ð¾ÑÑÐºÑ Ð¾Ð±ÐºÐ»Ð°Ð´Ð¸Ð½ÐºÐ¸ Audacious ÑÑÐºÐ°Ñ Ð¿ÐµÐ²Ð½Ñ Ñлова в ÑменаÑ
ÑайлÑв. Ðи "
+"можеÑе вказаÑи ÑÑ Ñлова Ñ ÑпиÑÐºÑ Ð½Ð¸Ð¶Ñе, ÑоздÑливÑи ÑÑ
комами."
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
-msgstr ""
+msgstr "ÐклÑÑаÑÑи:"
-#: src/audacious/ui_preferences.c:853
-#, fuzzy
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
-msgstr "ÐезалежнÑ"
+msgstr "ÐиклÑÑаÑÑи:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
-msgstr ""
+msgstr "РекÑÑÑивний поÑÑк обкладинки"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
-msgstr ""
+msgstr "Ðлибина поÑÑкÑ:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
-msgstr ""
+msgstr "ШÑкаÑи Ð¾Ð±ÐºÐ»Ð°Ð´Ð¸Ð½ÐºÑ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ ÑайлÑ"
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Ð Ñзне</b>"
+msgstr "<b>Ð Ñзне</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "ÐоказÑваÑи ÑндикаÑÐ¾Ñ Ð´Ð»Ñ Ð¿Ð¾ÑоÑÐ½Ð¾Ñ Ð´Ð¾ÑÑжки"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
-msgstr ""
+msgstr "ÐаÑÑимка до поÑви ÑпливаÑÑÐ¾Ñ ÑнÑоÑмаÑÑÑ:"
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "ÐлаÑÐ½Ñ Ð½Ð°Ð»Ð°ÑÑÑваннÑ"
-#: src/audacious/ui_preferences.c:1459
-#, fuzzy
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
-msgstr "<b>ÐÑдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ пÑÑни</b>"
+msgstr "<b>ÐÑдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð¿ÑÑнÑ</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr ""
+msgstr "ÐоказÑваÑи Ð½Ð¾Ð¼ÐµÑ Ð¿ÑÑнÑ"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "ÐоказÑваÑи нÑлÑÐ¾Ð²Ñ ÑÑаÑÑÑ ÑозÑÑди (02:00 замÑÑÑÑ 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
-msgstr "ÐоказаÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо ÑÑдок назви"
-
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
+msgstr "ÐоказÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо ÑоÑÐ¼Ð°Ñ Ð½Ð°Ð·Ð²Ð¸"
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "ÐÑобливий ÑÑдок:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
-msgstr "ÐÑобливий ÑÑдок:"
+msgstr "ÐлаÑний ÑоÑмаÑ:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
msgstr "ФоÑÐ¼Ð°Ñ Ð½Ð°Ð·Ð²Ð¸:"
-#: src/audacious/ui_preferences.c:1545
-#, fuzzy
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
-msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
+msgstr "<b>СпливаÑÑа ÑнÑоÑмаÑÑÑ</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
-msgstr ""
+msgstr "ÐоказÑваÑи ÑпливаÑÑÑ ÑнÑоÑмаÑÑÑ Ð´Ð»Ñ Ð´Ð¾ÑÑжок ÑпиÑÐºÑ Ð²ÑдÑвоÑеннÑ"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
+"Ð£Ð¼Ð¸ÐºÐ°Ñ ÑпливаÑÑе вÑкно з ÑнÑоÑмаÑÑÑÑ Ð¿Ñо вибÑÐ°Ð½Ñ Ð´Ð¾ÑÑÐ¶ÐºÑ Ñ ÑпиÑÐºÑ "
+"вÑдÑвоÑеннÑ. ÐÑкно мÑÑÑиÑÑ Ð½Ð°Ð·Ð²Ñ Ð¿ÑÑнÑ, алÑбомÑ, жанÑ, ÑÑк, Ð½Ð¾Ð¼ÐµÑ Ð´Ð¾ÑÑжки, "
+"ÑÑивалÑÑÑÑ Ð¿ÑÑÐ½Ñ Ð¹ Ð¾Ð±ÐºÐ»Ð°Ð´Ð¸Ð½ÐºÑ Ð°Ð»ÑбомÑ."
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "<b>ÐопеÑÐµÐ´Ð½Ñ ÑÑÑановки</b>"
-
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "РозмÑÑ Ð±ÑÑеÑа (кбайÑ):"
+msgstr "ÐмÑниÑи налаÑÑÑÐ²Ð°Ð½Ð½Ñ ÑпливаÑÑÐ¾Ñ ÑнÑоÑмаÑÑÑ"
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "_ÐоÑоÑний модÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ Ð·Ð²ÑкÑ:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "ÐодÑÐ»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "ÐеÑекладаÑÑ"
+msgstr "ÐаÑоби ÑполÑÑеннÑ"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "ÐÑ
Ñд"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>ÐÑекÑи</b>"
+msgstr "ÐÑекÑи"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "/Режим _вÑзÑалÑзаÑÑÑ"
+msgstr "ÐизÑализаÑиÑ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "ÐагалÑна"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Audacious"
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:120
+#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "Ðе Ð¼Ð¾Ð¶Ñ ÑÑвоÑиÑи диÑекÑоÑÑÑ (%s): %s"
+msgstr "Ðе Ð¼Ð¾Ð¶Ñ ÑÑвоÑиÑи диÑекÑоÑÑÑ (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr ""
+msgstr "ÐозиÑÑÑ Ð½Ðµ знайдено."
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
-msgstr ""
+msgstr "ÐÑÑого не пÑогÑаÑÑÑÑÑ."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "ÐвÑковий CD, доÑÑжка %s"
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
msgid "Mono"
msgstr "Ðоно"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
msgstr "СÑеÑео"
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Ðанали:"
-
-#: src/libaudgui/confirm.c:65
+#: src/libaudcore/tuple.c:540
#, c-format
-msgid ""
-"Are you sure you want to close %s? If you do, any changes made since the "
-"playlist was exported will be lost."
-msgstr ""
-
-#: src/libaudgui/confirm.c:77
-#, fuzzy
-msgid "_Don't show this message again"
-msgstr "ÐÑлÑÑе не показÑваÑи Ñе попеÑедженнÑ"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d канал"
+msgstr[1] "%d канали"
+msgstr[2] "%d каналÑв"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "ÐвÑоÑи"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "ÐеÑекладаÑÑ"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "ÐÑо Audacious"
+
+#: src/libaudgui/confirm.c:76
+#, c-format
+msgid ""
+"Are you sure you want to close %s? If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"Ðи впевненÑ, Ñо Ñ
оÑеÑе закÑиÑи %s? ЯкÑо Ñак, Ñо вÑÑ Ð·Ð¼Ñни з моменÑÑ ÐµÐºÑпоÑÑÑ"
+" ÑпиÑÐºÑ Ð²ÑдÑвоÑÐµÐ½Ð½Ñ Ð±ÑдÑÑÑ Ð²ÑÑаÑенÑ."
+
+#: src/libaudgui/confirm.c:89
+msgid "_Don't show this message again"
+msgstr "ÐÑлÑÑе не показÑваÑи Ñе попеÑедженнÑ"
+
+#: src/libaudgui/confirm.c:126
msgid "Rename Playlist"
-msgstr "ÐбеÑегÑи ÑпиÑок пÑогÑаваннÑ"
+msgstr "ÐеÑейменÑваÑи ÑпиÑок пÑогÑаваннÑ"
-#: src/libaudgui/effects-menu.c:76
-#, fuzzy
+#: src/libaudgui/effects-menu.c:74
msgid "settings ..."
-msgstr "УÑÑановки мÑкÑеÑа:"
+msgstr "налаÑÑÑÐ²Ð°Ð½Ð½Ñ ..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:51
msgid "_Enable"
-msgstr "Ðмикнено"
+msgstr "УвÑмкнÑÑи"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "31 Hz"
-msgstr ""
+msgstr "31 ÐÑ"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
msgid "63 Hz"
-msgstr ""
+msgstr "63 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "125 Hz"
-msgstr ""
+msgstr "125 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "250 Hz"
-msgstr ""
+msgstr "250 ÐÑ"
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
msgid "500 Hz"
-msgstr ""
+msgstr "500 ÐÑ"
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
msgid "1 kHz"
-msgstr "1:1 (44 кÐÑ)"
+msgstr "1 кÐÑ"
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
msgid "2 kHz"
-msgstr "1:2 (22 кÐÑ)"
+msgstr "2 кÐÑ"
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "4 kHz"
-msgstr "1:1 (44 кÐÑ)"
+msgstr "4 кÐÑ"
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "8 kHz"
-msgstr "1:1 (44 кÐÑ)"
+msgstr "8 кÐÑ"
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
msgid "16 kHz"
-msgstr "1:1 (44 кÐÑ)"
+msgstr "18 кÐÑ"
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
msgid "Equalizer"
msgstr "ÐквалайзеÑ"
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:146
msgid "Preamp"
-msgstr "ÐÑÑÑ"
+msgstr ""
+"ÐопеÑеднÑ\n"
+"пÑдÑиленнÑ"
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:207
msgid "Track Number"
msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжкии"
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:209
msgid "Track Length"
-msgstr "Ðовжина доÑÑжки:"
+msgstr "Ðовжина доÑÑжки"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
msgid "Acid Jazz"
-msgstr "ÐиÑлоÑний джаз"
+msgstr "Acid Jazz"
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
msgid "Acid Rock"
-msgstr "ТÑжкий Ñок"
+msgstr "Acid Rock"
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
msgid "Ambient"
msgstr "Ambient"
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
msgid "Bebop"
-msgstr "ÐÑбоп"
+msgstr "Bebop"
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
msgid "Bluegrass"
-msgstr "ÐлакиÑна ÑÑава"
+msgstr "Bluegrass"
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:80
msgid "Blues"
-msgstr "ÐлÑз"
+msgstr "Blues"
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
msgid "Chamber Music"
-msgstr "ÐамеÑна мÑзика"
+msgstr "Chamber Music"
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
msgid "Classical"
-msgstr "ÐлаÑиÑна"
+msgstr "Classical"
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
msgid "Country"
-msgstr "ÐанÑÑÑ"
+msgstr "Country"
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
msgid "Death Metal"
-msgstr "Ðез-меÑал"
+msgstr "Death Metal"
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
msgid "Disco"
-msgstr "ÐиÑко"
+msgstr "Disco"
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
msgid "Easy Listening"
-msgstr "Ðегка"
+msgstr "Easy Listening"
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
msgid "Folk"
-msgstr "Фолк"
+msgstr "Folk"
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
msgid "Funk"
-msgstr "Фанк"
+msgstr "Funk"
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
msgid "Gangsta Rap"
-msgstr "ЧоÑний Ñеп"
+msgstr "Gangsta Rap"
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
msgid "Gospel"
-msgstr "ÐÑалм"
+msgstr "Gospel"
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
msgid "Grunge"
-msgstr "ÐÑанж"
+msgstr "Grunge"
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
msgid "Hard Rock"
-msgstr "ТÑжкий Ñок"
+msgstr "Hard Rock"
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
msgid "Heavy Metal"
-msgstr "ТÑжкий меÑал"
+msgstr "Heavy Metal"
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
msgid "Hip-hop"
-msgstr "Ð¥Ñп-Хоп"
+msgstr "Hip-hop"
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
msgid "House"
-msgstr "ÐÑм"
+msgstr "House"
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
msgid "Jazz"
-msgstr "Ðжаз"
+msgstr "Jazz"
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
msgid "Jungle"
-msgstr "Ðжангл"
+msgstr "Jungle"
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
msgid "Metal"
-msgstr "ÐеÑал"
+msgstr "Metal"
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
msgid "New Age"
-msgstr "ÐÑÑ Ðйдж"
+msgstr "New Age"
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
msgid "New Wave"
-msgstr "Ðова Ñ
вилÑ"
+msgstr "New Wave"
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
msgid "Noise"
-msgstr "ШÑм"
+msgstr "Noise"
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
msgid "Pop"
-msgstr "Ðоп"
+msgstr "Pop"
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
msgid "Punk Rock"
-msgstr "Ðанк-Ñок"
+msgstr "Punk Rock"
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
msgid "Rap"
-msgstr "Реп"
+msgstr "Rap"
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
msgid "Reggae"
-msgstr "РеÒÒÑ"
+msgstr "Reggae"
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
msgid "Rock"
-msgstr "Рок"
+msgstr "Rock"
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
msgid "Rock and Roll"
-msgstr "Рок-н-Ñол"
+msgstr "Rock and Roll"
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
msgid "Ska"
-msgstr "Ска"
+msgstr "Ska"
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
msgid "Soul"
-msgstr "ÐÑÑа"
+msgstr "Soul"
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
msgid "Swing"
-msgstr "СвÑнг"
+msgstr "Swing"
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
msgid "Techno"
-msgstr "ТеÑ
но"
+msgstr "Techno"
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
msgid "Trip-hop"
-msgstr "ТÑÑп-Хоп"
+msgstr "Trip-hop"
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"medium\"><b>ÐедÑа</b></span>"
+msgstr "<span size=\"small\">невÑдомо</span>"
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
msgid "Metadata updated successfully"
-msgstr ""
+msgstr "ÐеÑÐ°Ð´Ð°Ð½Ñ ÑÑпÑÑно оновленÑ"
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
msgid "Metadata updating failed"
-msgstr ""
+msgstr "Ðе вдалоÑÑ Ð¾Ð½Ð¾Ð²Ð¸Ñи меÑаданÑ"
-#: src/libaudgui/infowin.c:318
-#, fuzzy
+#: src/libaudgui/infowin.c:320
msgid "Track Information"
-msgstr "ÐÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ÑÑжок:"
+msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо доÑÑжкÑ"
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:352
msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
+msgstr "<span size=\"small\">ФоÑмаÑ:</span>"
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:356
msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"medium\"><b>ÐедÑа</b></span>"
+msgstr "<span size=\"small\">ЯкÑÑÑÑ:</span>"
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
+msgstr "<span size=\"small\">ÐÑÑÑейÑ:</span>"
-#: src/libaudgui/infowin.c:387
-#, fuzzy
+#: src/libaudgui/infowin.c:389
msgid "<span size=\"small\">Title</span>"
-msgstr "<span size=\"medium\"><b>ÐедÑа</b></span>"
+msgstr "<span size=\"small\">Ðазва</span>"
-#: src/libaudgui/infowin.c:399
-#, fuzzy
+#: src/libaudgui/infowin.c:401
msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"medium\"><b>ÐивÑд звÑкÑ</b></span>"
+msgstr "<span size=\"small\">ÐиконавеÑÑ</span>"
-#: src/libaudgui/infowin.c:411
-#, fuzzy
+#: src/libaudgui/infowin.c:413
msgid "<span size=\"small\">Album</span>"
-msgstr "<span size=\"medium\"><b>ÐивÑд звÑкÑ</b></span>"
+msgstr "<span size=\"small\">ÐлÑбом</span>"
-#: src/libaudgui/infowin.c:423
-#, fuzzy
+#: src/libaudgui/infowin.c:425
msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
+msgstr "<span size=\"small\">ÐоменÑаÑ</span>"
-#: src/libaudgui/infowin.c:435
-#, fuzzy
+#: src/libaudgui/infowin.c:437
msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
+msgstr "<span size=\"small\">ÐанÑ</span>"
-#: src/libaudgui/infowin.c:456
-#, fuzzy
+#: src/libaudgui/infowin.c:458
msgid "<span size=\"small\">Year</span>"
-msgstr "<span size=\"medium\"><b>ÐедÑа</b></span>"
+msgstr "<span size=\"small\">Ð Ñк</span>"
-#: src/libaudgui/infowin.c:467
-#, fuzzy
+#: src/libaudgui/infowin.c:469
msgid "<span size=\"small\">Track Number</span>"
-msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
+msgstr "<span size=\"small\">ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжки</span>"
-#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#: src/libaudgui/infowin.c:548
+#, c-format
msgid "%d kb/s"
-msgstr "%d кÐÑÑ/Ñ"
+msgstr "%d кб/Ñ"
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
#, c-format
msgid "No info available for %s.\n"
-msgstr ""
+msgstr "ÐнÑоÑмаÑÑÑ Ð½ÐµÐ´Ð¾ÑÑÑпна Ð´Ð»Ñ %s.\n"
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "ÐÑо Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "ÐеÑейÑи до ÑаÑÑ"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "ÐвÑоÑи"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "Ñ
Ñ
:ÑÑ"
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "ÐеÑекладаÑÑ"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "ÐкÑпоÑÑÑваÑи ÑпиÑок вÑдÑвоÑеннÑ"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "ÐмпоÑÑÑваÑи ÑпиÑок вÑдÑвоÑеннÑ"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "ÐеÑезапиÑаÑи %s?"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "ÐеÑÑÐ²Ð°Ð½Ð½Ñ ÑеÑгоÑ"
+
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "ÐÑдкÑиÑи Ñайли"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "ÐодаÑи Ñайли"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "ÐакÑиÑи вÑкно пÑÑÐ»Ñ Ð²ÑдкÑиÑÑÑ"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "ÐакÑиÑи вÑкно пÑÑÐ»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Ð_илÑÑиÑи Ð·Ñ ÑпиÑкÑ"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
msgid "_Queue"
msgstr "_ÐодаÑи до ÑпиÑкÑ"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Ð_илÑÑиÑи Ð·Ñ ÑпиÑкÑ"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
msgstr "ÐеÑейÑи до доÑÑжки"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
msgid "Filter: "
msgstr "ФÑлÑÑÑ: "
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:282
msgid "_Filter:"
-msgstr "ФÑлÑÑÑ: "
+msgstr "_ФÑлÑÑÑ: "
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
msgid "Remember"
-msgstr ""
+msgstr "Ðапам'ÑÑаÑи"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:299
msgid "Clea_r"
-msgstr "/ÐÑиÑÑиÑи ÑеÑгÑ"
+msgstr "ÐÑиÑÑиÑи"
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:319
msgid "Close on Jump"
-msgstr "ÐакÑиÑи вÑкно пÑÑÐ»Ñ Ð²ÑдкÑиÑÑÑ"
+msgstr "ÐакÑиÑи пÑÑÐ»Ñ Ð¿ÐµÑеÑ
одÑ"
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "/Ðе пÑоÑÑваÑиÑÑ Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
+msgstr "ÐÐµÐ½ÐµÐ´Ð¶ÐµÑ ÑпиÑкÑв"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
-msgstr ""
+msgstr "ÐлеменÑи"
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
-msgstr "Ðм'Ñ ÑайлÑ"
+msgstr "ÐеÑейменÑваÑи"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "ÐакÑиÑи вÑкно пÑÑÐ»Ñ Ð²ÑдкÑиÑÑÑ"
+msgstr "ÐакÑиÑи вÑкно пÑÑÐ»Ñ Ð²Ð¸Ð±Ð¾ÑÑ ÑпиÑкÑ"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Open URL"
-msgstr ""
+msgstr "ÐÑдкÑиÑи адÑеÑÑ"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
msgid "Add URL"
+msgstr "ÐодаÑи адÑеÑÑ"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
+"\n"
+"(ÐаÑÑÑÐ¿Ð½Ñ Ð¿Ð¾Ð²ÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±Ñли пÑиÑ
ованÑ.)"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Файл не Ñ ÐºÐ¾ÑекÑним Ñайлом .desktop "
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: не ÑозпÑзнано паÑамеÑÑÑ `--%s'\n"
+msgstr "ÐевÑдома веÑÑÑÑ desktop ÑÐ°Ð¹Ð»Ñ '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
msgid "Starting %s"
-msgstr "ÐÑалÑйÑÑкий:"
+msgstr "ÐапÑÑкаÑÑÑÑÑ %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "ÐÑогÑама пÑдÑÑимÑÑ Ð¿ÐµÑедаÑÑ ÑÐ¼ÐµÐ½Ñ Ð´Ð¾ÐºÑменÑÑ ÑеÑез командний ÑÑдок"
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
msgid "Unrecognized launch option: %d"
-msgstr "%s: не ÑозпÑзнано паÑамеÑÑÑ `--%s'\n"
+msgstr "ÐевÑдомий паÑамеÑÑ Ð·Ð°Ð¿ÑÑкÑ: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr ""
+"Ðе Ð¼Ð¾Ð¶Ñ Ð¿ÐµÑедаÑи URI докÑменÑа з Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ð·Ð°Ð¿Ð¸ÑÑ 'Type = Link' Ñ ÑÐ°Ð¹Ð»Ñ "
+".desktop"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
-msgstr ""
+msgstr "ÐÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ запÑÑкаÑÑÑÑÑ"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr ""
+msgstr "ÐимкнÑÑи пÑдклÑÑÐµÐ½Ð½Ñ Ð´Ð¾ менеджеÑа ÑеÑÑй"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "ÐкажÑÑÑ Ñайл, Ñо мÑÑÑиÑÑ Ð·Ð±ÐµÑÐµÐ¶ÐµÐ½Ñ ÐºÐ¾Ð½ÑÑгÑÑаÑÑ"
#: src/libeggsmclient/eggsmclient.c:229
msgid "FILE"
-msgstr ""
+msgstr "ФÐÐÌÐ"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr ""
+msgstr "ÐказаÑи ÑденÑиÑÑкаÑÐ¾Ñ ÑеÑÑÑ"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
-msgstr ""
+msgstr "ID"
#: src/libeggsmclient/eggsmclient.c:253
msgid "Session management options:"
-msgstr ""
+msgstr "ÐаÑамеÑÑи кеÑÑÐ²Ð°Ð½Ð½Ñ ÑеанÑами:"
#: src/libeggsmclient/eggsmclient.c:254
msgid "Show session management options"
-msgstr ""
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "audacious: Ðе Ð¼Ð¾Ð¶Ñ Ð²ÑдкÑиÑи екÑан Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñ, виÑ
Ñд.\n"
-
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "ÐÑÑÑ"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "ÐÑновний (%s)"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "ÐÑковий ÑÑÐ²ÐµÐ½Ñ Ð´Ð¾ÑÑжок:"
-
-#, fuzzy
-#~ msgid "Album gain/peak"
-#~ msgstr "ÐÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð°Ð»Ñбома:"
-
-#~ msgid "Classic Rock"
-#~ msgstr "ÐлаÑиÑний Ñок"
-
-#~ msgid "Dance"
-#~ msgstr "ТанÑÑвалÑна"
-
-#~ msgid "Oldies"
-#~ msgstr "РеÑÑо"
-
-#~ msgid "Other"
-#~ msgstr "ÐнÑÑ"
-
-#~ msgid "R&B"
-#~ msgstr "РиÑм-н-блÑз"
-
-#~ msgid "Industrial"
-#~ msgstr "ÐндÑÑÑÑÑалÑний"
-
-#~ msgid "Alternative"
-#~ msgstr "ÐлÑÑеÑнаÑивна"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "ÐвÑкова доÑÑжка"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "ÐвÑо-ÑеÑ
но"
-
-#~ msgid "Vocal"
-#~ msgstr "Ðокал"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Ðжаз+Фанк"
-
-#~ msgid "Fusion"
-#~ msgstr "Ф'Ñжн"
-
-#~ msgid "Trance"
-#~ msgstr "ТÑанÑ"
-
-#~ msgid "Instrumental"
-#~ msgstr "ÐнÑÑÑÑменÑалÑна"
-
-#~ msgid "Acid"
-#~ msgstr "ÐиÑлоÑа"
-
-#~ msgid "Game"
-#~ msgstr "ÐÑа"
-
-#~ msgid "Sound Clip"
-#~ msgstr "ÐвÑковий клÑп"
-
-#~ msgid "AlternRock"
-#~ msgstr "ÐлÑÑеÑнаÑивний Ñок"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "ÐаÑ"
-
-#~ msgid "Punk"
-#~ msgstr "Ðанк"
-
-#~ msgid "Space"
-#~ msgstr "ÐоÑмÑÑна"
-
-#~ msgid "Meditative"
-#~ msgstr "ÐедиÑаÑÑÑ"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "ÐнÑÑÑÑменÑалÑний поп"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "ÐнÑÑÑÑменÑалÑний Ñок"
-
-#~ msgid "Ethnic"
-#~ msgstr "ÐÑнÑÑна"
-
-#~ msgid "Gothic"
-#~ msgstr "ÐоÑиÑна"
-
-#~ msgid "Darkwave"
-#~ msgstr "ЧоÑна Ñ
вилÑ"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "ТеÑ
но-ÑндÑÑÑÑÑалÑна"
-
-#~ msgid "Electronic"
-#~ msgstr "ÐлекÑÑонна"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Ðоп-Ñолк"
-
-#~ msgid "Eurodance"
-#~ msgstr "ÐвÑоданÑ"
-
-#~ msgid "Dream"
-#~ msgstr "ÐÑÑÑ"
-
-#~ msgid "Southern Rock"
-#~ msgstr "ÐÑвденний Ñок"
-
-#~ msgid "Comedy"
-#~ msgstr "ÐомедÑйна"
-
-#~ msgid "Cult"
-#~ msgstr "ÐÑлÑÑова"
-
-#~ msgid "Top 40"
-#~ msgstr "40 найкÑаÑиÑ
"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Ð¥ÑиÑÑиÑнÑÑкий Ñеп"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Ðоп/Фанк"
-
-#~ msgid "Native American"
-#~ msgstr "ÐмеÑиканÑÑка абоÑигенÑÑка"
-
-#~ msgid "Cabaret"
-#~ msgstr "ÐабаÑе"
-
-#~ msgid "Psychedelic"
-#~ msgstr "ÐÑиÑ
оделÑÑна"
-
-#~ msgid "Rave"
-#~ msgstr "Рейв"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "ÐмпÑовÑзаÑÑÑ"
-
-#~ msgid "Trailer"
-#~ msgstr "ÐнонÑ"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "ÐлемÑнна"
-
-#~ msgid "Acid Punk"
-#~ msgstr "ÐиÑлоÑний панк"
-
-#~ msgid "Polka"
-#~ msgstr "ÐолÑка"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "РеÑÑо"
-
-#~ msgid "Musical"
-#~ msgstr "ÐÑзиÑна"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Фолк/Рок"
-
-#~ msgid "National Folk"
-#~ msgstr "ÐаÑÑоналÑний Ñолк"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Швидкий ÑÑÑжн"
-
-#~ msgid "Latin"
-#~ msgstr "ÐаÑиноамеÑиканÑÑка"
-
-#~ msgid "Revival"
-#~ msgstr "ÐÑдÑодженнÑ"
-
-#~ msgid "Celtic"
-#~ msgstr "ÐелÑÑÑÑка"
-
-#~ msgid "Avantgarde"
-#~ msgstr "ÐвангаÑд"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "ÐоÑиÑний Ñок"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "ÐÑогÑеÑивний Ñок"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "ÐÑиÑ
оделÑÑний Ñок"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "СимÑонÑÑний Ñок"
-
-#~ msgid "Slow Rock"
-#~ msgstr "ÐовÑлÑний Ñок"
-
-#~ msgid "Big Band"
-#~ msgstr "ÐÑÒ-бенд"
-
-#~ msgid "Chorus"
-#~ msgstr "ХоÑ"
-
-#~ msgid "Acoustic"
-#~ msgstr "ÐкÑÑÑиÑна"
-
-#~ msgid "Humour"
-#~ msgstr "ÐÑмоÑ"
-
-#~ msgid "Speech"
-#~ msgstr "ÐÑомова"
-
-#~ msgid "Chanson"
-#~ msgstr "ШанÑон"
-
-#~ msgid "Opera"
-#~ msgstr "ÐпеÑа"
-
-#~ msgid "Sonata"
-#~ msgstr "СонаÑа"
-
-#~ msgid "Symphony"
-#~ msgstr "СимÑонÑÑ"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "ÐÑима"
-
-#~ msgid "Porn Groove"
-#~ msgstr "ÐоÑн гÑÑв"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "СÑеÑео"
-
-#~ msgid "Slow Jam"
-#~ msgstr "ÐовÑлÑний джем"
-
-#~ msgid "Club"
-#~ msgstr "ÐлÑб"
-
-#~ msgid "Tango"
-#~ msgstr "ТанÒо"
-
-#~ msgid "Samba"
-#~ msgstr "Самба"
-
-#~ msgid "Folklore"
-#~ msgstr "ФолÑклоÑ"
-
-#~ msgid "Ballad"
-#~ msgstr "Ðалада"
-
-#~ msgid "Power Ballad"
-#~ msgstr "ÐоÑÑжна балада"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "РиÑмÑÑний ÑоÑл"
-
-#~ msgid "Freestyle"
-#~ msgstr "ÐÑлÑний ÑÑилÑ"
-
-#~ msgid "Duet"
-#~ msgstr "ÐÑеÑ"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Соло на ÑдаÑниÑ
"
-
-#~ msgid "A Cappella"
-#~ msgstr "Ðкапелла"
-
-#~ msgid "Euro-House"
-#~ msgstr "ÐвÑо-дÑм"
-
-#~ msgid "Dance Hall"
-#~ msgstr "ТанÑÑвалÑний зал"
-
-#~ msgid "Goa"
-#~ msgstr "Ðоа"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "УдаÑÐ½Ñ Ñа баÑ"
-
-#~ msgid "Club-House"
-#~ msgstr "ÐлÑб-дÑм"
-
-#~ msgid "Hardcore"
-#~ msgstr "ÐаÑдкоÑ"
-
-#~ msgid "Terror"
-#~ msgstr "ТеÑоÑ"
-
-#~ msgid "Indie"
-#~ msgstr "ÐезалежнÑ"
-
-#~ msgid "BritPop"
-#~ msgstr "ÐÑиÑанÑÑкий поп"
-
-#~ msgid "Negerpunk"
-#~ msgstr "ЧоÑний панк"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "ÐолÑÑкий панк"
-
-#~ msgid "Beat"
-#~ msgstr "ÐÑÑ"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "ЧоÑний Ñ
ÑиÑÑиÑнÑÑкий Ñеп"
-
-#~ msgid "Black Metal"
-#~ msgstr "ЧоÑний меÑал"
-
-#~ msgid "Crossover"
-#~ msgstr "ÐеÑеÑ
Ñдний"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "СÑÑаÑна Ñ
ÑиÑÑиÑнÑÑка"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Ð¥ÑиÑÑиÑнÑÑкий Ñок"
-
-#~ msgid "Merengue"
-#~ msgstr "ÐеÑенга"
-
-#~ msgid "Salsa"
-#~ msgstr "СалÑÑа"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "ТÑÐµÑ Ð¼ÐµÑал"
-
-#~ msgid "Anime"
-#~ msgstr "ÐÑлÑÑиплÑкаÑÑÑ"
-
-#~ msgid "JPop"
-#~ msgstr "ЯпонÑÑкий поп"
-
-#~ msgid "Synthpop"
-#~ msgstr "ÐлекÑÑонний поп"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "ÐÑлÑÑимедÑйний пÑогÑÐ°Ð²Ð°Ñ Ð½Ð° оÑÐ½Ð¾Ð²Ñ BMP Ñа XMMS\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Ðоманда ÑозÑобникÑв Audacious\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ ÑÑвоÑиÑи Ñайл жÑÑÐ½Ð°Ð»Ñ (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/_ÐÑогÑаваннÑ"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>ÐÑдÑвоÑеннÑ</b>"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ðе пÑоÑÑваÑиÑÑ Ð² ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Ðо завеÑÑÐµÐ½Ð½Ñ Ð¿ÑогÑÐ°Ð²Ð°Ð½Ð½Ñ Ð¿ÑÑнÑ, не пеÑеÑÑваÑиÑÑ Ð°Ð²ÑомаÑиÑно до наÑÑÑпноÑ."
-
-#~ msgid "Enabled"
-#~ msgstr "Ðмикнено"
-
-#~ msgid "Description"
-#~ msgstr "ÐпиÑ"
-
-#, fuzzy
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "ÐодÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ Ð·Ð²ÑÐºÑ OSS"
-
-#, fuzzy
-#~ msgid "Output Plugin Information"
-#~ msgstr "ÐонÑÑÒÑÑаÑÑÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ ESD"
-
-#, fuzzy
-#~ msgid "_Decoder list:"
-#~ msgstr "ÐекодÑваннÑ"
-
-#, fuzzy
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_СпиÑок модÑлÑв загалÑного пÑизнаÑеннÑ:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "СпиÑок модÑлÑв _вÑзÑалÑзаÑÑÑ:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>ÐÑзÑалÑзаÑÑÑ</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "СпиÑок модÑлÑв _еÑекÑÑв:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>ÐÑекÑи</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"medium\"><b>ÐагалÑнÑ</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÐиÑа</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"medium\"><b>ÐедÑа</b></span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "ÐлÑз"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "1:1 (44 кÐÑ)"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "1:1 (44 кÐÑ)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "ÐоÑÑÑÐ¿Ð½Ñ _попеÑÐµÐ´Ð½Ñ ÑÑÑановки:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "ÐоÑÑÑÐ¿Ð½Ñ _попеÑÐµÐ´Ð½Ñ ÑÑÑановки:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "ÐÑкно Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑайлÑв"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
-
-#~ msgid "Filename:"
-#~ msgstr "Ðм'Ñ ÑайлÑ:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Ðоден модÑÐ»Ñ Ð²Ð²Ð¾Ð´Ñ Ð½Ðµ ÑозпÑÐ·Ð½Ð°Ñ Ñей Ñайл"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "ÐодÑÐ»Ñ Ð²Ð²Ð¾Ð´Ñ: %s"
-
-#, fuzzy
-#~ msgid "ZOH Interpolation"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи авÑенÑикаÑÑÑ"
-
-#, fuzzy
-#~ msgid "Linear Interpolation"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи авÑенÑикаÑÑÑ"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "ЧаÑÑоÑа:"
-
-#, fuzzy
-#~ msgid "Interpolation Engine:"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи авÑенÑикаÑÑÑ"
-
-#, fuzzy
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Ðе позбавлÑÑи Ñайли ÑозÑиÑеннÑ"
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "ЧаÑÑоÑа:"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "ЧаÑÑоÑа:"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "ÐÑлÑÑимедÑйний пÑогÑÐ°Ð²Ð°Ñ Ð½Ð° оÑÐ½Ð¾Ð²Ñ BMP Ñа XMMS\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Ðоманда ÑозÑобникÑв Audacious\n"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ð· мÑзиÑниÑ
ÑайлÑв Ñ ÑпиÑкÑв пÑогÑаваннÑ"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ (ÑнÑоÑмаÑÑйний Ñег) з "
-#~ "мÑзиÑниÑ
ÑайлÑв."
-
-#~ msgid "Jump to Time"
-#~ msgstr "ÐеÑейÑи до ÑаÑÑ"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "Ñ
вилин:ÑекÑнд"
-
-#~ msgid "Track length:"
-#~ msgstr "Ðовжина доÑÑжки:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "ÐбеÑегÑи ÑпиÑок пÑогÑаваннÑ"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Ðомилка пÑи запиÑÑ ÑпиÑÐºÑ Ð¿ÑогÑÐ°Ð²Ð°Ð½Ð½Ñ \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s вже ÑÑнÑÑ. ÐÑодовжиÑи?"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð±ÐµÑегÑи ÑпиÑок пÑогÑаваннÑ.</big></b>\n"
-#~ "\n"
-
-#~ msgid "Presets"
-#~ msgstr "ÐопеÑÐµÐ´Ð½Ñ ÑÑÑановки"
-
-#~ msgid "Mouse"
-#~ msgstr "ÐиÑа"
-
-#~ msgid "Pause between songs"
-#~ msgstr "ÐаÑза мÑж пÑÑнÑми"
-
-#~ msgid "Pause for"
-#~ msgstr "ÐÑизÑпинÑÑи на"
-
-#~ msgid "seconds"
-#~ msgstr "ÑекÑнд"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "ÐеÑеÑвоÑÑваÑи пÑдкÑеÑÐ»ÐµÐ½Ð½Ñ Ð² пÑобÑл"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "ÐеÑеÑвоÑÑваÑи %20 в пÑобÑл"
-
-#, fuzzy
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#~ msgid "Changes volume by"
-#~ msgstr "ÐмÑнÑÑ Ð³ÑÑнÑÑÑÑ Ð½Ð°"
-
-#~ msgid "percent"
-#~ msgstr "вÑдÑоÑкÑв"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "ÐовоÑÐ¾Ñ ÐºÐ¾Ð»ÐµÑа миÑÑ Ð¿ÑокÑÑÑÑÑ ÑпиÑок пÑогÑÐ°Ð²Ð°Ð½Ð½Ñ Ð½Ð°"
-
-#~ msgid "lines"
-#~ msgstr "ÑÑдкÑв"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "ÐÑпиниÑи поÑоÑÐ½Ñ Ð¿ÑÑнÑ"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pranks"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/ÐовÑоÑÑваÑи"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Ðипадково"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/Ðе пÑоÑÑваÑиÑÑ Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/ÐÑаÑи"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/ÐÑизÑпиниÑи"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/ÐÑпиниÑи"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/ÐопеÑÐµÐ´Ð½Ñ Ð¿ÑÑнÑ"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/ÐаÑÑÑпна пÑÑнÑ"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Режим вÑзÑалÑзаÑÑÑ"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐолÑм'Ñ"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Режим гÑаÑÑка"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐолÑм'Ñ"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/ÐÑи мÑнÑмÑÐ·Ð¾Ð²Ð°Ð½Ð¾Ð¼Ñ Ð²ÑкнÑ"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð°Ð½Ð°Ð»ÑзаÑоÑа"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð¿ÑкÑв"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "ÐбеÑегÑи ÑпиÑок пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ Ð¿Ñи вÑдобÑÐ°Ð¶ÐµÐ½Ð½Ñ ÑÐ°Ð¹Ð»Ñ Ð² "
-#~ "ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Ðовий ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/ÐбеÑегÑи/СÑандаÑÑÐ½Ñ "
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/Ðе пÑоÑÑваÑиÑÑ Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/ÐиглÑд"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/ÐодаÑи адÑеÑÑ ÑнÑеÑнеÑ..."
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/ÐодаÑи Ñайли..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "/СоÑÑÑваÑи вибÑане"
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/ÐнвеÑÑÑваÑи вибÑане"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#~ msgid "Select All"
-#~ msgstr "ÐибÑаÑи вÑе"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/СоÑÑÑваÑи вибÑане"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/ÐидалиÑи вÑе"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/ÐидалиÑи недоÑÑÑÐ¿Ð½Ñ Ñайли"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/ÐÑиÑÑиÑи ÑеÑгÑ"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/ÐидалиÑи недоÑÑÑÐ¿Ð½Ñ Ñайли"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/ÐидалиÑи недоÑÑÑÐ¿Ð½Ñ Ñайли"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/ÐидалиÑи вибÑане"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Ðаголовок"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Ðм'Ñ ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/ÐидалиÑи ÐРвибÑане"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/ÐидалиÑи вибÑане"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/ÐеÑемÑÑаÑи ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/ÐеÑемÑÑаÑи ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/ÐнвеÑÑÑваÑи ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Ðе оÑиÑаÑи ÑпиÑок пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "ÐлÑбом"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "ÐиконавеÑÑ"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа Ñменем ÑайлÑ"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "ÐаÑа"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжкии"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа даÑоÑ"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/СоÑÑÑваÑи вибÑане"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "СаÑиÑа"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "ÐоменÑаÑ"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/ÐнÑоÑмаÑÑÑ Ð¿Ñо пÑÑнÑ"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/ÐÑогÑаваÑи Ñайли"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ð· мÑзиÑниÑ
ÑайлÑв Ñ ÑпиÑкÑв пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "/ÐÑогÑаваÑи знаÑ
одженнÑ"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "ÐодÑлÑ"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/ÐалаÑÑÑваннÑ"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "ÐÑкно налаÑÑÑванÑ"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_ÐийÑи"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "ÐÑо Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "ÐибÑаÑи вÑе"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/ÐÑиÑÑиÑи ÑеÑгÑ"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/ÐеÑейÑи до пеÑÑÐ¾Ñ Ð¿ÑÑÐ½Ñ Ñ ÑпиÑкÑ"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/ÐеÑейÑи до ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/ÐоÑÑавиÑи пÑÑÐ½Ñ Ð² ÑеÑгÑ"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/ÐаванÑажиÑи"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/ÐмпоÑÑ"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/ÐбеÑегÑи"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/СÑеÑÑи"
-
-#~ msgid "Preset"
-#~ msgstr "ÐопеÑÐµÐ´Ð½Ñ ÑÑÑановка"
-
-#~ msgid "Load preset"
-#~ msgstr "ÐаванÑажиÑи ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/ÐаванÑажиÑи/ÐвÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/ÐаванÑажиÑи/ÐвÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#~ msgid "Default"
-#~ msgstr "ÐÑновна"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "ÐбеÑегÑи авÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "РеÑÑо"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "ÐбеÑегÑи ÑÑÑановки еквалайзеÑа"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/ÐаванÑажиÑи/Ð ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "ÐаванÑажиÑи ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/ÐаванÑажиÑи/Ð ÑÐ°Ð¹Ð»Ñ EQF WinAMP"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/ÐаванÑажиÑи/Ð ÑÐ°Ð¹Ð»Ñ EQF WinAMP"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/ÐмпоÑÑ/УÑÑановки WinAMP"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/ÐмпоÑÑ/УÑÑановки WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "ÐбеÑегÑи ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/ÐбеÑегÑи/ÐвÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "ÐбеÑегÑи авÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/ÐаванÑажиÑи/Ð ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "ÐбеÑегÑи ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/ÐбеÑегÑи/Ð Ñайл EQF WinAMP"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/ÐбеÑегÑи/Ð Ñайл EQF WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "СÑеÑÑи ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/СÑеÑÑи/ÐвÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð°Ð²Ð°Ð½ÑажиÑи ÑемÑ.</big></b>\n"
-#~ "\n"
-#~ "ÐеÑевÑÑÑе,Ñи пÑидаÑна до викоÑиÑÑÐ°Ð½Ð½Ñ Ñема '%s' Ñ Ð²ÑÑановлена Ñипова Ñема "
-#~ "в '%s'\n"
-
-#, fuzzy
-#~ msgid "Audacious core developers:"
-#~ msgstr "ÐалаÑÑÑÐ²Ð°Ð½Ð½Ñ Audacious"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "ÐÐºÐ²Ð°Ð»Ð°Ð¹Ð·ÐµÑ Audacious"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/ÐÑогÑаваÑи Ñайли"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/ÐаванÑажиÑи/Ð ÑайлÑ"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#, fuzzy
-#~ msgid "mono"
-#~ msgstr "Ðоно"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð³Ð¾ вÑкна"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "ÐÑÑого"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ÐÐÐ ÐÐÐТÐТРÐÐ: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "ÐаÑамеÑÑи"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Ðавжди згоÑи"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Ðавжди згоÑи"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо Ñайл"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "ÐабоÑониÑи Ñеги ID3V2"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Режим вÑзÑалÑзаÑÑÑ"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>Ðе Ð¼Ð¾Ð¶Ñ Ð²ÑдкÑиÑи аÑдÑопÑиÑÑÑÑй</big></b>\n"
-#~ "\n"
-#~ "ÐÑдÑ-лаÑка впевнÑÑÑÑÑ, Ñо:\n"
-#~ "1. Ðи вибÑали вÑÑний виÑ
Ñдний модÑлÑ\n"
-#~ "2. ÐнÑÑ Ð¿ÑогÑами не блокÑÑÑÑ Ð·Ð²ÑÐºÐ¾Ð²Ñ Ð¿Ð»Ð°ÑÑ\n"
-#~ "3. ÐаÑа звÑкова плаÑа ÑконÑÑÒÑÑована вÑÑно \n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/ÐвÑомаÑиÑна пÑокÑÑÑка назви пÑÑнÑ"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/ÐоказаÑи ÑедакÑÐ¾Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/ÐоказаÑи ÑедакÑÐ¾Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/ÐквалайзеÑ"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Ðавжди згоÑи"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Ðа вÑÑ ÑÑÑлÑниÑÑ"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/ÐгоÑнÑÑи пÑогÑаваÑ"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/ÐгоÑнÑÑи ÑедакÑÐ¾Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/ÐгоÑнÑÑи еквалайзеÑ"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/ÐбеÑегÑи"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Режим аналÑзаÑоÑа"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Режим гÑаÑÑка"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐолÑм'Ñ"
-
-#, fuzzy
-#~ msgid "Normal"
-#~ msgstr "ФоÑÐ¼Ð°Ñ ID3-ÑегÑ:"
-
-#, fuzzy
-#~ msgid "Fire"
-#~ msgstr "СаÑиÑа"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐеÑÑикалÑÐ½Ñ Ð»ÑнÑÑ"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "ÑÑдкÑв"
-
-#, fuzzy
-#~ msgid "Bars"
-#~ msgstr "ÐаÑ"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Режим гÑаÑÑка/ТоÑки"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Режим гÑаÑÑка/ÐÑнÑÑ"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Режим гÑаÑÑка/Ðаливка"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "Ðоно"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ/Ðовна (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ/Ðоловина (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ/ЧеÑвеÑÑÑ (~13 fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ/ÐоÑÑма (~6 fps)"
-
-#, fuzzy
-#~ msgid "Slowest"
-#~ msgstr "ÐмпÑовÑзаÑÑÑ"
-
-#, fuzzy
-#~ msgid "Slow"
-#~ msgstr "низÑке"
-
-#, fuzzy
-#~ msgid "Medium"
-#~ msgstr "ÑеÑеднÑ"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Ð§Ð°Ñ Ð²Ñд поÑаÑкÑ"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/ЧаÑ, Ñо залиÑивÑÑ"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "ÐодÑлÑ"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "ÐоказÑваÑи номеÑи пÑÑÐµÐ½Ñ Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Ðазва:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "ÐлÑбом:"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "ÐиконавеÑÑ:"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Ðм'Ñ ÑайлÑ:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "/ÐоказаÑи ÑедакÑÐ¾Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
-
-#~ msgid "Appearance"
-#~ msgstr "ÐовнÑÑнÑй виглÑд"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_ШÑиÑÑи</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Ðоловне вÑкно пÑогÑаваÑа:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð³Ð¾ вÑкна"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_СпиÑок пÑогÑаваннÑ:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "ÐибÑÑ ÑÑиÑÑÑ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ð¾Ð³Ð¾ вÑкна"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи ÑаÑÑÑÐ¾Ð²Ñ ÑÑиÑÑи (ÑкÑо наÑвнÑ)"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Ð Ñзне</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "ÐоказÑваÑи номеÑи пÑÑÐµÐ½Ñ Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Show separators in playlist"
-#~ msgstr "ÐоказÑваÑи номеÑи пÑÑÐµÐ½Ñ Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#~ msgid "On load"
-#~ msgstr "ÐÑи вÑдкÑиÑÑÑ"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ Ð¿Ñи Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑÐ°Ð¹Ð»Ñ Ð² "
-#~ "ÑпиÑок пÑогÑÐ°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ вÑдкÑиÑÑÑ"
-
-#~ msgid "On display"
-#~ msgstr "ÐÑи вÑдобÑаженнÑ"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ Ð¿Ñи Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑÐ°Ð¹Ð»Ñ Ð² "
-#~ "ÑпиÑок пÑогÑÐ°Ð²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ вÑдкÑиÑÑÑ"
-
-#, fuzzy
-#~ msgid "Blue"
-#~ msgstr "ÐлÑз"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "ÐÑеÑÑкий:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Тема</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "/ЧаÑÑоÑа поновленнÑ"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60 ÐÑ"
-
-#~ msgid "170HZ"
-#~ msgstr "170 ÐÑ"
-
-#~ msgid "310HZ"
-#~ msgstr "310 ÐÑ"
-
-#~ msgid "600HZ"
-#~ msgstr "600 ÐÑ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1 кÐÑ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3 кÐÑ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6 кÐÑ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12 кÐÑ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14 кÐÑ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16 кÐÑ"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи кÑÑÑоÑи, вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ ÑемоÑ"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "ÐодÑлÑ"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "ÐибаÑÑе, гÑлки не пÑдÑÑÑмÑÑÑÑÑÑ Ð½Ð° ваÑÑй плаÑÑоÑмÑ.\n"
-#~ "\n"
-#~ "ЯкÑо ви викоÑиÑÑовÑÑÑе лÑнÑÐºÑ ÑиÑÑÐµÐ¼Ñ Ð½Ð° оÑÐ½Ð¾Ð²Ñ libc5 Ñ Ð²ÑÑановленими "
-#~ "Glib Ñ GTK+ вам\n"
-#~ "пеÑед вÑÑановленнÑм LinuxThreads ÑлÑд пеÑекомпÑлÑваÑи Glib Ñ GTK+.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "ÐÑо Audacious"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "ÐозволиÑи пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ 6дР+ жоÑÑÑке обмеженнÑ"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "ÐÑÑановиÑи ÑеÑÑÑ Ð´Ð»Ñ audacious/ÐÐÐ /XMMS (Ñипова: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>ÐопеÑÐµÐ´Ð½Ñ ÑÑÑановки</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "РозÑиÑÐµÐ½Ð½Ñ ÑÐ°Ð¹Ð»Ñ Ð¿Ð¾Ð¿ÐµÑеднÑÑ
ÑÑÑановок:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "ÐаÑÐ°Ð»Ð¾Ð³Ñ Ð¿Ð¾Ð¿ÐµÑеднÑÑ
ÑÑÑановок:"
-
-#, fuzzy
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "Ðазва\n"
-#~ "ÐиконавеÑÑ - Ðазва\n"
-#~ "ÐиконавеÑÑ - ÐлÑбом - Ðазва\n"
-#~ "ÐлÑбом - Ðазва\n"
-#~ "ÐÑобливе"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "ÐÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ÑÑжок:"
-
-#~ msgid "Preferences Window"
-#~ msgstr "ÐÑкно налаÑÑÑванÑ"
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/ÐакÑиÑи"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "ÐиконавеÑÑ"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "/ÐоказаÑи ÑедакÑÐ¾Ñ ÑпиÑÐºÑ Ð¿ÑÑенÑ"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "ÐиконавеÑÑ"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "ÐУЧÐÐСТЬ: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "ÐÐÐÐÐС: %d%% ÐÐÐÐРУЧ"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "ÐÐÐÐÐС: ЦÐÐТР"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "ÐÐÐÐÐС: %d%% ÐÐ ÐÐÐРУЧ"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "/ÐÑогÑаваÑи знаÑ
одженнÑ"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "/ÐÑогÑаваÑи знаÑ
одженнÑ"
-
-#, fuzzy
-#~ msgid "Converter Type:"
-#~ msgstr "ÐеÑеÑвоÑиÑи кодÑваннÑ"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Ðе знайдено звÑкового CD.</big></b>\n"
-#~ "\n"
-#~ "ÐомпакÑ-диÑк вÑдÑÑÑнÑй або не мÑÑÑиÑÑ Ð°ÑдÑодоÑÑжок.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/ÐодаÑи CD..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/ÐÑаÑи"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "ÐиконавеÑÑ/ÐÑÑиÑÑ"
-
-#~ msgid "File name"
-#~ msgstr "Ðазва ÑайлÑ"
-
-#~ msgid "File path"
-#~ msgstr "ÐаÑÑÑÑÑ Ð´Ð¾ ÑайлÑ"
-
-#~ msgid "File extension"
-#~ msgstr "РозÑиÑÐµÐ½Ð½Ñ ÑайлÑ"
-
-#~ msgid "Track name"
-#~ msgstr "Ðазва доÑÑжки"
-
-#~ msgid "Track number"
-#~ msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжкии"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: ÐÑдобÑажаÑи \"...\", коли ÐµÐ»ÐµÐ¼ÐµÐ½Ñ %n пÑиÑÑÑнÑй"
-
-#, fuzzy
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "ÐибаÑÑе, ваÑа GTK+ веÑÑÑÑ (%d.%d.%d) не пÑаÑÑваÑиме з BMP.\n"
-#~ "ÐÑдÑ-лаÑка, викоÑиÑовÑйÑе GTK+ %s або кÑаÑÑ.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "ÐÐÐЮ ÐÐЦÐÐ"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ÐÐÐÐÐ ÐÐÐТРСÐÐÐÐÐÐÐЯ ÐÐÐÐРУ"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ÐÐÐÐÐÐÐТРСÐÐÐÐÐÐÐЯ ÐÐÐÐРУ "
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "ÐÐÐÐÐ ÐÐФÐÐ ÐÐЦÐРФÐÐÐУ"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "ÐÐÐЮ ÐÐÐУÐÐÐÐÐЦÐÐ"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Ðазви доÑÑжок:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Ðе Ð¼Ð¾Ð¶Ñ Ð³ÑаÑи Ñайли.</big></b>\n"
-#~ "\n"
-#~ "ÐÐµÐ²Ð½Ñ Ñайли не можÑÑÑ Ð±ÑÑи вÑдÑвоÑенÑ. ÐÑдÑ-лаÑка, пеÑевÑÑÑе :\n"
-#~ "1. ÐаÑвнÑÑÑÑ ÑиÑ
ÑайлÑв.\n"
-#~ "2. УвÑÐ¼ÐºÐ½ÐµÐ½Ð½Ñ Ð½ÐµÐ¾Ð±Ñ
ÑдниÑ
аÑдÑо-модÑлÑв."
-
-#~ msgid "Show more _details"
-#~ msgstr "_ÐокладнÑÑе"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ÐÑÑмано SIGSEGV\n"
-#~ "\n"
-#~ "Ðожливо, Ñе помилка в Audacious. ЯкÑо ви не знаÑÑе, ÑÐ¾Ð¼Ñ Ñе ÑÑалоÑÑ, "
-#~ "вÑдпÑавÑе повÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð° at http://bugs.nenolod.net/\n"
-#~ "\n"
-
-#, fuzzy
-#~ msgid "Enable playlist transparency"
-#~ msgstr "ÐмикнÑÑи пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿ÑогÑаваннÑ"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: паÑамеÑÑ `%s' - неоднознаÑний\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: паÑамеÑÑ `--%s' не може маÑи аÑгÑменÑÑв\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: паÑамеÑÑ `%c%s' не може маÑи аÑгÑменÑÑ\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: паÑамеÑÑÑ `%s' необÑ
Ñдний аÑгÑменÑ\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: не ÑозпÑзнано паÑамеÑÑÑ `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: невÑÑний паÑамеÑÑ -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: невÑÑний паÑамеÑÑ -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: паÑамеÑÑÑ Ð½ÐµÐ¾Ð±Ñ
Ñдний аÑгÑÐ¼ÐµÐ½Ñ -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: паÑамеÑÑ `-W %s' неоднознаÑний\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: опÑÑÑ `-W %s' не повинна маÑи аÑгÑменÑа\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "ÐикоÑиÑÑаннÑ: audacious [паÑамеÑÑи] [Ñайли] ...\n"
-#~ "\n"
-#~ "ÐаÑамеÑÑи:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "ÐадÑÑкÑваÑи Ñей ÑекÑÑ Ñ Ð²Ð¸Ð¹Ñи"
-
-#, fuzzy
-#~ msgid "Activate Audacious"
-#~ msgstr "ÐкÑивÑваÑи audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ÐденÑиÑÑкаÑÐ¾Ñ Ð¿Ð¾Ð¿ÐµÑеднÑго ÑеанÑÑ"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "ÐадÑÑкÑваÑи Ð½Ð¾Ð¼ÐµÑ Ð²ÐµÑÑÑÑ Ñ Ð·Ð°Ð²ÐµÑÑиÑи ÑобоÑÑ.\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "ÐÑкно Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ ÑайлÑв"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "ÐакÑиÑи вÑкно пÑÑÐ»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ"
-
-#~ msgid "Deselect All"
-#~ msgstr "СкаÑÑваÑи видÑленнÑ"
-
-#, fuzzy
-#~ msgid "Artist Popup"
-#~ msgstr "ÐиконавеÑÑ"
-
-#, fuzzy
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid "<i>Year</i>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжкии"
-
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Ðовжина доÑÑжки:"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/ÐнÑоÑмаÑÑÑ Ð¿Ñо пÑÑнÑ"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Режим вÑзÑалÑзаÑÑÑ/ÐналÑзаÑоÑ"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Режим вÑзÑалÑзаÑÑÑ/ÐÑаÑÑк"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Режим вÑзÑалÑзаÑÑÑ/ÐÑаÑÑк"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Режим вÑзÑализаÑÑÑ/Ðимкнено"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐвиÑайний"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐÑнÑÑ"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Режим аналÑзаÑоÑа/СмÑги"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐÑки"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Режим аналÑзаÑоÑа/ÐвиÑайний"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/ÐÑи мÑнÑмÑÐ·Ð¾Ð²Ð°Ð½Ð¾Ð¼Ñ Ð¾ÐºÐ½Ðµ/ÐвиÑайний"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/ÐÑи мÑнÑмÑÐ·Ð¾Ð²Ð°Ð½Ð¾Ð¼Ñ Ð²ÑкнÑ/Ðлавний"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ ÐналÑзаÑоÑа/ÐайповÑлÑнÑÑе"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ ÐналÑзаÑоÑа/ÐовÑлÑне"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ ÐналÑзаÑоÑа/СеÑеднÑ"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ ÐналÑзаÑоÑа/Швидке"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ ÐналÑзаÑоÑа/ÐайÑвидÑе"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð¿ÑкÑв/ÐайповÑлÑнÑÑе"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð¿ÑкÑв/ÐовÑлÑне"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð¿ÑкÑв/СеÑеднÑ"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð¿ÑкÑв/Швидке"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/ÐадÑÐ½Ð½Ñ Ð¿ÑкÑв/ÐайÑвидÑе"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/ÐеÑейÑи до ÑаÑÑ"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/ÐÑо Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/ÐодаÑи Файли..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/ÐодаÑи ÐдÑеÑÑ Ð² ÑнÑеÑнеÑ..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Ðовий ÑпиÑок"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "ÐоказÑваÑи номеÑи пÑÑÐµÐ½Ñ Ñ ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "ÐÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ÑÑжок:"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/ÐаванÑажиÑи/ÐопеÑÐµÐ´Ð½Ñ ÑÑÑановки"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/ÐаванÑажиÑи/Ðо замовÑаннÑ"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/ÐаванÑажиÑи/ÐÑлÑ"
-
-#~ msgid "/Save"
-#~ msgstr "/ÐбеÑегÑи"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/ÐбеÑегÑи/УÑÑановки"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/ÐбеÑегÑи/СÑандаÑÑÐ½Ñ "
-
-#~ msgid "/Save/To file"
-#~ msgstr "/ÐбеÑегÑи/Ð Ñайл"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/СÑеÑÑи/УÑÑановки"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "ÐаванÑажиÑи авÑомаÑиÑÐ½Ñ ÑÑÑановкии"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "ÐаванÑажиÑи ÑÑÑановки еквалайзеÑа"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "СÑеÑÑи авÑомаÑиÑÐ½Ñ ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа Ñменем ÑайлÑ"
-
-#~ msgid "/Update View"
-#~ msgstr "/ÐбновиÑи видимий ÑпиÑок"
-
-#~ msgid "/Select All"
-#~ msgstr "ÐибÑаÑи вÑе"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/СоÑÑÑваÑи ÑпиÑок/Ðа даÑоÑ"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа назвоÑ"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа Ñменем ÑайлÑ"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа ÑлÑÑ
ом й Ñменем ÑайлÑ"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа даÑоÑ"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа даÑоÑ"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/СоÑÑÑваÑи вибÑане/Ðа назвоÑ"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Ð Ñзне</b>"
-
-#, fuzzy
-#~ msgid "About AudioCompress"
-#~ msgstr "ÐÑо Audacious"
-
-#~ msgid "Ok"
-#~ msgstr "ÐÐ"
-
-#, fuzzy
-#~ msgid "Extra Stereo Plugin %s"
-#~ msgstr "ÐодÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ð° диÑк %s"
-
-#, fuzzy
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid "Effect intensity:"
-#~ msgstr "СпиÑок модÑлÑв _еÑекÑÑв:"
-
-#~ msgid "Cancel"
-#~ msgstr "СкаÑÑваÑи"
-
-#~ msgid "Apply"
-#~ msgstr "ÐаÑÑоÑÑваÑи"
-
-#, fuzzy
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ Ð¿ÑдÑÑимки ÑоÑмаÑÑ MPEG"
-
-#, fuzzy
-#~ msgid "LIRC Plugin "
-#~ msgstr "ÐодÑлÑ"
-
-#, fuzzy
-#~ msgid "LIRC Plugin"
-#~ msgstr "ÐодÑлÑ"
-
-#~ msgid "Username:"
-#~ msgstr "Ðм'Ñ ÐºÐ¾ÑиÑÑÑваÑа:"
-
-#~ msgid "Password:"
-#~ msgstr "ÐаÑолÑ:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "ÐодÑлÑ"
-
-#~ msgid "Song Change %s"
-#~ msgstr "ÐмÑна пÑÑÐ½Ñ %s"
-
-#~ msgid "Commands"
-#~ msgstr "ÐоменÑаÑ"
-
-#~ msgid "Command:"
-#~ msgstr "ÐоменÑаÑ:"
-
-#, fuzzy
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr ""
-#~ "ÐаванÑажÑваÑи ÑнÑоÑмаÑÑÑ Ð¿Ñо пÑÑÐ½Ñ Ñа виконавÑÑ Ð¿Ñи вÑдобÑÐ°Ð¶ÐµÐ½Ð½Ñ ÑÐ°Ð¹Ð»Ñ Ð² "
-#~ "ÑпиÑÐºÑ Ð¿ÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "About "
-#~ msgstr "ÐÑо пÑогÑамÑ"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки MikMod"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки MikMod"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки MikMod"
-
-#~ msgid "Name:"
-#~ msgstr "Ðм'Ñ:"
-
-#, fuzzy
-#~ msgid " MIDI Info "
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо компакÑ"
-
-#, fuzzy
-#~ msgid "Length (msec):"
-#~ msgstr "Ðовжина:"
-
-#, fuzzy
-#~ msgid "Num of Tracks:"
-#~ msgstr "ÐеÑейÑи до доÑÑжки"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð¿ÑдÑÑимки аÑдÑо компакÑ-диÑкÑв"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "CD аÑдÑо доÑÑжка %02u"
-
-#~ msgid "(unknown)"
-#~ msgstr "(невÑдомо)"
-
-#~ msgid "Drive %d"
-#~ msgstr "ÐÑиÑÑÑÑй %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Ðе Ð¼Ð¾Ð¶Ñ Ð²ÑдкÑиÑи пÑиÑÑÑÑй %s\n"
-#~ "Ðомилка: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Ðе Ð¼Ð¾Ð¶Ñ Ð¿ÑоÑиÑаÑи \"Ðглавление\"\n"
-#~ "Ðоже диÑк не вÑÑавлений в пÑивÑд?\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "ÐÑивÑд %s: ÐÐ.\n"
-#~ "Ðа диÑÐºÑ %d доÑÑжок"
-
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d доÑÑжок з даними)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "ÐагалÑна довжина: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "ЦиÑÑове зÑиÑÑÐ²Ð°Ð½Ð½Ñ Ð°ÑдÑо не ÑеÑÑовано, оÑкÑлÑки на диÑÐºÑ Ð½ÐµÐ¼Ð° "
-#~ "аÑдÑодоÑÑжок\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "ТеÑÑÑÐ²Ð°Ð½Ð½Ñ ÑиÑÑового зÑиÑÑваннÑ: OK\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "ТеÑÑÑÐ²Ð°Ð½Ð½Ñ ÑиÑÑового зÑиÑÑÐ²Ð°Ð½Ð½Ñ Ð½Ðµ вдалоÑÑ: %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 ÑÑнÑÑ, але не каÑалог"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "ÐаÑалог %s в поÑÑдкÑ.."
-
-#~ msgid "Device:"
-#~ msgstr "ÐÑиÑÑÑÑй:"
-
-#~ msgid "_Device:"
-#~ msgstr "_ÐÑиÑÑÑÑй:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "_ÐаÑалог:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Режим пÑогÑаваннÑ:"
-
-#~ msgid "Analog"
-#~ msgstr "Ðналоговий"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "ЦиÑÑове зÑиÑÑÐ²Ð°Ð½Ð½Ñ Ð°ÑдÑо"
-
-#~ msgid "No mixer"
-#~ msgstr "ÐÐµÐ¼Ð°Ñ Ð¼ÑкÑеÑа"
-
-#~ msgid "CDROM drive"
-#~ msgstr "ÐомпакÑ-диÑк"
-
-#~ msgid "OSS mixer"
-#~ msgstr "ÐÑкÑÐµÑ OSS"
-
-#~ msgid "Check drive..."
-#~ msgstr "ÐеÑевÑÑиÑи пÑиÑÑÑÑй..."
-
-#~ msgid "Remove drive"
-#~ msgstr "ÐÑибÑаÑи пÑиÑÑÑÑй"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
-
-#~ msgid "Add drive"
-#~ msgstr "ÐодаÑи пÑиÑÑÑÑй"
-
-#~ msgid "Device"
-#~ msgstr "ÐÑиÑÑÑÑй"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "ÐÑÑимаÑи ÑпиÑок ÑеÑвеÑÑв"
-
-#~ msgid "Show network window"
-#~ msgstr "ÐоказаÑи вÑкно меÑежÑ"
-
-#~ msgid "CDDB server:"
-#~ msgstr "CеÑÐ²ÐµÑ CDDB :"
-
-#~ msgid "CD Index:"
-#~ msgstr "ÐÐ½Ð´ÐµÐºÑ CD:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "ÐикоÑиÑÑовÑваÑи ÑÐ½Ð´ÐµÐºÑ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ-диÑкÑв"
-
-#~ msgid "CD Index server:"
-#~ msgstr "СеÑÐ²ÐµÑ ÑндекÑÑв CD:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "ÐÐ°Ñ Ð¿ÐµÑÐµÐ²Ð°Ð³Ñ Ð½Ð°Ð´ загалÑними заголовками"
-
-#~ msgid "Name format:"
-#~ msgstr "ФоÑÐ¼Ð°Ñ Ð½Ð°Ð·Ð²Ð¸:"
-
-#~ msgid "CD Info"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо компакÑ"
-
-#, fuzzy
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "ЯпонÑÑкий:"
-
-#, fuzzy
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr " (недопÑÑÑима поÑлÑдовнÑÑÑÑ Ð®Ð½Ñкод)"
-
-#, fuzzy
-#~ msgid "Korean (UHC)"
-#~ msgstr "ÐоÑейÑÑкий:"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "ÐибеÑÑÑÑ Ð´Ð¸ÑекÑоÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¿Ð¾ÑокÑв MPEG:"
-
-#, fuzzy
-#~ msgid "Flac Configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
-
-#~ msgid "Convert character set from :"
-#~ msgstr "ÐеÑеÑвоÑиÑи кодÑÐ²Ð°Ð½Ð½Ñ Ñз:"
-
-#~ msgid "to :"
-#~ msgstr "на :"
-
-#, fuzzy
-#~ msgid "Enable ReplayGain processing"
-#~ msgstr "ÐмикнÑÑи пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿ÑогÑаваннÑ"
-
-#~ msgid "Resolution"
-#~ msgstr "РоздÑлÑнÑÑÑÑ:"
-
-#~ msgid "Without ReplayGain"
-#~ msgstr "Ðез пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿Ñи пÑогÑаваннÑ"
-
-#~ msgid "Dither 24bps to 16bps"
-#~ msgstr "ÐмÑÑÑваÑи 24bps до 16bps"
-
-#~ msgid "With ReplayGain"
-#~ msgstr "РпÑдÑиленнÑм пÑи пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Enable dithering"
-#~ msgstr "Ðмикнено"
-
-#~ msgid "Noise shaping"
-#~ msgstr "ФомÑÐ²Ð°Ð½Ð½Ñ ÑÑмÑ"
-
-#~ msgid "high"
-#~ msgstr "виÑоке"
-
-#~ msgid "Dither to"
-#~ msgstr "ÐмÑÑÑваÑи до"
-
-#~ msgid "16 bps"
-#~ msgstr "16 бÑÑ"
-
-#~ msgid "24 bps"
-#~ msgstr "24 бÑÑ"
-
-#~ msgid "Output"
-#~ msgstr "ÐивÑд"
-
-#~ msgid "Buffering:"
-#~ msgstr "ÐÑÑеÑ:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "РозмÑÑ Ð±ÑÑеÑа (кбайÑ):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "ÐопеÑÐµÐ´Ð½Ñ Ð±ÑÑеÑÑÐ²Ð°Ð½Ð½Ñ (вÑдÑоÑкÑв):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "ÐапиÑаÑи поÑÑк на диÑк:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "ÐапиÑаÑи поÑÑк на диÑк:"
-
-#~ msgid "Path:"
-#~ msgstr "ÐаÑÑÑÑÑ:"
-
-#~ msgid "Browse"
-#~ msgstr "ÐеÑеглÑнÑÑи"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Enable Icecast Metadata UDP Channel"
-#~ msgstr "ÐмикнÑÑи поÑÑк заголовкÑв SHOUT/Icecast"
-
-#~ msgid "Streaming"
-#~ msgstr "ÐоÑÑк"
-
-#, fuzzy
-#~ msgid "About Flac Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "ЧаÑÑоÑа:"
-
-#, fuzzy
-#~ msgid "Channels: %d"
-#~ msgstr "Ðанали:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "\n"
-#~ "ÐагалÑна довжина: %d:%d\n"
-
-#, fuzzy
-#~ msgid "Filesize: %ld B"
-#~ msgstr "РозмÑÑ ÑайлÑ:"
-
-#~ msgid "Comment:"
-#~ msgstr "ÐоменÑаÑ:"
-
-#~ msgid "Date:"
-#~ msgstr "ÐаÑа:"
-
-#~ msgid "Track number:"
-#~ msgstr "ÐÐ¾Ð¼ÐµÑ Ð´Ð¾ÑÑжки:"
-
-#~ msgid "Genre:"
-#~ msgstr "СÑилÑ:"
-
-#, fuzzy
-#~ msgid "Remove Tag"
-#~ msgstr "/ÐидалиÑи вÑе"
-
-#, fuzzy
-#~ msgid "FLAC Info:"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо компакÑ"
-
-#, fuzzy
-#~ msgid "File Info - %s"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо Ñайл"
-
-#~ msgid "Error"
-#~ msgstr "Ðомилка"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "ШУÐÐЮ %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð½Ð°Ð¹Ñи Ñ
оÑÑ %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "Ð'ÐÐÐУЮСЬ Ð %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð¿Ñд'ÑднаÑиÑÑ Ð´Ð¾ Ñ
оÑÑÑ %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "ÐÐ'ÐÐÐÐÐÐ: ЧÐÐÐЮ ÐÐ ÐÐÐÐÐÐÐÐЬ"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Ðе Ð¼Ð¾Ð¶Ñ Ð¿ÑдклÑÑиÑиÑÑ Ð´Ð¾ Ñ
оÑÑа %s\n"
-#~ "СеÑÐ²ÐµÑ Ð¿Ð¾Ð²Ñдомив: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "ÐÐ Ð-ÐУФÐÐ : %dÐб/%dÐб"
-
-#, fuzzy
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð¿ÑдÑÑимки аÑдÑо компакÑ-диÑкÑв"
-
-#, fuzzy
-#~ msgid "ModPlug Configuration"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки MikMod"
-
-#~ msgid "16 bit"
-#~ msgstr "16 бÑÑ"
-
-#~ msgid "8 bit"
-#~ msgstr "8 бÑÑ"
-
-#, fuzzy
-#~ msgid "Resampling"
-#~ msgstr "ÐоÑÑк"
-
-#, fuzzy
-#~ msgid "Fast Playlist Info"
-#~ msgstr "ÐаванÑажии ÑпиÑок пÑогÑаваннÑ"
-
-#, fuzzy
-#~ msgid "Reverb"
-#~ msgstr "СеÑвеÑ"
-
-#, fuzzy
-#~ msgid "Depth"
-#~ msgstr "ÐÑеÑ"
-
-#, fuzzy
-#~ msgid "Amount"
-#~ msgstr "ÐÑо пÑогÑамÑ"
-
-#, fuzzy
-#~ msgid "Range"
-#~ msgstr "Рейв"
-
-#, fuzzy
-#~ msgid "MOD Info"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо компакÑ"
-
-#, fuzzy
-#~ msgid "Samples"
-#~ msgstr "СалÑÑа"
-
-#, fuzzy
-#~ msgid "Instruments"
-#~ msgstr "ÐнÑÑÑÑменÑалÑна"
-
-#, fuzzy
-#~ msgid "About Modplug"
-#~ msgstr "ÐÑо модÑÐ»Ñ ESounD"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки ÑоÑмаÑÑ MPEG"
-
-#~ msgid "Resolution:"
-#~ msgstr "РоздÑлÑнÑÑÑÑ:"
-
-#~ msgid "Channels:"
-#~ msgstr "Ðанали:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "СÑеÑео (ÑкÑо наÑвне)"
-
-#~ msgid "Down sample:"
-#~ msgstr "ÐменÑиÑи ÑаÑÑоÑÑ ÑакÑÑваннÑ:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 кÐÑ)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 кÐÑ)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 кÐÑ)"
-
-#~ msgid "Decoder"
-#~ msgstr "ÐекодÑваннÑ"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "ID3-Ñеги:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "ФоÑÐ¼Ð°Ñ ID3-ÑегÑ:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Ðб'Ñднане ÑÑеÑео"
-
-#~ msgid "Dual channel"
-#~ msgstr "ÐодвÑйний канал"
-
-#~ msgid "Single channel"
-#~ msgstr "ÐдинаÑний канал"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d кÐÑÑ/Ñ"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld ÐÑ"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 мÑ"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "ÐÑ"
-
-#~ msgid "Yes"
-#~ msgstr "Так"
-
-#~ msgid " MPEG Info "
-#~ msgstr " ÐнÑоÑмаÑÑÑ MPEG: "
-
-#~ msgid "MPEG Level:"
-#~ msgstr "MPEG ÑÑвенÑ:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "ÐÑÑова ÑаÑÑоÑа:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "ЧаÑÑоÑа:"
-
-#~ msgid "File size:"
-#~ msgstr "РозмÑÑ ÑайлÑ:"
-
-#, fuzzy
-#~ msgid "Mode:"
-#~ msgstr "ÐиÑа"
-
-#~ msgid "Error Protection:"
-#~ msgstr "ÐаÑ
иÑÑ Ð²Ñд помилок:"
-
-#~ msgid "Copyright:"
-#~ msgstr "ÐвÑоÑÑÑке пÑаво:"
-
-#~ msgid "Original:"
-#~ msgstr "ÐÑигÑналÑний:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "ÐиÑазний:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr " ID3-Ñег "
-
-#~ msgid "Year:"
-#~ msgstr "Ð Ñк:"
-
-#~ msgid "N/A"
-#~ msgstr "N/A"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu байÑ"
-
-#, fuzzy
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð¿Ñд'ÑднаÑиÑÑ Ð´Ð¾ Ñ
оÑÑÑ %s"
-
-#, fuzzy
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "ÐÐ Ð-ÐУФÐÐ : %dÐб/%dÐб"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ Ð¿ÑдÑÑимки ÑоÑмаÑÑ MPEG"
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð¿ÑдÑÑимки MPEG"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки MikMod"
-
-#, fuzzy
-#~ msgid "Sample Width"
-#~ msgstr "ЧаÑÑоÑа:"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки MikMod"
-
-#, fuzzy
-#~ msgid "TiMidity Player %s"
-#~ msgstr "ÐÑогÑÐ°Ð²Ð°Ñ MikMod %s"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "ÐодÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ð° диÑк %s"
-
-#, fuzzy
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð°Ð²Ð°Ð½ÑижиÑи ÑпеÑиÑÑкаÑÐ¾Ñ Ð²Ð¸ÑÑвнÑваннÑ"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr "ÐибеÑÑÑÑ Ð´Ð¸ÑекÑоÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¿Ð¾ÑокÑв Ogg Vorbis:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "ÐмÑна налаÑÑÑÐ²Ð°Ð½Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑдÑÑимки ÑоÑмаÑÑ Ogg Vorbis"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Теги Ogg Vorbis:"
-
-#~ msgid "ReplayGain Settings:"
-#~ msgstr "УÑÑановки Ð´Ð»Ñ Ð¿ÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿ÑогÑаваннÑ"
-
-#~ msgid "ReplayGain Type:"
-#~ msgstr "Тип пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð¿ÑогаваннÑ:"
-
-#~ msgid "use Track Gain/Peak"
-#~ msgstr "коÑиÑÑÑваÑиÑÑ Ð¿ÑдÑиленнÑм/пÑковими ÑÑвнÑми Ð´Ð»Ñ Ð´Ð¾ÑÑжок"
-
-#~ msgid "use Album Gain/Peak"
-#~ msgstr "коÑиÑÑÑваÑиÑÑ Ð¿ÑдÑиленнÑм/пÑковими ÑÑвнÑми Ð´Ð»Ñ Ð°Ð»ÑбомÑ"
-
-#~ msgid "Enable 6dB Boost + Hard Limiting"
-#~ msgstr "ÐозволиÑи пÑдÑÐ¸Ð»ÐµÐ½Ð½Ñ 6дР+ жоÑÑÑке обмеженнÑ"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "СÑалаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "Ðомилка!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð¼ÑниÑи Ñег(вÑдкÑиÑи)"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð¼ÑниÑи Ñег(закÑиÑи)"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð¼ÑниÑи Ñег"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Тег Ogg Vorbis "
-
-#~ msgid "Description:"
-#~ msgstr "ÐпиÑ:"
-
-#~ msgid "Version:"
-#~ msgstr "ÐеÑÑÑÑ:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "ÐÐ¾Ð¼ÐµÑ ISRC:"
-
-#~ msgid "Organization:"
-#~ msgstr "ÐÑганÑзаÑÑÑ:"
-
-#~ msgid " Ogg Vorbis ReplayGain "
-#~ msgstr " Ogg Vorbis ReplayGain"
-
-#~ msgid "Album peak:"
-#~ msgstr "ÐÑковий ÑÑÐ²ÐµÐ½Ñ Ð°Ð»Ñбома:"
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ogg Vorbis: "
-
-#~ msgid "Length:"
-#~ msgstr "Ðовжина:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d кÐÑÑ/Ñ (номÑнал)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d ÐÑ"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d байÑ"
-
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð¿ÑдÑÑимки Ogg Vorbis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ Ð¿ÑддÑÑимки ÑоÑмаÑÑ Ogg Vorbis"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "ÐодÑÐ»Ñ Ogg Vorbis вÑд ФÑндаÑÑÑ Xing.org\n"
-#~ "\n"
-#~ "ÐÑогÑамÑваннÑ\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "ÐнеÑки вÑд\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "ÐÑдвÑдайÑе майданÑик ÑÑндаÑÑÑ Xing.org за адÑеÑÐ¾Ñ http://www.xiph.org/\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA 02110-1301 USA"
-#~ msgstr ""
-#~ "ÐодÑÐ»Ñ XMMS ESounD\n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама належиÑÑ Ð´Ð¾ вÑлÑного пÑогÑамного забезпеÑеннÑ. Ðи маÑÑе\n"
-#~ "пÑаво ÑозповÑÑджÑваÑи Ñа/або видозмÑнÑваÑи ÑÑ ÐºÐµÑÑÑÑиÑÑ Ð¿Ñи ÑÑомÑ\n"
-#~ "Ñмовами ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñ ÑÐ°ÐºÐ¾Ð¼Ñ Ð²Ð¸Ð³Ð»ÑдÑ, Ñк вона\n"
-#~ "бÑла опÑблÑкована ФÑндаÑÑÑÑ ÐÑлÑного ÐÑогÑамного забезпеÑÐµÐ½Ð½Ñ (Free\n"
-#~ "Software Foundation) або веÑÑÑÑÑ 2 ÐÑÑензÑÑ, або (на ÐÐ°Ñ Ð²Ð¸Ð±ÑÑ)\n"
-#~ "бÑдÑ-ÑÐºÐ¾Ñ Ð¿ÑзнÑÑÐ¾Ñ Ð²ÐµÑÑÑÑÑ.\n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама ÑозповÑÑджÑÑÑÑÑÑ Ñз ÑподÑваннÑми, Ñо вона може бÑÑи\n"
-#~ "коÑиÑноÑ, але ÐÐÐ ÐÐЯÐÐÐ ÐÐÐ ÐÐТÐÐ, навÑÑÑ Ð±ÐµÐ· ÑÑÐ²Ð½Ð¾Ñ Ð³Ð°ÑанÑÑÑ Ñого, Ñо\n"
-#~ "ÑÑ Ð¿ÑогÑама може бÑÑи ÐУÐÐÐÐÐЮ або ÐÐÐÐ¥ÐÐÐТЬ ÐÐРЯÐУСЬ ÐÐÐÐУ\n"
-#~ "ÐÐТУ. ÐодалÑÑÑ Ð¿Ð¾Ð´ÑобиÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ Ñ ÐагалÑнÑй ÐÑблÑÑнÑй ÐÑÑензÑÑ GNU.\n"
-#~ "\n"
-#~ "Ðи маÑÑе оÑÑимаÑи копÑÑ ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñазом з ÑÑÑÑ\n"
-#~ "пÑогÑамоÑ. ЯкÑо ж Ð½Ñ Ð½Ð°Ð¿Ð¸ÑÑÑÑ Ñ Ð¤ÑндаÑÑÑ ÐÑлÑного ÐÑогÑамного\n"
-#~ "забезпеÑÐµÐ½Ð½Ñ Ð·Ð° адÑеÑÐ¾Ñ 59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð¿ÑдÑÑимки WAV"
-
-#, fuzzy
-#~ msgid "WMA Player %s"
-#~ msgstr "ÐÑогÑÐ°Ð²Ð°Ñ MikMod %s"
-
-#, fuzzy
-#~ msgid "About %s"
-#~ msgstr "ÐÑо пÑогÑамÑ"
-
-#, fuzzy
-#~ msgid " Close "
-#~ msgstr "/ÐакÑиÑи"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "ÐÑо модÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ OSS"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "ÐÑÐ°Ð¹Ð²ÐµÑ XMMS OSS \n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама належиÑÑ Ð´Ð¾ вÑлÑного пÑогÑамного забезпеÑеннÑ. Ðи маÑÑе\n"
-#~ "пÑаво ÑозповÑÑджÑваÑи Ñа/або видозмÑнÑваÑи ÑÑ ÐºÐµÑÑÑÑиÑÑ Ð¿Ñи ÑÑомÑ\n"
-#~ "Ñмовами ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñ ÑÐ°ÐºÐ¾Ð¼Ñ Ð²Ð¸Ð³Ð»ÑдÑ, Ñк вона\n"
-#~ "бÑла опÑблÑкована ФÑндаÑÑÑÑ ÐÑлÑного ÐÑогÑамного забезпеÑÐµÐ½Ð½Ñ (Free\n"
-#~ "Software Foundation) або веÑÑÑÑÑ 2 ÐÑÑензÑÑ, або (на ÐÐ°Ñ Ð²Ð¸Ð±ÑÑ)\n"
-#~ "бÑдÑ-ÑÐºÐ¾Ñ Ð¿ÑзнÑÑÐ¾Ñ Ð²ÐµÑÑÑÑÑ.\n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама ÑозповÑÑджÑÑÑÑÑÑ Ñз ÑподÑваннÑми, Ñо вона може бÑÑи\n"
-#~ "коÑиÑноÑ, але ÐÐÐ ÐÐЯÐÐÐ ÐÐÐ ÐÐТÐÐ, навÑÑÑ Ð±ÐµÐ· ÑÑÐ²Ð½Ð¾Ñ Ð³Ð°ÑанÑÑÑ Ñого, Ñо\n"
-#~ "ÑÑ Ð¿ÑогÑама може бÑÑи ÐУÐÐÐÐÐЮ або ÐÐÐÐ¥ÐÐÐТЬ ÐÐРЯÐУСЬ ÐÐÐÐУ\n"
-#~ "ÐÐТУ. ÐодалÑÑÑ Ð¿Ð¾Ð´ÑобиÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ Ñ ÐагалÑнÑй ÐÑблÑÑнÑй ÐÑÑензÑÑ GNU.\n"
-#~ "\n"
-#~ "Ðи маÑÑе оÑÑимаÑи копÑÑ ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñазом з ÑÑÑÑ\n"
-#~ "пÑогÑамоÑ. ЯкÑо ж Ð½Ñ Ð½Ð°Ð¿Ð¸ÑÑÑÑ Ñ Ð¤ÑндаÑÑÑ ÐÑлÑного ÐÑогÑамного\n"
-#~ "забезпеÑÐµÐ½Ð½Ñ Ð·Ð° адÑеÑÐ¾Ñ 59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "ÐÑновний (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð´ÑайвеÑа OSS"
-
-#~ msgid "Audio device:"
-#~ msgstr "ÐвÑковий пÑиÑÑÑÑй:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "ÐоÑиÑÑÑваÑиÑÑ ÑнÑим пÑиÑÑÑоÑм:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "ÐÑиÑÑÑÑй мÑкÑеÑа:"
-
-#~ msgid "Devices"
-#~ msgstr "ÐÑиÑÑÑоÑ"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "РозмÑÑ Ð±ÑÑеÑа (мÑ):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "УÑÑановки мÑкÑеÑа:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "ÐÑÑнÑÑÑÑ ÐºÐµÑÑÑ Master, а не PCM"
-
-#~ msgid "Mixer"
-#~ msgstr "ÐÑкÑеÑ"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "ÐÑо дÑÐ°Ð¹Ð²ÐµÑ ALSA"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "ÐÑÐ°Ð¹Ð²ÐµÑ XMMS ALSA \n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама належиÑÑ Ð´Ð¾ вÑлÑного пÑогÑамного забезпеÑеннÑ. Ðи маÑÑе\n"
-#~ "пÑаво ÑозповÑÑджÑваÑи Ñа/або видозмÑнÑваÑи ÑÑ ÐºÐµÑÑÑÑиÑÑ Ð¿Ñи ÑÑомÑ\n"
-#~ "Ñмовами ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñ ÑÐ°ÐºÐ¾Ð¼Ñ Ð²Ð¸Ð³Ð»ÑдÑ, Ñк вона\n"
-#~ "бÑла опÑблÑкована ФÑндаÑÑÑÑ ÐÑлÑного ÐÑогÑамного забезпеÑÐµÐ½Ð½Ñ (Free\n"
-#~ "Software Foundation) або веÑÑÑÑÑ 2 ÐÑÑензÑÑ, або (на ÐÐ°Ñ Ð²Ð¸Ð±ÑÑ)\n"
-#~ "бÑдÑ-ÑÐºÐ¾Ñ Ð¿ÑзнÑÑÐ¾Ñ Ð²ÐµÑÑÑÑÑ.\n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама ÑозповÑÑджÑÑÑÑÑÑ Ñз ÑподÑваннÑми, Ñо вона може бÑÑи\n"
-#~ "коÑиÑноÑ, але ÐÐÐ ÐÐЯÐÐÐ ÐÐÐ ÐÐТÐÐ, навÑÑÑ Ð±ÐµÐ· ÑÑÐ²Ð½Ð¾Ñ Ð³Ð°ÑанÑÑÑ Ñого, Ñо\n"
-#~ "ÑÑ Ð¿ÑогÑама може бÑÑи ÐУÐÐÐÐÐЮ або ÐÐÐÐ¥ÐÐÐТЬ ÐÐРЯÐУСЬ ÐÐÐÐУ\n"
-#~ "ÐÐТУ. ÐодалÑÑÑ Ð¿Ð¾Ð´ÑобиÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ Ñ ÐагалÑнÑй ÐÑблÑÑнÑй ÐÑÑензÑÑ GNU.\n"
-#~ "\n"
-#~ "Ðи маÑÑе оÑÑимаÑи копÑÑ ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñазом з ÑÑÑÑ\n"
-#~ "пÑогÑамоÑ. ЯкÑо ж Ð½Ñ Ð½Ð°Ð¿Ð¸ÑÑÑÑ Ñ Ð¤ÑндаÑÑÑ ÐÑлÑного ÐÑогÑамного\n"
-#~ "забезпеÑÐµÐ½Ð½Ñ Ð·Ð° адÑеÑÐ¾Ñ 59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ Ð·Ð²ÑÐºÑ ALSA %s"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "ÐевÑдома звÑкова каÑÑа"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "ÐÑновний PCM пÑиÑÑÑÑй (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð´ÑайвеÑа ALSA"
-
-#~ msgid "Mixer:"
-#~ msgstr "ÐÑкÑеÑ:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "ÐÑиÑÑÑÑй мÑкÑеÑа:"
-
-#~ msgid "Device settings"
-#~ msgstr "УÑÑановки мÑкÑеÑа"
-
-#, fuzzy
-#~ msgid "Soundcard:"
-#~ msgstr "ÐвÑкова доÑÑжка"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Ð§Ð°Ñ Ð±ÑÑеÑа (мÑ):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "РозмÑÑ Ð¿ÐµÑÑÐ¾Ð´Ñ (мÑ):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "ÐодаÑÐºÐ¾Ð²Ñ ÑÑÑановки"
-
-#, fuzzy
-#~ msgid "aRts Driver configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð´ÑайвеÑа OSS"
-
-#~ msgid "Disk Writer Plugin %s"
-#~ msgstr "ÐодÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ð° диÑк %s"
-
-#~ msgid ""
-#~ "You cannot use the Disk Writer plugin\n"
-#~ "when you're running in realtime mode."
-#~ msgstr ""
-#~ "Ðи не можеÑе викоÑиÑÑовÑваÑи модÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ð° диÑк\n"
-#~ "пÑаÑÑÑÑи в ÑÐµÐ¶Ð¸Ð¼Ñ ÑеалÑного ÑаÑÑ."
-
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "ÐибеÑÑÑÑ Ð´Ð¸ÑекÑоÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¿Ð¾ÑокÑв MPEG:"
-
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ð° диÑк"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "ÐодÑÐ»Ñ XMMS ESounD\n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама належиÑÑ Ð´Ð¾ вÑлÑного пÑогÑамного забезпеÑеннÑ. Ðи маÑÑе\n"
-#~ "пÑаво ÑозповÑÑджÑваÑи Ñа/або видозмÑнÑваÑи ÑÑ ÐºÐµÑÑÑÑиÑÑ Ð¿Ñи ÑÑомÑ\n"
-#~ "Ñмовами ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñ ÑÐ°ÐºÐ¾Ð¼Ñ Ð²Ð¸Ð³Ð»ÑдÑ, Ñк вона\n"
-#~ "бÑла опÑблÑкована ФÑндаÑÑÑÑ ÐÑлÑного ÐÑогÑамного забезпеÑÐµÐ½Ð½Ñ (Free\n"
-#~ "Software Foundation) або веÑÑÑÑÑ 2 ÐÑÑензÑÑ, або (на ÐÐ°Ñ Ð²Ð¸Ð±ÑÑ)\n"
-#~ "бÑдÑ-ÑÐºÐ¾Ñ Ð¿ÑзнÑÑÐ¾Ñ Ð²ÐµÑÑÑÑÑ.\n"
-#~ "\n"
-#~ "Ð¦Ñ Ð¿ÑогÑама ÑозповÑÑджÑÑÑÑÑÑ Ñз ÑподÑваннÑми, Ñо вона може бÑÑи\n"
-#~ "коÑиÑноÑ, але ÐÐÐ ÐÐЯÐÐÐ ÐÐÐ ÐÐТÐÐ, навÑÑÑ Ð±ÐµÐ· ÑÑÐ²Ð½Ð¾Ñ Ð³Ð°ÑанÑÑÑ Ñого, Ñо\n"
-#~ "ÑÑ Ð¿ÑогÑама може бÑÑи ÐУÐÐÐÐÐЮ або ÐÐÐÐ¥ÐÐÐТЬ ÐÐРЯÐУСЬ ÐÐÐÐУ\n"
-#~ "ÐÐТУ. ÐодалÑÑÑ Ð¿Ð¾Ð´ÑобиÑÑ Ð´Ð¸Ð²ÑÑÑÑÑ Ñ ÐагалÑнÑй ÐÑблÑÑнÑй ÐÑÑензÑÑ GNU.\n"
-#~ "\n"
-#~ "Ðи маÑÑе оÑÑимаÑи копÑÑ ÐагалÑÐ½Ð¾Ñ ÐÑблÑÑÐ½Ð¾Ñ ÐÑÑензÑÑ GNU Ñазом з ÑÑÑÑ\n"
-#~ "пÑогÑамоÑ. ЯкÑо ж Ð½Ñ Ð½Ð°Ð¿Ð¸ÑÑÑÑ Ñ Ð¤ÑндаÑÑÑ ÐÑлÑного ÐÑогÑамного\n"
-#~ "забезпеÑÐµÐ½Ð½Ñ Ð·Ð° адÑеÑÐ¾Ñ 59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "Host:"
-#~ msgstr "ХоÑÑ:"
-
-#~ msgid "Use remote host"
-#~ msgstr "ÐоÑиÑÑÑваÑиÑÑ Ð²Ñддаленим Ñ
оÑÑом"
-
-#~ msgid "Volume controls OSS mixer"
-#~ msgstr "ÐÑÑнÑÑÑÑ ÐºÐµÑÑÑ Ð¼ÑкÑÐµÑ OSS"
-
-#~ msgid "Server"
-#~ msgstr "СеÑвеÑ"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "ÐиÑ
Ñдний модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "ÐиÑ
Ñдний модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid "About the Sun Driver"
-#~ msgstr "ÐÑо модÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ OSS"
-
-#, fuzzy
-#~ msgid "Audio control device:"
-#~ msgstr "ÐвÑковий пÑиÑÑÑÑй:"
-
-#, fuzzy
-#~ msgid "Volume controls device:"
-#~ msgstr "ÐеÑÑÐ²Ð°Ð½Ð½Ñ Ð³ÑÑнÑÑÑÑ:"
-
-#, fuzzy
-#~ msgid "Sun driver configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð´ÑайвеÑа OSS"
-
-#~ msgid "/Toggle Decorations"
-#~ msgstr "/ÐеÑемикнÑÑи вÑдобÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð¾Ð±ÑамленнÑ"
-
-#~ msgid "Blur scope"
-#~ msgstr "РозмиÑий оÑÑилоÑкоп"
-
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "РозмиÑий оÑÑилоÑкоп: вибÑÑ ÐºÐ¾Ð»ÑоÑÑ"
-
-#~ msgid "Options:"
-#~ msgstr "ÐаÑамеÑÑи:"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** ÐÐÐÐÐÐÐÐÐ Ð ÐÐÐÐРУСУÐУТР**"
-
-#, fuzzy
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>ÐÑдÑвоÑеннÑ</b>"
-
-#, fuzzy
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
-
-#~ msgid "Warning"
-#~ msgstr "ÐаÑÑеÑеженнÑ"
-
-#~ msgid "Song Change Configuration"
-#~ msgstr "ÐонÑÑгÑÑаÑÑÑ Ð¿ÑогÑаваÑа компакÑ-диÑкÑв"
-
-#, fuzzy
-#~ msgid "Song Metadata"
-#~ msgstr "СонаÑа"
-
-#, fuzzy
-#~ msgid "Port"
-#~ msgstr "ÐоÑÑ:"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "Ðазва ÑайлÑ"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "Ðазва доÑÑжки"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "ÐодÑÐ»Ñ Ð²Ð¸Ð²Ð¾Ð´Ñ Ð·Ð²ÑÐºÑ ALSA %s"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr ""
-#~ "ÐеÑеÑвоÑÑваÑи ID3-Ñеги (назви пÑÑÐµÐ½Ñ ÑоÑо) з локалÑного кодÑÐ²Ð°Ð½Ð½Ñ Ð² ЮнÑкод"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "ÐодÑÐ²Ð°Ð½Ð½Ñ ID3-ÑегÑв:"
-
-#, fuzzy
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr ""
-#~ "ÐеÑеÑвоÑÑваÑи ID3-Ñеги (назви пÑÑÐµÐ½Ñ ÑоÑо) з локалÑного кодÑÐ²Ð°Ð½Ð½Ñ Ð² ЮнÑкод"
-
-#, fuzzy
-#~ msgid "Vorbis encoding:"
-#~ msgstr "ÐодÑÐ²Ð°Ð½Ð½Ñ ID3-ÑегÑв:"
-
-#, fuzzy
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>ÐÑзÑалÑзаÑÑÑ</b>"
-
-#, fuzzy
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "Ðанали:"
-
-#, fuzzy
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Ðм'Ñ ÑайлÑ</b>"
-
-#, fuzzy
-#~ msgid "WMA Info"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð¿Ñо компакÑ"
-
-#, fuzzy
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>_ШÑиÑÑи</b>"
-
-#, fuzzy
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>ÐÑдÑвоÑеннÑ</b>"
-
-#, fuzzy
-#~ msgid "Tags"
-#~ msgstr "ТанÒо"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastian Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev <dan at ats.energo.ru>"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÐодÑлÑ</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "_СпиÑок модÑлÑв пÑдÑÑимки мÑзиÑниÑ
ÑоÑмаÑÑв:"
-
-#, fuzzy
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "ÐмÑни задÑÑÐ½Ñ Ð² конÑигÑÑаÑÑÑ Ð±Ð°Ð·Ð¸ даниÑ
BMP, але не маÑимÑÑÑ ÐµÑекÑÑ Ð¿Ñд "
-#~ "ÑÐ°Ñ Ð¿ÑогÑÐ°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾ наÑÑÑÐ¿Ð½Ð¾Ñ Ð¿ÑÑнÑ!\n"
-#~ "\n"
-#~ "Щоб змÑни подÑÑли, ви можеÑе пеÑезапÑÑÑиÑи пÑогÑаваннÑ."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÐовнÑÑнÑй виглÑд</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÐиÑа</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>СпиÑок пÑогÑаваннÑ</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>ÐквалайзеÑ</b></span>"
-
-#~ msgid "Use proxy"
-#~ msgstr "ÐоÑиÑÑÑваÑиÑÑ Ð¿ÑокÑÑ"
-
-#~ msgid "Frames:"
-#~ msgstr "ÐадÑÑв:"
-
-#~ msgid ""
-#~ "Variable,\n"
-#~ "avg. bitrate: %d KBit/s"
-#~ msgstr ""
-#~ "ÐмÑнна,\n"
-#~ "CеÑÐµÐ´Ð½Ñ Ð±ÑÑова ÑаÑÑоÑа:: %d кб/Ñ"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to write to file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð°Ð¿Ð¸ÑаÑи в Ñайл: %s"
-
-#~ msgid "Couldn't write tag!"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ Ð·Ð°Ð¿Ð¸ÑаÑи Ñег!"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to open file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Ðе Ð¼Ð¾Ð¶Ñ Ð²ÑдкÑиÑи Ñайл: %s"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to truncate file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Ðеможливо обÑÑзаÑи Ñайл: %s"
-
-#~ msgid "Couldn't remove tag!"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ ÑÑеÑÑи Ñег!"
-
-#~ msgid "No tag to remove!"
-#~ msgstr "ÐÐµÐ¼Ð°Ñ ÑÐµÐ³Ñ Ð´Ð»Ñ ÑÑиÑаннÑ!"
-
-#~ msgid "Copy album tags"
-#~ msgstr "ÐопÑÑваÑи Ñеги алÑбомÑ"
-
-#~ msgid "Paste album tags"
-#~ msgstr "ÐÑÑавиÑи Ñеги алÑбомÑ"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ Ð¿ÑдÑÑимки ÑоÑмаÑÑ MPEG"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin"
-#~ msgstr "ÐодÑÐ»Ñ Ð¿ÑдÑÑимки MPEG"
-
-#, fuzzy
-#~ msgid "Downsample:"
-#~ msgstr "ÐменÑиÑи ÑаÑÑоÑÑ ÑакÑÑваннÑ:"
-
-#~ msgid "Look for hidden patterns in modules "
-#~ msgstr "ШÑкаÑи пÑиÑ
Ð¾Ð²Ð°Ð½Ñ Ð·Ñазки в модÑлÑÑ
"
-
-#~ msgid "Content"
-#~ msgstr "ÐизнаÑаÑи Ñип по вмÑÑÑÑ"
-
-#~ msgid "Extension"
-#~ msgstr "ÐизнаÑаÑи Ñип по ÑозÑиÑеннÑ"
-
-#~ msgid "Extension and content"
-#~ msgstr "ÐизнаÑаÑи Ñип по ÑозÑиÑÐµÐ½Ð½Ñ Ñ Ð²Ð¼ÑÑÑÑ"
-
-#~ msgid "%s - BMP"
-#~ msgstr "%s - BMP"
-
-#, fuzzy
-#~ msgid "About Libvisual XMMS Plugin"
-#~ msgstr "ÐÑо модÑÐ»Ñ ESounD"
-
-#, fuzzy
-#~ msgid "Visualization Plugins"
-#~ msgstr "СпиÑок модÑлÑв _вÑзÑалÑзаÑÑÑ:"
-
-#~ msgid "All plugins"
-#~ msgstr "ÐодÑлÑ"
-
-#~ msgid "Only non GL plugins"
-#~ msgstr "ТÑлÑки ÐÐ GL модÑлÑ"
-
-#~ msgid "Only GL plugins"
-#~ msgstr "ТÑлÑки GL модÑлÑ"
-
-#~ msgid "Accept"
-#~ msgstr "ÐÑийнÑÑи"
-
-#, fuzzy
-#~ msgid " (enabled)"
-#~ msgstr "Ðмикнено"
-
-#, fuzzy
-#~ msgid "Version: "
-#~ msgstr "ÐеÑÑÑÑ:"
-
-#~ msgid "Author: "
-#~ msgstr "ÐвÑоÑ: "
-
-#~ msgid " error"
-#~ msgstr " помилка"
-
-#~ msgid "There is no info for this plugin"
-#~ msgstr "ÐнÑоÑмаÑÑÑ Ð´Ð»Ñ ÑÑого модÑÐ»Ñ Ð½Ðµ наÑвна"
-
-#~ msgid "The list of input plugins is empty."
-#~ msgstr "СиÑок модÑлÑв Ð²Ð²Ð¾Ð´Ñ Ð¿Ð¾ÑожнÑй"
-
-#~ msgid "Cannot initialize SDL!\n"
-#~ msgstr "Ðе Ð¼Ð¾Ð¶Ñ ÑнÑÑÑалÑзÑваÑи SDL!\n"
-
-#~ msgid " will not be loaded."
-#~ msgstr " не бÑде заванÑажено"
-
-#~ msgid "Last plugin: (none)"
-#~ msgstr "ÐÑÑаннÑй модÑлÑ: (вÑдÑÑÑнÑй)"
-
-#~ msgid "Last plugin: %s"
-#~ msgstr "ÐÑÑаннÑй модÑлÑ: %s"
-
-#~ msgid "Special thanks to:"
-#~ msgstr "ÐÑÐ¾Ð±Ð»Ð¸Ð²Ñ Ð¿Ð¾Ð´Ñки:"
-
-#~ msgid "bmp: %s"
-#~ msgstr "BMP: %s"
-
-#~ msgid "/Play Directory"
-#~ msgstr "/ÐÑогÑаваÑи каÑалог"
-
-#~ msgid "Add Folders"
-#~ msgstr "ÐодаÑи каÑалог"
-
-#~ msgid "DISABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ÐÐÐÐÐ ÐÐÐТРСÐÐÐÐÐÐÐЯ ÐÐÐÐРУ (N/A)"
+msgstr "ÐоказаÑи паÑамеÑÑи кеÑÑÐ²Ð°Ð½Ð½Ñ ÑеанÑами"
-#~ msgid "ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ÐÐÐÐÐÐÐТРСÐÐÐÐÐÐÐЯ ÐÐÐÐРУ (N/A)"
-#, fuzzy
-#~ msgid "/Add Folders..."
-#~ msgstr "/ÐодаÑи Ñайли..."
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..482233f
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,1217 @@
+# Vietnamese translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Lê Trưá»ng An <truongan at linuxmail.org>, 2011.
+# Lê Trưá»ng An <truongan at linuxmail.org>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2011-12-30 08:37+0000\n"
+"Last-Translator: Lê Trưá»ng An <truongan at linuxmail.org>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Äang tìm ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d táºp tin ÄÆ°á»£c tìm thấy"
+
+#: src/audacious/chardet.c:39
+msgid " (invalid UTF-8)"
+msgstr " (UTF-8 không hợp lá»)"
+
+#: src/audacious/credits.c:35
+msgid "Core developers:"
+msgstr "Phát triá»n chÃnh:"
+
+#: src/audacious/credits.c:49
+msgid "Graphics:"
+msgstr "Äá» há»a:"
+
+#: src/audacious/credits.c:54
+msgid "Default skin:"
+msgstr "Giao diá»n mặc Äá»nh:"
+
+#: src/audacious/credits.c:60
+msgid "Plugin development:"
+msgstr "Phát triá»n trình cắm:"
+
+#: src/audacious/credits.c:83
+msgid "Patch authors:"
+msgstr "Tác giả bản vá:"
+
+#: src/audacious/credits.c:127
+msgid "1.x developers:"
+msgstr "Phát triá»n phiên bản 1.x:"
+
+#: src/audacious/credits.c:149
+msgid "BMP Developers:"
+msgstr "Phát triá»n BPM:"
+
+#: src/audacious/credits.c:181
+msgid "Belarusian:"
+msgstr "Tiếng Belarus:"
+
+#: src/audacious/credits.c:184
+msgid "Basque:"
+msgstr "Tiếng Basque:"
+
+#: src/audacious/credits.c:187
+msgid "Brazilian Portuguese:"
+msgstr "Tiếng Bra-xin (Bá» Äà o Nha)"
+
+#: src/audacious/credits.c:192
+msgid "Breton:"
+msgstr "Tiếng Breton:"
+
+#: src/audacious/credits.c:195
+msgid "Bulgarian:"
+msgstr "Tiếng Bun-ga-ri:"
+
+#: src/audacious/credits.c:198
+msgid "Catalan:"
+msgstr "Tiếng Catalan:"
+
+#: src/audacious/credits.c:202
+msgid "Chinese:"
+msgstr "Tiếng Trung Quá»c:"
+
+#: src/audacious/credits.c:205
+msgid "Croatian:"
+msgstr "Tiếng Croatia:"
+
+#: src/audacious/credits.c:208
+msgid "Czech:"
+msgstr "Tiếng Séc:"
+
+#: src/audacious/credits.c:211
+msgid "Dutch:"
+msgstr "Tiếng Hà Lan:"
+
+#: src/audacious/credits.c:215
+msgid "Estonian:"
+msgstr "Tiếng Ãs-tô-ni-a:"
+
+#: src/audacious/credits.c:218
+msgid "Finnish:"
+msgstr "Tiếng Phần Lan:"
+
+#: src/audacious/credits.c:223
+msgid "French:"
+msgstr "Tiếng Pháp:"
+
+#: src/audacious/credits.c:229
+msgid "German:"
+msgstr "Tiếng Äức:"
+
+#: src/audacious/credits.c:236
+msgid "Georgian:"
+msgstr "Tiếng Georgian:"
+
+#: src/audacious/credits.c:239
+msgid "Greek:"
+msgstr "Tiếng Hy Lạp:"
+
+#: src/audacious/credits.c:244
+msgid "Hindi:"
+msgstr "Tiếng Hin-Äi:"
+
+#: src/audacious/credits.c:247
+msgid "Hungarian:"
+msgstr "Tiếng Hun-ga-ri:"
+
+#: src/audacious/credits.c:251
+msgid "Italian:"
+msgstr "Tiếng Ã:"
+
+#: src/audacious/credits.c:256
+msgid "Japanese:"
+msgstr "Tiếng Nháºt:"
+
+#: src/audacious/credits.c:259
+msgid "Korean:"
+msgstr "Tiếng Hà n:"
+
+#: src/audacious/credits.c:262
+msgid "Latvian:"
+msgstr "Tiếng Lat-vi-a:"
+
+#: src/audacious/credits.c:265
+msgid "Lithuanian:"
+msgstr "Tiếng Lithuania:"
+
+#: src/audacious/credits.c:270
+msgid "Macedonian:"
+msgstr "Tiếng Macedonia:"
+
+#: src/audacious/credits.c:273
+msgid "Polish:"
+msgstr "Tiếng Ba Lan:"
+
+#: src/audacious/credits.c:279
+msgid "Portuguese:"
+msgstr "Tiếng Bá» Äà o Nha:"
+
+#: src/audacious/credits.c:282
+msgid "Romanian:"
+msgstr "Tiếng Rumani:"
+
+#: src/audacious/credits.c:286
+msgid "Russian:"
+msgstr "Tiếng Nga:"
+
+#: src/audacious/credits.c:290
+msgid "Serbian (Latin):"
+msgstr "Tiếng Séc-bi-a (Latinh):"
+
+#: src/audacious/credits.c:293
+msgid "Serbian (Cyrillic):"
+msgstr "Tiếng Séc-bi-a (Kirin):"
+
+#: src/audacious/credits.c:297
+msgid "Simplified Chinese:"
+msgstr "Tiếng Trung giản thá»:"
+
+#: src/audacious/credits.c:300
+msgid "Slovak:"
+msgstr "Tiếng Slovak:"
+
+#: src/audacious/credits.c:303
+msgid "Spanish:"
+msgstr "Tiếng Tây Ban Nha:"
+
+#: src/audacious/credits.c:311
+msgid "Swedish:"
+msgstr "Tiếng Thụy Äiá»n:"
+
+#: src/audacious/credits.c:314
+msgid "Traditional Chinese:"
+msgstr "Tiếng Trung (phá»n thá»):"
+
+#: src/audacious/credits.c:320
+msgid "Turkish:"
+msgstr "Tiếng ThỠNhĩ Kỳ:"
+
+#: src/audacious/credits.c:324
+msgid "Ukrainian:"
+msgstr "Tiếng U-crai-na:"
+
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Tiếng Viá»t:"
+
+#: src/audacious/credits.c:331
+msgid "Welsh:"
+msgstr "Tiếng xứ Wales:"
+
+#: src/audacious/equalizer_preset.c:180
+#, c-format
+msgid "Error importing Winamp EQF file '%s'"
+msgstr "Lá»i khi nháºp táºp tin EQF cá»§a Winamp '%s'"
+
+#: src/audacious/main.c:243
+msgid "Skip backwards in playlist"
+msgstr "Không xả ngược trong danh sách"
+
+#: src/audacious/main.c:244
+msgid "Start playing current playlist"
+msgstr "Bắt Äầu phát danh sách hiá»n tại"
+
+#: src/audacious/main.c:245
+msgid "Pause current song"
+msgstr "Tạm dừng bà i Äang phát"
+
+#: src/audacious/main.c:246
+msgid "Stop current song"
+msgstr "Dừng phát"
+
+#: src/audacious/main.c:247
+msgid "Pause if playing, play otherwise"
+msgstr "Tạm dừng nếu Äang phát, phát trá» lại nếu Äang tạm dừng"
+
+#: src/audacious/main.c:248
+msgid "Skip forward in playlist"
+msgstr "Không tá»± chuyá»n bà i trong danh sách"
+
+#: src/audacious/main.c:249
+msgid "Display Jump to File dialog"
+msgstr "Hiá»n há»p thoại Chuyá»n Äến táºp tin"
+
+#: src/audacious/main.c:250
+msgid "Add files to the playlist"
+msgstr "Thêm táºp tin và o danh sách"
+
+#: src/audacious/main.c:251
+msgid "Add new files to a temporary playlist"
+msgstr "Thêm táºp tin má»i và o danh sách tạm thá»i"
+
+#: src/audacious/main.c:252
+msgid "Display the main window"
+msgstr "Hiá»n cá»a sá» chÃnh"
+
+#: src/audacious/main.c:253
+msgid "Show version"
+msgstr "Hiá»n phiên bản"
+
+#: src/audacious/main.c:254
+msgid "Print debugging messages"
+msgstr "Hiá»n thông báo gỡ lá»i"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr ""
+
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "T.TIN..."
+
+#: src/audacious/main.c:268
+msgid "- play multimedia files"
+msgstr "- phát táºp tin Äa phương tiá»n"
+
+#: src/audacious/main.c:278
+#, c-format
+msgid ""
+"%s: %s\n"
+"Try `%s --help' for more information.\n"
+msgstr ""
+"%s: %s\n"
+"Chạy `%s --help' Äá» biết thêm thông tin.\n"
+
+#: src/audacious/main.c:572
+msgid "Audacious"
+msgstr "Audacious"
+
+#: src/audacious/playback.c:307
+#, c-format
+msgid "No decoder found for %s."
+msgstr "Không tìm thấy bỠgiải mã cho %s."
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "D.sách má»i"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Äang phát"
+
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Danh sách không thá» ÄÆ°á»£c sắp xếp vì quá trình quét thông tin Äang diá»
n ra "
+"(hoặc bỠtắt)."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Ãm thanh"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Mạng"
+
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
+msgid "Playlist"
+msgstr "Danh sách"
+
+#: src/audacious/ui_preferences.c:88
+msgid "Plugins"
+msgstr "Trình cắm"
+
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
+msgid "Artist"
+msgstr "NghỠsĩ"
+
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
+msgid "Album"
+msgstr "Album"
+
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
+msgid "Title"
+msgstr "Tá»±a Äá»"
+
+#: src/audacious/ui_preferences.c:97
+msgid "Tracknumber"
+msgstr "BÃ i sá»"
+
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
+msgid "Genre"
+msgstr "ThỠloại"
+
+#: src/audacious/ui_preferences.c:99
+msgid "Filename"
+msgstr "Tên táºp tin"
+
+#: src/audacious/ui_preferences.c:100
+msgid "Filepath"
+msgstr "ÄÆ°á»ng dẫn táºp tin"
+
+#: src/audacious/ui_preferences.c:101
+msgid "Date"
+msgstr "Ngà y"
+
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
+msgid "Year"
+msgstr "NÄm"
+
+#: src/audacious/ui_preferences.c:103
+msgid "Comment"
+msgstr "Bình luáºn"
+
+#: src/audacious/ui_preferences.c:104
+msgid "Codec"
+msgstr "BỠgiải mã"
+
+#: src/audacious/ui_preferences.c:105
+msgid "Quality"
+msgstr "Chất lượng"
+
+#: src/audacious/ui_preferences.c:111
+msgid "None"
+msgstr "Không"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Tiếng Ả Ráºp"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Tiếng Ban-tic"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Tiếng Trung"
+
+#: src/audacious/ui_preferences.c:115
+msgid "Greek"
+msgstr "Tiếng Hy Lạp"
+
+#: src/audacious/ui_preferences.c:116
+msgid "Hebrew"
+msgstr "Tiếng Do Thái"
+
+#: src/audacious/ui_preferences.c:117
+msgid "Japanese"
+msgstr "Tiếng Nháºt"
+
+#: src/audacious/ui_preferences.c:118
+msgid "Korean"
+msgstr "Tiếng Hà n"
+
+#: src/audacious/ui_preferences.c:119
+msgid "Polish"
+msgstr "Tiếng Ba Lan"
+
+#: src/audacious/ui_preferences.c:120
+msgid "Russian"
+msgstr "Tiếng Nga"
+
+#: src/audacious/ui_preferences.c:121
+msgid "Taiwanese"
+msgstr "Tiếng Äà i Loan"
+
+#: src/audacious/ui_preferences.c:122
+msgid "Turkish"
+msgstr "Tiếng ThỠNhĩ Kỳ"
+
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Chế Äá» album"
+
+#: src/audacious/ui_preferences.c:147
+msgid "<b>Output Settings</b>"
+msgstr "<b>Thiết láºp xuất âm thanh</b>"
+
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Chiá»u sâu âm thanh:"
+
+#: src/audacious/ui_preferences.c:152
+msgid "Buffer size:"
+msgstr "Dung lượng bá» Äá»m:"
+
+#: src/audacious/ui_preferences.c:154
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Sá» dụng kiá»m soát âm lượng cá»§a phần má»m (không nên)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
+msgstr "<b>TÄng âm</b>"
+
+#: src/audacious/ui_preferences.c:158
+msgid "Enable Replay Gain"
+msgstr "Báºt chế Äá» tÄng thêm âm lượng"
+
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Tránh tá»n thất (khuyên dùng)"
+
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Các mức Äiá»u chá»nh</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Khuếch Äại má»i táºp tin:"
+
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Khuếch Äại táºp tin chưa gán thẻ:"
+
+#: src/audacious/ui_preferences.c:172
+msgid "Proxy hostname:"
+msgstr "Tên máy chủ proxy:"
+
+#: src/audacious/ui_preferences.c:173
+msgid "Proxy port:"
+msgstr "Cá»ng proxy:"
+
+#: src/audacious/ui_preferences.c:176
+msgid "Proxy username:"
+msgstr "Tên ngưá»i dùng proxy:"
+
+#: src/audacious/ui_preferences.c:177
+msgid "Proxy password:"
+msgstr "Máºt khẩu proxy:"
+
+#: src/audacious/ui_preferences.c:181
+msgid "<b>Proxy Configuration</b>"
+msgstr "<b>Cấu hình Proxy</b>"
+
+#: src/audacious/ui_preferences.c:182
+msgid "Enable proxy usage"
+msgstr "Cho phép dùng proxy"
+
+#: src/audacious/ui_preferences.c:185
+msgid "Use authentication with proxy"
+msgstr "Xác thá»±c vá»i proxy"
+
+#: src/audacious/ui_preferences.c:193
+msgid "Auto character encoding detector for:"
+msgstr "Tá»± Äá»ng nháºn diá»n bảng mã kà tá»± cho:"
+
+#: src/audacious/ui_preferences.c:198
+msgid "Fallback character encodings:"
+msgstr "Bảng mã kà tự dự phòng:"
+
+#: src/audacious/ui_preferences.c:202
+msgid "<b>Behavior</b>"
+msgstr "<b>Hà nh Äá»ng</b>"
+
+#: src/audacious/ui_preferences.c:203
+msgid "Continue playback on startup"
+msgstr "Tiếp tục phát khi khá»i Äá»ng"
+
+#: src/audacious/ui_preferences.c:205
+msgid "Advance when the current song is deleted"
+msgstr "Äến bà i kế tiếp khi xóa bà i hiá»n tại"
+
+#: src/audacious/ui_preferences.c:207
+msgid "Clear the playlist when opening files"
+msgstr "Dá»n sạch danh sách khi má» các táºp tin"
+
+#: src/audacious/ui_preferences.c:209
+msgid "Open files in a temporary playlist"
+msgstr "Má» các táºp tin trong má»t danh sách tạm"
+
+#: src/audacious/ui_preferences.c:211
+msgid "<b>Metadata</b>"
+msgstr "<b>Thông tin</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Không nạp thông tin bà i hát cho Äến khi nó ÄÆ°á»£c phát"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "Tá»°A Äá»"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "NGHá» SĨ - Tá»°A Äá»"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "NGHỠSĨ - ALBUM - TỰA"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "NGHá» SĨ - ALBUM - BÃI. Tá»°A"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "NGHá» SĨ [ALBUM ] - BÃI. Tá»°A"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - Tá»°A Äá»"
+
+#: src/audacious/ui_preferences.c:556
+msgid "Category"
+msgstr "Danh mục"
+
+#: src/audacious/ui_preferences.c:780
+msgid "Popup Information Settings"
+msgstr "Thiết láºp thông tin cá»a sá» báºt lên"
+
+#: src/audacious/ui_preferences.c:789
+msgid "<b>Cover image retrieve</b>"
+msgstr "<b>Lấy ảnh bìa</b>"
+
+#: src/audacious/ui_preferences.c:794
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Khi tìm ảnh bìa cá»§a album, Audacious xem xét má»t sá» từ nhất Äá»nh trong tên "
+"táºp tin. Bạn có thá» chá» Äá»nh những từ nà y trong danh sách bên dưá»i, dừng dấu"
+" phẩy Äá» ngÄn cách các từ."
+
+#: src/audacious/ui_preferences.c:811
+msgid "Exclude:"
+msgstr "Loại trừ:"
+
+#: src/audacious/ui_preferences.c:818
+msgid "Include:"
+msgstr "Bao gá»m:"
+
+#: src/audacious/ui_preferences.c:835
+msgid "Recursively search for cover"
+msgstr "Tìm ảnh bìa trong thư mục con"
+
+#: src/audacious/ui_preferences.c:845
+msgid "Search depth: "
+msgstr "Äá» sâu:"
+
+#: src/audacious/ui_preferences.c:859
+msgid "Use per-file cover"
+msgstr "Má»i táºp tin má»t ảnh bìa riêng"
+
+#: src/audacious/ui_preferences.c:862
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Khác</b>"
+
+#: src/audacious/ui_preferences.c:871
+msgid "Show Progress bar for the current track"
+msgstr "Hiá»n thanh tiến trình cho bà i hiá»n tại"
+
+#: src/audacious/ui_preferences.c:881
+msgid "Delay until filepopup comes up: "
+msgstr "Chá» cho Äến khi cá»a sá» báºt lên hiá»n ra:"
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Tùy chá»n"
+
+#: src/audacious/ui_preferences.c:1352
+msgid "<b>Song Display</b>"
+msgstr "<b>Hiá»n thá» bà i hát</b>"
+
+#: src/audacious/ui_preferences.c:1361
+msgid "Show song numbers"
+msgstr "Hiá»n sá» thứ tá»± trong danh sách cá»§a bà i hát"
+
+#: src/audacious/ui_preferences.c:1372
+msgid "Show leading zeroes (02:00 instead of 2:00)"
+msgstr "Hiá»n sá» không á» Äầu (02:00 thay vì of 2:00)"
+
+#: src/audacious/ui_preferences.c:1394
+msgid "Show information about titlestring format"
+msgstr "Hiá»n thông tin vá» Äá»nh dạng tá»±a Äá»"
+
+#: src/audacious/ui_preferences.c:1410
+msgid "Custom string:"
+msgstr "Chuá»i tùy chá»n:"
+
+#: src/audacious/ui_preferences.c:1417
+msgid "Title format:"
+msgstr "Äá»nh dạng tá»±a Äá»:"
+
+#: src/audacious/ui_preferences.c:1428
+msgid "<b>Popup Information</b>"
+msgstr "<b>Cá»a sá» thông tin báºt lên</b>"
+
+#: src/audacious/ui_preferences.c:1443
+msgid "Show popup information for playlist entries"
+msgstr "Hiá»n cá»a sá» thông tin báºt lên cho các mục trong danh sách"
+
+#: src/audacious/ui_preferences.c:1444
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Báºt/tắt cá»a sá» thông tin báºt lên cho mục ÄÆ°á»£c trá» và o trong danh sách. Cá»a "
+"sá» hiá»n tá»±a Äá» bà i hát, tên album, thá» loại, nÄm phát hà nh, sá» thứ tá»± cá»§a "
+"bà i, thá»i lượng, và ảnh bìa."
+
+#: src/audacious/ui_preferences.c:1455
+msgid "Edit settings for popup information"
+msgstr "Chá»nh sá»a thiết láºp cho cá»a sá» thông tin báºt lên"
+
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Trình cắm xuất ra:"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Transport"
+msgstr "Truyá»n tải"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Input"
+msgstr "Äầu và o"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Effect"
+msgstr "Hiá»u ứng"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Visualization"
+msgstr "Hình ảnh ảo"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "General"
+msgstr "Tá»ng quát"
+
+#: src/audacious/ui_preferences.c:1644
+msgid "Audacious Preferences"
+msgstr "Tùy chá»nh Audacious"
+
+#: src/audacious/util.c:120
+#, c-format
+msgid "Could not create directory (%s): %s\n"
+msgstr "Không thỠtạo thư mục (%s): %s\n"
+
+#: src/audtool/handlers_playlist.c:273
+msgid "Position not found."
+msgstr "Không tìm thấy vá» trÃ."
+
+#: src/audtool/handlers_vitals.c:63
+msgid "No song playing."
+msgstr "Hiá»n không phát nhạc."
+
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "ÄÄ©a nhạc, bà i %s"
+
+#: src/libaudcore/tuple.c:536
+msgid "Mono"
+msgstr "Mono"
+
+#: src/libaudcore/tuple.c:538
+msgid "Stereo"
+msgstr "Stereo"
+
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kênh"
+
+#: src/libaudgui/confirm.c:78
+#, c-format
+msgid ""
+"Are you sure you want to close %s? If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"Bạn có chắc là muá»n Äóng %s? Nếu bạn là m váºy, các thay Äá»i ká» từ khi danh "
+"sách ÄÆ°á»£c xuất ra sẽ bá» mất."
+
+#: src/libaudgui/confirm.c:91
+msgid "_Don't show this message again"
+msgstr "_Không hiá»n tin nhắn nà y nữa"
+
+#: src/libaudgui/confirm.c:128
+msgid "Rename Playlist"
+msgstr "Äá»i tên danh sách"
+
+#: src/libaudgui/effects-menu.c:76
+msgid "settings ..."
+msgstr "thiết láºp ..."
+
+#: src/libaudgui/equalizer.c:53
+msgid "_Enable"
+msgstr "_Báºt"
+
+#: src/libaudgui/equalizer.c:125
+msgid "31 Hz"
+msgstr "31 Hz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "63 Hz"
+msgstr "63 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "125 Hz"
+msgstr "125 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "250 Hz"
+msgstr "250 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "500 Hz"
+msgstr "500 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "1 kHz"
+msgstr "1 kHz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "2 kHz"
+msgstr "2 kHz"
+
+#: src/libaudgui/equalizer.c:127
+msgid "4 kHz"
+msgstr "4 kHz"
+
+#: src/libaudgui/equalizer.c:127
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: src/libaudgui/equalizer.c:127
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: src/libaudgui/equalizer.c:132
+msgid "Equalizer"
+msgstr "Bá» cân chá»nh âm"
+
+#: src/libaudgui/equalizer.c:148
+msgid "Preamp"
+msgstr "Äá» lá»n"
+
+#: src/libaudgui/infopopup.c:211
+msgid "Track Number"
+msgstr "SỠthứ tự"
+
+#: src/libaudgui/infopopup.c:213
+msgid "Track Length"
+msgstr "Thá»i lượng"
+
+#: src/libaudgui/infowin.c:78
+msgid "Acid Jazz"
+msgstr "Acid Jazz"
+
+#: src/libaudgui/infowin.c:79
+msgid "Acid Rock"
+msgstr "Acid Rock"
+
+#: src/libaudgui/infowin.c:80
+msgid "Ambient"
+msgstr "Ambient"
+
+#: src/libaudgui/infowin.c:81
+msgid "Bebop"
+msgstr "Bebop"
+
+#: src/libaudgui/infowin.c:82
+msgid "Bluegrass"
+msgstr "Bluegrass"
+
+#: src/libaudgui/infowin.c:83
+msgid "Blues"
+msgstr "Blues"
+
+#: src/libaudgui/infowin.c:84
+msgid "Chamber Music"
+msgstr "Chamber Music"
+
+#: src/libaudgui/infowin.c:85
+msgid "Classical"
+msgstr "Classical"
+
+#: src/libaudgui/infowin.c:86
+msgid "Country"
+msgstr "Country"
+
+#: src/libaudgui/infowin.c:87
+msgid "Death Metal"
+msgstr "Death Metal"
+
+#: src/libaudgui/infowin.c:88
+msgid "Disco"
+msgstr "Disco"
+
+#: src/libaudgui/infowin.c:89
+msgid "Easy Listening"
+msgstr "Easy Listening"
+
+#: src/libaudgui/infowin.c:90
+msgid "Folk"
+msgstr "Folk"
+
+#: src/libaudgui/infowin.c:91
+msgid "Funk"
+msgstr "Funk"
+
+#: src/libaudgui/infowin.c:92
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
+
+#: src/libaudgui/infowin.c:93
+msgid "Gospel"
+msgstr "Gospel"
+
+#: src/libaudgui/infowin.c:94
+msgid "Grunge"
+msgstr "Grunge"
+
+#: src/libaudgui/infowin.c:95
+msgid "Hard Rock"
+msgstr "Hard Rock"
+
+#: src/libaudgui/infowin.c:96
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
+
+#: src/libaudgui/infowin.c:97
+msgid "Hip-hop"
+msgstr "Hip-hop"
+
+#: src/libaudgui/infowin.c:98
+msgid "House"
+msgstr "House"
+
+#: src/libaudgui/infowin.c:99
+msgid "Jazz"
+msgstr "Jazz"
+
+#: src/libaudgui/infowin.c:100
+msgid "Jungle"
+msgstr "Jungle"
+
+#: src/libaudgui/infowin.c:101
+msgid "Metal"
+msgstr "Metal"
+
+#: src/libaudgui/infowin.c:102
+msgid "New Age"
+msgstr "New Age"
+
+#: src/libaudgui/infowin.c:103
+msgid "New Wave"
+msgstr "New Wave"
+
+#: src/libaudgui/infowin.c:104
+msgid "Noise"
+msgstr "Noise"
+
+#: src/libaudgui/infowin.c:105
+msgid "Pop"
+msgstr "Pop"
+
+#: src/libaudgui/infowin.c:106
+msgid "Punk Rock"
+msgstr "Punk Rock"
+
+#: src/libaudgui/infowin.c:107
+msgid "Rap"
+msgstr "Rap"
+
+#: src/libaudgui/infowin.c:108
+msgid "Reggae"
+msgstr "Reggae"
+
+#: src/libaudgui/infowin.c:109
+msgid "Rock"
+msgstr "Rock"
+
+#: src/libaudgui/infowin.c:110
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
+
+#: src/libaudgui/infowin.c:111
+msgid "Rhythm and Blues"
+msgstr "Rhythm and Blues"
+
+#: src/libaudgui/infowin.c:112
+msgid "Ska"
+msgstr "Ska"
+
+#: src/libaudgui/infowin.c:113
+msgid "Soul"
+msgstr "Soul"
+
+#: src/libaudgui/infowin.c:114
+msgid "Swing"
+msgstr "Swing"
+
+#: src/libaudgui/infowin.c:115
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:116
+msgid "Trip-hop"
+msgstr "Trip-hop"
+
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
+msgid "<span size=\"small\">n/a</span>"
+msgstr "<span size=\"small\">n/a</span>"
+
+#: src/libaudgui/infowin.c:270
+msgid "Metadata updated successfully"
+msgstr "Äã cáºp nháºt thông tin"
+
+#: src/libaudgui/infowin.c:275
+msgid "Metadata updating failed"
+msgstr "Không thá» cáºp nháºt thông tin"
+
+#: src/libaudgui/infowin.c:323
+msgid "Track Information"
+msgstr "Thông tin"
+
+#: src/libaudgui/infowin.c:355
+msgid "<span size=\"small\">Format:</span>"
+msgstr "<span size=\"small\">Äá»nh dạng:</span>"
+
+#: src/libaudgui/infowin.c:359
+msgid "<span size=\"small\">Quality:</span>"
+msgstr "<span size=\"small\">Chất lượng:</span>"
+
+#: src/libaudgui/infowin.c:362
+msgid "<span size=\"small\">Bitrate:</span>"
+msgstr "<span size=\"small\">Tá» lá» bit:</span>"
+
+#: src/libaudgui/infowin.c:392
+msgid "<span size=\"small\">Title</span>"
+msgstr "<span size=\"small\">Tá»±a Äá»</span>"
+
+#: src/libaudgui/infowin.c:404
+msgid "<span size=\"small\">Artist</span>"
+msgstr "<span size=\"small\">NghỠsĩ</span>"
+
+#: src/libaudgui/infowin.c:416
+msgid "<span size=\"small\">Album</span>"
+msgstr "<span size=\"small\">Album</span>"
+
+#: src/libaudgui/infowin.c:428
+msgid "<span size=\"small\">Comment</span>"
+msgstr "<span size=\"small\">Bình luáºn</span>"
+
+#: src/libaudgui/infowin.c:440
+msgid "<span size=\"small\">Genre</span>"
+msgstr "<span size=\"small\">ThỠloại</span>"
+
+#: src/libaudgui/infowin.c:461
+msgid "<span size=\"small\">Year</span>"
+msgstr "<span size=\"small\">NÄm</span>"
+
+#: src/libaudgui/infowin.c:472
+msgid "<span size=\"small\">Track Number</span>"
+msgstr "<span size=\"small\">SỠthứ tự</span>"
+
+#: src/libaudgui/infowin.c:551
+#, c-format
+msgid "%d kb/s"
+msgstr "%d kb/giây"
+
+#: src/libaudgui/infowin.c:578
+#, c-format
+msgid "No info available for %s.\n"
+msgstr "Không có thông tin của %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Äá»nh má»c t.gian phát nhạc"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Xuất danh sách"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Nháºp danh sách"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Ghi Äè %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Trình quản là hà ng Äợi"
+
+#: src/libaudgui/ui_about.c:69
+msgid "About Audacious"
+msgstr "Giá»i thiá»u Audacious"
+
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
+msgid "Credits"
+msgstr "Äóng góp"
+
+#: src/libaudgui/ui_credits.c:126
+msgid "Translators"
+msgstr "Ngưá»i dá»ch"
+
+#: src/libaudgui/ui_fileopener.c:108
+msgid "Open Files"
+msgstr "Má» táºp tin"
+
+#: src/libaudgui/ui_fileopener.c:108
+msgid "Add Files"
+msgstr "Thêm táºp tin"
+
+#: src/libaudgui/ui_fileopener.c:110
+msgid "Close dialog on Open"
+msgstr "Äóng há»p thoại khi Má»"
+
+#: src/libaudgui/ui_fileopener.c:110
+msgid "Close dialog on Add"
+msgstr "Äóng há»p thoại khi Thêm"
+
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
+msgid "_Queue"
+msgstr "_Hà ng Äợi"
+
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "Bá» khá»i _hà ng Äợi"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Chuyá»n Äến bà i hát"
+
+#: src/libaudgui/ui_jumptotrack.c:284
+msgid "Filter: "
+msgstr "Bá» lá»c:"
+
+#: src/libaudgui/ui_jumptotrack.c:285
+msgid "_Filter:"
+msgstr "_Bá» lá»c:"
+
+#: src/libaudgui/ui_jumptotrack.c:295
+msgid "Remember"
+msgstr "Ghi nhá»"
+
+#: src/libaudgui/ui_jumptotrack.c:302
+msgid "Clea_r"
+msgstr "_Xóa trắng"
+
+#: src/libaudgui/ui_jumptotrack.c:322
+msgid "Close on Jump"
+msgstr "Äóng khi chá»n xong"
+
+#: src/libaudgui/ui_playlist_manager.c:253
+msgid "Playlist Manager"
+msgstr "Quản lý danh sách"
+
+#: src/libaudgui/ui_playlist_manager.c:280
+msgid "Entries"
+msgstr "SỠmục"
+
+#: src/libaudgui/ui_playlist_manager.c:301
+msgid "_Rename"
+msgstr "Äá»i _tên"
+
+#: src/libaudgui/ui_playlist_manager.c:325
+msgid "_Close dialog on activating playlist"
+msgstr "Äóng há»p thoại khi _kÃch hoạt danh sách"
+
+#: src/libaudgui/ui_urlopener.c:51
+msgid "Open URL"
+msgstr "Má» Äá»a chá» URL"
+
+#: src/libaudgui/ui_urlopener.c:51
+msgid "Add URL"
+msgstr "Thêm URL"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Các thông báo khác Äã bỠẩn.)"
+
+#: src/libeggsmclient/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "Không phải là má»t táºp tin .desktop hợp lá»"
+
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Phiên bản táºp tin desktop không ÄÆ°á»£c công nháºn '%s'"
+
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
+msgid "Starting %s"
+msgstr "Äang khá»i Äá»ng %s"
+
+#: src/libeggsmclient/eggdesktopfile.c:1116
+msgid "Application does not accept documents on command line"
+msgstr "Ứng dụng không chấp nháºn tà i liá»u trên dòng lá»nh"
+
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Tùy chá»n khá»i chạy không ÄÆ°á»£c công nháºn: %d"
+
+#: src/libeggsmclient/eggdesktopfile.c:1391
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Không thá» truyá»n URI tà i liá»u Äến mục mà n hình 'Type=Link'"
+
+#: src/libeggsmclient/eggdesktopfile.c:1412
+msgid "Not a launchable item"
+msgstr "Không phải mục có thá» khá»i chạy"
+
+#: src/libeggsmclient/eggsmclient.c:226
+msgid "Disable connection to session manager"
+msgstr "Ngắt kết ná»i Äến trình quản là phiên là m viá»c"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "Specify file containing saved configuration"
+msgstr "Chá» Äá»nh táºp tin chứa cấu hình Äã lưu"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "FILE"
+msgstr "TẬP TIN"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "Specify session management ID"
+msgstr "Chá» Äá»nh ID quản là phiên"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "ID"
+msgstr "ID"
+
+#: src/libeggsmclient/eggsmclient.c:253
+msgid "Session management options:"
+msgstr "Tùy chá»n quản là phiên:"
+
+#: src/libeggsmclient/eggsmclient.c:254
+msgid "Show session management options"
+msgstr "Hiá»n các tùy chá»n quản là phiên"
+
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 1401d40..3d0d993 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Audacious\n"
"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-04-11 21:12+0800\n"
+"POT-Creation-Date: 2011-10-09 12:18-0400\n"
+"PO-Revision-Date: 2011-10-16 19:20+0800\n"
"Last-Translator: Chasye <chasye at gmail.com>\n"
"Language-Team: Chinese (simplified)\n"
"Language: zh_CN\n"
@@ -18,7 +18,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "æç´¢ä¸..."
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "æ¾å°%d个æä»¶"
+
+#: src/audacious/chardet.c:38
msgid " (invalid UTF-8)"
msgstr " (éæ³çUTF-8ç¼ç )"
@@ -32,7 +42,7 @@ msgstr "ç¾å·¥ï¼"
#: src/audacious/credits.c:54
msgid "Default skin:"
-msgstr "é»è®¤ä¸»é¢"
+msgstr "é»è®¤ä¸»é¢ï¼"
#: src/audacious/credits.c:60
msgid "Plugin development:"
@@ -62,147 +72,151 @@ msgstr "å·´æ¯å
è¯ï¼"
msgid "Brazilian Portuguese:"
msgstr "巴西è¡èçè¯ï¼"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
msgid "Breton:"
msgstr "å¸åå¡å°¼è¯ï¼"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
msgid "Bulgarian:"
msgstr "åçå©è¯ï¼"
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
msgid "Catalan:"
msgstr "å æ³°ç½å°¼äºè¯ï¼"
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:200
msgid "Chinese:"
-msgstr "æ±è¯:"
+msgstr "æ±è¯ï¼"
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
msgid "Croatian:"
msgstr "ç½é©¬å°¼äºè¯ï¼"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
msgid "Czech:"
msgstr "æ·å
è¯ï¼"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
msgid "Dutch:"
msgstr "è·å
°è¯ï¼"
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
msgid "Estonian:"
msgstr "ç±æ²å°¼äºè¯ï¼"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
msgid "Finnish:"
msgstr "è¬å
°è¯ï¼"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
msgid "French:"
msgstr "æ³è¯ï¼"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
msgid "German:"
msgstr "å¾·è¯ï¼"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
msgid "Georgian:"
msgstr "乿²»äºè¯ï¼"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
msgid "Greek:"
msgstr "å¸è
è¯ï¼"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
msgid "Hindi:"
-msgstr "å°å°è¯:"
+msgstr "å°å°è¯ï¼"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
msgid "Hungarian:"
msgstr "åçå©è¯ï¼"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
msgid "Italian:"
msgstr "æå¤§å©è¯ï¼"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
msgid "Japanese:"
msgstr "æ¥è¯ï¼"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
msgid "Korean:"
msgstr "é©è¯ï¼"
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:259
msgid "Latvian:"
msgstr "æè±ç»´äºè¯ï¼"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
msgid "Lithuanian:"
msgstr "ç«é¶å®è¯ï¼"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
msgid "Macedonian:"
msgstr "马å
¶é¡¿è¯ï¼"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
msgid "Polish:"
msgstr "æ³¢å
°è¯ï¼"
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:276
msgid "Portuguese:"
msgstr "è¡èçè¯ï¼"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
msgid "Romanian:"
msgstr "ç½é©¬å°¼äºè¯ï¼"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
msgid "Russian:"
msgstr "ä¿è¯ï¼"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
msgid "Serbian (Latin):"
-msgstr "å¡å°ç»´äºè¯(æä¸æ)"
+msgstr "å¡å°ç»´äºè¯(æä¸æ)ï¼"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
msgid "Serbian (Cyrillic):"
-msgstr "å¡å°ç»´äºè¯(æ¯æå¤«æ)"
+msgstr "å¡å°ç»´äºè¯(æ¯æå¤«æ)ï¼"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
msgid "Simplified Chinese:"
msgstr "ç®ä½ä¸æï¼"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
msgid "Slovak:"
msgstr "æ¯æ´ä¼å
è¯ï¼"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
msgid "Spanish:"
msgstr "西ççè¯ï¼"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
msgid "Swedish:"
msgstr "çå
¸è¯ï¼"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
msgid "Traditional Chinese:"
msgstr "ç¹ä½ä¸æï¼"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
msgid "Turkish:"
msgstr "åè³å
¶è¯ï¼"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
msgid "Ukrainian:"
msgstr "ä¹å
å
°è¯ï¼"
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "è¶åè¯ï¼"
+
+#: src/audacious/credits.c:326
msgid "Welsh:"
msgstr "å¨å°æ¯è¯ï¼"
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:234
msgid "Temporary Playlist"
msgstr "ä¸´æ¶ææ¾å表"
@@ -211,77 +225,67 @@ msgstr "ä¸´æ¶ææ¾å表"
msgid "Error importing Winamp EQF file '%s'"
msgstr "导å
¥Winamp EQFæä»¶æ¶åçé误 '%s'"
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "æç´¢ä¸..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "æ¾å°%d个æä»¶"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
msgid "Skip backwards in playlist"
msgstr "ææ¾åä¸é¦"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
msgid "Start playing current playlist"
msgstr "ææ¾å½åå表"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
msgid "Pause current song"
msgstr "æåææ¾"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
msgid "Stop current song"
msgstr "åæ¢ææ¾"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
msgid "Pause if playing, play otherwise"
msgstr "æå/ææ¾"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
msgid "Skip forward in playlist"
msgstr "ææ¾ä¸ä¸é¦"
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
msgid "Display Jump to File dialog"
msgstr "æ¾ç¤ºâè·³å°æä»¶âå¯¹è¯æ¡"
-#: src/audacious/main.c:254
+#: src/audacious/main.c:246
msgid "Add files to the playlist"
msgstr "æ·»å æä»¶å°ææ¾å表"
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
msgid "Add new files to a temporary playlist"
msgstr "æ·»å æä»¶å°ä¸´æ¶ææ¾å表"
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
msgid "Display the main window"
msgstr "æ¾ç¤ºä¸»çé¢"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "æ¾ç¤ºææå·²æå¼çAudaciousçªå£"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
msgid "Show version"
msgstr "æ¾ç¤ºçæ¬ä¿¡æ¯"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
msgid "Print debugging messages"
msgstr "è¾åºè°è¯ä¿¡æ¯"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr "åå°æ¨¡å¼ï¼betaï¼"
+
+#: src/audacious/main.c:252
msgid "FILE..."
msgstr "æä»¶..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
msgid "- play multimedia files"
msgstr "- ææ¾å¤åªä½æä»¶"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
#, c-format
msgid ""
"%s: %s\n"
@@ -290,31 +294,20 @@ msgstr ""
"%s: %s\n"
"ç¨ `%s --help' 以è·åæ´å¤ä¿¡æ¯.\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-"Audaciousä¼¼ä¹å·²ç»å¯å¨ï¼ä½æªè½ä½åºååºãä½ å¯ä»¥å¯å¨å¤ä¸ä¸ªè¿ç¨ï¼ä½å¯è½ä¼å æ¤å¼èµ·"
-"æ°æ®ä¸¢å¤±ã妿Audaciousæªå¯å¨ï¼ä½ å®å
¨å¯ä»¥å¿½ç¥æ¤ä¿¡æ¯ãè¦å¯å¨Audaciousç¹å»\"ç¡®å®"
-"\"ï¼å¦åç¹å»\"åæ¶\""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
msgid "Audacious"
msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:376
#, c-format
msgid "No decoder found for %s."
msgstr "æªè½ä¸º %s æ¾å°è§£ç å¨"
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:526
msgid "Buffering ..."
msgstr "ç¼å²ä¸..."
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:306
msgid "Untitled Playlist"
msgstr "æ°ææ¾å表"
@@ -323,67 +316,63 @@ msgid "Audio"
msgstr "é³é¢"
#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "åæ¾å¢ç"
-
-#: src/audacious/ui_preferences.c:90
msgid "Network"
msgstr "ç½ç»"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1633
msgid "Playlist"
msgstr "ææ¾å表"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
msgid "Plugins"
msgstr "æä»¶"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "èºæ¯å®¶"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "ä¸è¾"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
msgid "Title"
msgstr "æ é¢"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
msgid "Tracknumber"
msgstr "é³è½¨åºå·"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
msgid "Genre"
msgstr "飿 ¼"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
msgid "Filename"
msgstr "æä»¶å"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
msgid "Filepath"
msgstr "è·¯å¾"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
msgid "Date"
msgstr "æ¶é´"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "年份"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
msgid "Comment"
msgstr "夿³¨"
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
msgid "Codec"
msgstr "ç¼ç "
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
msgid "Quality"
msgstr "é³è´¨"
@@ -392,217 +381,202 @@ msgid "None"
msgstr "æ "
#: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "æ¥è¯"
+msgid "Arabic"
+msgstr "é¿æä¼¯è¯"
#: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "å°è¯"
+msgid "Baltic"
+msgstr "æ³¢ç½çè¯"
#: src/audacious/ui_preferences.c:117
msgid "Chinese"
msgstr "æ±è¯"
#: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr "é©è¯"
+msgid "Greek"
+msgstr "å¸è
è¯"
#: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "ä¿è¯"
+msgid "Hebrew"
+msgstr "å¸ä¼¯æ¥è¯"
#: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "å¸è
è¯"
+msgid "Japanese"
+msgstr "æ¥è¯"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "å¸ä¼¯æ¥è¯"
+msgid "Korean"
+msgstr "é©è¯"
#: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr "åè³å
¶è¯"
+msgid "Polish"
+msgstr "æ³¢å
°è¯"
#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "é¿æä¼¯è¯"
+msgid "Russian"
+msgstr "ä¿è¯"
#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "æ³¢å
°è¯"
+msgid "Taiwanese"
+msgstr "å°è¯"
#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "æ³¢ç½çè¯"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "ä¸çè¯"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>使·±</b>"
+msgid "Turkish"
+msgstr "åè³å
¶è¯"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "è¾åºä½æ·±ï¼"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"ææé³é¢æµå°ä¼è½¬æ¢å°æ¤ä½æ·±ã\n"
-"æ¤å¼ä¸åºå¤§äºæ¨ç声塿è¾åºæä»¶ææ¯æçæå¤§å¼ã"
+msgid "Album mode"
+msgstr "ä¸è¾æ¨¡å¼"
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>é³éæ§å¶</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>è¾åºè®¾ç½®</b>"
#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "使ç¨è½¯é³éæ§å¶"
+msgid "Bit depth:"
+msgstr "使·±ï¼"
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr "使ç¨è½¯é³éæ§å¶ãå½ä½ æ æ³è°æ´ç³»ç»é³éæ¶å¯ä»¥å¯ç¨æ¤è®¾ç½®ã"
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "ç¼å²å¤§å°ï¼"
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr "åºç¨å°æä»¶ï¼"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr ""
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "使ç¨è½¯é³éæ§å¶ï¼é建议ï¼"
#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr "åºç¨å°æ æ ç¾æä»¶ï¼"
-
-#: src/audacious/ui_preferences.c:164
msgid "<b>Replay Gain</b>"
msgstr "<b>åæ¾å¢ç</b>"
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
msgid "Enable Replay Gain"
msgstr "å¯ç¨åæ¾å¢ç"
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr "<b>模å¼</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr "åé³è½¨æ¨¡å¼"
-
-#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
-msgstr "ä¸è¾æ¨¡å¼"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "é¿å
çé³ï¼æ¨èï¼"
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
msgid "<b>Adjust Levels</b>"
msgstr "<b>è°æ´å¹
度</b>"
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>é¿å
çé³</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr "åºç¨å°æä»¶ï¼"
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr "å¯ç¨é¿å
çé³"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr "åºç¨å°æ æ ç¾æä»¶ï¼"
+
+#: src/audacious/ui_preferences.c:175
msgid "Proxy hostname:"
msgstr "主æºå°åï¼"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
msgid "Proxy port:"
msgstr "è¿æ¥ç«¯å£ï¼"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
msgid "Proxy username:"
msgstr "认è¯ç¨æ·ï¼"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
msgid "Proxy password:"
msgstr "认è¯å¯ç ï¼"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
msgid "<b>Proxy Configuration</b>"
msgstr "<b>代çæå¡å¨è®¾ç½®</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
msgid "Enable proxy usage"
msgstr "å¯ç¨ä»£çæå¡å¨"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
msgid "Use authentication with proxy"
msgstr "代çæå¡å¨è¦æ±è®¤è¯"
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr "<span size=\"small\">æ¤è®¾ç½®å°å¨Audaciouséå¯åçæ</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
msgid "Auto character encoding detector for:"
msgstr "èªå¨æ£æµä¸åç¼ç ï¼"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
msgid "Fallback character encodings:"
msgstr "å¤ç¨å符ç¼ç ï¼"
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"å符ç¼ç å表å°ç¨äºå
æ°æ®çåå¤è½¬æ¢ã妿èªå¨ç¼ç è½¬æ¢æ£æµå¨å¤±è´¥æè¢«ç¦ç¨ï¼å表"
-"ä¸çç¼ç å°ä½ä¸ºå
æ°æ®çåéç¼ç ï¼å¹¶å°è¯å¾ç±æ¤è½¬æ¢å°UTF-8ã"
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
msgid "<b>Behavior</b>"
msgstr "<b>è¡ä¸º</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
msgid "Continue playback on startup"
msgstr "å¯å¨æ¶æ¢å¤ææ¾"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
msgid "Advance when the current song is deleted"
msgstr "ææ²ææ¾ä¸è¢«å é¤åææ¾ä¸ä¸é¦"
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
msgid "Clear the playlist when opening files"
msgstr "æå¼æä»¶æ¶æ¸
空å½åææ¾å表"
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
msgid "Open files in a temporary playlist"
msgstr "å¨ä¸´æ¶ææ¾å表æå¼æä»¶"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
msgid "<b>Metadata</b>"
msgstr "<b>å
æ°æ®</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr "æªææ¾æ¶åå¿å è½½å
æ°æ®"
+
+#: src/audacious/ui_preferences.c:232
+msgid "TITLE"
+msgstr "æ é¢"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - TITLE"
+msgstr "èºæ¯å®¶ - æ é¢"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "èºæ¯å®¶ - ä¸è¾ - æ é¢"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "èºæ¯å®¶ - ä¸è¾ - æ²ç®å·. æ é¢"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "èºæ¯å®¶ [ä¸è¾] - æ²ç®å·. æ é¢"
+
+#: src/audacious/ui_preferences.c:237
+msgid "ALBUM - TITLE"
+msgstr "ä¸è¾ - æ é¢"
+
+#: src/audacious/ui_preferences.c:576
msgid "Category"
msgstr "åç±»"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:800
msgid "Popup Information Settings"
msgstr "å¼¹åºä¿¡æ¯è®¾ç½®"
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:809
msgid "<b>Cover image retrieve</b>"
msgstr "<b>ä¸è¾å°é¢æ£ç´¢</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:814
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
@@ -611,99 +585,75 @@ msgstr ""
"å½æç´¢ä¸è¾å°é¢æ¶ï¼Audacious仿件å䏿¾åºå
³é®åãæ¨å¯ä»¥å¨ä¸é¢åè¡¨ä¸æå®å®ä»¬ï¼"
"ç¨éå·åéã"
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:831
msgid "Exclude:"
msgstr "æé¤ï¼"
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:838
msgid "Include:"
msgstr "å
å«ï¼"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:855
msgid "Recursively search for cover"
msgstr "éå½æç´¢å°é¢"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:865
msgid "Search depth: "
msgstr "æç´¢æ·±åº¦ï¼"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:879
msgid "Use per-file cover"
msgstr "为æ¯ä¸ªæä»¶ä½¿ç¨åç¬å°é¢"
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:882
msgid "<b>Miscellaneous</b>"
msgstr "<b>æé¡¹</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:891
msgid "Show Progress bar for the current track"
msgstr "æ¾ç¤ºå½åé³è½¨çè¿åº¦"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:901
msgid "Delay until filepopup comes up: "
msgstr "å»¶è¿å°æä»¶å¼¹åºçªå£åºç°ï¼"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1339
+msgid "Custom"
+msgstr "èªå®ä¹"
+
+#: src/audacious/ui_preferences.c:1382
msgid "<b>Song Display</b>"
msgstr "<b>ææ²æ¾ç¤º</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1391
msgid "Show song numbers"
msgstr "æ¾ç¤ºææ²åºå·"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1402
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr "æ¾ç¤ºæ¶é´åç0ï¼å¦:æ¾ç¤º2:00为02:00ï¼"
+msgstr "æ¾ç¤ºæ¶é´åç0ï¼å¦ï¼æ¾ç¤º2:00为02:00ï¼"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1424
msgid "Show information about titlestring format"
msgstr "æ 颿¾ç¤ºæ ¼å¼"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "æ é¢"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "èºæ¯å®¶ - æ é¢"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "èºæ¯å®¶ - ä¸è¾ - æ é¢"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "èºæ¯å®¶ - ä¸è¾ - æ²ç®å·. æ é¢"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "èºæ¯å®¶ [ä¸è¾] - æ²ç®å·. æ é¢"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ä¸è¾ - æ é¢"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "èªå®ä¹"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1440
msgid "Custom string:"
-msgstr "å®å¶å符ï¼"
+msgstr "èªå®å符ï¼"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1447
msgid "Title format:"
msgstr "æ 颿 ·å¼ï¼"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1458
msgid "<b>Popup Information</b>"
msgstr "<b>å¼¹åºä¿¡æ¯</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1473
msgid "Show popup information for playlist entries"
msgstr "ä¸ºææ¾å表æ¾ç¤ºå¼¹åºä¿¡æ¯"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1474
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
@@ -712,52 +662,44 @@ msgstr ""
"åæ¢ææ¾åè¡¨ä¸æå项ç®çå¼¹åºä¿¡æ¯çªå£ã该çªå£æ¾ç¤ºææ²æ é¢ãä¸è¾ãæµæ´¾ã年份ï¼"
"é³è½¨ç¼å·ï¼é¿åº¦åæå¾çã"
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1485
msgid "Edit settings for popup information"
msgstr "ä¿®æ¹å¼¹åºä¿¡æ¯ç设置"
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>é³é¢ç³»ç»</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ç¼å²å¤§å°ï¼"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "å½åè¾åºæä»¶ï¼"
+#: src/audacious/ui_preferences.c:1574
+msgid "Output plugin:"
+msgstr "è¾åºæä»¶ï¼"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1633
msgid "Transport"
msgstr "ä¼ è¾"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1633
msgid "Input"
msgstr "è¾å
¥"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1634
msgid "Effect"
msgstr "鳿"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1634
msgid "Visualization"
msgstr "èæææ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1634
msgid "General"
msgstr "ä¸è¬"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1674
msgid "Audacious Preferences"
msgstr "Audaciousé¦é项"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:129
#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "æ æ³å建ç®å½(%s): %s\n"
+msgstr "æ æ³å建ç®å½(%s)ï¼%s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
msgid "Position not found."
msgstr "ä½ç½®ä¸åå¨"
@@ -775,21 +717,22 @@ msgstr "ç«ä½å£°"
#: src/libaudcore/tuple.c:689
#, c-format
-msgid "%d channels"
-msgstr "%d声é"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d声é"
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
msgstr "å
³éâ%sâå°ä¼ä½¿ææå·²æ¹åç设置丢失ï¼è¦ç»§ç»åï¼"
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr "ä¸è¦åæç¤º(_D)"
+msgstr "åå¿åæç¤º(_D)"
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
msgstr "éå½åææ¾å表"
@@ -797,63 +740,63 @@ msgstr "éå½åææ¾å表"
msgid "settings ..."
msgstr "设置..."
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:52
msgid "_Enable"
msgstr "å¯ç¨(_E)"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "31 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
msgid "63 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "125 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "250 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "500 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "1 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
msgid "2 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "4 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "8 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
msgid "16 kHz"
msgstr ""
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
msgid "Equalizer"
msgstr "åè¡¡å¨"
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:147
msgid "Preamp"
msgstr "åç½®æ¾å¤§å¨"
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "é³è½¨åºå·"
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
msgstr "é³è½¨é¿åº¦"
@@ -1080,11 +1023,36 @@ msgstr "%d kb/s"
msgid "No info available for %s.\n"
msgstr "æªæ¾å°ä¸â%sâç¸å
³ä¿¡æ¯ã\n"
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "è·³å°æ¶é´"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "å¯¼åºææ¾å表"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "导å
¥ææ¾å表"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "æ¯å¦è¦ç %sï¼"
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr "éå管çå¨"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "å
³äºAudacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
msgstr "ç¹å«é¸£è°¢"
@@ -1092,78 +1060,87 @@ msgstr "ç¹å«é¸£è°¢"
msgid "Translators"
msgstr "ç¿»è¯äººå"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Open Files"
msgstr "æå¼æä»¶"
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
msgid "Add Files"
msgstr "æ·»å æä»¶"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Open"
msgstr "æå¼æ¶å
³éå¯¹è¯æ¡"
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
msgid "Close dialog on Add"
msgstr "æ·»å æ¶å
³éå¯¹è¯æ¡"
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "åºå(_q)"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "_Queue"
msgstr "å
¥é(_Q)"
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "åºå(_q)"
+
+#: src/libaudgui/ui_jumptotrack.c:239
msgid "Jump to Track"
msgstr "è·³å°"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
msgid "Filter: "
msgstr "è¿æ»¤å¨ï¼"
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
msgid "_Filter:"
msgstr "è¿æ»¤å¨(_F)ï¼"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
msgid "Remember"
msgstr "è®°ä½"
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Clea_r"
msgstr "æ¸
空(_r)"
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
msgid "Close on Jump"
msgstr "跳转æ¶å
³é"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:250
msgid "Playlist Manager"
msgstr "ææ¾å表管çå¨"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
msgid "Entries"
msgstr "æ¡ç®"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:298
msgid "_Rename"
msgstr "éå½å(_R)"
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:322
msgid "_Close dialog on activating playlist"
msgstr "æ¿æ´»ææ¾å表æ¶å
³éå¯¹è¯æ¡(_C)"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
msgstr "æå¼URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
msgstr "æ·»å URL"
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"ï¼è¯¦ç»ä¿¡æ¯å·²éèãï¼"
+
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
msgstr "éåæ³ç.desktopæä»¶"
@@ -1173,25 +1150,25 @@ msgstr "éåæ³ç.desktopæä»¶"
msgid "Unrecognized desktop file Version '%s'"
msgstr "æªè½è¯å«ç.desktopæä»¶çæ¬'%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
#, c-format
msgid "Starting %s"
msgstr "æ£å¨å¯å¨ %s"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
msgid "Application does not accept documents on command line"
msgstr "ç¨åºä¸æ¯æä»å½ä»¤è¡è·åææ¡£"
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
#, c-format
msgid "Unrecognized launch option: %d"
msgstr "æªç¥å¯å¨é项ï¼%d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
msgstr "æ æ³ä¼ éææ¡£URIå°Type=Linkçæ¡é¢é¡¹"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
msgid "Not a launchable item"
msgstr "éå¯å¯å¨é¡¹ç®"
@@ -1222,3 +1199,71 @@ msgstr "ä¼è¯ç®¡çå¨é项ï¼"
#: src/libeggsmclient/eggsmclient.c:254
msgid "Show session management options"
msgstr "æ¾ç¤ºä¼è¯ç®¡çå¨é项"
+
+#~ msgid ""
+#~ "Audacious seems to be already running but is not responding. You can "
+#~ "start another instance of the program, but please be warned that this can "
+#~ "cause data loss. If Audacious is not running, you can safely ignore this "
+#~ "message. Press OK to start Audacious or Cancel to quit."
+#~ msgstr ""
+#~ "Audaciousä¼¼ä¹å·²ç»å¯å¨ï¼ä½æªè½ä½åºååºãä½ å¯ä»¥å¯å¨å¤ä¸ä¸ªè¿ç¨ï¼ä½å¯è½ä¼å æ¤"
+#~ "å¼èµ·æ°æ®ä¸¢å¤±ã妿Audaciousæªå¯å¨ï¼ä½ å®å
¨å¯ä»¥å¿½ç¥æ¤ä¿¡æ¯ãè¦å¯å¨Audaciousç¹"
+#~ "å»\"ç¡®å®\"ï¼å¦åç¹å»\"åæ¶\""
+
+#~ msgid "Universal"
+#~ msgstr "ä¸çè¯"
+
+#~ msgid "Single track mode"
+#~ msgstr "åé³è½¨æ¨¡å¼"
+
+#~ msgid ""
+#~ "<span size=\"small\">Changing these settings will require a restart of "
+#~ "Audacious.</span>"
+#~ msgstr "<span size=\"small\">æ¤è®¾ç½®å°å¨Audaciouséå¯åçæ</span>"
+
+#~ msgid ""
+#~ "List of character encodings used for fall back conversion of metadata. If "
+#~ "automatic character encoding detector failed or has been disabled, "
+#~ "encodings in this list would be treated as candidates of the encoding of "
+#~ "metadata, and fall back conversion from these encodings to UTF-8 would be "
+#~ "attempted."
+#~ msgstr ""
+#~ "å符ç¼ç å表å°ç¨äºå
æ°æ®çåå¤è½¬æ¢ã妿èªå¨ç¼ç è½¬æ¢æ£æµå¨å¤±è´¥æè¢«ç¦ç¨ï¼å"
+#~ "表ä¸çç¼ç å°ä½ä¸ºå
æ°æ®çåéç¼ç ï¼å¹¶å°è¯å¾ç±æ¤è½¬æ¢å°UTF-8ã"
+
+#~ msgid "Replay Gain"
+#~ msgstr "åæ¾å¢ç"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>使·±</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "ææé³é¢æµå°ä¼è½¬æ¢å°æ¤ä½æ·±ã\n"
+#~ "æ¤å¼ä¸åºå¤§äºæ¨ç声塿è¾åºæä»¶ææ¯æçæå¤§å¼ã"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>é³éæ§å¶</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr "使ç¨è½¯é³éæ§å¶ãå½ä½ æ æ³è°æ´ç³»ç»é³éæ¶å¯ä»¥å¯ç¨æ¤è®¾ç½®ã"
+
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>模å¼</b>"
+
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>é¿å
çé³</b>"
+
+#~ msgid "Enable clipping prevention"
+#~ msgstr "å¯ç¨é¿å
çé³"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>é³é¢ç³»ç»</b>"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "æ¾ç¤ºææå·²æå¼çAudaciousçªå£"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index cb242ea..87e849d 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1,1167 +1,1077 @@
-# traditional Chinese translation of Beep Media Player.
-# Copyright (C) 2001, 03, 2004 Free Software Foundation, Inc.
-# Chao-Hsiung Liao <pesder.liao at msa.hinet.net>, 2003, 2004.
+# Chinese translations for audacious package.
+# Copyright (C) 2011 THE audacious'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the audacious package.
+# Ruei-Yuan Lu <RueiYuan.Lu at gmail.com>, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: Audacious VERSION\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2007-01-31 00:46+0800\n"
-"Last-Translator: Cheng-Wei Chien <e.cwchien at gmail.com>\n"
-"Language-Team: Cheng-Wei Chien <e.cwchien at gmail.com>\n"
+"Project-Id-Version: audacious 3.1\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2011-11-10 11:36+0800\n"
+"Last-Translator: Ruei-Yuan Lu <RueiYuan.Lu at gmail.com>\n"
+"Language-Team: Chinese (traditional)\n"
"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 0.10.1\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: TAIWAN\n"
-"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "æå°ä¸ ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "æ¾å° %d åæªæ¡"
+
+#: src/audacious/chardet.c:39
msgid " (invalid UTF-8)"
-msgstr " (ç¡æç UTF-8 åå
)"
+msgstr " (ç¡æç UTF-8 å串)"
#: src/audacious/credits.c:35
-#, fuzzy
msgid "Core developers:"
-msgstr "0.1.x éç¼äººå¡ï¼"
+msgstr "æ ¸å¿éç¼äººå¡:"
#: src/audacious/credits.c:49
msgid "Graphics:"
-msgstr "ç¾å·¥ï¼"
+msgstr "ç¾å·¥:"
#: src/audacious/credits.c:54
msgid "Default skin:"
-msgstr "é è¨é¢æ¿ï¼"
+msgstr "é è¨é¢æ¿:"
#: src/audacious/credits.c:60
msgid "Plugin development:"
-msgstr "æä»¶éç¼ï¼"
+msgstr "夿éç¼:"
#: src/audacious/credits.c:83
msgid "Patch authors:"
-msgstr "ä¿®æ£æªä½è
ï¼"
+msgstr "ä¿®æ£æªä½è
:"
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
msgid "1.x developers:"
-msgstr "0.1.x éç¼äººå¡ï¼"
+msgstr "1.x éç¼äººå¡:"
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
msgid "BMP Developers:"
-msgstr "BMP éç¼äººå¡ï¼"
+msgstr "BMP éç¼äººå¡:"
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
msgid "Belarusian:"
-msgstr "ä¿å å©äºèªï¼"
+msgstr "ç½ä¿ç¾
æ¯æ:"
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
msgid "Basque:"
-msgstr ""
+msgstr "å·´æ¯å
èª:"
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
msgid "Brazilian Portuguese:"
-msgstr "巴西è¡èçèªï¼"
+msgstr "巴西è¡èçèª:"
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
msgid "Breton:"
-msgstr "å¸åå¡å°¼èªï¼"
+msgstr "å¸åå¡å°¼èª:"
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
msgid "Bulgarian:"
-msgstr "ä¿å å©äºèªï¼"
+msgstr "ä¿å å©äºèª:"
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:198
msgid "Catalan:"
-msgstr "義大å©èªï¼"
+msgstr "å æ³°ç¾
å°¼äºèª:"
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:202
msgid "Chinese:"
-msgstr "䏿ï¼"
+msgstr "䏿:"
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:205
msgid "Croatian:"
-msgstr "ç¾
馬尼äºèªï¼"
+msgstr "å
ç¾
å西äºèª:"
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
msgid "Czech:"
-msgstr "æ·å
èªï¼"
+msgstr "æ·å
èª:"
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
msgid "Dutch:"
-msgstr "è·èèªï¼"
+msgstr "è·èèª:"
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:215
msgid "Estonian:"
-msgstr "ç¾
馬尼äºèªï¼"
+msgstr "ææ²å°¼äºèª:"
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
msgid "Finnish:"
-msgstr "è¬èèªï¼"
+msgstr "è¬èèª:"
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
msgid "French:"
-msgstr "æ³èªï¼"
+msgstr "æ³èª:"
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
msgid "German:"
-msgstr "å¾·èªï¼"
+msgstr "å¾·èª:"
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
msgid "Georgian:"
-msgstr "嬿²»äºèªï¼"
+msgstr "嬿²»äºèª:"
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
msgid "Greek:"
-msgstr "å¸èèªï¼"
+msgstr "å¸èèª:"
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
msgid "Hindi:"
-msgstr "åå°åº¦èªï¼"
+msgstr "å°å°èª:"
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
msgid "Hungarian:"
-msgstr "åçå©èªï¼"
+msgstr "åçå©èª:"
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
msgid "Italian:"
-msgstr "義大å©èªï¼"
+msgstr "義大å©èª:"
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
msgid "Japanese:"
-msgstr "æ¥èªï¼"
+msgstr "æ¥æ¬èª:"
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
msgid "Korean:"
-msgstr "éèªï¼"
+msgstr "éèª:"
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
msgid "Latvian:"
-msgstr "ç¾
馬尼äºèªï¼"
+msgstr "æè«ç¶äºèª:"
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
msgid "Lithuanian:"
-msgstr "ç«é¶å®èªï¼"
+msgstr "ç«é¶å®èª:"
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
msgid "Macedonian:"
-msgstr "馬å
¶é èªï¼"
+msgstr "馬å
¶é èª:"
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
msgid "Polish:"
-msgstr "æ³¢èèªï¼"
+msgstr "æ³¢èèª:"
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
msgid "Portuguese:"
-msgstr "巴西è¡èçèªï¼"
+msgstr "è¡èçæ:"
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
msgid "Romanian:"
-msgstr "ç¾
馬尼äºèªï¼"
+msgstr "ç¾
馬尼äºèª:"
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
msgid "Russian:"
-msgstr "ä¿èªï¼"
+msgstr "ä¿èª:"
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
msgid "Serbian (Latin):"
-msgstr "å¡ç¾ç¶äº (æä¸èª)ï¼"
+msgstr "å¡ç¾ç¶äºèª (æä¸):"
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
msgid "Serbian (Cyrillic):"
-msgstr "å¡ç¾ç¶äº (æ¯æå¤«èª)ï¼"
+msgstr "å¡ç¾ç¶äºèª (西éç¾):"
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
msgid "Simplified Chinese:"
-msgstr "ç°¡é«ä¸æï¼"
+msgstr "ç°¡é«ä¸æ:"
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
msgid "Slovak:"
-msgstr "æ¯æ´ä¼å
èªï¼"
+msgstr "æ¯æ´ä¼å
èª:"
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
msgid "Spanish:"
-msgstr "西ççèªï¼"
+msgstr "西ççèª:"
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
msgid "Swedish:"
-msgstr "çå
¸èªï¼"
+msgstr "çå
¸èª:"
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
msgid "Traditional Chinese:"
-msgstr "æ£é«ä¸æï¼"
+msgstr "æ£é«ä¸æ:"
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
msgid "Turkish:"
-msgstr ""
+msgstr "åè³å
¶èª:"
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
msgid "Ukrainian:"
-msgstr "çå
èèªï¼"
+msgstr "çå
èèª:"
-#: src/audacious/credits.c:316
-msgid "Welsh:"
-msgstr "å¨ç¾æ¯èªï¼"
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "è¶åèª:"
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "è¼å
¥ææ¾æ¸
å®"
+#: src/audacious/credits.c:331
+msgid "Welsh:"
+msgstr "å¨ç¾å£«èª:"
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
#, c-format
msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "å¯å
¥ Winamp EQF æªæç¼çé¯èª¤ '%s'"
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
msgid "Skip backwards in playlist"
-msgstr "è·³è³ææ¾æ¸
å®éé "
+msgstr "åæå°ææ¾æ¸
å®çä¸ä¸å"
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
msgid "Start playing current playlist"
msgstr "éå§ææ¾ç®åçææ¾æ¸
å®"
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
msgid "Pause current song"
-msgstr "æ«åç®åçææ²"
+msgstr "æ«åææ¾ç®åææ²"
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
msgid "Stop current song"
-msgstr "忢ç®åçææ²"
+msgstr "åæ¢ææ¾ç®åææ²"
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
msgid "Pause if playing, play otherwise"
-msgstr "ææ¾/æ«å"
+msgstr "è¥ææ¾ä¸åæ«åï¼å¦åç¹¼çºææ¾"
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
msgid "Skip forward in playlist"
-msgstr "è·³è³ææ¾æ¸
å®çµå°¾"
+msgstr "åæå°ææ¾æ¸
å®çä¸ä¸å"
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
msgid "Display Jump to File dialog"
-msgstr "é¡¯ç¤ºè·³è³æªæ¡å°è©±æ¡"
+msgstr "é¡¯ç¤ºè·³è³æªæ¡å°è©±è¦çª"
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
msgid "Add files to the playlist"
-msgstr "å å
¥æªæ¡è³ææ¾æ¸
å®ã"
+msgstr "å å
¥æªæ¡å°ææ¾æ¸
å®"
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
msgid "Add new files to a temporary playlist"
-msgstr "å å
¥æªæ¡è³ææ¾æ¸
å®ã"
+msgstr "å å
¥æªæ¡å°æ«åææ¾æ¸
å®"
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
msgid "Display the main window"
msgstr "顯示主è¦çª"
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
msgid "Show version"
-msgstr "é¡¯ç¤ºææ¾å¨"
+msgstr "é¡¯ç¤ºçæ¬è³è¨"
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
msgid "Print debugging messages"
-msgstr ""
+msgstr "顯示é¤é¯è¨æ¯"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "ç¡é æ¨¡å¼ (beta)"
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
msgid "FILE..."
-msgstr ""
+msgstr "æªæ¡..."
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
msgid "- play multimedia files"
-msgstr ""
+msgstr "- ææ¾å¤åªé«æªæ¡"
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
#, c-format
msgid ""
"%s: %s\n"
"Try `%s --help' for more information.\n"
msgstr ""
+"%s: %s\n"
+"è«åè©¦ç¨ `%s --help' å徿´å¤è³è¨ã\n"
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding. You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss. If Audacious is not running, you can safely ignore this "
-"message. Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
msgid "Audacious"
-msgstr "Audacious"
+msgstr ""
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
#, c-format
msgid "No decoder found for %s."
-msgstr ""
+msgstr "æ¾ä¸å°é©ç¨æ¼ %s ç解碼å¨ã"
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "æ°ææ¾æ¸
å®"
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "æ°å¢ææ¾æ¸
å®"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "æ£å¨ææ¾"
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr "å çºæ£å¨é²è¡è©®éè³æçææï¼ç¡æ³å°ææ¾æ¸
å®é²è¡æåºãï¼æè
å·²ç¶è¢«ééï¼"
+
+#: src/audacious/ui_preferences.c:85
msgid "Audio"
msgstr "é³è¨"
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ææ¾å¢ç"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
msgid "Network"
-msgstr ""
+msgstr "網路"
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
msgid "Playlist"
msgstr "ææ¾æ¸
å®"
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
msgid "Plugins"
-msgstr "æä»¶"
+msgstr "夿"
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
msgid "Artist"
msgstr "è人"
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
msgid "Album"
msgstr "å°è¼¯"
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
msgid "Title"
msgstr "æ¨é¡"
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
msgid "Tracknumber"
msgstr "é³è»ç·¨è"
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
msgid "Genre"
-msgstr "æ¨æ²é¡å"
+msgstr "é¡å"
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
msgid "Filename"
msgstr "æªæ¡å稱"
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
msgid "Filepath"
msgstr "æªæ¡è·¯å¾"
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
msgid "Date"
msgstr "æ¥æ"
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
msgid "Year"
msgstr "年份"
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
msgid "Comment"
-msgstr "註解"
+msgstr "å註"
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:104
msgid "Codec"
-msgstr "/éé"
+msgstr "編解碼å¨"
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
msgid "Quality"
-msgstr "/é¢é(_Q)"
+msgstr "å質"
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
msgid "None"
-msgstr ""
+msgstr "ç¡"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "é¿æä¼¯èª"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "æ³¢ç¾
çæµ·"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "䏿"
#: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "æ¥èªï¼"
+msgid "Greek"
+msgstr "å¸èèª"
#: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "æ¥èªï¼"
+msgid "Hebrew"
+msgstr "å¸ä¼¯ä¾èª"
#: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "䏿ï¼"
+msgid "Japanese"
+msgstr "æ¥æ¬èª"
#: src/audacious/ui_preferences.c:118
-#, fuzzy
msgid "Korean"
-msgstr "éèªï¼"
+msgstr "éæ"
#: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "ä¿èªï¼"
+msgid "Polish"
+msgstr "æ³¢èèª"
#: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "å¸èèªï¼"
+msgid "Russian"
+msgstr "ä¿èª"
#: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "æ£é«ä¸æ"
#: src/audacious/ui_preferences.c:122
msgid "Turkish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "æ³¢èèªï¼"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
+msgstr "åè³å
¶èª"
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "æ¨æ²é¡å"
-
-# No good translation of bit rate can be found. -- Abel
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "ä½å
ç:"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "å°è¼¯æ¨¡å¼"
#: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>輸åºè¨å®</b>"
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>åå(_F)</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "忍£æ ¼å¼:"
#: src/audacious/ui_preferences.c:152
-#, fuzzy
-msgid "Use software volume control"
-msgstr "é³éæ§å¶:"
+msgid "Buffer size:"
+msgstr "ç·©è¡å大å°:"
#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+msgid "ms"
+msgstr "毫ç§"
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "使ç¨è»é«é³éæ§å¶ (ä¸å»ºè°éå)"
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
msgid "<b>Replay Gain</b>"
-msgstr "<b>æªæ¡å稱</b>"
+msgstr "<b>ææ¾å¢ç</b>"
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
msgid "Enable Replay Gain"
msgstr "åç¨ææ¾å¢ç"
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>æªæ¡å稱</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "檢è¦é³è»ç´°ç¯"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "å°è¼¯å稱ï¼"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "鲿¢è¨èè£åª (建è°éå)"
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
msgid "<b>Adjust Levels</b>"
-msgstr "<b>æ»é¼ 滾輪</b>"
+msgstr "<b>調æ´é³é</b>"
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>å½åºè³è¨</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "æ¾å¤§æææªæ¡çé³é:"
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr ""
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "åè²"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "æ¾å¤§ç¡æ¨ç±¤æªæ¡çé³é:"
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
msgid "Proxy hostname:"
-msgstr "代ç伺æå¨ä¸»æ©å稱ï¼"
+msgstr "代ç伺æå¨å稱:"
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
msgid "Proxy port:"
-msgstr "代ç伺æå¨å èï¼"
+msgstr "代ç伺æå¨é£æ¥å :"
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
msgid "Proxy username:"
-msgstr "使ç¨è
å稱ï¼"
+msgstr "代ç伺æå¨ä½¿ç¨è
å稱:"
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
msgid "Proxy password:"
-msgstr "å¯ç¢¼ï¼"
+msgstr "代ç伺æå¨å¯ç¢¼:"
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
msgid "<b>Proxy Configuration</b>"
msgstr "<b>代ç伺æå¨è¨å®</b>"
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
msgid "Enable proxy usage"
-msgstr "åç¨éé代ç伺æå¨é£ç·"
+msgstr "åç¨ä»£ç伺æå¨"
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
msgid "Use authentication with proxy"
-msgstr "使ç¨é©è"
-
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr "<span size=\"small\">è®æ´éäºè¨å®å¿
é éæ°åå Audaciousã</span>"
+msgstr "éè¦èªè"
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
msgid "Auto character encoding detector for:"
-msgstr "åå
編碼èªå嵿¸¬æ¼ï¼"
+msgstr "èªå嵿¸¬åå
編碼:"
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
msgid "Fallback character encodings:"
-msgstr "åç¨åå
編碼ï¼"
-
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"ææ²è³è¨è½ç¢¼å¤±æææç¨çåå
編碼æ¸
å®ã妿åå
編碼èªå嵿¸¬å¤±æï¼æè¢«åç¨ï¼æ¸
"
-"å®è£¡ç編碼就æè¢«ç¶æææ²è³è¨çåé¸ç·¨ç¢¼ï¼èå¾éäºç·¨ç¢¼è½å° UTF-8 æå°ææç¤ºã"
+msgstr "åç¨åå
編碼:"
-# No good translation of bit rate can be found. -- Abel
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
msgid "<b>Behavior</b>"
-msgstr "ä½å
ç:"
+msgstr "<b>è¡çº</b>"
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
msgid "Continue playback on startup"
-msgstr "åå徿¥çºææ¾"
+msgstr "ååå¾ç¹¼çºä¹åçææ¾"
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "ç®åçææ²è¢«åªé¤æç§»å°ä¸ä¸å"
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
msgid "Clear the playlist when opening files"
-msgstr "以符åçé
ç®å»ºç«æ°çææ¾æ¸
å®"
+msgstr "éåæªæ¡å¾æ¸
é¤ææ¾æ¸
å®"
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
msgid "Open files in a temporary playlist"
-msgstr "å å
¥æªæ¡è³ææ¾æ¸
å®ã"
+msgstr "卿«åææ¾æ¸
å®ä¸éåæªæ¡"
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
msgid "<b>Metadata</b>"
-msgstr "<b>ææ²è³è¨</b>"
+msgstr "<b>è©®éè³æ</b>"
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "å¨ææ²ææ¾ä»¥åä¸è¦è¼å
¥è©®éè³æ"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "æ¨é¡"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "è人 - æ¨é¡"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "è人 - å°è¼¯ - æ¨é¡"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "è人 - å°è¼¯ - é³è». æ¨é¡"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "è人 [ å°è¼¯ ] - é³è». æ¨é¡"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "å°è¼¯ - æ¨é¡"
+
+#: src/audacious/ui_preferences.c:556
msgid "Category"
-msgstr "åé¡"
+msgstr "ç®é"
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
msgid "Popup Information Settings"
-msgstr "å½åºå¼è³è¨è¨å®"
+msgstr "å½åºå¼è³è¨è¦çªè¨å®"
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:789
msgid "<b>Cover image retrieve</b>"
-msgstr "<b>èªå嵿¸¬æªæ¡æ ¼å¼</b>"
+msgstr "<b>æ·åå°é¢åç</b>"
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
msgid ""
"While searching for the album's cover, Audacious looks for certain words in "
"the filename. You can specify those words in the lists below, separated "
"using commas."
msgstr ""
-"æå°å°è¼¯å°é¢æï¼Audacious ææ¥è©¢æªæ¡å稱ä¸çç¹å®åè©ãæ¨å¯ä»¥å¨ä¸åæ¸
å®ä¸æå®"
-"éäºåï¼ä¸¦ä»¥éè (,) ééã"
+"æå°å°è¼¯å°é¢æï¼Audacious æå¾æªåä¸å°æ¾ç¹å®å®åãä½ å¯ä»¥å¨åºä¸æ¸
å®ä¸æå®éäº"
+"å®åï¼åå®åä¹éç¨éé»ééã"
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
msgid "Exclude:"
-msgstr "æé¤ï¼"
+msgstr "æé¤:"
-# This entry is taken from Sun. -- Abel
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
msgid "Include:"
-msgstr "å
å«ï¼"
+msgstr "å
å«:"
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
msgid "Recursively search for cover"
msgstr "éè¿´å°æå°å°é¢"
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
msgid "Search depth: "
-msgstr "æå°æ·±åº¦ï¼"
+msgstr "æå°æ·±åº¦:"
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
msgid "Use per-file cover"
-msgstr "çºæ¯åæªæ¡æå®å°é¢"
+msgstr "åæªæ¡ä½¿ç¨ç¨ç«çå°é¢"
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
msgid "<b>Miscellaneous</b>"
-msgstr "<b>å
¶ä» (_M)</b>"
+msgstr "<b>éé
</b>"
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "顯示ç®åææ²çé²åº¦æ¢"
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
msgid "Delay until filepopup comes up: "
-msgstr ""
+msgstr "顯示å½åºå¼è¦çªç延鲿é:"
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "èªè¨"
+
+#: src/audacious/ui_preferences.c:1352
msgid "<b>Song Display</b>"
-msgstr "<b>ææ²é¡¯ç¤º</b>"
+msgstr "<b>é¡¯ç¤ºææ²</b>"
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
msgid "Show song numbers"
-msgstr ""
+msgstr "é¡¯ç¤ºææ²ç·¨è"
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "顯示éé çæ¸åé¶ (ä¾ï¼02:00 è䏿¯ 2:00)"
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
msgid "Show information about titlestring format"
msgstr "é¡¯ç¤ºéæ¼æ¨é¡åä¸²æ ¼å¼çè³è¨"
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "èªè¨å串:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
msgid "Custom string:"
-msgstr "èªè¨å串ï¼"
+msgstr "èªè¨å串:"
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
msgid "Title format:"
-msgstr "æ¨é¡æ ¼å¼ï¼"
+msgstr "æ¨é¡æ ¼å¼:"
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
msgid "<b>Popup Information</b>"
-msgstr "<b>å½åºè³è¨</b>"
+msgstr "<b>å½åºå¼è³è¨è¦çª</b>"
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
msgid "Show popup information for playlist entries"
-msgstr "顯示æ¸
å®é
ç®çå½åºè³è¨"
+msgstr "é¡¯ç¤ºææ¾æ¸
å®é
ç®çå½åºå¼è³è¨è¦çª"
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
msgid ""
"Toggles popup information window for the pointed entry in the playlist. The "
"window shows title of song, name of album, genre, year of publish, track "
"number, track length, and artwork."
msgstr ""
-"åæææ¾æ¸
å®è£¡æå°çé
ç®çå½åºå¼è³è¨è¦çªãè¦çªæé¡¯ç¤ºææ²æ¨é¡ï¼å°è¼¯åç¨±ï¼ææ²"
-"種é¡ï¼ç¼è¡å¹´ä»½ï¼é³è»ç·¨èï¼é³è»é·åº¦ï¼ä»¥åå°é¢ã"
+"åææ¯å¦é¡¯ç¤ºå½åºå¼è³è¨è¦çªãè¦çªå°æé¡¯ç¤ºæ¨é¡ãå°è¼¯ãé¡åãç¼è¡å¹´ä»½ãé³è»ç·¨"
+"èãé·åº¦åç¾å·¥çè³è¨ã"
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
msgid "Edit settings for popup information"
-msgstr "編輯å½åºå¼è³è¨çè¨å®"
-
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>é³æç³»çµ±</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "ç·©è¡å大å°ï¼"
+msgstr "編輯å½åºå¼è³è¨è¦çªçè¨å®å¼"
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "ç®åçè¼¸åºæä»¶ï¼"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "輸åºå¤æ:"
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
msgid "Transport"
-msgstr "ç¿»è¯äººå¡"
+msgstr "å³è¼¸"
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
msgid "Input"
-msgstr ""
+msgstr "輸å
¥"
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
msgid "Effect"
-msgstr "<b>ææ</b>"
+msgstr "ç¹æ"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "Visualization"
-msgstr "è¦è¦ºåææ"
+msgstr "è¦è¦ºå"
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
msgid "General"
-msgstr ""
+msgstr "ä¸è¬"
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
msgid "Audacious Preferences"
msgstr "Audacious å好è¨å®"
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
#, c-format
msgid "Could not create directory (%s): %s\n"
-msgstr "ç¡æ³å»ºç«ç®é (%s)ï¼%s\n"
+msgstr "ç¡æ³å»ºç«è³æå¤¾ (%s): %s\n"
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
msgid "Position not found."
-msgstr ""
+msgstr "æ¾ä¸å°ä½åã"
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
msgid "No song playing."
-msgstr ""
+msgstr "ç¡ææ¾ä¸ææ²ã"
+
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "鳿¨ CD, é³è» %s"
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
msgid "Mono"
-msgstr ""
+msgstr "å®è²é"
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
msgid "Stereo"
msgstr "ç«é«è²"
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "è²é:"
-
-#: src/libaudgui/confirm.c:65
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d è²é"
+
+# msgid_plural "%d channels"
+# msgstr[0] ""
+# msgstr[1] ""
+#: src/libaudgui/confirm.c:78
#, c-format
msgid ""
"Are you sure you want to close %s? If you do, any changes made since the "
"playlist was exported will be lost."
-msgstr ""
+msgstr "æ¨ç¢ºå®è¦éé %s? æææªå¯åºçè³æå°æéºå¤±ã"
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
msgid "_Don't show this message again"
-msgstr "以å¾å¥å顯示éåè¦åã"
+msgstr "ä¸è¦å顯示éåè¨æ¯(_D)"
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
msgid "Rename Playlist"
-msgstr "å²åææ¾æ¸
å®"
+msgstr "éæ°å½åææ¾æ¸
å®"
#: src/libaudgui/effects-menu.c:76
msgid "settings ..."
-msgstr ""
+msgstr "è¨å® ..."
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
msgid "_Enable"
-msgstr "å·²åç¨"
+msgstr "åç¨(_E)"
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "31 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
msgid "63 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
msgid "125 Hz"
msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "250 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "500 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "1 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
msgid "2 kHz"
-msgstr "1:2 (22 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:127
msgid "4 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:127
msgid "8 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:127
msgid "16 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
msgid "Equalizer"
msgstr "çåå¨"
-# This entry is taken from Sun. -- Abel
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:148
msgid "Preamp"
-msgstr "夢幻鳿¨(Dream)"
+msgstr "åç½®æ¾å¤§"
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:207
+msgid "Track"
+msgstr "é³è»"
+
+#: src/libaudgui/infopopup.c:209
+msgid "Length"
+msgstr "é·åº¦"
+
+#: src/libaudgui/infopopup.c:211
msgid "Track Number"
msgstr "é³è»ç·¨è"
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:213
msgid "Track Length"
-msgstr "é³è»é·åº¦ï¼"
+msgstr "é³è»é·åº¦"
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
msgid "Acid Jazz"
msgstr ""
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:79
msgid "Acid Rock"
msgstr ""
-#: src/libaudgui/infowin.c:79
-#, fuzzy
+#: src/libaudgui/infowin.c:80
msgid "Ambient"
-msgstr "éæ¼ BMP"
+msgstr ""
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:81
msgid "Bebop"
msgstr ""
-#: src/libaudgui/infowin.c:81
-#, fuzzy
+#: src/libaudgui/infowin.c:82
msgid "Bluegrass"
-msgstr "è"
+msgstr ""
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:83
msgid "Blues"
-msgstr "è"
+msgstr ""
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
msgid "Chamber Music"
msgstr ""
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
msgid "Classical"
msgstr ""
-#: src/libaudgui/infowin.c:85
-#, fuzzy
+#: src/libaudgui/infowin.c:86
msgid "Country"
-msgstr "éæ¼ BMP"
+msgstr ""
-#: src/libaudgui/infowin.c:86
-#, fuzzy
+#: src/libaudgui/infowin.c:87
msgid "Death Metal"
-msgstr "å¦é¡é³æ¨Skaæ»äº¡é屬(Death Metal)"
+msgstr ""
-# 迪æ¯å¯ is just a translation in pronunciation, and not widely
-# used. Rejected. -- Abel
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
msgid "Disco"
-msgstr "Disco"
+msgstr ""
-#: src/libaudgui/infowin.c:88
-#, fuzzy
+#: src/libaudgui/infowin.c:89
msgid "Easy Listening"
-msgstr "å·²åç¨"
+msgstr ""
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
msgid "Folk"
msgstr ""
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
msgid "Funk"
msgstr ""
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
msgid "Gangsta Rap"
msgstr ""
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
msgid "Gospel"
msgstr ""
-# çå
is widely used in Taiwan - Woodman
-#: src/libaudgui/infowin.c:93
-#, fuzzy
+#: src/libaudgui/infowin.c:94
msgid "Grunge"
-msgstr "æ¾å®¢(Funk)è»åº«ææ»¾(Grunge)"
+msgstr ""
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
msgid "Hard Rock"
msgstr ""
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
msgid "Heavy Metal"
msgstr ""
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:97
msgid "Hip-hop"
msgstr ""
-#: src/libaudgui/infowin.c:97
-#, fuzzy
+#: src/libaudgui/infowin.c:98
msgid "House"
-msgstr "æ»é¼ "
+msgstr ""
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
msgid "Jazz"
msgstr ""
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
msgid "Jungle"
msgstr ""
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
msgid "Metal"
msgstr ""
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
msgid "New Age"
msgstr ""
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
msgid "New Wave"
msgstr ""
-#: src/libaudgui/infowin.c:103
-#, fuzzy
+#: src/libaudgui/infowin.c:104
msgid "Noise"
-msgstr "æ»é¼ "
+msgstr ""
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
msgid "Pop"
msgstr ""
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
msgid "Punk Rock"
msgstr ""
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
msgid "Rap"
msgstr ""
-#: src/libaudgui/infowin.c:107
-#, fuzzy
+#: src/libaudgui/infowin.c:108
msgid "Reggae"
-msgstr "éæ°å½å (_R)"
+msgstr ""
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
msgid "Rock"
msgstr ""
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:110
msgid "Rock and Roll"
msgstr ""
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
msgid "Rhythm and Blues"
msgstr ""
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
msgid "Ska"
msgstr ""
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
msgid "Soul"
msgstr ""
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
msgid "Swing"
msgstr ""
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
msgid "Techno"
msgstr ""
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:116
msgid "Trip-hop"
msgstr ""
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"small\">年份</span>"
-
-#: src/libaudgui/infowin.c:265
-msgid "Metadata updated successfully"
msgstr ""
#: src/libaudgui/infowin.c:270
+msgid "Metadata updated successfully"
+msgstr "æåå°æ´æ°äºè©®éè³æ"
+
+#: src/libaudgui/infowin.c:275
msgid "Metadata updating failed"
-msgstr ""
+msgstr "è©®éè³ææ´æ°å¤±æ"
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
msgid "Track Information"
-msgstr "é³è»è³è¨ï¼"
+msgstr "é³è»è³è¨"
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:355
msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"small\">註解</span>"
+msgstr "<span size=\"small\">æ ¼å¼:</span>"
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:359
msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"small\">æ¨é¡</span>"
+msgstr "<span size=\"small\">å質:</span>"
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:362
msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">註解</span>"
+msgstr "<span size=\"small\">ä½å
ç:</span>"
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
msgid "<span size=\"small\">Title</span>"
msgstr "<span size=\"small\">æ¨é¡</span>"
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
msgid "<span size=\"small\">Artist</span>"
msgstr "<span size=\"small\">è人</span>"
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
msgid "<span size=\"small\">Album</span>"
msgstr "<span size=\"small\">å°è¼¯</span>"
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"small\">註解</span>"
+msgstr "<span size=\"small\">å註</span>"
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"small\">æ¨æ²ç¨®é¡</span>"
+msgstr "<span size=\"small\">é¡å</span>"
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
msgid "<span size=\"small\">Year</span>"
msgstr "<span size=\"small\">年份</span>"
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
msgid "<span size=\"small\">Track Number</span>"
msgstr "<span size=\"small\">é³è»ç·¨è</span>"
-#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#: src/libaudgui/infowin.c:551
+#, c-format
msgid "%d kb/s"
-msgstr "%d KBit/s"
+msgstr ""
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
#, c-format
msgid "No info available for %s.\n"
+msgstr "ç¡éæ¼ %s çè³è¨ã\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "è·³è³æé"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
msgstr ""
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "å¯åºææ¾æ¸
å®"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "å¯å
¥ææ¾æ¸
å®"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "è¦å¯« %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "ä½å管ç"
+
+#: src/libaudgui/ui_about.c:69
msgid "About Audacious"
msgstr "éæ¼ Audacious"
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
msgid "Credits"
-msgstr "å·¥ä½äººå¡"
+msgstr "éç¼åé"
#: src/libaudgui/ui_credits.c:126
msgid "Translators"
@@ -1177,2814 +1087,141 @@ msgstr "å å
¥æªæ¡"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Open"
-msgstr "éåå¾ééå°è©±æ¡"
+msgstr "éåå¾ééå°è©±è¦çª"
#: src/libaudgui/ui_fileopener.c:110
msgid "Close dialog on Add"
-msgstr "å å
¥å¾ééå°è©±æ¡"
-
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "ç§»åºä½å (_q)"
+msgstr "å å
¥å¾ééå°è©±è¦çª"
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
msgid "_Queue"
msgstr "æå
¥ä½å (_Q)"
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "è·³è³é³è»"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "ç§»åºä½å (_q)"
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "è·³è³ææ²"
+
+#: src/libaudgui/ui_jumptotrack.c:284
msgid "Filter: "
-msgstr "濾波å¨ï¼"
+msgstr "éæ¿¾å¨: "
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
msgid "_Filter:"
-msgstr "æ¿¾æ³¢å¨ (_F)ï¼"
+msgstr "éæ¿¾å¨(_F):"
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
msgid "Remember"
-msgstr ""
+msgstr "è¨ä½"
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:302
msgid "Clea_r"
-msgstr "æ¸
餿æ¾å段"
+msgstr "æ¸
é¤(_R)"
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:322
msgid "Close on Jump"
-msgstr "éåå¾ééå°è©±æ¡"
+msgstr "åæå¾éé"
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
msgid "Playlist Manager"
-msgstr "ææ¾æ¸
å®ç®¡çå¡"
+msgstr "ææ¾æ¸
å®ç®¡ç"
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
msgid "Entries"
-msgstr "é
ç®"
+msgstr "æ¸é"
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
msgid "_Rename"
-msgstr "éæ°å½å (_R)"
+msgstr "éæ°å½å(_R)"
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
msgid "_Close dialog on activating playlist"
-msgstr "éåå¾ééå°è©±æ¡"
+msgstr "åç¨ææ¾æ¸
å®å¾ééå°è©±è¦çª(_C)"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Open URL"
-msgstr ""
+msgstr "éå URL"
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
msgid "Add URL"
+msgstr "å å
¥ URL"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
msgstr ""
+"\n"
+"ï¼è©³ç´°è¨æ¯å·²è¢«é±èãï¼"
#: src/libeggsmclient/eggdesktopfile.c:165
msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "ç¡æç .desktop æªæ¡"
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
msgid "Unrecognized desktop file Version '%s'"
-msgstr "%sï¼ç¡æ³è¾¨èçé¸é
`--%s'\n"
+msgstr "ç¡æ³è¾¨èæ·å¾çæ¬ '%s'"
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
#, c-format
msgid "Starting %s"
-msgstr ""
+msgstr "åå %s ä¸"
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "æç¨ç¨å¼ä¸æ¥åä¾èªå½ä»¤åçæªæ¡åæ¸"
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
msgid "Unrecognized launch option: %d"
-msgstr "%sï¼ç¡æ³è¾¨èçé¸é
`--%s'\n"
+msgstr "ç¡æçååé¸é
: %d"
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
-msgstr ""
+msgstr "ç¡æ³å°æªæ¡ç URI 忏å³çµ¦ä¸åé¡åçºé£çµçæ·å¾"
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
msgid "Not a launchable item"
-msgstr ""
+msgstr "éå¯å·è¡æª"
#: src/libeggsmclient/eggsmclient.c:226
msgid "Disable connection to session manager"
-msgstr ""
+msgstr "éééå¾å·¥ä½é段管çå¡çé£ç·"
#: src/libeggsmclient/eggsmclient.c:229
msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "æå®è¨å®æª"
#: src/libeggsmclient/eggsmclient.c:229
msgid "FILE"
-msgstr ""
+msgstr "æªæ¡"
#: src/libeggsmclient/eggsmclient.c:232
msgid "Specify session management ID"
-msgstr ""
+msgstr "æå®å·¥ä½é段 ID"
#: src/libeggsmclient/eggsmclient.c:232
msgid "ID"
msgstr ""
#: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
msgid "Session management options:"
-msgstr "顯示è¦çªç®¡çå¡è£é£¾"
+msgstr "å·¥ä½é段é¸é
:"
#: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
msgid "Show session management options"
-msgstr "顯示è¦çªç®¡çå¡è£é£¾"
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "audaciousï¼ç¡æ³é¡¯ç¤ºï¼æ£å¨çµæã\n"
-
-# This entry is taken from Sun. -- Abel
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "夢幻鳿¨(Dream)"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "é è¨é¢æ¿ï¼"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>代ç伺æå¨è¨å®</b>"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "é³è»å°å³°:"
-
-#, fuzzy
-#~ msgid "Album gain/peak"
-#~ msgstr "å°è¼¯å¢ç:"
-
-#, fuzzy
-#~ msgid "Dance"
-#~ msgstr "èæ²"
-
-#, fuzzy
-#~ msgid "Oldies"
-#~ msgstr "å"
-
-#, fuzzy
-#~ msgid "Alternative"
-#~ msgstr "å¦é¡é³æ¨Skaæ»äº¡é屬(Death Metal)"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "波峰"
-
-#, fuzzy
-#~ msgid "Fusion"
-#~ msgstr "Fast-Fusion"
-
-#, fuzzy
-#~ msgid "Trance"
-#~ msgstr "èæ²"
-
-#, fuzzy
-#~ msgid "Instrumental"
-#~ msgstr "æ¨å¨æ¼å¥"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "é·æ¢"
-
-#, fuzzy
-#~ msgid "Space"
-#~ msgstr "å²å"
-
-#, fuzzy
-#~ msgid "Instrumental Pop"
-#~ msgstr "æ¨å¨æ¼å¥"
-
-#, fuzzy
-#~ msgid "Instrumental Rock"
-#~ msgstr "æ¨å¨æ¼å¥"
-
-#, fuzzy
-#~ msgid "Techno-Industrial"
-#~ msgstr "é¥èæ¨(Rap)é·é¬¼æ¨(Reggae)ææ»¾æ¨é»åèæ²(Techno)å·¥æ¥ææ»¾(Industrial)"
-
-# This entry is taken from Sun. -- Abel
-#, fuzzy
-#~ msgid "Dream"
-#~ msgstr "夢幻鳿¨(Dream)"
-
-#, fuzzy
-#~ msgid "Southern Rock"
-#~ msgstr "夢幻鳿¨(Dream)åæ¹ææ»¾(Southern Rock)"
-
-#~ msgid "Comedy"
-#~ msgstr "åå鳿¨"
-
-#, fuzzy
-#~ msgid "Cult"
-#~ msgstr "èªè¨å串:"
-
-#, fuzzy
-#~ msgid "Rave"
-#~ msgstr "å²å"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "ææ
¢é"
-
-#, fuzzy
-#~ msgid "Trailer"
-#~ msgstr "æ¨é¡"
-
-#, fuzzy
-#~ msgid "Polka"
-#~ msgstr "ææ¾"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "é¶å¼"
-
-#, fuzzy
-#~ msgid "Musical"
-#~ msgstr "復å¤é³æ¨(Retro)鳿¨å"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#, fuzzy
-#~ msgid "Latin"
-#~ msgstr "義大å©èªï¼"
-
-#, fuzzy
-#~ msgid "Slow Rock"
-#~ msgstr "æ
¢é"
-
-#, fuzzy
-#~ msgid "Sonata"
-#~ msgstr "å¥é³´æ²"
-
-#, fuzzy
-#~ msgid "Primus"
-#~ msgstr "ä¸ä¸é¦"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "ç«ç°"
-
-#, fuzzy
-#~ msgid "Slow Jam"
-#~ msgstr "æ
¢é"
-
-#, fuzzy
-#~ msgid "Tango"
-#~ msgstr "é³è鳿¨(Rave)"
-
-#, fuzzy
-#~ msgid "Duet"
-#~ msgstr "äºéå¥"
-
-#, fuzzy
-#~ msgid "Dance Hall"
-#~ msgstr "èæ²"
-
-#, fuzzy
-#~ msgid "Club-House"
-#~ msgstr "æ»é¼ "
-
-#, fuzzy
-#~ msgid "Terror"
-#~ msgstr "驿鳿¨"
-
-# This entry is taken from Sun. -- Abel
-#, fuzzy
-#~ msgid "Indie"
-#~ msgstr "å
å«ï¼"
-
-#, fuzzy
-#~ msgid "BritPop"
-#~ msgstr "è人å½åºè¨æ¯"
-
-#~ msgid "Beat"
-#~ msgstr "æ²ææ¨"
-
-#, fuzzy
-#~ msgid "Crossover"
-#~ msgstr "è·¨ç鳿¨(Crossover)"
-
-#, fuzzy
-#~ msgid "Salsa"
-#~ msgstr "騷æ²èæ²(Salsa)"
-
-#, fuzzy
-#~ msgid "Synthpop"
-#~ msgstr "忢"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "UNIX å¤åªé«çæªä¾ã\n"
-#~ "\n"
-#~ "çæ¬ææ (C) 2005-2007 Audacious éç¼åé\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "ç¡æ³å»ºç«ç´éæª (%s)ï¼\n"
-
-#~ msgid "Playback"
-#~ msgstr "ææ¾"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>ææ¾</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr "Audacious ååæï¼èªåå¾ä¸æ¬¡åæ¢çå°æ¹éå§ææ¾ã"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "䏿²åææ¾æ¸
å®"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "æå®ä¸é¦ææ²å¾ï¼ä¸è¦èªååå¾ä¸ä¸é¦ã"
-
-#~ msgid "Enabled"
-#~ msgstr "å·²åç¨"
-
-#~ msgid "Description"
-#~ msgstr "æè¿°"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "è¼¸åºæä»¶å好è¨å®"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "è¼¸åºæä»¶è³è¨"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "è§£ç¢¼å¨æ¸
å® (_D)ï¼"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>解碼å¨</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "ä¸è¬æä»¶æ¸
å® (_G)ï¼"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>ä¸è¬</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "è¦è¦ºåæä»¶æ¸
å® (_V)ï¼"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>è¦è¦ºå</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "ç¹ææä»¶æ¸
å® (_E)ï¼"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>ç¹æ</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">æ¨æ²ç¨®é¡</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">ä½ç½®</span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">年份</span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "è"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "å¯ç¨çè¨å®çµå (_P)ï¼"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "å¯ç¨çè¨å®çµå (_P)ï¼"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "å å
¥/éåç¶²åå°è©±æ¡"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "è«è¼¸å
¥æ¬²ææ¾çä½ç½®"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "ä¸è¦æ¸
餿¤ææ¾æ¸
å®"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audaciousï¼%s"
-
-#~ msgid "Filename:"
-#~ msgstr "æªæ¡å稱ï¼"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "æ²æè¼¸å
¥æä»¶é©ç¨æ¤æª"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "輸å
¥æä»¶ï¼%s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>æªé¸åè¼¸åºæä»¶ã</big></b>\n"
-#~ "æ¨å°æªé¸åä¸ç¨®è¼¸åºæä»¶ã"
-
-#~ msgid "Connectivity"
-#~ msgstr "é£ç·"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "忍£ç:"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>èªå嵿¸¬æªæ¡æ ¼å¼</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "ä¾å¯æªå嵿¸¬æªæ¡æ ¼å¼ã"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "䏿¦å¾é¸ï¼Audacious å°ä¾å¯æªå嵿¸¬æªæ¡æ ¼å¼ãéæ¯è¦æ
æ³æåµæ¸¬ä¾çæ
¢ï¼ä½ä»è½"
-#~ "æä¾æå°çç´çæªæ¡æ ¼å¼åµæ¸¬ã"
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "忍£ç:"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "忍£ç:"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "é²éè¨å®"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "çæ¬ææ (C) 2005-2007 Audacious éç¼åé"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "è¦æ
æ³æåµæ¸¬æªæ¡æ ¼å¼èä¸ç«å³åµæ¸¬ã"
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "䏿¦å¾é¸ï¼Audacious å°è¦éè¦åµæ¸¬æªæ¡æ ¼å¼ãéæé æä¸åæ¯è¼æ··äºçææ¾æ¸
å®ï¼"
-#~ "使¯æé¡¯èçé度æåã"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "å¾ææ¾æ¸
å®èæªæ¡è¼å
¥ææ²è³è¨"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "è¼å
¥é³æ¨æªçææ²è³è¨ (æ¨ç±¤è³è¨)ã"
-
-#~ msgid "Jump to Time"
-#~ msgstr "è·³è³æå»"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "åï¼ç§"
-
-#~ msgid "Track length:"
-#~ msgstr "é³è»é·åº¦ï¼"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "å²åææ¾æ¸
å®"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "寫å
¥ææ¾æ¸
å® \"%s\"ï¼%s æç¼çé¯èª¤"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s å·²ç¶åå¨ãæ¯å¦ç¹¼çºï¼"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>ç¡æ³å²åææ¾æ¸
å®ã</big></b>\n"
-#~ "\n"
-#~ "'%s' æ¯æªç¥çæªæ¡åå¥ã\n"
-
-#~ msgid "Presets"
-#~ msgstr "è¨å®çµå"
-
-#~ msgid "Mouse"
-#~ msgstr "æ»é¼ "
-
-#~ msgid "Pause between songs"
-#~ msgstr "ææ²éç¨ä½æ«å"
-
-#~ msgid "Pause for"
-#~ msgstr "æ«å"
-
-#~ msgid "seconds"
-#~ msgstr "ç§"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>æªæ¡å稱</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "è½æä¸åç·çºç©ºç½"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "è½æ %20 çºç©ºç½"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "è½æåæç· '\\' çºæç· '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>æªæ¡å°è©±æ¡</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "éåæªæ¡å°è©±æ¡æç¸½æ¯éæ°æ´çç®é"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "總æ¯éæ°æ´çæªæ¡å°è©±æ¡ (å¨å¤§éç®éä¸éåå°è©±æ¡æè®æ
¢ï¼èä¸ Gnome VFS æè©²"
-#~ "æèªåèç)ã"
-
-#~ msgid "Changes volume by"
-#~ msgstr "æ»é¼ 滾輪æ¹è®é³é以"
-
-#~ msgid "percent"
-#~ msgstr "ç¾åæ¯"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "æ»é¼ æ²åææ¾æ¸
å®ä»¥"
-
-#~ msgid "lines"
-#~ msgstr "å"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "æå®ç®åçææ²å¾åæ¢"
-
-#~ msgid "Peaks"
-#~ msgstr "波峰"
-
-#~ msgid "Repeat"
-#~ msgstr "éè¤"
-
-#~ msgid "Shuffle"
-#~ msgstr "鍿©"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "ä¸ä½¿ç¨ææ¾æ¸
å®é²éé
ç®"
-
-#~ msgid "Play"
-#~ msgstr "ææ¾"
-
-#~ msgid "Pause"
-#~ msgstr "æ«å"
-
-#~ msgid "Stop"
-#~ msgstr "忢"
-
-#~ msgid "Previous"
-#~ msgstr "ä¸ä¸é¦"
-
-#~ msgid "Next"
-#~ msgstr "ä¸ä¸é¦"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "è¦è¦ºå模å¼"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "åæå¨æ¨¡å¼"
-
-#~ msgid "Scope Mode"
-#~ msgstr "ç¯å模å¼"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "è²æ³¢ç´æ¨¡å¼"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "è¦çªé°å½± VU 模å¼"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "éæ°æ´çé »ç"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "åæå¨ä¸éé度"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "波峰ä¸éé度"
-
-#~ msgid "New Playlist"
-#~ msgstr "æ°å¢ææ¾æ¸
å®"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "鏿ä¸åææ¾æ¸
å®"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "鏿ä¸åææ¾æ¸
å®"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "鏿ä¸åææ¾æ¸
å®"
-
-#~ msgid "Load List"
-#~ msgstr "è¼å
¥æ¸
å®"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "è¼å
¥ä¸åææ¾æ¸
å®è³æé¸æ¸
å®ä¸ã"
-
-#~ msgid "Save List"
-#~ msgstr "å²åæ¸
å®"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "å²åæé¸ææ¾æ¸
å®"
-
-#~ msgid "Save Default List"
-#~ msgstr "å²åé è¨æ¸
å®"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "å°æé¸ææ¾æ¸
å®åè³é è¨ä½ç½®ã"
-
-#~ msgid "Refresh List"
-#~ msgstr "éæ°æ´çæ¸
å®"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "éæ°æ´ç忏
å®é
ç®ç¸éè¯çè³è¨"
-
-#~ msgid "List Manager"
-#~ msgstr "ææ¾æ¸
å®ç®¡çå¡"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "éåææ¾æ¸
å®ç®¡çå¡ã"
-
-#~ msgid "View"
-#~ msgstr "檢è¦"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "å å
¥ç¶²è·¯ä½å..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "å å
¥é 端é³è»è³ææ¾æ¸
å®ã"
-
-#~ msgid "Add Files..."
-#~ msgstr "å å
¥æªæ¡..."
-
-#~ msgid "Search and Select"
-#~ msgstr "æå°ä¸¦é¸å"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr "å¨ææ¾æ¸
å®ä¸æå°ï¼ä¸¦ä¾æå®çè¦åé¸åæ¸
å®é
ç®ã"
-
-#~ msgid "Invert Selection"
-#~ msgstr "ååé¸å"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "ååå·²é¸åæªé¸çé
ç®ã"
-
-#~ msgid "Select All"
-#~ msgstr "å
¨é¸"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "é¸åå
¨é¨æ¸
å®é
ç®ã"
-
-#~ msgid "Select None"
-#~ msgstr "åæ¶é¸å"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "åæ¶å
¨é¨æ¸
å®é
ç®çé¸å"
-
-#~ msgid "Remove All"
-#~ msgstr "å
¨é¨ç§»é¤"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "ç§»é¤å
¨é¨çæ¸
å®é
ç®ã"
-
-#~ msgid "Clear Queue"
-#~ msgstr "æ¸
é¤ä½å"
+msgstr "顯示工ä½é段é¸é
"
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "æ¸
é¤åæ¤ææ¾æ¸
å®ç¸éè¯çä½åã"
+#~ msgid "Temporary Playlist"
+#~ msgstr "æ«åææ¾æ¸
å®"
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "ç§»é¤ç¡æ³ä½¿ç¨çæªæ¡"
+#~ msgid "Untitled Playlist"
+#~ msgstr "æªå½åçææ¾æ¸
å®"
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "ç§»é¤æ¸
å®ä¸ç¡æ³ä½¿ç¨çæªæ¡ã"
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "ç§»é¤éè¤çé
ç®"
-
-#~ msgid "By Title"
-#~ msgstr "便¨é¡"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "便¨é¡ç§»é¤æ¸
å®ä¸éè¤çé
ç®ã"
-
-#~ msgid "By Filename"
-#~ msgstr "便ªå"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "便ªåç§»é¤æ¸
å®ä¸éè¤çé
ç®ã"
-
-#~ msgid "By Path + Filename"
-#~ msgstr "ä¾è·¯å¾ + æªå"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "ä¾å®æ´è·¯å¾ç§»é¤æ¸
å®ä¸éè¤çé
ç®ã"
-
-#~ msgid "Remove Unselected"
-#~ msgstr "ç§»é¤æªé¸åç"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "ç§»é¤æ¸
å®ä¸æªé¸åçé
ç®ã"
-
-#~ msgid "Remove Selected"
-#~ msgstr "ç§»é¤é¸åç"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "ç§»é¤æ¸
å®ä¸é¸åçé
ç®ã"
-
-#~ msgid "Randomize List"
-#~ msgstr "鍿©æ¸
å®"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "鍿©æåºææ¾æ¸
å®ã"
-
-#~ msgid "Reverse List"
-#~ msgstr "åè½æ¸
å®"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "åè½ææ¾æ¸
å®ã"
-
-#~ msgid "Sort List"
-#~ msgstr "æåºæ¸
å®"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "便¨é¡æåºæ¸
å®ã"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "å°è¼¯"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "便¨é¡æåºæ¸
å®ã"
-
-#~ msgid "By Artist"
-#~ msgstr "ä¾è人"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "ä¾è人æåºæ¸
å®ã"
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "便ªåæåºæ¸
å®ã"
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "ä¾å®æ´è·¯å¾æåºæ¸
å®ã"
-
-#~ msgid "By Date"
-#~ msgstr "便¥æ"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "ä¾ä¿®æ¹æéæåºæ¸
å®ã"
-
-#~ msgid "By Track Number"
-#~ msgstr "ä¾é³è»ç·¨è"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "ä¾é³è»ç·¨èæåºæ¸
å®ã"
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "便¸
å®é
ç®"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "便¸
å®é
ç®æåºæ¸
å®ã"
-
-#~ msgid "Sort Selected"
-#~ msgstr "æåºé¸åçé
ç®"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "ç«ç°"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "註解"
-
-#~ msgid "View Track Details"
-#~ msgstr "檢è¦é³è»ç´°ç¯"
-
-#~ msgid "Play File"
-#~ msgstr "ææ¾æªæ¡"
-
-#~ msgid "Load and play a file"
-#~ msgstr "è¼å
¥ä¸¦ææ¾æªæ¡"
-
-#~ msgid "Play Location"
-#~ msgstr "ææ¾ä½ç½®"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "å¾é¸åçä½ç½®ææ¾åªé«"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "æä»¶"
-
-#~ msgid "Preferences"
-#~ msgstr "å好è¨å®"
-
-#~ msgid "Open preferences window"
-#~ msgstr "éåå好è¨å®è¦çª"
-
-#~ msgid "_Quit"
-#~ msgstr "çµæ (_Q)"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "çµæ Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "è¨å®ææ¾å段"
-
-#~ msgid "Clear A-B"
-#~ msgstr "æ¸
餿æ¾å段"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "è·³è³ææ¾æ¸
å®éé "
-
-#~ msgid "Jump to File"
-#~ msgstr "è·³è³æªæ¡"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "ä½ååæ"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "åç¨/åç¨æ¸
å®ä½åä¸çé
ç®ã"
-
-#~ msgid "Load"
-#~ msgstr "è¼å
¥"
-
-#~ msgid "Import"
-#~ msgstr "å¯å
¥"
-
-#~ msgid "Save"
-#~ msgstr "å²å"
-
-#~ msgid "Delete"
-#~ msgstr "åªé¤"
-
-#~ msgid "Preset"
-#~ msgstr "è¨å®çµå"
-
-#~ msgid "Load preset"
-#~ msgstr "è¼å
¥è¨å®çµå"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "èªåè¼å
¥è¨å®çµå"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "è¼å
¥èªåè¨å®çµå"
-
-#~ msgid "Default"
-#~ msgstr "é è¨çè¨å®çµå"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "è¼å
¥é è¨çè¨å®çµåè³çåå¨"
-
-#~ msgid "Zero"
-#~ msgstr "é¶å¼"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "å°çåå¨è¨å®çµåè¨å®çºé¶å¼"
-
-#~ msgid "From file"
-#~ msgstr "徿ªæ¡"
-
-#~ msgid "Load preset from file"
-#~ msgstr "徿ªæ¡è¼å
¥è¨å®çµå"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "å¾ WinAMP EQF æªæ¡"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "å¾ WinAMP EQF æªæ¡è¼å
¥è¨å®çµå"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "WinAMP è¨å®çµå"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "å¯å
¥ WinAMP è¨å®çµå"
-
-#~ msgid "Save preset"
-#~ msgstr "å²åè¨å®çµå"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "å²åèªåè¼å
¥è¨å®çµå"
-
-#~ msgid "Save default preset"
-#~ msgstr "åçºé è¨çè¨å®çµå"
-
-#~ msgid "To file"
-#~ msgstr "è³æªæ¡"
-
-#~ msgid "Save preset to file"
-#~ msgstr "å²åè¨å®çµåè³æªæ¡"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "è³ WinAMP EQF æªæ¡"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "å²åè¨å®çµåè³ WinAMP EQF æªæ¡"
-
-#~ msgid "Delete preset"
-#~ msgstr "åªé¤è¨å®çµå"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "åªé¤èªåè¼å
¥è¨å®çµå"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">鿝é å
åå
¥ç·©è¡åçé³è¨ä¸²æµææ¸ï¼ä»¥ç¾è¬åä¹ä¸ç§çºå®"
-#~ "ä½ã\n"
-#~ "è¥æ¨ç¼ç¾é³è¨ä¸é£çºï¼è«å¢å 鿏å¼ã\n"
-#~ "ç¶èï¼è«æ³¨æï¼éé«çæ¸å¼å°æä½¿ Audacious æè½è®å·®ã</span>"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>ç¡æ³è¼å
¥é¢æ¿ã</big></b>\n"
-#~ "\n"
-#~ "è«ç¢ºèªä½æ¼ '%s' ç颿¿æ¯å¯ç¨çï¼ä¸é è¨é¢æ¿è¢«æ£ç¢ºå°å®è£æ¼ '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "é ç«¯ä½æ¥ [å°å¨æ¸¬è©¦é段]"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious 主è¦éç¼äººå¡ï¼"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious çåå¨"
-
-#~ msgid "Play files"
-#~ msgstr "ææ¾æªæ¡"
-
-#~ msgid "Load files"
-#~ msgstr "è¼å
¥æªæ¡"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "å®è²é"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "è«é¸åä¸»è¦ææ¾å¨è¦çªçååï¼"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "ç¡"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "å°è³ï¼%d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "æä¸å±¤é¡¯ç¤º"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "æä¸å±¤é¡¯ç¤º"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "è¦è¦ºå模å¼"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\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 ""
-#~ "<b><big>ç¡æ³éåé³è¨ã</big></b>\n"
-#~ "\n"
-#~ "è«ç¢ºèªï¼\n"
-#~ "1. æ¨å·²é¸ææ£ç¢ºçè¼¸åºæä»¶ã\n"
-#~ "2. æ²æå
¶ä»ç¨å¼ä½ç¨é³æå¡ã\n"
-#~ "3. æ¨ç鳿å¡è¨å®æ£ç¢ºã\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "èªåæ²åææ²å稱"
-
-#~ msgid "Show Player"
-#~ msgstr "é¡¯ç¤ºææ¾å¨"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "é¡¯ç¤ºææ¾æ¸
å®ç·¨è¼¯å¨"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "顯示çåå¨"
-
-#~ msgid "Always on Top"
-#~ msgstr "æä¸å±¤é¡¯ç¤º"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "ç½®æ¼ææå·¥ä½å"
-
-#~ msgid "Roll up Player"
-#~ msgstr "æ²èµ·ææ¾å¨"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "æ²èµ·ææ¾æ¸
å®ç·¨è¼¯å¨"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "æ²èµ·çåå¨"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "å²å"
-
-#~ msgid "DoubleSize"
-#~ msgstr "éå大å°"
-
-#~ msgid "Easy Move"
-#~ msgstr "é¨æç§»å"
-
-#~ msgid "Analyzer"
-#~ msgstr "åæå¨æ¨¡å¼"
-
-#~ msgid "Scope"
-#~ msgstr "ç¯å模å¼"
-
-#~ msgid "Voiceprint"
-#~ msgstr "è²æ³¢ç´æ¨¡å¼"
-
-#~ msgid "Off"
-#~ msgstr "éé"
-
-#~ msgid "Normal"
-#~ msgstr "ä¸è¬"
-
-#~ msgid "Fire"
-#~ msgstr "ç«ç°"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "åç´ç·"
-
-#~ msgid "Lines"
-#~ msgstr "ç·"
-
-#~ msgid "Bars"
-#~ msgstr "é·æ¢"
-
-#~ msgid "Dot Scope"
-#~ msgstr "é»çç¯å"
-
-#~ msgid "Line Scope"
-#~ msgstr "ç·çç¯å"
-
-#~ msgid "Solid Scope"
-#~ msgstr "å¯å¯¦ç¯å"
-
-#~ msgid "Ice"
-#~ msgstr "å¯å°"
-
-#~ msgid "Smooth"
-#~ msgstr "å¹³æ»"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "å
¨é (ç´ 50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "åé (ç´ 25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "ååä¹ä¸ (ç´ 13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "å
«åä¹ä¸ (ç´ 6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "ææ
¢é"
-
-#~ msgid "Slow"
-#~ msgstr "æ
¢é"
-
-#~ msgid "Medium"
-#~ msgstr "ä¸ç"
-
-#~ msgid "Fast"
-#~ msgstr "å¿«é"
-
-#~ msgid "Fastest"
-#~ msgstr "æå¿«é"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "ç¶éæé"
-
-#~ msgid "Time Remaining"
-#~ msgstr "å©é¤æé"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "æä»¶"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "å¨åç¨çæ¸
å®è£¡æå°é
ç®"
-
-#~ 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 ""
-#~ "éé填寫ä¸åæå¤åæ¬ä½ä¾é¸åæ¸
å®é
ç®ãæ¬ä½ä½¿ç¨æ£è¦è¡¨ç¤ºå¼èªæ³ä¸å¤§å°å¯«ç¸ç°ã"
-#~ "è¥æ¨ä¸æå¾æ£è¦è¡¨ç¤ºå¼å¦ä½éä½ï¼åªè¦è¼¸å
¥æ¨è¦æå°çæåçæ®µã"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "æ¨é¡"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "å°è¼¯"
-
-#~ msgid "Artist: "
-#~ msgstr "è人ï¼"
-
-#~ msgid "Filename: "
-#~ msgstr "æªæ¡å稱ï¼"
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "æå°åå
æ¸
é¤ä¹åçé¸å"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "ä¾ç¬¦åçé
ç®èªååæä½å"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious ææ¾æ¸
å®ç·¨è¼¯å¨"
-
-#~ msgid "Appearance"
-#~ msgstr "å¤è§"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>åå (_F)</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "ææ¾å¨ (_P)ï¼"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "è«é¸åä¸»è¦ææ¾å¨è¦çªçååï¼"
-
-#~ msgid "_Playlist:"
-#~ msgstr "ææ¾æ¸
å® (_P)ï¼"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "è«é¸åä¸»è¦ææ¾å¨è¦çªçååï¼"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "使ç¨é»é£å (妿å¯ç¨)"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr "å¯ç¨ç話就使ç¨é»é£åãä½é»é£å䏿¯æ´è¬å碼å串ã"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>å
¶ä» (_M)</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "é¡¯ç¤ºææ¾æ¸
å®ä¸çé³è»ç·¨è"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "é¡¯ç¤ºææ¾æ¸
å®ä¸çåé符è"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "顯示è¦çªç®¡çå¡è£é£¾"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr "éæä½¿å¾è¦çªç®¡çå¡çºè¦çªå ä¸è£é£¾ã"
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "ä½¿ç¨ XMMS é¢¨æ ¼çæªæ¡é¸åå°è©±æ¡èä¸ä½¿ç¨é è¨ç"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "éæåç¨ XMMS/GTK1 é¢¨æ ¼çæªæ¡é¸åå°è©±æ¡ãéåé¸åå¨ç± Audacious èªèº«æä¾ï¼"
-#~ "è䏿¯é è¨ç GTK2 é¸åå¨éå¿«é (ä½å¯æçæ¯æ²æé£éº¼ä½¿ç¨è
åå)ã"
-
-#~ msgid "On load"
-#~ msgstr "è¼å
¥æ"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "ç¶æ°å¢æªæ¡å°ææ¾æ¸
å®æææ¯éåæªæ¡æï¼è¼å
¥ææ²è³è¨"
-
-#~ msgid "On display"
-#~ msgstr "顯示æ"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "å¨ææ¾æ¸
å®è£¡é¡¯ç¤ºæªæ¡æå³å¾ä¼ºæç¨å¼è¼å
¥ç¸éææ²è³è¨"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "è²å·®èª¿æ´"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious å
è¨±æ¨æ´æ¹é¢æ¿ä»é¢çè²å½©å¹³è¡¡ãæ¨å¯ééä¸åçæ»æ¡¿é²è¡èª¿æ´ã"
-
-#~ msgid "Blue"
-#~ msgstr "è"
-
-#~ msgid "Green"
-#~ msgstr "ç¶ "
-
-#~ msgid "Red"
-#~ msgstr "ç´
"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>颿¿ (_S)</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "éæ°æ´ç颿¿å表"
-
-#~ msgid "PREAMP"
-#~ msgstr "åç½®æ¾å¤§å¨"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "å·²å£ç¸®ç Winamp 2.x 颿¿"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "è§£å£ç¸®ç Winamp 2.x 颿¿"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "使ç¨èªè¨æ¸¸æ¨"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "æä»¶"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "æ±æï¼æ¨çå¹³å°ä¸¦ä¸æ¯æ´å·è¡ç·ã\n"
-#~ "\n"
-#~ "妿æ¨ä½¿ç¨åºæ¼ libc5 ç linux 系統ä¸å·²å®è£ Glib è GTK+ã\n"
-#~ "å¨å®è£ LinuxThreads åï¼æ¨å¿
é éæ°ç·¨è¯ Glib è GTK+ã\n"
-
-#~ msgid "Error in Audacious."
-#~ msgstr "Audacious ç¼çé¯èª¤ã"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "åç¨ 6dB éä½é³ + éå¶"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "è«é¸æ Audacious/BMP/XMMS 使¥é段 (é è¨ï¼0)"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "éå大å°"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "éå大å°"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>è¨å®çµå</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "è¨å®çµå坿ªåï¼"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "ç®éè¨å®çµåæªï¼"
-
-#~ msgid "localhost"
-#~ msgstr "æ¬å°ä¸»æ©"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>ç¡æ³å»ºç« %sã</big></b>\n"
-#~ "\n"
-#~ "ç¡æ³éå glade æª (%s)ãè«ç¢ºèªæ¯å¦æ£ç¢ºå®è£ã\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "æ¨é¡\n"
-#~ "è人 - æ¨é¡\n"
-#~ "è人 - å°è¼¯ - æ¨é¡\n"
-#~ "è人 - å°è¼¯ - é³è»ç·¨è. æ¨é¡\n"
-#~ "è人 [ å°è¼¯ ] - é³è»ç·¨è. æ¨é¡\n"
-#~ "å°è¼¯ - æ¨é¡\n"
-#~ "èªè¨"
-
-#~ msgid "Track Information Window"
-#~ msgstr "é³è»è³è¨è¦çª"
-
-#~ msgid "Preferences Window"
-#~ msgstr "å好è¨å®è¦çª"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>è人</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>æ¨é¡</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>å°è¼¯</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Audacious ææ¾æ¸
å®ç·¨è¼¯å¨"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>è人</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<i>æ¨é¡</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>å°è¼¯</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "é³éï¼%d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "平衡ï¼%d%% å·¦"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "平衡ï¼ä¸å¤®"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "平衡ï¼%d%% å³"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "ææ¾ä½ç½®"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "ææ¾ä½ç½®"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>æ¾ä¸å°å¯ä¾ææ¾ç CDã</big></b>\n"
-#~ "\n"
-#~ "å¯è½æ¯æ²æ¾å
¥ CDï¼ææ¾å
¥ç䏿¯é³è¨ CDã\n"
-
-#~ msgid "Add CD..."
-#~ msgstr "å å
¥ CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "å å
¥ CD è³ææ¾æ¸
å®ã"
-
-#~ msgid "Play CD"
-#~ msgstr "ææ¾ CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "æ¼åºè
/è人"
-
-#~ msgid "File name"
-#~ msgstr "æªæ¡å稱"
-
-#~ msgid "File path"
-#~ msgstr "æªæ¡è·¯å¾"
-
-#~ msgid "File extension"
-#~ msgstr "坿ªå"
-
-#~ msgid "Track name"
-#~ msgstr "é³è»å稱"
-
-#~ msgid "Track number"
-#~ msgstr "é³è»ç·¨è"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}ï¼åªå¨è¡¨ç¤ºå
ç´ %n æé¡¯ç¤º \"...\""
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "æ±æï¼æ¨ç GTK+ çæ¬ (%d.%d.%d) è Audacious ä¸ç¸å®¹ã\n"
-#~ "è«ä½¿ç¨ GTK+ %s ææ´æ°ççæ¬ã\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "é¸é
é¸å®"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "åç¨æä¸å±¤é¡¯ç¤º"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "åç¨æä¸å±¤é¡¯ç¤º"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "æªæ¡è³è¨æ¹å¡"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "åç¨éå大å°"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "åç¨éå大å°"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "è¦è¦ºåé¸å®"
-
-#~ msgid "Track name: "
-#~ msgstr "é³è»å稱ï¼"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>ç¡æ³ææ¾æªæ¡ã</big></b>\n"
-#~ "\n"
-#~ "ç¡æ³ææ¾ä¸åæªæ¡ãè«ç¢ºèªï¼\n"
-#~ "1. å®åå¯è¢«ååã\n"
-#~ "2. æ¨å·²åç¨æéçå¤åªé«æä»¶ã"
-
-#~ msgid "Show more _details"
-#~ msgstr "顯示æ´å¤ç´°ç¯ (_d)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "æ¶å° SIGSEGV\n"
-#~ "\n"
-#~ "éå¯è½æ¯ Audacious çä¸åé¯èª¤ã妿æ¨ä¸ç¥éçºä½éæç¼çï¼è«åå ±é¯èª¤å° "
-#~ "http://bugs-meta.atheme.org/\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "åç¨éæåææ¾æ¸
å®ãé並ä¸å»ºè°å¨è¼æ
¢çæ©å¨ä¸ä½¿ç¨ï¼å çºå®éè¦ä¸äº CPU æé"
-#~ "ä¾å»ºç«ä¸¦å¿«åéæåè¦ç¨çé»é£åã"
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "åç¨ææ¾æ¸
å®éæå"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%sï¼é¸é
`%s' æ¯æ¨¡ç¨å
©å¯ç\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%sï¼é¸é
`--%s' ä¸å
許ä¸å弿¸\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%sï¼é¸é
`%c%s' ä¸å
許ä¸å弿¸\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%sï¼é¸é
`%s' éè¦ä¸å弿¸\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%sï¼ç¡æ³è¾¨èçé¸é
`%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%sï¼ä¸ç¬¦è¦åçé¸é
-- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%sï¼ç¡æçé¸é
-- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%sï¼é¸é
éè¦ä¸å弿¸ -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%sï¼é¸é
`-W %s' æ¯æ¨¡ç¨å
©å¯ç\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%sï¼é¸é
`-W %s' ä¸å
許ä¸å弿¸\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "ç¨æ³ï¼audacious [é¸é
] [æªæ¡] ...\n"
-#~ "\n"
-#~ "é¸é
ï¼\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "é¡¯ç¤ºéæ®µæåå¾çµæ"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "åèµ· Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "åä¸å使¥é段 ID"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "åç¨é¯èª¤/è¦åè¨æ¯æ·å (ç´é)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "å°åºçæ¬ç·¨èå¾çµæ\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "å å
¥/éåæªæ¡å°è©±æ¡"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "å å
¥å¾ééå°è©±æ¡"
-
-#~ msgid "Deselect All"
-#~ msgstr "åæ¶å
¨é¸"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "é³è»è³è¨å½åºè¨æ¯"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>æ¨æ²ç¨®é¡</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>年份</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>é³è»ç·¨è</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>é³è»é·åº¦</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/檢è¦é³è»ç´°ç¯"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/è¦è¦ºå模å¼/åæå¨"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/è¦è¦ºå模å¼/ç¯å"
-
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/è¦è¦ºå模å¼/è²æ³¢ç´"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/è¦è¦ºå模å¼/éé"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/åæå¨æ¨¡å¼/ä¸è¬"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/åæå¨æ¨¡å¼/ç·ç"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/åæå¨æ¨¡å¼/é·æ¢"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/åæå¨æ¨¡å¼/波峰"
-
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/åæå¨æ¨¡å¼/ä¸è¬"
-
-#~ msgid "/Voiceprint mode/Fire"
-#~ msgstr "/åæå¨æ¨¡å¼/ç«ç°"
-
-#~ msgid "/Voiceprint mode/Ice"
-#~ msgstr "/åæå¨æ¨¡å¼/å°æ±"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/è¦çªé°å½± VU 模å¼/ä¸è¬"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/è¦çªé°å½± VU 模å¼/å¹³æ»"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/åæå¨ä¸éé度/ææ
¢"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/åæå¨ä¸éé度/æ
¢"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/åæå¨ä¸éé度/ä¸ç"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/åæå¨ä¸éé度/å¿«"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/åæå¨ä¸éé度/æå¿«"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/波峰ä¸éé度/ææ
¢"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/波峰ä¸éé度/æ
¢"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/波峰ä¸éé度/ä¸ç"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/波峰ä¸éé度/å¿«"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/波峰ä¸éé度/æå¿«"
-
-#~ msgid "/Pause"
-#~ msgstr "/æ«å"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/è·³è³æå»"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/éæ¼ Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/æªæ¡..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/網路ä½ç½®..."
-
-#~ msgid "New List"
-#~ msgstr "æ°å¢æ¸
å®"
-
-#~ msgid "Creates a new playlist."
-#~ msgstr "建ç«ä¸åæ°çææ¾æ¸
å®ã"
-
-#~ msgid "Displays track information."
-#~ msgstr "顯示é³è»è³è¨ã"
-
-#~ msgid "Georgian: "
-#~ msgstr "嬿²»äºèªï¼"
-
-#~ msgid "/Load"
-#~ msgstr "/è¼å
¥"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/è¼å
¥/è¨å®çµå"
-
-#~ msgid "/Load/Auto-load preset"
-#~ msgstr "/è¼å
¥/èªåè¼å
¥è¨å®çµå"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/è¼å
¥/é è¨å¼"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/è¼å
¥/é¶"
-
-#~ msgid "/Load/From file"
-#~ msgstr "/è¼å
¥/徿ªæ¡"
-
-#~ msgid "/Load/From WinAMP EQF file"
-#~ msgstr "/è¼å
¥/å¾ WinAMP EQF æªæ¡"
-
-#~ msgid "/Import"
-#~ msgstr "/å¯å
¥"
-
-#~ msgid "/Import/WinAMP Presets"
-#~ msgstr "/å¯å
¥/WinAMP è¨å®çµå"
-
-#~ msgid "/Save"
-#~ msgstr "/å²å"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/å²å/è¨å®çµå"
-
-#~ msgid "/Save/Auto-load preset"
-#~ msgstr "/å²å/èªåè¼å
¥è¨å®çµå"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/å²å/é è¨å¼"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/å²å/è³æªæ¡"
-
-#~ msgid "/Save/To WinAMP EQF file"
-#~ msgstr "/å²å/çº WinAMP E.QF æªæ¡"
-
-#~ msgid "/Delete"
-#~ msgstr "/åªé¤"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/åªé¤/è¨å®çµå"
-
-#~ msgid "/Delete/Auto-load preset"
-#~ msgstr "/åªé¤/èªåè¼å
¥è¨å®çµå"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "è¼å
¥èªåè¨å®çµå"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "è¼å
¥çåå¨è¨å®çµå"
-
-#~ msgid "Save auto-preset"
-#~ msgstr "å²åèªåè¨å®çµå"
-
-#~ msgid "Save equalizer preset"
-#~ msgstr "å²åçåå¨è¨å®çµå"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "åªé¤èªåè¨å®çµå"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/æåºæ¸
å®/便¨é¡"
-
-#, fuzzy
-#~ msgid ""
-#~ "/Remove Duplicates/By Filename/Load List/Update View/Select All/Sort List/"
-#~ "By Date/Sort Selection/By Title"
-#~ msgstr ""
-#~ "/æåºæ¸
å®/便ªæ¡å稱/è¼å
¥æ¸
å®/æ´æ°æª¢è¦/鏿å
¨é¨/æåºæ¸
å®/便¥æ/æåºé¸æ"
-#~ "å/便¨é¡"
-
-#, fuzzy
-#~ msgid ""
-#~ "/Sort Selection/By Artist/Sort Selection/By Filename/Sort Selection/By "
-#~ "Path + Filename/Sort Selection/By Date"
-#~ msgstr ""
-#~ "/æåºé¸æå/便¨é¡/æåºé¸æå/便ªæ¡å稱/æåºé¸æå/ä¾è·¯å¾ + æªæ¡å稱/æåº"
-#~ "鏿å/便¥æ"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/æåºé¸æå/便¥æ"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/æåºé¸æå/便¨é¡"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b>_Miscillaneous UI Features</b>Load metadata (tag information) from "
-#~ "music files.Load metadata when adding the file to the playlist or opening "
-#~ "itShow information about titlestring formatWhen finished playing a song, "
-#~ "don't automatically advance to the next."
-#~ msgstr ""
-#~ "<b>éé
(_M)</b>å¾é³æ¨æªæ¡è¼å
¥ä¸ç¹¼è³æ(æ¨ç±¤è³è¨)ç¶å å
¥æªæ¡å°ææ¾æ¸
宿éå"
-#~ "宿è¼å
¥ä¸ç¹¼è³æé¡¯ç¤ºæéæ¨é¡åä¸²æ ¼å¼çè³è¨ç¶ææ¾å®ä¸é¦ææ²ï¼ä¸è¦èªåé²å
¥ä¸"
-#~ "ä¸é¦ã"
-
-#, fuzzy
-#~ msgid "About AudioCompressOk"
-#~ msgstr "éæ¼ MPEG 鳿夿ç¨å¼ç¢ºå®"
-
-#, fuzzy
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "éæ¼ ESounD 夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "Effect intensity:"
-#~ msgstr "ææå¤æç¨å¼æ¸
å®(_E):"
-
-#, fuzzy
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "éæ¼ ESounD 夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "LIRC Plugin "
-#~ msgstr "夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "LIRC PluginUsername:Password:"
-#~ msgstr "夿ç¨å¼ä½¿ç¨è
å稱:å¯ç¢¼:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "éæ¼ ESounD 夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "Commands"
-#~ msgstr "註解"
-
-#, fuzzy
-#~ msgid "Command:"
-#~ msgstr "註解:"
-
-#, fuzzy
-#~ msgid "About "
-#~ msgstr "éæ¼ BMP"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - configurationName:"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
å稱:"
-
-#, fuzzy
-#~ msgid " MIDI Info "
-#~ msgstr "CD è³è¨"
-
-#, fuzzy
-#~ msgid "Length (msec):"
-#~ msgstr "é·åº¦:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Num of Tracks:CD Audio PluginCD Audio Track %02u(unknown)Drive %dFailed "
-#~ "to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks (%d data tracks)\n"
-#~ "Total length: %d:%d\n"
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ "Failed to check directory %s\n"
-#~ "Error: %sError: %s exist, but is not a directoryDirectory %s OK.Device:"
-#~ "_Device:Dir_ectory:Play mode:AnalogDigital audio extractionVolume control:"
-#~ "No mixerCDROM driveOSS mixerCheck drive...Remove driveCD Audio Player "
-#~ "ConfigurationAdd driveDeviceCDDB:Use CDDBGet server listShow network "
-#~ "windowCDDB server:CD Index:Use CD IndexCD Index server:Override generic "
-#~ "titlesName format:CD Info"
-#~ msgstr ""
-#~ "è·³è³é³è»CD 鳿夿ç¨å¼CD é³è» %02u(æªç¥ç)ç£ç¢ %déåè£ç½® %s 失æ\n"
-#~ "é¯èª¤: %s\n"
-#~ "\n"
-#~ "è®åâç®éâæå¤±æ\n"
-#~ "ä¹è¨±ç£ç¢ä¸æ²æå
ç¢çï¼\n"
-#~ "\n"
-#~ "è£ç½® %s OKã\n"
-#~ "å
ç¢æ %d åé³è» (%d åè³ææ®µè»)\n"
-#~ "總é·åº¦: %d:%d\n"
-#~ "æ¸ä½é³æææ¾å°æªæ¸¬è©¦æå
ç¢ä¸æ²æé³è»\n"
-#~ "æ¸ä½é³æææ¾æ¸¬è©¦: OK\n"
-#~ "\n"
-#~ "æ¸ä½é³æææ¾æ¸¬è©¦å¤±æ: %s\n"
-#~ "\n"
-#~ "檢æ¥ç®é %s 失æ\n"
-#~ "é¯èª¤: %sé¯èª¤: %s åå¨ï¼ä½ä¸æ¯ç®éç®é %s OKãè£ç½®:è£ç½®(_D):ç®é(_E):ææ¾æ¨¡"
-#~ "å¼:顿¯æ¸ä½é³æææ¾é³éæ§å¶:ç¡æ··é³ç¨å¼CDROMOSS æ··é³ç¨å¼æª¢æ¥ç£ç¢...ç§»é¤ç£ç¢"
-#~ "CD 鳿¨ææ¾å¨çµæ
å å
¥ç£ç¢è£ç½®CDDB:ä½¿ç¨ CDDBåå¾ä¼ºæå¨æ¸
å®é¡¯ç¤ºç¶²è·¯è¦çªCDDB "
-#~ "伺æå¨:CD ç´¢å¼:ä½¿ç¨ CD ç´¢å¼CD ç´¢å¼ä¼ºæå¨:è¦èåå§æ¨é¡åç¨±æ ¼å¼:CD è³è¨"
-
-#, fuzzy
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "æ¥èª:"
-
-#, fuzzy
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr " (ç¡æç UTF-8)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Korean (UHC)Select the directory where you want to store the MPEG streams:"
-#~ msgstr "éèª:é¸ææ¨æ³ç¨ä¾å²å MPEG 串æµçç®é:"
-
-#, fuzzy
-#~ msgid "Flac ConfigurationReplayGain"
-#~ msgstr "CD 鳿¨ææ¾å¨çµæ
ææ¾å¢ç"
-
-#, fuzzy
-#~ msgid "Resolution"
-#~ msgstr "è§£æåº¦:"
-
-#, fuzzy
-#~ msgid "Without ReplayGain"
-#~ msgstr "ææ¾å¢ç"
-
-#, fuzzy
-#~ msgid ""
-#~ "16 bpsBuffering:Buffer size (kb):Pre-buffer (percent):Save stream to disk:"
-#~ "Save stream to diskPath:BrowseSHOUT/Icecast:Enable Icecast Metadata UDP "
-#~ "ChannelStreaming"
-#~ msgstr ""
-#~ "16 ä½å
ç·©è¡:ç·©è¡å大å°(kb):é å
ç·©è¡(ç¾åæ¯):å°ä¸²æµå²åå°ç£ç¢:å°ä¸²æµå²åå°"
-#~ "ç£ç¢è·¯å¾:ç覽SHOUT/Icecast:åç¨ Icecast ä¸ç¹¼è³æå¿ UDP é »é串æµ"
-
-#, fuzzy
-#~ msgid "About Flac PluginBluesClassic RockCountryDance"
-#~ msgstr "éæ¼ ESounD 夿ç¨å¼è調å¤å
¸ææ»¾éæé³æ¨èæ²"
-
-# appropriate enough in meaning. Untranslated here. -- Abel
-#~ msgid "Hip-HopJazzMetalNew Age"
-#~ msgstr "Hip-Hopçµå£«æ¨é屬æ°ä¸ç´é³æ¨(New Age)"
-
-#~ msgid "OldiesOtherPopR&B"
-#~ msgstr "æ·è鳿¨å
¶å®æµè¡æ²ç¯å¥è調(R&B)"
-
-#~ msgid "PranksSoundtrackEuro-TechnoAmbientTrip-HopVocal"
-#~ msgstr ""
-#~ "æ¡ä½åé»å½±åè²å¤§ç¢æé¸é»åèæ²(Euro-Techno)ç°å¢é³æ¨(Ambient)Trip-Hopè²æ¨"
-
-#~ msgid ""
-#~ "Jazz+FunkFusionTranceClassicalInstrumentalAcidHouseGameSound "
-#~ "ClipGospelNoise"
-#~ msgstr ""
-#~ "çµå£«+æ¾å®¢(Jazz+Funk)èåçµå£«æ¨(Fusion)è¿·å¹»é»å(Trance)å¤å
¸é³æ¨æ¨å¨æ¼å¥è¿·å¹»"
-#~ "鳿¨(Acid)House鿲鳿¨é³æ¨é¸è¼¯ç¦é³é³æ¨åªé³é³æ¨"
-
-#~ msgid "BassSoulPunkSpaceMeditativeInstrumental PopInstrumental Rock"
-#~ msgstr "è²æ¯é鿍(Soul)é¾å
鳿¨(Punk)å¤ªç©ºææ»¾å¥æ³é³æ¨æµè¡æ¨æ¼å¥ææ»¾æ¨æ¼å¥"
-
-#~ msgid "EthnicGothicDarkwaveTechno-IndustrialElectronicPop-FolkEurodance"
-#~ msgstr ""
-#~ "å°æ¸æ°æé³æ¨æå¾·ææ»¾(Gothic)黿½®é³æ¨(Darkwave)é»åå·¥æ¥ææ»¾é»å鳿¨æµè¡æ°æ"
-#~ "æé¸èæ²(Eurodance)"
-
-#~ msgid ""
-#~ "CultGangsta RapTop 40Christian RapPop/FunkJungleNative AmericanCabaretNew "
-#~ "WavePsychedelicRaveShowtunesTrailerLo-FiTribalAcid PunkAcid JazzPolka"
-#~ msgstr ""
-#~ "å¶å崿鳿¨(Cult)幫派é¥èæ¨(Gangsta Rap)æµè¡ææ²æè¡æ¦é 40 ä½åºç£é¥èæ¨"
-#~ "æµè¡æ¨/æ¾å®¢å¢æé³æ¨(Jungle)ç¾åæ¬å鳿¨å¤ç¸½æé³æ¨(Cabaret)æ°æµªæ½®é³æ¨(New "
-#~ "Wave)è¿·å¹»é³æ¨é³è鳿¨(Rave)æèå鳿¨(Showtunes)é»å½±é åç鳿¨ä½å³ç(Lo-"
-#~ "Fi)é¨è½é³æ¨è¿·å¹»é¾å
(Acid Punk)è¿·å¹»çµå£«(Acid Jazz)æ³¢ç¾å¡èæ²(Polka)"
-
-#~ msgid "Rock & RollHard RockFolkFolk/RockNational FolkSwing"
-#~ msgstr "ææ»¾æ¨ç¡¬å¼ææ»¾(Hard Rock)æ°è¬ æ°è¬ ææ»¾åå®¶æ°è¬ ææºæ¨(Swing)"
-
-#
-# Many Chinese Jazz Web site mentioned this word
-# I think is ok to use "æ¯åå" -- Woodman
-#
-#, fuzzy
-#~ msgid ""
-#~ "BebobLatinRevivalCelticBluegrassAvantgardeGothic RockProgressive "
-#~ "RockPsychedelic RockSymphonic Rock"
-#~ msgstr ""
-#~ "æ¯ååçµå£«(Bebop)æä¸é³æ¨å¾©è鳿¨å
ç¾ç¹é³æ¨(Celtic)èæ ¹è調(Bluegrass)åè¡"
-#~ "çµå£«(Avantgarde)æå¾·ææ»¾(Gothic Rock)åè¡ææ»¾(Progressive Rock)è¿·å¹»ææ»¾äº¤"
-#~ "é¿ææ»¾"
-
-# Distinguish this from "Soft Rock" -- Abel
-#~ msgid "Slow RockBig BandChorusEasy ListeningAcoustic"
-#~ msgstr "æ
¢ææ»¾(Slow Rock)大忍éåå±è¼é³æ¨åé³é³æ¨(Acoustic)"
-
-# better -- Abel
-#~ msgid ""
-#~ "HumourSpeechChansonOperaChamber MusicSonataSymphonyBooty BassPrimusPorn "
-#~ "GrooveSatireSlow Jam"
-#~ msgstr ""
-#~ "è©¼è«§æ¨æ¼èªªæ³åé¦é æåå®¤æ¨æ¼å¥å¥é³´æ²äº¤é¿æ²Booty BassPrimusæ
è²é³æ¨è«·åºæ²"
-#~ "Slow Jam"
-
-#~ msgid "ClubTangoSambaFolklore"
-#~ msgstr "俱æ¨é¨é³æ¨æ¢ææ£®å·´æ°ä¿é³æ¨"
-
-# is much better. -- Abel
-#~ msgid "BalladPower BalladRhythmic Soul"
-#~ msgstr "æ
æå¼·åæ
æ(Power Ballad)ç¯å¥é鿍"
-
-#~ msgid "FreestyleDuetPunk RockDrum Solo"
-#~ msgstr "èªç±å½¢å¼é³æ¨äºéå¥é¾å
ææ»¾(Punk Rock)鼿ç¨å¥"
-
-#~ msgid "A CappellaEuro-HouseDance HallGoa"
-#~ msgstr "é¿å¡è²æ(A Cappella)Euro-Houseè廳鳿¨Goa"
-
-#~ msgid "Drum & BassClub-HouseHardcoreTerror"
-#~ msgstr "é¼åè²æ¯Club-House硬è(Hardcore)驿鳿¨"
-
-#~ msgid "IndieBritPopNegerpunkPolsk Punk"
-#~ msgstr "ç¨ç«è£½ä½å±ç(Indie)è±å¼ææ»¾NegerpunkPolsk Punk"
-
-# so far -- Abel
-#~ msgid ""
-#~ "Christian Gangsta RapHeavy MetalBlack MetalCrossoverContemporary "
-#~ "ChristianChristian RockMerengueSalsaThrash MetalAnimeJPopSynthpop"
-#~ msgstr ""
-#~ "Christian Gangsta Rapéé屬(Heavy Metal)é»é屬(Black Metal)è·¨ç鳿¨"
-#~ "(Crossover)ç¾ä»£åºç£æä¸»é¡é³æ¨åºç£ææ»¾ç¾å«æ ¼èæ²(Merengue)騷æ²èæ²(Salsa)é"
-#~ "æé屬(Thrash Metal)åæ¼«ç«(Anime)æ¥æ¬æµè¡æ²Synthpop"
-
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "忍£ç:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "\n"
-#~ "總é·åº¦: %d:%d\n"
-
-#, fuzzy
-#~ msgid "Filesize: %ld B"
-#~ msgstr "æªæ¡å¤§å°:"
-
-#, fuzzy
-#~ msgid "Tag:Title:Album:Comment:Date:Track number:Genre:"
-#~ msgstr "æ¢ææ¨é¡:å°è¼¯:註解:æ¥æ:é³è»è碼:æ¨æ²é¡å:"
-
-#, fuzzy
-#~ msgid "Remove Tag"
-#~ msgstr "/ç§»é¤å
¨é¨"
-
-#, fuzzy
-#~ msgid "FLAC Info:"
-#~ msgstr "CD è³è¨"
-
-#, fuzzy
-#~ msgid ""
-#~ "File Info - %sErrorLOOKING UP %sCouldn't look up host %sCONNECTING TO %s:"
-#~ "%dCouldn't connect to host %sCONNECTED: WAITING FOR REPLYCouldn't connect "
-#~ "to host %s\n"
-#~ "Server reported: %sPRE-BUFFERING: %dKB/%dKB"
-#~ msgstr ""
-#~ "æªæ¡è³è¨é¯èª¤å°æ¾ %sæ¾ä¸å°ä¸»æ© %sé£ç·å° %s:%dç¡æ³é£ç·å°ä¸»æ© %så·²é£ç·ï¼çå¾
"
-#~ "åæç¡æ³é£ç·å°ä¸»æ© %s\n"
-#~ "伺æå¨åå ±ï¼ %sé å
ç·©è¡: %dKB/%dKB"
-
-#, fuzzy
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "CD 鳿夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "ModPlug Configuration16 bit8 bit"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
16 ä½å
8 ä½å
"
-
-#, fuzzy
-#~ msgid "ChannelsStereo"
-#~ msgstr "è²é:ç«é«è²"
-
-#, fuzzy
-#~ msgid "Resampling"
-#~ msgstr "串æµ"
-
-#, fuzzy
-#~ msgid "Fast Playlist Info"
-#~ msgstr "è¼å
¥ææ¾æ¸
å®"
-
-#, fuzzy
-#~ msgid "Reverb"
-#~ msgstr "伺æå¨"
-
-#, fuzzy
-#~ msgid "MOD Info"
-#~ msgstr "CD è³è¨"
-
-#, fuzzy
-#~ msgid ""
-#~ "About ModplugMPEG Audio Plugin ConfigurationResolution:Channels:Stereo "
-#~ "(if available)MonoDown sample:1:1 (44 kHz)1:2 (22 kHz)1:4 (11 kHz)"
-#~ "DecoderID3 Tags:Disable ID3V2 tagsID3 format:Joint stereoDual "
-#~ "channelSingle channel%d KBit/s%ld HzNone50/15 msCCIT J.17NoYes MPEG Info "
-#~ "MPEG Level:"
-#~ msgstr ""
-#~ "éæ¼ ESounD 夿ç¨å¼MPEG 鳿夿ç¨å¼çµæ
è§£æåº¦:è²é:ç«é«è²(妿å¯ç¨)å®è²"
-#~ "ééä½å樣:1:1 (44 kHz)1:2 (22 kHz)1:4 (11 kHz)解碼å¨ID3 æ¨ç±¤:åç¨ ID3V2 "
-#~ "æ¨ç±¤ID3 æ ¼å¼:è¯åç«é«è²éè²éå®è²é%d KBit/s%ld Hzç¡50/15 msCCIT J.17妿¯"
-#~ "MPEG è³è¨MPEG çç´:"
-
-# No good translation of bit rate can be found. -- Abel
-#~ msgid "Bit rate:Sample rate:File size:"
-#~ msgstr "ä½å
ç:忍£ç:æªæ¡å¤§å°:"
-
-#~ msgid ""
-#~ "Mode:Error Protection:Copyright:Original:Emphasis: ID3 Tag Year:N/A%s%lu "
-#~ "Bytes"
-#~ msgstr "解碼å¨:é¯èª¤é²è·:çæ¬:åå§:å¢å¹
: ID3 æ¨ç±¤ 年份:N/A%s%lu ä½å
çµ"
-
-#, fuzzy
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "ç¡æ³é£ç·å°ä¸»æ© %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "PRE-BUFFERING: %zuKB/%zuKBAlternRockAbout MPEG Audio PluginMPEG Audio "
-#~ "Plugin"
-#~ msgstr ""
-#~ "é å
ç·©è¡: %dKB/%dKBAlternRockéæ¼ MPEG 鳿夿ç¨å¼MPEG 鳿夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
"
-
-#, fuzzy
-#~ msgid "22000 Hz"
-#~ msgstr "1:2 (22 kHz)"
-
-#, fuzzy
-#~ msgid "44100 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "Sample Width"
-#~ msgstr "忍£ç:"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "輸å
¥å¤æç¨å¼: %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "Couldn't load MIDI fileSelect the directory where you want to store the "
-#~ "Ogg Vorbis streams:Ogg Vorbis Audio Plugin ConfigurationOgg Vorbis Tags:"
-#~ "ReplayGain Settings:Enable Clipping PreventionEnable ReplayGainReplayGain "
-#~ "Type:"
-#~ msgstr ""
-#~ "æ¾ä¸å°ä¸»æ© %sé¸ææ¨æ³è¦ç¨ä¾å²å Ogg Vorbis 串æµçç®é:Ogg Vorbis 鳿夿"
-#~ "ç¨å¼çµæ
Ogg Vorbis æ¨ç±¤:éæå¢çè¨å®å¼:åç¨ä¸æ·é²è·åç¨ææ¾å¢çææ¾å¢çé¡"
-#~ "å:"
-
-#, fuzzy
-#~ msgid "use Track Gain/Peak"
-#~ msgstr "使ç¨é³è»å¢ç/å°å³°"
-
-#, fuzzy
-#~ msgid "use Album Gain/Peak"
-#~ msgstr "使ç¨å°è¼¯å¢ç/å°å³°"
-
-#, fuzzy
-#~ msgid ""
-#~ "Enable 6dB Boost + Hard LimitingAn error occured:\n"
-#~ "%sError!Failed to modify tag (open)Failed to modify tag (close)Failed to "
-#~ "modify tag Ogg Vorbis Tag Description:Location:Version:ISRC number:"
-#~ "Organization: Ogg Vorbis ReplayGain "
-#~ msgstr ""
-#~ "åç¨ 6dB éä½é³ + éå¶ç¼çé¯èª¤:\n"
-#~ "%sé¯èª¤ï¼ç·¨è¼¯æ¨ç±¤å¤±æ(éå)編輯æ¨ç±¤å¤±æ(éé)編輯æ¨ç±¤å¤±æOgg Vorbis æ¨ç±¤æ"
-#~ "è¿°:ä½ç½®:çæ¬:ISRC ç·¨è:åé«:Ogg Vorbis ææ¾å¢ç"
-
-#, fuzzy
-#~ msgid ""
-#~ "Album peak: Ogg Vorbis Info Length:%d KBit/s (nominal)%d Hz%d%d:%.2d%d "
-#~ "BytesOgg Vorbis Audio PluginAbout Ogg Vorbis Audio PluginOgg Vorbis "
-#~ "Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "å°è¼¯å°å³°: Ogg Vorbis è³è¨é·åº¦:%d KBit/s (ä¸è¬)%d Hz%d%d:%.2d%d ä½å
çµOgg "
-#~ "Vorbis 鳿夿ç¨å¼éæ¼æ¯Ogg Vorbis 鳿夿ç¨å¼Ogg Vorbis 夿ç¨å¼ä¾èª "
-#~ "Xiph.org åºéæ\n"
-#~ "\n"
-#~ "åå§ç¢¼ä¾èª\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "ç±ä¸å人å¡ç¼ä½\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "æ¨å¯ä»¥å° http://www.xiph.org/ åè§ Xiph.org\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA 02110-1301 USAWAV Audio Plugin"
-#~ msgstr ""
-#~ "XMMS ESounD 夿ç¨å¼\n"
-#~ "\n"
-#~ " æ¬ç¨å¼æ¯èªç±è»é«ï¼æ¨å¯ä»¥éµç
§èªç±è»é«åºéæ (Free Software Foundation) \n"
-#~ "åºçç GNU éç¨å
Œ
±è¨±å¯èæ¢æ¬¾(GNU General Public License) 第äºç\n"
-#~ "ä¾ä¿®æ¹åéæ°ç¼ä½éä¸ç¨å¼ï¼æè
èªç±é¸æä½¿ç¨ä»»ä½æ´æ°ç\n"
-#~ "çæ¬ã\n"
-#~ "\n"
-#~ "ç¼ä½éä¸ç¨å¼çç®çæ¯å¸æå®æç¨ï¼\n"
-#~ "使²æä»»ä½æä¿ãçè³æ²æé©åç¹å®ç®ç\n"
-#~ "èé±å«çæä¿ãæ´è©³ç´°çæ
æ³è«åé±\n"
-#~ "GNU éç¨å
Œ
±è¨±å¯èã\n"
-#~ "\n"
-#~ "æ¨æè©²å·²ç¶åç¨å¼ä¸èµ·æ¶å°ä¸ä»½ GNU\n"
-#~ "éç¨å
Œ
±è¨±å¯èç坿¬ã妿鿲æï¼å¯«ä¿¡çµ¦ï¼ Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.WAV 鳿夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "About %s"
-#~ msgstr "éæ¼ BMP"
-
-#, fuzzy
-#~ msgid " Close OSS Output PluginAbout OSS Driver"
-#~ msgstr "/ééOSS 輸åºå¤æç¨å¼éæ¼ OSS é©
åç¨å¼"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.Default (%s)DefaultOSS Driver configurationAudio device:Use alternate "
-#~ "device:Mixer device:DevicesBuffer size (ms):BufferingMixer Settings:"
-#~ "Volume controls Master not PCMMixerAbout ALSA Driver"
-#~ msgstr ""
-#~ "XMMS OSS é©
åç¨å¼\n"
-#~ "\n"
-#~ " æ¬ç¨å¼æ¯èªç±è»é«ï¼æ¨å¯ä»¥éµç
§èªç±è»é«åºéæ (Free Software Foundation) \n"
-#~ "åºçç GNU éç¨å
Œ
±è¨±å¯èæ¢æ¬¾(GNU General Public License) 第äºç\n"
-#~ "ä¾ä¿®æ¹åéæ°ç¼ä½éä¸ç¨å¼ï¼æè
èªç±é¸æä½¿ç¨ä»»ä½æ´æ°ç\n"
-#~ "çæ¬ã\n"
-#~ "\n"
-#~ "ç¼ä½éä¸ç¨å¼çç®çæ¯å¸æå®æç¨ï¼\n"
-#~ "使²æä»»ä½æä¿ãçè³æ²æé©åç¹å®ç®ç\n"
-#~ "èé±å«çæä¿ãæ´è©³ç´°çæ
æ³è«åé±\n"
-#~ "GNU éç¨å
Œ
±è¨±å¯èã\n"
-#~ "\n"
-#~ "æ¨æè©²å·²ç¶åç¨å¼ä¸èµ·æ¶å°ä¸ä»½ GNU\n"
-#~ "éç¨å
Œ
±è¨±å¯èç坿¬ã妿鿲æï¼å¯«ä¿¡çµ¦ï¼ Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.é è¨å¼(%s)é è¨å¼OSS é©
åç¨å¼çµæ
鳿è£ç½®:ä½¿ç¨æ¿ä»£è£ç½®:æ··é³è£ç½®:è£ç½®ç·©"
-#~ "è¡å大å°(ms):ç·©è¡åæ··é³ç¨å¼è¨å®å¼:主é³éæ§å¶ä¸æ¯ PCMæ··é³ç¨å¼éæ¼ ALSA é©
å"
-#~ "ç¨å¼"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)ALSA %s output pluginUnknown "
-#~ "soundcardDefault PCM device (%s)ALSA Driver configurationMixer:Use "
-#~ "software volume controlMixer card:Device settings"
-#~ msgstr ""
-#~ "XMMS ALSA é©
åç¨å¼\n"
-#~ "\n"
-#~ " æ¬ç¨å¼æ¯èªç±è»é«ï¼æ¨å¯ä»¥éµç
§èªç±è»é«åºéæ (Free Software Foundation) \n"
-#~ "åºçç GNU éç¨å
Œ
±è¨±å¯èæ¢æ¬¾(GNU General Public License) 第äºç\n"
-#~ "ä¾ä¿®æ¹åéæ°ç¼ä½éä¸ç¨å¼ï¼æè
èªç±é¸æä½¿ç¨ä»»ä½æ´æ°ç\n"
-#~ "çæ¬ã\n"
-#~ "\n"
-#~ "ç¼ä½éä¸ç¨å¼çç®çæ¯å¸æå®æç¨ï¼\n"
-#~ "使²æä»»ä½æä¿ãçè³æ²æé©åç¹å®ç®ç\n"
-#~ "èé±å«çæä¿ãæ´è©³ç´°çæ
æ³è«åé±\n"
-#~ "GNU éç¨å
Œ
±è¨±å¯èã\n"
-#~ "\n"
-#~ "æ¨æè©²å·²ç¶åç¨å¼ä¸èµ·æ¶å°ä¸ä»½ GNU\n"
-#~ "éç¨å
Œ
±è¨±å¯èç坿¬ã妿鿲æï¼å¯«ä¿¡çµ¦ï¼ Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.ä½è
: Matthieu Sozeau (mattam at altern.org)ALSA %s 輸åºå¤æç¨å¼ä¸æçé³"
-#~ "æå¡é è¨ç PCM è£ç½® (%s)ALSA é©
åç¨å¼çµæ
æ··é³ç¨å¼:使ç¨è»é«é³éæ§å¶æ··é³å¡:"
-#~ "è£ç½®è¨å®å¼"
-
-#, fuzzy
-#~ msgid "Soundcard:Buffer time (ms):Period time (ms):Advanced settings"
-#~ msgstr "é»å½±åè²å¤§ç¢ç·©è¡æé(ms):æé(ms):é²éè¨å®"
-
-#, fuzzy
-#~ msgid "aRts Driver configuration"
-#~ msgstr "OSS é©
åç¨å¼çµæ
"
-
-#, fuzzy
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "é¸ææ¨æ³ç¨ä¾å²å MPEG 串æµçç®é:"
-
-#, fuzzy
-#~ msgid "Disk Writer ConfigurationAbout ESounD Plugin"
-#~ msgstr "OSS é©
åç¨å¼çµæ
éæ¼ ESounD 夿ç¨å¼"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.Host:Use remote hostVolume controls OSS mixerPort:ServereSound Output "
-#~ "Plugin"
-#~ msgstr ""
-#~ "XMMS ESounD 夿ç¨å¼\n"
-#~ "\n"
-#~ " æ¬ç¨å¼æ¯èªç±è»é«ï¼æ¨å¯ä»¥éµç
§èªç±è»é«åºéæ (Free Software Foundation) \n"
-#~ "åºçç GNU éç¨å
Œ
±è¨±å¯èæ¢æ¬¾(GNU General Public License) 第äºç\n"
-#~ "ä¾ä¿®æ¹åéæ°ç¼ä½éä¸ç¨å¼ï¼æè
èªç±é¸æä½¿ç¨ä»»ä½æ´æ°ç\n"
-#~ "çæ¬ã\n"
-#~ "\n"
-#~ "ç¼ä½éä¸ç¨å¼çç®çæ¯å¸æå®æç¨ï¼\n"
-#~ "使²æä»»ä½æä¿ãçè³æ²æé©åç¹å®ç®ç\n"
-#~ "èé±å«çæä¿ãæ´è©³ç´°çæ
æ³è«åé±\n"
-#~ "GNU éç¨å
Œ
±è¨±å¯èã\n"
-#~ "\n"
-#~ "æ¨æè©²å·²ç¶åç¨å¼ä¸èµ·æ¶å°ä¸ä»½ GNU\n"
-#~ "éç¨å
Œ
±è¨±å¯èç坿¬ã妿鿲æï¼å¯«ä¿¡çµ¦ï¼ Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.主æ©:使ç¨é 端主æ©é³éæ§å¶ OSS æ··é³ç¨å¼é£æ¥å :伺æå¨eSound 輸åºå¤æç¨å¼"
-
-#, fuzzy
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "eSound 輸åºå¤æç¨å¼"
-
-#, fuzzy
-#~ msgid "About the Sun Driver"
-#~ msgstr "éæ¼ OSS é©
åç¨å¼"
-
-#, fuzzy
-#~ msgid "Audio control device:"
-#~ msgstr "鳿è£ç½®:"
-
-#, fuzzy
-#~ msgid "Volume controls device:"
-#~ msgstr "é³éæ§å¶:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Sun driver configuration/Toggle Decorations/CloseBlur scopeBlur Scope: "
-#~ "Color selectionOptions:** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr ""
-#~ "OSS é©
åç¨å¼çµæ
/åæè£é£¾/é鿍¡ç³ç¯å模ç³ç¯åï¼è²å½©é¸æé¸é
:** éå大å°å·²"
-#~ "ç¶è¢«ç§»é¤äº **"
-
-#, fuzzy
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>ææ¾</b>"
-
-#, fuzzy
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "MPEG 鳿夿ç¨å¼çµæ
"
-
-#, fuzzy
-#~ msgid "Song Change Configuration"
-#~ msgstr "CD 鳿¨ææ¾å¨çµæ
"
-
-#, fuzzy
-#~ msgid "Port"
-#~ msgstr "飿¥å :"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "æªæ¡å稱"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "é³è»å稱"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "ALSA %s 輸åºå¤æç¨å¼"
-
-#, fuzzy
-#~ msgid "Mixer settingsConvert non-UTF8 ID3 tags to UTF8ID3 encoding:"
-#~ msgstr "æ··é³ç¨å¼è¨å®å¼:å°é UTF8 ç ID3 æ¨ç±¤è½æçº UTF8 æ ¼å¼ID3 編碼:"
-
-#, fuzzy
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "å°é UTF8 ç ID3 æ¨ç±¤è½æçº UTF8 æ ¼å¼"
-
-#, fuzzy
-#~ msgid "Vorbis encoding:"
-#~ msgstr "ID3 編碼:"
-
-#, fuzzy
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>è¦è¦ºå</b>"
-
-#, fuzzy
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "è²é:"
-
-#, fuzzy
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>æªæ¡å稱</b>"
-
-#, fuzzy
-#~ msgid "WMA Info"
-#~ msgstr "CD è³è¨"
-
-#, fuzzy
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>ææ¾</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "TagsArtem BaguinskiEdward BrocklesbyChong Kai XiongMilosz DerezynskiDavid "
-#~ "LauOle Andre Vadla RavnaasMichiel SikkesAndrei BadeaPeter BehrooziBernard "
-#~ "BlackhamOliver BlinTomas BzatekLiviu DanicelJon DowlandArtur "
-#~ "FrysiakSebastian KapferLukas KobersteinDan KorostelevJolan LuffMichael "
-#~ "MarineauTim-Philipp MullerJulien PortalierAndrew RuderOlivier "
-#~ "SamynMartijn VernooijPhilipi PintoThierry VignaudJan NarovecLaurens "
-#~ "BuhlerDavid Le BrunMatthias DebusKouzinopoulos HarisLaszlo DvornikAlessio "
-#~ "D'AscanioDongCheon ParkRimas KudelisArangel AngovJacek WolszczakPavlo "
-#~ "BohmatPavel KanzelsbergerMartin Persenius<span size=\"xx-large"
-#~ "\"><b>Plugins</b></span>_Media plugin list:"
-#~ msgstr ""
-#~ "æ¢æArtem BaguinskiEdward BrocklesbyChong Kai XiongMilosz DerezynskiDavid "
-#~ "LauOle Andre Vadla RavnaasMichiel SikkesAndrei BadeaPeter BehrooziBernard "
-#~ "BlackhamOliver BlinTomas BzatekLiviu DanicelJon DowlandArtur "
-#~ "FrysiakSebastian KapferLukas KobersteinDan KorostelevJolan LuffMichael "
-#~ "MarineauTim-Philipp MullerJulien PortalierAndrew RuderOlivier "
-#~ "SamynMartijn VernooijPhilipi PintoThierry VignaudJan NarovecLaurens "
-#~ "BuhlerDavid Le BrunMatthias DebusKouzinopoulos HarisLaszlo DvornikAlessio "
-#~ "D'AscanioDongCheon ParkRimas KudelisArangel AngovJacek WolszczakPavlo "
-#~ "BohmatPavel KanzelsbergerMartin Persenius<span size=\"xx-large\"><b>夿ç¨"
-#~ "å¼</b></span>åªé«å¤æç¨å¼æ¸
å®(_M):"
-
-#, fuzzy
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect.<span size=\"xx-large\"><b>Appearance</b></span><span size=\"xx-"
-#~ "large\"><b>Mouse</b></span><span size=\"xx-large\"><b>Playlist</b></"
-#~ "span><span size=\"xx-large\"><b>Equalizer</b></span>Use proxyFrames:"
-#~ "Variable,\n"
-#~ "avg. bitrate: %d KBit/sFrancisco Javier F. Serrador%s\n"
-#~ "Unable to write to file: %sCouldn't write tag!%s\n"
-#~ "Unable to open file: %sFile Info%s\n"
-#~ "Unable to truncate file: %sCouldn't remove tag!No tag to remove!Copy "
-#~ "album tagsPaste album tags"
-#~ msgstr ""
-#~ "æ¤è®æ´ç®ååªæå½±é¿ BMP ççµæ
è³æåº«ï¼ç´å°ä¸ä¸é¦ææ²ææå½±é¿ææ¾åè½ï¼\n"
-#~ "\n"
-#~ "æè
ï¼æ¨ä¹å¯ä»¥åæ¢ä¸¦éæ°ææ¾ä»¥ä½¿è®æ´ç«å»çæã<span size=\"xx-large\"><b>"
-#~ "å¤è§</b></span><span size=\"xx-large\"><b>æ»é¼ </b></span><span size=\"xx-"
-#~ "large\"><b>ææ¾æ¸
å®</b></span><span size=\"xx-large\"><b>çåå¨</b></span>"
-#~ "使ç¨ä»£ç伺æå¨å½±æ ¼:å¯è®çï¼\n"
-#~ "å¹³åä½å
ç: %d KBit/sFrancisco Javier F. Serrador%s\n"
-#~ "ç¡æ³å¯«å
¥æªæ¡: %sç¡æ³å¯«å
¥æ¨ç±¤ï¼%s\n"
-#~ "ç¡æ³éåæªæ¡: %sæªæ¡è³è¨%s\n"
-#~ "ç¡æ³æªæ·æªæ¡: %sç¡æ³ç§»é¤æ¨ç±¤ï¼æ²ææ¨ç±¤å¯ç§»é¤ï¼è¤è£½å°è¼¯æ¨ç±¤è²¼ä¸å°è¼¯æ¨ç±¤"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "éæ¼ MPEG 鳿夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "TiMidity PluginOptionsContentExtensionExtension and content"
-#~ msgstr "MPEG 鳿夿ç¨å¼é¸é
å
§å®¹å»¶ä¼¸å»¶ä¼¸èå
§å®¹"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2000-2004 Peter Eisenlohr <peter at eisenlohr.org>\n"
-#~ "\n"
-#~ "based on the original OSS Output Plugin Copyright (C) 1998-2000\n"
-#~ "Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front "
-#~ "Technologies\n"
-#~ "\n"
-#~ "This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS ESounD 夿ç¨å¼\n"
-#~ "\n"
-#~ " æ¬ç¨å¼æ¯èªç±è»é«ï¼æ¨å¯ä»¥éµç
§èªç±è»é«åºéæ (Free Software Foundation) \n"
-#~ "åºçç GNU éç¨å
Œ
±è¨±å¯èæ¢æ¬¾(GNU General Public License) 第äºç\n"
-#~ "ä¾ä¿®æ¹åéæ°ç¼ä½éä¸ç¨å¼ï¼æè
èªç±é¸æä½¿ç¨ä»»ä½æ´æ°ç\n"
-#~ "çæ¬ã\n"
-#~ "\n"
-#~ "ç¼ä½éä¸ç¨å¼çç®çæ¯å¸æå®æç¨ï¼\n"
-#~ "使²æä»»ä½æä¿ãçè³æ²æé©åç¹å®ç®ç\n"
-#~ "èé±å«çæä¿ãæ´è©³ç´°çæ
æ³è«åé±\n"
-#~ "GNU éç¨å
Œ
±è¨±å¯èã\n"
-#~ "\n"
-#~ "æ¨æè©²å·²ç¶åç¨å¼ä¸èµ·æ¶å°ä¸ä»½ GNU\n"
-#~ "éç¨å
Œ
±è¨±å¯èç坿¬ã妿鿲æï¼å¯«ä¿¡çµ¦ï¼ Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#, fuzzy
-#~ msgid " Enable"
-#~ msgstr "å·²åç¨"
-
-#, fuzzy
-#~ msgid "About XMMS Crossfade Plugin"
-#~ msgstr "éæ¼ ESounD 夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "Additional silence"
-#~ msgstr "åå
¶ä»çååè
:"
-
-#, fuzzy
-#~ msgid "Advanced XF"
-#~ msgstr "é²éè¨å®"
-
-#, fuzzy
-#~ msgid "Advanced options"
-#~ msgstr "é²éè¨å®"
-
-#, fuzzy
-#~ msgid "Crossfade"
-#~ msgstr "è·¨ç鳿¨(Crossover)"
-
-#, fuzzy
-#~ msgid "Limit OP buffer usage (ms):"
-#~ msgstr "ç·©è¡å大å°(ms):"
-
-#, fuzzy
-#~ msgid "Mixing buffer size (ms):"
-#~ msgstr "ç·©è¡å大å°(ms):"
-
-#, fuzzy
-#~ msgid "Position:"
-#~ msgstr "æè¿°:"
-
-#, fuzzy
-#~ msgid "Quality:"
-#~ msgstr "/é¢é(_Q)"
-
-#, fuzzy
-#~ msgid "Rate:"
-#~ msgstr "æ¥æ:"
-
-#, fuzzy
-#~ msgid "Reopen"
-#~ msgstr "/éè¤"
-
-#, fuzzy
-#~ msgid "Use plugin"
-#~ msgstr "夿ç¨å¼"
-
-#, fuzzy
-#~ msgid "Volume control options"
-#~ msgstr "é³éæ§å¶:"
-
-#, fuzzy
-#~ msgid "Volume normalizer"
-#~ msgstr "é³éæ§å¶:"
-
-#, fuzzy
-#~ msgid "same file"
-#~ msgstr "/å²å/è³æªæ¡"
-
-#, fuzzy
-#~ msgid "LibVisual Audacious Plugin"
-#~ msgstr "è¦è¦ºå夿ç¨å¼æ¸
å®(_V):"
-
-#, fuzzy
-#~ msgid "Visualization Plugins"
-#~ msgstr "è¦è¦ºå夿ç¨å¼æ¸
å®(_V):"
-
-#, fuzzy
-#~ msgid "All plugins"
-#~ msgstr "夿ç¨å¼"
-
-#, fuzzy
-#~ msgid " (enabled)"
-#~ msgstr "å·²åç¨"
-
-#, fuzzy
-#~ msgid "Version: "
-#~ msgstr "çæ¬:"
-
-#, fuzzy
-#~ msgid "Audacious plugin"
-#~ msgstr "CD 鳿夿ç¨å¼"
-
-#, fuzzy
-#~ msgid ""
-#~ "Cannot initialize SDL!\n"
-#~ "Developers:DISABLE ALWAYS ON TOP (N/A)ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr ""
-#~ "ç¡æ³åå§å gnome-vfsã\n"
-#~ "éç¼äººå¡:åç¨æä¸å±¤é¡¯ç¤º(N/A)åç¨æä¸å±¤é¡¯ç¤º(N/A)"
-
-#, fuzzy
-#~ msgid "Downsample:"
-#~ msgstr "éä½å樣:"
-
-#, fuzzy
-#~ msgid "Use interpolation%s - BMPbmp: %s"
-#~ msgstr "使ç¨é©è%s - BMPbmp: %s"
-
-#, fuzzy
-#~ msgid "/Play DirectoryAdd Folders"
-#~ msgstr "ç®é(_E):å å
¥è³æå¤¾"
-
-#, fuzzy
-#~ msgid ""
-#~ "/Add Folders...3DNow! optimized decoderMMX optimized decoderFPU "
-#~ "decodermpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Plugin by The XMMS teamAdvanced settings:"
-#~ msgstr ""
-#~ "/å å
¥æªæ¡...3DNow! æä½³å解碼å¨MMX æä½³å解碼å¨FPU 解碼å¨mpg123 è§£ç¢¼å¼æä¾"
-#~ "èª Michael Hipp <mh at mpg123.de>\n"
-#~ "夿ç¨å¼ä¾èª XMMS åéé²éè¨å®:"
-
-# This entry is taken from Sun. -- Abel
-# 迪æ¯å¯ is just a translation in pronunciation, and not widely
-# used. Rejected. -- Abel
-# çå
is widely used in Taiwan - Woodman
-# appropriate enough in meaning. Untranslated here. -- Abel
-#
-# Many Chinese Jazz Web site mentioned this word
-# I think is ok to use "æ¯åå" -- Woodman
-# Distinguish this from "Soft Rock" -- Abel
-# better -- Abel
-# is much better. -- Abel
-# so far -- Abel
-# No good translation of bit rate can be found. -- Abel
-#, fuzzy
-#~ msgid ""
-#~ "Thread buffer time (ms):Mmap modeHomepage and Graphics:Takeshi AihanaBMP "
-#~ "EqualizerBeep Media Player/About BMPBMPAdd Internet Address*Vlad "
-#~ "Gerasimov/By extension"
-#~ msgstr ""
-#~ "ç·©è¡æé(ms):Mmap 模å¼é¦é èåç:Takeshi AihanaBMP çåå¨Beep Media "
-#~ "Player/éæ¼ BMPBMPå å
¥ç¶²è·¯ä½å*Vlad Gerasimov/ä¾å»¶ä¼¸æªå"
+#~ msgid "Jump to Track"
+#~ msgstr "è·³è³é³è»"
diff --git a/src/audacious/Makefile b/src/audacious/Makefile
index 8beefdc..e5055c7 100644
--- a/src/audacious/Makefile
+++ b/src/audacious/Makefile
@@ -1,17 +1,18 @@
include ../../extra.mk
PROG = audacious${PROG_SUFFIX}
-SRCS = audconfig.c \
+SRCS = adder.c \
+ art.c \
chardet.c \
- configdb.c \
+ config.c \
credits.c \
drct.c \
effect.c \
equalizer.c \
equalizer_preset.c \
fft.c \
- folder-add.c \
general.c \
+ history.c \
interface.c \
main.c \
mpris-signals.c \
@@ -39,23 +40,22 @@ ifeq ($(USE_DBUS),yes)
SRCS += dbus.c
endif
+ifeq ($(HAVE_MSWINDOWS),yes)
+SRCS += audacious.rc
+endif
+
INCLUDES = api.h \
api-alias-begin.h \
api-alias-end.h \
api-define-begin.h \
api-define-end.h \
- audconfig.h \
- configdb.h \
- configdb-api.h \
dbus.h \
dbus-service.h \
debug.h \
drct.h \
drct-api.h \
- glib-compat.h \
gtk-compat.h \
i18n.h \
- interface.h \
misc.h \
misc-api.h \
playlist.h \
@@ -68,19 +68,16 @@ INCLUDES = api.h \
DATA = images/about-logo.png \
images/album.png \
- images/appearance.png \
images/audacious_eq.xpm \
images/audacious_player.xpm \
images/audacious_playlist.xpm \
images/audio.png \
- images/blue.png \
images/connectivity.png \
images/menu_playlist.png \
images/menu_plugin.png \
images/menu_queue_toggle.png \
images/playlist.png \
- images/plugins.png \
- images/replay_gain.png
+ images/plugins.png
CLEAN = build_stamp.c dbus-client-bindings.h dbus-server-bindings.h
@@ -100,24 +97,23 @@ endif
pre-depend: ${DBUS_BINDINGS}
-CPPFLAGS += -std=gnu99 \
+CPPFLAGS += \
-DHAVE_CONFIG_H \
- ${MOWGLI_CFLAGS} \
${GLIB_CFLAGS} \
- ${GTHREAD_CFLAGS} \
+ ${GTHREAD_CFLAGS} \
${GTK_CFLAGS} \
${AUDACIOUS_DEFINES} \
- ${ARCH_DEFINES} \
${DBUS_CFLAGS} \
${REGEX_CFLAGS} \
${PTHREAD_CFLAGS} \
- ${LIBMCS_CFLAGS} \
- ${SIMD_CFLAGS} \
-D_AUDACIOUS_CORE \
${EGGSM_CFLAGS} \
${LIBGUESS_CFLAGS} \
-I.. -I../..
+# Essential for efficient FFTs. --jlindgren
+CFLAGS += -ffast-math
+
LIBS += ${LDADD} \
-lm \
-L../libaudcore -laudcore \
@@ -126,17 +122,13 @@ LIBS += ${LDADD} \
${LIBINTL} \
${EGGSM_LIBS} \
${GLIB_LIBS} \
- ${GTHREAD_LIBS} \
+ ${GTHREAD_LIBS} \
${GTK_LIBS} \
${DBUS_LIBS} \
- ${MOWGLI_LIBS} \
- ${LIBMCS_LIBS} \
${REGEX_LIBS} \
${PTHREAD_LIBS} \
${LIBGUESS_LIBS}
-LDFLAGS += ${PROG_IMPLIB_LDFLAGS} ${AUDLDFLAGS}
-
DBUS_BINDINGS_SOURCES = objects.xml \
mpris_root.xml \
mpris_tracklist.xml \
@@ -153,30 +145,3 @@ dbus-server-bindings.h: ${DBUS_BINDINGS_SOURCES}
dbus-client-bindings.h: ${DBUS_BINDINGS_SOURCES}
${DBUS_BINDING_TOOL} --mode=glib-client --prefix=audacious_rc objects.xml > $@
-
-install-extra:
- if test x"${PROG_IMPLIB_NEEDED}" = x"yes"; then \
- for i in ${PROG}; do \
- i="lib$$i.a"; \
- ${INSTALL_STATUS}; \
- if ${MKDIR_P} "${DESTDIR}${libdir}" && ${INSTALL} -m 644 "$$i" "${DESTDIR}${libdir}/$$i"; then \
- ${INSTALL_OK}; \
- else \
- ${INSTALL_FAILED}; \
- fi \
- done \
- fi
-
-uninstall-extra:
- if test x"${PROG_IMPLIB_NEEDED}" = x"yes"; then \
- for i in ${PROG}; do \
- i="lib$$i.a"; \
- if test -f "${DESTDIR}${libdir}/$$i"; then \
- if ${RM} -f "${DESTDIR}${libdir}/$$i"; then \
- ${DELETE_OK}; \
- else \
- ${DELETE_FAILED}; \
- fi \
- fi \
- done \
- fi
diff --git a/src/audacious/adder.c b/src/audacious/adder.c
new file mode 100644
index 0000000..4f24429
--- /dev/null
+++ b/src/audacious/adder.c
@@ -0,0 +1,583 @@
+/*
+ * adder.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious 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, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <dirent.h>
+#include <pthread.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include <gtk/gtk.h>
+
+#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
+
+#include "config.h"
+#include "i18n.h"
+#include "playback.h"
+#include "playlist.h"
+#include "plugins.h"
+#include "main.h"
+#include "misc.h"
+
+typedef struct {
+ int playlist_id, at;
+ bool_t play;
+ Index * filenames, * tuples;
+ PlaylistFilterFunc filter;
+ void * user;
+} AddTask;
+
+typedef struct {
+ int playlist_id, at;
+ bool_t play;
+ Index * filenames, * tuples, * decoders;
+} AddResult;
+
+static GList * add_tasks = NULL;
+static GList * add_results = NULL;
+static int current_playlist_id = -1;
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static bool_t add_quit;
+static pthread_t add_thread;
+static int add_source = 0;
+
+static int status_source = 0;
+static char status_path[512];
+static int status_count;
+static GtkWidget * status_window = NULL, * status_path_label,
+ * status_count_label;
+
+static bool_t status_cb (void * unused)
+{
+ if (! headless && ! status_window)
+ {
+ status_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_type_hint ((GtkWindow *) status_window,
+ GDK_WINDOW_TYPE_HINT_DIALOG);
+ gtk_window_set_title ((GtkWindow *) status_window, _("Searching ..."));
+ gtk_window_set_resizable ((GtkWindow *) status_window, FALSE);
+ gtk_container_set_border_width ((GtkContainer *) status_window, 6);
+
+ GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+ gtk_container_add ((GtkContainer *) status_window, vbox);
+
+ status_path_label = gtk_label_new (NULL);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ gtk_label_set_width_chars ((GtkLabel *) status_path_label, 40);
+ gtk_label_set_max_width_chars ((GtkLabel *) status_path_label, 40);
+#else
+ gtk_widget_set_size_request (status_path_label, 320, -1);
+#endif
+ gtk_label_set_ellipsize ((GtkLabel *) status_path_label,
+ PANGO_ELLIPSIZE_MIDDLE);
+ gtk_box_pack_start ((GtkBox *) vbox, status_path_label, FALSE, FALSE, 0);
+
+ status_count_label = gtk_label_new (NULL);
+#if GTK_CHECK_VERSION (3, 0, 0)
+ gtk_label_set_width_chars ((GtkLabel *) status_count_label, 40);
+ gtk_label_set_max_width_chars ((GtkLabel *) status_count_label, 40);
+#else
+ gtk_widget_set_size_request (status_count_label, 320, -1);
+#endif
+ gtk_box_pack_start ((GtkBox *) vbox, status_count_label, FALSE, FALSE, 0);
+
+ gtk_widget_show_all (status_window);
+
+ g_signal_connect (status_window, "destroy", (GCallback)
+ gtk_widget_destroyed, & status_window);
+ }
+
+ pthread_mutex_lock (& mutex);
+
+ char scratch[128];
+ snprintf (scratch, sizeof scratch, dngettext (PACKAGE, "%d file found",
+ "%d files found", status_count), status_count);
+
+ if (headless)
+ {
+ printf ("Searching, %s ...\r", scratch);
+ fflush (stdout);
+ }
+ else
+ {
+ gtk_label_set_text ((GtkLabel *) status_path_label, status_path);
+ gtk_label_set_text ((GtkLabel *) status_count_label, scratch);
+ }
+
+ pthread_mutex_unlock (& mutex);
+ return TRUE;
+}
+
+static void status_update (const char * filename, int found)
+{
+ pthread_mutex_lock (& mutex);
+
+ snprintf (status_path, sizeof status_path, "%s", filename);
+ status_count = found;
+
+ if (! status_source)
+ status_source = g_timeout_add (250, status_cb, NULL);
+
+ pthread_mutex_unlock (& mutex);
+}
+
+static void status_done_locked (void)
+{
+ if (status_source)
+ {
+ g_source_remove (status_source);
+ status_source = 0;
+ }
+
+ if (headless)
+ printf ("\n");
+ else if (status_window)
+ gtk_widget_destroy (status_window);
+}
+
+static void index_free_filenames (Index * filenames)
+{
+ int count = index_count (filenames);
+ for (int i = 0; i < count; i ++)
+ str_unref (index_get (filenames, i));
+
+ index_free (filenames);
+}
+
+static void index_free_tuples (Index * tuples)
+{
+ int count = index_count (tuples);
+ for (int i = 0; i < count; i ++)
+ {
+ Tuple * tuple = index_get (tuples, i);
+ if (tuple)
+ tuple_unref (tuple);
+ }
+
+ index_free (tuples);
+}
+
+static AddTask * add_task_new (int playlist_id, int at, bool_t play,
+ Index * filenames, Index * tuples, PlaylistFilterFunc filter,
+ void * user)
+{
+ AddTask * task = g_slice_new (AddTask);
+ task->playlist_id = playlist_id;
+ task->at = at;
+ task->play = play;
+ task->filenames = filenames;
+ task->tuples = tuples;
+ task->filter = filter;
+ task->user = user;
+ return task;
+}
+
+static void add_task_free (AddTask * task)
+{
+ if (task->filenames)
+ index_free_filenames (task->filenames);
+ if (task->tuples)
+ index_free_tuples (task->tuples);
+
+ g_slice_free (AddTask, task);
+}
+
+static AddResult * add_result_new (int playlist_id, int at, bool_t play)
+{
+ AddResult * result = g_slice_new (AddResult);
+ result->playlist_id = playlist_id;
+ result->at = at;
+ result->play = play;
+ result->filenames = index_new ();
+ result->tuples = index_new ();
+ result->decoders = index_new ();
+ return result;
+}
+
+static void add_result_free (AddResult * result)
+{
+ if (result->filenames)
+ index_free_filenames (result->filenames);
+ if (result->tuples)
+ index_free_tuples (result->tuples);
+ if (result->decoders)
+ index_free (result->decoders);
+
+ g_slice_free (AddResult, result);
+}
+
+static void add_file (char * filename, Tuple * tuple, PluginHandle * decoder,
+ PlaylistFilterFunc filter, void * user, AddResult * result, bool_t validate)
+{
+ g_return_if_fail (filename);
+ if (filter && ! filter (filename, user))
+ {
+ str_unref (filename);
+ return;
+ }
+
+ status_update (filename, index_count (result->filenames));
+
+ if (! tuple && ! decoder)
+ {
+ decoder = file_find_decoder (filename, TRUE);
+ if (validate && ! decoder)
+ {
+ str_unref (filename);
+ return;
+ }
+ }
+
+ if (! tuple && decoder && input_plugin_has_subtunes (decoder) && ! strchr
+ (filename, '?'))
+ tuple = file_read_tuple (filename, decoder);
+
+ int n_subtunes = tuple ? tuple_get_n_subtunes (tuple) : 0;
+
+ if (n_subtunes)
+ {
+ for (int sub = 0; sub < n_subtunes; sub ++)
+ {
+ char * subname = str_printf ("%s?%d", filename,
+ tuple_get_nth_subtune (tuple, sub));
+ add_file (subname, NULL, decoder, filter, user, result, FALSE);
+ }
+
+ str_unref (filename);
+ tuple_unref (tuple);
+ return;
+ }
+
+ index_append (result->filenames, filename);
+ index_append (result->tuples, tuple);
+ index_append (result->decoders, decoder);
+}
+
+static void add_folder (char * filename, PlaylistFilterFunc filter,
+ void * user, AddResult * result)
+{
+ g_return_if_fail (filename);
+ if (filter && ! filter (filename, user))
+ {
+ str_unref (filename);
+ return;
+ }
+
+ status_update (filename, index_count (result->filenames));
+
+ char * unix_name = uri_to_filename (filename);
+ if (! unix_name)
+ {
+ str_unref (filename);
+ return;
+ }
+
+ if (unix_name[strlen (unix_name) - 1] == '/')
+ unix_name[strlen (unix_name) - 1] = 0;
+
+ GList * files = NULL;
+ DIR * folder = opendir (unix_name);
+ if (! folder)
+ goto FREE;
+
+ struct dirent * entry;
+ while ((entry = readdir (folder)))
+ {
+ if (entry->d_name[0] != '.')
+ files = g_list_prepend (files, g_strdup_printf ("%s"
+ G_DIR_SEPARATOR_S "%s", unix_name, entry->d_name));
+ }
+
+ closedir (folder);
+ files = g_list_sort (files, (GCompareFunc) string_compare);
+
+ while (files)
+ {
+ struct stat info;
+ if (stat (files->data, & info) < 0)
+ goto NEXT;
+
+ if (S_ISREG (info.st_mode))
+ {
+ char * item_name = filename_to_uri (files->data);
+ if (item_name)
+ {
+ add_file (str_get (item_name), NULL, NULL, filter, user, result, TRUE);
+ g_free (item_name);
+ }
+ }
+ else if (S_ISDIR (info.st_mode))
+ {
+ char * item_name = filename_to_uri (files->data);
+ if (item_name)
+ {
+ add_folder (str_get (item_name), filter, user, result);
+ g_free (item_name);
+ }
+ }
+
+ NEXT:
+ g_free (files->data);
+ files = g_list_delete_link (files, files);
+ }
+
+FREE:
+ str_unref (filename);
+ g_free (unix_name);
+}
+
+static void add_playlist (char * filename, PlaylistFilterFunc filter,
+ void * user, AddResult * result)
+{
+ g_return_if_fail (filename);
+ if (filter && ! filter (filename, user))
+ {
+ str_unref (filename);
+ return;
+ }
+
+ status_update (filename, index_count (result->filenames));
+
+ char * title = NULL;
+ Index * filenames, * tuples;
+ if (! playlist_load (filename, & title, & filenames, & tuples))
+ {
+ str_unref (filename);
+ return;
+ }
+
+ int count = index_count (filenames);
+ for (int i = 0; i < count; i ++)
+ add_file (index_get (filenames, i), tuples ? index_get (tuples, i) :
+ NULL, NULL, filter, user, result, FALSE);
+
+ str_unref (filename);
+ str_unref (title);
+ index_free (filenames);
+ if (tuples)
+ index_free (tuples);
+}
+
+static void add_generic (char * filename, Tuple * tuple,
+ PlaylistFilterFunc filter, void * user, AddResult * result)
+{
+ g_return_if_fail (filename);
+
+ if (tuple)
+ add_file (filename, tuple, NULL, filter, user, result, FALSE);
+ else if (vfs_file_test (filename, G_FILE_TEST_IS_DIR))
+ add_folder (filename, filter, user, result);
+ else if (filename_is_playlist (filename))
+ add_playlist (filename, filter, user, result);
+ else
+ add_file (filename, NULL, NULL, filter, user, result, FALSE);
+}
+
+static bool_t add_finish (void * unused)
+{
+ pthread_mutex_lock (& mutex);
+
+ while (add_results)
+ {
+ AddResult * result = add_results->data;
+ add_results = g_list_delete_link (add_results, add_results);
+
+ int playlist = playlist_by_unique_id (result->playlist_id);
+ if (playlist < 0) /* playlist deleted */
+ goto FREE;
+
+ int count = playlist_entry_count (playlist);
+ if (result->at < 0 || result->at > count)
+ result->at = count;
+
+ playlist_entry_insert_batch_raw (playlist, result->at,
+ result->filenames, result->tuples, result->decoders);
+ result->filenames = NULL;
+ result->tuples = NULL;
+ result->decoders = NULL;
+
+ if (result->play && playlist_entry_count (playlist) > count)
+ {
+ playlist_set_playing (playlist);
+ if (! get_bool (NULL, "shuffle"))
+ playlist_set_position (playlist, result->at);
+
+ playback_play (0, FALSE);
+ }
+
+ FREE:
+ add_result_free (result);
+ }
+
+ if (add_source)
+ {
+ g_source_remove (add_source);
+ add_source = 0;
+ }
+
+ if (! add_tasks)
+ status_done_locked ();
+
+ pthread_mutex_unlock (& mutex);
+
+ hook_call ("playlist add complete", NULL);
+ return FALSE;
+}
+
+static void * add_worker (void * unused)
+{
+ pthread_mutex_lock (& mutex);
+
+ while (! add_quit)
+ {
+ if (! add_tasks)
+ {
+ pthread_cond_wait (& cond, & mutex);
+ continue;
+ }
+
+ AddTask * task = add_tasks->data;
+ add_tasks = g_list_delete_link (add_tasks, add_tasks);
+
+ current_playlist_id = task->playlist_id;
+ pthread_mutex_unlock (& mutex);
+
+ AddResult * result = add_result_new (task->playlist_id, task->at,
+ task->play);
+
+ int count = index_count (task->filenames);
+ if (task->tuples)
+ count = MIN (count, index_count (task->tuples));
+
+ for (int i = 0; i < count; i ++)
+ {
+ add_generic (index_get (task->filenames, i), task->tuples ?
+ index_get (task->tuples, i) : NULL, task->filter, task->user,
+ result);
+
+ index_set (task->filenames, i, NULL);
+ if (task->tuples)
+ index_set (task->tuples, i, NULL);
+ }
+
+ add_task_free (task);
+
+ pthread_mutex_lock (& mutex);
+ current_playlist_id = -1;
+
+ add_results = g_list_append (add_results, result);
+
+ if (! add_source)
+ add_source = g_timeout_add (0, add_finish, NULL);
+ }
+
+ pthread_mutex_unlock (& mutex);
+ return NULL;
+}
+
+void adder_init (void)
+{
+ pthread_mutex_lock (& mutex);
+ add_quit = FALSE;
+ pthread_create (& add_thread, NULL, add_worker, NULL);
+ pthread_mutex_unlock (& mutex);
+}
+
+void adder_cleanup (void)
+{
+ pthread_mutex_lock (& mutex);
+ add_quit = TRUE;
+ pthread_cond_broadcast (& cond);
+ pthread_mutex_unlock (& mutex);
+ pthread_join (add_thread, NULL);
+
+ if (add_source)
+ {
+ g_source_remove (add_source);
+ add_source = 0;
+ }
+
+ status_done_locked ();
+}
+
+void playlist_entry_insert (int playlist, int at, const char * filename,
+ Tuple * tuple, bool_t play)
+{
+ Index * filenames = index_new ();
+ Index * tuples = index_new ();
+ index_append (filenames, str_get (filename));
+ index_append (tuples, tuple);
+
+ playlist_entry_insert_batch (playlist, at, filenames, tuples, play);
+}
+
+void playlist_entry_insert_batch (int playlist, int at,
+ Index * filenames, Index * tuples, bool_t play)
+{
+ playlist_entry_insert_filtered (playlist, at, filenames, tuples, NULL, NULL, play);
+}
+
+void playlist_entry_insert_filtered (int playlist, int at,
+ Index * filenames, Index * tuples, PlaylistFilterFunc filter,
+ void * user, bool_t play)
+{
+ int playlist_id = playlist_get_unique_id (playlist);
+ g_return_if_fail (playlist_id >= 0);
+
+ AddTask * task = add_task_new (playlist_id, at, play, filenames, tuples, filter, user);
+
+ pthread_mutex_lock (& mutex);
+ add_tasks = g_list_append (add_tasks, task);
+ pthread_cond_broadcast (& cond);
+ pthread_mutex_unlock (& mutex);
+}
+
+bool_t playlist_add_in_progress (int playlist)
+{
+ int playlist_id = playlist_get_unique_id (playlist);
+ g_return_val_if_fail (playlist_id >= 0, FALSE);
+
+ pthread_mutex_lock (& mutex);
+
+ for (GList * node = add_tasks; node; node = node->next)
+ {
+ if (((AddTask *) node->data)->playlist_id == playlist_id)
+ goto YES;
+ }
+
+ if (current_playlist_id == playlist_id)
+ goto YES;
+
+ for (GList * node = add_results; node; node = node->next)
+ {
+ if (((AddResult *) node->data)->playlist_id == playlist_id)
+ goto YES;
+ }
+
+ pthread_mutex_unlock (& mutex);
+ return FALSE;
+
+YES:
+ pthread_mutex_unlock (& mutex);
+ return TRUE;
+}
diff --git a/src/audacious/api-alias-begin.h b/src/audacious/api-alias-begin.h
index 75a01c9..cc7c723 100644
--- a/src/audacious/api-alias-begin.h
+++ b/src/audacious/api-alias-begin.h
@@ -32,5 +32,17 @@ extern AudAPITable * _aud_api_table;
#define AUD_FUNC2(t,n,t1,n1,t2,n2) static inline t aud_##n(t1 n1, t2 n2) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2);}
#define AUD_FUNC3(t,n,t1,n1,t2,n2,t3,n3) static inline t aud_##n(t1 n1, t2 n2, t3 n3) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3);}
#define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4);}
-#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5);}
+#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5);}
#define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6);}
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7);}
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7,n8);}
+
+#define AUD_VFUNC0(n) static inline void aud_##n(void) {_aud_api_table->AUD_API_SYMBOL->n();}
+#define AUD_VFUNC1(n,t1,n1) static inline void aud_##n(t1 n1) {_aud_api_table->AUD_API_SYMBOL->n(n1);}
+#define AUD_VFUNC2(n,t1,n1,t2,n2) static inline void aud_##n(t1 n1, t2 n2) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2);}
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) static inline void aud_##n(t1 n1, t2 n2, t3 n3) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3);}
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4);}
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5);}
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6);}
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7);}
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7,n8);}
diff --git a/src/audacious/api-alias-end.h b/src/audacious/api-alias-end.h
index a216294..e7930bc 100644
--- a/src/audacious/api-alias-end.h
+++ b/src/audacious/api-alias-end.h
@@ -32,3 +32,15 @@
#undef AUD_FUNC4
#undef AUD_FUNC5
#undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api-declare-begin.h b/src/audacious/api-declare-begin.h
index fe9d4f0..cadc79f 100644
--- a/src/audacious/api-declare-begin.h
+++ b/src/audacious/api-declare-begin.h
@@ -32,5 +32,17 @@
#define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) .n = n,
#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) .n = n,
#define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) .n = n,
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) .n = n,
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) .n = n,
+
+#define AUD_VFUNC0(n) .n = n,
+#define AUD_VFUNC1(n,t1,n1) .n = n,
+#define AUD_VFUNC2(n,t1,n1,t2,n2) .n = n,
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) .n = n,
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) .n = n,
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) .n = n,
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) .n = n,
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) .n = n,
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) .n = n,
const struct AUD_API_NAME AUD_API_SYMBOL = {
diff --git a/src/audacious/api-declare-end.h b/src/audacious/api-declare-end.h
index 52f3beb..df68a68 100644
--- a/src/audacious/api-declare-end.h
+++ b/src/audacious/api-declare-end.h
@@ -33,3 +33,15 @@
#undef AUD_FUNC4
#undef AUD_FUNC5
#undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api-define-begin.h b/src/audacious/api-define-begin.h
index e6e5ff6..f193d24 100644
--- a/src/audacious/api-define-begin.h
+++ b/src/audacious/api-define-begin.h
@@ -30,7 +30,19 @@
#define AUD_FUNC2(t,n,t1,n1,t2,n2) t (* n) (t1 n1, t2 n2);
#define AUD_FUNC3(t,n,t1,n1,t2,n2,t3,n3) t (* n) (t1 n1, t2 n2, t3 n3);
#define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4);
-#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
#define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
+
+#define AUD_VFUNC0(n) void (* n) (void);
+#define AUD_VFUNC1(n,t1,n1) void (* n) (t1 n1);
+#define AUD_VFUNC2(n,t1,n1,t2,n2) void (* n) (t1 n1, t2 n2);
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) void (* n) (t1 n1, t2 n2, t3 n3);
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4);
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
struct AUD_API_NAME {
diff --git a/src/audacious/api-define-end.h b/src/audacious/api-define-end.h
index 7bc5f65..e2801b4 100644
--- a/src/audacious/api-define-end.h
+++ b/src/audacious/api-define-end.h
@@ -34,3 +34,15 @@
#undef AUD_FUNC4
#undef AUD_FUNC5
#undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api-local-begin.h b/src/audacious/api-local-begin.h
index a87d988..9f11713 100644
--- a/src/audacious/api-local-begin.h
+++ b/src/audacious/api-local-begin.h
@@ -30,5 +30,17 @@
#define AUD_FUNC2(t,n,t1,n1,t2,n2) t n (t1 n1, t2 n2);
#define AUD_FUNC3(t,n,t1,n1,t2,n2,t3,n3) t n (t1 n1, t2 n2, t3 n3);
#define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) t n (t1 n1, t2 n2, t3 n3, t4 n4);
-#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
#define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
+
+#define AUD_VFUNC0(n) void n (void);
+#define AUD_VFUNC1(n,t1,n1) void n (t1 n1);
+#define AUD_VFUNC2(n,t1,n1,t2,n2) void n (t1 n1, t2 n2);
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) void n (t1 n1, t2 n2, t3 n3);
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) void n (t1 n1, t2 n2, t3 n3, t4 n4);
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
diff --git a/src/audacious/api-local-end.h b/src/audacious/api-local-end.h
index c9b642f..a22d2c6 100644
--- a/src/audacious/api-local-end.h
+++ b/src/audacious/api-local-end.h
@@ -32,3 +32,15 @@
#undef AUD_FUNC4
#undef AUD_FUNC5
#undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api.h b/src/audacious/api.h
index 5cd3432..bfbb940 100644
--- a/src/audacious/api.h
+++ b/src/audacious/api.h
@@ -28,10 +28,12 @@ typedef const struct {
const struct MiscAPI * misc_api;
const struct PlaylistAPI * playlist_api;
const struct PluginsAPI * plugins_api;
- struct _AudConfig * cfg;
+ char * verbose;
} AudAPITable;
-#ifndef _AUDACIOUS_CORE
+#ifdef _AUDACIOUS_CORE
+extern char verbose;
+#else
extern AudAPITable * _aud_api_table;
#endif
diff --git a/src/audacious/art.c b/src/audacious/art.c
new file mode 100644
index 0000000..3f430f3
--- /dev/null
+++ b/src/audacious/art.c
@@ -0,0 +1,243 @@
+/*
+ * art.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious 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, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <errno.h>
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
+
+#include "main.h"
+#include "misc.h"
+#include "playlist.h"
+#include "util.h"
+
+typedef struct {
+ char * song_file; /* pooled */
+ int refcount;
+
+ /* album art as JPEG or PNG data */
+ void * data;
+ int64_t len;
+
+ /* album art as (possibly a temporary) file */
+ char * art_file;
+ bool_t is_temp;
+} ArtItem;
+
+static GHashTable * art_items;
+static char * current_file; /* pooled */
+
+static void art_item_free (ArtItem * item)
+{
+ /* delete temporary file */
+ if (item->art_file && item->is_temp)
+ {
+ char * unixname = uri_to_filename (item->art_file);
+ if (unixname)
+ {
+ unlink (unixname);
+ g_free (unixname);
+ }
+ }
+
+ str_unref (item->song_file);
+ g_free (item->data);
+ g_free (item->art_file);
+ g_slice_free (ArtItem, item);
+}
+
+static ArtItem * art_item_new (const char * file)
+{
+ /* local files only */
+ if (strncmp (file, "file://", 7))
+ return NULL;
+
+ ArtItem * item = g_slice_new0 (ArtItem);
+ item->song_file = str_get (file);
+
+ /* try to load embedded album art */
+ PluginHandle * decoder = file_find_decoder (file, FALSE);
+ if (decoder)
+ file_read_image (file, decoder, & item->data, & item->len);
+
+ if (item->data)
+ return item;
+
+ /* try to find external image file */
+ char * unixname = get_associated_image_file (file);
+ if (unixname)
+ {
+ item->art_file = filename_to_uri (unixname);
+ g_free (unixname);
+ }
+
+ if (item->art_file)
+ return item;
+
+ /* failed */
+ art_item_free (item);
+ return NULL;
+}
+
+static ArtItem * art_item_get (const char * file)
+{
+ if (! art_items)
+ art_items = g_hash_table_new_full (g_str_hash, g_str_equal,
+ NULL, (GDestroyNotify) art_item_free);
+
+ ArtItem * item = g_hash_table_lookup (art_items, file);
+ if (item)
+ {
+ item->refcount ++;
+ return item;
+ }
+
+ item = art_item_new (file);
+ if (! item)
+ return NULL;
+
+ g_hash_table_insert (art_items, item->song_file, item);
+ item->refcount = 1;
+ return item;
+}
+
+static void art_item_unref (ArtItem * item)
+{
+ if (! -- item->refcount)
+ {
+ /* keep album art for current entry */
+ if (current_file && ! strcmp (current_file, item->song_file))
+ return;
+
+ g_hash_table_remove (art_items, item->song_file);
+ }
+}
+
+static void release_current (void)
+{
+ if (! art_items || ! current_file)
+ return;
+
+ /* free album art for previous entry */
+ ArtItem * item = g_hash_table_lookup (art_items, current_file);
+ if (item && ! item->refcount)
+ g_hash_table_remove (art_items, current_file);
+}
+
+static void position_hook (void * data, void * user)
+{
+ release_current ();
+ str_unref (current_file);
+
+ int list = playlist_get_playing ();
+ int entry = (list >= 0) ? playlist_get_position (list) : -1;
+ current_file = (entry >= 0) ? playlist_entry_get_filename (list, entry) : NULL;
+}
+
+void art_init (void)
+{
+ hook_associate ("playlist position", position_hook, NULL);
+ hook_associate ("playlist set playing", position_hook, NULL);
+}
+
+void art_cleanup (void)
+{
+ hook_dissociate ("playlist position", position_hook);
+ hook_dissociate ("playlist set playing", position_hook);
+
+ release_current ();
+ str_unref (current_file);
+ current_file = NULL;
+
+ if (art_items && g_hash_table_size (art_items))
+ {
+ fprintf (stderr, "Album art not freed\n");
+ abort ();
+ }
+
+ if (art_items)
+ {
+ g_hash_table_destroy (art_items);
+ art_items = NULL;
+ }
+}
+
+void art_get_data (const char * file, const void * * data, int64_t * len)
+{
+ * data = NULL;
+ * len = 0;
+
+ ArtItem * item = art_item_get (file);
+ if (! item)
+ return;
+
+ /* load data from external image file */
+ if (! item->data && item->art_file)
+ vfs_file_get_contents (item->art_file, & item->data, & item->len);
+
+ if (! item->data)
+ {
+ art_item_unref (item);
+ return;
+ }
+
+ * data = item->data;
+ * len = item->len;
+}
+
+const char * art_get_file (const char * file)
+{
+ ArtItem * item = art_item_get (file);
+ if (! item)
+ return NULL;
+
+ /* save data to temporary file */
+ if (item->data && ! item->art_file)
+ {
+ char * unixname = write_temp_file (item->data, item->len);
+ if (unixname)
+ {
+ item->art_file = filename_to_uri (unixname);
+ item->is_temp = TRUE;
+ g_free (unixname);
+ }
+ }
+
+ if (! item->art_file)
+ {
+ art_item_unref (item);
+ return NULL;
+ }
+
+ return item->art_file;
+}
+
+void art_unref (const char * file)
+{
+ ArtItem * item = art_items ? g_hash_table_lookup (art_items, file) : NULL;
+ if (item)
+ art_item_unref (item);
+}
diff --git a/src/audacious/audacious.rc b/src/audacious/audacious.rc
new file mode 100644
index 0000000..b37beeb
--- /dev/null
+++ b/src/audacious/audacious.rc
@@ -0,0 +1,7 @@
+#include <windows.h>
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define IDI_ICON_AUDACIOUS 102
+
+IDI_ICON_AUDACIOUS ICON "../../pixmaps/audacious.ico"
diff --git a/src/audacious/audconfig.c b/src/audacious/audconfig.c
deleted file mode 100644
index 3556c37..0000000
--- a/src/audacious/audconfig.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2010 Audacious development team.
- *
- * Based on BMP:
- * Copyright (C) 2003-2004 BMP development team.
- *
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team.
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-#include <libaudcore/hook.h>
-
-#include "audconfig.h"
-#include "configdb.h"
-#include "playback.h"
-
-AudConfig cfg = {
- .shuffle = FALSE,
- .repeat = FALSE,
- .equalizer_autoload = FALSE,
- .equalizer_active = FALSE,
- .playlist_visible = FALSE,
- .equalizer_visible = FALSE,
- .player_visible = TRUE,
- .show_numbers_in_pl = TRUE,
- .leading_zero = TRUE,
- .no_playlist_advance = FALSE,
- .advance_on_delete = FALSE,
- .clear_playlist = TRUE,
- .open_to_temporary = FALSE,
- .stopaftersong = FALSE,
- .close_dialog_open = TRUE,
- .equalizer_preamp = 0.0,
- .equalizer_bands = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
- .filesel_path = NULL,
- .playlist_path = NULL,
- .eqpreset_default_file = NULL,
- .eqpreset_extension = NULL,
- .url_history = NULL,
- .resume_playback_on_startup = FALSE,
- .resume_state = 0,
- .resume_playback_on_startup_time = 0,
- .chardet_detector = NULL,
- .chardet_fallback = NULL,
- .chardet_fallback_s = NULL,
- .output_buffer_size = 500,
- .show_filepopup_for_tuple = TRUE,
- .cover_name_include = NULL, /* words identifying covers */
- .cover_name_exclude = NULL, /* words that might not show up in cover names */
- .recurse_for_cover = FALSE,
- .recurse_for_cover_depth = 0,
- .filepopup_pixelsize = 150, /* short side length of the picture in the filepopup */
- .filepopup_delay = 20, /* delay until the filepopup comes up */
- .use_file_cover = FALSE, /* use filename.jpg for coverart */
- .filepopup_showprogressbar = TRUE,
- .close_jtf_dialog = TRUE, /* close jtf dialog on jump */
- .software_volume_control = FALSE,
- .remember_jtf_entry = TRUE,
- .output_bit_depth = 16,
- .enable_replay_gain = TRUE,
- .enable_clipping_prevention = TRUE,
- .replay_gain_track = TRUE, /* track mode */
- .replay_gain_album = FALSE, /* album mode */
- .replay_gain_preamp = 0,
- .default_gain = 0,
- .sw_volume_left = 100, .sw_volume_right = 100,
-
- /* libaudgui stuff */
- .no_confirm_playlist_delete = FALSE,
- .playlist_manager_x = 0,
- .playlist_manager_y = 0,
- .playlist_manager_width = 0,
- .playlist_manager_height = 0,
- .playlist_manager_close_on_activate = FALSE,
-
- /* not saved */
- .verbose = FALSE,
-};
-
-typedef struct aud_cfg_boolent_t {
- char const *be_vname;
- gboolean *be_vloc;
- gboolean be_wrt;
-} aud_cfg_boolent;
-
-typedef struct aud_cfg_nument_t {
- char const *ie_vname;
- gint *ie_vloc;
- gboolean ie_wrt;
-} aud_cfg_nument;
-
-typedef struct aud_cfg_strent_t {
- char const *se_vname;
- char **se_vloc;
- gboolean se_wrt;
-} aud_cfg_strent;
-
-static aud_cfg_boolent aud_boolents[] = {
- {"show_numbers_in_pl", &cfg.show_numbers_in_pl, TRUE},
- {"leading_zero", & cfg.leading_zero, TRUE},
- {"no_playlist_advance", &cfg.no_playlist_advance, TRUE},
- {"advance_on_delete", & cfg.advance_on_delete, TRUE},
- {"clear_playlist", & cfg.clear_playlist, TRUE},
- {"open_to_temporary", & cfg.open_to_temporary, TRUE},
- {"player_visible", &cfg.player_visible, TRUE},
- {"shuffle", &cfg.shuffle, TRUE},
- {"repeat", &cfg.repeat, TRUE},
- {"stop_after_current_song", &cfg.stopaftersong, TRUE},
- {"playlist_visible", &cfg.playlist_visible, TRUE},
- {"equalizer_visible", &cfg.equalizer_visible, TRUE},
- {"equalizer_active", &cfg.equalizer_active, TRUE},
- {"equalizer_autoload", &cfg.equalizer_autoload, TRUE},
- {"close_dialog_open", &cfg.close_dialog_open, TRUE},
- {"resume_playback_on_startup", &cfg.resume_playback_on_startup, TRUE},
- {"show_filepopup_for_tuple", &cfg.show_filepopup_for_tuple, TRUE},
- {"recurse_for_cover", &cfg.recurse_for_cover, TRUE},
- {"use_file_cover", &cfg.use_file_cover, TRUE},
- {"filepopup_showprogressbar", &cfg.filepopup_showprogressbar, TRUE},
- {"close_jtf_dialog", &cfg.close_jtf_dialog, TRUE},
- {"software_volume_control", &cfg.software_volume_control, TRUE},
- {"remember_jtf_entry", &cfg.remember_jtf_entry, TRUE},
- {"enable_replay_gain", &cfg.enable_replay_gain, TRUE},
- {"enable_clipping_prevention", &cfg.enable_clipping_prevention, TRUE},
- {"replay_gain_track", &cfg.replay_gain_track, TRUE},
- {"replay_gain_album", &cfg.replay_gain_album, TRUE},
- {"no_confirm_playlist_delete", &cfg.no_confirm_playlist_delete, TRUE},
- {"playlist_manager_close_on_activate",
- & cfg.playlist_manager_close_on_activate, TRUE},
-};
-
-static gint ncfgbent = G_N_ELEMENTS(aud_boolents);
-
-static aud_cfg_nument aud_numents[] = {
- {"titlestring_preset", &cfg.titlestring_preset, TRUE},
- {"resume_state", & cfg.resume_state, TRUE},
- {"resume_playback_on_startup_time", &cfg.resume_playback_on_startup_time, TRUE},
- {"output_buffer_size", &cfg.output_buffer_size, TRUE},
- {"recurse_for_cover_depth", &cfg.recurse_for_cover_depth, TRUE},
- {"filepopup_pixelsize", &cfg.filepopup_pixelsize, TRUE},
- {"filepopup_delay", &cfg.filepopup_delay, TRUE},
- {"output_bit_depth", &cfg.output_bit_depth, TRUE},
- {"sw_volume_left", & cfg.sw_volume_left, TRUE},
- {"sw_volume_right", & cfg.sw_volume_right, TRUE},
- {"playlist_manager_x", & cfg.playlist_manager_x, TRUE},
- {"playlist_manager_y", & cfg.playlist_manager_y, TRUE},
- {"playlist_manager_width", & cfg.playlist_manager_width, TRUE},
- {"playlist_manager_height", & cfg.playlist_manager_height, TRUE},
-};
-
-static gint ncfgient = G_N_ELEMENTS(aud_numents);
-
-static aud_cfg_strent aud_strents[] = {
- {"eqpreset_default_file", &cfg.eqpreset_default_file, TRUE},
- {"eqpreset_extension", &cfg.eqpreset_extension, TRUE},
- {"filesel_path", &cfg.filesel_path, FALSE},
- {"playlist_path", &cfg.playlist_path, FALSE},
- {"generic_title_format", &cfg.gentitle_format, TRUE},
- {"chardet_detector", &cfg.chardet_detector, TRUE},
- {"chardet_fallback", &cfg.chardet_fallback, TRUE},
- {"cover_name_include", &cfg.cover_name_include, TRUE},
- {"cover_name_exclude", &cfg.cover_name_exclude, TRUE},
-};
-
-static gint ncfgsent = G_N_ELEMENTS(aud_strents);
-
-void aud_config_chardet_update(void)
-{
- if (cfg.chardet_fallback_s != NULL)
- g_strfreev(cfg.chardet_fallback_s);
- cfg.chardet_fallback_s = g_strsplit_set(cfg.chardet_fallback, " ,:;|/", 0);
-}
-
-
-void
-aud_config_load(void)
-{
- mcs_handle_t *db;
- gint i, length;
-
- if (! (db = cfg_db_open ()))
- return;
-
- for (i = 0; i < ncfgbent; ++i) {
- cfg_db_get_bool(db, NULL,
- aud_boolents[i].be_vname,
- aud_boolents[i].be_vloc);
- }
-
- for (i = 0; i < ncfgient; ++i) {
- cfg_db_get_int(db, NULL,
- aud_numents[i].ie_vname,
- aud_numents[i].ie_vloc);
- }
-
- for (i = 0; i < ncfgsent; ++i) {
- cfg_db_get_string(db, NULL,
- aud_strents[i].se_vname,
- aud_strents[i].se_vloc);
- }
-
- /* Preset */
- cfg_db_get_float(db, NULL, "equalizer_preamp", &cfg.equalizer_preamp);
- for (i = 0; i < AUD_EQUALIZER_NBANDS; i++) {
- gchar eqtext[32];
-
- g_snprintf(eqtext, sizeof(eqtext), "equalizer_band%d", i);
- cfg_db_get_float(db, NULL, eqtext, &cfg.equalizer_bands[i]);
- }
-
- /* History */
- if (cfg_db_get_int(db, NULL, "url_history_length", &length)) {
- for (i = 1; i <= length; i++) {
- gchar str[19], *tmp;
-
- g_snprintf(str, sizeof(str), "url_history%d", i);
- if (cfg_db_get_string(db, NULL, str, &tmp))
- cfg.url_history = g_list_append(cfg.url_history, tmp);
- }
- }
-
- /* RG settings */
- cfg_db_get_float(db, NULL, "replay_gain_preamp", &cfg.replay_gain_preamp);
- cfg_db_get_float(db, NULL, "default_gain", &cfg.default_gain);
-
- cfg_db_close(db);
-
- if (!cfg.gentitle_format)
- cfg.gentitle_format = g_strdup("${?artist:${artist} - }${?album:${album} - }${title}");
-
- if (!cfg.chardet_detector)
- cfg.chardet_detector = g_strdup("");
-
- if (!cfg.chardet_fallback)
- cfg.chardet_fallback = g_strdup("");
-
- aud_config_chardet_update();
-
- if (!cfg.cover_name_include)
- cfg.cover_name_include = g_strdup("album,folder");
-
- if (!cfg.cover_name_exclude)
- cfg.cover_name_exclude = g_strdup("back");
-}
-
-void
-aud_config_save(void)
-{
- GList *node;
- gchar *str;
- gint i;
- mcs_handle_t *db;
-
- hook_call ("config save", NULL);
-
- cfg.resume_state = playback_get_playing () ? (playback_get_paused () ? 2 :
- 1) : 0;
- cfg.resume_playback_on_startup_time = playback_get_playing () ?
- playback_get_time () : 0;
-
- if (! (db = cfg_db_open ()))
- return;
-
- for (i = 0; i < ncfgbent; ++i)
- if (aud_boolents[i].be_wrt)
- cfg_db_set_bool(db, NULL,
- aud_boolents[i].be_vname,
- *aud_boolents[i].be_vloc);
-
- for (i = 0; i < ncfgient; ++i)
- if (aud_numents[i].ie_wrt)
- cfg_db_set_int(db, NULL,
- aud_numents[i].ie_vname,
- *aud_numents[i].ie_vloc);
-
- for (i = 0; i < ncfgsent; ++i) {
- if (aud_strents[i].se_wrt)
- cfg_db_set_string(db, NULL,
- aud_strents[i].se_vname,
- *aud_strents[i].se_vloc);
- }
-
- cfg_db_set_float(db, NULL, "equalizer_preamp", cfg.equalizer_preamp);
-
- /* RG settings */
- cfg_db_set_float(db, NULL, "replay_gain_preamp", cfg.replay_gain_preamp);
- cfg_db_set_float(db, NULL, "default_gain", cfg.default_gain);
-
- for (i = 0; i < 10; i++) {
- str = g_strdup_printf("equalizer_band%d", i);
- cfg_db_set_float(db, NULL, str, cfg.equalizer_bands[i]);
- g_free(str);
- }
-
- if (cfg.filesel_path)
- cfg_db_set_string(db, NULL, "filesel_path", cfg.filesel_path);
-
- if (cfg.playlist_path)
- cfg_db_set_string(db, NULL, "playlist_path", cfg.playlist_path);
-
- cfg_db_set_int(db, NULL, "url_history_length",
- g_list_length(cfg.url_history));
-
- for (node = cfg.url_history, i = 1; node; node = g_list_next(node), i++) {
- str = g_strdup_printf("url_history%d", i);
- cfg_db_set_string(db, NULL, str, node->data);
- g_free(str);
- }
-
- cfg_db_close(db);
-}
diff --git a/src/audacious/audconfig.h b/src/audacious/audconfig.h
deleted file mode 100644
index cf38773..0000000
--- a/src/audacious/audconfig.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2010 Audacious development team
- *
- * Based on BMP:
- * Copyright (C) 2003-2004 BMP development team
- *
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_AUDCONFIG_H
-#define AUDACIOUS_AUDCONFIG_H
-
-#include <glib.h>
-#include <audacious/types.h>
-
-#ifndef _AUDACIOUS_CORE
-#include <audacious/api.h>
-#define aud_cfg (_aud_api_table->cfg)
-#endif
-
-struct _AudConfig {
- gboolean shuffle, repeat;
- gboolean equalizer_autoload, equalizer_active;
- gboolean playlist_visible, equalizer_visible, player_visible;
- gboolean show_numbers_in_pl, leading_zero;
- gboolean no_playlist_advance, advance_on_delete, clear_playlist,
- open_to_temporary;
- gboolean stopaftersong;
- gboolean close_dialog_open;
- gfloat equalizer_preamp, equalizer_bands[AUD_EQUALIZER_NBANDS];
- gchar *filesel_path;
- gchar *playlist_path;
- gchar *eqpreset_default_file, *eqpreset_extension;
- GList *url_history;
- gint titlestring_preset;
- gchar *gentitle_format;
- gboolean resume_playback_on_startup;
- gint resume_state;
- gint resume_playback_on_startup_time;
- gchar *chardet_detector;
- gchar *chardet_fallback;
- gchar **chardet_fallback_s;
- gint output_buffer_size;
- gboolean show_filepopup_for_tuple;
- gchar *cover_name_include, *cover_name_exclude;
- gboolean recurse_for_cover;
- gint recurse_for_cover_depth;
- gint filepopup_pixelsize;
- gint filepopup_delay;
- gboolean use_file_cover;
- gboolean filepopup_showprogressbar;
- gboolean close_jtf_dialog;
- gboolean software_volume_control;
- gboolean remember_jtf_entry;
- gint output_bit_depth;
- gboolean enable_replay_gain;
- gboolean enable_clipping_prevention;
- gboolean replay_gain_track;
- gboolean replay_gain_album;
- gfloat replay_gain_preamp;
- gfloat default_gain;
- gint sw_volume_left, sw_volume_right;
-
- /* libaudgui stuff */
- gboolean no_confirm_playlist_delete;
- gint playlist_manager_x, playlist_manager_y, playlist_manager_width,
- playlist_manager_height;
- gboolean playlist_manager_close_on_activate;
-
- /* not saved */
- gboolean verbose;
-};
-
-typedef struct _AudConfig AudConfig;
-
-extern AudConfig cfg;
-extern AudConfig aud_default_config;
-
-void aud_config_load(void);
-void aud_config_save(void);
-
-void aud_config_chardet_update(void);
-
-#endif /* AUDACIOUS_AUDCONFIG_H */
diff --git a/src/audacious/chardet.c b/src/audacious/chardet.c
index 9010db2..bdbe026 100644
--- a/src/audacious/chardet.c
+++ b/src/audacious/chardet.c
@@ -17,26 +17,28 @@
* Audacious or using our public API to be a derived work.
*/
+#include <glib.h>
#include <string.h>
#include <libaudcore/audstrings.h>
-#include "audconfig.h"
#include "config.h"
-#include "i18n.h"
#include "debug.h"
+#include "i18n.h"
+#include "main.h"
+#include "misc.h"
#ifdef USE_CHARDET
# include <libguess.h>
#endif
-static gchar * cd_chardet_to_utf8 (const gchar * str, gssize len,
- gsize * arg_bytes_read, gsize * arg_bytes_write, GError ** error);
+static char * cd_chardet_to_utf8 (const char * str, int len,
+ int * arg_bytes_read, int * arg_bytes_written);
-static gchar * str_to_utf8_fallback (const gchar * str)
+static char * str_to_utf8_fallback (const char * str)
{
- gchar * out = g_strconcat (str, _(" (invalid UTF-8)"), NULL);
+ char * out = g_strconcat (str, _(" (invalid UTF-8)"), NULL);
- for (gchar * c = out; * c; c ++)
+ for (char * c = out; * c; c ++)
{
if (* c & 0x80)
* c = '?';
@@ -45,9 +47,9 @@ static gchar * str_to_utf8_fallback (const gchar * str)
return out;
}
-static gchar * cd_str_to_utf8 (const gchar * str)
+static char * cd_str_to_utf8 (const char * str)
{
- gchar *out_str;
+ char *out_str;
if (str == NULL)
return NULL;
@@ -84,25 +86,19 @@ static gchar * cd_str_to_utf8 (const gchar * str)
#endif
/* chardet encoding detector */
- if ((out_str = cd_chardet_to_utf8(str, strlen(str), NULL, NULL, NULL)) != NULL)
+ if ((out_str = cd_chardet_to_utf8 (str, strlen (str), NULL, NULL)))
return out_str;
/* all else fails, we mask off character codes >= 128, replace with '?' */
return str_to_utf8_fallback(str);
}
-static gchar * cd_chardet_to_utf8 (const gchar * str, gssize len,
- gsize * arg_bytes_read, gsize * arg_bytes_write, GError ** error)
+static char * cd_chardet_to_utf8 (const char * str, int len,
+ int * arg_bytes_read, int * arg_bytes_write)
{
- if (error)
- * error = NULL;
-
-#ifdef USE_CHARDET
- gchar *det = NULL, *encoding = NULL;
-#endif
- gchar *ret = NULL;
- gsize *bytes_read, *bytes_write;
- gsize my_bytes_read, my_bytes_write;
+ char *ret = NULL;
+ int * bytes_read, * bytes_write;
+ int my_bytes_read, my_bytes_write;
bytes_read = arg_bytes_read != NULL ? arg_bytes_read : &my_bytes_read;
bytes_write = arg_bytes_write != NULL ? arg_bytes_write : &my_bytes_write;
@@ -129,33 +125,40 @@ static gchar * cd_chardet_to_utf8 (const gchar * str, gssize len,
return ret;
}
+
#ifdef USE_CHARDET
- if (cfg.chardet_detector)
- det = cfg.chardet_detector;
+ char * det = get_string (NULL, "chardet_detector");
- if (det)
+ if (det[0])
{
AUDDBG("guess encoding (%s) %s\n", det, str);
- encoding = (gchar *) libguess_determine_encoding(str, len, det);
+ const char * encoding = libguess_determine_encoding (str, len, det);
AUDDBG("encoding = %s\n", encoding);
- if (encoding == NULL)
- goto fallback;
-
- ret = g_convert (str, len, "UTF-8", encoding, bytes_read, bytes_write,
- (error && * error) ? NULL : error);
+ if (encoding)
+ {
+ gsize read_gsize = 0, written_gsize = 0;
+ ret = g_convert (str, len, "UTF-8", encoding, & read_gsize, & written_gsize, NULL);
+ * bytes_read = read_gsize;
+ * bytes_write = written_gsize;
+ }
}
-fallback:
+ g_free (det);
#endif
/* If detection failed or was not enabled, try fallbacks (if there are any) */
- if (ret == NULL && cfg.chardet_fallback_s != NULL)
+ if (! ret)
{
- gchar **enc;
- for (enc = cfg.chardet_fallback_s; *enc != NULL; enc++)
+ char * fallbacks = get_string (NULL, "chardet_fallback");
+ char * * split = g_strsplit_set (fallbacks, " ,:;|/", -1);
+
+ for (char * * enc = split; * enc; enc ++)
{
- ret = g_convert (str, len, "UTF-8", * enc, bytes_read, bytes_write,
- (error && * error) ? NULL : error);
+ gsize read_gsize = 0, written_gsize = 0;
+ ret = g_convert (str, len, "UTF-8", * enc, & read_gsize, & written_gsize, NULL);
+ * bytes_read = read_gsize;
+ * bytes_write = written_gsize;
+
if (len == *bytes_read)
break;
else {
@@ -163,17 +166,28 @@ fallback:
ret = NULL;
}
}
+
+ g_strfreev (split);
+ g_free (fallbacks);
}
/* First fallback: locale (duh!) */
if (ret == NULL)
- ret = g_locale_to_utf8 (str, len, bytes_read, bytes_write,
- (error && * error) ? NULL : error);
+ {
+ gsize read_gsize = 0, written_gsize = 0;
+ ret = g_locale_to_utf8 (str, len, & read_gsize, & written_gsize, NULL);
+ * bytes_read = read_gsize;
+ * bytes_write = written_gsize;
+ }
/* The final fallback is ISO-8859-1, if no other is specified or conversions fail */
if (ret == NULL)
- ret = g_convert (str, len, "UTF-8", "ISO-8859-1", bytes_read,
- bytes_write, (error && * error) ? NULL : error);
+ {
+ gsize read_gsize = 0, written_gsize = 0;
+ ret = g_convert (str, len, "UTF-8", "ISO-8859-1", & read_gsize, & written_gsize, NULL);
+ * bytes_read = read_gsize;
+ * bytes_write = written_gsize;
+ }
if (ret != NULL)
{
@@ -192,5 +206,8 @@ fallback:
void chardet_init (void)
{
+#ifdef USE_CHARDET
+ libguess_determine_encoding(NULL, -1, "");
+#endif
str_set_utf8_impl (cd_str_to_utf8, cd_chardet_to_utf8);
}
diff --git a/src/audacious/config.c b/src/audacious/config.c
new file mode 100644
index 0000000..c952e05
--- /dev/null
+++ b/src/audacious/config.c
@@ -0,0 +1,335 @@
+/*
+ * config.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious 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, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <glib.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
+
+#include "main.h"
+#include "misc.h"
+
+#define DEFAULT_SECTION "audacious"
+
+static const char * const core_defaults[] = {
+
+ /* general */
+ "advance_on_delete", "FALSE",
+ "clear_playlist", "TRUE",
+ "open_to_temporary", "TRUE",
+ "resume_playback_on_startup", "FALSE",
+
+ /* equalizer */
+ "eqpreset_default_file", "",
+ "eqpreset_extension", "",
+ "equalizer_active", "FALSE",
+ "equalizer_autoload", "FALSE",
+ "equalizer_bands", "0,0,0,0,0,0,0,0,0,0",
+ "equalizer_preamp", "0",
+
+ /* info popup / info window */
+ "cover_name_exclude", "back",
+ "cover_name_include", "album,cover,front,folder",
+ "filepopup_delay", "5",
+ "filepopup_showprogressbar", "TRUE",
+ "recurse_for_cover", "FALSE",
+ "recurse_for_cover_depth", "0",
+ "show_filepopup_for_tuple", "TRUE",
+ "use_file_cover", "FALSE",
+
+ /* network */
+ "use_proxy", "FALSE",
+ "use_proxy_auth", "FALSE",
+
+ /* output */
+ "default_gain", "0",
+ "enable_replay_gain", "TRUE",
+ "enable_clipping_prevention", "TRUE",
+ "output_bit_depth", "16",
+ "output_buffer_size", "500",
+ "replay_gain_album", "FALSE",
+ "replay_gain_preamp", "0",
+ "software_volume_control", "FALSE",
+ "sw_volume_left", "100",
+ "sw_volume_right", "100",
+
+ /* playback */
+ "no_playlist_advance", "FALSE",
+ "repeat", "FALSE",
+ "shuffle", "FALSE",
+ "stop_after_current_song", "FALSE",
+
+ /* playlist */
+ "generic_title_format", "${?artist:${artist} - }${?album:${album} - }${title}",
+ "leading_zero", "FALSE",
+ "metadata_on_play", "FALSE",
+ "show_numbers_in_pl", "FALSE",
+
+ NULL};
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GHashTable * defaults;
+static GKeyFile * keyfile;
+static bool_t modified;
+
+/* str_unref() may be a macro */
+static void str_unref_cb (void * str)
+{
+ str_unref (str);
+}
+
+void config_load (void)
+{
+ g_return_if_fail (! defaults && ! keyfile);
+ pthread_mutex_lock (& mutex);
+
+ defaults = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+ (GDestroyNotify) g_hash_table_destroy);
+ keyfile = g_key_file_new ();
+
+ char * path = g_strdup_printf ("%s/config", get_path (AUD_PATH_USER_DIR));
+ if (g_file_test (path, G_FILE_TEST_EXISTS))
+ {
+ GError * error = NULL;
+ if (! g_key_file_load_from_file (keyfile, path, 0, & error))
+ {
+ fprintf (stderr, "Error loading config: %s\n", error->message);
+ g_error_free (error);
+ }
+ }
+ g_free (path);
+
+ modified = FALSE;
+ pthread_mutex_unlock (& mutex);
+
+ config_set_defaults (NULL, core_defaults);
+}
+
+void config_save (void)
+{
+ g_return_if_fail (defaults && keyfile);
+ pthread_mutex_lock (& mutex);
+
+ if (! modified)
+ {
+ pthread_mutex_unlock (& mutex);
+ return;
+ }
+
+ char * path = g_strdup_printf ("%s/config", get_path (AUD_PATH_USER_DIR));
+ char * data = g_key_file_to_data (keyfile, NULL, NULL);
+
+ GError * error = NULL;
+ if (! g_file_set_contents (path, data, -1, & error))
+ {
+ fprintf (stderr, "Error saving config: %s\n", error->message);
+ g_error_free (error);
+ }
+
+ g_free (data);
+ g_free (path);
+
+ modified = FALSE;
+ pthread_mutex_unlock (& mutex);
+}
+
+void config_cleanup (void)
+{
+ g_return_if_fail (defaults && keyfile);
+ pthread_mutex_lock (& mutex);
+
+ g_key_file_free (keyfile);
+ keyfile = NULL;
+ g_hash_table_destroy (defaults);
+ defaults = NULL;
+
+ pthread_mutex_unlock (& mutex);
+}
+
+void config_clear_section (const char * section)
+{
+ g_return_if_fail (defaults && keyfile);
+ pthread_mutex_lock (& mutex);
+
+ if (! section)
+ section = DEFAULT_SECTION;
+
+ if (g_key_file_has_group (keyfile, section))
+ {
+ g_key_file_remove_group (keyfile, section, NULL);
+ modified = TRUE;
+ }
+
+ pthread_mutex_unlock (& mutex);
+}
+
+void config_set_defaults (const char * section, const char * const * entries)
+{
+ g_return_if_fail (defaults && keyfile);
+ pthread_mutex_lock (& mutex);
+
+ if (! section)
+ section = DEFAULT_SECTION;
+
+ GHashTable * table = g_hash_table_lookup (defaults, section);
+ if (! table)
+ {
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, str_unref_cb);
+ g_hash_table_replace (defaults, g_strdup (section), table);
+ }
+
+ while (1)
+ {
+ const char * name = * entries ++;
+ const char * value = * entries ++;
+ if (! name || ! value)
+ break;
+
+ g_hash_table_replace (table, g_strdup (name), str_get (value));
+ }
+
+ pthread_mutex_unlock (& mutex);
+}
+
+static const char * get_default (const char * section, const char * name)
+{
+ GHashTable * table = g_hash_table_lookup (defaults, section);
+ const char * def = table ? g_hash_table_lookup (table, name) : NULL;
+ return def ? def : "";
+}
+
+void set_string (const char * section, const char * name, const char * value)
+{
+ g_return_if_fail (defaults && keyfile);
+ g_return_if_fail (name && value);
+ pthread_mutex_lock (& mutex);
+
+ if (! section)
+ section = DEFAULT_SECTION;
+
+ const char * def = get_default (section, name);
+ bool_t changed = FALSE;
+
+ if (! strcmp (value, def))
+ {
+ if (g_key_file_has_key (keyfile, section, name, NULL))
+ {
+ g_key_file_remove_key (keyfile, section, name, NULL);
+ changed = TRUE;
+ }
+ }
+ else
+ {
+ char * old = g_key_file_has_key (keyfile, section, name, NULL) ?
+ g_key_file_get_value (keyfile, section, name, NULL) : NULL;
+
+ if (! old || strcmp (value, old))
+ {
+ g_key_file_set_value (keyfile, section, name, value);
+ changed = TRUE;
+ }
+
+ g_free (old);
+ }
+
+ if (changed)
+ {
+ modified = TRUE;
+
+ if (! strcmp (section, DEFAULT_SECTION))
+ {
+ char * event = g_strdup_printf ("set %s", name);
+ event_queue (event, NULL);
+ g_free (event);
+ }
+ }
+
+ pthread_mutex_unlock (& mutex);
+}
+
+char * get_string (const char * section, const char * name)
+{
+ g_return_val_if_fail (defaults && keyfile, g_strdup (""));
+ g_return_val_if_fail (name, g_strdup (""));
+ pthread_mutex_lock (& mutex);
+
+ if (! section)
+ section = DEFAULT_SECTION;
+
+ char * value = g_key_file_has_key (keyfile, section, name, NULL) ?
+ g_key_file_get_value (keyfile, section, name, NULL) : NULL;
+
+ if (! value)
+ value = g_strdup (get_default (section, name));
+
+ pthread_mutex_unlock (& mutex);
+ return value;
+}
+
+void set_bool (const char * section, const char * name, bool_t value)
+{
+ set_string (section, name, value ? "TRUE" : "FALSE");
+}
+
+bool_t get_bool (const char * section, const char * name)
+{
+ char * string = get_string (section, name);
+ bool_t value = ! strcmp (string, "TRUE");
+ g_free (string);
+ return value;
+}
+
+void set_int (const char * section, const char * name, int value)
+{
+ char * string = int_to_string (value);
+ g_return_if_fail (string);
+ set_string (section, name, string);
+ g_free (string);
+}
+
+int get_int (const char * section, const char * name)
+{
+ int value = 0;
+ char * string = get_string (section, name);
+ string_to_int (string, & value);
+ g_free (string);
+ return value;
+}
+
+void set_double (const char * section, const char * name, double value)
+{
+ char * string = double_to_string (value);
+ g_return_if_fail (string);
+ set_string (section, name, string);
+ g_free (string);
+}
+
+double get_double (const char * section, const char * name)
+{
+ double value = 0;
+ char * string = get_string (section, name);
+ string_to_double (string, & value);
+ g_free (string);
+ return value;
+}
diff --git a/src/audacious/configdb-api.h b/src/audacious/configdb-api.h
deleted file mode 100644
index 001cefb..0000000
--- a/src/audacious/configdb-api.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * playlist-api.h
- * Copyright 2010 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-/* Do not include this file directly; use playlist.h instead. */
-
-/* CAUTION: These functions are not thread safe. */
-
-AUD_FUNC0 (mcs_handle_t *, cfg_db_open)
-AUD_FUNC1 (void, cfg_db_close, mcs_handle_t *, db)
-
-AUD_FUNC4 (gboolean, cfg_db_get_string, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gchar * *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_int, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gint *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_bool, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gboolean *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_float, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gfloat *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_double, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gdouble *, value)
-
-AUD_FUNC4 (void, cfg_db_set_string, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, const gchar *, value)
-AUD_FUNC4 (void, cfg_db_set_int, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gint, value)
-AUD_FUNC4 (void, cfg_db_set_bool, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gboolean, value)
-AUD_FUNC4 (void, cfg_db_set_float, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gfloat, value)
-AUD_FUNC4 (void, cfg_db_set_double, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gdouble, value)
-
-AUD_FUNC3 (void, cfg_db_unset_key, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key)
diff --git a/src/audacious/configdb.c b/src/audacious/configdb.c
deleted file mode 100644
index dd9e68d..0000000
--- a/src/audacious/configdb.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "configdb.h"
-#include <libmcs/mcs.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#define RCFILE_DEFAULT_SECTION_NAME "audacious"
-
-static gboolean mcs_initted = FALSE;
-static mcs_handle_t * config_handle = NULL;
-static gint config_refcount = 0;
-
-/**
- * Opens the configuration database.
- *
- * @return A configuration database handle pointer.
- */
-mcs_handle_t *
-cfg_db_open()
-{
- if (!mcs_initted)
- {
- mcs_init();
- mcs_initted = TRUE;
- }
-
- if (! config_handle)
- {
- config_handle = mcs_new (RCFILE_DEFAULT_SECTION_NAME);
-
- if (! config_handle)
- {
- fprintf (stderr, "MCS failure. Configuration will not be saved.\n");
- return NULL;
- }
- }
-
- config_refcount ++;
- return config_handle;
-}
-
-/**
- * Closes the configuration database.
- * @param[in] db A configuration database handle pointer.
- */
-void cfg_db_close (mcs_handle_t * handle)
-{
- g_return_if_fail (handle && handle == config_handle);
- g_return_if_fail (config_refcount > 0);
- config_refcount --;
-}
-
-void cfg_db_flush (void)
-{
- if (! config_handle)
- return; /* nothing to do */
-
- g_return_if_fail (! config_refcount);
- mcs_destroy (config_handle);
- config_handle = NULL;
-}
-
-/**
- * Fetches a string from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_string(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gchar ** value)
-{
- g_return_val_if_fail (db && db == config_handle, FALSE);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- if (! mcs_get_string (db, section, key, value))
- return FALSE;
-
- /* Prior to 2.3, NULL values were saved as "(null)". -jlindgren */
- if (! strcmp (* value, "(null)"))
- {
- * value = NULL;
- return FALSE;
- }
-
- return TRUE;
-}
-
-/**
- * Fetches a integer value from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_int(mcs_handle_t * db,
- const gchar * section, const gchar * key, gint * value)
-{
- g_return_val_if_fail (db && db == config_handle, FALSE);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- return mcs_get_int(db, section, key, value);
-}
-
-/**
- * Fetches a boolean value from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_bool(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gboolean * value)
-{
- g_return_val_if_fail (db && db == config_handle, FALSE);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- return mcs_get_bool(db, section, key, value);
-}
-
-/**
- * Fetches a single precision floating point value from the
- * configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_float(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gfloat * value)
-{
- g_return_val_if_fail (db && db == config_handle, FALSE);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- return mcs_get_float(db, section, key, value);
-}
-
-/**
- * Fetches a double precision floating point value from the
- * configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_double(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gdouble * value)
-{
- g_return_val_if_fail (db && db == config_handle, FALSE);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- return mcs_get_double(db, section, key, value);
-}
-
-/**
- * Sets string value in given key of given section in
- * the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_string(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- const gchar * value)
-{
- g_return_if_fail (db && db == config_handle);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- if (value == NULL)
- mcs_unset_key (db, section, key);
- else
- mcs_set_string (db, section, key, value);
-}
-
-/**
- * Sets integer value in given key of given section in
- * the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_int(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gint value)
-{
- g_return_if_fail (db && db == config_handle);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- mcs_set_int(db, section, key, value);
-}
-
-/**
- * Sets boolean value in given key of given section in
- * the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_bool(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gboolean value)
-{
- g_return_if_fail (db && db == config_handle);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- mcs_set_bool(db, section, key, value);
-}
-
-/**
- * Sets single precision floating point value in given key
- * of given section in the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_float(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gfloat value)
-{
- g_return_if_fail (db && db == config_handle);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- mcs_set_float(db, section, key, value);
-}
-
-/**
- * Sets double precision floating point value in given key
- * of given section in the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_double(mcs_handle_t * db,
- const gchar * section,
- const gchar * key,
- gdouble value)
-{
- g_return_if_fail (db && db == config_handle);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- mcs_set_double(db, section, key, value);
-}
-
-/**
- * Removes a value from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to set.
- */
-void
-cfg_db_unset_key(mcs_handle_t * db,
- const gchar * section,
- const gchar * key)
-{
- g_return_if_fail (db && db == config_handle);
- g_return_if_fail(key != NULL);
-
- if (!section)
- section = RCFILE_DEFAULT_SECTION_NAME;
-
- mcs_unset_key(db, section, key);
-}
diff --git a/src/audacious/configdb.h b/src/audacious/configdb.h
deleted file mode 100644
index bba3ee4..0000000
--- a/src/audacious/configdb.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * configdb.h
- * Copyright 2010 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_CONFIGDB_H
-#define AUDACIOUS_CONFIGDB_H
-
-#include <glib.h>
-#include <libmcs/mcs.h>
-#include <audacious/api.h>
-
-#define AUD_API_NAME ConfigDBAPI
-#define AUD_API_SYMBOL configdb_api
-
-#ifdef _AUDACIOUS_CORE
-
-#include "api-local-begin.h"
-#include "configdb-api.h"
-#include "api-local-end.h"
-
-void cfg_db_flush (void);
-
-#else
-
-#include <audacious/api-define-begin.h>
-#include <audacious/configdb-api.h>
-#include <audacious/api-define-end.h>
-
-#include <audacious/api-alias-begin.h>
-#include <audacious/configdb-api.h>
-#include <audacious/api-alias-end.h>
-
-#endif
-
-#undef AUD_API_NAME
-#undef AUD_API_SYMBOL
-
-#endif
-
-#ifdef AUD_API_DECLARE
-
-#define AUD_API_NAME ConfigDBAPI
-#define AUD_API_SYMBOL configdb_api
-
-#include "api-define-begin.h"
-#include "configdb-api.h"
-#include "api-define-end.h"
-
-#include "api-declare-begin.h"
-#include "configdb-api.h"
-#include "api-declare-end.h"
-
-#undef AUD_API_NAME
-#undef AUD_API_SYMBOL
-
-#endif
diff --git a/src/audacious/credits.c b/src/audacious/credits.c
index 436c1d0..654285e 100644
--- a/src/audacious/credits.c
+++ b/src/audacious/credits.c
@@ -23,15 +23,17 @@
* Audacious or using our public API to be a derived work.
*/
+#include <stddef.h>
+
#include "config.h"
#include "i18n.h"
#include "misc.h"
-static const gchar *audacious_brief =
+static const char * audacious_brief =
"<big><b>Audacious %s</b></big>\n"
- "Copyright (C) 2005-2011 Audacious Team";
+ "Copyright (C) 2005-2012 Audacious Team";
-static const gchar *credit_text[] = {
+static const char * const credit_text[] = {
N_("Core developers:"),
"Christian Birchinger",
"Michael Färber",
@@ -75,13 +77,14 @@ static const gchar *credit_text[] = {
"William Pitcock",
"Derek Pomery",
"Jonathan Schleifer",
- "Andrew O. Shadoura",
+ "Andrew Shadura",
"Tony Vroon",
"Yoshiki Yazawa",
NULL,
N_("Patch authors:"),
"Chris Arepantis",
+ "Anatoly Arzhnikov",
"Alexis Ballier",
"Eric Barch",
"Carlo Bramini",
@@ -93,6 +96,7 @@ static const gchar *credit_text[] = {
"Mike Frysinger",
"Mark Glines",
"Hans de Goede",
+ "David Guglielmi",
"Michael Hanselmann",
"Juho Heikkinen",
"Joseph Jezak",
@@ -100,6 +104,7 @@ static const gchar *credit_text[] = {
"Jussi Judin",
"Teru Kamogashira",
"Chris Kehler",
+ "Thomas Lange",
"Mark Loeser",
"Alex Maclean",
"Mikael Magnusson",
@@ -176,7 +181,10 @@ static const gchar *credit_text[] = {
NULL
};
-static const gchar *translators_text[] = {
+static const char * const translators_text[] = {
+ N_("Argentinian Spanish:"),
+ "Adrián Ramirez Escalante",
+ NULL,
N_("Belarusian:"),
"Darafei Praliaskouski",
NULL,
@@ -185,6 +193,7 @@ static const gchar *translators_text[] = {
NULL,
N_("Brazilian Portuguese:"),
"Fábio Antunes",
+ "Karen Eliot",
"Philipi Pinto",
NULL,
N_("Breton:"),
@@ -195,9 +204,10 @@ static const gchar *translators_text[] = {
NULL,
N_("Catalan:"),
"Ernest Adrogué",
+ "Jordi Amenós",
NULL,
N_("Chinese:"),
- "Chi Chiu Tsu",
+ "Tse Chih Chiu",
NULL,
N_("Croatian:"),
"Marin Glibic",
@@ -213,13 +223,15 @@ static const gchar *translators_text[] = {
"Ivar Smolin",
NULL,
N_("Finnish:"),
- "Pauli Virtanen",
"Matti Hämäläinen",
+ "Elias Julkunen",
+ "Pauli Virtanen",
NULL,
N_("French:"),
"Adam Cecile",
"Stanislas Zeller",
"Stany Henry",
+ "Jean-Alexandre Anglès d'Auriac",
NULL,
N_("German:"),
"Matthias Debus",
@@ -245,6 +257,7 @@ static const gchar *translators_text[] = {
NULL,
N_("Italian:"),
"Alessio D'Ascanio",
+ "Jacopo Lorenzetti",
"Diego Pettenò",
NULL,
N_("Japanese:"),
@@ -259,13 +272,19 @@ static const gchar *translators_text[] = {
N_("Lithuanian:"),
"Paul Daukas",
"Rimas Kudelis",
+ "Algimantas MargeviÄius",
NULL,
N_("Macedonian:"),
"Arangel Angov",
NULL,
+ N_("Mexican Spanish:"),
+ "Jorge A. GarcÃa Sosa",
+ NULL,
N_("Polish:"),
- "Wojciech Myrda",
+ "Artur Czechowski",
"MichaÅ Kiedrowicz",
+ "Wojciech Myrda",
+ "Piotr SokóÅ",
"Szymon Weihs",
NULL,
N_("Portuguese:"),
@@ -283,6 +302,7 @@ static const gchar *translators_text[] = {
"Strahinja KustudiÄ",
NULL,
N_("Serbian (Cyrillic):"),
+ "ÐиÑоÑлав ÐиколиÑ",
"Strahinja KustudiÄ",
NULL,
N_("Simplified Chinese:"),
@@ -290,13 +310,16 @@ static const gchar *translators_text[] = {
NULL,
N_("Slovak:"),
"Andrej Herceg",
+ "Tomáš Vadina",
NULL,
N_("Spanish:"),
+ "Jordi Amenós",
+ "Jorge Andrés",
"Cosme DomÃnguez DÃaz",
+ "Adrián Ramirez Escalante",
"Jeki Sinneo Leinos",
"Francisco Javier F. Serrador",
"Gustavo D. Vranjes",
- "Jorge Andrés",
NULL,
N_("Swedish:"),
"Martin Persenius",
@@ -304,6 +327,7 @@ static const gchar *translators_text[] = {
N_("Traditional Chinese:"),
"Cheng-Wei Chien",
"Sylecn Song",
+ "Ruei-Yuan Lu",
"Yang Zhang",
NULL,
N_("Turkish:"),
@@ -311,8 +335,13 @@ static const gchar *translators_text[] = {
"Eren Turkay",
NULL,
N_("Ukrainian:"),
+ "Kostyantyn Fedenko",
+ "Rax Garfield",
"Mykola Lynnyk",
NULL,
+ N_("Vietnamese:"),
+ "Lê Trưá»ng An",
+ NULL,
N_("Welsh:"),
"Edward Brocklesby",
"William Pitcock",
@@ -321,8 +350,8 @@ static const gchar *translators_text[] = {
NULL
};
-void
-get_audacious_credits(const gchar ** brief, const gchar *** credits, const gchar ***translators)
+void get_audacious_credits (const char * * brief, const char * const * *
+ credits, const char * const * * translators)
{
if (brief != NULL)
*brief = audacious_brief;
diff --git a/src/audacious/dbus-service.h b/src/audacious/dbus-service.h
index 31c947d..4d17333 100644
--- a/src/audacious/dbus-service.h
+++ b/src/audacious/dbus-service.h
@@ -22,6 +22,7 @@
#define AUDACIOUS_DBUS_SERVICE_H
#include <glib.h>
+#include <libaudcore/core.h>
#define DBUS_API_SUBJECT_TO_CHANGE
#include <dbus/dbus-glib.h>
@@ -35,10 +36,6 @@ typedef struct {
GObjectClass parent_class;
} RemoteObjectClass, MprisRootClass, MprisPlayerClass, MprisTrackListClass;
-void init_dbus();
-void free_dbus();
-DBusGProxy *audacious_get_dbus_proxy();
-
/* MPRIS API */
// Capabilities
enum {
@@ -54,36 +51,37 @@ enum {
// Status
typedef enum {
- MPRIS_STATUS_PLAY = 0,
- MPRIS_STATUS_PAUSE,
- MPRIS_STATUS_STOP
+ MPRIS_STATUS_INVALID = -1,
+ MPRIS_STATUS_PLAY = 0,
+ MPRIS_STATUS_PAUSE = 1,
+ MPRIS_STATUS_STOP = 2,
} PlaybackStatus;
extern MprisPlayer * mpris;
// MPRIS /
-gboolean mpris_root_identity(MprisRoot *obj, gchar **identity,
+bool_t mpris_root_identity(MprisRoot *obj, char **identity,
GError **error);
-gboolean mpris_root_quit(MprisPlayer *obj, GError **error);
+bool_t mpris_root_quit(MprisPlayer *obj, GError **error);
// MPRIS /Player
-gboolean mpris_player_next(MprisPlayer *obj, GError **error);
-gboolean mpris_player_prev(MprisPlayer *obj, GError **error);
-gboolean mpris_player_pause(MprisPlayer *obj, GError **error);
-gboolean mpris_player_stop(MprisPlayer *obj, GError **error);
-gboolean mpris_player_play(MprisPlayer *obj, GError **error);
-gboolean mpris_player_repeat(MprisPlayer *obj, gboolean rpt, GError **error);
-gboolean mpris_player_get_status(MprisPlayer *obj, GValueArray **status,
+bool_t mpris_player_next(MprisPlayer *obj, GError **error);
+bool_t mpris_player_prev(MprisPlayer *obj, GError **error);
+bool_t mpris_player_pause(MprisPlayer *obj, GError **error);
+bool_t mpris_player_stop(MprisPlayer *obj, GError **error);
+bool_t mpris_player_play(MprisPlayer *obj, GError **error);
+bool_t mpris_player_repeat(MprisPlayer *obj, bool_t rpt, GError **error);
+bool_t mpris_player_get_status(MprisPlayer *obj, GValueArray **status,
GError **error);
-gboolean mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata,
+bool_t mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata,
GError **error);
-gboolean mpris_player_get_caps(MprisPlayer *obj, gint *capabilities,
+bool_t mpris_player_get_caps(MprisPlayer *obj, int *capabilities,
GError **error);
-gboolean mpris_player_volume_set(MprisPlayer *obj, gint vol, GError **error);
-gboolean mpris_player_volume_get(MprisPlayer *obj, gint *vol,
+bool_t mpris_player_volume_set(MprisPlayer *obj, int vol, GError **error);
+bool_t mpris_player_volume_get(MprisPlayer *obj, int *vol,
GError **error);
-gboolean mpris_player_position_set(MprisPlayer *obj, gint pos, GError **error);
-gboolean mpris_player_position_get(MprisPlayer *obj, gint *pos,
+bool_t mpris_player_position_set(MprisPlayer *obj, int pos, GError **error);
+bool_t mpris_player_position_get(MprisPlayer *obj, int *pos,
GError **error);
enum {
TRACK_CHANGE_SIG,
@@ -97,139 +95,143 @@ enum {
LAST_TRACKLIST_SIG
};
-gboolean mpris_emit_track_change(MprisPlayer *obj);
-gboolean mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status);
-gboolean mpris_emit_caps_change(MprisPlayer *obj);
-gboolean mpris_emit_tracklist_change(MprisTrackList *obj, gint playlist);
+bool_t mpris_emit_track_change(MprisPlayer *obj);
+bool_t mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status);
+bool_t mpris_emit_caps_change(MprisPlayer *obj);
+bool_t mpris_emit_tracklist_change(MprisTrackList *obj, int playlist);
// MPRIS /TrackList
-gboolean mpris_tracklist_get_metadata(MprisTrackList *obj, gint pos,
+bool_t mpris_tracklist_get_metadata(MprisTrackList *obj, int pos,
GHashTable **metadata, GError **error);
-gboolean mpris_tracklist_get_current_track(MprisTrackList *obj, gint *pos,
+bool_t mpris_tracklist_get_current_track(MprisTrackList *obj, int *pos,
GError **error);
-gboolean mpris_tracklist_get_length(MprisTrackList *obj, gint *length,
+bool_t mpris_tracklist_get_length(MprisTrackList *obj, int *length,
GError **error);
-gboolean mpris_tracklist_add_track(MprisTrackList *obj, gchar *uri,
- gboolean play, GError **error);
-gboolean mpris_tracklist_del_track(MprisTrackList *obj, gint pos,
+bool_t mpris_tracklist_add_track(MprisTrackList *obj, char *uri,
+ bool_t play, GError **error);
+bool_t mpris_tracklist_del_track(MprisTrackList *obj, int pos,
GError **error);
-gboolean mpris_tracklist_loop(MprisTrackList *obj, gboolean loop,
+bool_t mpris_tracklist_loop(MprisTrackList *obj, bool_t loop,
GError **error);
-gboolean mpris_tracklist_random(MprisTrackList *obj, gboolean random,
+bool_t mpris_tracklist_random(MprisTrackList *obj, bool_t random,
GError **error);
/* Legacy API */
// Audacious General Information
-gboolean audacious_rc_version(RemoteObject *obj, gchar **version, GError **error);
-gboolean audacious_rc_quit(RemoteObject *obj, GError **error);
-gboolean audacious_rc_eject(RemoteObject *obj, GError **error);
-gboolean audacious_rc_main_win_visible(RemoteObject *obj,
- gboolean *is_main_win, GError **error);
-gboolean audacious_rc_show_main_win(RemoteObject *obj, gboolean show,
+bool_t audacious_rc_version(RemoteObject *obj, char **version, GError **error);
+bool_t audacious_rc_quit(RemoteObject *obj, GError **error);
+bool_t audacious_rc_eject(RemoteObject *obj, GError **error);
+bool_t audacious_rc_main_win_visible(RemoteObject *obj,
+ bool_t *is_main_win, GError **error);
+bool_t audacious_rc_show_main_win(RemoteObject *obj, bool_t show,
GError **error);
-gboolean audacious_rc_equalizer_visible(RemoteObject *obj, gboolean *is_eq_win,
+bool_t audacious_rc_equalizer_visible(RemoteObject *obj, bool_t *is_eq_win,
GError **error);
-gboolean audacious_rc_show_equalizer(RemoteObject *obj, gboolean show,
+bool_t audacious_rc_show_equalizer(RemoteObject *obj, bool_t show,
GError **error);
-gboolean audacious_rc_playlist_visible(RemoteObject *obj,
- gboolean *is_pl_win,
+bool_t audacious_rc_playlist_visible(RemoteObject *obj,
+ bool_t *is_pl_win,
GError **error);
-gboolean audacious_rc_show_playlist(RemoteObject *obj, gboolean show,
+bool_t audacious_rc_show_playlist(RemoteObject *obj, bool_t show,
GError **error);
-gboolean audacious_rc_get_tuple_fields(RemoteObject *obj, gchar ***fields,
+bool_t audacious_rc_get_tuple_fields(RemoteObject *obj, char ***fields,
GError **error);
// Playback Information/Manipulation
-gboolean audacious_rc_play(RemoteObject *obj, GError **error);
-gboolean audacious_rc_pause(RemoteObject *obj, GError **error);
-gboolean audacious_rc_stop(RemoteObject *obj, GError **error);
-gboolean audacious_rc_playing(RemoteObject *obj, gboolean *is_playing,
+bool_t audacious_rc_play(RemoteObject *obj, GError **error);
+bool_t audacious_rc_pause(RemoteObject *obj, GError **error);
+bool_t audacious_rc_stop(RemoteObject *obj, GError **error);
+bool_t audacious_rc_playing(RemoteObject *obj, bool_t *is_playing,
GError **error);
-gboolean audacious_rc_paused(RemoteObject *obj, gboolean *is_paused,
+bool_t audacious_rc_paused(RemoteObject *obj, bool_t *is_paused,
GError **error);
-gboolean audacious_rc_stopped(RemoteObject *obj, gboolean *is_stopped,
+bool_t audacious_rc_stopped(RemoteObject *obj, bool_t *is_stopped,
GError **error);
-gboolean audacious_rc_status(RemoteObject *obj, gchar **status,
+bool_t audacious_rc_status(RemoteObject *obj, char **status,
GError **error);
-gboolean audacious_rc_info(RemoteObject *obj, gint *rate, gint *freq,
- gint *nch, GError **error);
-gboolean audacious_rc_time(RemoteObject *obj, gint *time, GError **error);
-gboolean audacious_rc_seek(RemoteObject *obj, guint pos, GError **error);
-gboolean audacious_rc_volume(RemoteObject *obj, gint *vl, gint *vr,
+bool_t audacious_rc_info(RemoteObject *obj, int *rate, int *freq,
+ int *nch, GError **error);
+bool_t audacious_rc_time(RemoteObject *obj, int *time, GError **error);
+bool_t audacious_rc_seek(RemoteObject *obj, unsigned int pos, GError **error);
+bool_t audacious_rc_volume(RemoteObject *obj, int *vl, int *vr,
GError **error);
-gboolean audacious_rc_set_volume(RemoteObject *obj, gint vl, gint vr,
+bool_t audacious_rc_set_volume(RemoteObject *obj, int vl, int vr,
GError **error);
-gboolean audacious_rc_balance(RemoteObject *obj, gint *balance,
+bool_t audacious_rc_balance(RemoteObject *obj, int *balance,
GError **error);
// Playlist Information/Manipulation
-gboolean audacious_rc_position(RemoteObject *obj, int *pos, GError **error);
-gboolean audacious_rc_advance(RemoteObject *obj, GError **error);
-gboolean audacious_rc_reverse(RemoteObject *obj, GError **error);
-gboolean audacious_rc_length(RemoteObject *obj, int *length,
+bool_t audacious_rc_position(RemoteObject *obj, int *pos, GError **error);
+bool_t audacious_rc_advance(RemoteObject *obj, GError **error);
+bool_t audacious_rc_reverse(RemoteObject *obj, GError **error);
+bool_t audacious_rc_length(RemoteObject *obj, int *length,
GError **error);
-gboolean audacious_rc_song_title(RemoteObject *obj, guint pos,
- gchar **title, GError **error);
-gboolean audacious_rc_song_filename(RemoteObject *obj, guint pos,
- gchar **filename, GError **error);
-gboolean audacious_rc_song_length(RemoteObject *obj, guint pos, int *length,
+bool_t audacious_rc_song_title(RemoteObject *obj, unsigned int pos,
+ char **title, GError **error);
+bool_t audacious_rc_song_filename(RemoteObject *obj, unsigned int pos,
+ char **filename, GError **error);
+bool_t audacious_rc_song_length(RemoteObject *obj, unsigned int pos, int *length,
GError **error);
-gboolean audacious_rc_song_frames(RemoteObject *obj, guint pos, int *length,
+bool_t audacious_rc_song_frames(RemoteObject *obj, unsigned int pos, int *length,
GError **error);
-gboolean audacious_rc_song_tuple(RemoteObject *obj, guint pos, gchar *tuple,
+bool_t audacious_rc_song_tuple(RemoteObject *obj, unsigned int pos, char *tuple,
GValue *value, GError **error);
-gboolean audacious_rc_jump(RemoteObject *obj, guint pos, GError **error);
-gboolean audacious_rc_add(RemoteObject *obj, gchar *file, GError **error);
-gboolean audacious_rc_add_url(RemoteObject *obj, gchar *url,
+bool_t audacious_rc_jump(RemoteObject *obj, unsigned int pos, GError **error);
+bool_t audacious_rc_add(RemoteObject *obj, char *file, GError **error);
+bool_t audacious_rc_add_url(RemoteObject *obj, char *url,
GError **error);
-gboolean audacious_rc_add_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_add_list (RemoteObject * obj, char * * filenames,
GError * * error);
-gboolean audacious_rc_open_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_open_list (RemoteObject * obj, char * * filenames,
GError * * error);
-gboolean audacious_rc_open_list_to_temp (RemoteObject * obj, gchar * *
+bool_t audacious_rc_open_list_to_temp (RemoteObject * obj, char * *
filenames, GError * * error);
-gboolean audacious_rc_delete(RemoteObject *obj, guint pos, GError **error);
-gboolean audacious_rc_clear(RemoteObject *obj, GError **error);
-gboolean audacious_rc_auto_advance(RemoteObject *obj, gboolean *is_advance,
+bool_t audacious_rc_delete(RemoteObject *obj, unsigned int pos, GError **error);
+bool_t audacious_rc_clear(RemoteObject *obj, GError **error);
+bool_t audacious_rc_auto_advance(RemoteObject *obj, bool_t *is_advance,
GError **error);
-gboolean audacious_rc_toggle_auto_advance(RemoteObject *obj, GError **error);
-gboolean audacious_rc_repeat(RemoteObject *obj, gboolean *is_repeat,
+bool_t audacious_rc_toggle_auto_advance(RemoteObject *obj, GError **error);
+bool_t audacious_rc_repeat(RemoteObject *obj, bool_t *is_repeat,
GError **error);
-gboolean audacious_rc_toggle_repeat(RemoteObject *obj, GError **error);
-gboolean audacious_rc_shuffle(RemoteObject *obj, gboolean *is_shuffle,
+bool_t audacious_rc_toggle_repeat(RemoteObject *obj, GError **error);
+bool_t audacious_rc_shuffle(RemoteObject *obj, bool_t *is_shuffle,
GError **error);
-gboolean audacious_rc_toggle_shuffle(RemoteObject *obj, GError **error);
+bool_t audacious_rc_toggle_shuffle(RemoteObject *obj, GError **error);
/* new */
-gboolean audacious_rc_show_prefs_box(RemoteObject *obj, gboolean show, GError **error);
-gboolean audacious_rc_show_about_box(RemoteObject *obj, gboolean show, GError **error);
-gboolean audacious_rc_show_jtf_box(RemoteObject *obj, gboolean show, GError **error);
-gboolean audacious_rc_show_filebrowser(RemoteObject *obj, gboolean show, GError **error); //new Nov 8
-gboolean audacious_rc_play_pause(RemoteObject *obj, GError **error);
-gboolean audacious_rc_activate(RemoteObject *obj, GError **error);
-gboolean audacious_rc_queue_get_list_pos(RemoteObject *obj, gint qpos, gint *pos, GError **error);
-gboolean audacious_rc_queue_get_queue_pos(RemoteObject *obj, gint pos, gint *qpos, GError **error);
-gboolean audacious_rc_get_info(RemoteObject *obj, gint *rate, gint *freq, gint *nch, GError **error);
-gboolean audacious_rc_toggle_aot(RemoteObject *obj, gboolean ontop, GError **error);
-gboolean audacious_rc_get_playqueue_length(RemoteObject *obj, gint *length, GError **error);
-gboolean audacious_rc_playqueue_add(RemoteObject *obj, gint pos, GError **error);
-gboolean audacious_rc_playqueue_remove(RemoteObject *obj, gint pos, GError **error);
-gboolean audacious_rc_playqueue_clear(RemoteObject *obj, GError **error);
-gboolean audacious_rc_playqueue_is_queued(RemoteObject *obj, gint pos, gboolean *is_queued, GError **error);
-gboolean audacious_rc_playlist_ins_url_string(RemoteObject *obj, gchar *url, gint pos, GError **error);
-gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error);
-gboolean audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error);
+bool_t audacious_rc_show_prefs_box(RemoteObject *obj, bool_t show, GError **error);
+bool_t audacious_rc_show_about_box(RemoteObject *obj, bool_t show, GError **error);
+bool_t audacious_rc_show_jtf_box(RemoteObject *obj, bool_t show, GError **error);
+bool_t audacious_rc_show_filebrowser(RemoteObject *obj, bool_t show, GError **error); //new Nov 8
+bool_t audacious_rc_play_pause(RemoteObject *obj, GError **error);
+bool_t audacious_rc_activate(RemoteObject *obj, GError **error);
+bool_t audacious_rc_queue_get_list_pos(RemoteObject *obj, int qpos, int *pos, GError **error);
+bool_t audacious_rc_queue_get_queue_pos(RemoteObject *obj, int pos, int *qpos, GError **error);
+bool_t audacious_rc_get_info(RemoteObject *obj, int *rate, int *freq, int *nch, GError **error);
+bool_t audacious_rc_toggle_aot(RemoteObject *obj, bool_t ontop, GError **error);
+bool_t audacious_rc_get_playqueue_length(RemoteObject *obj, int *length, GError **error);
+bool_t audacious_rc_playqueue_add(RemoteObject *obj, int pos, GError **error);
+bool_t audacious_rc_playqueue_remove(RemoteObject *obj, int pos, GError **error);
+bool_t audacious_rc_playqueue_clear(RemoteObject *obj, GError **error);
+bool_t audacious_rc_playqueue_is_queued(RemoteObject *obj, int pos, bool_t *is_queued, GError **error);
+bool_t audacious_rc_playlist_ins_url_string(RemoteObject *obj, char *url, int pos, GError **error);
+bool_t audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, char *url, GError **error);
+bool_t audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error);
/* new on nov 7 */
-gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error);
-gboolean audacious_rc_get_eq_preamp(RemoteObject *obj, gdouble *preamp, GError **error);
-gboolean audacious_rc_get_eq_band(RemoteObject *obj, gint band, gdouble *value, GError **error);
-gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error);
-gboolean audacious_rc_set_eq_preamp(RemoteObject *obj, gdouble preamp, GError **error);
-gboolean audacious_rc_set_eq_band(RemoteObject *obj, gint band, gdouble value, GError **error);
-gboolean audacious_rc_equalizer_activate(RemoteObject *obj, gboolean active, GError **error);
+bool_t audacious_rc_get_eq(RemoteObject *obj, double *preamp, GArray **bands, GError **error);
+bool_t audacious_rc_get_eq_preamp(RemoteObject *obj, double *preamp, GError **error);
+bool_t audacious_rc_get_eq_band(RemoteObject *obj, int band, double *value, GError **error);
+bool_t audacious_rc_set_eq(RemoteObject *obj, double preamp, GArray *bands, GError **error);
+bool_t audacious_rc_set_eq_preamp(RemoteObject *obj, double preamp, GError **error);
+bool_t audacious_rc_set_eq_band(RemoteObject *obj, int band, double value, GError **error);
+bool_t audacious_rc_equalizer_activate(RemoteObject *obj, bool_t active, GError **error);
/* new in 2.4 */
-gboolean audacious_rc_get_active_playlist_name(RemoteObject *obj, gchar **title, GError **error);
+bool_t audacious_rc_get_active_playlist_name(RemoteObject *obj, char **title, GError **error);
+
+/* new in 3.1 */
+bool_t audacious_rc_stop_after (RemoteObject * obj, bool_t * is_stopping, GError * * error);
+bool_t audacious_rc_toggle_stop_after (RemoteObject * obj, GError * * error);
#endif /* AUDACIOUS_DBUS_SERVICE_H */
diff --git a/src/audacious/dbus.c b/src/audacious/dbus.c
index a4549d7..5b13c99 100644
--- a/src/audacious/dbus.c
+++ b/src/audacious/dbus.c
@@ -1,7 +1,7 @@
/*
* Audacious: A cross-platform multimedia player
* Copyright (c) 2007 Ben Tucker
- * Copyright 2009-2010 Audacious development team
+ * Copyright 2009-2011 Audacious development team
*
* 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
@@ -22,6 +22,8 @@
#include "config.h"
#include <glib.h>
+#include <string.h>
+
#include <dbus/dbus.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-bindings.h>
@@ -31,69 +33,21 @@
#include "dbus-server-bindings.h"
#include <math.h>
-#include <libaudcore/eventqueue.h>
-#include "audconfig.h"
+#include <libaudcore/hook.h>
+
#include "debug.h"
#include "drct.h"
-#include "equalizer.h"
-#include "playback.h"
#include "playlist.h"
#include "interface.h"
-
-struct StatusRequest
-{
- gboolean playing, paused;
- gint time, length;
- gint bitrate, samplerate, channels;
-};
-
-struct PositionRequest
-{
- gint playlist; /* -1 = active, -2 = playing */
- gint entry; /* -1 = current */
- gint entry_count, queue_count;
-};
-
-struct InfoRequest
-{
- gint playlist; /* -1 = active, -2 = playing */
- gint entry; /* -1 = current */
- gchar *filename, *title, *pltitle;
- gint length;
-};
-
-struct FieldRequest
-{
- gint playlist; /* -1 = active, -2 = playing */
- gint entry; /* -1 = current */
- const gchar *field;
- GValue *value;
-};
-
-struct AddRequest
-{
- gint position; /* -1 = at end */
- gchar *filename;
- gboolean play;
-};
-
-struct MprisMetadataRequest
-{
- gint playlist; /* -1 = active, -2 = playing */
- gint entry; /* -1 = current */
- GHashTable *metadata;
-};
+#include "misc.h"
static DBusGConnection *dbus_conn = NULL;
-static guint signals[LAST_SIG] = { 0 };
-static guint tracklist_signals[LAST_TRACKLIST_SIG] = { 0 };
+static unsigned int signals[LAST_SIG] = { 0 };
+static unsigned int tracklist_signals[LAST_TRACKLIST_SIG] = { 0 };
MprisPlayer * mpris = NULL;
-
-static GThread *main_thread;
-static GMutex *info_mutex;
-static GCond *info_cond;
+MprisTrackList * mpris_tracklist = NULL;
G_DEFINE_TYPE (RemoteObject, audacious_rc, G_TYPE_OBJECT)
G_DEFINE_TYPE (MprisRoot, mpris_root, G_TYPE_OBJECT)
@@ -118,8 +72,13 @@ void mpris_player_class_init(MprisPlayerClass * klass)
signals[TRACK_CHANGE_SIG] =
g_signal_new("track_change",
G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, DBUS_TYPE_G_STRING_VALUE_HASHTABLE);
+
+ GType status_type = dbus_g_type_get_struct ("GValueArray", G_TYPE_INT,
+ G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INVALID);
signals[STATUS_CHANGE_SIG] =
- g_signal_new("status_change", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_VALUE_ARRAY);
+ g_signal_new ("status_change", G_OBJECT_CLASS_TYPE (klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL,
+ g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, status_type);
}
void mpris_tracklist_class_init(MprisTrackListClass * klass)
@@ -132,7 +91,7 @@ void audacious_rc_init(RemoteObject * object)
{
GError *error = NULL;
DBusGProxy *driver_proxy;
- guint request_ret;
+ unsigned int request_ret;
AUDDBG ("Registering remote D-Bus interfaces.\n");
@@ -210,8 +169,6 @@ void mpris_tracklist_init(MprisTrackList * object)
/* XXX / FIXME: Why does this happen? -- ccr */
AUDDBG ("object->proxy == NULL, not adding some signals.\n");
}
-
- hook_associate("playlist update", (HookFunction) mpris_playlist_update_hook, object);
}
void init_dbus()
@@ -219,10 +176,6 @@ void init_dbus()
GError *error = NULL;
DBusConnection *local_conn;
- main_thread = g_thread_self();
- info_mutex = g_mutex_new();
- info_cond = g_cond_new();
-
AUDDBG ("Trying to initialize D-Bus.\n");
dbus_conn = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
if (dbus_conn == NULL)
@@ -236,29 +189,40 @@ void init_dbus()
g_object_new(audacious_rc_get_type(), NULL);
g_object_new(mpris_root_get_type(), NULL);
mpris = g_object_new(mpris_player_get_type(), NULL);
- g_object_new(mpris_tracklist_get_type(), NULL);
+ mpris_tracklist = g_object_new(mpris_tracklist_get_type(), NULL);
local_conn = dbus_g_connection_get_connection(dbus_conn);
dbus_connection_set_exit_on_disconnect(local_conn, FALSE);
+
+ hook_associate ("playlist update",
+ (HookFunction) mpris_playlist_update_hook, mpris_tracklist);
}
-static GValue *tuple_value_to_gvalue(const Tuple * tuple, const gchar * key)
+void cleanup_dbus (void)
+{
+ hook_dissociate ("playlist update", (HookFunction) mpris_playlist_update_hook);
+}
+
+static GValue *tuple_value_to_gvalue(const Tuple * tuple, const char * key)
{
GValue *val;
- TupleValueType type = tuple_get_value_type((Tuple *) tuple, -1, key);
+ TupleValueType type = tuple_get_value_type (tuple, -1, key);
if (type == TUPLE_STRING)
{
val = g_new0(GValue, 1);
g_value_init(val, G_TYPE_STRING);
- g_value_take_string(val, g_strdup(tuple_get_string((Tuple *) tuple, -1, key)));
+ char * str = tuple_get_str (tuple, -1, key);
+ g_value_set_string (val, str);
+ str_unref (str);
return val;
}
else if (type == TUPLE_INT)
{
val = g_new0(GValue, 1);
g_value_init(val, G_TYPE_INT);
- g_value_set_int(val, tuple_get_int((Tuple *) tuple, -1, key));
+ int x = tuple_get_int (tuple, -1, key);
+ g_value_set_int (val, x);
return val;
}
return NULL;
@@ -273,7 +237,7 @@ static GValue *tuple_value_to_gvalue(const Tuple * tuple, const gchar * key)
* @param[in] key key used for inserting into hash table.
*/
static void tuple_insert_to_hash_full(GHashTable * md, const Tuple * tuple,
- const gchar * tuple_key, const gchar *key)
+ const char * tuple_key, const char *key)
{
GValue *value = tuple_value_to_gvalue(tuple, tuple_key);
if (value != NULL)
@@ -281,7 +245,7 @@ static void tuple_insert_to_hash_full(GHashTable * md, const Tuple * tuple,
}
static void tuple_insert_to_hash(GHashTable * md, const Tuple * tuple,
- const gchar *key)
+ const char *key)
{
tuple_insert_to_hash_full(md, tuple, key, key);
}
@@ -292,7 +256,7 @@ static void remove_metadata_value(gpointer value)
g_free((GValue *) value);
}
-static GHashTable *make_mpris_metadata(const gchar * filename, const Tuple * tuple)
+static GHashTable *make_mpris_metadata(const char * filename, const Tuple * tuple)
{
GHashTable *md = NULL;
gpointer value;
@@ -323,368 +287,42 @@ static GHashTable *make_mpris_metadata(const gchar * filename, const Tuple * tup
return md;
}
-static void real_position(gint * playlist, gint * entry)
-{
- if (*playlist == -2)
- *playlist = playlist_get_playing();
- if (*playlist == -1)
- *playlist = playlist_get_active();
- if (*entry == -1)
- *entry = playlist_get_position(*playlist);
-}
-
-static gboolean get_status_cb(void *data)
-{
- struct StatusRequest *request = data;
-
- g_mutex_lock(info_mutex);
-
- memset (request, 0, sizeof (* request));
- request->playing = playback_get_playing();
-
- if (request->playing)
- {
- request->paused = playback_get_paused ();
- request->time = playback_get_time ();
- request->length = playback_get_length ();
- playback_get_info (& request->bitrate, & request->samplerate,
- & request->channels);
- }
-
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
-}
-
-static void get_status(struct StatusRequest *request)
-{
- if (g_thread_self() == main_thread)
- get_status_cb(request);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, get_status_cb, request);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-}
-
-static gboolean get_position_cb(void *data)
-{
- struct PositionRequest *request = data;
-
- g_mutex_lock(info_mutex);
-
- real_position(&request->playlist, &request->entry);
- request->entry_count = playlist_entry_count(request->playlist);
- request->queue_count = playlist_queue_count(request->playlist);
-
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
-}
-
-static void get_position(struct PositionRequest *request)
-{
- if (g_thread_self() == main_thread)
- get_position_cb(request);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, get_position_cb, request);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-}
-
-static gboolean get_info_cb(void *data)
-{
- struct InfoRequest *request = data;
- const gchar *filename, *title, *pltitle;
-
- g_mutex_lock(info_mutex);
-
- real_position(&request->playlist, &request->entry);
- filename = playlist_entry_get_filename(request->playlist, request->entry);
- request->filename = (filename == NULL) ? NULL : g_strdup(filename);
- title = playlist_entry_get_title (request->playlist, request->entry, FALSE);
- request->title = (title == NULL) ? NULL : g_strdup(title);
- request->length = playlist_entry_get_length (request->playlist,
- request->entry, FALSE);
- pltitle = playlist_get_title(request->playlist);
- request->pltitle = (pltitle == NULL) ? NULL : g_strdup(pltitle);
-
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
-}
-
-static void get_info(struct InfoRequest *request)
-{
- if (g_thread_self() == main_thread)
- get_info_cb(request);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, get_info_cb, request);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-}
-
-static gboolean get_field_cb(void *data)
-{
- struct FieldRequest *request = data;
- const Tuple *tuple;
-
- g_mutex_lock(info_mutex);
-
- real_position(&request->playlist, &request->entry);
- tuple = playlist_entry_get_tuple (request->playlist, request->entry, FALSE);
- request->value = (tuple == NULL) ? NULL : tuple_value_to_gvalue(tuple, request->field);
-
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
-}
-
-static void get_field(struct FieldRequest *request)
-{
- if (g_thread_self() == main_thread)
- get_field_cb(request);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, get_field_cb, request);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-}
-
-static gboolean play_cb(void *unused)
-{
- /* Only the active playlist is visible through DBUS interface, so make sure
- * to play from it, not another playlist. --jlindgren */
- if (playlist_get_playing () != playlist_get_active ())
- playlist_set_playing (playlist_get_active ());
-
- drct_play();
- return FALSE;
-}
-
-static gboolean pause_cb(void *unused)
-{
- playback_pause();
- return FALSE;
-}
-
-static gboolean play_pause_cb(void *unused)
-{
- if (playback_get_playing())
- playback_pause();
- else
- playback_play (0, FALSE);
-
- return FALSE;
-}
-
-static gboolean seek_cb(void *data)
-{
- playback_seek (GPOINTER_TO_INT (data));
- return FALSE;
-}
-
-static gboolean stop_cb(void *unused)
-{
- playback_stop();
- return FALSE;
-}
-
-static gboolean prev_cb(void *unused)
-{
- drct_pl_prev();
- return FALSE;
-}
-
-static gboolean next_cb(void *unused)
-{
- drct_pl_next();
- return FALSE;
-}
-
-static gboolean jump_cb(void *data)
-{
- drct_pl_set_pos(GPOINTER_TO_INT(data));
- return FALSE;
-}
-
-static gboolean add_cb(void *data)
-{
- struct AddRequest *request = data;
- gint playlist = playlist_get_active();
-
- if (request->position < 0)
- request->position = playlist_entry_count (playlist);
-
- drct_pl_add (request->filename, request->position);
-
- if (request->play)
- {
- playlist_set_playing(playlist);
- playlist_set_position(playlist, request->position);
- playback_play (0, FALSE);
- }
-
- g_free(request);
- return FALSE;
-}
-
-static gboolean delete_cb(void *data)
-{
- drct_pl_delete(GPOINTER_TO_INT(data));
- return FALSE;
-}
-
-static gboolean clear_cb(void *unused)
-{
- drct_pl_clear();
- return FALSE;
-}
-
-static gboolean add_to_queue_cb(void *data)
-{
- drct_pq_add(GPOINTER_TO_INT(data));
- return FALSE;
-}
-
-static gboolean remove_from_queue_cb(void *data)
+static GValue * get_field (int playlist, int entry, const char * field)
{
- drct_pq_remove(GPOINTER_TO_INT(data));
- return FALSE;
-}
-
-static gboolean clear_queue_cb(void *unused)
-{
- drct_pq_clear();
- return FALSE;
-}
+ Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
+ GValue * value = tuple ? tuple_value_to_gvalue (tuple, field) : NULL;
-static gboolean queue_get_entry_cb(void *data)
-{
- g_mutex_lock(info_mutex);
-
- * (gint *) data = drct_pq_get_entry (* (gint *) data);
+ if (tuple)
+ tuple_unref (tuple);
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
+ return value;
}
-static gint queue_get_entry(gint position)
+static GHashTable * get_mpris_metadata (int playlist, int entry)
{
- if (g_thread_self() == main_thread)
- queue_get_entry_cb(&position);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, queue_get_entry_cb, &position);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-
- return position;
-}
+ char * filename = playlist_entry_get_filename (playlist, entry);
+ Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
-static gboolean queue_find_entry_cb(void *data)
-{
- g_mutex_lock(info_mutex);
+ GHashTable * metadata = NULL;
+ if (filename && tuple)
+ metadata = make_mpris_metadata (filename, tuple);
- *(gint *) data = drct_pq_get_queue_position(*(gint *) data);
+ str_unref (filename);
+ if (tuple)
+ tuple_unref (tuple);
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
-}
-
-static gint queue_find_entry(gint position)
-{
- if (g_thread_self() == main_thread)
- queue_find_entry_cb(&position);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, queue_find_entry_cb, &position);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-
- return position;
-}
-
-gboolean add_to_new_playlist_cb(void *data)
-{
- drct_pl_open_temp (data);
- g_free(data);
- return FALSE;
-}
-
-static gboolean get_mpris_metadata_cb(void *data)
-{
- struct MprisMetadataRequest *request = data;
- const gchar *filename;
-
- g_mutex_lock(info_mutex);
-
- real_position(&request->playlist, &request->entry);
- filename = playlist_entry_get_filename(request->playlist, request->entry);
-
- if (filename == NULL)
- request->metadata = NULL;
- else
- request->metadata = make_mpris_metadata (filename,
- playlist_entry_get_tuple (request->playlist, request->entry, FALSE));
-
- g_cond_signal(info_cond);
- g_mutex_unlock(info_mutex);
- return FALSE;
-}
-
-static void get_mpris_metadata(struct MprisMetadataRequest *request)
-{
- if (g_thread_self() == main_thread)
- get_mpris_metadata_cb(request);
- else
- {
- g_mutex_lock(info_mutex);
- g_timeout_add(0, get_mpris_metadata_cb, request);
- g_cond_wait(info_cond, info_mutex);
- g_mutex_unlock(info_mutex);
- }
-}
-
-static gboolean set_shuffle_cb (void * shuffle)
-{
- cfg.shuffle = GPOINTER_TO_INT (shuffle);
- event_queue ("toggle shuffle", NULL);
- return FALSE;
-}
-
-static gboolean set_repeat_cb (void * repeat)
-{
- cfg.repeat = GPOINTER_TO_INT (repeat);
- event_queue ("toggle repeat", NULL);
- return FALSE;
+ return metadata;
}
/* MPRIS API */
// MPRIS /
-gboolean mpris_root_identity(MprisRoot * obj, gchar ** identity, GError ** error)
+bool_t mpris_root_identity(MprisRoot * obj, char ** identity, GError ** error)
{
*identity = g_strdup_printf("Audacious %s", VERSION);
return TRUE;
}
-gboolean mpris_root_quit(MprisPlayer * obj, GError ** error)
+bool_t mpris_root_quit(MprisPlayer * obj, GError ** error)
{
event_queue("quit", NULL);
return TRUE;
@@ -692,43 +330,43 @@ gboolean mpris_root_quit(MprisPlayer * obj, GError ** error)
// MPRIS /Player
-gboolean mpris_player_next(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_next (MprisPlayer * obj, GError * * error)
{
- g_timeout_add(0, next_cb, NULL);
+ drct_pl_next ();
return TRUE;
}
-gboolean mpris_player_prev(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_prev (MprisPlayer * obj, GError * * error)
{
- g_timeout_add(0, prev_cb, NULL);
+ drct_pl_prev ();
return TRUE;
}
-gboolean mpris_player_pause(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_pause (MprisPlayer * obj, GError * * error)
{
- g_timeout_add(0, pause_cb, NULL);
+ drct_pause ();
return TRUE;
}
-gboolean mpris_player_stop(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_stop (MprisPlayer * obj, GError * * error)
{
- g_timeout_add(0, stop_cb, NULL);
+ drct_stop ();
return TRUE;
}
-gboolean mpris_player_play(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_play (MprisPlayer * obj, GError * * error)
{
- g_timeout_add(0, play_cb, NULL);
+ drct_play ();
return TRUE;
}
-gboolean mpris_player_repeat(MprisPlayer * obj, gboolean rpt, GError ** error)
+bool_t mpris_player_repeat(MprisPlayer * obj, bool_t rpt, GError ** error)
{
fprintf (stderr, "implement me\n");
return TRUE;
}
-static void append_int_value(GValueArray * ar, gint tmp)
+static void append_int_value(GValueArray * ar, int tmp)
{
GValue value;
memset(&value, 0, sizeof(value));
@@ -737,104 +375,110 @@ static void append_int_value(GValueArray * ar, gint tmp)
g_value_array_append(ar, &value);
}
-static gint get_playback_status(void)
+static int get_playback_status (void)
{
- struct StatusRequest request;
- get_status(&request);
+ if (! drct_get_playing ())
+ return MPRIS_STATUS_STOP;
- return (!request.playing ? MPRIS_STATUS_STOP : request.paused ? MPRIS_STATUS_PAUSE : MPRIS_STATUS_PLAY);
+ return drct_get_paused () ? MPRIS_STATUS_PAUSE : MPRIS_STATUS_PLAY;
}
-gboolean mpris_player_get_status(MprisPlayer * obj, GValueArray * *status, GError * *error)
+bool_t mpris_player_get_status(MprisPlayer * obj, GValueArray * *status, GError * *error)
{
*status = g_value_array_new(4);
- append_int_value(*status, (gint) get_playback_status());
- append_int_value(*status, (gint) cfg.shuffle);
- append_int_value(*status, (gint) cfg.no_playlist_advance);
- append_int_value(*status, (gint) cfg.repeat);
+ append_int_value(*status, (int) get_playback_status());
+ append_int_value (* status, get_bool (NULL, "shuffle"));
+ append_int_value (* status, get_bool (NULL, "no_playlist_advance"));
+ append_int_value (* status, get_bool (NULL, "repeat"));
return TRUE;
}
-gboolean mpris_player_get_metadata(MprisPlayer * obj, GHashTable * *metadata, GError * *error)
+bool_t mpris_player_get_metadata (MprisPlayer * obj, GHashTable * * metadata,
+ GError * * error)
{
- struct MprisMetadataRequest request = {.playlist = -1,.entry = -1 };
+ int playlist = playlist_get_playing ();
+ int entry = (playlist >= 0) ? playlist_get_position (playlist) : -1;
+
+ * metadata = (entry >= 0) ? get_mpris_metadata (playlist, entry) : NULL;
+ if (! * metadata)
+ * metadata = g_hash_table_new (g_str_hash, g_str_equal);
- get_mpris_metadata(&request);
- *metadata = request.metadata;
return TRUE;
}
-gboolean mpris_player_get_caps(MprisPlayer * obj, gint * capabilities, GError ** error)
+bool_t mpris_player_get_caps(MprisPlayer * obj, int * capabilities, GError ** error)
{
*capabilities = MPRIS_CAPS_CAN_GO_NEXT | MPRIS_CAPS_CAN_GO_PREV | MPRIS_CAPS_CAN_PAUSE | MPRIS_CAPS_CAN_PLAY | MPRIS_CAPS_CAN_SEEK | MPRIS_CAPS_CAN_PROVIDE_METADATA | MPRIS_CAPS_PROVIDES_TIMING;
return TRUE;
}
-gboolean mpris_player_volume_set(MprisPlayer * obj, gint vol, GError ** error)
+bool_t mpris_player_volume_set(MprisPlayer * obj, int vol, GError ** error)
{
drct_set_volume_main (vol);
return TRUE;
}
-gboolean mpris_player_volume_get(MprisPlayer * obj, gint * vol, GError ** error)
+bool_t mpris_player_volume_get(MprisPlayer * obj, int * vol, GError ** error)
{
drct_get_volume_main (vol);
return TRUE;
}
-gboolean mpris_player_position_set(MprisPlayer * obj, gint pos, GError * *error)
+bool_t mpris_player_position_set (MprisPlayer * obj, int pos, GError * * error)
{
- g_timeout_add(0, seek_cb, GINT_TO_POINTER(pos));
+ drct_seek (pos);
return TRUE;
}
-gboolean mpris_player_position_get(MprisPlayer * obj, gint * pos, GError * *error)
+bool_t mpris_player_position_get (MprisPlayer * obj, int * pos, GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *pos = request.time;
+ * pos = drct_get_time ();
return TRUE;
}
// MPRIS /Player signals
-gboolean mpris_emit_caps_change(MprisPlayer * obj)
+bool_t mpris_emit_caps_change(MprisPlayer * obj)
{
g_signal_emit(obj, signals[CAPS_CHANGE_SIG], 0, 0);
return TRUE;
}
-gboolean mpris_emit_track_change(MprisPlayer * obj)
+bool_t mpris_emit_track_change(MprisPlayer * obj)
{
- gint playlist, entry;
- const gchar *filename;
+ int playlist, entry;
GHashTable *metadata;
playlist = playlist_get_playing();
entry = playlist_get_position(playlist);
- filename = playlist_entry_get_filename(playlist, entry);
+ char * filename = playlist_entry_get_filename (playlist, entry);
+ Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
- if (filename == NULL)
- return FALSE;
+ if (filename && tuple)
+ {
+ metadata = make_mpris_metadata (filename, tuple);
+ g_signal_emit (obj, signals[TRACK_CHANGE_SIG], 0, metadata);
+ g_hash_table_destroy (metadata);
+ }
- metadata = make_mpris_metadata (filename, playlist_entry_get_tuple
- (playlist, entry, FALSE));
+ str_unref (filename);
+ if (tuple)
+ tuple_unref (tuple);
- g_signal_emit(obj, signals[TRACK_CHANGE_SIG], 0, metadata);
- g_hash_table_destroy(metadata);
- return TRUE;
+ return (filename && tuple);
}
-gboolean mpris_emit_status_change(MprisPlayer * obj, PlaybackStatus status)
+bool_t mpris_emit_status_change(MprisPlayer * obj, PlaybackStatus status)
{
GValueArray *ar = g_value_array_new(4);
- if (status < 0) status = get_playback_status();
- append_int_value(ar, (gint) status);
- append_int_value(ar, (gint) cfg.shuffle);
- append_int_value(ar, (gint) cfg.no_playlist_advance);
- append_int_value(ar, (gint) cfg.repeat);
+ if (status == MPRIS_STATUS_INVALID)
+ status = get_playback_status ();
+
+ append_int_value(ar, (int) status);
+ append_int_value (ar, get_bool (NULL, "shuffle"));
+ append_int_value (ar, get_bool (NULL, "no_playlist_advance"));
+ append_int_value (ar, get_bool (NULL, "repeat"));
g_signal_emit(obj, signals[STATUS_CHANGE_SIG], 0, ar);
g_value_array_free(ar);
@@ -842,7 +486,7 @@ gboolean mpris_emit_status_change(MprisPlayer * obj, PlaybackStatus status)
}
// MPRIS /TrackList
-gboolean mpris_emit_tracklist_change(MprisTrackList * obj, gint playlist)
+bool_t mpris_emit_tracklist_change(MprisTrackList * obj, int playlist)
{
g_signal_emit(obj, tracklist_signals[TRACKLIST_CHANGE_SIG], 0, playlist_entry_count(playlist));
return TRUE;
@@ -850,238 +494,186 @@ gboolean mpris_emit_tracklist_change(MprisTrackList * obj, gint playlist)
static void mpris_playlist_update_hook(gpointer unused, MprisTrackList * obj)
{
- gint playlist = playlist_get_active();
+ int playlist = playlist_get_active();
mpris_emit_tracklist_change(obj, playlist);
}
-gboolean mpris_tracklist_get_metadata(MprisTrackList * obj, gint pos, GHashTable * *metadata, GError * *error)
+bool_t mpris_tracklist_get_metadata (MprisTrackList * obj, int pos,
+ GHashTable * * metadata, GError * * error)
{
- struct MprisMetadataRequest request = {.playlist = -1,.entry = pos };
+ * metadata = get_mpris_metadata (playlist_get_active (), pos);
+ if (! * metadata)
+ * metadata = g_hash_table_new (g_str_hash, g_str_equal);
- get_mpris_metadata(&request);
- *metadata = request.metadata;
return TRUE;
}
-gboolean mpris_tracklist_get_current_track(MprisTrackList * obj, gint * pos, GError * *error)
+bool_t mpris_tracklist_get_current_track (MprisTrackList * obj, int * pos,
+ GError * * error)
{
- struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
- get_position(&request);
- *pos = request.entry;
+ * pos = playlist_get_position (playlist_get_active ());
return TRUE;
}
-gboolean mpris_tracklist_get_length(MprisTrackList * obj, gint * length, GError * *error)
+bool_t mpris_tracklist_get_length (MprisTrackList * obj, int * length, GError * * error)
{
- struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
- get_position(&request);
- *length = request.entry_count;
+ * length = playlist_entry_count (playlist_get_active ());
return TRUE;
}
-gboolean mpris_tracklist_add_track(MprisTrackList * obj, gchar * uri, gboolean play, GError * *error)
+bool_t mpris_tracklist_add_track (MprisTrackList * obj, char * uri, bool_t play,
+ GError * * error)
{
- struct AddRequest *request = g_malloc(sizeof(struct AddRequest));
-
- request->position = -1;
- request->filename = g_strdup(uri);
- request->play = play;
-
- g_timeout_add(0, add_cb, request);
+ playlist_entry_insert (playlist_get_active (), -1, uri, NULL, play);
return TRUE;
}
-gboolean mpris_tracklist_del_track(MprisTrackList * obj, gint pos, GError * *error)
+bool_t mpris_tracklist_del_track (MprisTrackList * obj, int pos, GError * * error)
{
- g_timeout_add(0, delete_cb, GINT_TO_POINTER(pos));
+ playlist_entry_delete (playlist_get_active (), pos, 1);
return TRUE;
}
-gboolean mpris_tracklist_loop (MprisTrackList * obj, gboolean loop, GError * *
+bool_t mpris_tracklist_loop (MprisTrackList * obj, bool_t loop, GError * *
error)
{
- g_timeout_add (0, set_repeat_cb, GINT_TO_POINTER (loop));
+ set_bool (NULL, "repeat", loop);
return TRUE;
}
-gboolean mpris_tracklist_random (MprisTrackList * obj, gboolean random,
+bool_t mpris_tracklist_random (MprisTrackList * obj, bool_t random,
GError * * error)
{
- g_timeout_add (0, set_shuffle_cb, GINT_TO_POINTER (random));
+ set_bool (NULL, "shuffle", random);
return TRUE;
}
// Audacious General Information
-gboolean audacious_rc_version(RemoteObject * obj, gchar ** version, GError ** error)
+bool_t audacious_rc_version(RemoteObject * obj, char ** version, GError ** error)
{
*version = g_strdup(VERSION);
return TRUE;
}
-gboolean audacious_rc_quit(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_quit(RemoteObject * obj, GError * *error)
{
event_queue("quit", NULL);
return TRUE;
}
-gboolean audacious_rc_eject(RemoteObject * obj, GError ** error)
-{
- interface_run_filebrowser (TRUE);
- return TRUE;
-}
-
-gboolean audacious_rc_main_win_visible(RemoteObject * obj, gboolean * is_main_win, GError ** error)
-{
- *is_main_win = cfg.player_visible;
- return TRUE;
-}
-
-gboolean audacious_rc_show_main_win(RemoteObject * obj, gboolean show, GError ** error)
-{
- interface_toggle_visibility ();
- return TRUE;
-}
-
-gboolean audacious_rc_equalizer_visible(RemoteObject * obj, gboolean * is_eq_win, GError ** error)
+bool_t audacious_rc_eject(RemoteObject * obj, GError ** error)
{
- *is_eq_win = cfg.equalizer_visible;
+ interface_show_filebrowser (TRUE);
return TRUE;
}
-gboolean audacious_rc_show_equalizer(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_main_win_visible (RemoteObject * obj,
+ bool_t * visible, GError ** error)
{
-#if 0
- drct_eq_win_toggle(show);
-#endif
+ * visible = interface_is_shown ();
return TRUE;
}
-gboolean audacious_rc_playlist_visible(RemoteObject * obj, gboolean * is_pl_win, GError ** error)
+bool_t audacious_rc_show_main_win (RemoteObject * obj, bool_t show,
+ GError * * error)
{
- *is_pl_win = cfg.playlist_visible;
+ interface_show (show);
return TRUE;
}
-gboolean audacious_rc_show_playlist(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_get_tuple_fields(RemoteObject * obj, char *** fields, GError ** error)
{
-#if 0
- drct_pl_win_toggle(show);
-#endif
- return TRUE;
-}
+ * fields = g_new (char *, TUPLE_FIELDS);
-gboolean audacious_rc_get_tuple_fields(RemoteObject * obj, gchar *** fields, GError ** error)
-{
- gchar **res = g_new0(gchar *, FIELD_LAST + 1);
- gint i;
- for (i = 0; i < FIELD_LAST; i++)
- {
- res[i] = g_strdup(tuple_fields[i].name);
- }
- *fields = res;
+ for (int i = 0; i < TUPLE_FIELDS; i ++)
+ (* fields)[i] = g_strdup (tuple_field_get_name (i));
+ (* fields)[TUPLE_FIELDS] = NULL;
return TRUE;
}
// Playback Information/Manipulation
-gboolean audacious_rc_play(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_play (RemoteObject * obj, GError * * error)
{
- g_timeout_add(0, play_cb, NULL);
+ drct_play ();
return TRUE;
}
-gboolean audacious_rc_pause(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_pause (RemoteObject * obj, GError * * error)
{
- g_timeout_add(0, pause_cb, NULL);
+ drct_pause ();
return TRUE;
}
-gboolean audacious_rc_stop(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_stop (RemoteObject * obj, GError * * error)
{
- g_timeout_add(0, stop_cb, NULL);
+ drct_stop ();
return TRUE;
}
-gboolean audacious_rc_playing(RemoteObject * obj, gboolean * is_playing, GError * *error)
+bool_t audacious_rc_playing (RemoteObject * obj, bool_t * is_playing, GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *is_playing = request.playing;
+ * is_playing = drct_get_playing ();
return TRUE;
}
-gboolean audacious_rc_paused(RemoteObject * obj, gboolean * is_paused, GError * *error)
+bool_t audacious_rc_paused (RemoteObject * obj, bool_t * is_paused, GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *is_paused = request.paused;
+ * is_paused = drct_get_paused ();
return TRUE;
}
-gboolean audacious_rc_stopped(RemoteObject * obj, gboolean * is_stopped, GError * *error)
+bool_t audacious_rc_stopped (RemoteObject * obj, bool_t * is_stopped, GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *is_stopped = !request.playing;
+ * is_stopped = ! drct_get_playing ();
return TRUE;
}
-gboolean audacious_rc_status(RemoteObject * obj, gchar * *status, GError * *error)
+bool_t audacious_rc_status (RemoteObject * obj, char * * status, GError * * error)
{
- struct StatusRequest request;
+ if (drct_get_playing ())
+ * status = strdup (drct_get_paused () ? "paused" : "playing");
+ else
+ * status = strdup ("stopped");
- get_status(&request);
- *status = g_strdup(!request.playing ? "stopped" : request.paused ? "paused" : "playing");
return TRUE;
}
-gboolean audacious_rc_info(RemoteObject * obj, gint * rate, gint * freq, gint * nch, GError * *error)
+bool_t audacious_rc_info (RemoteObject * obj, int * rate, int * freq, int * nch,
+ GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *rate = request.bitrate;
- *freq = request.samplerate;
- *nch = request.channels;
+ drct_get_info (rate, freq, nch);
return TRUE;
}
-gboolean audacious_rc_time(RemoteObject * obj, gint * time, GError * *error)
+bool_t audacious_rc_time (RemoteObject * obj, int * time, GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *time = request.time;
+ * time = drct_get_time ();
return TRUE;
}
-gboolean audacious_rc_seek(RemoteObject * obj, guint pos, GError * *error)
+bool_t audacious_rc_seek (RemoteObject * obj, unsigned int pos, GError * * error)
{
- g_timeout_add(0, seek_cb, GINT_TO_POINTER(pos));
+ drct_seek (pos);
return TRUE;
}
-gboolean audacious_rc_volume(RemoteObject * obj, gint * vl, gint * vr, GError ** error)
+bool_t audacious_rc_volume(RemoteObject * obj, int * vl, int * vr, GError ** error)
{
drct_get_volume (vl, vr);
return TRUE;
}
-gboolean audacious_rc_set_volume(RemoteObject * obj, gint vl, gint vr, GError ** error)
+bool_t audacious_rc_set_volume(RemoteObject * obj, int vl, int vr, GError ** error)
{
drct_set_volume (vl, vr);
return TRUE;
}
-gboolean audacious_rc_balance(RemoteObject * obj, gint * balance, GError ** error)
+bool_t audacious_rc_balance(RemoteObject * obj, int * balance, GError ** error)
{
drct_get_volume_balance (balance);
return TRUE;
@@ -1089,394 +681,362 @@ gboolean audacious_rc_balance(RemoteObject * obj, gint * balance, GError ** erro
// Playlist Information/Manipulation
-gboolean audacious_rc_position(RemoteObject * obj, gint * pos, GError * *error)
+bool_t audacious_rc_position (RemoteObject * obj, int * pos, GError * * error)
{
- struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
- get_position(&request);
- *pos = request.entry;
+ * pos = playlist_get_position (playlist_get_active ());
return TRUE;
}
-gboolean audacious_rc_advance(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_advance(RemoteObject * obj, GError * *error)
{
- g_timeout_add(0, next_cb, NULL);
+ drct_pl_next ();
return TRUE;
}
-gboolean audacious_rc_reverse(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_reverse (RemoteObject * obj, GError * * error)
{
- g_timeout_add(0, prev_cb, NULL);
+ drct_pl_prev ();
return TRUE;
}
-gboolean audacious_rc_length(RemoteObject * obj, gint * length, GError * *error)
+bool_t audacious_rc_length (RemoteObject * obj, int * length, GError * * error)
{
- struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
- get_position(&request);
- *length = request.entry_count;
+ * length = playlist_entry_count (playlist_get_active ());
return TRUE;
}
-gboolean audacious_rc_song_title(RemoteObject * obj, guint pos, gchar * *title, GError * *error)
+bool_t audacious_rc_song_title (RemoteObject * obj, unsigned int pos, char * *
+ title, GError * * error)
{
- struct InfoRequest request = {.playlist = -1,.entry = pos };
-
- get_info(&request);
- g_free(request.filename);
- g_free(request.pltitle);
- *title = request.title;
+ char * title2 = playlist_entry_get_title (playlist_get_active (), pos, FALSE);
+ * title = strdup (title2);
+ str_unref (title2);
return TRUE;
}
-gboolean audacious_rc_song_filename(RemoteObject * obj, guint pos, gchar * *filename, GError * *error)
+bool_t audacious_rc_song_filename (RemoteObject * obj, unsigned int pos,
+ char * * filename, GError * * error)
{
- struct InfoRequest request = {.playlist = -1,.entry = pos };
-
- get_info(&request);
- *filename = request.filename;
- g_free(request.title);
- g_free(request.pltitle);
+ char * filename2 = playlist_entry_get_filename (playlist_get_active (), pos);
+ * filename = strdup (filename2);
+ str_unref (filename2);
return TRUE;
}
-gboolean audacious_rc_song_length(RemoteObject * obj, guint pos, gint * length, GError * *error)
+bool_t audacious_rc_song_length(RemoteObject * obj, unsigned int pos, int * length, GError * *error)
{
audacious_rc_song_frames(obj, pos, length, error);
*length /= 1000;
return TRUE;
}
-gboolean audacious_rc_song_frames(RemoteObject * obj, guint pos, gint * length, GError * *error)
+bool_t audacious_rc_song_frames (RemoteObject * obj, unsigned int pos, int *
+ length, GError * * error)
{
- struct InfoRequest request = {.playlist = -1,.entry = pos };
-
- get_info(&request);
- g_free(request.filename);
- g_free(request.title);
- g_free(request.pltitle);
- *length = request.length;
+ * length = playlist_entry_get_length (playlist_get_active (), pos, FALSE);
return TRUE;
}
-gboolean audacious_rc_song_tuple(RemoteObject * obj, guint pos, gchar * field, GValue * value, GError * *error)
+bool_t audacious_rc_song_tuple (RemoteObject * obj, unsigned int pos, char *
+ field, GValue * value, GError * * error)
{
- struct FieldRequest request = {.playlist = -1,.entry = pos,.field = field };
-
- get_field(&request);
-
- if (request.value == NULL)
+ GValue * value2 = get_field (playlist_get_active (), pos, field);
+ if (! value2)
return FALSE;
- memset(value, 0, sizeof(GValue));
- g_value_init(value, G_VALUE_TYPE(request.value));
- g_value_copy(request.value, value);
- g_value_unset(request.value);
- g_free(request.value);
+ memset (value, 0, sizeof (GValue));
+ g_value_init (value, G_VALUE_TYPE (value2));
+ g_value_copy (value2, value);
+ g_value_unset (value2);
+ g_free (value2);
return TRUE;
}
-gboolean audacious_rc_jump(RemoteObject * obj, guint pos, GError * *error)
+bool_t audacious_rc_jump (RemoteObject * obj, unsigned int pos, GError * * error)
{
- g_timeout_add(0, jump_cb, GINT_TO_POINTER(pos));
+ playlist_set_position (playlist_get_active (), pos);
return TRUE;
}
-gboolean audacious_rc_add(RemoteObject * obj, gchar * file, GError * *error)
+bool_t audacious_rc_add(RemoteObject * obj, char * file, GError * *error)
{
return audacious_rc_playlist_ins_url_string(obj, file, -1, error);
}
-gboolean audacious_rc_add_url(RemoteObject * obj, gchar * file, GError * *error)
+bool_t audacious_rc_add_url(RemoteObject * obj, char * file, GError * *error)
{
return audacious_rc_playlist_ins_url_string(obj, file, -1, error);
}
-static GList * string_array_to_list (gchar * * strings)
+static Index * strings_to_index (char * * strings)
{
- GList * list = NULL;
+ Index * index = index_new ();
- while (* strings != NULL)
- list = g_list_prepend (list, * strings ++);
+ while (* strings)
+ index_append (index, str_get (* strings ++));
- return g_list_reverse (list);
+ return index;
}
-gboolean audacious_rc_add_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_add_list (RemoteObject * obj, char * * filenames,
GError * * error)
{
- GList * list = string_array_to_list (filenames);
-
- drct_pl_add_list (list, -1);
- g_list_free (list);
+ drct_pl_add_list (strings_to_index (filenames), -1);
return TRUE;
}
-gboolean audacious_rc_open_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_open_list (RemoteObject * obj, char * * filenames,
GError * * error)
{
- GList * list = string_array_to_list (filenames);
-
- drct_pl_open_list (list);
- g_list_free (list);
+ drct_pl_open_list (strings_to_index (filenames));
return TRUE;
}
-gboolean audacious_rc_open_list_to_temp (RemoteObject * obj, gchar * *
+bool_t audacious_rc_open_list_to_temp (RemoteObject * obj, char * *
filenames, GError * * error)
{
- GList * list = string_array_to_list (filenames);
+ drct_pl_open_temp_list (strings_to_index (filenames));
+ return TRUE;
+}
+
+bool_t audacious_rc_delete (RemoteObject * obj, unsigned int pos, GError * * error)
+{
+ playlist_entry_delete (playlist_get_active (), pos, 1);
+ return TRUE;
+}
- drct_pl_open_temp_list (list);
- g_list_free (list);
+bool_t audacious_rc_clear (RemoteObject * obj, GError * * error)
+{
+ int playlist = playlist_get_active ();
+ playlist_entry_delete (playlist, 0, playlist_entry_count (playlist));
return TRUE;
}
-gboolean audacious_rc_delete(RemoteObject * obj, guint pos, GError * *error)
+bool_t audacious_rc_auto_advance(RemoteObject * obj, bool_t * is_advance, GError ** error)
{
- g_timeout_add(0, delete_cb, GINT_TO_POINTER(pos));
+ * is_advance = ! get_bool (NULL, "no_playlist_advance");
return TRUE;
}
-gboolean audacious_rc_clear(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_toggle_auto_advance(RemoteObject * obj, GError ** error)
{
- g_timeout_add(0, clear_cb, NULL);
+ set_bool (NULL, "no_playlist_advance", ! get_bool (NULL, "no_playlist_advance"));
return TRUE;
}
-gboolean audacious_rc_auto_advance(RemoteObject * obj, gboolean * is_advance, GError ** error)
+bool_t audacious_rc_repeat(RemoteObject * obj, bool_t * is_repeating, GError ** error)
{
- *is_advance = !cfg.no_playlist_advance;
+ *is_repeating = get_bool (NULL, "repeat");
return TRUE;
}
-gboolean audacious_rc_toggle_auto_advance(RemoteObject * obj, GError ** error)
+bool_t audacious_rc_toggle_repeat (RemoteObject * obj, GError * * error)
{
- cfg.no_playlist_advance = !cfg.no_playlist_advance;
+ set_bool (NULL, "repeat", ! get_bool (NULL, "repeat"));
return TRUE;
}
-gboolean audacious_rc_repeat(RemoteObject * obj, gboolean * is_repeating, GError ** error)
+bool_t audacious_rc_shuffle(RemoteObject * obj, bool_t * is_shuffling, GError ** error)
{
- *is_repeating = cfg.repeat;
+ *is_shuffling = get_bool (NULL, "shuffle");
return TRUE;
}
-gboolean audacious_rc_toggle_repeat (RemoteObject * obj, GError * * error)
+bool_t audacious_rc_toggle_shuffle (RemoteObject * obj, GError * * error)
{
- g_timeout_add (0, set_repeat_cb, GINT_TO_POINTER (! cfg.repeat));
+ set_bool (NULL, "shuffle", ! get_bool (NULL, "shuffle"));
return TRUE;
}
-gboolean audacious_rc_shuffle(RemoteObject * obj, gboolean * is_shuffling, GError ** error)
+bool_t audacious_rc_stop_after (RemoteObject * obj, bool_t * is_stopping, GError * * error)
{
- *is_shuffling = cfg.shuffle;
+ * is_stopping = get_bool (NULL, "stop_after_current_song");
return TRUE;
}
-gboolean audacious_rc_toggle_shuffle (RemoteObject * obj, GError * * error)
+bool_t audacious_rc_toggle_stop_after (RemoteObject * obj, GError * * error)
{
- g_timeout_add (0, set_shuffle_cb, GINT_TO_POINTER (! cfg.shuffle));
+ set_bool (NULL, "stop_after_current_song", ! get_bool (NULL, "stop_after_current_song"));
return TRUE;
}
/* New on Oct 5 */
-gboolean audacious_rc_show_prefs_box(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_prefs_box(RemoteObject * obj, bool_t show, GError ** error)
{
event_queue("prefswin show", GINT_TO_POINTER(show));
return TRUE;
}
-gboolean audacious_rc_show_about_box(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_about_box(RemoteObject * obj, bool_t show, GError ** error)
{
event_queue("aboutwin show", GINT_TO_POINTER(show));
return TRUE;
}
-gboolean audacious_rc_show_jtf_box(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_jtf_box(RemoteObject * obj, bool_t show, GError ** error)
{
if (show)
- event_queue("interface show jump to track", NULL);
- else
- event_queue("interface hide jump to track", NULL);
+ interface_show_jump_to_track ();
+
return TRUE;
}
-gboolean audacious_rc_show_filebrowser(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_filebrowser(RemoteObject * obj, bool_t show, GError ** error)
{
if (show)
- event_queue("filebrowser show", GINT_TO_POINTER(FALSE));
- else
- event_queue("filebrowser hide", NULL);
- return TRUE;
-}
+ interface_show_filebrowser (FALSE);
-gboolean audacious_rc_play_pause(RemoteObject * obj, GError * *error)
-{
- g_timeout_add(0, play_pause_cb, NULL);
return TRUE;
}
-gboolean audacious_rc_activate(RemoteObject * obj, GError ** error)
+bool_t audacious_rc_play_pause (RemoteObject * obj, GError * * error)
{
- fprintf (stderr, "implement me\n");
+ if (drct_get_playing ())
+ drct_pause ();
+ else
+ drct_play ();
+
return TRUE;
}
-gboolean audacious_rc_get_info(RemoteObject * obj, gint * rate, gint * freq, gint * nch, GError * *error)
+bool_t audacious_rc_get_info (RemoteObject * obj, int * rate, int * freq,
+ int * nch, GError * * error)
{
- struct StatusRequest request;
-
- get_status(&request);
- *rate = request.bitrate;
- *freq = request.samplerate;
- *nch = request.channels;
+ drct_get_info (rate, freq, nch);
return TRUE;
}
-gboolean audacious_rc_toggle_aot(RemoteObject * obj, gboolean ontop, GError ** error)
+bool_t audacious_rc_toggle_aot(RemoteObject * obj, bool_t ontop, GError ** error)
{
hook_call("mainwin set always on top", &ontop);
return TRUE;
}
-gboolean audacious_rc_playqueue_add(RemoteObject * obj, gint pos, GError * *error)
+bool_t audacious_rc_playqueue_add (RemoteObject * obj, int pos, GError * * error)
{
- g_timeout_add(0, add_to_queue_cb, GINT_TO_POINTER(pos));
+ playlist_queue_insert (playlist_get_active (), -1, pos);
return TRUE;
}
-gboolean audacious_rc_playqueue_remove(RemoteObject * obj, gint pos, GError * *error)
+bool_t audacious_rc_playqueue_remove (RemoteObject * obj, int pos, GError * * error)
{
- g_timeout_add(0, remove_from_queue_cb, GINT_TO_POINTER(pos));
+ int playlist = playlist_get_active ();
+ int at = playlist_queue_find_entry (playlist, pos);
+
+ if (at >= 0)
+ playlist_queue_delete (playlist, at, 1);
+
return TRUE;
}
-gboolean audacious_rc_playqueue_clear(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_playqueue_clear (RemoteObject * obj, GError * * error)
{
- g_timeout_add(0, clear_queue_cb, NULL);
+ int playlist = playlist_get_active ();
+ playlist_queue_delete (playlist, 0, playlist_queue_count (playlist));
return TRUE;
}
-gboolean audacious_rc_get_playqueue_length(RemoteObject * obj, gint * length, GError * *error)
+bool_t audacious_rc_get_playqueue_length (RemoteObject * obj, int * length,
+ GError * * error)
{
- struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
- get_position(&request);
- *length = request.queue_count;
+ * length = playlist_queue_count (playlist_get_active ());
return TRUE;
}
-gboolean audacious_rc_queue_get_list_pos(RemoteObject * obj, gint qpos, gint * pos, GError * *error)
+bool_t audacious_rc_queue_get_list_pos (RemoteObject * obj, int qpos, int * pos,
+ GError * * error)
{
- *pos = queue_get_entry(qpos);
+ * pos = playlist_queue_get_entry (playlist_get_active (), qpos);
return TRUE;
}
-gboolean audacious_rc_queue_get_queue_pos(RemoteObject * obj, gint pos, gint * qpos, GError * *error)
+bool_t audacious_rc_queue_get_queue_pos (RemoteObject * obj, int pos, int *
+ qpos, GError * * error)
{
- *qpos = queue_find_entry(pos);
+ * qpos = playlist_queue_find_entry (playlist_get_active (), pos);
return TRUE;
}
-gboolean audacious_rc_playqueue_is_queued(RemoteObject * obj, gint pos, gboolean * is_queued, GError * *error)
+bool_t audacious_rc_playqueue_is_queued (RemoteObject * obj, int pos, bool_t *
+ is_queued, GError * * error)
{
- *is_queued = (queue_find_entry(pos) != -1);
+ * is_queued = (playlist_queue_find_entry (playlist_get_active (), pos) >= 0);
return TRUE;
}
-gboolean audacious_rc_playlist_ins_url_string(RemoteObject * obj, gchar * url, gint pos, GError * *error)
+bool_t audacious_rc_playlist_ins_url_string (RemoteObject * obj, char * url, int
+ pos, GError * * error)
{
- struct AddRequest *request = g_malloc(sizeof(struct AddRequest));
-
- request->position = pos;
- request->filename = g_strdup(url);
- request->play = FALSE;
-
- g_timeout_add(0, add_cb, request);
+ playlist_entry_insert (playlist_get_active (), pos, url, NULL, FALSE);
return TRUE;
}
-gboolean audacious_rc_playlist_add(RemoteObject * obj, void *list, GError * *error)
+bool_t audacious_rc_playlist_add(RemoteObject * obj, void *list, GError * *error)
{
return audacious_rc_playlist_ins_url_string(obj, list, -1, error);
}
-gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject * obj, gchar * url, GError * *error)
+bool_t audacious_rc_playlist_enqueue_to_temp (RemoteObject * obj, char * url,
+ GError * * error)
{
- g_timeout_add(0, add_to_new_playlist_cb, g_strdup(url));
+ drct_pl_open_temp (url);
return TRUE;
}
/* New on Nov 7: Equalizer */
-gboolean audacious_rc_get_eq(RemoteObject * obj, gdouble * preamp, GArray ** bands, GError ** error)
+bool_t audacious_rc_get_eq(RemoteObject * obj, double * preamp, GArray ** bands, GError ** error)
{
- int i;
-
- * preamp = cfg.equalizer_preamp;
- *bands = g_array_sized_new(FALSE, FALSE, sizeof(gdouble), AUD_EQUALIZER_NBANDS);
-
- for (i = 0; i < AUD_EQUALIZER_NBANDS; i++)
- g_array_append_val (* bands, cfg.equalizer_bands[i]);
+ * preamp = get_double (NULL, "equalizer_preamp");
+ * bands = g_array_new (FALSE, FALSE, sizeof (double));
+ g_array_set_size (* bands, AUD_EQUALIZER_NBANDS);
+ eq_get_bands ((double *) (* bands)->data);
return TRUE;
}
-gboolean audacious_rc_get_eq_preamp(RemoteObject * obj, gdouble * preamp, GError ** error)
+bool_t audacious_rc_get_eq_preamp(RemoteObject * obj, double * preamp, GError ** error)
{
- * preamp = cfg.equalizer_preamp;
+ * preamp = get_double (NULL, "equalizer_preamp");
return TRUE;
}
-gboolean audacious_rc_get_eq_band(RemoteObject * obj, gint band, gdouble * value, GError ** error)
+bool_t audacious_rc_get_eq_band(RemoteObject * obj, int band, double * value, GError ** error)
{
- * value = cfg.equalizer_bands[band];
+ * value = eq_get_band (band);
return TRUE;
}
-gboolean audacious_rc_set_eq(RemoteObject * obj, gdouble preamp, GArray * bands, GError ** error)
+bool_t audacious_rc_set_eq(RemoteObject * obj, double preamp, GArray * bands, GError ** error)
{
- int i;
-
- cfg.equalizer_preamp = preamp;
-
- for (i = 0; i < AUD_EQUALIZER_NBANDS; i++)
- cfg.equalizer_bands[i] = g_array_index (bands, gdouble, i);
-
- hook_call ("equalizer changed", NULL);
+ set_double (NULL, "equalizer_preamp", preamp);
+ eq_set_bands ((double *) bands->data);
return TRUE;
}
-gboolean audacious_rc_set_eq_preamp(RemoteObject * obj, gdouble preamp, GError ** error)
+bool_t audacious_rc_set_eq_preamp(RemoteObject * obj, double preamp, GError ** error)
{
- cfg.equalizer_preamp = preamp;
- hook_call ("equalizer changed", NULL);
+ set_double (NULL, "equalizer_preamp", preamp);
return TRUE;
}
-gboolean audacious_rc_set_eq_band(RemoteObject * obj, gint band, gdouble value, GError ** error)
+bool_t audacious_rc_set_eq_band(RemoteObject * obj, int band, double value, GError ** error)
{
- cfg.equalizer_bands[band] = value;
- hook_call ("equalizer changed", NULL);
+ eq_set_band (band, value);
return TRUE;
}
-gboolean audacious_rc_equalizer_activate(RemoteObject * obj, gboolean active, GError ** error)
+bool_t audacious_rc_equalizer_activate(RemoteObject * obj, bool_t active, GError ** error)
{
- cfg.equalizer_active = active;
- hook_call ("equalizer changed", NULL);
+ set_bool (NULL, "equalizer_active", active);
return TRUE;
}
-gboolean audacious_rc_get_active_playlist_name(RemoteObject * obj, gchar * *title, GError * *error)
+bool_t audacious_rc_get_active_playlist_name (RemoteObject * obj, char * *
+ title, GError * * error)
{
- struct InfoRequest request = {.playlist = -2 };
-
- get_info(&request);
- g_free(request.title);
- g_free(request.filename);
- *title = request.pltitle;
+ char * title2 = playlist_get_title (playlist_get_active ());
+ * title = strdup (title2);
+ str_unref (title2);
return TRUE;
}
diff --git a/src/audacious/dbus.h b/src/audacious/dbus.h
index a365427..7a2bebf 100644
--- a/src/audacious/dbus.h
+++ b/src/audacious/dbus.h
@@ -21,6 +21,8 @@
#ifndef AUDACIOUS_DBUS_H
#define AUDACIOUS_DBUS_H
+#include <dbus/dbus-glib.h>
+
#define AUDACIOUS_DBUS_SERVICE "org.atheme.audacious"
#define AUDACIOUS_DBUS_PATH "/org/atheme/audacious"
#define AUDACIOUS_DBUS_INTERFACE "org.atheme.audacious"
@@ -40,5 +42,8 @@
#define CAN_PROVIDE_METADATA = 1 << 6
#define PROVIDES_TIMING = 1 << 7
+void init_dbus (void);
+void cleanup_dbus (void);
+DBusGProxy * audacious_get_dbus_proxy (void);
#endif /* AUDACIOUS_DBUS_H */
diff --git a/src/audacious/debug.h b/src/audacious/debug.h
index 1a84701..bdadf59 100644
--- a/src/audacious/debug.h
+++ b/src/audacious/debug.h
@@ -24,12 +24,12 @@
#include <stdio.h>
-#include <audacious/audconfig.h>
+#include <audacious/api.h>
#ifdef _AUDACIOUS_CORE
-#define AUDDBG(...) do {if (cfg.verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
+#define AUDDBG(...) do {if (verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
#else
-#define AUDDBG(...) do {if (aud_cfg->verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
+#define AUDDBG(...) do {if (* _aud_api_table->verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
#endif
#endif
diff --git a/src/audacious/drct-api.h b/src/audacious/drct-api.h
index 8b78301..fc4c803 100644
--- a/src/audacious/drct-api.h
+++ b/src/audacious/drct-api.h
@@ -25,68 +25,49 @@
/* --- PROGRAM CONTROL --- */
-AUD_FUNC0 (void, drct_quit)
+AUD_VFUNC0 (drct_quit)
/* --- PLAYBACK CONTROL --- */
-AUD_FUNC0 (void, drct_play)
-AUD_FUNC0 (void, drct_pause)
-AUD_FUNC0 (void, drct_stop)
-AUD_FUNC0 (gboolean, drct_get_playing)
-AUD_FUNC0 (gboolean, drct_get_paused)
-AUD_FUNC0 (gchar *, drct_get_title)
-AUD_FUNC3 (void, drct_get_info, gint *, bitrate, gint *, samplerate, gint *,
- channels)
-AUD_FUNC0 (gint, drct_get_time)
-AUD_FUNC0 (gint, drct_get_length)
-AUD_FUNC1 (void, drct_seek, gint, time)
+/* The strings returned by drct_get_filename() and drct_get_title() are pooled
+ * and must be freed with str_unref(). */
+
+AUD_VFUNC0 (drct_play)
+AUD_VFUNC0 (drct_pause)
+AUD_VFUNC0 (drct_stop)
+AUD_FUNC0 (bool_t, drct_get_playing)
+AUD_FUNC0 (bool_t, drct_get_ready)
+AUD_FUNC0 (bool_t, drct_get_paused)
+AUD_FUNC0 (char *, drct_get_filename)
+AUD_FUNC0 (char *, drct_get_title)
+AUD_VFUNC3 (drct_get_info, int *, bitrate, int *, samplerate, int *, channels)
+AUD_FUNC0 (int, drct_get_time)
+AUD_FUNC0 (int, drct_get_length)
+AUD_VFUNC1 (drct_seek, int, time)
/* --- VOLUME CONTROL --- */
-AUD_FUNC2 (void, drct_get_volume, gint *, left, gint *, right)
-AUD_FUNC2 (void, drct_set_volume, gint, left, gint, right)
-AUD_FUNC1 (void, drct_get_volume_main, gint *, volume)
-AUD_FUNC1 (void, drct_set_volume_main, gint, volume)
-AUD_FUNC1 (void, drct_get_volume_balance, gint *, balance)
-AUD_FUNC1 (void, drct_set_volume_balance, gint, balance)
+AUD_VFUNC2 (drct_get_volume, int *, left, int *, right)
+AUD_VFUNC2 (drct_set_volume, int, left, int, right)
+AUD_VFUNC1 (drct_get_volume_main, int *, volume)
+AUD_VFUNC1 (drct_set_volume_main, int, volume)
+AUD_VFUNC1 (drct_get_volume_balance, int *, balance)
+AUD_VFUNC1 (drct_set_volume_balance, int, balance)
/* --- PLAYLIST CONTROL --- */
-AUD_FUNC0 (gint, drct_pl_get_length)
-AUD_FUNC0 (void, drct_pl_next)
-AUD_FUNC0 (void, drct_pl_prev)
-AUD_FUNC0 (gint, drct_pl_get_pos)
-AUD_FUNC1 (void, drct_pl_set_pos, gint, pos)
+/* The indexes passed to drct_pl_add_list(), drct_pl_open_list(), and
+ * drct_pl_open_temp_list() contain pooled strings to which the caller gives up
+ * one reference. The indexes themselves are freed by these functions. */
-AUD_FUNC0 (gboolean, drct_pl_repeat_is_enabled)
-AUD_FUNC0 (void, drct_pl_repeat_toggle)
-AUD_FUNC0 (gboolean, drct_pl_shuffle_is_enabled)
-AUD_FUNC0 (void, drct_pl_shuffle_toggle)
+AUD_VFUNC0 (drct_pl_next)
+AUD_VFUNC0 (drct_pl_prev)
-AUD_FUNC1 (gchar *, drct_pl_get_file, gint, entry)
-AUD_FUNC1 (gchar *, drct_pl_get_title, gint, entry)
-AUD_FUNC1 (gint, drct_pl_get_time, gint, entry)
+AUD_VFUNC2 (drct_pl_add, const char *, filename, int, at)
+AUD_VFUNC2 (drct_pl_add_list, Index *, filenames, int, at)
+AUD_VFUNC1 (drct_pl_open, const char *, filename)
+AUD_VFUNC1 (drct_pl_open_list, Index *, filenames)
+AUD_VFUNC1 (drct_pl_open_temp, const char *, filename)
+AUD_VFUNC1 (drct_pl_open_temp_list, Index *, filenames)
-AUD_FUNC2 (void, drct_pl_add, const gchar *, filename, gint, at)
-AUD_FUNC2 (void, drct_pl_add_list, GList *, list, gint, at)
-AUD_FUNC1 (void, drct_pl_open, const gchar *, filename)
-AUD_FUNC1 (void, drct_pl_open_list, GList *, list)
-AUD_FUNC1 (void, drct_pl_open_temp, const gchar *, filename)
-AUD_FUNC1 (void, drct_pl_open_temp_list, GList *, list)
-
-AUD_FUNC1 (void, drct_pl_delete, gint, entry)
-AUD_FUNC0 (void, drct_pl_delete_selected)
-AUD_FUNC0 (void, drct_pl_clear)
-
-/* --- PLAYLIST QUEUE CONTROL --- */
-
-AUD_FUNC0 (gint, drct_pq_get_length)
-AUD_FUNC1 (gint, drct_pq_get_entry, gint, queue_position)
-AUD_FUNC1 (gboolean, drct_pq_is_queued, gint, entry)
-AUD_FUNC1 (gint, drct_pq_get_queue_position, gint, entry)
-AUD_FUNC1 (void, drct_pq_add, gint, entry)
-AUD_FUNC1 (void, drct_pq_remove, gint, entry)
-AUD_FUNC0 (void, drct_pq_clear)
-
-/* New in 2.5-alpha2 */
-AUD_FUNC0 (gboolean, drct_get_ready)
+AUD_VFUNC1 (drct_pl_delete_selected, int, playlist)
diff --git a/src/audacious/drct.c b/src/audacious/drct.c
index 764295f..6ec0dcf 100644
--- a/src/audacious/drct.c
+++ b/src/audacious/drct.c
@@ -23,11 +23,10 @@
#include <libaudcore/hook.h>
#include <libaudcore/vfs.h>
-#include "audconfig.h"
#include "config.h"
#include "drct.h"
-#include "glib-compat.h"
#include "i18n.h"
+#include "misc.h"
#include "playback.h"
#include "playlist.h"
@@ -50,7 +49,10 @@ void drct_play (void)
playback_seek (0);
}
else
+ {
+ playlist_set_playing (playlist_get_active ());
playback_play (0, FALSE);
+ }
}
void drct_pause (void)
@@ -65,70 +67,75 @@ void drct_stop (void)
playback_stop ();
}
-gboolean drct_get_playing (void)
+bool_t drct_get_playing (void)
{
return playback_get_playing ();
}
-gboolean drct_get_ready (void)
+bool_t drct_get_ready (void)
{
return playback_get_ready ();
}
-gboolean drct_get_paused (void)
+bool_t drct_get_paused (void)
{
return playback_get_paused ();
}
-gchar * drct_get_title (void)
+char * drct_get_filename (void)
+{
+ return playback_get_filename ();
+}
+
+char * drct_get_title (void)
{
return playback_get_title ();
}
-void drct_get_info (gint * bitrate, gint * samplerate, gint * channels)
+void drct_get_info (int * bitrate, int * samplerate, int * channels)
{
playback_get_info (bitrate, samplerate, channels);
}
-gint drct_get_time (void)
+int drct_get_time (void)
{
return playback_get_time ();
}
-gint drct_get_length (void)
+int drct_get_length (void)
{
return playback_get_length ();
}
-void drct_seek (gint time)
+void drct_seek (int time)
{
playback_seek (time);
}
/* --- VOLUME CONTROL --- */
-void drct_get_volume (gint * left, gint * right)
+void drct_get_volume (int * left, int * right)
{
playback_get_volume (left, right);
* left = CLAMP (* left, 0, 100);
* right = CLAMP (* right, 0, 100);
}
-void drct_set_volume (gint left, gint right)
+void drct_set_volume (int left, int right)
{
playback_set_volume (CLAMP (left, 0, 100), CLAMP (right, 0, 100));
}
-void drct_get_volume_main (gint * volume)
+void drct_get_volume_main (int * volume)
{
- gint left, right;
+ int left, right;
drct_get_volume (& left, & right);
* volume = MAX (left, right);
}
-void drct_set_volume_main (gint volume)
+void drct_set_volume_main (int volume)
{
- gint left, right, current;
+ int left, right, current;
drct_get_volume (& left, & right);
current = MAX (left, right);
@@ -138,9 +145,9 @@ void drct_set_volume_main (gint volume)
drct_set_volume (volume, volume);
}
-void drct_get_volume_balance (gint * balance)
+void drct_get_volume_balance (int * balance)
{
- gint left, right;
+ int left, right;
drct_get_volume (& left, & right);
if (left == right)
@@ -151,9 +158,9 @@ void drct_get_volume_balance (gint * balance)
* balance = 100 - left * 100 / right;
}
-void drct_set_volume_balance (gint balance)
+void drct_set_volume_balance (int balance)
{
- gint left, right;
+ int left, right;
drct_get_volume_main (& left);
if (balance < 0)
@@ -169,205 +176,76 @@ void drct_set_volume_balance (gint balance)
/* --- PLAYLIST CONTROL --- */
-gint drct_pl_get_length (void)
-{
- return playlist_entry_count (playlist_get_active ());
-}
-
void drct_pl_next (void)
{
- gboolean play = playback_get_playing ();
- if (playlist_next_song (playlist_get_playing (), cfg.repeat) && play)
+ bool_t play = playback_get_playing ();
+ if (playlist_get_playing () < 0)
+ playlist_set_playing (playlist_get_active ());
+ if (playlist_next_song (playlist_get_playing (), get_bool (NULL, "repeat")) && play)
playback_play (0, FALSE);
}
void drct_pl_prev (void)
{
- gboolean play = playback_get_playing ();
+ bool_t play = playback_get_playing ();
+ if (playlist_get_playing () < 0)
+ playlist_set_playing (playlist_get_active ());
if (playlist_prev_song (playlist_get_playing ()) && play)
playback_play (0, FALSE);
}
-gint drct_pl_get_pos (void)
-{
- return playlist_get_position (playlist_get_active ());
-}
-
-void drct_pl_set_pos (gint pos)
-{
- gint playlist = playlist_get_active ();
- gboolean play = playback_get_playing ();
-
- playlist_set_position (playlist, pos);
-
- if (play)
- {
- playlist_set_playing (playlist);
- playback_play (0, FALSE);
- }
-}
-
-gboolean drct_pl_repeat_is_enabled (void)
-{
- return cfg.repeat;
-}
-
-void drct_pl_repeat_toggle (void)
-{
- cfg.repeat = ! cfg.repeat;
- hook_call ("toggle repeat", NULL);
-}
-
-gboolean drct_pl_shuffle_is_enabled (void)
-{
- return cfg.shuffle;
-}
-
-void drct_pl_shuffle_toggle (void)
-{
- cfg.shuffle = ! cfg.shuffle;
- hook_call ("toggle shuffle", NULL);
-}
-
-gchar * drct_pl_get_file (gint entry)
-{
- const gchar * filename = playlist_entry_get_filename
- (playlist_get_active (), entry);
- return (filename == NULL) ? NULL : g_strdup (filename);
-}
-
-gchar * drct_pl_get_title (gint entry)
-{
- const gchar * title = playlist_entry_get_title (playlist_get_active (),
- entry, FALSE);
- return (title == NULL) ? NULL : g_strdup (title);
-}
-
-gint drct_pl_get_time (gint pos)
-{
- return playlist_entry_get_length (playlist_get_active (), pos, FALSE);
-}
-
-static void activate_temp (void)
-{
- gint playlists = playlist_count ();
- const gchar * title = _("Temporary Playlist");
-
- for (gint playlist = 0; playlist < playlists; playlist ++)
- {
- if (! strcmp (playlist_get_title (playlist), title))
- {
- playlist_set_active (playlist);
- return;
- }
- }
-
- if (! playlist_entry_count (playlist_get_active ()))
- playlist_set_title (playlist_get_active (), title);
- else
- {
- playlist_insert (playlists);
- playlist_set_title (playlists, title);
- playlist_set_active (playlists);
- }
-}
-
-static void add_list (GList * list, gint at, gboolean to_temp, gboolean play)
+static void add_list (Index * filenames, int at, bool_t to_temp, bool_t play)
{
if (to_temp)
- activate_temp ();
+ playlist_set_active (playlist_get_temporary ());
- gint playlist = playlist_get_active ();
+ int playlist = playlist_get_active ();
if (play)
{
- if (cfg.clear_playlist)
+ if (get_bool (NULL, "clear_playlist"))
playlist_entry_delete (playlist, 0, playlist_entry_count (playlist));
else
playlist_queue_delete (playlist, 0, playlist_queue_count (playlist));
}
- gint entries = playlist_entry_count (playlist);
- if (at < 0)
- at = entries;
-
- gint added = 0;
- GQueue folders = G_QUEUE_INIT;
- struct index * filenames = index_new ();
-
- for (; list != NULL; list = list->next)
- {
- if (filename_is_playlist (list->data))
- {
- playlist_insert_playlist (playlist, at + added, list->data);
- added += playlist_entry_count (playlist) - entries;
- entries = playlist_entry_count (playlist);
- }
- else if (vfs_file_test (list->data, G_FILE_TEST_IS_DIR))
- g_queue_push_tail (& folders, list->data);
- else
- index_append (filenames, g_strdup (list->data));
- }
-
- playlist_entry_insert_batch (playlist, at + added, filenames, NULL);
- added += playlist_entry_count (playlist) - entries;
-
- if (added && play)
- {
- playlist_set_playing (playlist);
- if (! cfg.shuffle)
- playlist_set_position (playlist, at);
- playback_play (0, FALSE);
- play = FALSE;
- }
-
- const gchar * folder;
- while ((folder = g_queue_pop_head (& folders)) != NULL)
- {
- playlist_insert_folder (playlist, at + added, folder, play);
- play = FALSE;
- }
+ playlist_entry_insert_batch (playlist, at, filenames, NULL, play);
}
-void drct_pl_add (const gchar * filename, gint at)
+void drct_pl_add (const char * filename, int at)
{
- GList * list = g_list_prepend (NULL, (void *) filename);
- add_list (list, at, FALSE, FALSE);
- g_list_free (list);
+ Index * filenames = index_new ();
+ index_append (filenames, str_get (filename));
+ add_list (filenames, at, FALSE, FALSE);
}
-void drct_pl_add_list (GList * list, gint at)
+void drct_pl_add_list (Index * filenames, int at)
{
- add_list (list, at, FALSE, FALSE);
+ add_list (filenames, at, FALSE, FALSE);
}
-void drct_pl_open (const gchar * filename)
+void drct_pl_open (const char * filename)
{
- GList * list = g_list_prepend (NULL, (void *) filename);
- add_list (list, -1, cfg.open_to_temporary, TRUE);
- g_list_free (list);
+ Index * filenames = index_new ();
+ index_append (filenames, str_get (filename));
+ add_list (filenames, -1, get_bool (NULL, "open_to_temporary"), TRUE);
}
-void drct_pl_open_list (GList * list)
+void drct_pl_open_list (Index * filenames)
{
- add_list (list, -1, cfg.open_to_temporary, TRUE);
+ add_list (filenames, -1, get_bool (NULL, "open_to_temporary"), TRUE);
}
-void drct_pl_open_temp (const gchar * filename)
+void drct_pl_open_temp (const char * filename)
{
- GList * list = g_list_prepend (NULL, (void *) filename);
- add_list (list, -1, TRUE, TRUE);
- g_list_free (list);
+ Index * filenames = index_new ();
+ index_append (filenames, str_get (filename));
+ add_list (filenames, -1, TRUE, TRUE);
}
-void drct_pl_open_temp_list (GList * list)
+void drct_pl_open_temp_list (Index * filenames)
{
- add_list (list, -1, TRUE, TRUE);
-}
-
-void drct_pl_delete (gint entry)
-{
- playlist_entry_delete (playlist_get_active (), entry, 1);
+ add_list (filenames, -1, TRUE, TRUE);
}
/* Advancing to the next song when the current one is deleted is tricky. First,
@@ -375,12 +253,12 @@ void drct_pl_delete (gint entry)
* to a new song without worrying about picking one that is also selected.
* Finally, we can delete the former current song without stopping playback. */
-void drct_pl_delete_selected (void)
+void drct_pl_delete_selected (int list)
{
- gint list = playlist_get_active ();
- gint pos = playlist_get_position (list);
+ int pos = playlist_get_position (list);
- if (cfg.advance_on_delete && ! cfg.no_playlist_advance
+ if (get_bool (NULL, "advance_on_delete")
+ && ! get_bool (NULL, "no_playlist_advance")
&& playback_get_playing () && list == playlist_get_playing ()
&& pos >= 0 && playlist_entry_get_selected (list, pos))
{
@@ -388,7 +266,7 @@ void drct_pl_delete_selected (void)
playlist_delete_selected (list);
pos = playlist_get_position (list); /* it may have moved */
- if (playlist_next_song (list, cfg.repeat)
+ if (playlist_next_song (list, get_bool (NULL, "repeat"))
&& playlist_get_position (list) != pos)
playback_play (0, FALSE);
@@ -397,49 +275,3 @@ void drct_pl_delete_selected (void)
else
playlist_delete_selected (list);
}
-
-void drct_pl_clear (void)
-{
- gint playlist = playlist_get_active ();
- playlist_entry_delete (playlist, 0, playlist_entry_count (playlist));
-}
-
-/* --- PLAYLIST QUEUE CONTROL --- */
-
-gint drct_pq_get_length (void)
-{
- return playlist_queue_count (playlist_get_active ());
-}
-
-gint drct_pq_get_entry (gint queue_position)
-{
- return playlist_queue_get_entry (playlist_get_active (), queue_position);
-}
-
-gboolean drct_pq_is_queued (gint entry)
-{
- return (drct_pq_get_queue_position (entry) >= 0);
-}
-
-gint drct_pq_get_queue_position (gint entry)
-{
- return playlist_queue_find_entry (playlist_get_active (), entry);
-}
-
-void drct_pq_add (gint entry)
-{
- playlist_queue_insert (playlist_get_active (), -1, entry);
-}
-
-void drct_pq_remove (gint entry)
-{
- gint playlist = playlist_get_active ();
- playlist_queue_delete (playlist, playlist_queue_find_entry (playlist,
- entry), 1);
-}
-
-void drct_pq_clear (void)
-{
- gint playlist = playlist_get_active ();
- playlist_queue_delete (playlist, 0, playlist_queue_count (playlist));
-}
diff --git a/src/audacious/drct.h b/src/audacious/drct.h
index 3d8976d..b909c21 100644
--- a/src/audacious/drct.h
+++ b/src/audacious/drct.h
@@ -22,8 +22,9 @@
#ifndef AUDACIOUS_DRCT_H
#define AUDACIOUS_DRCT_H
-#include <glib.h>
#include <audacious/api.h>
+#include <libaudcore/core.h>
+#include <libaudcore/index.h>
#define AUD_API_NAME DRCTAPI
#define AUD_API_SYMBOL drct_api
diff --git a/src/audacious/effect.c b/src/audacious/effect.c
index f407099..d83c29e 100644
--- a/src/audacious/effect.c
+++ b/src/audacious/effect.c
@@ -20,6 +20,7 @@
*/
#include <glib.h>
+#include <pthread.h>
#include "debug.h"
#include "effect.h"
@@ -30,19 +31,19 @@
typedef struct {
PluginHandle * plugin;
EffectPlugin * header;
- gint channels_returned, rate_returned;
- gboolean remove_flag;
+ int channels_returned, rate_returned;
+ bool_t remove_flag;
} RunningEffect;
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static GList * running_effects = NULL; /* (RunningEffect *) */
-static gint input_channels, input_rate;
+static int input_channels, input_rate;
typedef struct {
- gint * channels, * rate;
+ int * channels, * rate;
} EffectStartState;
-static gboolean effect_start_cb (PluginHandle * plugin, EffectStartState * state)
+static bool_t effect_start_cb (PluginHandle * plugin, EffectStartState * state)
{
AUDDBG ("Starting %s at %d channels, %d Hz.\n", plugin_get_name (plugin),
* state->channels, * state->rate);
@@ -61,9 +62,9 @@ static gboolean effect_start_cb (PluginHandle * plugin, EffectStartState * state
return TRUE;
}
-void effect_start (gint * channels, gint * rate)
+void effect_start (int * channels, int * rate)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
AUDDBG ("Starting effects.\n");
g_list_foreach (running_effects, (GFunc) g_free, NULL);
@@ -78,12 +79,12 @@ void effect_start (gint * channels, gint * rate)
& state);
running_effects = g_list_reverse (running_effects);
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
typedef struct {
- gfloat * * data;
- gint * samples;
+ float * * data;
+ int * samples;
} EffectProcessState;
static void effect_process_cb (RunningEffect * effect, EffectProcessState *
@@ -92,7 +93,6 @@ static void effect_process_cb (RunningEffect * effect, EffectProcessState *
if (effect->remove_flag)
{
effect->header->finish (state->data, state->samples);
- effect->header->finish (state->data, state->samples);
running_effects = g_list_remove (running_effects, effect);
g_free (effect);
@@ -101,67 +101,70 @@ static void effect_process_cb (RunningEffect * effect, EffectProcessState *
effect->header->process (state->data, state->samples);
}
-void effect_process (gfloat * * data, gint * samples)
+void effect_process (float * * data, int * samples)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
EffectProcessState state = {data, samples};
g_list_foreach (running_effects, (GFunc) effect_process_cb, & state);
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
void effect_flush (void)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
for (GList * node = running_effects; node != NULL; node = node->next)
((RunningEffect *) node->data)->header->flush ();
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
-void effect_finish (gfloat * * data, gint * samples)
+void effect_finish (float * * data, int * samples)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
for (GList * node = running_effects; node != NULL; node = node->next)
((RunningEffect *) node->data)->header->finish (data, samples);
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
-gint effect_decoder_to_output_time (gint time)
+int effect_decoder_to_output_time (int time)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
for (GList * node = running_effects; node != NULL; node = node->next)
- time = ((RunningEffect *) node->data)->header->decoder_to_output_time
- (time);
+ {
+ if (PLUGIN_HAS_FUNC (((RunningEffect *) node->data)->header, decoder_to_output_time))
+ time = ((RunningEffect *) node->data)->header->decoder_to_output_time (time);
+ }
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
return time;
}
-gint effect_output_to_decoder_time (gint time)
+int effect_output_to_decoder_time (int time)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
- for (GList * node = g_list_last (running_effects); node != NULL; node =
- node->prev)
- time = ((RunningEffect *) node->data)->header->output_to_decoder_time
- (time);
+ for (GList * node = g_list_last (running_effects); node != NULL; node = node->prev)
+ {
+ if (PLUGIN_HAS_FUNC (((RunningEffect *) node->data)->header, output_to_decoder_time))
+ time = ((RunningEffect *) node->data)->header->output_to_decoder_time (time);
+ }
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
return time;
}
-static gint effect_find_cb (RunningEffect * effect, PluginHandle * plugin)
+static int effect_find_cb (RunningEffect * effect, PluginHandle * plugin)
{
return (effect->plugin == plugin) ? 0 : -1;
}
-static gint effect_compare (RunningEffect * a, RunningEffect * b)
+static int effect_compare (RunningEffect * a, RunningEffect * b)
{
return plugin_compare (a->plugin, b->plugin);
}
@@ -182,7 +185,7 @@ static void effect_insert (PluginHandle * plugin, EffectPlugin * header)
(GCompareFunc) effect_compare);
GList * node = g_list_find (running_effects, effect);
- gint channels, rate;
+ int channels, rate;
if (node->prev != NULL)
{
RunningEffect * prev = node->prev->data;
@@ -216,31 +219,31 @@ static void effect_remove (PluginHandle * plugin)
((RunningEffect *) node->data)->remove_flag = TRUE;
}
-static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, gboolean
+static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, bool_t
enable)
{
if (ep->preserves_format)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
if (enable)
effect_insert (plugin, ep);
else
effect_remove (plugin);
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
else
{
AUDDBG ("Reset to add/remove %s.\n", plugin_get_name (plugin));
- gint time = playback_get_time ();
- gboolean paused = playback_get_paused ();
+ int time = playback_get_time ();
+ bool_t paused = playback_get_paused ();
playback_stop ();
playback_play (time, paused);
}
}
-gboolean effect_plugin_start (PluginHandle * plugin)
+bool_t effect_plugin_start (PluginHandle * plugin)
{
if (playback_get_playing ())
{
diff --git a/src/audacious/effect.h b/src/audacious/effect.h
index 14afce4..c5e6b18 100644
--- a/src/audacious/effect.h
+++ b/src/audacious/effect.h
@@ -23,18 +23,18 @@
#ifndef AUDACIOUS_EFFECT_H
#define AUDACIOUS_EFFECT_H
-#include <glib.h>
+#include <libaudcore/core.h>
#include "types.h"
-void effect_start (gint * channels, gint * rate);
-void effect_process (gfloat * * data, gint * samples);
+void effect_start (int * channels, int * rate);
+void effect_process (float * * data, int * samples);
void effect_flush (void);
-void effect_finish (gfloat * * data, gint * samples);
-gint effect_decoder_to_output_time (gint time);
-gint effect_output_to_decoder_time (gint time);
+void effect_finish (float * * data, int * samples);
+int effect_decoder_to_output_time (int time);
+int effect_output_to_decoder_time (int time);
-gboolean effect_plugin_start (PluginHandle * plugin);
+bool_t effect_plugin_start (PluginHandle * plugin);
void effect_plugin_stop (PluginHandle * plugin);
#endif
diff --git a/src/audacious/equalizer.c b/src/audacious/equalizer.c
index af13771..36d5ce6 100644
--- a/src/audacious/equalizer.c
+++ b/src/audacious/equalizer.c
@@ -8,17 +8,20 @@
*
* Copyright 2001 Anders Johansson <ajh at atri.curtin.edu.au>
*
- * Adapted for Audacious by John Lindgren, 2010
+ * Adapted for Audacious by John Lindgren, 2010-2011
*/
#include <glib.h>
#include <math.h>
+#include <pthread.h>
#include <string.h>
+#include <libaudcore/audstrings.h>
#include <libaudcore/hook.h>
-#include "audconfig.h"
#include "equalizer.h"
+#include "misc.h"
+#include "types.h"
#define EQ_BANDS AUD_EQUALIZER_NBANDS
#define MAX_CHANNELS 10
@@ -31,23 +34,23 @@
/* These are not the historical WinAmp frequencies, because the IIR filters used
* here are designed for each frequency to be twice the previous. Using WinAmp
* frequencies leads to too much gain in some bands and too little in others. */
-static const gfloat CF[EQ_BANDS] = {31.25, 62.5, 125, 250, 500, 1000, 2000,
+static const float CF[EQ_BANDS] = {31.25, 62.5, 125, 250, 500, 1000, 2000,
4000, 8000, 16000};
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static gboolean active;
-static gint channels, rate;
-static gfloat a[EQ_BANDS][2]; /* A weights */
-static gfloat b[EQ_BANDS][2]; /* B weights */
-static gfloat wqv[MAX_CHANNELS][EQ_BANDS][2]; /* Circular buffer for W data */
-static gfloat gv[MAX_CHANNELS][EQ_BANDS]; /* Gain factor for each channel and band */
-static gint K; /* Number of used eq bands */
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static bool_t active;
+static int channels, rate;
+static float a[EQ_BANDS][2]; /* A weights */
+static float b[EQ_BANDS][2]; /* B weights */
+static float wqv[MAX_CHANNELS][EQ_BANDS][2]; /* Circular buffer for W data */
+static float gv[MAX_CHANNELS][EQ_BANDS]; /* Gain factor for each channel and band */
+static int K; /* Number of used eq bands */
/* 2nd order band-pass filter design */
-static void bp2 (gfloat * a, gfloat * b, gfloat fc, gfloat q)
+static void bp2 (float * a, float * b, float fc, float q)
{
- gfloat th = 2 * M_PI * fc;
- gfloat C = (1 - tanf (th * q / 2)) / (1 + tanf (th * q / 2));
+ float th = 2 * M_PI * fc;
+ float C = (1 - tanf (th * q / 2)) / (1 + tanf (th * q / 2));
a[0] = (1 + C) * cosf (th);
a[1] = -C;
@@ -55,11 +58,11 @@ static void bp2 (gfloat * a, gfloat * b, gfloat fc, gfloat q)
b[1] = -1.005;
}
-void eq_set_format (gint new_channels, gint new_rate)
+void eq_set_format (int new_channels, int new_rate)
{
- gint k;
+ int k;
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
channels = new_channels;
rate = new_rate;
@@ -67,68 +70,59 @@ void eq_set_format (gint new_channels, gint new_rate)
/* Calculate number of active filters */
K = EQ_BANDS;
- while (CF[K - 1] > (gfloat) rate / 2.2)
+ while (CF[K - 1] > (float) rate / 2.2)
K --;
/* Generate filter taps */
for (k = 0; k < K; k ++)
- bp2 (a[k], b[k], CF[k] / (gfloat) rate, Q);
+ bp2 (a[k], b[k], CF[k] / (float) rate, Q);
/* Reset state */
memset (wqv[0][0], 0, sizeof wqv);
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
-static void eq_set_channel_bands (gint channel, gfloat * bands)
+static void eq_set_bands_real (double preamp, double * values)
{
- gint k;
+ float adj[EQ_BANDS];
+ for (int i = 0; i < EQ_BANDS; i ++)
+ adj[i] = preamp + values[i];
- for (k = 0; k < EQ_BANDS; k ++)
- gv[channel][k] = pow (10, bands[k] / 20) - 1;
+ for (int c = 0; c < MAX_CHANNELS; c ++)
+ for (int i = 0; i < EQ_BANDS; i ++)
+ gv[c][i] = pow (10, adj[i] / 20) - 1;
}
-static void eq_set_bands (gfloat preamp, gfloat * bands)
+void eq_filter (float * data, int samples)
{
- gfloat adjusted[EQ_BANDS];
- gint i;
+ int channel;
- for (i = 0; i < EQ_BANDS; i ++)
- adjusted[i] = preamp + bands[i];
-
- for (i = 0; i < MAX_CHANNELS; i ++)
- eq_set_channel_bands (i, adjusted);
-}
-
-void eq_filter (gfloat * data, gint samples)
-{
- gint channel;
-
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
if (! active)
{
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
return;
}
for (channel = 0; channel < channels; channel ++)
{
- gfloat * g = gv[channel]; /* Gain factor */
- gfloat * end = data + samples;
- gfloat * f;
+ float * g = gv[channel]; /* Gain factor */
+ float * end = data + samples;
+ float * f;
for (f = data + channel; f < end; f += channels)
{
- gint k; /* Frequency band index */
- gfloat yt = * f; /* Current input sample */
+ int k; /* Frequency band index */
+ float yt = * f; /* Current input sample */
for (k = 0; k < K; k ++)
{
/* Pointer to circular buffer wq */
- gfloat * wq = wqv[channel][k];
+ float * wq = wqv[channel][k];
/* Calculate output from AR part of current filter */
- gfloat w = yt * b[k][0] + wq[0] * a[k][0] + wq[1] * a[k][1];
+ float w = yt * b[k][0] + wq[0] * a[k][0] + wq[1] * a[k][1];
/* Calculate output from MA part of current filter */
yt += (w + wq[1] * b[k][1]) * g[k];
@@ -143,21 +137,66 @@ void eq_filter (gfloat * data, gint samples)
}
}
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
-static void eq_update (void * data, void * user_data)
+static void eq_update (void * data, void * user)
{
- g_static_mutex_lock (& mutex);
+ pthread_mutex_lock (& mutex);
+
+ active = get_bool (NULL, "equalizer_active");
- active = cfg.equalizer_active;
- eq_set_bands (cfg.equalizer_preamp, cfg.equalizer_bands);
+ double values[EQ_BANDS];
+ eq_get_bands (values);
+ eq_set_bands_real (get_double (NULL, "equalizer_preamp"), values);
- g_static_mutex_unlock (& mutex);
+ pthread_mutex_unlock (& mutex);
}
void eq_init (void)
{
eq_update (NULL, NULL);
- hook_associate ("equalizer changed", eq_update, NULL);
+ hook_associate ("set equalizer_active", eq_update, NULL);
+ hook_associate ("set equalizer_preamp", eq_update, NULL);
+ hook_associate ("set equalizer_bands", eq_update, NULL);
+}
+
+void eq_cleanup (void)
+{
+ hook_dissociate ("set equalizer_active", eq_update);
+ hook_dissociate ("set equalizer_preamp", eq_update);
+ hook_dissociate ("set equalizer_bands", eq_update);
+}
+
+void eq_set_bands (const double * values)
+{
+ char * string = double_array_to_string (values, EQ_BANDS);
+ g_return_if_fail (string);
+ set_string (NULL, "equalizer_bands", string);
+ g_free (string);
+}
+
+void eq_get_bands (double * values)
+{
+ memset (values, 0, sizeof (double) * EQ_BANDS);
+ char * string = get_string (NULL, "equalizer_bands");
+ string_to_double_array (string, values, EQ_BANDS);
+ g_free (string);
+}
+
+void eq_set_band (int band, double value)
+{
+ g_return_if_fail (band >= 0 && band < EQ_BANDS);
+ double values[EQ_BANDS];
+ eq_get_bands (values);
+ values[band] = value;
+ eq_set_bands (values);
+}
+
+double eq_get_band (int band)
+{
+ g_return_val_if_fail (band >= 0 && band < EQ_BANDS, 0);
+ double values[EQ_BANDS];
+ eq_get_bands (values);
+ return values[band];
}
diff --git a/src/audacious/equalizer.h b/src/audacious/equalizer.h
index 1115066..d5ab4f9 100644
--- a/src/audacious/equalizer.h
+++ b/src/audacious/equalizer.h
@@ -22,10 +22,9 @@
#ifndef AUDACIOUS_EQUALIZER_H
#define AUDACIOUS_EQUALIZER_H
-#include <glib.h>
-
void eq_init (void);
-void eq_set_format (gint new_channels, gint new_rate);
-void eq_filter (gfloat * data, gint samples);
+void eq_cleanup (void);
+void eq_set_format (int new_channels, int new_rate);
+void eq_filter (float * data, int samples);
#endif
diff --git a/src/audacious/equalizer_preset.c b/src/audacious/equalizer_preset.c
index 34a564b..6d7560c 100644
--- a/src/audacious/equalizer_preset.c
+++ b/src/audacious/equalizer_preset.c
@@ -1,5 +1,5 @@
/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2008 Audacious team
+ * Copyright (C) 2005-2011 Audacious team
*
* 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
@@ -18,6 +18,7 @@
*/
#include <glib.h>
+#include <string.h>
#include "config.h"
#include "debug.h"
@@ -25,21 +26,19 @@
#include "interface.h"
#include "misc.h"
-static EqualizerPreset * equalizer_preset_new (const gchar * name)
+static EqualizerPreset * equalizer_preset_new (const char * name)
{
EqualizerPreset *preset = g_new0(EqualizerPreset, 1);
preset->name = g_strdup(name);
return preset;
}
-GList *
-equalizer_read_presets(const gchar *basename)
+Index * equalizer_read_presets (const char * basename)
{
- gchar *filename, *name;
+ char *filename, *name;
GKeyFile *rcfile;
GError *error = NULL;
- GList *list = NULL;
- gint i, p = 0;
+ int i, p = 0;
EqualizerPreset *preset;
filename = g_build_filename (get_path (AUD_PATH_USER_DIR), basename, NULL);
@@ -61,9 +60,11 @@ equalizer_read_presets(const gchar *basename)
g_free(filename);
+ Index * list = index_new ();
+
for (;;)
{
- gchar section[32];
+ char section[32];
error = NULL;
g_snprintf(section, sizeof(section), "Preset%d", p++);
@@ -78,7 +79,7 @@ equalizer_read_presets(const gchar *basename)
for (i = 0; i < AUD_EQUALIZER_NBANDS; i++)
{
- gchar band[16];
+ char band[16];
g_snprintf(band, sizeof(band), "Band%d", i);
error = NULL;
@@ -86,37 +87,33 @@ equalizer_read_presets(const gchar *basename)
preset->bands[i] = g_key_file_get_double(rcfile, name, band, &error);
}
- list = g_list_prepend(list, preset);
+ index_append (list, preset);
}
else
break;
}
- list = g_list_reverse(list);
g_key_file_free(rcfile);
return list;
}
-gboolean equalizer_write_preset_file (GList * list, const gchar * basename)
+bool_t equalizer_write_preset_file (Index * list, const char * basename)
{
- gchar *filename, *tmp;
- gint i, p;
- EqualizerPreset *preset;
+ char *filename;
+ int i;
GKeyFile *rcfile;
- GList *node;
- gchar *data;
+ char *data;
gsize len;
GError *error = NULL;
rcfile = g_key_file_new();
- p = 0;
- for (node = list; node; node = g_list_next(node))
+ for (int p = 0; p < index_count (list); p ++)
{
- preset = node->data;
+ EqualizerPreset * preset = index_get (list, p);
- tmp = g_strdup_printf("Preset%d", p++);
+ char * tmp = g_strdup_printf ("Preset%d", p);
g_key_file_set_string(rcfile, "Presets", tmp, preset->name);
g_free(tmp);
@@ -134,7 +131,7 @@ gboolean equalizer_write_preset_file (GList * list, const gchar * basename)
filename = g_build_filename (get_path (AUD_PATH_USER_DIR), basename, NULL);
data = g_key_file_to_data(rcfile, &len, &error);
- gboolean success = g_file_set_contents (filename, data, len, & error);
+ bool_t success = g_file_set_contents (filename, data, len, & error);
g_free(data);
g_key_file_free(rcfile);
@@ -142,16 +139,14 @@ gboolean equalizer_write_preset_file (GList * list, const gchar * basename)
return success;
}
-GList *
-import_winamp_eqf(VFSFile * file)
+Index * import_winamp_eqf (VFSFile * file)
{
- gchar header[31];
- gchar bands[11];
- gint i = 0;
+ char header[31];
+ char bands[11];
+ int i = 0;
EqualizerPreset *preset = NULL;
- GList *list = NULL;
- gchar *markup;
- gchar preset_name[0xb4];
+ char *markup;
+ char preset_name[0xb4];
if (vfs_fread (header, 1, sizeof header, file) != sizeof header || strncmp
(header, "Winamp EQ library file v1.1", 27))
@@ -161,6 +156,8 @@ import_winamp_eqf(VFSFile * file)
if (vfs_fseek(file, 0x1f, SEEK_SET) == -1) goto error;
+ Index * list = index_new ();
+
while (vfs_fread(preset_name, 1, 0xb4, file) == 0xb4) {
AUDDBG("The preset name is '%s'\n", preset_name);
if (vfs_fseek (file, 0x4d, SEEK_CUR)) /* unknown crap --asphyx */
@@ -174,28 +171,25 @@ import_winamp_eqf(VFSFile * file)
for (i = 0; i < 10; i++)
preset->bands[i] = EQUALIZER_MAX_GAIN - ((bands[i] * EQUALIZER_MAX_GAIN * 2) / 64.0);
- list = g_list_prepend(list, preset);
+ index_append (list, preset);
}
- list = g_list_reverse(list);
- if (list == NULL) goto error;
-
return list;
error:
markup = g_strdup_printf (_("Error importing Winamp EQF file '%s'"),
- file->uri);
- interface_show_error_message(markup);
+ vfs_get_filename (file));
+ interface_show_error(markup);
g_free(markup);
return NULL;
}
-gboolean save_preset_file (EqualizerPreset * preset, const gchar * filename)
+bool_t save_preset_file (EqualizerPreset * preset, const char * filename)
{
GKeyFile *rcfile;
- gint i;
- gchar *data;
+ int i;
+ char *data;
gsize len;
GError *error = NULL;
@@ -203,7 +197,7 @@ gboolean save_preset_file (EqualizerPreset * preset, const gchar * filename)
g_key_file_set_double(rcfile, "Equalizer preset", "Preamp", preset->preamp);
for (i = 0; i < 10; i++) {
- gchar tmp[7];
+ char tmp[7];
g_snprintf(tmp, sizeof(tmp), "Band%d", i);
g_key_file_set_double(rcfile, "Equalizer preset", tmp,
preset->bands[i]);
@@ -211,7 +205,7 @@ gboolean save_preset_file (EqualizerPreset * preset, const gchar * filename)
data = g_key_file_to_data(rcfile, &len, &error);
- gboolean success = FALSE;
+ bool_t success = FALSE;
VFSFile * file = vfs_fopen (filename, "w");
if (file == NULL)
@@ -226,9 +220,9 @@ DONE:
return success;
}
-static EqualizerPreset * equalizer_read_aud_preset (const gchar * filename)
+static EqualizerPreset * equalizer_read_aud_preset (const char * filename)
{
- gint i;
+ int i;
EqualizerPreset *preset;
GKeyFile *rcfile;
GError *error = NULL;
@@ -240,13 +234,15 @@ static EqualizerPreset * equalizer_read_aud_preset (const gchar * filename)
if (!g_key_file_load_from_file(rcfile, filename, G_KEY_FILE_NONE, &error))
{
g_key_file_free(rcfile);
+ g_free(preset->name);
+ g_free(preset);
return NULL;
}
preset->preamp = g_key_file_get_double(rcfile, "Equalizer preset", "Preamp", &error);
for (i = 0; i < 10; i++)
{
- gchar tmp[7];
+ char tmp[7];
g_snprintf(tmp, sizeof(tmp), "Band%d", i);
preset->bands[i] = g_key_file_get_double(rcfile, "Equalizer preset", tmp, &error);
@@ -257,7 +253,7 @@ static EqualizerPreset * equalizer_read_aud_preset (const gchar * filename)
}
EqualizerPreset *
-load_preset_file(const gchar *filename)
+load_preset_file(const char *filename)
{
if (filename) {
EqualizerPreset *preset = equalizer_read_aud_preset(filename);
diff --git a/src/audacious/fft.c b/src/audacious/fft.c
index 70dac78..abe323f 100644
--- a/src/audacious/fft.c
+++ b/src/audacious/fft.c
@@ -1,270 +1,127 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007 Audacious development team
+/*
+ * fft.c
+ * Copyright 2011 John Lindgren
*
- * Copyright (C) 1999 Richard Boulton <richard at tartarus.org>
- * Convolution stuff by Ralph Loader <suckfish at ihug.co.nz>
+ * This file is part of Audacious.
*
- * 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; under version 3 of the License.
+ * Audacious 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, version 2 or version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-/* fft.c: iterative implementation of a FFT */
-
-/*
- * TODO
- * Remove compiling in of FFT_BUFFER_SIZE? (Might slow things down, but would
- * be nice to be able to change size at runtime.)
- * Finish making / checking thread-safety.
- * More optimisations.
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <complex.h>
+#include <math.h>
+#include "config.h"
#include "fft.h"
-#include <glib.h>
-#include <stdlib.h>
-#include <math.h>
-#ifndef PI
-#ifdef M_PI
-#define PI M_PI
-#else
-#define PI 3.14159265358979323846 /* pi */
-#endif
+#ifndef HAVE_CEXPF
+/* e^(a+bi) = (e^a)(cos(b)+sin(b)i) */
+#define cexpf(x) (expf(crealf(x))*(cosf(cimagf(x))+sinf(cimagf(x))*I))
+#warning Your C library does not have cexpf(). Please update it.
#endif
-/* ########### */
-/* # Structs # */
-/* ########### */
-
-struct _struct_fft_state {
- /* Temporary data stores to perform FFT in. */
- float real[FFT_BUFFER_SIZE];
- float imag[FFT_BUFFER_SIZE];
-};
-
-/* ############################# */
-/* # Local function prototypes # */
-/* ############################# */
-
-static void fft_prepare(const sound_sample * input, float *re, float *im);
-static void fft_calculate(float *re, float *im);
-static void fft_output(const float *re, const float *im, float *output);
-static int reverseBits(unsigned int initial);
+#define N 512 /* size of the DFT */
+#define LOGN 9 /* log N (base 2) */
-/* #################### */
-/* # Global variables # */
-/* #################### */
+static float hamming[N]; /* hamming window, scaled to sum to 1 */
+static int reversed[N]; /* bit-reversal table */
+static float complex roots[N / 2]; /* N-th roots of unity */
+static char generated = 0; /* set if tables have been generated */
-/* Table to speed up bit reverse copy */
-static unsigned int bitReverse[FFT_BUFFER_SIZE];
+/* Reverse the order of the lowest LOGN bits in an integer. */
-/* The next two tables could be made to use less space in memory, since they
- * overlap hugely, but hey. */
-static float sintable[FFT_BUFFER_SIZE / 2];
-static float costable[FFT_BUFFER_SIZE / 2];
-
-/* ############################## */
-/* # Externally called routines # */
-/* ############################## */
-
-/* --------- */
-/* FFT stuff */
-/* --------- */
-
-/*
- * Initialisation routine - sets up tables and space to work in.
- * Returns a pointer to internal state, to be used when performing calls.
- * On error, returns NULL.
- * The pointer should be freed when it is finished with, by fft_close().
- */
-fft_state *
-fft_init(void)
+static int bit_reverse (int x)
{
- fft_state *state;
- unsigned int i;
-
- state = (fft_state *) g_malloc(sizeof(fft_state));
- if (!state)
- return NULL;
+ int y = 0;
- for (i = 0; i < FFT_BUFFER_SIZE; i++) {
- bitReverse[i] = reverseBits(i);
- }
- for (i = 0; i < FFT_BUFFER_SIZE / 2; i++) {
- float j = 2 * PI * i / FFT_BUFFER_SIZE;
- costable[i] = cos(j);
- sintable[i] = sin(j);
+ for (int n = LOGN; n --; )
+ {
+ y = (y << 1) | (x & 1);
+ x >>= 1;
}
- return state;
+ return y;
}
-/*
- * Do all the steps of the FFT, taking as input sound data (as described in
- * sound.h) and returning the intensities of each frequency as floats in the
- * range 0 to ((FFT_BUFFER_SIZE / 2) * 32768) ^ 2
- *
- * FIXME - the above range assumes no frequencies present have an amplitude
- * larger than that of the sample variation. But this is false: we could have
- * a wave such that its maximums are always between samples, and it's just
- * inside the representable range at the places samples get taken.
- * Question: what _is_ the maximum value possible. Twice that value? Root
- * two times that value? Hmmm. Think it depends on the frequency, too.
- *
- * The input array is assumed to have FFT_BUFFER_SIZE elements,
- * and the output array is assumed to have (FFT_BUFFER_SIZE / 2 + 1) elements.
- * state is a (non-NULL) pointer returned by fft_init.
- */
-void
-fft_perform(const sound_sample * input, float *output, fft_state * state)
-{
- /* Convert data from sound format to be ready for FFT */
- fft_prepare(input, state->real, state->imag);
+/* Generate lookup tables. */
- /* Do the actual FFT */
- fft_calculate(state->real, state->imag);
+static void generate_tables (void)
+{
+ if (generated)
+ return;
- /* Convert the FFT output into intensities */
- fft_output(state->real, state->imag, output);
-}
+ for (int n = 0; n < N; n ++)
+ hamming[n] = 1 - 0.85 * cosf (2 * M_PI * n / N);
+ for (int n = 0; n < N; n ++)
+ reversed[n] = bit_reverse (n);
+ for (int n = 0; n < N / 2; n ++)
+ roots[n] = cexpf (2 * M_PI * I * n / N);
-/*
- * Free the state.
- */
-void
-fft_close(fft_state * state)
-{
- if (state)
- free(state);
+ generated = 1;
}
-/* ########################### */
-/* # Locally called routines # */
-/* ########################### */
+/* Perform the DFT using the Cooley-Tukey algorithm. At each step s, where
+ * s=1..log N (base 2), there are N/(2^s) groups of intertwined butterfly
+ * operations. Each group contains (2^s)/2 butterflies, and each butterfly has
+ * a span of (2^s)/2. The twiddle factors are nth roots of unity where n = 2^s. */
-/*
- * Prepare data to perform an FFT on
- */
-static void
-fft_prepare(const sound_sample * input, float *re, float *im)
+static void do_fft (float complex a[N])
{
- unsigned int i;
- float *realptr = re;
- float *imagptr = im;
+ int half = 1; /* (2^s)/2 */
+ int inv = N / 2; /* N/(2^s) */
+
+ /* loop through steps */
+ while (inv)
+ {
+ /* loop through groups */
+ for (int g = 0; g < N; g += half << 1)
+ {
+ /* loop through butterflies */
+ for (int b = 0, r = 0; b < half; b ++, r += inv)
+ {
+ float complex even = a[g + b];
+ float complex odd = roots[r] * a[g + half + b];
+ a[g + b] = even + odd;
+ a[g + half + b] = even - odd;
+ }
+ }
- /* Get input, in reverse bit order */
- for (i = 0; i < FFT_BUFFER_SIZE; i++) {
- *realptr++ = input[bitReverse[i]];
- *imagptr++ = 0;
+ half <<= 1;
+ inv >>= 1;
}
}
-/*
- * Take result of an FFT and calculate the intensities of each frequency
- * Note: only produces half as many data points as the input had.
- * This is roughly a consequence of the Nyquist sampling theorm thingy.
- * (FIXME - make this comment better, and helpful.)
- *
- * The two divisions by 4 are also a consequence of this: the contributions
- * returned for each frequency are split into two parts, one at i in the
- * table, and the other at FFT_BUFFER_SIZE - i, except for i = 0 and
- * FFT_BUFFER_SIZE which would otherwise get float (and then 4* when squared)
- * the contributions.
- */
-static void
-fft_output(const float *re, const float *im, float *output)
-{
- float *outputptr = output;
- const float *realptr = re;
- const float *imagptr = im;
- float *endptr = output + FFT_BUFFER_SIZE / 2;
+/* Input is N=512 PCM samples.
+ * Output is intensity of frequencies from 1 to N/2=256. */
- while (outputptr <= endptr) {
- *outputptr = (*realptr * *realptr) + (*imagptr * *imagptr);
- outputptr++;
- realptr++;
- imagptr++;
- }
- /* Do divisions to keep the constant and highest frequency terms in scale
- * with the other terms. */
- *output /= 4;
- *endptr /= 4;
-}
-
-/*
- * Actually perform the FFT
- */
-static void
-fft_calculate(float *re, float *im)
+void calc_freq (const float data[N], float freq[N / 2])
{
- unsigned int i, j, k;
- unsigned int exchanges;
- float fact_real, fact_imag;
- float tmp_real, tmp_imag;
- unsigned int factfact;
+ generate_tables ();
- /* Set up some variables to reduce calculation in the loops */
- exchanges = 1;
- factfact = FFT_BUFFER_SIZE / 2;
+ /* input is filtered by a Hamming window */
+ /* input values are in bit-reversed order */
+ float complex a[N];
+ for (int n = 0; n < N; n ++)
+ a[reversed[n]] = data[n] * hamming[n];
- /* Loop through the divide and conquer steps */
- for (i = FFT_BUFFER_SIZE_LOG; i != 0; i--) {
- /* In this step, we have 2 ^ (i - 1) exchange groups, each with
- * 2 ^ (FFT_BUFFER_SIZE_LOG - i) exchanges
- */
- /* Loop through the exchanges in a group */
- for (j = 0; j != exchanges; j++) {
- /* Work out factor for this exchange
- * factor ^ (exchanges) = -1
- * So, real = cos(j * PI / exchanges),
- * imag = sin(j * PI / exchanges)
- */
- fact_real = costable[j * factfact];
- fact_imag = sintable[j * factfact];
+ do_fft (a);
- /* Loop through all the exchange groups */
- for (k = j; k < FFT_BUFFER_SIZE; k += exchanges << 1) {
- int k1 = k + exchanges;
- /* newval[k] := val[k] + factor * val[k1]
- * newval[k1] := val[k] - factor * val[k1]
- **/
- /* FIXME - potential scope for more optimization here? */
- tmp_real = fact_real * re[k1] - fact_imag * im[k1];
- tmp_imag = fact_real * im[k1] + fact_imag * re[k1];
- re[k1] = re[k] - tmp_real;
- im[k1] = im[k] - tmp_imag;
- re[k] += tmp_real;
- im[k] += tmp_imag;
- }
- }
- exchanges <<= 1;
- factfact >>= 1;
- }
-}
+ /* output values are divided by N */
+ /* frequencies from 1 to N/2-1 are doubled */
+ for (int n = 0; n < N / 2 - 1; n ++)
+ freq[n] = 2 * cabsf (a[1 + n]) / N;
-static int
-reverseBits(unsigned int initial)
-{
- unsigned int reversed = 0, loop;
- for (loop = 0; loop < FFT_BUFFER_SIZE_LOG; loop++) {
- reversed <<= 1;
- reversed += (initial & 1);
- initial >>= 1;
- }
- return reversed;
+ /* frequency N/2 is not doubled */
+ freq[N / 2 - 1] = cabsf (a[N / 2]) / N;
}
diff --git a/src/audacious/fft.h b/src/audacious/fft.h
index 996a5d9..ccd283a 100644
--- a/src/audacious/fft.h
+++ b/src/audacious/fft.h
@@ -1,40 +1,27 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007 Audacious development team
+/*
+ * fft.h
+ * Copyright 2011 John Lindgren
*
- * Copyright (C) 1999 Richard Boulton <richard at tartarus.org>
+ * This file is part of Audacious.
*
- * 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; under version 3 of the License.
+ * Audacious 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, version 2 or version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
*/
-/* fft.h: header for iterative implementation of a FFT */
-
#ifndef AUDACIOUS_FFT_H
#define AUDACIOUS_FFT_H
-#include <glib.h>
-
-#define FFT_BUFFER_SIZE_LOG 9
-#define FFT_BUFFER_SIZE (1 << FFT_BUFFER_SIZE_LOG)
-
-/* sound sample - should be a signed 16 bit value */
-typedef gint16 sound_sample;
-
-typedef struct _struct_fft_state fft_state;
-fft_state *fft_init(void);
-void fft_perform(const sound_sample * input, float *output, fft_state * state);
-void fft_close(fft_state * state);
+void calc_freq (const float data[512], float freq[256]);
-#endif /* AUDACIOUS_FFT_H */
+#endif
diff --git a/src/audacious/folder-add.c b/src/audacious/folder-add.c
deleted file mode 100644
index 4435872..0000000
--- a/src/audacious/folder-add.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * folder-add.c
- * Copyright 2009-2011 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#include <dirent.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include <gtk/gtk.h>
-
-#include <libaudcore/audstrings.h>
-
-#include "audconfig.h"
-#include "config.h"
-#include "glib-compat.h"
-#include "i18n.h"
-#include "misc.h"
-#include "playback.h"
-#include "playlist.h"
-
-typedef struct {
- gchar * filename;
- PluginHandle * decoder;
-} AddFile;
-
-typedef struct {
- gint playlist_id, at;
- GQueue folders; // (gchar *)
- gboolean play;
-} AddGroup;
-
-static GQueue add_queue = G_QUEUE_INIT; // (AddGroup *)
-static gint add_source = 0;
-static GtkWidget * add_window = NULL, * add_progress_path, * add_progress_count;
-
-static void show_progress (const gchar * path, gint count)
-{
- if (add_window == NULL)
- {
- GtkWidget * vbox;
-
- add_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_type_hint (GTK_WINDOW(add_window),
- GDK_WINDOW_TYPE_HINT_DIALOG);
- gtk_window_set_title (GTK_WINDOW(add_window), _("Searching ..."));
- gtk_window_set_resizable (GTK_WINDOW(add_window), FALSE);
- gtk_container_set_border_width (GTK_CONTAINER(add_window), 6);
-
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_container_add (GTK_CONTAINER(add_window), vbox);
-
- add_progress_path = gtk_label_new ("");
- gtk_widget_set_size_request (add_progress_path, 320, -1);
- gtk_label_set_ellipsize (GTK_LABEL(add_progress_path),
- PANGO_ELLIPSIZE_MIDDLE);
- gtk_box_pack_start (GTK_BOX(vbox), add_progress_path, FALSE, FALSE, 0);
-
- add_progress_count = gtk_label_new ("");
- gtk_widget_set_size_request (add_progress_count, 320, -1);
- gtk_box_pack_start (GTK_BOX(vbox), add_progress_count, FALSE, FALSE, 0);
-
- gtk_widget_show_all (add_window);
-
- g_signal_connect (G_OBJECT(add_window), "destroy",
- G_CALLBACK(gtk_widget_destroyed), & add_window);
- }
-
- gtk_label_set_text (GTK_LABEL(add_progress_path), path);
-
- gchar scratch[128];
- snprintf (scratch, sizeof scratch, dngettext (PACKAGE, "%d file found",
- "%d files found", count), count);
- gtk_label_set_text (GTK_LABEL(add_progress_count), scratch);
-}
-
-static void show_done (void)
-{
- gtk_widget_destroy (add_window);
-}
-
-static gint sort_cb (const AddFile * a, const AddFile * b)
-{
- return string_compare_encoded (a->filename, b->filename);
-}
-
-static gboolean add_cb (void * unused)
-{
- static GList * stack = NULL; // (gchar *) and (DIR *) alternately
- static GList * big_list = NULL, * little_list = NULL; // (AddFile *)
-
- if (! stack)
- {
- AddGroup * group = g_queue_peek_head (& add_queue);
- g_return_val_if_fail (group, FALSE);
- gchar * folder = g_queue_pop_head (& group->folders);
- g_return_val_if_fail (folder, FALSE);
- stack = g_list_prepend (NULL, folder);
- }
-
- show_progress (stack->data, g_list_length (big_list) + g_list_length
- (little_list));
-
- for (gint count = 0; count < 30; count ++)
- {
- struct stat info;
-
- /* top of stack is (gchar *) */
-
- if (! stat (stack->data, & info))
- {
- if (S_ISREG (info.st_mode))
- {
- gchar * filename = filename_to_uri (stack->data);
- PluginHandle * decoder = (filename == NULL) ? NULL :
- file_find_decoder (filename, TRUE);
-
- if (decoder)
- {
- AddFile * file = g_slice_new (AddFile);
- file->filename = filename;
- file->decoder = decoder;
- little_list = g_list_prepend (little_list, file);
- }
- else
- g_free (filename);
- }
- else if (S_ISDIR (info.st_mode))
- {
- DIR * folder = opendir (stack->data);
-
- if (folder)
- {
- stack = g_list_prepend (stack, folder);
- goto READ;
- }
- }
- }
-
- g_free (stack->data);
- stack = g_list_delete_link (stack, stack);
-
- READ:
- if (! stack)
- break;
-
- /* top of stack is (DIR *) */
-
- struct dirent * entry = readdir (stack->data);
-
- if (entry)
- {
- if (entry->d_name[0] == '.')
- goto READ;
-
- stack = g_list_prepend (stack, g_strdup_printf ("%s"
- G_DIR_SEPARATOR_S "%s", (gchar *) stack->next->data, entry->d_name));
- }
- else
- {
- closedir (stack->data);
- stack = g_list_delete_link (stack, stack);
- g_free (stack->data);
- stack = g_list_delete_link (stack, stack);
- goto READ;
- }
- }
-
- if (stack)
- return TRUE; /* not done yet */
-
- AddGroup * group = g_queue_peek_head (& add_queue);
- g_return_val_if_fail (group, FALSE);
-
- little_list = g_list_sort (little_list, (GCompareFunc) sort_cb);
- big_list = g_list_concat (big_list, little_list);
- little_list = NULL;
-
- if (! g_queue_is_empty (& group->folders))
- return TRUE; /* not done yet */
-
- gint playlist = playlist_by_unique_id (group->playlist_id);
-
- if (playlist < 0) /* ouch! playlist deleted */
- {
- for (GList * node = big_list; node; node = node->next)
- {
- AddFile * file = node->data;
- g_free (file->filename);
- g_slice_free (AddFile, file);
- }
-
- g_list_free (big_list);
- big_list = NULL;
- goto ADDED;
- }
-
- struct index * filenames = index_new ();
- struct index * decoders = index_new ();
-
- for (GList * node = big_list; node; node = node->next)
- {
- AddFile * file = node->data;
- index_append (filenames, file->filename);
- index_append (decoders, file->decoder);
- g_slice_free (AddFile, file);
- }
-
- g_list_free (big_list);
- big_list = NULL;
-
- gint count = playlist_entry_count (playlist);
- if (group->at < 0 || group->at > count)
- group->at = count;
-
- playlist_entry_insert_batch_with_decoders (playlist, group->at,
- filenames, decoders, NULL);
-
- if (group->play && playlist_entry_count (playlist) > count)
- {
- playlist_set_playing (playlist);
- if (! cfg.shuffle)
- playlist_set_position (playlist, group->at);
- playback_play (0, FALSE);
- }
-
-ADDED:
- g_slice_free (AddGroup, group);
- g_queue_pop_head (& add_queue);
-
- if (! g_queue_is_empty (& add_queue))
- return TRUE; /* not done yet */
-
- show_done ();
- add_source = 0;
- return FALSE;
-}
-
-void playlist_insert_folder (gint playlist, gint at, const gchar * folder,
- gboolean play)
-{
- gint playlist_id = playlist_get_unique_id (playlist);
- g_return_if_fail (playlist_id >= 0);
-
- gchar * unix_name = uri_to_filename (folder);
- g_return_if_fail (unix_name);
-
- if (unix_name[strlen (unix_name) - 1] == '/')
- unix_name[strlen (unix_name) - 1] = 0;
-
- AddGroup * group = NULL;
-
- for (GList * node = g_queue_peek_head_link (& add_queue); node; node =
- node->next)
- {
- AddGroup * test = node->data;
- if (test->playlist_id == playlist_id && test->at == at)
- {
- group = test;
- break;
- }
- }
-
- if (! group)
- {
- group = g_slice_new (AddGroup);
- group->playlist_id = playlist_id;
- group->at = at;
- g_queue_init (& group->folders);
- group->play = FALSE;
- g_queue_push_tail (& add_queue, group);
- }
-
- g_queue_push_tail (& group->folders, unix_name);
- group->play |= play;
-
- if (! add_source)
- add_source = g_idle_add (add_cb, NULL);
-}
diff --git a/src/audacious/general.c b/src/audacious/general.c
index 7c8e60a..f18b5a9 100644
--- a/src/audacious/general.c
+++ b/src/audacious/general.c
@@ -34,10 +34,10 @@ typedef struct {
GtkWidget * widget;
} LoadedGeneral;
-static gint running = FALSE;
+static int running = FALSE;
static GList * loaded_general_plugins = NULL;
-static gint general_find_cb (LoadedGeneral * general, PluginHandle * plugin)
+static int general_find_cb (LoadedGeneral * general, PluginHandle * plugin)
{
return (general->plugin == plugin) ? 0 : -1;
}
@@ -93,7 +93,7 @@ static void general_unload (PluginHandle * plugin)
g_slice_free (LoadedGeneral, general);
}
-static gboolean general_init_cb (PluginHandle * plugin)
+static bool_t general_init_cb (PluginHandle * plugin)
{
general_load (plugin);
return TRUE;
@@ -121,7 +121,7 @@ void general_cleanup (void)
g_list_foreach (loaded_general_plugins, (GFunc) general_cleanup_cb, NULL);
}
-gboolean general_plugin_start (PluginHandle * plugin)
+bool_t general_plugin_start (PluginHandle * plugin)
{
GeneralPlugin * gp = plugin_get_header (plugin);
g_return_val_if_fail (gp != NULL, FALSE);
@@ -159,6 +159,6 @@ PluginHandle * general_plugin_by_widget (/* GtkWidget * */ void * widget)
if (general->widget == widget)
return general->plugin;
}
-
+
return NULL;
}
diff --git a/src/audacious/general.h b/src/audacious/general.h
index b96dbff..a02ff48 100644
--- a/src/audacious/general.h
+++ b/src/audacious/general.h
@@ -22,14 +22,12 @@
#ifndef AUDACIOUS_GENERAL_H
#define AUDACIOUS_GENERAL_H
-#include <glib.h>
-
#include "plugins.h"
void general_init (void);
void general_cleanup (void);
-gboolean general_plugin_start (PluginHandle * plugin);
+bool_t general_plugin_start (PluginHandle * plugin);
void general_plugin_stop (PluginHandle * plugin);
PluginHandle * general_plugin_by_widget (/* GtkWidget * */ void * widget);
diff --git a/src/audacious/glib-compat.h b/src/audacious/glib-compat.h
deleted file mode 100755
index be639d9..0000000
--- a/src/audacious/glib-compat.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Compatibility macros to make supporting multiple GLib versions easier.
- * Public domain. */
-
-#ifndef AUD_GLIB_COMPAT_H
-#define AUD_GLIB_COMPAT_H
-
-#if ! GLIB_CHECK_VERSION (2, 14, 0)
-
-static inline void g_queue_init (GQueue * q)
-{
- q->head = q->tail = NULL;
- q->length = 0;
-}
-
-static inline void g_queue_clear (GQueue * q)
-{
- g_list_free (q->head);
- q->head = q->tail = NULL;
- q->length = 0;
-}
-
-#define G_QUEUE_INIT {NULL, NULL, 0}
-#define g_timeout_add_seconds(s, f, d) g_timeout_add (1000 * (s), (f), (d))
-#endif
-
-#endif /* AUD_GLIB_COMPAT_H */
diff --git a/src/audacious/gtk-compat.h b/src/audacious/gtk-compat.h
index 91d8d20..ef07829 100644
--- a/src/audacious/gtk-compat.h
+++ b/src/audacious/gtk-compat.h
@@ -10,25 +10,6 @@
#include <gdk/gdkkeysyms-compat.h>
#endif
-#if ! GTK_CHECK_VERSION (2, 10, 0)
-#define GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_MENU
-#define gtk_label_set_line_wrap_mode(...)
-#endif
-
-#if ! GTK_CHECK_VERSION (2, 12, 0)
-
-static inline void gtk_tree_view_convert_widget_to_bin_window_coords
- (GtkTreeView * tree, gint wx, gint wy, gint * bx, gint * by)
-{
- gint bx0, by0;
- gdk_window_get_position (gtk_tree_view_get_bin_window (tree), & bx0, & by0);
- * bx = wx - bx0;
- * by = wy - by0;
-}
-
-#define gtk_widget_set_tooltip_text(...)
-#endif
-
#if ! GTK_CHECK_VERSION (2, 14, 0)
#define gtk_adjustment_get_page_size(a) ((a)->page_size)
#define gtk_adjustment_get_upper(a) ((a)->upper)
@@ -69,8 +50,8 @@ static inline void gtk_widget_set_can_focus (GtkWidget * w, gboolean b)
#if ! GTK_CHECK_VERSION (3, 0, 0)
-static inline void gdk_window_get_geometry_compat (GdkWindow * win, gint * x,
- gint * y, gint * w, gint * h)
+static inline void gdk_window_get_geometry_compat (GdkWindow * win, int * x,
+ int * y, int * w, int * h)
{
gdk_window_get_geometry (win, x, y, w, h, NULL);
}
diff --git a/src/audacious/history.c b/src/audacious/history.c
new file mode 100644
index 0000000..9cc9253
--- /dev/null
+++ b/src/audacious/history.c
@@ -0,0 +1,120 @@
+/*
+ * history.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious 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, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <glib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <libaudcore/hook.h>
+
+#include "main.h"
+#include "misc.h"
+
+#define MAX_ENTRIES 30
+
+static GQueue history = G_QUEUE_INIT;
+static bool_t loaded, modified;
+
+static void history_save (void)
+{
+ if (! modified)
+ return;
+
+ config_clear_section ("history");
+
+ GList * node = history.head;
+ for (int i = 0; i < MAX_ENTRIES; i ++)
+ {
+ if (! node)
+ break;
+
+ char name[32];
+ snprintf (name, sizeof name, "entry%d", i);
+ set_string ("history", name, node->data);
+
+ node = node->next;
+ }
+
+ modified = FALSE;
+}
+
+static void history_load (void)
+{
+ if (loaded)
+ return;
+
+ for (int i = 0; ; i ++)
+ {
+ char name[32];
+ snprintf (name, sizeof name, "entry%d", i);
+ char * path = get_string ("history", name);
+
+ if (! path[0])
+ {
+ g_free (path);
+ break;
+ }
+
+ g_queue_push_tail (& history, path);
+ }
+
+ loaded = TRUE;
+ hook_associate ("config save", (HookFunction) history_save, NULL);
+}
+
+void history_cleanup (void)
+{
+ if (! loaded)
+ return;
+
+ hook_dissociate ("config save", (HookFunction) history_save);
+
+ g_queue_foreach (& history, (GFunc) g_free, NULL);
+ g_queue_clear (& history);
+
+ loaded = FALSE;
+ modified = FALSE;
+}
+
+const char * history_get (int entry)
+{
+ history_load ();
+ return g_queue_peek_nth (& history, entry);
+}
+
+void history_add (const char * path)
+{
+ history_load ();
+
+ GList * next;
+ for (GList * node = history.head; node; node = next)
+ {
+ next = node->next;
+ if (! strcmp (node->data, path))
+ {
+ g_free (node->data);
+ g_queue_delete_link (& history, node);
+ }
+ }
+
+ g_queue_push_head (& history, g_strdup (path));
+ modified = TRUE;
+}
diff --git a/src/audacious/i18n.h b/src/audacious/i18n.h
index cec9379..4bdb988 100644
--- a/src/audacious/i18n.h
+++ b/src/audacious/i18n.h
@@ -20,11 +20,9 @@
#ifndef AUDACIOUS_I18N_H
#define AUDACIOUS_I18N_H
-#include <glib.h>
#include <libintl.h>
#define _(String) dgettext (PACKAGE, String)
-#define Q_(String) g_strip_context ((String), dgettext (PACKAGE, String))
#ifdef gettext_noop
#define N_(String) gettext_noop (String)
#else
diff --git a/src/audacious/images/appearance.png b/src/audacious/images/appearance.png
deleted file mode 100644
index b06f9b6..0000000
Binary files a/src/audacious/images/appearance.png and /dev/null differ
diff --git a/src/audacious/images/blue.png b/src/audacious/images/blue.png
deleted file mode 100644
index 5462d34..0000000
Binary files a/src/audacious/images/blue.png and /dev/null differ
diff --git a/src/audacious/images/replay_gain.png b/src/audacious/images/replay_gain.png
deleted file mode 100644
index 4fce8c3..0000000
Binary files a/src/audacious/images/replay_gain.png and /dev/null differ
diff --git a/src/audacious/interface.c b/src/audacious/interface.c
index e43a33b..58427ef 100644
--- a/src/audacious/interface.c
+++ b/src/audacious/interface.c
@@ -2,7 +2,7 @@
* Audacious2
* Copyright (c) 2008 William Pitcock <nenolod at dereferenced.org>
* Copyright (c) 2008-2009 Tomasz MoÅ <desowin at gmail.com>
- * Copyright (c) 2010 John Lindgren <john.lindgren at tds.net>
+ * Copyright (c) 2010-2011 John Lindgren <john.lindgren at tds.net>
*
* 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
@@ -20,140 +20,133 @@
* Audacious or using our public API to be a derived work.
*/
-#include <string.h>
#include <gtk/gtk.h>
+#include <pthread.h>
#include <libaudcore/hook.h>
-#include "audconfig.h"
-#include "config.h"
#include "debug.h"
#include "general.h"
-#include "i18n.h"
#include "interface.h"
+#include "main.h"
#include "misc.h"
+#include "plugin.h"
#include "plugins.h"
-#include "ui_preferences.h"
#include "visualization.h"
-static Iface *current_interface = NULL;
+static IfacePlugin *current_interface = NULL;
-static IfaceOps interface_ops = {
- .create_prefs_window = create_prefs_window,
- .show_prefs_window = show_prefs_window,
- .hide_prefs_window = hide_prefs_window,
- .destroy_prefs_window = destroy_prefs_window,
- .prefswin_page_new = prefswin_page_new,
-};
+static pthread_mutex_t error_mutex = PTHREAD_MUTEX_INITIALIZER;
+static GQueue error_queue = G_QUEUE_INIT;
+static int error_source;
-static IfaceCbs interface_cbs = { NULL };
-
-gboolean interface_load (PluginHandle * plugin)
+bool_t interface_load (PluginHandle * plugin)
{
- Iface * i = (Iface *) plugin_get_header (plugin);
- g_return_val_if_fail (i != NULL, FALSE);
+ IfacePlugin * i = plugin_get_header (plugin);
+ g_return_val_if_fail (i, FALSE);
+
+ if (PLUGIN_HAS_FUNC (i, init) && ! i->init ())
+ return FALSE;
current_interface = i;
- i->ops = & interface_ops;
- return i->init (& interface_cbs);
+ return TRUE;
}
void interface_unload (void)
{
- g_return_if_fail (current_interface != NULL);
+ g_return_if_fail (current_interface);
- if (current_interface->fini != NULL)
- current_interface->fini ();
+ if (PLUGIN_HAS_FUNC (current_interface, cleanup))
+ current_interface->cleanup ();
current_interface = NULL;
- memset (& interface_cbs, 0, sizeof interface_cbs);
}
-void
-interface_show_prefs_window(gboolean show)
+void interface_show (bool_t show)
{
- if (interface_cbs.show_prefs_window != NULL)
- interface_cbs.show_prefs_window(show);
- else
- AUDDBG ("Interface didn't register show_prefs_window function.\n");
-}
+ g_return_if_fail (current_interface);
-/*
- * gboolean play_button
- * TRUE - open files
- * FALSE - add files
- */
-void
-interface_run_filebrowser(gboolean play_button)
-{
- if (interface_cbs.run_filebrowser != NULL)
- interface_cbs.run_filebrowser(play_button);
- else
- AUDDBG ("Interface didn't register run_filebrowser function.\n");
+ if (PLUGIN_HAS_FUNC (current_interface, show))
+ current_interface->show (show);
}
-void
-interface_hide_filebrowser(void)
+bool_t interface_is_shown (void)
{
- if (interface_cbs.hide_filebrowser != NULL)
- interface_cbs.hide_filebrowser();
- else
- AUDDBG ("Interface didn't register hide_filebrowser function.\n");
+ g_return_val_if_fail (current_interface, FALSE);
+
+ if (PLUGIN_HAS_FUNC (current_interface, is_shown))
+ return current_interface->is_shown ();
+ return TRUE;
}
-void
-interface_toggle_visibility(void)
+bool_t interface_is_focused (void)
{
- if (interface_cbs.toggle_visibility != NULL)
- interface_cbs.toggle_visibility();
- else
- AUDDBG ("Interface didn't register toggle_visibility function.\n");
+ g_return_val_if_fail (current_interface, FALSE);
+
+ if (PLUGIN_HAS_FUNC (current_interface, is_focused))
+ return current_interface->is_focused ();
+ return TRUE;
}
-void
-interface_show_error_message(const gchar * markup)
+static bool_t error_idle_func (void * unused)
{
- if (interface_cbs.show_error != NULL)
- interface_cbs.show_error(markup);
- else
- AUDDBG ("Interface didn't register show_error function.\n");
+ pthread_mutex_lock (& error_mutex);
+
+ char * message;
+ while ((message = g_queue_pop_head (& error_queue)))
+ {
+ pthread_mutex_unlock (& error_mutex);
+
+ if (current_interface && PLUGIN_HAS_FUNC (current_interface, show_error))
+ current_interface->show_error (message);
+ else
+ fprintf (stderr, "ERROR: %s\n", message);
+
+ g_free (message);
+
+ pthread_mutex_lock (& error_mutex);
+ }
+
+ error_source = 0;
+
+ pthread_mutex_unlock (& error_mutex);
+ return FALSE;
}
-void
-interface_show_jump_to_track(void)
+void interface_show_error (const char * message)
{
- if (interface_cbs.show_jump_to_track != NULL)
- interface_cbs.show_jump_to_track();
- else
- AUDDBG ("Interface didn't register show_jump_to_track function.\n");
+ pthread_mutex_lock (& error_mutex);
+
+ g_queue_push_tail (& error_queue, g_strdup (message));
+
+ if (! error_source)
+ error_source = g_idle_add (error_idle_func, NULL);
+
+ pthread_mutex_unlock (& error_mutex);
}
-void
-interface_hide_jump_to_track(void)
+/*
+ * bool_t play_button
+ * TRUE - open files
+ * FALSE - add files
+ */
+void interface_show_filebrowser (bool_t play_button)
{
- if (interface_cbs.hide_jump_to_track != NULL)
- interface_cbs.hide_jump_to_track();
- else
- AUDDBG ("Interface didn't register hide_jump_to_track function.\n");
+ g_return_if_fail (current_interface);
+
+ if (PLUGIN_HAS_FUNC (current_interface, show_filebrowser))
+ current_interface->show_filebrowser (play_button);
}
-void
-interface_show_about_window(gboolean show)
+void interface_show_jump_to_track (void)
{
- if (show == FALSE) {
- if (interface_cbs.hide_about_window != NULL)
- interface_cbs.hide_about_window();
- else
- AUDDBG ("Interface didn't register hide_about_window function.\n");
- } else {
- if (interface_cbs.show_about_window != NULL)
- interface_cbs.show_about_window();
- else
- AUDDBG ("Interface didn't register show_about_window function.\n");
- }
+ g_return_if_fail (current_interface);
+
+ if (PLUGIN_HAS_FUNC (current_interface, show_jump_to_track))
+ current_interface->show_jump_to_track ();
}
-static gboolean delete_cb (GtkWidget * window, GdkEvent * event, PluginHandle *
+static bool_t delete_cb (GtkWidget * window, GdkEvent * event, PluginHandle *
plugin)
{
plugin_enable (plugin, FALSE);
@@ -162,12 +155,15 @@ static gboolean delete_cb (GtkWidget * window, GdkEvent * event, PluginHandle *
void interface_add_plugin_widget (PluginHandle * plugin, GtkWidget * widget)
{
- if (interface_cbs.run_gtk_plugin != NULL)
- interface_cbs.run_gtk_plugin (widget, plugin_get_name (plugin));
+ g_return_if_fail (current_interface);
+
+ if (PLUGIN_HAS_FUNC (current_interface, run_gtk_plugin))
+ current_interface->run_gtk_plugin (widget, plugin_get_name (plugin));
else
{
GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title ((GtkWindow *) window, plugin_get_name (plugin));
+ gtk_window_set_default_size ((GtkWindow *) window, 300, 200);
gtk_container_add ((GtkContainer *) window, widget);
g_signal_connect (window, "delete-event", (GCallback) delete_cb, plugin);
gtk_widget_show_all (window);
@@ -176,130 +172,35 @@ void interface_add_plugin_widget (PluginHandle * plugin, GtkWidget * widget)
void interface_remove_plugin_widget (PluginHandle * plugin, GtkWidget * widget)
{
- if (interface_cbs.stop_gtk_plugin != NULL)
- interface_cbs.stop_gtk_plugin (widget);
+ g_return_if_fail (current_interface);
+
+ if (PLUGIN_HAS_FUNC (current_interface, stop_gtk_plugin))
+ current_interface->stop_gtk_plugin (widget);
else
gtk_widget_destroy (gtk_widget_get_parent (widget));
}
-void
-interface_install_toolbar(void *widget)
+void interface_install_toolbar (void * widget)
{
- if (interface_cbs.install_toolbar != NULL)
- interface_cbs.install_toolbar(widget);
- else
- AUDDBG ("Interface didn't register install_toolbar function.\n");
-}
+ g_return_if_fail (current_interface);
-void
-interface_uninstall_toolbar(void *widget)
-{
- if (interface_cbs.uninstall_toolbar != NULL)
- interface_cbs.uninstall_toolbar(widget);
+ if (PLUGIN_HAS_FUNC (current_interface, install_toolbar))
+ current_interface->install_toolbar (widget);
else
- AUDDBG ("Interface didn't register uninstall_toolbar function.\n");
+ g_object_ref (widget);
}
-void
-interface_toggle_shuffle(void)
+void interface_uninstall_toolbar (void * widget)
{
- if (interface_cbs.toggle_shuffle != NULL)
- interface_cbs.toggle_shuffle();
- else
- AUDDBG ("Interface didn't register toggle_shuffle function.\n");
-}
+ g_return_if_fail (current_interface);
-void
-interface_toggle_repeat(void)
-{
- if (interface_cbs.toggle_repeat != NULL)
- interface_cbs.toggle_repeat();
+ if (PLUGIN_HAS_FUNC (current_interface, uninstall_toolbar))
+ current_interface->uninstall_toolbar (widget);
else
- AUDDBG ("Interface didn't register toggle_repeat function.\n");
-}
-
-typedef enum {
- HOOK_PREFSWIN_SHOW,
- HOOK_FILEBROWSER_SHOW,
- HOOK_FILEBROWSER_HIDE,
- HOOK_TOGGLE_VISIBILITY,
- HOOK_SHOW_ERROR,
- HOOK_JUMPTOTRACK_SHOW,
- HOOK_JUMPTOTRACK_HIDE,
- HOOK_ABOUTWIN_SHOW,
- HOOK_TOGGLE_SHUFFLE,
- HOOK_TOGGLE_REPEAT,
-} IfaceHookID;
-
-void
-interface_hook_handler(gpointer hook_data, gpointer user_data)
-{
- switch (GPOINTER_TO_INT(user_data)) {
- case HOOK_PREFSWIN_SHOW:
- interface_show_prefs_window(GPOINTER_TO_INT(hook_data));
- break;
- case HOOK_FILEBROWSER_SHOW:
- interface_run_filebrowser(GPOINTER_TO_INT(hook_data));
- break;
- case HOOK_FILEBROWSER_HIDE:
- interface_hide_filebrowser();
- break;
- case HOOK_TOGGLE_VISIBILITY:
- interface_toggle_visibility();
- break;
- case HOOK_SHOW_ERROR:
- interface_show_error_message((const gchar *) hook_data);
- break;
- case HOOK_JUMPTOTRACK_SHOW:
- interface_show_jump_to_track();
- break;
- case HOOK_JUMPTOTRACK_HIDE:
- interface_hide_jump_to_track();
- break;
- case HOOK_ABOUTWIN_SHOW:
- interface_show_about_window(GPOINTER_TO_INT(hook_data));
- break;
- case HOOK_TOGGLE_SHUFFLE:
- interface_toggle_shuffle();
- break;
- case HOOK_TOGGLE_REPEAT:
- interface_toggle_repeat();
- break;
- default:
- break;
- }
+ g_object_unref (widget);
}
-typedef struct {
- const gchar *name;
- IfaceHookID id;
-} IfaceHooks;
-
-static IfaceHooks hooks[] = {
- {"prefswin show", HOOK_PREFSWIN_SHOW},
- {"filebrowser show", HOOK_FILEBROWSER_SHOW},
- {"filebrowser hide", HOOK_FILEBROWSER_HIDE},
- {"interface toggle visibility", HOOK_TOGGLE_VISIBILITY},
- {"interface show error", HOOK_SHOW_ERROR},
- {"interface show jump to track", HOOK_JUMPTOTRACK_SHOW},
- {"interface hide jump to track", HOOK_JUMPTOTRACK_HIDE},
- {"aboutwin show", HOOK_ABOUTWIN_SHOW},
- {"toggle shuffle", HOOK_TOGGLE_SHUFFLE},
- {"toggle repeat", HOOK_TOGGLE_REPEAT},
-};
-
-void
-register_interface_hooks(void)
-{
- gint i;
- for (i=0; i<G_N_ELEMENTS(hooks); i++)
- hook_associate(hooks[i].name,
- (HookFunction) interface_hook_handler,
- GINT_TO_POINTER(hooks[i].id));
-
-}
-
-static gboolean probe_cb (PluginHandle * p, PluginHandle * * pp)
+static bool_t probe_cb (PluginHandle * p, PluginHandle * * pp)
{
* pp = p;
return FALSE;
@@ -319,8 +220,10 @@ PluginHandle * iface_plugin_get_current (void)
return current_plugin;
}
-gboolean iface_plugin_set_current (PluginHandle * plugin)
+bool_t iface_plugin_set_current (PluginHandle * plugin)
{
+ hook_call ("config save", NULL); /* tell interface to save layout */
+
if (current_plugin != NULL)
{
AUDDBG ("Unloading plugin widgets.\n");
diff --git a/src/audacious/interface.h b/src/audacious/interface.h
index 4ce4c5b..20e413a 100644
--- a/src/audacious/interface.h
+++ b/src/audacious/interface.h
@@ -2,6 +2,7 @@
* Audacious2
* Copyright (c) 2008 William Pitcock <nenolod at dereferenced.org>
* Copyright (c) 2008-2009 Tomasz MoÅ <desowin at gmail.com>
+ * Copyright (c) 2011 John Lindgren <john.lindgren at tds.net>
*
* 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
@@ -19,88 +20,20 @@
* Audacious or using our public API to be a derived work.
*/
-/*
- * This is the Interface API.
- *
- * Everything here is like totally subject to change.
- * --nenolod
- */
-
#ifndef __AUDACIOUS2_INTERFACE_H__
#define __AUDACIOUS2_INTERFACE_H__
-#include <glib.h>
-#include <audacious/types.h>
-
-typedef struct {
- /* GtkWidget * * (* create_prefs_window) (void); */
- void * * (* create_prefs_window) (void);
- void (*show_prefs_window)(void);
- void (*hide_prefs_window)(void);
- void (*destroy_prefs_window)(void);
- /* gint (* prefswin_page_new) (GtkWidget * container, const gchar * name,
- const gchar * imgurl); */
- gint (* prefswin_page_new) (void * container, const gchar * name,
- const gchar * imgurl);
-} IfaceOps;
-
-typedef struct {
- void (*show_prefs_window)(gboolean show);
- void (*run_filebrowser)(gboolean play_button);
- void (*hide_filebrowser)(void);
- void (*toggle_visibility)(void);
- void (*show_error)(const gchar * markup);
- void (*show_jump_to_track)(void);
- void (*hide_jump_to_track)(void);
- void (*show_about_window)(void);
- void (*hide_about_window)(void);
- void (*toggle_shuffle)(void);
- void (*toggle_repeat)(void);
- /* GtkWidget * (* run_gtk_plugin) (GtkWidget * parent, const gchar * name); */
- void * (* run_gtk_plugin) (void * parent, const gchar * name);
- /* GtkWidget * (* stop_gtk_plugin) (GtkWidget * parent); */
- void * (* stop_gtk_plugin) (void * parent);
-
- void (*install_toolbar)(void * button);
- void (*uninstall_toolbar)(void * button);
-} IfaceCbs;
-
-struct _Iface {
- gchar *id; /* simple ID like 'skinned' */
- gchar *desc; /* description like 'Skinned Interface' */
- gboolean (*init)(IfaceCbs *cbs); /* init UI */
- gboolean (*fini)(void); /* shutdown UI */
-
- IfaceOps *ops;
-};
-
-#ifdef _AUDACIOUS_CORE
-
#include <gtk/gtk.h>
#include <audacious/plugins.h>
-gboolean interface_load (PluginHandle * plugin);
+bool_t interface_load (PluginHandle * plugin);
void interface_unload (void);
-/* These functions have to be called from main thread
- Use event_queue if you need to call those from other threads */
-void interface_show_prefs_window(gboolean show);
-void interface_run_filebrowser(gboolean play_button);
-void interface_hide_filebrowser(void);
-void interface_toggle_visibility(void);
-void interface_show_error_message(const gchar * markup);
-void interface_show_jump_to_track(void);
void interface_add_plugin_widget (PluginHandle * plugin, GtkWidget * widget);
void interface_remove_plugin_widget (PluginHandle * plugin, GtkWidget * widget);
-void interface_stop_gtk_plugin (void * parent);
-void interface_toggle_shuffle(void);
-void interface_toggle_repeat(void);
-
-void register_interface_hooks(void);
PluginHandle * iface_plugin_probe (void);
PluginHandle * iface_plugin_get_current (void);
-gboolean iface_plugin_set_current (PluginHandle * plugin);
+bool_t iface_plugin_set_current (PluginHandle * plugin);
#endif
-#endif
diff --git a/src/audacious/main.c b/src/audacious/main.c
index 1d0ffce..a6e102a 100644
--- a/src/audacious/main.c
+++ b/src/audacious/main.c
@@ -24,7 +24,11 @@
*/
#include <errno.h>
-#include <limits.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
#include <gtk/gtk.h>
@@ -36,7 +40,7 @@
#ifdef USE_DBUS
#include "audctrl.h"
-#include "dbus-service.h"
+#include "dbus.h"
#endif
#ifdef USE_EGGSM
@@ -44,46 +48,34 @@
#include "eggsmclient.h"
#endif
-#include "audconfig.h"
-#include "configdb.h"
#include "debug.h"
#include "drct.h"
#include "equalizer.h"
-#include "glib-compat.h"
#include "i18n.h"
#include "interface.h"
+#include "main.h"
#include "misc.h"
#include "playback.h"
#include "playlist.h"
#include "plugins.h"
#include "util.h"
-/* chardet.c */
-void chardet_init (void);
-
-/* mpris-signals.c */
-void mpris_signals_init (void);
-void mpris_signals_cleanup (void);
-
-/* signals.c */
-void signals_init (void);
-
-/* smclient.c */
-void smclient_init (void);
-
#define AUTOSAVE_INTERVAL 300 /* seconds */
+bool_t headless;
+
static struct {
- gchar **filenames;
- gint session;
- gboolean play, stop, pause, fwd, rew, play_pause, show_jump_box;
- gboolean enqueue, mainwin, remote, activate;
- gboolean enqueue_to_temp;
- gboolean version;
- gchar *previous_session_id;
+ char **filenames;
+ int session;
+ bool_t play, stop, pause, fwd, rew, play_pause, show_jump_box;
+ bool_t enqueue, mainwin, remote;
+ bool_t enqueue_to_temp;
+ bool_t version;
+ bool_t verbose;
+ char *previous_session_id;
} options;
-static gchar * aud_paths[AUD_PATH_COUNT];
+static char * aud_paths[AUD_PATH_COUNT];
static void make_dirs(void)
{
@@ -94,16 +86,15 @@ static void make_dirs(void)
#endif
make_directory(aud_paths[AUD_PATH_USER_DIR], mode755);
- make_directory(aud_paths[AUD_PATH_USER_PLUGIN_DIR], mode755);
make_directory(aud_paths[AUD_PATH_PLAYLISTS_DIR], mode755);
}
-static void normalize_path (gchar * path)
+static void normalize_path (char * path)
{
#ifdef _WIN32
string_replace_char (path, '/', '\\');
#endif
- gint len = strlen (path);
+ int len = strlen (path);
#ifdef _WIN32
if (len > 3 && path[len - 1] == '\\') /* leave "C:\" */
#else
@@ -112,13 +103,13 @@ static void normalize_path (gchar * path)
path[len - 1] = 0;
}
-static gchar * last_path_element (gchar * path)
+static char * last_path_element (char * path)
{
- gchar * slash = strrchr (path, G_DIR_SEPARATOR);
+ char * slash = strrchr (path, G_DIR_SEPARATOR);
return (slash && slash[1]) ? slash + 1 : NULL;
}
-static void strip_path_element (gchar * path, gchar * elem)
+static void strip_path_element (char * path, char * elem)
{
#ifdef _WIN32
if (elem > path + 3)
@@ -130,15 +121,21 @@ static void strip_path_element (gchar * path, gchar * elem)
elem[0] = 0; /* leave [drive letter and] leading slash */
}
-static void relocate_path (gchar * * pathp, const gchar * old, const gchar * new)
+static void relocate_path (char * * pathp, const char * old, const char * new)
{
- gchar * path = * pathp;
- gint len = strlen (old);
+ char * path = * pathp;
+ int oldlen = strlen (old);
+ int newlen = strlen (new);
+
+ if (oldlen && old[oldlen - 1] == G_DIR_SEPARATOR)
+ oldlen --;
+ if (newlen && new[newlen - 1] == G_DIR_SEPARATOR)
+ newlen --;
#ifdef _WIN32
- if (strncasecmp (path, old, len))
+ if (strncasecmp (path, old, oldlen) || (path[oldlen] && path[oldlen] != G_DIR_SEPARATOR))
#else
- if (strncmp (path, old, len))
+ if (strncmp (path, old, oldlen) || (path[oldlen] && path[oldlen] != G_DIR_SEPARATOR))
#endif
{
fprintf (stderr, "Failed to relocate a data path. Falling back to "
@@ -146,7 +143,7 @@ static void relocate_path (gchar * * pathp, const gchar * old, const gchar * new
return;
}
- * pathp = g_strconcat (new, path + len, NULL);
+ * pathp = g_strdup_printf ("%.*s%s", newlen, new, path + oldlen);
g_free (path);
}
@@ -168,8 +165,8 @@ static void relocate_paths (void)
/* Compare the compile-time path to the executable and the actual path to
* see if we have been moved. */
- gchar * old = g_strdup (aud_paths[AUD_PATH_BIN_DIR]);
- gchar * new = get_path_to_self ();
+ char * old = g_strdup (aud_paths[AUD_PATH_BIN_DIR]);
+ char * new = get_path_to_self ();
if (! new)
{
ERR:
@@ -180,14 +177,14 @@ ERR:
normalize_path (new);
/* Strip the name of the executable file, leaving the path. */
- gchar * base = last_path_element (new);
+ char * base = last_path_element (new);
if (! base)
goto ERR;
strip_path_element (new, base);
/* Strip innermost folder names from both paths as long as they match. This
* leaves a compile-time prefix and a run-time one to replace it with. */
- gchar * a, * b;
+ char * a, * b;
while ((a = last_path_element (old)) && (b = last_path_element (new)) &&
#ifdef _WIN32
! strcasecmp (a, b))
@@ -215,8 +212,8 @@ static void init_paths (void)
{
relocate_paths ();
- const gchar * xdg_config_home = g_get_user_config_dir ();
- const gchar * xdg_data_home = g_get_user_data_dir ();
+ const char * xdg_config_home = g_get_user_config_dir ();
+ const char * xdg_data_home = g_get_user_data_dir ();
#ifdef _WIN32
/* Some libraries (libmcs) and plugins (filewriter) use these variables,
@@ -230,14 +227,13 @@ static void init_paths (void)
aud_paths[AUD_PATH_USER_DIR] = g_build_filename(xdg_config_home, "audacious", NULL);
aud_paths[AUD_PATH_USER_PLUGIN_DIR] = g_build_filename(xdg_data_home, "audacious", "Plugins", NULL);
aud_paths[AUD_PATH_PLAYLISTS_DIR] = g_build_filename(aud_paths[AUD_PATH_USER_DIR], "playlists", NULL);
- aud_paths[AUD_PATH_PLAYLIST_FILE] = g_build_filename(aud_paths[AUD_PATH_USER_DIR], "playlist.xspf", NULL);
aud_paths[AUD_PATH_GTKRC_FILE] = g_build_filename(aud_paths[AUD_PATH_USER_DIR], "gtkrc", NULL);
- for (gint i = 0; i < AUD_PATH_COUNT; i ++)
+ for (int i = 0; i < AUD_PATH_COUNT; i ++)
AUDDBG ("Data path: %s\n", aud_paths[i]);
}
-const gchar * get_path (gint id)
+const char * get_path (int id)
{
g_return_val_if_fail (id >= 0 && id < AUD_PATH_COUNT, NULL);
return aud_paths[id];
@@ -254,14 +250,14 @@ static GOptionEntry cmd_entries[] = {
{"enqueue", 'e', 0, G_OPTION_ARG_NONE, &options.enqueue, N_("Add files to the playlist"), NULL},
{"enqueue-to-temp", 'E', 0, G_OPTION_ARG_NONE, &options.enqueue_to_temp, N_("Add new files to a temporary playlist"), NULL},
{"show-main-window", 'm', 0, G_OPTION_ARG_NONE, &options.mainwin, N_("Display the main window"), NULL},
- {"activate", 'a', 0, G_OPTION_ARG_NONE, &options.activate, N_("Display all open Audacious windows"), NULL},
{"version", 'v', 0, G_OPTION_ARG_NONE, &options.version, N_("Show version"), NULL},
- {"verbose", 'V', 0, G_OPTION_ARG_NONE, &cfg.verbose, N_("Print debugging messages"), NULL},
+ {"verbose", 'V', 0, G_OPTION_ARG_NONE, &options.verbose, N_("Print debugging messages"), NULL},
+ {"headless", 'h', 0, G_OPTION_ARG_NONE, & headless, N_("Headless mode (beta)"), NULL},
{G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &options.filenames, N_("FILE..."), NULL},
{NULL},
};
-static void parse_options (gint * argc, gchar *** argv)
+static void parse_options (int * argc, char *** argv)
{
GOptionContext *context;
GError *error = NULL;
@@ -270,7 +266,7 @@ static void parse_options (gint * argc, gchar *** argv)
options.session = -1;
context = g_option_context_new(_("- play multimedia files"));
- g_option_context_add_main_entries(context, cmd_entries, PACKAGE_NAME);
+ g_option_context_add_main_entries(context, cmd_entries, PACKAGE);
g_option_context_add_group(context, gtk_get_option_group(FALSE));
#ifdef USE_EGGSM
g_option_context_add_group(context, egg_sm_client_get_option_group());
@@ -285,65 +281,72 @@ static void parse_options (gint * argc, gchar *** argv)
}
g_option_context_free (context);
+
+ verbose = options.verbose;
}
-static gboolean get_lock (void)
+static bool_t get_lock (void)
{
- gchar path[PATH_MAX];
- snprintf (path, sizeof path, "%s" G_DIR_SEPARATOR_S "lock",
- aud_paths[AUD_PATH_USER_DIR]);
-
+ char * path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "lock", aud_paths[AUD_PATH_USER_DIR]);
int handle = open (path, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
if (handle < 0)
{
if (errno != EEXIST)
fprintf (stderr, "Cannot create %s: %s.\n", path, strerror (errno));
+
+ g_free (path);
return FALSE;
}
close (handle);
+ g_free (path);
return TRUE;
}
static void release_lock (void)
{
- gchar path[PATH_MAX];
- snprintf (path, sizeof path, "%s" G_DIR_SEPARATOR_S "lock",
- aud_paths[AUD_PATH_USER_DIR]);
-
+ char * path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "lock", aud_paths[AUD_PATH_USER_DIR]);
unlink (path);
+ g_free (path);
}
-static GList * convert_filenames (void)
+static Index * convert_filenames (void)
{
if (! options.filenames)
return NULL;
- gchar * * f = options.filenames;
- GList * list = NULL;
- gchar * cur = g_get_current_dir ();
+ Index * filenames = index_new ();
+ char * * f = options.filenames;
+ char * cur = g_get_current_dir ();
- for (gint i = 0; f[i]; i ++)
+ for (int i = 0; f[i]; i ++)
{
- gchar * uri;
+ char * uri = NULL;
if (strstr (f[i], "://"))
- uri = g_strdup (f[i]);
+ uri = str_get (f[i]);
else if (g_path_is_absolute (f[i]))
- uri = filename_to_uri (f[i]);
+ {
+ char * tmp = filename_to_uri (f[i]);
+ uri = str_get (tmp);
+ free (tmp);
+ }
else
{
- gchar * tmp = g_build_filename (cur, f[i], NULL);
- uri = filename_to_uri (tmp);
- g_free (tmp);
+ char * tmp = g_build_filename (cur, f[i], NULL);
+ char * tmp2 = filename_to_uri (tmp);
+ uri = str_get (tmp2);
+ free (tmp);
+ free (tmp2);
}
- list = g_list_prepend (list, uri);
+ if (uri)
+ index_append (filenames, uri);
}
g_free (cur);
- return g_list_reverse (list);
+ return filenames;
}
static void do_remote (void)
@@ -353,10 +356,21 @@ static void do_remote (void)
if (session && audacious_remote_is_running (session))
{
- GList * list = convert_filenames ();
+ Index * filenames = convert_filenames ();
- if (list)
+ /* if no command line options, then present running instance */
+ if (! (filenames || options.play || options.pause || options.play_pause ||
+ options.stop || options.rew || options.fwd || options.show_jump_box ||
+ options.mainwin))
+ options.mainwin = TRUE;
+
+ if (filenames)
{
+ GList * list = NULL;
+
+ for (int f = index_count (filenames); f --; )
+ list = g_list_prepend (list, index_get (filenames, f));
+
if (options.enqueue_to_temp)
audacious_remote_playlist_open_list_to_temp (session, list);
else if (options.enqueue)
@@ -364,8 +378,12 @@ static void do_remote (void)
else
audacious_remote_playlist_open_list (session, list);
- g_list_foreach (list, (GFunc) g_free, NULL);
g_list_free (list);
+
+ for (int f = 0; f < index_count (filenames); f ++)
+ str_unref (index_get (filenames, f));
+
+ index_free (filenames);
}
if (options.play)
@@ -382,8 +400,6 @@ static void do_remote (void)
audacious_remote_playlist_next (session);
if (options.show_jump_box)
audacious_remote_show_jtf_box (session);
- if (options.activate)
- audacious_remote_activate (session);
if (options.mainwin)
audacious_remote_main_win_toggle (session, TRUE);
@@ -391,49 +407,32 @@ static void do_remote (void)
}
#endif
- GtkWidget * dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_WARNING,
- GTK_BUTTONS_OK_CANCEL, _("Audacious seems to be already running but is "
- "not responding. You can start another instance of the program, but "
- "please be warned that this can cause data loss. If Audacious is not "
- "running, you can safely ignore this message. Press OK to start "
- "Audacious or Cancel to quit."));
-
- g_signal_connect (dialog, "destroy", (GCallback) gtk_widget_destroyed,
- & dialog);
-
- if (gtk_dialog_run ((GtkDialog *) dialog) != GTK_RESPONSE_OK)
- exit (EXIT_FAILURE);
-
- if (dialog)
- gtk_widget_destroy (dialog);
+ fprintf (stderr, "WARNING: Audacious seems to be already running but is not responding.\n");
}
static void do_commands (void)
{
- GList * list = convert_filenames ();
+ bool_t resume = get_bool (NULL, "resume_playback_on_startup");
- if (list)
+ Index * filenames = convert_filenames ();
+ if (filenames)
{
if (options.enqueue_to_temp)
{
- drct_pl_open_temp_list (list);
- cfg.resume_state = 0;
+ drct_pl_open_temp_list (filenames);
+ resume = FALSE;
}
else if (options.enqueue)
- drct_pl_add_list (list, -1);
+ drct_pl_add_list (filenames, -1);
else
{
- drct_pl_open_list (list);
- cfg.resume_state = 0;
+ drct_pl_open_list (filenames);
+ resume = FALSE;
}
-
- g_list_foreach (list, (GFunc) g_free, NULL);
- g_list_free (list);
}
- if (cfg.resume_playback_on_startup && cfg.resume_state > 0)
- playback_play (cfg.resume_playback_on_startup_time, cfg.resume_state ==
- 2);
+ if (resume)
+ playlist_resume ();
if (options.play || options.play_pause)
{
@@ -446,29 +445,19 @@ static void do_commands (void)
if (options.show_jump_box)
interface_show_jump_to_track ();
if (options.mainwin)
- interface_toggle_visibility ();
+ interface_show (TRUE);
}
-static void init_one (gint * p_argc, gchar * * * p_argv)
+static void init_one (void)
{
init_paths ();
make_dirs ();
- bindtextdomain (PACKAGE_NAME, aud_paths[AUD_PATH_LOCALE_DIR]);
- bind_textdomain_codeset (PACKAGE_NAME, "UTF-8");
- bindtextdomain (PACKAGE_NAME "-plugins", aud_paths[AUD_PATH_LOCALE_DIR]);
- bind_textdomain_codeset (PACKAGE_NAME "-plugins", "UTF-8");
- textdomain (PACKAGE_NAME);
-
- mowgli_init ();
- chardet_init ();
-
- g_thread_init (NULL);
- gdk_threads_init ();
- gdk_threads_enter ();
-
- gtk_rc_add_default_file (aud_paths[AUD_PATH_GTKRC_FILE]);
- gtk_init (p_argc, p_argv);
+ bindtextdomain (PACKAGE, aud_paths[AUD_PATH_LOCALE_DIR]);
+ bind_textdomain_codeset (PACKAGE, "UTF-8");
+ bindtextdomain (PACKAGE "-plugins", aud_paths[AUD_PATH_LOCALE_DIR]);
+ bind_textdomain_codeset (PACKAGE "-plugins", "UTF-8");
+ textdomain (PACKAGE);
#ifdef USE_EGGSM
egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_NORMAL);
@@ -476,17 +465,25 @@ static void init_one (gint * p_argc, gchar * * * p_argv)
#endif
}
-static void init_two (void)
+static void init_two (int * p_argc, char * * * p_argv)
{
- hook_init ();
- tag_init ();
+ if (! headless)
+ {
+ g_thread_init (NULL);
+ gdk_threads_init ();
+ gdk_threads_enter ();
- aud_config_load ();
- tag_set_verbose (cfg.verbose);
- vfs_set_verbose (cfg.verbose);
+ gtk_rc_add_default_file (aud_paths[AUD_PATH_GTKRC_FILE]);
+ gtk_init (p_argc, p_argv);
+ }
+
+ config_load ();
+ chardet_init ();
+
+ tag_set_verbose (verbose);
+ vfs_set_verbose (verbose);
eq_init ();
- register_interface_hooks ();
#ifdef HAVE_SIGWAIT
signals_init ();
@@ -499,6 +496,8 @@ static void init_two (void)
start_plugins_one ();
playlist_init ();
+ adder_init ();
+ art_init ();
load_playlists ();
#ifdef USE_DBUS
@@ -518,39 +517,55 @@ static void shut_down (void)
mpris_signals_cleanup ();
AUDDBG ("Capturing state.\n");
- aud_config_save ();
- save_playlists ();
+ hook_call ("config save", NULL);
+ save_playlists (TRUE);
AUDDBG ("Unloading highlevel plugins.\n");
stop_plugins_two ();
AUDDBG ("Stopping playback.\n");
if (playback_get_playing ())
+ {
+ bool_t stop_after_song = get_bool (NULL, "stop_after_current_song");
playback_stop ();
+ set_bool (NULL, "stop_after_current_song", stop_after_song);
+ }
+
+#ifdef USE_DBUS
+ cleanup_dbus ();
+#endif
+ adder_cleanup ();
+ art_cleanup ();
+ history_cleanup ();
playlist_end ();
AUDDBG ("Unloading lowlevel plugins.\n");
stop_plugins_one ();
AUDDBG ("Saving configuration.\n");
- cfg_db_flush ();
+ config_save ();
+ config_cleanup ();
+
+ eq_cleanup ();
+
+ strpool_shutdown ();
gdk_threads_leave ();
}
-static gboolean autosave_cb (void * unused)
+bool_t do_autosave (void)
{
AUDDBG ("Saving configuration.\n");
- aud_config_save ();
- cfg_db_flush ();
- save_playlists ();
+ hook_call ("config save", NULL);
+ save_playlists (FALSE);
+ config_save ();
return TRUE;
}
-gint main(gint argc, gchar ** argv)
+int main(int argc, char ** argv)
{
- init_one (& argc, & argv);
+ init_one ();
parse_options (& argc, & argv);
if (options.version)
@@ -563,13 +578,14 @@ gint main(gint argc, gchar ** argv)
do_remote (); /* may exit */
AUDDBG ("No remote session; starting up.\n");
- init_two ();
+ init_two (& argc, & argv);
AUDDBG ("Startup complete.\n");
- g_timeout_add_seconds (AUTOSAVE_INTERVAL, autosave_cb, NULL);
- hook_associate ("quit", (HookFunction) gtk_main_quit, NULL);
+ g_timeout_add_seconds (AUTOSAVE_INTERVAL, (GSourceFunc) do_autosave, NULL);
+ hook_associate ("quit", (HookFunction) gtk_main_quit, NULL);
gtk_main ();
+ hook_dissociate ("quit", (HookFunction) gtk_main_quit);
shut_down ();
release_lock ();
diff --git a/src/audacious/general.h b/src/audacious/main.h
similarity index 50%
copy from src/audacious/general.h
copy to src/audacious/main.h
index b96dbff..3b85f08 100644
--- a/src/audacious/general.h
+++ b/src/audacious/main.h
@@ -1,5 +1,5 @@
/*
- * general.h
+ * main.h
* Copyright 2011 John Lindgren
*
* This file is part of Audacious.
@@ -19,19 +19,47 @@
* using our public API to be a derived work.
*/
-#ifndef AUDACIOUS_GENERAL_H
-#define AUDACIOUS_GENERAL_H
+/* Header for all those files that have just one or two public identifiers. */
-#include <glib.h>
+#ifndef _AUDACIOUS_MAIN_H
+#define _AUDACIOUS_MAIN_H
-#include "plugins.h"
+#include <libaudcore/core.h>
-void general_init (void);
-void general_cleanup (void);
+/* adder.c */
+void adder_init (void);
+void adder_cleanup (void);
-gboolean general_plugin_start (PluginHandle * plugin);
-void general_plugin_stop (PluginHandle * plugin);
+/* art.c */
+void art_init (void);
+void art_cleanup (void);
-PluginHandle * general_plugin_by_widget (/* GtkWidget * */ void * widget);
+/* chardet.c */
+void chardet_init (void);
+
+/* config.c */
+void config_load (void);
+void config_save (void);
+void config_cleanup (void);
+
+/* history.c */
+void history_cleanup (void);
+
+/* main.c */
+extern bool_t headless;
+bool_t do_autosave (void);
+
+/* mpris-signals.c */
+void mpris_signals_init (void);
+void mpris_signals_cleanup (void);
+
+/* signals.c */
+void signals_init (void);
+
+/* smclient.c */
+void smclient_init (void);
+
+/* ui_albumart.c */
+char * get_associated_image_file (const char * filename);
#endif
diff --git a/src/audacious/misc-api.h b/src/audacious/misc-api.h
index 7dd2a3e..bd24303 100644
--- a/src/audacious/misc-api.h
+++ b/src/audacious/misc-api.h
@@ -1,6 +1,6 @@
/*
* misc-api.h
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -23,75 +23,108 @@
/* CAUTION: Many of these functions are not thread safe. */
+/* art.c */
+
+/* Fetches album art for <file> (the URI of a song file) as JPEG or PNG data.
+ * The data may be embedded in the song file, or it may be loaded from a
+ * separate file. When the data is no longer needed, art_unref() should be
+ * called. If an error occurs, <data> is set to NULL and art_unref() need not
+ * be called. */
+AUD_VFUNC3 (art_get_data, const char *, file, const void * *, data, int64_t *, len)
+
+/* Returns the URI of an image file containing album art for <file>. If the
+ * song file contains embedded album art, the data is saved to a temporary file
+ * and the URI of the temporary file is returned. When the image file is no
+ * longer needed, art_unref() should be called. If a temporary file was
+ * created, art_unref() deletes it. If an error occurs, returns NULL and
+ * art_unref() need not be called. */
+AUD_FUNC1 (const char *, art_get_file, const char *, file)
+
+/* Signals that the data or file returned by art_get_data() or art_get_file() is
+ * no longer needed. <file> must be the same URI passed to art_get_data() or
+ * art_get_file(). */
+AUD_VFUNC1 (art_unref, const char *, file)
+
+/* config.c */
+
+AUD_VFUNC1 (config_clear_section, const char *, section)
+AUD_VFUNC2 (config_set_defaults, const char *, section, const char * const *, entries)
+
+AUD_VFUNC3 (set_string, const char *, section, const char *, name, const char *, value)
+AUD_FUNC2 (char *, get_string, const char *, section, const char *, name)
+AUD_VFUNC3 (set_bool, const char *, section, const char *, name, bool_t, value)
+AUD_FUNC2 (bool_t, get_bool, const char *, section, const char *, name)
+AUD_VFUNC3 (set_int, const char *, section, const char *, name, int, value)
+AUD_FUNC2 (int, get_int, const char *, section, const char *, name)
+AUD_VFUNC3 (set_double, const char *, section, const char *, name, double, value)
+AUD_FUNC2 (double, get_double, const char *, section, const char *, name)
+
/* credits.c */
-AUD_FUNC3 (void, get_audacious_credits, const gchar * *, brief,
- const gchar * * *, credits, const gchar * * *, translators)
+AUD_VFUNC3 (get_audacious_credits, const char * *, brief,
+ const char * const * *, credits, const char * const * *, translators)
+
+/* equalizer.c */
+AUD_VFUNC1 (eq_set_bands, const double *, values)
+AUD_VFUNC1 (eq_get_bands, double *, values)
+AUD_VFUNC2 (eq_set_band, int, band, double, value)
+AUD_FUNC1 (double, eq_get_band, int, band)
/* equalizer_preset.c */
-AUD_FUNC1 (GList *, equalizer_read_presets, const gchar *, basename)
-AUD_FUNC2 (gboolean, equalizer_write_preset_file, GList *, list, const gchar *,
- basename)
-AUD_FUNC1 (EqualizerPreset *, load_preset_file, const gchar *, filename)
-AUD_FUNC2 (gboolean, save_preset_file, EqualizerPreset *, preset, const gchar *,
- filename)
-AUD_FUNC1 (GList *, import_winamp_eqf, VFSFile *, file)
+AUD_FUNC1 (Index *, equalizer_read_presets, const char *, basename)
+AUD_FUNC2 (bool_t, equalizer_write_preset_file, Index *, list, const char *, basename)
+AUD_FUNC1 (EqualizerPreset *, load_preset_file, const char *, filename)
+AUD_FUNC2 (bool_t, save_preset_file, EqualizerPreset *, preset, const char *, filename)
+AUD_FUNC1 (Index *, import_winamp_eqf, VFSFile *, file)
-/* main.c */
-AUD_FUNC1 (const gchar *, get_path, gint, path)
+/* history.c */
+AUD_FUNC1 (const char *, history_get, int, entry)
+AUD_VFUNC1 (history_add, const char *, path)
+
+/* interface.c */
+AUD_VFUNC1 (interface_show, bool_t, show)
+AUD_FUNC0 (bool_t, interface_is_shown)
+AUD_FUNC0 (bool_t, interface_is_focused)
-/* playlist-utils.c */
-AUD_FUNC0 (const gchar *, get_gentitle_format)
-AUD_FUNC0 (void, save_playlists)
+/* interface_show_error() is safe to call from any thread */
+AUD_VFUNC1 (interface_show_error, const char *, message)
-/* plugin-registry.c */
-AUD_FUNC2 (void, uri_set_plugin, const gchar *, scheme, InputPlugin *, ip)
-AUD_FUNC2 (void, mime_set_plugin, const gchar *, mimetype, InputPlugin *, ip)
+AUD_VFUNC1 (interface_show_filebrowser, bool_t, play)
+AUD_VFUNC0 (interface_show_jump_to_track)
+
+AUD_VFUNC1 (interface_install_toolbar, void *, button)
+AUD_VFUNC1 (interface_uninstall_toolbar, void *, button)
+
+/* main.c */
+AUD_FUNC1 (const char *, get_path, int, path)
/* probe.c */
-AUD_FUNC2 (PluginHandle *, file_find_decoder, const gchar *, filename, gboolean,
+AUD_FUNC2 (PluginHandle *, file_find_decoder, const char *, filename, bool_t,
fast)
-AUD_FUNC2 (Tuple *, file_read_tuple, const gchar *, filename, PluginHandle *,
+AUD_FUNC2 (Tuple *, file_read_tuple, const char *, filename, PluginHandle *,
decoder)
-AUD_FUNC4 (gboolean, file_read_image, const gchar *, filename, PluginHandle *,
- decoder, void * *, data, gint *, size)
-AUD_FUNC2 (gboolean, file_can_write_tuple, const gchar *, filename,
+AUD_FUNC4 (bool_t, file_read_image, const char *, filename, PluginHandle *,
+ decoder, void * *, data, int64_t *, size)
+AUD_FUNC2 (bool_t, file_can_write_tuple, const char *, filename,
PluginHandle *, decoder)
-AUD_FUNC3 (gboolean, file_write_tuple, const gchar *, filename, PluginHandle *,
+AUD_FUNC3 (bool_t, file_write_tuple, const char *, filename, PluginHandle *,
decoder, const Tuple *, tuple)
-AUD_FUNC2 (gboolean, custom_infowin, const gchar *, filename, PluginHandle *,
+AUD_FUNC2 (bool_t, custom_infowin, const char *, filename, PluginHandle *,
decoder)
-/* ui_albumart.c */
-AUD_FUNC1 (gchar *, get_associated_image_file, const gchar *, filename)
-
/* ui_plugin_menu.c */
-AUD_FUNC1 (/* GtkWidget * */ void *, get_plugin_menu, gint, id)
-AUD_FUNC2 (gint, menu_plugin_item_add, gint, menu, /* GtkWidget * */ void *,
- item)
-AUD_FUNC2 (gint, menu_plugin_item_remove, gint, menu, /* GtkWidget * */ void *,
- item)
+AUD_FUNC1 (/* GtkWidget * */ void *, get_plugin_menu, int, id)
+AUD_VFUNC4 (plugin_menu_add, int, id, MenuFunc, func, const char *, name,
+ const char *, icon)
+AUD_VFUNC2 (plugin_menu_remove, int, id, MenuFunc, func)
/* ui_preferences.c */
-AUD_FUNC4 (void, create_widgets_with_domain, /* GtkWidget * */ void *, box,
- PreferencesWidget *, widgets, gint, count, const gchar *, domain)
+AUD_VFUNC4 (create_widgets_with_domain, /* GtkWidget * */ void *, box,
+ PreferencesWidget *, widgets, int, count, const char *, domain)
+AUD_VFUNC0 (show_prefs_window)
/* util.c */
-AUD_FUNC0 (gchar *, util_get_localdir)
-AUD_FUNC1 (void, util_add_url_history_entry, const gchar *, url)
-AUD_FUNC2 (gchar *, construct_uri, const gchar *, base, const gchar *, reference)
-
-/* vis_runner.c */
-AUD_FUNC2 (void, vis_runner_add_hook, VisHookFunc, func, void *, user)
-AUD_FUNC1 (void, vis_runner_remove_hook, VisHookFunc, func)
+AUD_FUNC2 (char *, construct_uri, const char *, base, const char *, reference)
/* visualization.c */
-AUD_FUNC3 (void, calc_mono_freq, VisFreqData, buffer, const VisPCMData, data,
- gint, channels)
-AUD_FUNC3 (void, calc_mono_pcm, VisPCMData, buffer, const VisPCMData, data,
- gint, channels)
-AUD_FUNC3 (void, calc_stereo_pcm, VisPCMData, buffer, const VisPCMData, data,
- gint, channels)
-
-/* New in 2.5-alpha2 */
-AUD_FUNC1 (void, interface_install_toolbar, void *, button)
-AUD_FUNC1 (void, interface_uninstall_toolbar, void *, button)
+AUD_VFUNC2 (vis_func_add, int, type, VisFunc, func)
+AUD_VFUNC1 (vis_func_remove, VisFunc, func)
diff --git a/src/audacious/misc.h b/src/audacious/misc.h
index 386f974..090b607 100644
--- a/src/audacious/misc.h
+++ b/src/audacious/misc.h
@@ -1,6 +1,6 @@
/*
* misc.h
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -22,21 +22,11 @@
#ifndef AUDACIOUS_MISC_H
#define AUDACIOUS_MISC_H
-#include <glib.h>
#include <audacious/api.h>
#include <audacious/types.h>
-#include <libaudcore/vfs.h>
+#include <libaudcore/index.h>
#include <libaudcore/tuple.h>
-
-enum {
- AUDACIOUS_MENU_MAIN,
- AUDACIOUS_MENU_PLAYLIST,
- AUDACIOUS_MENU_PLAYLIST_RCLICK,
- AUDACIOUS_MENU_PLAYLIST_ADD,
- AUDACIOUS_MENU_PLAYLIST_REMOVE,
- AUDACIOUS_MENU_PLAYLIST_SELECT,
- AUDACIOUS_MENU_PLAYLIST_MISC,
- TOTAL_PLUGIN_MENUS};
+#include <libaudcore/vfs.h>
enum {
AUD_PATH_BIN_DIR,
@@ -48,26 +38,36 @@ enum {
AUD_PATH_USER_DIR,
AUD_PATH_USER_PLUGIN_DIR,
AUD_PATH_PLAYLISTS_DIR,
- AUD_PATH_PLAYLIST_FILE,
AUD_PATH_GTKRC_FILE,
AUD_PATH_COUNT
};
typedef struct {
- gchar * name;
- gfloat preamp, bands[10];
+ char * name;
+ float preamp, bands[10];
} EqualizerPreset;
-typedef gint16 VisFreqData[2][256];
-typedef gint16 VisPCMData[2][512];
+enum {
+ AUD_MENU_MAIN,
+ AUD_MENU_PLAYLIST,
+ AUD_MENU_PLAYLIST_RCLICK,
+ AUD_MENU_PLAYLIST_ADD,
+ AUD_MENU_PLAYLIST_REMOVE,
+ AUD_MENU_PLAYLIST_SELECT,
+ AUD_MENU_PLAYLIST_MISC,
+ AUD_MENU_COUNT};
-typedef struct {
- gint time, nch;
- gint length; /* obsolete, always 512 */
- VisPCMData data;
-} VisNode;
+typedef void (* MenuFunc) (void);
-typedef void (* VisHookFunc) (const VisNode * node, void * user);
+enum {
+ AUD_VIS_TYPE_CLEAR, /* like VisPlugin::clear() */
+ AUD_VIS_TYPE_MONO_PCM, /* like VisPlugin::render_mono_pcm() */
+ AUD_VIS_TYPE_MULTI_PCM, /* like VisPlugin::render_multi_pcm() */
+ AUD_VIS_TYPE_FREQ, /* like VisPlugin::render_freq() */
+ AUD_VIS_TYPES};
+
+/* generic type; does not correspond to actual function types */
+typedef void (* VisFunc) (void);
#define AUD_API_NAME MiscAPI
#define AUD_API_SYMBOL misc_api
diff --git a/src/audacious/mpris-signals.c b/src/audacious/mpris-signals.c
index 51dda6b..e7f61fb 100644
--- a/src/audacious/mpris-signals.c
+++ b/src/audacious/mpris-signals.c
@@ -26,46 +26,43 @@
#ifdef USE_DBUS
#include "dbus-service.h"
+#include "main.h"
-static void mpris_status_cb1 (void * hook_data, void * user_data)
+static void mpris_status_cb (void * hook_data, void * user_data)
{
mpris_emit_status_change (mpris, GPOINTER_TO_INT (user_data));
}
-
-static void mpris_status_cb2 (void * hook_data, void * user_data)
-{
- mpris_emit_status_change (mpris, -1);
-}
#endif
void mpris_signals_init (void)
{
#ifdef USE_DBUS
- hook_associate ("playback begin", mpris_status_cb1, GINT_TO_POINTER
+ hook_associate ("playback begin", mpris_status_cb, GINT_TO_POINTER
(MPRIS_STATUS_PLAY));
- hook_associate ("playback pause", mpris_status_cb1, GINT_TO_POINTER
+ hook_associate ("playback pause", mpris_status_cb, GINT_TO_POINTER
(MPRIS_STATUS_PAUSE));
- hook_associate ("playback unpause", mpris_status_cb1, GINT_TO_POINTER
+ hook_associate ("playback unpause", mpris_status_cb, GINT_TO_POINTER
(MPRIS_STATUS_PLAY));
- hook_associate ("playback stop", mpris_status_cb1, GINT_TO_POINTER
+ hook_associate ("playback stop", mpris_status_cb, GINT_TO_POINTER
(MPRIS_STATUS_STOP));
- hook_associate ("toggle shuffle", mpris_status_cb2, NULL);
- hook_associate ("toggle repeat", mpris_status_cb2, NULL);
-/* hook_associate ("toggle no playlist advance", mpris_status_cb2, NULL); */
+ hook_associate ("set shuffle", mpris_status_cb, GINT_TO_POINTER (MPRIS_STATUS_INVALID));
+ hook_associate ("set repeat", mpris_status_cb, GINT_TO_POINTER (MPRIS_STATUS_INVALID));
+ hook_associate ("set no_playlist_advance", mpris_status_cb, GINT_TO_POINTER
+ (MPRIS_STATUS_INVALID));
#endif
}
void mpris_signals_cleanup (void)
{
#ifdef USE_DBUS
- hook_dissociate ("playback begin", mpris_status_cb1);
- hook_dissociate ("playback pause", mpris_status_cb1);
- hook_dissociate ("playback unpause", mpris_status_cb1);
- hook_dissociate ("playback stop", mpris_status_cb1);
+ hook_dissociate ("playback begin", mpris_status_cb);
+ hook_dissociate ("playback pause", mpris_status_cb);
+ hook_dissociate ("playback unpause", mpris_status_cb);
+ hook_dissociate ("playback stop", mpris_status_cb);
- hook_dissociate ("toggle shuffle", mpris_status_cb2, NULL);
- hook_dissociate ("toggle repeat", mpris_status_cb2, NULL);
-/* hook_dissociate ("toggle no playlist advance", mpris_status_cb2, NULL); */
+ hook_dissociate ("set shuffle", mpris_status_cb);
+ hook_dissociate ("set repeat", mpris_status_cb);
+ hook_dissociate ("set no_playlist_advance", mpris_status_cb);
#endif
}
diff --git a/src/audacious/objects.xml b/src/audacious/objects.xml
index 527171e..1c62c75 100644
--- a/src/audacious/objects.xml
+++ b/src/audacious/objects.xml
@@ -120,28 +120,6 @@
<arg type="b" name="show"/>
</method>
- <!-- Equalizer visibility -->
- <method name="EqualizerVisible">
- <arg type="b" direction="out" name="is_eq_win"/>
- </method>
-
- <!-- Toggle equalizer visibility -->
- <method name="ShowEqualizer">
- <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
- <arg type="b" name="show"/>
- </method>
-
- <!-- Playlist visibility -->
- <method name="PlaylistVisible">
- <arg type="b" direction="out" name="is_pl_win"/>
- </method>
-
- <!-- Toggle playlist visibility -->
- <method name="ShowPlaylist">
- <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
- <arg type="b" name="show"/>
- </method>
-
<!-- Get names of available 'standard' tuple fields -->
<method name="GetTupleFields">
<!-- Return array of tuple field names -->
@@ -324,7 +302,7 @@
<!-- URL to add -->
<arg type="s" name="url"/>
</method>
-
+
<!-- Add a list of files -->
<method name="AddList">
<annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
@@ -388,6 +366,16 @@
<annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
</method>
+ <!-- Query stop-after-song status -->
+ <method name="StopAfter">
+ <arg type="b" direction="out" name="is_stopping"/>
+ </method>
+
+ <!-- Toggle stop-after-song -->
+ <method name="ToggleStopAfter">
+ <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
+ </method>
+
<!-- Show preferences window -->
<method name="ShowPrefsBox">
<annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
@@ -417,11 +405,6 @@
<annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
</method>
- <!-- Activate -->
- <method name="Activate">
- <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
- </method>
-
<!-- Playqueue get playlist pos -->
<method name="QueueGetListPos">
<arg type="u" name="qpos"/>
diff --git a/src/audacious/output.c b/src/audacious/output.c
index a38eae3..eeee3f5 100644
--- a/src/audacious/output.c
+++ b/src/audacious/output.c
@@ -19,13 +19,15 @@
* using our public API to be a derived work.
*/
+#include <glib.h>
#include <math.h>
-#include <libaudcore/audio.h>
+#include <pthread.h>
+#include <string.h>
-#include "audconfig.h"
#include "debug.h"
#include "effect.h"
#include "equalizer.h"
+#include "misc.h"
#include "output.h"
#include "playback.h"
#include "plugins.h"
@@ -35,12 +37,12 @@
static OutputPlugin * cop = NULL;
-void output_get_volume (gint * l, gint * r)
+void output_get_volume (int * l, int * r)
{
- if (cfg.software_volume_control)
+ if (get_bool (NULL, "software_volume_control"))
{
- * l = cfg.sw_volume_left;
- * r = cfg.sw_volume_right;
+ * l = get_int (NULL, "sw_volume_left");
+ * r = get_int (NULL, "sw_volume_right");
}
else if (cop != NULL && cop->get_volume != NULL)
cop->get_volume (l, r);
@@ -51,22 +53,22 @@ void output_get_volume (gint * l, gint * r)
}
}
-void output_set_volume (gint l, gint r)
+void output_set_volume (int l, int r)
{
- if (cfg.software_volume_control)
+ if (get_bool (NULL, "software_volume_control"))
{
- cfg.sw_volume_left = l;
- cfg.sw_volume_right = r;
+ set_int (NULL, "sw_volume_left", l);
+ set_int (NULL, "sw_volume_right", r);
}
else if (cop != NULL && cop->set_volume != NULL)
cop->set_volume (l, r);
}
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static gboolean locked = FALSE;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static bool_t locked = FALSE;
-#define LOCK do {g_static_mutex_lock (& mutex); locked = TRUE;} while (0)
-#define UNLOCK do {locked = FALSE; g_static_mutex_unlock (& mutex);} while (0)
+#define LOCK do {pthread_mutex_lock (& mutex); locked = TRUE;} while (0)
+#define UNLOCK do {locked = FALSE; pthread_mutex_unlock (& mutex);} while (0)
#define LOCKED g_return_if_fail (locked)
#define LOCKED_RET(a) g_return_val_if_fail (locked, a)
#define LOCK_VIS do {vis_runner_lock (); LOCK;} while (0)
@@ -74,14 +76,14 @@ static gboolean locked = FALSE;
#define LOCKED_VIS g_return_if_fail (locked && vis_runner_locked ())
#define LOCKED_VIS_RET(a) g_return_val_if_fail (locked && vis_runner_locked (), a)
-static gboolean opened = FALSE;
-static gboolean leave_open = FALSE;
+static bool_t opened = FALSE;
+static bool_t leave_open = FALSE;
-static gboolean waiting, aborted, paused;
-static gint decoder_format, decoder_channels, decoder_rate, effect_channels,
+static bool_t waiting, aborted, paused;
+static int decoder_format, decoder_channels, decoder_rate, effect_channels,
effect_rate, output_format, output_channels, output_rate;
-static gint64 frames_written;
-static gboolean have_replay_gain;
+static int64_t frames_written;
+static bool_t have_replay_gain;
static ReplayGainInfo replay_gain_info;
static void reset_time (void)
@@ -108,7 +110,7 @@ static void real_close (void)
leave_open = FALSE;
}
-static gboolean open_audio (gint format, gint rate, gint channels)
+static bool_t open_audio (int format, int rate, int channels)
{
LOCKED_VIS_RET (FALSE);
g_return_val_if_fail (! opened, FALSE);
@@ -135,9 +137,9 @@ static gboolean open_audio (gint format, gint rate, gint channels)
real_close ();
}
- output_format = cfg.output_bit_depth == 32 ? FMT_S32_NE :
- cfg.output_bit_depth == 24 ? FMT_S24_NE : cfg.output_bit_depth == 16 ?
- FMT_S16_NE : FMT_FLOAT;
+ int depth = get_int (NULL, "output_bit_depth");
+ output_format = (depth == 32) ? FMT_S32_NE : (depth == 24) ? FMT_S24_NE
+ : (depth == 16) ? FMT_S16_NE : FMT_FLOAT;
output_channels = effect_channels;
output_rate = effect_rate;
@@ -158,11 +160,11 @@ static gboolean open_audio (gint format, gint rate, gint channels)
return opened;
}
-static gboolean output_open_audio (gint format, gint rate, gint channels)
+static bool_t output_open_audio (int format, int rate, int channels)
{
g_return_val_if_fail (cop != NULL, FALSE);
LOCK_VIS;
- gboolean success = open_audio (format, rate, channels);
+ bool_t success = open_audio (format, rate, channels);
UNLOCK_VIS;
return success;
}
@@ -190,20 +192,20 @@ static void output_set_replaygain_info (ReplayGainInfo * info)
UNLOCK;
}
-static void apply_replay_gain (gfloat * data, gint samples)
+static void apply_replay_gain (float * data, int samples)
{
- gfloat factor = powf (10, (gfloat) cfg.replay_gain_preamp / 20);
-
- if (! cfg.enable_replay_gain)
+ if (! get_bool (NULL, "enable_replay_gain"))
return;
+ float factor = powf (10, get_double (NULL, "replay_gain_preamp") / 20);
+
if (have_replay_gain)
{
- if (cfg.replay_gain_album)
+ if (get_bool (NULL, "replay_gain_album"))
{
factor *= powf (10, replay_gain_info.album_gain / 20);
- if (cfg.enable_clipping_prevention &&
+ if (get_bool (NULL, "enable_clipping_prevention") &&
replay_gain_info.album_peak * factor > 1)
factor = 1 / replay_gain_info.album_peak;
}
@@ -211,32 +213,34 @@ static void apply_replay_gain (gfloat * data, gint samples)
{
factor *= powf (10, replay_gain_info.track_gain / 20);
- if (cfg.enable_clipping_prevention &&
+ if (get_bool (NULL, "enable_clipping_prevention") &&
replay_gain_info.track_peak * factor > 1)
factor = 1 / replay_gain_info.track_peak;
}
}
else
- factor *= powf (10, (gfloat) cfg.default_gain / 20);
+ factor *= powf (10, get_double (NULL, "default_gain") / 20);
if (factor < 0.99 || factor > 1.01)
audio_amplify (data, 1, samples, & factor);
}
-static void apply_software_volume (gfloat * data, gint channels, gint frames)
+static void apply_software_volume (float * data, int channels, int frames)
{
- gfloat left_factor, right_factor;
- gfloat factors[channels];
- gint channel;
+ float left_factor, right_factor;
+ float factors[channels];
+ int channel;
+
+ if (! get_bool (NULL, "software_volume_control"))
+ return;
- if (! cfg.software_volume_control || (cfg.sw_volume_left == 100 &&
- cfg.sw_volume_right == 100))
+ int l = get_int (NULL, "sw_volume_left");
+ int r = get_int (NULL, "sw_volume_right");
+ if (l == 100 && r == 100)
return;
- left_factor = (cfg.sw_volume_left == 0) ? 0 : powf (10, (gfloat)
- SW_VOLUME_RANGE * (cfg.sw_volume_left - 100) / 100 / 20);
- right_factor = (cfg.sw_volume_right == 0) ? 0 : powf (10, (gfloat)
- SW_VOLUME_RANGE * (cfg.sw_volume_right - 100) / 100 / 20);
+ left_factor = (l == 0) ? 0 : powf (10, (float) SW_VOLUME_RANGE * (l - 100) / 100 / 20);
+ right_factor = (r == 0) ? 0 : powf (10, (float) SW_VOLUME_RANGE * (r - 100) / 100 / 20);
if (channels == 2)
{
@@ -252,7 +256,7 @@ static void apply_software_volume (gfloat * data, gint channels, gint frames)
audio_amplify (data, channels, frames, factors);
}
-static void write_processed (void * data, gint samples)
+static void write_processed (void * data, int samples)
{
LOCKED_VIS;
@@ -277,7 +281,7 @@ static void write_processed (void * data, gint samples)
while (! aborted)
{
- gint ready = (cop->buffer_free != NULL) ? cop->buffer_free () /
+ int ready = (cop->buffer_free != NULL) ? cop->buffer_free () /
FMT_SIZEOF (output_format) : output_channels * (output_rate / 50);
ready = MIN (ready, samples);
cop->write_audio (data, FMT_SIZEOF (output_format) * ready);
@@ -302,19 +306,19 @@ static void write_processed (void * data, gint samples)
g_free (allocated);
}
-static void write_audio (void * data, gint size)
+static void write_audio (void * data, int size)
{
LOCKED;
g_return_if_fail (opened && ! waiting);
- gint samples = size / FMT_SIZEOF (decoder_format);
+ int samples = size / FMT_SIZEOF (decoder_format);
frames_written += samples / decoder_channels;
void * allocated = NULL;
if (decoder_format != FMT_FLOAT)
{
- gfloat * new = g_malloc (sizeof (gfloat) * samples);
+ float * new = g_malloc (sizeof (float) * samples);
audio_from_int (data, decoder_format, new, samples);
data = new;
g_free (allocated);
@@ -322,7 +326,7 @@ static void write_audio (void * data, gint size)
}
apply_replay_gain (data, samples);
- gfloat * fdata = data;
+ float * fdata = data;
effect_process (& fdata, & samples);
data = fdata;
@@ -336,7 +340,7 @@ static void write_audio (void * data, gint size)
g_free (allocated);
}
-static void output_write_audio (void * data, gint size)
+static void output_write_audio (void * data, int size)
{
g_return_if_fail (cop != NULL);
LOCK_VIS;
@@ -365,7 +369,7 @@ static void output_close_audio (void)
UNLOCK_VIS;
}
-static void do_pause (gboolean p)
+static void do_pause (bool_t p)
{
LOCKED_VIS;
g_return_if_fail (opened);
@@ -374,7 +378,7 @@ static void do_pause (gboolean p)
paused = p;
}
-static void output_pause (gboolean p)
+static void output_pause (bool_t p)
{
g_return_if_fail (cop != NULL);
LOCK_VIS;
@@ -382,7 +386,7 @@ static void output_pause (gboolean p)
UNLOCK_VIS;
}
-static void flush (gint time)
+static void flush (int time)
{
LOCKED_VIS;
g_return_if_fail (opened);
@@ -396,6 +400,7 @@ static void flush (gint time)
if (! frames_written)
{
g_return_if_fail (cop->set_written_time != NULL);
+ vis_runner_time_offset (time - cop->written_time ());
cop->set_written_time (time);
}
else
@@ -405,10 +410,10 @@ static void flush (gint time)
cop->flush (effect_decoder_to_output_time (time));
}
- frames_written = time * (gint64) decoder_rate / 1000;
+ frames_written = time * (int64_t) decoder_rate / 1000;
}
-static void output_flush (gint time)
+static void output_flush (int time)
{
g_return_if_fail (cop != NULL);
LOCK_VIS;
@@ -416,18 +421,18 @@ static void output_flush (gint time)
UNLOCK_VIS;
}
-static gint written_time (void)
+static int written_time (void)
{
LOCKED_RET (0);
g_return_val_if_fail (opened && ! waiting, 0);
- return frames_written * (gint64) 1000 / decoder_rate;
+ return frames_written * (int64_t) 1000 / decoder_rate;
}
-static gint output_written_time (void)
+static int output_written_time (void)
{
g_return_val_if_fail (cop != NULL, 0);
LOCK;
- gint time = written_time ();
+ int time = written_time ();
UNLOCK;
return time;
}
@@ -435,8 +440,8 @@ static gint output_written_time (void)
static void write_buffers (void)
{
LOCKED;
- gfloat * data = NULL;
- gint samples = 0;
+ float * data = NULL;
+ int samples = 0;
effect_finish (& data, & samples);
write_processed (data, samples);
}
@@ -453,7 +458,7 @@ static void set_leave_open (void)
}
}
-static gboolean output_buffer_playing (void)
+static bool_t output_buffer_playing (void)
{
g_return_val_if_fail (cop != NULL, FALSE);
LOCK_VIS;
@@ -492,19 +497,19 @@ const struct OutputAPI output_api =
.abort_write = output_abort_write,
};
-static gint output_time (void)
+static int output_time (void)
{
LOCKED_RET (0);
g_return_val_if_fail (opened || leave_open, 0);
return cop->output_time ();
}
-gint get_output_time (void)
+int get_output_time (void)
{
g_return_val_if_fail (cop != NULL, 0);
LOCK;
- gint time = 0;
+ int time = 0;
if (opened)
{
time = effect_output_to_decoder_time (output_time ());
@@ -515,11 +520,11 @@ gint get_output_time (void)
return time;
}
-gint get_raw_output_time (void)
+int get_raw_output_time (void)
{
g_return_val_if_fail (cop != NULL, 0);
LOCK;
- gint time = output_time ();
+ int time = output_time ();
UNLOCK;
return time;
}
@@ -539,7 +544,7 @@ void output_drain (void)
UNLOCK_VIS;
}
-static gboolean probe_cb (PluginHandle * p, PluginHandle * * pp)
+static bool_t probe_cb (PluginHandle * p, PluginHandle * * pp)
{
OutputPlugin * op = plugin_get_header (p);
g_return_val_if_fail (op != NULL && op->init != NULL, TRUE);
@@ -566,7 +571,7 @@ PluginHandle * output_plugin_get_current (void)
return (cop != NULL) ? plugin_by_header (cop) : NULL;
}
-gboolean output_plugin_set_current (PluginHandle * plugin)
+bool_t output_plugin_set_current (PluginHandle * plugin)
{
if (cop != NULL)
{
diff --git a/src/audacious/output.h b/src/audacious/output.h
index c7525d5..c096f8e 100644
--- a/src/audacious/output.h
+++ b/src/audacious/output.h
@@ -26,21 +26,19 @@
#ifndef AUDACIOUS_OUTPUT_H
#define AUDACIOUS_OUTPUT_H
-#include <glib.h>
-
#include "plugin.h"
extern const struct OutputAPI output_api;
-void output_get_volume(gint * l, gint * r);
-void output_set_volume(gint l, gint r);
+void output_get_volume(int * l, int * r);
+void output_set_volume(int l, int r);
-gint get_output_time (void);
-gint get_raw_output_time (void);
+int get_output_time (void);
+int get_raw_output_time (void);
void output_drain (void);
PluginHandle * output_plugin_probe (void);
PluginHandle * output_plugin_get_current (void);
-gboolean output_plugin_set_current (PluginHandle * plugin);
+bool_t output_plugin_set_current (PluginHandle * plugin);
#endif /* AUDACIOUS_OUTPUT_H */
diff --git a/src/audacious/playback.c b/src/audacious/playback.c
index 9aa239b..eb90209 100644
--- a/src/audacious/playback.c
+++ b/src/audacious/playback.c
@@ -21,112 +21,101 @@
#include <glib.h>
#include <pthread.h>
+#include <string.h>
#include <libaudcore/audstrings.h>
-#include <libaudcore/eventqueue.h>
#include <libaudcore/hook.h>
-#include "audconfig.h"
#include "config.h"
#include "i18n.h"
#include "interface.h"
+#include "misc.h"
#include "output.h"
#include "playback.h"
#include "playlist.h"
-static gboolean playback_start (gint playlist, gint entry, gint seek_time,
- gboolean pause);
+static void playback_start (int playlist, int entry, int seek_time, bool_t pause);
static InputPlayback playback_api;
-static gboolean playing = FALSE;
-static gboolean playback_error;
-static gint failed_entries;
+static bool_t playing = FALSE;
+static bool_t playback_error;
+static int failed_entries;
+
+static char * current_filename; /* pooled */
+
+static int current_entry;
+static char * current_title; /* pooled */
+static int current_length;
-static gint current_entry;
-static const gchar * current_filename;
static InputPlugin * current_decoder;
static void * current_data;
-static gint current_bitrate, current_samplerate, current_channels;
-static gchar * current_title;
-static gint current_length;
+static int current_bitrate, current_samplerate, current_channels;
static ReplayGainInfo gain_from_playlist;
-static gint time_offset, start_time, stop_time;
-static gboolean paused;
+static int time_offset, initial_seek;
+static bool_t paused;
static pthread_t playback_thread_handle;
-static gint end_source = 0;
+static int end_source = 0;
static pthread_mutex_t ready_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t ready_cond = PTHREAD_COND_INITIALIZER;
-static gboolean ready_flag;
-static gint ready_source = 0;
-
-static gint set_tuple_source = 0;
-static Tuple * tuple_to_be_set = NULL;
-
-static void cancel_set_tuple (void)
-{
- if (set_tuple_source != 0)
- {
- g_source_remove (set_tuple_source);
- set_tuple_source = 0;
- }
-
- if (tuple_to_be_set != NULL)
- {
- tuple_free (tuple_to_be_set);
- tuple_to_be_set = NULL;
- }
-}
+static bool_t ready_flag;
/* clears gain info if tuple == NULL */
static void read_gain_from_tuple (const Tuple * tuple)
{
- gint album_gain, album_peak, track_gain, track_peak, gain_unit, peak_unit;
-
memset (& gain_from_playlist, 0, sizeof gain_from_playlist);
if (tuple == NULL)
return;
- album_gain = tuple_get_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL);
- album_peak = tuple_get_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL);
- track_gain = tuple_get_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL);
- track_peak = tuple_get_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL);
- gain_unit = tuple_get_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL);
- peak_unit = tuple_get_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL);
+ int album_gain = tuple_get_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL);
+ int album_peak = tuple_get_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL);
+ int track_gain = tuple_get_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL);
+ int track_peak = tuple_get_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL);
+ int gain_unit = tuple_get_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL);
+ int peak_unit = tuple_get_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL);
if (gain_unit)
{
- gain_from_playlist.album_gain = album_gain / (gfloat) gain_unit;
- gain_from_playlist.track_gain = track_gain / (gfloat) gain_unit;
+ gain_from_playlist.album_gain = album_gain / (float) gain_unit;
+ gain_from_playlist.track_gain = track_gain / (float) gain_unit;
}
if (peak_unit)
{
- gain_from_playlist.album_peak = album_peak / (gfloat) peak_unit;
- gain_from_playlist.track_peak = track_peak / (gfloat) peak_unit;
+ gain_from_playlist.album_peak = album_peak / (float) peak_unit;
+ gain_from_playlist.track_peak = track_peak / (float) peak_unit;
}
}
-static gboolean ready_cb (void * unused)
+static bool_t update_from_playlist (void)
{
- g_return_val_if_fail (playing, FALSE);
+ int entry = playback_entry_get_position ();
+ char * title = playback_entry_get_title ();
+ int length = playback_entry_get_length ();
- hook_call ("playback ready", NULL);
- hook_call ("title change", NULL);
- ready_source = 0;
- return FALSE;
+ if (entry == current_entry && ! g_strcmp0 (title, current_title) && length == current_length)
+ {
+ str_unref (title);
+ return FALSE;
+ }
+
+ current_entry = entry;
+ str_unref (current_title);
+ current_title = title;
+ current_length = length;
+ return TRUE;
}
-gboolean playback_get_ready (void)
+bool_t playback_get_ready (void)
{
g_return_val_if_fail (playing, FALSE);
pthread_mutex_lock (& ready_mutex);
- gboolean ready = ready_flag;
+ bool_t ready = ready_flag;
pthread_mutex_unlock (& ready_mutex);
return ready;
}
@@ -134,13 +123,15 @@ gboolean playback_get_ready (void)
static void set_pb_ready (InputPlayback * p)
{
g_return_if_fail (playing);
-
pthread_mutex_lock (& ready_mutex);
+
+ update_from_playlist ();
ready_flag = TRUE;
+
pthread_cond_signal (& ready_cond);
pthread_mutex_unlock (& ready_mutex);
- ready_source = g_timeout_add (0, ready_cb, NULL);
+ event_queue ("playback ready", NULL);
}
static void wait_until_ready (void)
@@ -158,41 +149,21 @@ static void update_cb (void * hook_data, void * user_data)
{
g_return_if_fail (playing);
- if (GPOINTER_TO_INT (hook_data) < PLAYLIST_UPDATE_METADATA)
+ if (GPOINTER_TO_INT (hook_data) < PLAYLIST_UPDATE_METADATA || ! playback_get_ready ())
return;
- gint playlist = playlist_get_playing ();
- gint entry = playlist_get_position (playlist);
- const gchar * title = playlist_entry_get_title (playlist, entry, FALSE);
-
- if (title == NULL)
- title = playlist_entry_get_filename (playlist, entry);
-
- gint length = playlist_entry_get_length (playlist, entry, FALSE);
-
- if (entry == current_entry && ! strcmp (title, current_title) && length ==
- current_length)
- return;
-
- current_entry = entry;
- g_free (current_title);
- current_title = g_strdup (title);
- current_length = length;
-
- if (playback_get_ready ())
- hook_call ("title change", NULL);
+ if (update_from_playlist ())
+ event_queue ("title change", NULL);
}
-gint playback_get_time (void)
+int playback_get_time (void)
{
g_return_val_if_fail (playing, 0);
+ wait_until_ready ();
- if (! playback_get_ready ())
- return 0;
-
- gint time = -1;
+ int time = -1;
- if (current_decoder->get_time != NULL)
+ if (current_decoder && current_decoder->get_time)
time = current_decoder->get_time (& playback_api);
if (time < 0)
@@ -201,11 +172,11 @@ gint playback_get_time (void)
return time - time_offset;
}
-void playback_play (gint seek_time, gboolean pause)
+void playback_play (int seek_time, bool_t pause)
{
g_return_if_fail (! playing);
- gint playlist = playlist_get_playing ();
+ int playlist = playlist_get_playing ();
if (playlist == -1)
{
@@ -213,7 +184,7 @@ void playback_play (gint seek_time, gboolean pause)
playlist_set_playing (playlist);
}
- gint entry = playlist_get_position (playlist);
+ int entry = playlist_get_position (playlist);
if (entry == -1)
{
@@ -233,9 +204,10 @@ void playback_pause (void)
g_return_if_fail (playing);
wait_until_ready ();
- paused = ! paused;
+ if (! current_decoder || ! current_decoder->pause)
+ return;
- g_return_if_fail (current_decoder->pause != NULL);
+ paused = ! paused;
current_decoder->pause (& playback_api, paused);
if (paused)
@@ -250,17 +222,22 @@ static void playback_cleanup (void)
pthread_join (playback_thread_handle, NULL);
playing = FALSE;
- playback_error = FALSE;
- g_free (current_title);
+ event_queue_cancel ("playback ready", NULL);
+ event_queue_cancel ("info change", NULL);
+ event_queue_cancel ("title change", NULL);
- if (ready_source)
+ if (end_source)
{
- g_source_remove (ready_source);
- ready_source = 0;
+ g_source_remove (end_source);
+ end_source = 0;
}
- cancel_set_tuple ();
+ str_unref (current_filename);
+ current_filename = NULL;
+ str_unref (current_title);
+ current_title = NULL;
+
hook_dissociate ("playlist update", update_cb);
}
@@ -268,12 +245,7 @@ static void complete_stop (void)
{
output_drain ();
hook_call ("playback stop", NULL);
-
- if (cfg.stopaftersong)
- {
- cfg.stopaftersong = FALSE;
- hook_call ("toggle stop after song", NULL);
- }
+ set_bool (NULL, "stop_after_current_song", FALSE);
}
void playback_stop (void)
@@ -281,18 +253,14 @@ void playback_stop (void)
g_return_if_fail (playing);
wait_until_ready ();
- current_decoder->stop (& playback_api);
+ if (current_decoder)
+ current_decoder->stop (& playback_api);
+
playback_cleanup ();
complete_stop ();
-
- if (end_source)
- {
- g_source_remove (end_source);
- end_source = 0;
- }
}
-static gboolean end_cb (void * unused)
+static bool_t end_cb (void * unused)
{
g_return_val_if_fail (playing, FALSE);
@@ -305,51 +273,68 @@ static gboolean end_cb (void * unused)
playback_cleanup ();
- gint playlist = playlist_get_playing ();
-
- while (1)
- {
- gboolean play;
-
- if (cfg.no_playlist_advance)
- play = cfg.repeat && ! failed_entries;
- else if (! (play = playlist_next_song (playlist, cfg.repeat)))
- playlist_set_position (playlist, -1);
- else if (failed_entries >= 10)
- play = FALSE;
+ int playlist = playlist_get_playing ();
+ bool_t play;
- if (cfg.stopaftersong)
- play = FALSE;
+ if (get_bool (NULL, "no_playlist_advance"))
+ play = get_bool (NULL, "repeat") && ! failed_entries;
+ else if (! (play = playlist_next_song (playlist, get_bool (NULL, "repeat"))))
+ playlist_set_position (playlist, -1);
+ else if (failed_entries >= 10)
+ play = FALSE;
- if (! play)
- {
- complete_stop ();
- hook_call ("playlist end reached", NULL);
- break;
- }
+ if (get_bool (NULL, "stop_after_current_song"))
+ play = FALSE;
- if (playback_start (playlist, playlist_get_position (playlist), 0, FALSE))
- break;
-
- failed_entries ++;
+ if (play)
+ playback_start (playlist, playlist_get_position (playlist), 0, FALSE);
+ else
+ {
+ complete_stop ();
+ hook_call ("playlist end reached", NULL);
}
- end_source = 0;
return FALSE;
}
static void * playback_thread (void * unused)
{
- gchar * real = filename_split_subtune (current_filename, NULL);
- VFSFile * file = vfs_fopen (real, "r");
- g_free (real);
+ PluginHandle * p = playback_entry_get_decoder ();
+ current_decoder = p ? plugin_get_header (p) : NULL;
+
+ if (! current_decoder)
+ {
+ char * error = g_strdup_printf (_("No decoder found for %s."),
+ current_filename);
+ interface_show_error (error);
+ g_free (error);
+ playback_error = TRUE;
+ goto DONE;
+ }
+
+ current_data = NULL;
+ current_bitrate = 0;
+ current_samplerate = 0;
+ current_channels = 0;
+
+ Tuple * tuple = playback_entry_get_tuple ();
+ read_gain_from_tuple (tuple);
+ if (tuple)
+ tuple_unref (tuple);
+ bool_t seekable = (playback_entry_get_length () > 0);
+
+ VFSFile * file = vfs_fopen (current_filename, "r");
+
+ time_offset = seekable ? playback_entry_get_start_time () : 0;
playback_error = ! current_decoder->play (& playback_api, current_filename,
- file, start_time, stop_time, paused);
+ file, seekable ? time_offset + initial_seek : 0,
+ seekable ? playback_entry_get_end_time () : -1, paused);
- if (file != NULL)
+ if (file)
vfs_fclose (file);
+DONE:
if (! ready_flag)
set_pb_ready (& playback_api);
@@ -357,84 +342,47 @@ static void * playback_thread (void * unused)
return NULL;
}
-static gboolean playback_start (gint playlist, gint entry, gint seek_time,
- gboolean pause)
+static void playback_start (int playlist, int entry, int seek_time, bool_t pause)
{
- g_return_val_if_fail (! playing, FALSE);
+ g_return_if_fail (! playing);
- current_entry = entry;
current_filename = playlist_entry_get_filename (playlist, entry);
-
- vfs_prepare_filename (current_filename);
-
- PluginHandle * p = playlist_entry_get_decoder (playlist, entry, FALSE);
- current_decoder = p ? plugin_get_header (p) : NULL;
-
- if (current_decoder == NULL)
- {
- gchar * error = g_strdup_printf (_("No decoder found for %s."),
- current_filename);
- /* The interface may not be up yet at this point. --jlindgren */
- event_queue_with_data_free ("interface show error", error);
- return FALSE;
- }
-
- current_data = NULL;
- current_bitrate = 0;
- current_samplerate = 0;
- current_channels = 0;
-
- const gchar * title = playlist_entry_get_title (playlist, entry, FALSE);
- current_title = g_strdup ((title != NULL) ? title : current_filename);
-
- current_length = playlist_entry_get_length (playlist, entry, FALSE);
- read_gain_from_tuple (playlist_entry_get_tuple (playlist, entry, FALSE));
-
- if (current_length > 0 && playlist_entry_is_segmented (playlist, entry))
- {
- time_offset = playlist_entry_get_start_time (playlist, entry);
- stop_time = playlist_entry_get_end_time (playlist, entry);
- }
- else
- {
- time_offset = 0;
- stop_time = -1;
- }
-
- if (current_length > 0)
- start_time = time_offset + seek_time;
- else
- start_time = 0;
+ g_return_if_fail (current_filename);
playing = TRUE;
playback_error = FALSE;
- paused = pause;
ready_flag = FALSE;
- pthread_create (& playback_thread_handle, NULL, playback_thread, NULL);
+ current_entry = -1;
+ current_title = NULL;
+ current_length = 0;
+
+ initial_seek = seek_time;
+ paused = pause;
hook_associate ("playlist update", update_cb, NULL);
+ pthread_create (& playback_thread_handle, NULL, playback_thread, NULL);
+
hook_call ("playback begin", NULL);
- return TRUE;
}
-gboolean playback_get_playing (void)
+bool_t playback_get_playing (void)
{
return playing;
}
-gboolean playback_get_paused (void)
+bool_t playback_get_paused (void)
{
g_return_val_if_fail (playing, FALSE);
return paused;
}
-void playback_seek (gint time)
+void playback_seek (int time)
{
g_return_if_fail (playing);
wait_until_ready ();
- if (current_decoder->mseek == NULL || playback_get_length () < 1)
+ if (! current_decoder || ! current_decoder->mseek || current_length < 1)
return;
current_decoder->mseek (& playback_api, time_offset + CLAMP (time, 0,
@@ -455,8 +403,8 @@ static void * get_data (InputPlayback * p)
return current_data;
}
-static void set_params (InputPlayback * p, gint bitrate, gint samplerate,
- gint channels)
+static void set_params (InputPlayback * p, int bitrate, int samplerate,
+ int channels)
{
g_return_if_fail (playing);
@@ -464,35 +412,15 @@ static void set_params (InputPlayback * p, gint bitrate, gint samplerate,
current_samplerate = samplerate;
current_channels = channels;
- event_queue ("info change", NULL);
-}
-
-static gboolean set_tuple_cb (void * unused)
-{
- g_return_val_if_fail (playing, FALSE);
- pthread_mutex_lock (& ready_mutex);
-
- gint playlist = playlist_get_playing ();
- playlist_entry_set_tuple (playlist, playlist_get_position (playlist),
- tuple_to_be_set);
- set_tuple_source = 0;
- tuple_to_be_set = NULL;
-
- pthread_mutex_unlock (& ready_mutex);
- return FALSE;
+ if (playback_get_ready ())
+ event_queue ("info change", NULL);
}
static void set_tuple (InputPlayback * p, Tuple * tuple)
{
g_return_if_fail (playing);
- pthread_mutex_lock (& ready_mutex);
-
- cancel_set_tuple ();
- set_tuple_source = g_timeout_add (0, set_tuple_cb, NULL);
- tuple_to_be_set = tuple;
-
read_gain_from_tuple (tuple);
- pthread_mutex_unlock (& ready_mutex);
+ playback_entry_set_tuple (tuple);
}
static void set_gain_from_playlist (InputPlayback * p)
@@ -511,22 +439,26 @@ static InputPlayback playback_api = {
.set_gain_from_playlist = set_gain_from_playlist,
};
-gchar * playback_get_title (void)
+char * playback_get_filename (void)
{
g_return_val_if_fail (playing, NULL);
+ return str_ref (current_filename);
+}
- if (! playback_get_ready ())
- return g_strdup (_("Buffering ..."));
+char * playback_get_title (void)
+{
+ g_return_val_if_fail (playing, NULL);
+ wait_until_ready ();
- gchar s[128];
+ char s[32];
if (current_length)
{
- gint len = current_length / 1000;
+ int len = current_length / 1000;
if (len < 3600)
- snprintf (s, sizeof s, cfg.leading_zero ? " (%02d:%02d)" :
- " (%d:%02d)", len / 60, len % 60);
+ snprintf (s, sizeof s, get_bool (NULL, "leading_zero") ?
+ " (%02d:%02d)" : " (%d:%02d)", len / 60, len % 60);
else
snprintf (s, sizeof s, " (%d:%02d:%02d)", len / 3600, (len / 60) %
60, len % 60);
@@ -534,44 +466,48 @@ gchar * playback_get_title (void)
else
s[0] = 0;
- if (cfg.show_numbers_in_pl)
- return g_strdup_printf ("%d. %s%s", 1 + playlist_get_position
+ if (get_bool (NULL, "show_numbers_in_pl"))
+ return str_printf ("%d. %s%s", 1 + playlist_get_position
(playlist_get_playing ()), current_title, s);
- return g_strdup_printf ("%s%s", current_title, s);
+ return str_printf ("%s%s", current_title, s);
}
-gint playback_get_length (void)
+int playback_get_length (void)
{
g_return_val_if_fail (playing, 0);
+ wait_until_ready ();
+
return current_length;
}
-void playback_get_info (gint * bitrate, gint * samplerate, gint * channels)
+void playback_get_info (int * bitrate, int * samplerate, int * channels)
{
g_return_if_fail (playing);
+ wait_until_ready ();
+
* bitrate = current_bitrate;
* samplerate = current_samplerate;
* channels = current_channels;
}
-void playback_get_volume (gint * l, gint * r)
+void playback_get_volume (int * l, int * r)
{
- if (playing && current_decoder->get_volume != NULL &&
- current_decoder->get_volume (l, r))
+ if (playing && playback_get_ready () && current_decoder &&
+ current_decoder->get_volume && current_decoder->get_volume (l, r))
return;
output_get_volume (l, r);
}
-void playback_set_volume(gint l, gint r)
+void playback_set_volume (int l, int r)
{
- gint h_vol[2] = {l, r};
+ int h_vol[2] = {l, r};
hook_call ("volume set", h_vol);
- if (playing && current_decoder->set_volume != NULL &&
- current_decoder->set_volume (l, r))
+ if (playing && playback_get_ready () && current_decoder &&
+ current_decoder->set_volume && current_decoder->set_volume (l, r))
return;
output_set_volume (l, r);
diff --git a/src/audacious/playback.h b/src/audacious/playback.h
index 2bf7f0d..109f9c9 100644
--- a/src/audacious/playback.h
+++ b/src/audacious/playback.h
@@ -23,22 +23,23 @@
#ifndef AUDACIOUS_PLAYBACK_H
#define AUDACIOUS_PLAYBACK_H
-#include <glib.h>
+#include <libaudcore/core.h>
-void playback_play (gint seek_time, gboolean pause);
-gint playback_get_time(void);
+void playback_play (int seek_time, bool_t pause);
+int playback_get_time(void);
void playback_pause(void);
void playback_stop(void);
-gboolean playback_get_playing(void);
-gboolean playback_get_ready (void);
-gboolean playback_get_paused(void);
-void playback_seek(gint time);
+bool_t playback_get_playing(void);
+bool_t playback_get_ready (void);
+bool_t playback_get_paused(void);
+void playback_seek(int time);
-gchar * playback_get_title (void);
-gint playback_get_length (void);
-void playback_get_info (gint * bitrate, gint * samplerate, gint * channels);
+char * playback_get_filename (void); /* pooled */
+char * playback_get_title (void); /* pooled */
+int playback_get_length (void);
+void playback_get_info (int * bitrate, int * samplerate, int * channels);
-void playback_get_volume (gint * l, gint * r);
-void playback_set_volume (gint l, gint r);
+void playback_get_volume (int * l, int * r);
+void playback_set_volume (int l, int r);
#endif /* AUDACIOUS_PLAYBACK_H */
diff --git a/src/audacious/playlist-api.h b/src/audacious/playlist-api.h
index 39ee7bf..b1886e5 100644
--- a/src/audacious/playlist-api.h
+++ b/src/audacious/playlist-api.h
@@ -21,21 +21,23 @@
/* Do not include this file directly; use playlist.h instead. */
-/* CAUTION: These functions are not thread safe. */
+/* Any functions in this API with a return type of (char *) return pooled
+ * strings that must not be modified and must be released with str_unref() when
+ * no longer needed. */
/* --- PLAYLIST CORE API --- */
/* Returns the number of playlists currently open. There will always be at
* least one playlist open. The playlists are numbered starting from zero. */
-AUD_FUNC0 (gint, playlist_count)
+AUD_FUNC0 (int, playlist_count)
/* Adds a new playlist before the one numbered <at>. If <at> is negative or
* equal to the number of playlists, adds a new playlist after the last one. */
-AUD_FUNC1 (void, playlist_insert, gint, at)
+AUD_VFUNC1 (playlist_insert, int, at)
/* Moves a contiguous block of <count> playlists starting with the one numbered
* <from> such that that playlist ends up at the position <to>. */
-AUD_FUNC3 (void, playlist_reorder, gint, from, gint, to, gint, count)
+AUD_VFUNC3 (playlist_reorder, int, from, int, to, int, count)
/* Closes a playlist. CAUTION: The playlist is not saved, and no confirmation
* is presented to the user. If <playlist> is the only playlist, a new playlist
@@ -43,295 +45,308 @@ AUD_FUNC3 (void, playlist_reorder, gint, from, gint, to, gint, count)
* active. If <playlist> is the one from which the last song played was taken,
* playback is stopped. In this case, calls to playlist_get_playing() will
* return -1, and the behavior of drct_play() is unspecified. */
-AUD_FUNC1 (void, playlist_delete, gint, playlist)
+AUD_VFUNC1 (playlist_delete, int, playlist)
+
+/* Returns a unique non-negative integer which can be used to identify a given
+ * playlist even if its numbering changes (as when playlists are reordered).
+ * On error, returns -1. */
+AUD_FUNC1 (int, playlist_get_unique_id, int, playlist)
+
+/* Returns the number of the playlist identified by a given integer ID as
+ * returned by playlist_get_unique_id(). If the playlist no longer exists,
+ * returns -1. */
+AUD_FUNC1 (int, playlist_by_unique_id, int, id)
/* Sets the filename associated with a playlist. (Audacious currently makes no
* use of the filename.) */
-AUD_FUNC2 (void, playlist_set_filename, gint, playlist, const gchar *, filename)
+AUD_VFUNC2 (playlist_set_filename, int, playlist, const char *, filename)
/* Returns the filename associated with a playlist. */
-AUD_FUNC1 (const gchar *, playlist_get_filename, gint, playlist)
+AUD_FUNC1 (char *, playlist_get_filename, int, playlist)
/* Sets the title associated with a playlist. */
-AUD_FUNC2 (void, playlist_set_title, gint, playlist, const gchar *, title)
+AUD_VFUNC2 (playlist_set_title, int, playlist, const char *, title)
/* Returns the title associated with a playlist. */
-AUD_FUNC1 (const gchar *, playlist_get_title, gint, playlist)
+AUD_FUNC1 (char *, playlist_get_title, int, playlist)
/* Marks a playlist as active. This is the playlist which the user will see and
* on which most DRCT functions will take effect. */
-AUD_FUNC1 (void, playlist_set_active, gint, playlist)
+AUD_VFUNC1 (playlist_set_active, int, playlist)
/* Returns the number of the playlist marked active. */
-AUD_FUNC0 (gint, playlist_get_active)
+AUD_FUNC0 (int, playlist_get_active)
/* Sets the playlist in which playback will begin when drct_play() is called.
* This does not mark the playlist as active. If a song is already playing, it
* will be stopped. If <playlist> is negative, calls to playlist_get_playing()
* will return -1, and the behavior of drct_play() is unspecified. */
-AUD_FUNC1 (void, playlist_set_playing, gint, playlist)
+AUD_VFUNC1 (playlist_set_playing, int, playlist)
/* Returns the number of the playlist from which the last song played was taken,
* or -1 if that cannot be determined. Note that this playlist may not be
* marked active. */
-AUD_FUNC0 (gint, playlist_get_playing)
+AUD_FUNC0 (int, playlist_get_playing)
+
+/* Returns the number of a "blank" playlist. The active playlist is returned if
+ * it has the default title and has no entries; otherwise, a new playlist is
+ * added and returned. */
+AUD_FUNC0 (int, playlist_get_blank)
+
+/* Returns the number of the "temporary" playlist (which is no different from
+ * any other playlist except in name). If the playlist does not exist, a
+ * "blank" playlist is obtained from playlist_get_blank() and is renamed to
+ * become the temporary playlist. */
+AUD_FUNC0 (int, playlist_get_temporary)
/* Returns the number of entries in a playlist. The entries are numbered
* starting from zero. */
-AUD_FUNC1 (gint, playlist_entry_count, gint, playlist)
-
-/* Adds a song file to a playlist before the entry numbered <at>. If <at> is
- * negative or equal to the number of entries, the song is added after the last
- * entry. <tuple> may be NULL, in which case Audacious will attempt to read
- * metadata from the song file. Audacious will free the memory used by the
- * filename and the tuple when they are no longer needed. NOTE: This function
- * cannot be used to insert playlist files or entire folders. To do that, see
- * playlist_insert_playlist or playlist_insert_folder. */
-AUD_FUNC4 (void, playlist_entry_insert, gint, playlist, gint, at, gchar *,
- filename, Tuple *, tuple)
-
-/* Similar to playlist_entry_insert, adds multiple song files to a playlist.
- * The filenames are stored as (gchar *) in an index (see libaudcore/index.h).
- * Tuples are likewise stored as (Tuple *) in an index of the same length.
- * <tuples> may be NULL, or individual pointers within it may be NULL.
- * Audacious will free both indexes, the filenames, and the tuples when they are
- * no longer needed. */
-AUD_FUNC4 (void, playlist_entry_insert_batch, gint, playlist, gint, at,
- struct index *, filenames, struct index *, tuples)
+AUD_FUNC1 (int, playlist_entry_count, int, playlist)
+
+/* Adds a song file, playlist file, or folder to a playlist before the entry
+ * numbered <at>. If <at> is negative or equal to the number of entries, the
+ * item is added after the last entry. <tuple> may be NULL, in which case
+ * Audacious will attempt to read metadata from the song file. The caller gives
+ * up one reference count to <tuple>. If <play> is nonzero, Audacious will
+ * begin playback of the items once they have been added.
+ *
+ * Because adding items to the playlist can be a slow process, this function may
+ * return before the process is complete. Hence, the caller must not assume
+ * that there will be new entries in the playlist immediately. */
+AUD_VFUNC5 (playlist_entry_insert, int, playlist, int, at, const char *,
+ filename, Tuple *, tuple, bool_t, play)
+
+/* Similar to playlist_entry_insert, adds multiple song files, playlist files,
+ * or folders to a playlist. The filenames, stored as (char *) in an index
+ * (see libaudcore/index.h), must be pooled with str_get(); the caller gives up
+ * one reference count to each filename. Tuples are likewise stored as
+ * (Tuple *) in an index of the same length; the caller gives up one reference
+ * count to each tuple. <tuples> may be NULL, or individual pointers within it
+ * may be NULL. Finally, the caller also gives up ownership of the indexes
+ * themselves and should not access them after the call. */
+AUD_VFUNC5 (playlist_entry_insert_batch, int, playlist, int, at,
+ Index *, filenames, Index *, tuples, bool_t, play)
+
+/* Similar to playlist_entry_insert_batch, but allows the caller to prevent some
+ * items from being added by returning false from the <filter> callback. Useful
+ * for searching a folder and adding only new files to the playlist. <user> is
+ * an untyped pointer passed to the <filter> callback. */
+AUD_VFUNC7 (playlist_entry_insert_filtered, int, playlist, int, at,
+ Index *, filenames, Index *, tuples, PlaylistFilterFunc, filter,
+ void *, user, bool_t, play)
/* Removes a contiguous block of <number> entries starting from the one numbered
* <at> from a playlist. If the last song played is in this block, playback is
* stopped. In this case, calls to playlist_get_position() will return -1, and
* the behavior of drct_play() is unspecified. */
-AUD_FUNC3 (void, playlist_entry_delete, gint, playlist, gint, at, gint, number)
+AUD_VFUNC3 (playlist_entry_delete, int, playlist, int, at, int, number)
-/* Returns the filename of an entry. The returned string is valid until another
- * playlist function is called or control returns to the program's main loop. */
-AUD_FUNC2 (const gchar *, playlist_entry_get_filename, gint, playlist, gint,
- entry)
+/* Returns the filename of an entry. */
+AUD_FUNC2 (char *, playlist_entry_get_filename, int, playlist, int, entry)
/* Returns a handle to the decoder plugin associated with an entry, or NULL if
* none can be found. If <fast> is nonzero, returns NULL if no decoder plugin
* has yet been found. */
-AUD_FUNC3 (PluginHandle *, playlist_entry_get_decoder, gint, playlist, gint,
- entry, gboolean, fast)
+AUD_FUNC3 (PluginHandle *, playlist_entry_get_decoder, int, playlist, int,
+ entry, bool_t, fast)
/* Returns the tuple associated with an entry, or NULL if one is not available.
- * The returned tuple is read-only and valid until another playlist function is
- * called or control returns to the program's main loop. If <fast> is nonzero,
+ * The reference count of the tuple is incremented. If <fast> is nonzero,
* returns NULL if metadata for the entry has not yet been read from the song
* file. */
-AUD_FUNC3 (const Tuple *, playlist_entry_get_tuple, gint, playlist, gint, entry,
- gboolean, fast)
+AUD_FUNC3 (Tuple *, playlist_entry_get_tuple, int, playlist, int, entry,
+ bool_t, fast)
/* Returns a formatted title string for an entry. This may include information
- * such as the filename, song title, and/or artist. The returned string is
- * valid until another playlist function is called or control returns to the
- * program's main loop. If <fast> is nonzero, returns the entry's filename if
- * metadata for the entry has not yet been read. */
-AUD_FUNC3 (const gchar *, playlist_entry_get_title, gint, playlist, gint, entry,
- gboolean, fast)
+ * such as the filename, song title, and/or artist. If <fast> is nonzero,
+ * returns the entry's filename if metadata for the entry has not yet been read. */
+AUD_FUNC3 (char *, playlist_entry_get_title, int, playlist, int, entry,
+ bool_t, fast)
/* Returns three strings (title, artist, and album) describing an entry. The
- * returned strings are valid until another playlist function is called or
- * control returns to the program's main loop. If <fast> is nonzero, return's
- * the entry's filename for <title> and NULL for <artist> and <album> if
- * metadata for the entry has not yet been read. */
-AUD_FUNC6 (void, playlist_entry_describe, gint, playlist, gint, entry,
- const gchar * *, title, const gchar * *, artist, const gchar * *, album,
- gboolean, fast)
+ * strings are pooled, and the usual cautions apply. If <fast> is nonzero,
+ * returns a "best guess" based on the entry's filename if metadata for the
+ * entry has not yet been read. May return NULL for any and all values. */
+AUD_VFUNC6 (playlist_entry_describe, int, playlist, int, entry,
+ char * *, title, char * *, artist, char * *, album, bool_t, fast)
/* Returns the length in milliseconds of an entry, or -1 if the length is not
* known. <fast> is as in playlist_entry_get_tuple(). */
-AUD_FUNC3 (gint, playlist_entry_get_length, gint, playlist, gint, entry,
- gboolean, fast)
+AUD_FUNC3 (int, playlist_entry_get_length, int, playlist, int, entry,
+ bool_t, fast)
/* Sets the entry which will be played (if this playlist is selected with
* playlist_set_playing()) when drct_play() is called. If a song from this
* playlist is already playing, it will be stopped. If <position> is negative,
* calls to playlist_get_position() will return -1, and the behavior of
* drct_play() is unspecified. */
-AUD_FUNC2 (void, playlist_set_position, gint, playlist, gint, position)
+AUD_VFUNC2 (playlist_set_position, int, playlist, int, position)
/* Returns the number of the entry which was last played from this playlist, or
* -1 if that cannot be determined. */
-AUD_FUNC1 (gint, playlist_get_position, gint, playlist)
+AUD_FUNC1 (int, playlist_get_position, int, playlist)
/* Sets whether an entry is selected. */
-AUD_FUNC3 (void, playlist_entry_set_selected, gint, playlist, gint, entry,
- gboolean, selected)
+AUD_VFUNC3 (playlist_entry_set_selected, int, playlist, int, entry,
+ bool_t, selected)
/* Returns whether an entry is selected. */
-AUD_FUNC2 (gboolean, playlist_entry_get_selected, gint, playlist, gint, entry)
+AUD_FUNC2 (bool_t, playlist_entry_get_selected, int, playlist, int, entry)
/* Returns the number of selected entries in a playlist. */
-AUD_FUNC1 (gint, playlist_selected_count, gint, playlist)
+AUD_FUNC1 (int, playlist_selected_count, int, playlist)
/* Selects all (or none) of the entries in a playlist. */
-AUD_FUNC2 (void, playlist_select_all, gint, playlist, gboolean, selected)
+AUD_VFUNC2 (playlist_select_all, int, playlist, bool_t, selected)
/* Moves a selected entry within a playlist by an offset of <distance> entries.
* Other selected entries are gathered around it. Returns the offset by which
* the entry was actually moved, which may be less in absolute value than the
* requested offset. */
-AUD_FUNC3 (gint, playlist_shift, gint, playlist, gint, position, gint, distance)
+AUD_FUNC3 (int, playlist_shift, int, playlist, int, position, int, distance)
/* Removes the selected entries from a playlist. If the last song played is one
* of these entries, playback is stopped. In this case, calls to
* playlist_get_position() will return -1, and the behavior of drct_play() is
* unspecified. */
-AUD_FUNC1 (void, playlist_delete_selected, gint, playlist)
+AUD_VFUNC1 (playlist_delete_selected, int, playlist)
/* Sorts the entries in a playlist based on filename. The callback function
* should return negative if the first filename comes before the second,
* positive if it comes after, or zero if the two are indistinguishable. */
-AUD_FUNC2 (void, playlist_sort_by_filename, gint, playlist,
+AUD_VFUNC2 (playlist_sort_by_filename, int, playlist,
PlaylistStringCompareFunc, compare)
-/* Sorts the entries in a playlist based on tuple. */
-AUD_FUNC2 (void, playlist_sort_by_tuple, gint, playlist,
+/* Sorts the entries in a playlist based on tuple. May fail if metadata
+ * scanning is still in progress (or has been disabled). */
+AUD_VFUNC2 (playlist_sort_by_tuple, int, playlist,
PlaylistTupleCompareFunc, compare)
-/* Sorts the entries in a playlist based on formatted title string. */
-AUD_FUNC2 (void, playlist_sort_by_title, gint, playlist,
+/* Sorts the entries in a playlist based on formatted title string. May fail if
+ * metadata scanning is still in progress (or has been disabled). */
+AUD_VFUNC2 (playlist_sort_by_title, int, playlist,
PlaylistStringCompareFunc, compare)
/* Sorts only the selected entries in a playlist based on filename. */
-AUD_FUNC2 (void, playlist_sort_selected_by_filename, gint, playlist,
+AUD_VFUNC2 (playlist_sort_selected_by_filename, int, playlist,
PlaylistStringCompareFunc, compare)
-/* Sorts only the selected entries in a playlist based on tuple. */
-AUD_FUNC2 (void, playlist_sort_selected_by_tuple, gint, playlist,
+/* Sorts only the selected entries in a playlist based on tuple. May fail if
+ * metadata scanning is still in progress (or has been disabled). */
+AUD_VFUNC2 (playlist_sort_selected_by_tuple, int, playlist,
PlaylistTupleCompareFunc, compare)
-/* Sorts only the selected entries in a playlist based on formatted title string. */
-AUD_FUNC2 (void, playlist_sort_selected_by_title, gint, playlist,
+/* Sorts only the selected entries in a playlist based on formatted title
+ * string. May fail if metadata scanning is still in progress (or has been
+ * disabled). */
+AUD_VFUNC2 (playlist_sort_selected_by_title, int, playlist,
PlaylistStringCompareFunc, compare)
/* Reverses the order of the entries in a playlist. */
-AUD_FUNC1 (void, playlist_reverse, gint, playlist)
+AUD_VFUNC1 (playlist_reverse, int, playlist)
/* Reorders the entries in a playlist randomly. */
-AUD_FUNC1 (void, playlist_randomize, gint, playlist)
+AUD_VFUNC1 (playlist_randomize, int, playlist)
/* Discards the metadata stored for all the entries in a playlist and starts
* reading it afresh from the song files in the background. */
-AUD_FUNC1 (void, playlist_rescan, gint, playlist)
+AUD_VFUNC1 (playlist_rescan, int, playlist)
/* Like playlist_rescan, but applies only to the selected entries in a playlist. */
-AUD_FUNC1 (void, playlist_rescan_selected, gint, playlist)
+AUD_VFUNC1 (playlist_rescan_selected, int, playlist)
/* Discards the metadata stored for all the entries that refer to a particular
* song file, in whatever playlist they appear, and starts reading it afresh
* from that file in the background. */
-AUD_FUNC1 (void, playlist_rescan_file, const gchar *, filename)
+AUD_VFUNC1 (playlist_rescan_file, const char *, filename)
/* Calculates the total length in milliseconds of all the entries in a playlist.
- * <fast> is as in playlist_entry_get_tuple(). */
-AUD_FUNC2 (gint64, playlist_get_total_length, gint, playlist, gboolean, fast)
+ * Only takes into account entries for which metadata has already been read. */
+AUD_FUNC1 (int64_t, playlist_get_total_length, int, playlist)
/* Calculates the total length in milliseconds of only the selected entries in a
- * playlist. <fast> is as in playlist_entry_get_tuple(). */
-AUD_FUNC2 (gint64, playlist_get_selected_length, gint, playlist, gboolean, fast)
+ * playlist. Only takes into account entries for which metadata has already
+ * been read. */
+AUD_FUNC1 (int64_t, playlist_get_selected_length, int, playlist)
/* Returns the number of entries in a playlist queue. The entries are numbered
* starting from zero, lower numbers being played first. */
-AUD_FUNC1 (gint, playlist_queue_count, gint, playlist)
+AUD_FUNC1 (int, playlist_queue_count, int, playlist)
/* Adds an entry to a playlist's queue before the entry numbered <at> in the
* queue. If <at> is negative or equal to the number of entries in the queue,
* adds the entry after the last one in the queue. The same entry cannot be
* added to the queue more than once. */
-AUD_FUNC3 (void, playlist_queue_insert, gint, playlist, gint, at, gint, entry)
+AUD_VFUNC3 (playlist_queue_insert, int, playlist, int, at, int, entry)
/* Adds the selected entries in a playlist to the queue, if they are not already
* in it. */
-AUD_FUNC2 (void, playlist_queue_insert_selected, gint, playlist, gint, at)
+AUD_VFUNC2 (playlist_queue_insert_selected, int, playlist, int, at)
/* Returns the position in the playlist of the entry at a given position in the
* queue. */
-AUD_FUNC2 (gint, playlist_queue_get_entry, gint, playlist, gint, at)
+AUD_FUNC2 (int, playlist_queue_get_entry, int, playlist, int, at)
/* Returns the position in the queue of the entry at a given position in the
* playlist. If it is not in the queue, returns -1. */
-AUD_FUNC2 (gint, playlist_queue_find_entry, gint, playlist, gint, entry)
+AUD_FUNC2 (int, playlist_queue_find_entry, int, playlist, int, entry)
/* Removes a contiguous block of <number> entries starting with the one numbered
* <at> from the queue. */
-AUD_FUNC3 (void, playlist_queue_delete, gint, playlist, gint, at, gint, number)
+AUD_VFUNC3 (playlist_queue_delete, int, playlist, int, at, int, number)
/* Removes the selected entries in a playlist from the queue, if they are in it. */
-AUD_FUNC1 (void, playlist_queue_delete_selected, gint, playlist)
-
-/* Returns nonzero if any playlist has been changed since the last call of the
- * "playlist update" hook. If called from within the hook, returns nonzero. */
-AUD_FUNC0 (gboolean, playlist_update_pending)
-
-/* May be called within the "playlist update" hook to determine what range of
- * entries must be updated. If all entries in all playlists must be updated,
- * returns zero. If a limited range in a single playlist must be updated,
- * returns nonzero. In this case, stores the number of that playlist at
- * <playlist>, the number of the first entry to be updated at <at>, and the
- * number of contiguous entries to be updated at <count>. Note that entries may
- * have been added or removed within this range. */
-AUD_FUNC3 (gboolean, playlist_update_range, gint *, playlist, gint *, at,
- gint *, count)
+AUD_VFUNC1 (playlist_queue_delete_selected, int, playlist)
+
+/* Returns nonzero if a "playlist update" hook call is pending. If called from
+ * within the hook, the current hook call is not considered pending. */
+AUD_FUNC0 (bool_t, playlist_update_pending)
+
+/* May be called within the "playlist update" hook to determine the update level
+ * and number of entries changed in a playlist. Returns the update level for
+ * the playlist, storing the number of the first entry changed in <at> and the
+ * number of contiguous entries to be updated in <count>. Note that entries may
+ * have been added or removed within this range. If no entries in the playlist
+ * have changed, returns zero. */
+AUD_FUNC3 (int, playlist_updated_range, int, playlist, int *, at, int *, count)
+
+/* Returns nonzero if entries are being added to a playlist in the background. */
+AUD_FUNC1 (bool_t, playlist_add_in_progress, int, playlist)
+
+/* Returns nonzero if entries in a playlist are being scanned for metadata in
+ * the background. */
+AUD_FUNC1 (bool_t, playlist_scan_in_progress, int, playlist)
/* --- PLAYLIST UTILITY API --- */
/* Sorts the entries in a playlist according to one of the schemes listed in
* playlist.h. */
-AUD_FUNC2 (void, playlist_sort_by_scheme, gint, playlist, gint, scheme)
+AUD_VFUNC2 (playlist_sort_by_scheme, int, playlist, int, scheme)
/* Sorts only the selected entries in a playlist according to one of those
* schemes. */
-AUD_FUNC2 (void, playlist_sort_selected_by_scheme, gint, playlist, gint, scheme)
+AUD_VFUNC2 (playlist_sort_selected_by_scheme, int, playlist, int, scheme)
/* Removes duplicate entries in a playlist according to one of those schemes.
* As currently implemented, first sorts the playlist. */
-AUD_FUNC2 (void, playlist_remove_duplicates_by_scheme, gint, playlist, gint,
+AUD_VFUNC2 (playlist_remove_duplicates_by_scheme, int, playlist, int,
scheme)
-/* Removes from a playlist entries of files that do not exists or were not
- * recognized. */
-AUD_FUNC1 (void, playlist_remove_failed, gint, playlist)
+/* Removes all entries referring to unavailable files in a playlist. ("Remove
+ * failed" is something of a misnomer for the current behavior.) As currently
+ * implemented, only works for file:// URIs. */
+AUD_VFUNC1 (playlist_remove_failed, int, playlist)
/* Selects all the entries in a playlist that match regular expressions stored
* in the fields of a tuple. Does not free the memory used by the tuple.
* Example: To select all the songs whose title starts with the letter "A",
* create a blank tuple and set its title field to "^A". */
-AUD_FUNC2 (void, playlist_select_by_patterns, gint, playlist, const Tuple *,
+AUD_VFUNC2 (playlist_select_by_patterns, int, playlist, const Tuple *,
patterns)
/* Returns nonzero if <filename> refers to a playlist file. */
-AUD_FUNC1 (gboolean, filename_is_playlist, const gchar *, filename)
-
-/* Reads entries from a playlist file and add them to a playlist. <at> is as in
- * playlist_entry_insert(). Returns nonzero on success. */
-AUD_FUNC3 (gboolean, playlist_insert_playlist, gint, playlist, gint, at,
- const gchar *, filename)
+AUD_FUNC1 (bool_t, filename_is_playlist, const char *, filename)
/* Saves the entries in a playlist to a playlist file. The format of the file
* is determined from the file extension. Returns nonzero on success. */
-AUD_FUNC2 (gboolean, playlist_save, gint, playlist, const gchar *, filename)
-
-/* Begins searching a folder recursively for supported files (including playlist
- * files) and adding them to a playlist. The search continues in the
- * background. If <play> is nonzero, begins playback of the first entry added
- * (or a random entry if shuffle is enabled) once the search is complete.
- * CAUTION: Editing the playlist while the search is in progress may lead to
- * unexpected results. */
-AUD_FUNC4 (void, playlist_insert_folder, gint, playlist, gint, at,
- const gchar *, folder, gboolean, play)
-
-/* --- ADDED IN AUDACIOUS 2.5-BETA2 --- */
-
-/* Returns a unique non-negative integer which can be used to identify a given
- * playlist even if its numbering changes (as when playlists are reordered).
- * On error, returns -1. */
-AUD_FUNC1 (gint, playlist_get_unique_id, gint, playlist)
-
-/* Returns the number of the playlist identified by a given integer ID as
- * returned by playlist_get_unique_id(). If the playlist no longer exists,
- * returns -1. */
-AUD_FUNC1 (gint, playlist_by_unique_id, gint, id)
+AUD_FUNC2 (bool_t, playlist_save, int, playlist, const char *, filename)
diff --git a/src/audacious/playlist-files.c b/src/audacious/playlist-files.c
index d2ea3f3..74567ce 100644
--- a/src/audacious/playlist-files.c
+++ b/src/audacious/playlist-files.c
@@ -1,6 +1,6 @@
/*
* playlist-files.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -19,66 +19,154 @@
* using our public API to be a derived work.
*/
+#include <glib.h>
+#include <libaudcore/audstrings.h>
+
+#include "config.h"
#include "debug.h"
+#include "i18n.h"
+#include "misc.h"
#include "playlist.h"
#include "plugin.h"
#include "plugins.h"
-static const gchar * get_extension (const gchar * filename, gboolean quiet)
+static const char * get_extension (const char * filename)
{
- const gchar * s = strrchr (filename, '/');
- if (! s)
- goto FAIL;
-
- const gchar * p = strrchr (s + 1, '.');
- if (! p)
- goto FAIL;
-
- return p + 1;
-
-FAIL:
- if (! quiet)
- fprintf (stderr, "Failed to parse playlist filename %s.\n", filename);
- return NULL;
+ const char * ext;
+ uri_parse (filename, NULL, & ext, NULL, NULL);
+ return (ext && ext[0] == '.') ? ext + 1 : NULL;
}
-gboolean filename_is_playlist (const gchar * filename)
+bool_t filename_is_playlist (const char * filename)
{
- const gchar * ext = get_extension (filename, TRUE);
- if (! ext)
- return FALSE;
-
- return playlist_plugin_for_extension (ext) ? TRUE : FALSE;
+ const char * ext = get_extension (filename);
+ return (ext && playlist_plugin_for_extension (ext)) ? TRUE : FALSE;
}
-static PlaylistPlugin * get_plugin (const gchar * filename)
+static PluginHandle * get_plugin (const char * filename, bool_t saving)
{
- const gchar * ext = get_extension (filename, FALSE);
- if (! ext)
- return NULL;
+ const char * ext = get_extension (filename);
+ PluginHandle * plugin = ext ? playlist_plugin_for_extension (ext) : NULL;
- PluginHandle * plugin = playlist_plugin_for_extension (ext);
if (! plugin)
{
- fprintf (stderr, "Unrecognized playlist file type \"%s\".\n", ext);
+ char * error = str_printf (_("Cannot %s %s: unsupported file "
+ "extension."), saving ? _("save") : _("load"), filename);
+ interface_show_error (error);
+ str_unref (error);
return NULL;
}
- return plugin_get_header (plugin);
+ return plugin;
}
-gboolean playlist_insert_playlist (gint list, gint at, const gchar * filename)
+bool_t playlist_load (const char * filename, char * * title,
+ Index * * filenames_p, Index * * tuples_p)
{
AUDDBG ("Loading playlist %s.\n", filename);
- PlaylistPlugin * pp = get_plugin (filename);
- g_return_val_if_fail (pp && pp->load, FALSE);
- return pp->load (filename, list, at);
+
+ PluginHandle * plugin = get_plugin (filename, FALSE);
+ if (! plugin)
+ return FALSE;
+
+ PlaylistPlugin * pp = plugin_get_header (plugin);
+ g_return_val_if_fail (pp && PLUGIN_HAS_FUNC (pp, load), FALSE);
+
+ VFSFile * file = vfs_fopen (filename, "r");
+ if (! file)
+ return FALSE;
+
+ Index * filenames = index_new ();
+ Index * tuples = index_new ();
+ bool_t success = pp->load (filename, file, title, filenames, tuples);
+
+ vfs_fclose (file);
+
+ if (! success)
+ {
+ index_free (filenames);
+ index_free (tuples);
+ return FALSE;
+ }
+
+ if (index_count (tuples))
+ g_return_val_if_fail (index_count (tuples) == index_count (filenames),
+ FALSE);
+ else
+ {
+ index_free (tuples);
+ tuples = NULL;
+ }
+
+ * filenames_p = filenames;
+ * tuples_p = tuples;
+ return TRUE;
+}
+
+bool_t playlist_insert_playlist_raw (int list, int at,
+ const char * filename)
+{
+ char * title = NULL;
+ Index * filenames, * tuples;
+
+ if (! playlist_load (filename, & title, & filenames, & tuples))
+ return FALSE;
+
+ if (title && ! playlist_entry_count (list))
+ playlist_set_title (list, title);
+
+ playlist_entry_insert_batch_raw (list, at, filenames, tuples, NULL);
+
+ str_unref (title);
+ return TRUE;
}
-gboolean playlist_save (gint list, const gchar * filename)
+bool_t playlist_save (int list, const char * filename)
{
AUDDBG ("Saving playlist %s.\n", filename);
- PlaylistPlugin * pp = get_plugin (filename);
- g_return_val_if_fail (pp && pp->save, FALSE);
- return pp->save (filename, list);
+
+ PluginHandle * plugin = get_plugin (filename, TRUE);
+ if (! plugin)
+ return FALSE;
+
+ PlaylistPlugin * pp = plugin_get_header (plugin);
+ g_return_val_if_fail (pp && PLUGIN_HAS_FUNC (pp, load), FALSE);
+
+ bool_t fast = get_bool (NULL, "metadata_on_play");
+
+ VFSFile * file = vfs_fopen (filename, "w");
+ if (! file)
+ return FALSE;
+
+ char * title = playlist_get_title (list);
+
+ int entries = playlist_entry_count (list);
+ Index * filenames = index_new ();
+ index_allocate (filenames, entries);
+ Index * tuples = index_new ();
+ index_allocate (tuples, entries);
+
+ for (int i = 0; i < entries; i ++)
+ {
+ index_append (filenames, playlist_entry_get_filename (list, i));
+ index_append (tuples, playlist_entry_get_tuple (list, i, fast));
+ }
+
+ bool_t success = pp->save (filename, file, title, filenames, tuples);
+
+ vfs_fclose (file);
+ str_unref (title);
+
+ for (int i = 0; i < entries; i ++)
+ {
+ str_unref (index_get (filenames, i));
+ Tuple * tuple = index_get (tuples, i);
+ if (tuple)
+ tuple_unref (tuple);
+ }
+
+ index_free (filenames);
+ index_free (tuples);
+
+ return success;
}
diff --git a/src/audacious/playlist-new.c b/src/audacious/playlist-new.c
index 0c26db2..af674df 100644
--- a/src/audacious/playlist-new.c
+++ b/src/audacious/playlist-new.c
@@ -19,30 +19,44 @@
* using our public API to be a derived work.
*/
-#include <assert.h>
+#include <pthread.h>
+#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <time.h>
#include <glib.h>
#include <libaudcore/audstrings.h>
#include <libaudcore/hook.h>
-#include <libaudcore/stringpool.h>
-#include <libaudcore/tuple_formatter.h>
+#include <libaudcore/tuple.h>
-#include "audconfig.h"
#include "config.h"
#include "i18n.h"
#include "misc.h"
#include "playback.h"
#include "playlist.h"
-#include "playlist-utils.h"
#include "plugins.h"
#include "util.h"
-#define SCAN_THREADS 4
+enum {RESUME_STOP, RESUME_PLAY, RESUME_PAUSE};
+
+#define SCAN_THREADS 2
#define STATE_FILE "playlist-state"
+#define ENTER pthread_mutex_lock (& mutex)
+#define LEAVE pthread_mutex_unlock (& mutex)
+
+#define LEAVE_RET_VOID do { \
+ pthread_mutex_unlock (& mutex); \
+ return; \
+} while (0)
+
+#define LEAVE_RET(ret) do { \
+ pthread_mutex_unlock (& mutex); \
+ return ret; \
+} while (0)
+
#define DECLARE_PLAYLIST \
Playlist * playlist
@@ -51,141 +65,147 @@
Entry * entry
#define LOOKUP_PLAYLIST do { \
- playlist = lookup_playlist (playlist_num); \
- g_return_if_fail (playlist != NULL); \
+ if (! (playlist = lookup_playlist (playlist_num))) \
+ LEAVE_RET_VOID; \
} while (0)
#define LOOKUP_PLAYLIST_RET(ret) do { \
- playlist = lookup_playlist (playlist_num); \
- g_return_val_if_fail (playlist != NULL, ret); \
+ if (! (playlist = lookup_playlist (playlist_num))) \
+ LEAVE_RET(ret); \
} while (0)
#define LOOKUP_PLAYLIST_ENTRY do { \
- playlist = lookup_playlist (playlist_num); \
- g_return_if_fail (playlist != NULL); \
- entry = lookup_entry (playlist, entry_num); \
- g_return_if_fail (entry != NULL); \
+ LOOKUP_PLAYLIST; \
+ if (! (entry = lookup_entry (playlist, entry_num))) \
+ LEAVE_RET_VOID; \
} while (0)
#define LOOKUP_PLAYLIST_ENTRY_RET(ret) do { \
- playlist = lookup_playlist (playlist_num); \
- g_return_val_if_fail (playlist != NULL, ret); \
- entry = lookup_entry (playlist, entry_num); \
- g_return_val_if_fail (entry != NULL, ret); \
+ LOOKUP_PLAYLIST_RET(ret); \
+ if (! (entry = lookup_entry (playlist, entry_num))) \
+ LEAVE_RET(ret); \
} while (0)
#define SELECTION_HAS_CHANGED(p, a, c) \
queue_update (PLAYLIST_UPDATE_SELECTION, p, a, c)
-#define METADATA_WILL_CHANGE scan_stop ()
-
-#define METADATA_HAS_CHANGED(p, a, c) do { \
- scan_reset (); \
- queue_update (PLAYLIST_UPDATE_METADATA, p, a, c); \
-} while (0)
+#define METADATA_HAS_CHANGED(p, a, c) \
+ queue_update (PLAYLIST_UPDATE_METADATA, p, a, c)
-#define PLAYLIST_WILL_CHANGE scan_stop ()
+#define PLAYLIST_HAS_CHANGED(p, a, c) \
+ queue_update (PLAYLIST_UPDATE_STRUCTURE, p, a, c)
-#define PLAYLIST_HAS_CHANGED(p, a, c) do { \
- scan_reset (); \
- queue_update (PLAYLIST_UPDATE_STRUCTURE, p, a, c); \
-} while (0)
+typedef struct {
+ int level, before, after;
+} Update;
typedef struct {
- gint number;
- gchar *filename;
+ int number;
+ char * filename;
PluginHandle * decoder;
- Tuple *tuple;
- gchar * formatted, * title, * artist, * album;
- gint length;
- gboolean failed;
- gboolean selected;
- gint shuffle_num;
- gboolean queued;
- gboolean segmented;
- gint start;
- gint end;
+ Tuple * tuple;
+ char * formatted, * title, * artist, * album;
+ int length;
+ bool_t failed;
+ bool_t selected;
+ int shuffle_num;
+ bool_t queued;
+ bool_t segmented;
+ int start, end;
} Entry;
typedef struct {
- gint number;
- gint unique_id;
- gchar *filename;
- gchar *title;
- struct index *entries;
+ int number, unique_id;
+ char * filename, * title;
+ bool_t modified;
+ Index * entries;
Entry * position;
- gint selected_count;
- gint last_shuffle_num;
- GList *queued;
- gint64 total_length;
- gint64 selected_length;
+ int selected_count;
+ int last_shuffle_num;
+ GList * queued;
+ int64_t total_length, selected_length;
+ bool_t scanning, scan_ending;
+ Update next_update, last_update;
} Playlist;
-static gint next_unique_id = 1000;
+static const char * const default_title = N_("New Playlist");
+static const char * const temp_title = N_("Now Playing");
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+
+/* The unique ID table contains pointers to Playlist for ID's in use and NULL
+ * for "dead" (previously used and therefore unavailable) ID's. */
+static GHashTable * unique_id_table = NULL;
+static int next_unique_id = 1000;
-static struct index * playlists = NULL;
+static Index * playlists = NULL;
static Playlist * active_playlist = NULL;
static Playlist * playing_playlist = NULL;
-static gint update_source, update_level;
-static Playlist * update_playlist;
-static gint unchanged_before, unchanged_after;
+static int update_source = 0, update_level;
+static int resume_state, resume_time;
-static gint scan_source;
-static GMutex * scan_mutex;
-static GCond * scan_conds[SCAN_THREADS];
-static const gchar * scan_filenames[SCAN_THREADS];
-static PluginHandle * scan_decoders[SCAN_THREADS];
-static Tuple * scan_tuples[SCAN_THREADS];
-static gboolean scan_quit;
-static GThread * scan_threads[SCAN_THREADS];
-static gint scan_positions[SCAN_THREADS];
+typedef struct {
+ Playlist * playlist;
+ Entry * entry;
+} ScanItem;
+
+static pthread_t scan_threads[SCAN_THREADS];
+static bool_t scan_quit;
+static int scan_playlist, scan_row;
+static GQueue scan_queue = G_QUEUE_INIT;
+static ScanItem * scan_items[SCAN_THREADS];
static void * scanner (void * unused);
+static void scan_trigger (void);
-static gchar *title_from_tuple(Tuple * tuple)
-{
- const gchar *format = tuple_get_string(tuple, FIELD_FORMATTER, NULL);
+static char * title_format;
- if (format == NULL)
- format = get_gentitle_format();
+static char * title_from_tuple (Tuple * tuple)
+{
+ if (! title_format)
+ title_format = get_string (NULL, "generic_title_format");
- return tuple_formatter_make_title_string(tuple, format);
+ return tuple_format_title (tuple, title_format);
}
static void entry_set_tuple_real (Entry * entry, Tuple * tuple)
{
/* Hack: We cannot refresh segmented entries (since their info is read from
* the cue sheet when it is first loaded), so leave them alone. -jlindgren */
- if (entry->segmented && ! tuple)
+ if (entry->segmented && entry->tuple)
+ {
+ if (tuple)
+ tuple_unref (tuple);
return;
+ }
- if (entry->tuple != NULL)
- tuple_free (entry->tuple);
+ if (entry->tuple)
+ tuple_unref (entry->tuple);
entry->tuple = tuple;
- g_free (entry->formatted);
- stringpool_unref (entry->title);
- stringpool_unref (entry->artist);
- stringpool_unref (entry->album);
+ str_unref (entry->formatted);
+ str_unref (entry->title);
+ str_unref (entry->artist);
+ str_unref (entry->album);
+
+ describe_song (entry->filename, tuple, & entry->title, & entry->artist, & entry->album);
- if (tuple == NULL)
+ if (! tuple)
{
entry->formatted = NULL;
- entry->title = NULL;
- entry->artist = NULL;
- entry->album = NULL;
entry->length = 0;
entry->segmented = FALSE;
- entry->start = entry->end = -1;
+ entry->start = 0;
+ entry->end = -1;
}
else
{
entry->formatted = title_from_tuple (tuple);
- describe_song (entry->filename, tuple, & entry->title, & entry->artist,
- & entry->album);
entry->length = tuple_get_int (tuple, FIELD_LENGTH, NULL);
- entry->length = MAX (entry->length, 0);
+ if (entry->length < 0)
+ entry->length = 0;
if (tuple_get_value_type (tuple, FIELD_SEGMENT_START, NULL) == TUPLE_INT)
{
@@ -205,20 +225,18 @@ static void entry_set_tuple_real (Entry * entry, Tuple * tuple)
static void entry_set_tuple (Playlist * playlist, Entry * entry, Tuple * tuple)
{
- if (entry->tuple != NULL)
+ if (entry->tuple)
{
playlist->total_length -= entry->length;
-
if (entry->selected)
playlist->selected_length -= entry->length;
}
entry_set_tuple_real (entry, tuple);
- if (tuple != NULL)
+ if (tuple)
{
playlist->total_length += entry->length;
-
if (entry->selected)
playlist->selected_length += entry->length;
}
@@ -230,10 +248,35 @@ static void entry_set_failed (Playlist * playlist, Entry * entry)
entry->failed = TRUE;
}
-static Entry * entry_new (gchar * filename, PluginHandle * decoder, Tuple *
- tuple)
+static void entry_cancel_scan (Entry * entry)
+{
+ GList * next;
+ for (GList * node = scan_queue.head; node; node = next)
+ {
+ ScanItem * item = node->data;
+ next = node->next;
+
+ if (item->entry == entry)
+ {
+ g_queue_delete_link (& scan_queue, node);
+ g_slice_free (ScanItem, item);
+ }
+ }
+
+ for (int i = 0; i < SCAN_THREADS; i ++)
+ {
+ if (scan_items[i] && scan_items[i]->entry == entry)
+ {
+ g_slice_free (ScanItem, scan_items[i]);
+ scan_items[i] = NULL;
+ }
+ }
+}
+
+static Entry * entry_new (char * filename, Tuple * tuple,
+ PluginHandle * decoder)
{
- Entry * entry = g_malloc (sizeof (Entry));
+ Entry * entry = g_slice_new (Entry);
entry->filename = filename;
entry->decoder = decoder;
@@ -248,7 +291,8 @@ static Entry * entry_new (gchar * filename, PluginHandle * decoder, Tuple *
entry->shuffle_num = 0;
entry->queued = FALSE;
entry->segmented = FALSE;
- entry->start = entry->end = -1;
+ entry->start = 0;
+ entry->end = -1;
entry_set_tuple_real (entry, tuple);
return entry;
@@ -256,36 +300,41 @@ static Entry * entry_new (gchar * filename, PluginHandle * decoder, Tuple *
static void entry_free (Entry * entry)
{
- g_free(entry->filename);
+ entry_cancel_scan (entry);
- if (entry->tuple != NULL)
- tuple_free(entry->tuple);
+ str_unref (entry->filename);
+ if (entry->tuple)
+ tuple_unref (entry->tuple);
- g_free (entry->formatted);
- stringpool_unref (entry->title);
- stringpool_unref (entry->artist);
- stringpool_unref (entry->album);
- g_free (entry);
+ str_unref (entry->formatted);
+ str_unref (entry->title);
+ str_unref (entry->artist);
+ str_unref (entry->album);
+ g_slice_free (Entry, entry);
}
-static void entry_check_has_decoder (Playlist * playlist, Entry * entry)
+static int new_unique_id (int preferred)
{
- if (entry->decoder != NULL || entry->failed)
- return;
+ if (preferred >= 0 && ! g_hash_table_lookup_extended (unique_id_table,
+ GINT_TO_POINTER (preferred), NULL, NULL))
+ return preferred;
- entry->decoder = file_find_decoder (entry->filename, FALSE);
- if (! entry->decoder)
- entry_set_failed (playlist, entry);
+ while (g_hash_table_lookup_extended (unique_id_table,
+ GINT_TO_POINTER (next_unique_id), NULL, NULL))
+ next_unique_id ++;
+
+ return next_unique_id ++;
}
-static Playlist * playlist_new (void)
+static Playlist * playlist_new (int id)
{
- Playlist * playlist = g_malloc (sizeof (Playlist));
+ Playlist * playlist = g_slice_new (Playlist);
playlist->number = -1;
- playlist->unique_id = next_unique_id ++;
+ playlist->unique_id = new_unique_id (id);
playlist->filename = NULL;
- playlist->title = g_strdup(_("Untitled Playlist"));
+ playlist->title = str_get (_(default_title));
+ playlist->modified = TRUE;
playlist->entries = index_new();
playlist->position = NULL;
playlist->selected_count = 0;
@@ -293,435 +342,459 @@ static Playlist * playlist_new (void)
playlist->queued = NULL;
playlist->total_length = 0;
playlist->selected_length = 0;
+ playlist->scanning = FALSE;
+ playlist->scan_ending = FALSE;
+
+ memset (& playlist->last_update, 0, sizeof (Update));
+ memset (& playlist->next_update, 0, sizeof (Update));
+ g_hash_table_insert (unique_id_table, GINT_TO_POINTER (playlist->unique_id), playlist);
return playlist;
}
static void playlist_free (Playlist * playlist)
{
- gint count;
+ g_hash_table_insert (unique_id_table, GINT_TO_POINTER (playlist->unique_id), NULL);
- g_free(playlist->filename);
- g_free(playlist->title);
+ str_unref (playlist->filename);
+ str_unref (playlist->title);
- for (count = 0; count < index_count(playlist->entries); count++)
- entry_free(index_get(playlist->entries, count));
+ for (int count = 0; count < index_count (playlist->entries); count ++)
+ entry_free (index_get (playlist->entries, count));
- index_free(playlist->entries);
- g_list_free(playlist->queued);
- g_free(playlist);
+ index_free (playlist->entries);
+ g_list_free (playlist->queued);
+ g_slice_free (Playlist, playlist);
}
-static void number_playlists(gint at, gint length)
+static void number_playlists (int at, int length)
{
- gint count;
-
- for (count = 0; count < length; count++)
+ for (int count = 0; count < length; count ++)
{
Playlist * playlist = index_get (playlists, at + count);
playlist->number = at + count;
}
}
-static Playlist * lookup_playlist (gint playlist_num)
+static Playlist * lookup_playlist (int playlist_num)
{
- /* Not initted or already shut down */
- if (! playlists)
- return NULL;
-
- if (playlist_num < 0 || playlist_num >= index_count(playlists))
- return NULL;
-
- return index_get(playlists, playlist_num);
+ return (playlists && playlist_num >= 0 && playlist_num < index_count
+ (playlists)) ? index_get (playlists, playlist_num) : NULL;
}
-static void number_entries (Playlist * playlist, gint at, gint length)
+static void number_entries (Playlist * playlist, int at, int length)
{
- gint count;
-
- for (count = 0; count < length; count++)
+ for (int count = 0; count < length; count ++)
{
Entry * entry = index_get (playlist->entries, at + count);
entry->number = at + count;
}
}
-static Entry * lookup_entry (Playlist * playlist, gint entry_num)
+static Entry * lookup_entry (Playlist * playlist, int entry_num)
{
- if (entry_num < 0 || entry_num >= index_count(playlist->entries))
- return NULL;
-
- return index_get(playlist->entries, entry_num);
+ return (entry_num >= 0 && entry_num < index_count (playlist->entries)) ?
+ index_get (playlist->entries, entry_num) : NULL;
}
-static gboolean update (void * unused)
+static bool_t update (void * unused)
{
- hook_call ("playlist update", GINT_TO_POINTER (update_level));
- update_source = 0;
- return FALSE;
-}
+ ENTER;
-static void queue_update (gint level, Playlist * list, gint at, gint count)
-{
- if (! update_source)
+ for (int i = 0; i < index_count (playlists); i ++)
{
- update_source = g_idle_add_full (G_PRIORITY_HIGH_IDLE, update, NULL,
- NULL);
- update_level = 0;
- update_playlist = list;
- unchanged_before = list ? index_count (list->entries) : 0;
- unchanged_after = list ? index_count (list->entries) : 0;
+ Playlist * p = index_get (playlists, i);
+ memcpy (& p->last_update, & p->next_update, sizeof (Update));
+ memset (& p->next_update, 0, sizeof (Update));
}
- update_level = MAX (update_level, level);
+ int level = update_level;
+ update_level = 0;
- if (list && list == update_playlist)
- {
- unchanged_before = MIN (unchanged_before, at);
- unchanged_after = MIN (unchanged_after, index_count (list->entries) - at
- - count);
- }
- else
+ if (update_source)
{
- update_playlist = NULL;
- unchanged_before = 0;
- unchanged_after = 0;
+ g_source_remove (update_source);
+ update_source = 0;
}
-}
-
-gboolean playlist_update_pending (void)
-{
- return update_source ? TRUE : FALSE;
-}
-
-gboolean playlist_update_range (gint * playlist, gint * at, gint * count)
-{
- g_return_val_if_fail (update_source, FALSE);
- if (! update_playlist)
- return FALSE;
+ LEAVE;
- * playlist = update_playlist->number;
- * at = unchanged_before;
- * count = index_count (update_playlist->entries) - unchanged_before -
- unchanged_after;
- return TRUE;
+ hook_call ("playlist update", GINT_TO_POINTER (level));
+ return FALSE;
}
-/* scan_mutex must be locked! */
-void scan_receive (void)
+static void queue_update (int level, int list, int at, int count)
{
- for (gint i = 0; i < SCAN_THREADS; i ++)
+ Playlist * p = lookup_playlist (list);
+
+ if (p)
{
- if (! scan_filenames[i] || scan_decoders[i])
- continue; /* thread not in use or still working */
+ if (level >= PLAYLIST_UPDATE_METADATA)
+ {
+ p->modified = TRUE;
- Entry * entry = index_get (active_playlist->entries, scan_positions[i]);
+ if (! get_bool (NULL, "metadata_on_play"))
+ {
+ p->scanning = TRUE;
+ p->scan_ending = FALSE;
+ scan_trigger ();
+ }
+ }
- if (scan_tuples[i])
- entry_set_tuple (active_playlist, entry, scan_tuples[i]);
+ if (p->next_update.level)
+ {
+ p->next_update.level = MAX (p->next_update.level, level);
+ p->next_update.before = MIN (p->next_update.before, at);
+ p->next_update.after = MIN (p->next_update.after,
+ index_count (p->entries) - at - count);
+ }
else
- entry_set_failed (active_playlist, entry);
+ {
+ p->next_update.level = level;
+ p->next_update.before = at;
+ p->next_update.after = index_count (p->entries) - at - count;
+ }
+ }
- scan_filenames[i] = NULL;
- scan_tuples[i] = NULL;
+ update_level = MAX (update_level, level);
- queue_update (PLAYLIST_UPDATE_METADATA, active_playlist,
- scan_positions[i], 1);
- }
+ if (! update_source)
+ update_source = g_idle_add_full (G_PRIORITY_HIGH, update, NULL, NULL);
}
-static gboolean scan_next (void * unused)
+bool_t playlist_update_pending (void)
{
- gint entries = index_count (active_playlist->entries);
- gint search = 0;
-
- g_mutex_lock (scan_mutex);
-
- if (scan_source)
- {
- g_source_remove (scan_source);
- scan_source = 0;
- }
+ ENTER;
+ bool_t pending = update_level ? TRUE : FALSE;
+ LEAVE_RET (pending);
+}
- scan_receive ();
+int playlist_updated_range (int playlist_num, int * at, int * count)
+{
+ ENTER;
+ DECLARE_PLAYLIST;
+ LOOKUP_PLAYLIST_RET (0);
- for (gint i = 0; i < SCAN_THREADS; i ++)
- search = MAX (search, scan_positions[i] + 1);
+ Update * u = & playlist->last_update;
- for (gint i = 0; i < SCAN_THREADS; i ++)
- {
- if (scan_filenames[i])
- continue; /* thread already in use */
+ int level = u->level;
+ * at = u->before;
+ * count = index_count (playlist->entries) - u->before - u->after;
- for (; search < entries; search ++)
- {
- Entry * entry = index_get (active_playlist->entries, search);
+ LEAVE_RET (level);
+}
- if (entry->tuple)
- continue;
+bool_t playlist_scan_in_progress (int playlist_num)
+{
+ ENTER;
+ DECLARE_PLAYLIST;
+ LOOKUP_PLAYLIST_RET (FALSE);
- entry_check_has_decoder (active_playlist, entry);
- if (entry->failed)
- continue;
+ bool_t scanning = playlist->scanning || playlist->scan_ending;
- vfs_prepare_filename (entry->filename);
+ LEAVE_RET (scanning);
+}
- scan_positions[i] = search;
- scan_filenames[i] = entry->filename;
- scan_decoders[i] = entry->decoder;
- g_cond_signal (scan_conds[i]);
+static bool_t entry_scan_is_queued (Entry * entry)
+{
+ for (GList * node = scan_queue.head; node; node = node->next)
+ {
+ ScanItem * item = node->data;
+ if (item->entry == entry)
+ return TRUE;
+ }
- search ++;
- break;
- }
+ for (int i = 0; i < SCAN_THREADS; i ++)
+ {
+ if (scan_items[i] && scan_items[i]->entry == entry)
+ return TRUE;
}
- g_mutex_unlock (scan_mutex);
return FALSE;
}
-static void scan_continue (void)
+static void entry_queue_scan (Playlist * playlist, Entry * entry)
{
- if (! scan_source)
- scan_source = g_idle_add_full (G_PRIORITY_LOW, scan_next, NULL, NULL);
+ if (entry_scan_is_queued (entry))
+ return;
+
+ ScanItem * item = g_slice_new (ScanItem);
+ item->playlist = playlist;
+ item->entry = entry;
+ g_queue_push_tail (& scan_queue, item);
+
+ pthread_cond_broadcast (& cond);
}
-static void scan_reset (void)
+static void check_scan_complete (Playlist * p)
{
- for (gint i = 0; i < SCAN_THREADS; i ++)
+ if (! p->scan_ending)
+ return;
+
+ for (GList * node = scan_queue.head; node; node = node->next)
+ {
+ ScanItem * item = node->data;
+ if (item->playlist == p)
+ return;
+ }
+
+ for (int i = 0; i < SCAN_THREADS; i ++)
{
- assert (! scan_filenames[i]); /* scan in progress == very, very bad */
- scan_positions[i] = -1;
+ if (scan_items[i] && scan_items[i]->playlist == p)
+ return;
}
- scan_continue ();
+ p->scan_ending = FALSE;
+
+ event_queue_cancel ("playlist scan complete", NULL);
+ event_queue ("playlist scan complete", NULL);
}
-static void scan_stop (void)
+static ScanItem * entry_find_to_scan (void)
{
- g_mutex_lock (scan_mutex);
+ ScanItem * item = g_queue_pop_head (& scan_queue);
+ if (item)
+ return item;
- if (scan_source != 0)
+ while (scan_playlist < index_count (playlists))
{
- g_source_remove (scan_source);
- scan_source = 0;
- }
+ Playlist * playlist = index_get (playlists, scan_playlist);
- for (gint i = 0; i < SCAN_THREADS; i ++)
- {
- if (! scan_filenames[i])
- continue;
+ if (playlist->scanning)
+ {
+ while (scan_row < index_count (playlist->entries))
+ {
+ Entry * entry = index_get (playlist->entries, scan_row);
+
+ if (! entry->tuple && ! entry_scan_is_queued (entry))
+ {
+ item = g_slice_new (ScanItem);
+ item->playlist = playlist;
+ item->entry = entry;
+ return item;
+ }
- while (scan_decoders[i])
- g_cond_wait (scan_conds[i], scan_mutex);
+ scan_row ++;
+ }
+
+ playlist->scanning = FALSE;
+ playlist->scan_ending = TRUE;
+ check_scan_complete (playlist);
+ }
+
+ scan_playlist ++;
+ scan_row = 0;
}
- scan_receive ();
- g_mutex_unlock (scan_mutex);
+ return NULL;
}
static void * scanner (void * data)
{
- gint i = GPOINTER_TO_INT (data);
+ ENTER;
- g_mutex_lock (scan_mutex);
- g_cond_signal (scan_conds[i]);
+ int i = GPOINTER_TO_INT (data);
- while (1)
+ while (! scan_quit)
{
- g_cond_wait (scan_conds[i], scan_mutex);
-
- if (scan_quit)
- break;
+ if (! scan_items[i])
+ scan_items[i] = entry_find_to_scan ();
- if (! scan_filenames[i])
+ if (! scan_items[i])
+ {
+ pthread_cond_wait (& cond, & mutex);
continue;
+ }
- scan_tuples[i] = file_read_tuple (scan_filenames[i], scan_decoders[i]);
- scan_decoders[i] = NULL;
- g_cond_signal (scan_conds[i]);
- scan_continue ();
- }
+ Playlist * playlist = scan_items[i]->playlist;
+ Entry * entry = scan_items[i]->entry;
+ char * filename = str_ref (entry->filename);
+ PluginHandle * decoder = entry->decoder;
+ bool_t need_tuple = entry->tuple ? FALSE : TRUE;
- g_mutex_unlock (scan_mutex);
- return NULL;
-}
+ LEAVE;
-/* As soon as we know the caller is looking for metadata, we start the threaded
- * scanner. Though it may be faster in the short run simply to scan the entry
- * we are concerned with in the main thread, this is better in the long run
- * because the scanner can work on the following entries while the caller is
- * processing this one. */
-static gboolean scan_threaded (Playlist * playlist, Entry * entry)
-{
- gint i;
+ if (! decoder)
+ decoder = file_find_decoder (filename, FALSE);
- if (playlist != active_playlist)
- return FALSE;
+ Tuple * tuple = (need_tuple && decoder) ? file_read_tuple (filename, decoder) : NULL;
- scan_next (NULL);
+ ENTER;
- if (entry->tuple)
- return TRUE;
+ str_unref (filename);
- for (i = 0; i < SCAN_THREADS; i ++)
- {
- if (entry->number == scan_positions[i])
- goto FOUND;
- }
+ if (! scan_items[i]) /* scan canceled */
+ {
+ if (tuple)
+ tuple_unref (tuple);
+ continue;
+ }
- return FALSE;
+ entry->decoder = decoder;
-FOUND:
- g_mutex_lock (scan_mutex);
- scan_receive ();
+ if (tuple)
+ {
+ entry_set_tuple (playlist, entry, tuple);
+ queue_update (PLAYLIST_UPDATE_METADATA, playlist->number, entry->number, 1);
+ }
+ else if (need_tuple || ! decoder)
+ {
+ entry_set_failed (playlist, entry);
+ queue_update (PLAYLIST_UPDATE_METADATA, playlist->number, entry->number, 1);
+ }
- while (scan_filenames[i])
- {
- g_cond_wait (scan_conds[i], scan_mutex);
- scan_receive ();
+ g_slice_free (ScanItem, scan_items[i]);
+ scan_items[i] = NULL;
+
+ pthread_cond_broadcast (& cond);
+ check_scan_complete (playlist);
}
- g_mutex_unlock (scan_mutex);
- return TRUE;
+ LEAVE_RET (NULL);
}
-static void check_scanned (Playlist * playlist, Entry * entry)
+static void scan_trigger (void)
{
- if (entry->tuple)
- return;
- if (scan_threaded (playlist, entry))
- return;
-
- entry_check_has_decoder (playlist, entry);
- if (entry->failed)
- return;
-
- entry_set_tuple (playlist, entry, file_read_tuple (entry->filename,
- entry->decoder));
- if (! entry->tuple)
- entry_set_failed (playlist, entry);
-
- queue_update (PLAYLIST_UPDATE_METADATA, playlist, entry->number, 1);
+ scan_playlist = 0;
+ scan_row = 0;
+ pthread_cond_broadcast (& cond);
}
-static void check_selected_scanned (Playlist * playlist)
+/* mutex may be unlocked during the call */
+static Entry * get_entry (int playlist_num, int entry_num,
+ bool_t need_decoder, bool_t need_tuple)
{
- gint entries = index_count (playlist->entries);
- for (gint count = 0; count < entries; count++)
+ while (1)
{
- Entry * entry = index_get (playlist->entries, count);
- if (entry->selected)
- check_scanned (playlist, entry);
+ Playlist * playlist = lookup_playlist (playlist_num);
+ Entry * entry = playlist ? lookup_entry (playlist, entry_num) : NULL;
+
+ if (! entry || entry->failed)
+ return entry;
+
+ if ((need_decoder && ! entry->decoder) || (need_tuple && ! entry->tuple))
+ {
+ entry_queue_scan (playlist, entry);
+ pthread_cond_wait (& cond, & mutex);
+ continue;
+ }
+
+ return entry;
}
}
-static void check_all_scanned (Playlist * playlist)
+/* mutex may be unlocked during the call */
+static Entry * get_playback_entry (bool_t need_decoder, bool_t need_tuple)
{
- gint entries = index_count (playlist->entries);
- for (gint count = 0; count < entries; count++)
- check_scanned (playlist, index_get (playlist->entries, count));
+ while (1)
+ {
+ Entry * entry = playing_playlist ? playing_playlist->position : NULL;
+
+ if (! entry || entry->failed)
+ return entry;
+
+ if ((need_decoder && ! entry->decoder) || (need_tuple && ! entry->tuple))
+ {
+ entry_queue_scan (playing_playlist, entry);
+ pthread_cond_wait (& cond, & mutex);
+ continue;
+ }
+
+ return entry;
+ }
}
void playlist_init (void)
{
srand (time (NULL));
+ ENTER;
+
+ unique_id_table = g_hash_table_new (g_direct_hash, g_direct_equal);
playlists = index_new ();
- Playlist * playlist = playlist_new ();
- index_append (playlists, playlist);
- playlist->number = 0;
- active_playlist = playlist;
- playing_playlist = NULL;
-
- update_source = 0;
-
- scan_mutex = g_mutex_new ();
- memset (scan_filenames, 0, sizeof scan_filenames);
- memset (scan_decoders, 0, sizeof scan_decoders);
- memset (scan_tuples, 0, sizeof scan_tuples);
- scan_source = 0;
- scan_quit = FALSE;
- g_mutex_lock (scan_mutex);
+ update_level = 0;
- for (gint i = 0; i < SCAN_THREADS; i ++)
- {
- scan_conds[i] = g_cond_new ();
- scan_threads[i] = g_thread_create (scanner, GINT_TO_POINTER (i), TRUE,
- NULL);
- g_cond_wait (scan_conds[i], scan_mutex);
- }
+ scan_quit = FALSE;
+ scan_playlist = scan_row = 0;
- g_mutex_unlock (scan_mutex);
+ for (int i = 0; i < SCAN_THREADS; i ++)
+ pthread_create (& scan_threads[i], NULL, scanner, GINT_TO_POINTER (i));
- scan_reset ();
+ LEAVE;
}
-void playlist_end(void)
+void playlist_end (void)
{
- gint count;
+ ENTER;
- scan_stop ();
scan_quit = TRUE;
+ pthread_cond_broadcast (& cond);
+
+ LEAVE;
+
+ for (int i = 0; i < SCAN_THREADS; i ++)
+ pthread_join (scan_threads[i], NULL);
+
+ ENTER;
- for (gint i = 0; i < SCAN_THREADS; i ++)
+ if (update_source)
{
- g_mutex_lock (scan_mutex);
- g_cond_signal (scan_conds[i]);
- g_mutex_unlock (scan_mutex);
- g_thread_join (scan_threads[i]);
- g_cond_free (scan_conds[i]);
+ g_source_remove (update_source);
+ update_source = 0;
}
- g_mutex_free (scan_mutex);
+ active_playlist = playing_playlist = NULL;
- if (update_source != 0)
- g_source_remove(update_source);
+ for (int i = 0; i < index_count (playlists); i ++)
+ playlist_free (index_get (playlists, i));
- for (count = 0; count < index_count(playlists); count++)
- playlist_free(index_get(playlists, count));
-
- index_free(playlists);
+ index_free (playlists);
playlists = NULL;
- active_playlist = NULL;
- playing_playlist = NULL;
+
+ g_hash_table_destroy (unique_id_table);
+ unique_id_table = NULL;
+
+ g_free (title_format);
+ title_format = NULL;
+
+ LEAVE;
}
-gint playlist_count(void)
+int playlist_count (void)
{
- return index_count(playlists);
+ ENTER;
+ int count = index_count (playlists);
+ LEAVE_RET (count);
}
-void playlist_insert(gint at)
+void playlist_insert_with_id (int at, int id)
{
- PLAYLIST_WILL_CHANGE;
+ ENTER;
- if (at < 0 || at > index_count(playlists))
- at = index_count(playlists);
+ if (at < 0 || at > index_count (playlists))
+ at = index_count (playlists);
- if (at == index_count(playlists))
- index_append(playlists, playlist_new());
- else
- index_insert(playlists, at, playlist_new());
-
- number_playlists(at, index_count(playlists) - at);
+ index_insert (playlists, at, playlist_new (id));
+ number_playlists (at, index_count (playlists) - at);
- PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+ PLAYLIST_HAS_CHANGED (-1, 0, 0);
+ LEAVE;
}
-void playlist_reorder (gint from, gint to, gint count)
+void playlist_insert (int at)
{
- struct index * displaced;
-
- g_return_if_fail (from >= 0 && from + count <= index_count (playlists));
- g_return_if_fail (to >= 0 && to + count <= index_count (playlists));
- g_return_if_fail (count >= 0);
+ playlist_insert_with_id (at, -1);
+}
- PLAYLIST_WILL_CHANGE;
+void playlist_reorder (int from, int to, int count)
+{
+ ENTER;
+ if (from < 0 || from + count > index_count (playlists) || to < 0 || to +
+ count > index_count (playlists) || count < 0)
+ LEAVE_RET_VOID;
- displaced = index_new ();
+ Index * displaced = index_new ();
if (to < from)
index_copy_append (playlists, to, displaced, from - to);
@@ -743,140 +816,221 @@ void playlist_reorder (gint from, gint to, gint count)
index_free (displaced);
- PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+ PLAYLIST_HAS_CHANGED (-1, 0, 0);
+ LEAVE;
}
-void playlist_delete (gint playlist_num)
+void playlist_delete (int playlist_num)
{
- DECLARE_PLAYLIST;
+ if (playback_get_playing () && playlist_num == playlist_get_playing ())
+ playback_stop ();
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- if (playlist == playing_playlist)
- {
- if (playback_get_playing ())
- playback_stop ();
+ index_delete (playlists, playlist_num, 1);
+ playlist_free (playlist);
- playing_playlist = NULL;
- }
+ if (! index_count (playlists))
+ index_insert (playlists, 0, playlist_new (-1));
- PLAYLIST_WILL_CHANGE;
-
- playlist_free(playlist);
- index_delete(playlists, playlist_num, 1);
- number_playlists(playlist_num, index_count(playlists) - playlist_num);
-
- if (index_count(playlists) == 0)
- playlist_insert(0);
+ number_playlists (playlist_num, index_count (playlists) - playlist_num);
if (playlist == active_playlist)
active_playlist = index_get (playlists, MIN (playlist_num, index_count
(playlists) - 1));
+ if (playlist == playing_playlist)
+ playing_playlist = NULL;
- PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+ PLAYLIST_HAS_CHANGED (-1, 0, 0);
+ LEAVE;
}
-gint playlist_get_unique_id (gint playlist_num)
+int playlist_get_unique_id (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST_RET (-1);
- return playlist->unique_id;
+
+ int unique_id = playlist->unique_id;
+
+ LEAVE_RET (unique_id);
}
-gint playlist_by_unique_id (gint id)
+int playlist_by_unique_id (int id)
{
- g_return_val_if_fail (playlists, -1);
- gint n = index_count (playlists);
+ ENTER;
- for (gint i = 0; i < n; i ++)
- {
- Playlist * p = index_get (playlists, i);
- if (p->unique_id == id)
- return p->number;
- }
+ Playlist * p = g_hash_table_lookup (unique_id_table, GINT_TO_POINTER (id));
+ int num = p ? p->number : -1;
- return -1;
+ LEAVE_RET (num);
}
-void playlist_set_filename(gint playlist_num, const gchar * filename)
+void playlist_set_filename (int playlist_num, const char * filename)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- g_free(playlist->filename);
- playlist->filename = g_strdup(filename);
+ str_unref (playlist->filename);
+ playlist->filename = str_get (filename);
+ playlist->modified = TRUE;
- PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+ METADATA_HAS_CHANGED (-1, 0, 0);
+ LEAVE;
}
-const gchar *playlist_get_filename(gint playlist_num)
+char * playlist_get_filename (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST_RET (NULL);
- return playlist->filename;
+ char * filename = str_ref (playlist->filename);
+
+ LEAVE_RET (filename);
}
-void playlist_set_title(gint playlist_num, const gchar * title)
+void playlist_set_title (int playlist_num, const char * title)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- g_free(playlist->title);
- playlist->title = g_strdup(title);
+ str_unref (playlist->title);
+ playlist->title = str_get (title);
+ playlist->modified = TRUE;
- PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+ METADATA_HAS_CHANGED (-1, 0, 0);
+ LEAVE;
}
-const gchar *playlist_get_title(gint playlist_num)
+char * playlist_get_title (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST_RET (NULL);
- return playlist->title;
+ char * title = str_ref (playlist->title);
+
+ LEAVE_RET (title);
+}
+
+void playlist_set_modified (int playlist_num, bool_t modified)
+{
+ ENTER;
+ DECLARE_PLAYLIST;
+ LOOKUP_PLAYLIST;
+
+ playlist->modified = modified;
+
+ LEAVE;
}
-void playlist_set_active(gint playlist_num)
+bool_t playlist_get_modified (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
+ LOOKUP_PLAYLIST_RET (FALSE);
+
+ bool_t modified = playlist->modified;
+ LEAVE_RET (modified);
+}
+
+void playlist_set_active (int playlist_num)
+{
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- active_playlist = playlist;
+ bool_t changed = FALSE;
+
+ if (playlist != active_playlist)
+ {
+ changed = TRUE;
+ active_playlist = playlist;
+ }
- PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+ LEAVE;
+
+ if (changed)
+ hook_call ("playlist activate", NULL);
}
-gint playlist_get_active(void)
+int playlist_get_active (void)
{
- return (active_playlist == NULL) ? -1 : active_playlist->number;
+ ENTER;
+ int list = active_playlist ? active_playlist->number : -1;
+ LEAVE_RET (list);
}
-void playlist_set_playing(gint playlist_num)
+void playlist_set_playing (int playlist_num)
{
+ if (playback_get_playing ())
+ playback_stop ();
+
+ ENTER;
DECLARE_PLAYLIST;
- if (playlist_num == -1)
+ if (playlist_num < 0)
playlist = NULL;
else
LOOKUP_PLAYLIST;
- if (playing_playlist != NULL && playback_get_playing ())
- playback_stop();
-
playing_playlist = playlist;
+
+ LEAVE;
+
+ hook_call ("playlist set playing", NULL);
+}
+
+int playlist_get_playing (void)
+{
+ ENTER;
+ int list = playing_playlist ? playing_playlist->number: -1;
+ LEAVE_RET (list);
}
-gint playlist_get_playing(void)
+int playlist_get_blank (void)
{
- return (playing_playlist == NULL) ? -1 : playing_playlist->number;
+ int list = playlist_get_active ();
+ char * title = playlist_get_title (list);
+
+ if (strcmp (title, _(default_title)) || playlist_entry_count (list) > 0)
+ {
+ list = playlist_count ();
+ playlist_insert (list);
+ }
+
+ str_unref (title);
+ return list;
+}
+
+int playlist_get_temporary (void)
+{
+ int list, count = playlist_count ();
+ bool_t found = FALSE;
+
+ for (list = 0; list < count; list ++)
+ {
+ char * title = playlist_get_title (list);
+ found = ! strcmp (title, _(temp_title));
+ str_unref (title);
+
+ if (found)
+ break;
+ }
+
+ if (! found)
+ {
+ list = playlist_get_blank ();
+ playlist_set_title (list, _(temp_title));
+ }
+
+ return list;
}
/* If we are already at the song or it is already at the top of the shuffle
@@ -888,7 +1042,7 @@ static void set_position (Playlist * playlist, Entry * entry)
playlist->position = entry;
- if (entry == NULL)
+ if (! entry)
return;
if (! entry->shuffle_num || entry->shuffle_num != playlist->last_shuffle_num)
@@ -898,86 +1052,41 @@ static void set_position (Playlist * playlist, Entry * entry)
}
}
-gint playlist_entry_count(gint playlist_num)
+int playlist_entry_count (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST_RET (0);
- return index_count(playlist->entries);
-}
-
-static void make_entries (gchar * filename, PluginHandle * decoder, Tuple *
- tuple, struct index * list)
-{
- uri_check_utf8 (& filename, TRUE);
-
- if (! tuple && ! decoder)
- decoder = file_find_decoder (filename, TRUE);
-
- if (! tuple && decoder && input_plugin_has_subtunes (decoder) && ! strchr
- (filename, '?'))
- tuple = file_read_tuple (filename, decoder);
+ int count = index_count (playlist->entries);
- if (tuple != NULL && tuple->nsubtunes > 0)
- {
- gint subtune;
-
- for (subtune = 0; subtune < tuple->nsubtunes; subtune++)
- {
- gchar *name = g_strdup_printf("%s?%d", filename, (tuple->subtunes == NULL) ? 1 + subtune : tuple->subtunes[subtune]);
- make_entries(name, decoder, NULL, list);
- }
-
- g_free(filename);
- tuple_free(tuple);
- }
- else
- index_append(list, entry_new(filename, decoder, tuple));
-}
-
-void playlist_entry_insert(gint playlist_num, gint at, gchar * filename, Tuple * tuple)
-{
- struct index *filenames = index_new();
- struct index *tuples = index_new();
-
- index_append(filenames, filename);
- index_append(tuples, tuple);
-
- playlist_entry_insert_batch_with_decoders (playlist_num, at, filenames,
- NULL, tuples);
+ LEAVE_RET (count);
}
-void playlist_entry_insert_batch (gint playlist_num, gint at,
- struct index * filenames, struct index * tuples)
-{
- playlist_entry_insert_batch_with_decoders (playlist_num, at, filenames,
- NULL, tuples);
-}
-
-void playlist_entry_insert_batch_with_decoders (gint playlist_num, gint at,
- struct index * filenames, struct index * decoders, struct index * tuples)
+void playlist_entry_insert_batch_raw (int playlist_num, int at,
+ Index * filenames, Index * tuples, Index * decoders)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- gint entries = index_count (playlist->entries);
+ int entries = index_count (playlist->entries);
if (at < 0 || at > entries)
at = entries;
- gint number = index_count (filenames);
- struct index * add = index_new ();
+ int number = index_count (filenames);
- /* Preallocate space to avoid reallocs. (The actual number of entries may
- * turn out to be greater due to subtunes.) */
+ Index * add = index_new ();
index_allocate (add, number);
- for (gint count = 0; count < number; count ++)
- make_entries (index_get (filenames, count), decoders ? index_get
- (decoders, count) : NULL, tuples ? index_get (tuples, count) : NULL,
- add);
+ for (int i = 0; i < number; i ++)
+ {
+ char * filename = index_get (filenames, i);
+ Tuple * tuple = tuples ? index_get (tuples, i) : NULL;
+ PluginHandle * decoder = decoders ? index_get (decoders, i) : NULL;
+ index_append (add, entry_new (filename, tuple, decoder));
+ }
index_free (filenames);
if (decoders)
@@ -989,184 +1098,137 @@ void playlist_entry_insert_batch_with_decoders (gint playlist_num, gint at,
index_merge_insert (playlist->entries, at, add);
index_free (add);
- number_entries(playlist, at, entries + number - at);
+ number_entries (playlist, at, entries + number - at);
- for (gint count = 0; count < number; count ++)
+ for (int count = 0; count < number; count ++)
{
Entry * entry = index_get (playlist->entries, at + count);
playlist->total_length += entry->length;
}
- PLAYLIST_HAS_CHANGED (playlist, at, number);
+ PLAYLIST_HAS_CHANGED (playlist->number, at, number);
+ LEAVE;
}
-void playlist_entry_delete(gint playlist_num, gint at, gint number)
+void playlist_entry_delete (int playlist_num, int at, int number)
{
- DECLARE_PLAYLIST;
- gboolean stop = FALSE;
- gint entries, count;
+ if (playback_get_playing () && playlist_num == playlist_get_playing () &&
+ playlist_get_position (playlist_num) >= at && playlist_get_position
+ (playlist_num) < at + number)
+ playback_stop ();
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- entries = index_count (playlist->entries);
+ int entries = index_count (playlist->entries);
if (at < 0 || at > entries)
at = entries;
if (number < 0 || number > entries - at)
number = entries - at;
- for (count = 0; count < number; count++)
+ if (playlist->position && playlist->position->number >= at &&
+ playlist->position->number < at + number)
+ set_position (playlist, NULL);
+
+ for (int count = 0; count < number; count ++)
{
Entry * entry = index_get (playlist->entries, at + count);
- if (entry == playlist->position)
- {
- stop = (playlist == playing_playlist);
- set_position (playlist, NULL);
- }
+ if (entry->queued)
+ playlist->queued = g_list_remove (playlist->queued, entry);
if (entry->selected)
{
- playlist->selected_count--;
+ playlist->selected_count --;
playlist->selected_length -= entry->length;
}
- if (entry->queued)
- playlist->queued = g_list_remove(playlist->queued, entry);
-
playlist->total_length -= entry->length;
-
- entry_free(entry);
+ entry_free (entry);
}
index_delete (playlist->entries, at, number);
number_entries (playlist, at, entries - at - number);
- if (stop && playback_get_playing ())
- playback_stop ();
-
- PLAYLIST_HAS_CHANGED (playlist, at, 0);
-}
-
-const gchar *playlist_entry_get_filename(gint playlist_num, gint entry_num)
-{
- DECLARE_PLAYLIST_ENTRY;
-
- LOOKUP_PLAYLIST_ENTRY_RET (NULL);
-
- return entry->filename;
+ PLAYLIST_HAS_CHANGED (playlist->number, at, 0);
+ LEAVE;
}
-PluginHandle * playlist_entry_get_decoder (gint playlist_num, gint entry_num,
- gboolean fast)
+char * playlist_entry_get_filename (int playlist_num, int entry_num)
{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
LOOKUP_PLAYLIST_ENTRY_RET (NULL);
- if (! fast)
- entry_check_has_decoder (playlist, entry);
-
- return entry->decoder;
-}
-
-void playlist_entry_set_tuple (gint playlist_num, gint entry_num, Tuple * tuple)
-{
- DECLARE_PLAYLIST_ENTRY;
-
- LOOKUP_PLAYLIST_ENTRY;
- METADATA_WILL_CHANGE;
-
- entry_set_tuple (playlist, entry, tuple);
+ char * filename = str_ref (entry->filename);
- METADATA_HAS_CHANGED (playlist, entry_num, 1);
+ LEAVE_RET (filename);
}
-const Tuple * playlist_entry_get_tuple (gint playlist_num, gint entry_num,
- gboolean fast)
+PluginHandle * playlist_entry_get_decoder (int playlist_num, int entry_num, bool_t fast)
{
- DECLARE_PLAYLIST_ENTRY;
- LOOKUP_PLAYLIST_ENTRY_RET (NULL);
+ ENTER;
- if (! fast)
- check_scanned (playlist, entry);
+ Entry * entry = get_entry (playlist_num, entry_num, ! fast, FALSE);
+ PluginHandle * decoder = entry ? entry->decoder : NULL;
- return entry->tuple;
+ LEAVE_RET (decoder);
}
-const gchar * playlist_entry_get_title (gint playlist_num, gint entry_num,
- gboolean fast)
+Tuple * playlist_entry_get_tuple (int playlist_num, int entry_num, bool_t fast)
{
- DECLARE_PLAYLIST_ENTRY;
- LOOKUP_PLAYLIST_ENTRY_RET (NULL);
+ ENTER;
- if (! fast)
- check_scanned (playlist, entry);
+ Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+ Tuple * tuple = entry ? entry->tuple : NULL;
- return (entry->formatted == NULL) ? entry->filename : entry->formatted;
-}
-
-void playlist_entry_describe (gint playlist_num, gint entry_num,
- const gchar * * title, const gchar * * artist, const gchar * * album,
- gboolean fast)
-{
- * title = * artist = * album = NULL;
- DECLARE_PLAYLIST_ENTRY;
- LOOKUP_PLAYLIST_ENTRY;
-
- if (! fast)
- check_scanned (playlist, entry);
+ if (tuple)
+ tuple_ref (tuple);
- if (entry->title)
- {
- * title = entry->title;
- * artist = entry->artist;
- * album = entry->album;
- }
- else
- * title = entry->filename;
+ LEAVE_RET (tuple);
}
-gint playlist_entry_get_length (gint playlist_num, gint entry_num, gboolean fast)
+char * playlist_entry_get_title (int playlist_num, int entry_num, bool_t fast)
{
- DECLARE_PLAYLIST_ENTRY;
- LOOKUP_PLAYLIST_ENTRY_RET (0);
+ ENTER;
- if (! fast)
- check_scanned (playlist, entry);
+ Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+ char * title = entry ? str_ref (entry->formatted ? entry->formatted : entry->filename) : NULL;
- return entry->length;
+ LEAVE_RET (title);
}
-gboolean playlist_entry_is_segmented(gint playlist_num, gint entry_num)
+void playlist_entry_describe (int playlist_num, int entry_num,
+ char * * title, char * * artist, char * * album, bool_t fast)
{
- DECLARE_PLAYLIST_ENTRY;
+ ENTER;
- LOOKUP_PLAYLIST_ENTRY_RET (FALSE);
+ Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+ * title = (entry && entry->title) ? str_ref (entry->title) : NULL;
+ * artist = (entry && entry->artist) ? str_ref (entry->artist) : NULL;
+ * album = (entry && entry->album) ? str_ref (entry->album) : NULL;
- return entry->segmented;
+ LEAVE;
}
-gint playlist_entry_get_start_time (gint playlist_num, gint entry_num)
+int playlist_entry_get_length (int playlist_num, int entry_num, bool_t fast)
{
- DECLARE_PLAYLIST_ENTRY;
+ ENTER;
- LOOKUP_PLAYLIST_ENTRY_RET (-1);
+ Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+ int length = entry ? entry->length : 0;
- return entry->start;
+ LEAVE_RET (length);
}
-gint playlist_entry_get_end_time (gint playlist_num, gint entry_num)
+void playlist_set_position (int playlist_num, int entry_num)
{
- DECLARE_PLAYLIST_ENTRY;
-
- LOOKUP_PLAYLIST_ENTRY_RET (-1);
-
- return entry->end;
-}
+ if (playback_get_playing () && playlist_num == playlist_get_playing ())
+ playback_stop ();
-void playlist_set_position (gint playlist_num, gint entry_num)
-{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
if (entry_num == -1)
@@ -1177,31 +1239,32 @@ void playlist_set_position (gint playlist_num, gint entry_num)
else
LOOKUP_PLAYLIST_ENTRY;
- if (playlist == playing_playlist && playback_get_playing ())
- playback_stop ();
-
set_position (playlist, entry);
+ LEAVE;
hook_call ("playlist position", GINT_TO_POINTER (playlist_num));
}
-gint playlist_get_position(gint playlist_num)
+int playlist_get_position (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST_RET (-1);
- return (playlist->position == NULL) ? -1 : playlist->position->number;
+ int position = playlist->position ? playlist->position->number : -1;
+
+ LEAVE_RET (position);
}
-void playlist_entry_set_selected(gint playlist_num, gint entry_num, gboolean selected)
+void playlist_entry_set_selected (int playlist_num, int entry_num,
+ bool_t selected)
{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
-
LOOKUP_PLAYLIST_ENTRY;
if (entry->selected == selected)
- return;
+ LEAVE_RET_VOID;
entry->selected = selected;
@@ -1216,36 +1279,42 @@ void playlist_entry_set_selected(gint playlist_num, gint entry_num, gboolean sel
playlist->selected_length -= entry->length;
}
- SELECTION_HAS_CHANGED (playlist, entry_num, 1);
+ SELECTION_HAS_CHANGED (playlist->number, entry_num, 1);
+ LEAVE;
}
-gboolean playlist_entry_get_selected(gint playlist_num, gint entry_num)
+bool_t playlist_entry_get_selected (int playlist_num, int entry_num)
{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
-
LOOKUP_PLAYLIST_ENTRY_RET (FALSE);
- return entry->selected;
+ bool_t selected = entry->selected;
+
+ LEAVE_RET (selected);
}
-gint playlist_selected_count(gint playlist_num)
+int playlist_selected_count (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST_RET (0);
- return playlist->selected_count;
+ int selected_count = playlist->selected_count;
+
+ LEAVE_RET (selected_count);
}
-void playlist_select_all (gint playlist_num, gboolean selected)
+void playlist_select_all (int playlist_num, bool_t selected)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- gint entries = index_count (playlist->entries);
- gint first = entries, last = 0;
+ int entries = index_count (playlist->entries);
+ int first = entries, last = 0;
- for (gint count = 0; count < entries; count ++)
+ for (int count = 0; count < entries; count ++)
{
Entry * entry = index_get (playlist->entries, count);
@@ -1269,21 +1338,22 @@ void playlist_select_all (gint playlist_num, gboolean selected)
}
if (first < entries)
- SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+ SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+ LEAVE;
}
-gint playlist_shift (gint playlist_num, gint entry_num, gint distance)
+int playlist_shift (int playlist_num, int entry_num, int distance)
{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
LOOKUP_PLAYLIST_ENTRY_RET (0);
if (! entry->selected || ! distance)
- return 0;
-
- PLAYLIST_WILL_CHANGE;
+ LEAVE_RET (0);
- gint entries = index_count (playlist->entries);
- gint shift = 0, center, top, bottom;
+ int entries = index_count (playlist->entries);
+ int shift = 0, center, top, bottom;
if (distance < 0)
{
@@ -1306,37 +1376,37 @@ gint playlist_shift (gint playlist_num, gint entry_num, gint distance)
top = bottom = center;
- for (gint i = 0; i < top; i ++)
+ for (int i = 0; i < top; i ++)
{
entry = index_get (playlist->entries, i);
if (entry->selected)
top = i;
}
- for (gint i = entries; i > bottom; i --)
+ for (int i = entries; i > bottom; i --)
{
entry = index_get (playlist->entries, i - 1);
if (entry->selected)
bottom = i;
}
- struct index * temp = index_new ();
+ Index * temp = index_new ();
- for (gint i = top; i < center; i ++)
+ for (int i = top; i < center; i ++)
{
entry = index_get (playlist->entries, i);
if (! entry->selected)
index_append (temp, entry);
}
- for (gint i = top; i < bottom; i ++)
+ for (int i = top; i < bottom; i ++)
{
entry = index_get (playlist->entries, i);
if (entry->selected)
index_append (temp, entry);
}
- for (gint i = center; i < bottom; i ++)
+ for (int i = center; i < bottom; i ++)
{
entry = index_get (playlist->entries, i);
if (! entry->selected)
@@ -1346,95 +1416,107 @@ gint playlist_shift (gint playlist_num, gint entry_num, gint distance)
index_copy_set (temp, 0, playlist->entries, top, bottom - top);
number_entries (playlist, top, bottom - top);
- PLAYLIST_HAS_CHANGED (playlist, top, bottom - top);
+ PLAYLIST_HAS_CHANGED (playlist->number, top, bottom - top);
- return shift;
+ LEAVE_RET (shift);
}
-void playlist_delete_selected(gint playlist_num)
+void playlist_delete_selected (int playlist_num)
{
- DECLARE_PLAYLIST;
- gboolean stop = FALSE;
- gint entries, count;
- struct index *others;
+ if (playback_get_playing () && playlist_num == playlist_get_playing () &&
+ playlist_get_position (playlist_num) >= 0 && playlist_entry_get_selected
+ (playlist_num, playlist_get_position (playlist_num)))
+ playback_stop ();
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- entries = index_count (playlist->entries);
- others = index_new();
+ if (! playlist->selected_count)
+ LEAVE_RET_VOID;
+
+ int entries = index_count (playlist->entries);
+
+ Index * others = index_new ();
+ index_allocate (others, entries - playlist->selected_count);
+
+ if (playlist->position && playlist->position->selected)
+ set_position (playlist, NULL);
- for (count = 0; count < entries; count++)
+ int before = 0, after = 0;
+ bool_t found = FALSE;
+
+ for (int count = 0; count < entries; count++)
{
Entry * entry = index_get (playlist->entries, count);
if (entry->selected)
{
- if (entry == playlist->position)
- {
- stop = (playlist == playing_playlist);
- set_position (playlist, NULL);
- }
-
if (entry->queued)
- playlist->queued = g_list_remove(playlist->queued, entry);
+ playlist->queued = g_list_remove (playlist->queued, entry);
playlist->total_length -= entry->length;
+ entry_free (entry);
- entry_free(entry);
+ found = TRUE;
+ after = 0;
}
else
- index_append(others, entry);
+ {
+ index_append (others, entry);
+
+ if (found)
+ after ++;
+ else
+ before ++;
+ }
}
- index_free(playlist->entries);
+ index_free (playlist->entries);
playlist->entries = others;
- number_entries(playlist, 0, index_count(playlist->entries));
playlist->selected_count = 0;
playlist->selected_length = 0;
- if (stop && playback_get_playing ())
- playback_stop ();
-
- PLAYLIST_HAS_CHANGED (playlist, 0, index_count (playlist->entries));
+ number_entries (playlist, before, index_count (playlist->entries) - before);
+ PLAYLIST_HAS_CHANGED (playlist->number, before, index_count
+ (playlist->entries) - after - before);
+ LEAVE;
}
-void playlist_reverse(gint playlist_num)
+void playlist_reverse (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
- gint entries, count;
- struct index *reversed;
-
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- entries = index_count(playlist->entries);
- reversed = index_new();
- count = entries;
+ int entries = index_count (playlist->entries);
- while (count--)
- index_append(reversed, index_get(playlist->entries, count));
+ Index * reversed = index_new ();
+ index_allocate (reversed, entries);
- index_free(playlist->entries);
- playlist->entries = reversed;
+ for (int count = entries; count --; )
+ index_append (reversed, index_get (playlist->entries, count));
- number_entries(playlist, 0, entries);
+ index_free (playlist->entries);
+ playlist->entries = reversed;
- PLAYLIST_HAS_CHANGED (playlist, 0, entries);
+ number_entries (playlist, 0, entries);
+ PLAYLIST_HAS_CHANGED (playlist->number, 0, entries);
+ LEAVE;
}
-void playlist_randomize (gint playlist_num)
+void playlist_randomize (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- PLAYLIST_WILL_CHANGE;
- gint entries = index_count (playlist->entries);
+ int entries = index_count (playlist->entries);
- for (gint i = 0; i < entries; i ++)
+ for (int i = 0; i < entries; i ++)
{
- gint j = i + rand () % (entries - i);
+ int j = i + rand () % (entries - i);
struct entry * entry = index_get (playlist->entries, j);
index_set (playlist->entries, j, index_get (playlist->entries, i));
@@ -1442,15 +1524,17 @@ void playlist_randomize (gint playlist_num)
}
number_entries (playlist, 0, entries);
- PLAYLIST_HAS_CHANGED (playlist, 0, entries);
+ PLAYLIST_HAS_CHANGED (playlist->number, 0, entries);
+ LEAVE;
}
-static gint filename_compare (const void * _a, const void * _b, void * _compare)
+static int filename_compare (const void * _a, const void * _b, void * compare)
{
const Entry * a = _a, * b = _b;
- gint (* compare) (const gchar * a, const gchar * b) = _compare;
- gint diff = compare (a->filename, b->filename);
+ int diff = ((int (*) (const char * a, const char * b)) compare)
+ (a->filename, b->filename);
+
if (diff)
return diff;
@@ -1458,17 +1542,18 @@ static gint filename_compare (const void * _a, const void * _b, void * _compare)
return a->number - b->number;
}
-static gint tuple_compare (const void * _a, const void * _b, void * _compare)
+static int tuple_compare (const void * _a, const void * _b, void * compare)
{
const Entry * a = _a, * b = _b;
- gint (* compare) (const Tuple * a, const Tuple * b) = _compare;
- if (a->tuple == NULL)
- return (b->tuple == NULL) ? 0 : -1;
- if (b->tuple == NULL)
+ if (! a->tuple)
+ return b->tuple ? -1 : 0;
+ if (! b->tuple)
return 1;
- gint diff = compare (a->tuple, b->tuple);
+ int diff = ((int (*) (const Tuple * a, const Tuple * b)) compare)
+ (a->tuple, b->tuple);
+
if (diff)
return diff;
@@ -1476,13 +1561,14 @@ static gint tuple_compare (const void * _a, const void * _b, void * _compare)
return a->number - b->number;
}
-static gint title_compare (const void * _a, const void * _b, void * _compare)
+static int title_compare (const void * _a, const void * _b, void * compare)
{
const Entry * a = _a, * b = _b;
- gint (* compare) (const gchar * a, const gchar * b) = _compare;
- gint diff = compare (a->formatted ? a->formatted : a->filename, b->formatted
- ? b->formatted : b->filename);
+ int diff = ((int (*) (const char * a, const char * b)) compare)
+ (a->formatted ? a->formatted : a->filename,
+ b->formatted ? b->formatted : b->filename);
+
if (diff)
return diff;
@@ -1490,182 +1576,227 @@ static gint title_compare (const void * _a, const void * _b, void * _compare)
return a->number - b->number;
}
-static void sort (Playlist * playlist, gint (* compare) (const void * a,
+static void sort (Playlist * playlist, int (* compare) (const void * a,
const void * b, void * inner), void * inner)
{
- PLAYLIST_WILL_CHANGE;
-
index_sort_with_data (playlist->entries, compare, inner);
number_entries (playlist, 0, index_count (playlist->entries));
- PLAYLIST_HAS_CHANGED (playlist, 0, index_count (playlist->entries));
+ PLAYLIST_HAS_CHANGED (playlist->number, 0, index_count (playlist->entries));
}
-static void sort_selected (Playlist * playlist, gint (* compare) (const void *
+static void sort_selected (Playlist * playlist, int (* compare) (const void *
a, const void * b, void * inner), void * inner)
{
- gint entries, count, count2;
- struct index *selected;
+ int entries = index_count (playlist->entries);
- PLAYLIST_WILL_CHANGE;
+ Index * selected = index_new ();
+ index_allocate (selected, playlist->selected_count);
- entries = index_count(playlist->entries);
- selected = index_new();
-
- for (count = 0; count < entries; count++)
+ for (int count = 0; count < entries; count++)
{
Entry * entry = index_get (playlist->entries, count);
if (entry->selected)
- index_append(selected, entry);
+ index_append (selected, entry);
}
index_sort_with_data (selected, compare, inner);
- count2 = 0;
-
- for (count = 0; count < entries; count++)
+ int count2 = 0;
+ for (int count = 0; count < entries; count++)
{
Entry * entry = index_get (playlist->entries, count);
if (entry->selected)
- index_set(playlist->entries, count, index_get(selected, count2++));
+ index_set (playlist->entries, count, index_get (selected, count2 ++));
}
- index_free(selected);
- number_entries(playlist, 0, entries);
+ index_free (selected);
- PLAYLIST_HAS_CHANGED (playlist, 0, entries);
+ number_entries (playlist, 0, entries);
+ PLAYLIST_HAS_CHANGED (playlist->number, 0, entries);
}
-void playlist_sort_by_filename (gint playlist_num, gint (* compare)
- (const gchar * a, const gchar * b))
+static bool_t entries_are_scanned (Playlist * playlist, bool_t selected)
{
- DECLARE_PLAYLIST;
+ int entries = index_count (playlist->entries);
+ for (int count = 0; count < entries; count ++)
+ {
+ Entry * entry = index_get (playlist->entries, count);
+ if (selected && ! entry->selected)
+ continue;
+
+ if (! entry->tuple)
+ {
+ interface_show_error (_("The playlist cannot be sorted because "
+ "metadata scanning is still in progress (or has been disabled)."));
+ return FALSE;
+ }
+ }
+
+ return TRUE;
+}
+void playlist_sort_by_filename (int playlist_num, int (* compare)
+ (const char * a, const char * b))
+{
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- sort (playlist, filename_compare, compare);
+ sort (playlist, filename_compare, (void *) compare);
+
+ LEAVE;
}
-void playlist_sort_by_tuple (gint playlist_num, gint (* compare)
+void playlist_sort_by_tuple (int playlist_num, int (* compare)
(const Tuple * a, const Tuple * b))
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- check_all_scanned (playlist);
- sort (playlist, tuple_compare, compare);
+
+ if (entries_are_scanned (playlist, FALSE))
+ sort (playlist, tuple_compare, (void *) compare);
+
+ LEAVE;
}
-void playlist_sort_by_title (gint playlist_num, gint (* compare) (const gchar *
- a, const gchar * b))
+void playlist_sort_by_title (int playlist_num, int (* compare) (const char *
+ a, const char * b))
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- check_all_scanned (playlist);
- sort (playlist, title_compare, compare);
+
+ if (entries_are_scanned (playlist, FALSE))
+ sort (playlist, title_compare, (void *) compare);
+
+ LEAVE;
}
-void playlist_sort_selected_by_filename (gint playlist_num, gint (* compare)
- (const gchar * a, const gchar * b))
+void playlist_sort_selected_by_filename (int playlist_num, int (* compare)
+ (const char * a, const char * b))
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST;
- sort_selected (playlist, filename_compare, compare);
+ sort_selected (playlist, filename_compare, (void *) compare);
+
+ LEAVE;
}
-void playlist_sort_selected_by_tuple (gint playlist_num, gint (* compare)
+void playlist_sort_selected_by_tuple (int playlist_num, int (* compare)
(const Tuple * a, const Tuple * b))
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- check_selected_scanned (playlist);
- sort_selected (playlist, tuple_compare, compare);
+
+ if (entries_are_scanned (playlist, TRUE))
+ sort_selected (playlist, tuple_compare, (void *) compare);
+
+ LEAVE;
}
-void playlist_sort_selected_by_title (gint playlist_num, gint (* compare)
- (const gchar * a, const gchar * b))
+void playlist_sort_selected_by_title (int playlist_num, int (* compare)
+ (const char * a, const char * b))
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- check_selected_scanned (playlist);
- sort (playlist, title_compare, compare);
+
+ if (entries_are_scanned (playlist, TRUE))
+ sort (playlist, title_compare, (void *) compare);
+
+ LEAVE;
}
void playlist_reformat_titles (void)
{
- gint playlist_num;
+ ENTER;
- METADATA_WILL_CHANGE;
+ g_free (title_format);
+ title_format = NULL;
- for (playlist_num = 0; playlist_num < index_count(playlists); playlist_num++)
+ for (int playlist_num = 0; playlist_num < index_count (playlists);
+ playlist_num ++)
{
Playlist * playlist = index_get (playlists, playlist_num);
- gint entries = index_count(playlist->entries);
- gint count;
+ int entries = index_count (playlist->entries);
- for (count = 0; count < entries; count++)
+ for (int count = 0; count < entries; count++)
{
Entry * entry = index_get (playlist->entries, count);
- g_free(entry->formatted);
- entry->formatted = (entry->tuple == NULL) ? NULL : title_from_tuple(entry->tuple);
+ str_unref (entry->formatted);
+ entry->formatted = entry->tuple ? title_from_tuple (entry->tuple) : NULL;
}
+
+ METADATA_HAS_CHANGED (playlist_num, 0, entries);
}
- METADATA_HAS_CHANGED (NULL, 0, 0);
+ LEAVE;
}
-void playlist_rescan_real (gint playlist_num, gboolean onlyselected)
+void playlist_trigger_scan (void)
{
- DECLARE_PLAYLIST;
- gint entries, count;
+ ENTER;
+
+ for (int i = 0; i < index_count (playlists); i ++)
+ {
+ Playlist * p = index_get (playlists, i);
+ p->scanning = TRUE;
+ }
+
+ scan_trigger ();
+
+ LEAVE;
+}
+static void playlist_rescan_real (int playlist_num, bool_t selected)
+{
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- METADATA_WILL_CHANGE;
- entries = index_count(playlist->entries);
+ int entries = index_count (playlist->entries);
- for (count = 0; count < entries; count++)
+ for (int count = 0; count < entries; count ++)
{
Entry * entry = index_get (playlist->entries, count);
- if (! onlyselected || entry->selected)
+ if (! selected || entry->selected)
{
entry_set_tuple (playlist, entry, NULL);
entry->failed = FALSE;
}
}
- METADATA_HAS_CHANGED (playlist, 0, entries);
+ METADATA_HAS_CHANGED (playlist->number, 0, entries);
+ LEAVE;
}
-void playlist_rescan (gint playlist_num)
+void playlist_rescan (int playlist_num)
{
playlist_rescan_real (playlist_num, FALSE);
}
-void playlist_rescan_selected (gint playlist_num)
+void playlist_rescan_selected (int playlist_num)
{
playlist_rescan_real (playlist_num, TRUE);
}
-void playlist_rescan_file (const gchar * filename)
+void playlist_rescan_file (const char * filename)
{
- gint num_playlists = index_count (playlists);
- gint playlist_num;
+ ENTER;
- METADATA_WILL_CHANGE;
+ int num_playlists = index_count (playlists);
- gchar * copy = NULL;
- if (! uri_is_utf8 (filename, TRUE))
- filename = copy = uri_to_utf8 (filename);
-
- for (playlist_num = 0; playlist_num < num_playlists; playlist_num ++)
+ for (int playlist_num = 0; playlist_num < num_playlists; playlist_num ++)
{
Playlist * playlist = index_get (playlists, playlist_num);
- gint num_entries = index_count (playlist->entries);
- gint entry_num;
+ int num_entries = index_count (playlist->entries);
- for (entry_num = 0; entry_num < num_entries; entry_num ++)
+ for (int entry_num = 0; entry_num < num_entries; entry_num ++)
{
Entry * entry = index_get (playlist->entries, entry_num);
@@ -1673,84 +1804,88 @@ void playlist_rescan_file (const gchar * filename)
{
entry_set_tuple (playlist, entry, NULL);
entry->failed = FALSE;
+
+ METADATA_HAS_CHANGED (playlist_num, entry_num, 1);
}
}
}
- g_free (copy);
-
- METADATA_HAS_CHANGED (NULL, 0, 0);
+ LEAVE;
}
-gint64 playlist_get_total_length (gint playlist_num, gboolean fast)
+int64_t playlist_get_total_length (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST_RET (0);
- if (! fast)
- check_all_scanned (playlist);
+ int64_t length = playlist->total_length;
- return playlist->total_length;
+ LEAVE_RET (length);
}
-gint64 playlist_get_selected_length (gint playlist_num, gboolean fast)
+int64_t playlist_get_selected_length (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST_RET (0);
- if (! fast)
- check_selected_scanned (playlist);
+ int64_t length = playlist->selected_length;
- return playlist->selected_length;
+ LEAVE_RET (length);
}
-gint playlist_queue_count(gint playlist_num)
+int playlist_queue_count (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
-
LOOKUP_PLAYLIST_RET (0);
- return g_list_length (playlist->queued);
+ int count = g_list_length (playlist->queued);
+
+ LEAVE_RET (count);
}
-void playlist_queue_insert(gint playlist_num, gint at, gint entry_num)
+void playlist_queue_insert (int playlist_num, int at, int entry_num)
{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
-
LOOKUP_PLAYLIST_ENTRY;
if (entry->queued)
- return;
+ LEAVE_RET_VOID;
if (at < 0)
- playlist->queued = g_list_append(playlist->queued, entry);
+ playlist->queued = g_list_append (playlist->queued, entry);
else
- playlist->queued = g_list_insert(playlist->queued, entry, at);
+ playlist->queued = g_list_insert (playlist->queued, entry, at);
entry->queued = TRUE;
- SELECTION_HAS_CHANGED (playlist, entry_num, 1);
+ SELECTION_HAS_CHANGED (playlist->number, entry_num, 1);
+ LEAVE;
}
-void playlist_queue_insert_selected (gint playlist_num, gint at)
+void playlist_queue_insert_selected (int playlist_num, int at)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- gint entries = index_count(playlist->entries);
- gint first = entries, last = 0;
+ int entries = index_count(playlist->entries);
+ int first = entries, last = 0;
- for (gint count = 0; count < entries; count++)
+ for (int count = 0; count < entries; count++)
{
Entry * entry = index_get (playlist->entries, count);
- if (!entry->selected || entry->queued)
+ if (! entry->selected || entry->queued)
continue;
if (at < 0)
- playlist->queued = g_list_append(playlist->queued, entry);
+ playlist->queued = g_list_append (playlist->queued, entry);
else
- playlist->queued = g_list_insert(playlist->queued, entry, at++);
+ playlist->queued = g_list_insert (playlist->queued, entry, at++);
entry->queued = TRUE;
first = MIN (first, entry->number);
@@ -1758,95 +1893,98 @@ void playlist_queue_insert_selected (gint playlist_num, gint at)
}
if (first < entries)
- SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+ SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+ LEAVE;
}
-gint playlist_queue_get_entry(gint playlist_num, gint at)
+int playlist_queue_get_entry (int playlist_num, int at)
{
+ ENTER;
DECLARE_PLAYLIST;
- GList *node;
-
LOOKUP_PLAYLIST_RET (-1);
- node = g_list_nth(playlist->queued, at);
- if (node == NULL)
- return -1;
+ GList * node = g_list_nth (playlist->queued, at);
+ int entry_num = node ? ((Entry *) node->data)->number : -1;
- return ((Entry *) node->data)->number;
+ LEAVE_RET (entry_num);
}
-gint playlist_queue_find_entry(gint playlist_num, gint entry_num)
+int playlist_queue_find_entry (int playlist_num, int entry_num)
{
+ ENTER;
DECLARE_PLAYLIST_ENTRY;
-
LOOKUP_PLAYLIST_ENTRY_RET (-1);
- if (! entry->queued)
- return -1;
+ int pos = entry->queued ? g_list_index (playlist->queued, entry) : -1;
- return g_list_index(playlist->queued, entry);
+ LEAVE_RET (pos);
}
-void playlist_queue_delete(gint playlist_num, gint at, gint number)
+void playlist_queue_delete (int playlist_num, int at, int number)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- gint entries = index_count (playlist->entries);
- gint first = entries, last = 0;
+ int entries = index_count (playlist->entries);
+ int first = entries, last = 0;
if (at == 0)
{
- while (playlist->queued != NULL && number--)
+ while (playlist->queued && number --)
{
Entry * entry = playlist->queued->data;
-
- playlist->queued = g_list_delete_link(playlist->queued, playlist->queued);
-
entry->queued = FALSE;
first = MIN (first, entry->number);
last = entry->number;
+
+ playlist->queued = g_list_delete_link (playlist->queued,
+ playlist->queued);
}
}
else
{
- GList *anchor = g_list_nth(playlist->queued, at - 1);
-
- if (anchor == NULL)
+ GList * anchor = g_list_nth (playlist->queued, at - 1);
+ if (! anchor)
goto DONE;
- while (anchor->next != NULL && number--)
+ while (anchor->next && number --)
{
Entry * entry = anchor->next->data;
-
- playlist->queued = g_list_delete_link(playlist->queued, anchor->next);
-
entry->queued = FALSE;
first = MIN (first, entry->number);
last = entry->number;
+
+ playlist->queued = g_list_delete_link (playlist->queued,
+ anchor->next);
}
}
DONE:
if (first < entries)
- SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+ SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+ LEAVE;
}
-void playlist_queue_delete_selected (gint playlist_num)
+void playlist_queue_delete_selected (int playlist_num)
{
+ ENTER;
DECLARE_PLAYLIST;
LOOKUP_PLAYLIST;
- gint entries = index_count (playlist->entries);
- gint first = entries, last = 0;
+ int entries = index_count (playlist->entries);
+ int first = entries, last = 0;
- for (GList * node = playlist->queued; node != NULL; )
+ for (GList * node = playlist->queued; node; )
{
GList * next = node->next;
Entry * entry = node->data;
if (entry->selected)
{
+ entry->queued = FALSE;
playlist->queued = g_list_delete_link (playlist->queued, node);
first = MIN (first, entry->number);
last = entry->number;
@@ -1856,61 +1994,65 @@ void playlist_queue_delete_selected (gint playlist_num)
}
if (first < entries)
- SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+ SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+ LEAVE;
}
-static gboolean shuffle_prev (Playlist * playlist)
+static bool_t shuffle_prev (Playlist * playlist)
{
- gint entries = index_count (playlist->entries), count;
+ int entries = index_count (playlist->entries);
Entry * found = NULL;
- for (count = 0; count < entries; count ++)
+ for (int count = 0; count < entries; count ++)
{
Entry * entry = index_get (playlist->entries, count);
- if (entry->shuffle_num && (playlist->position == NULL ||
- entry->shuffle_num < playlist->position->shuffle_num) && (found == NULL
+ if (entry->shuffle_num && (! playlist->position ||
+ entry->shuffle_num < playlist->position->shuffle_num) && (! found
|| entry->shuffle_num > found->shuffle_num))
found = entry;
}
- if (found == NULL)
+ if (! found)
return FALSE;
playlist->position = found;
return TRUE;
}
-gboolean playlist_prev_song(gint playlist_num)
+bool_t playlist_prev_song (int playlist_num)
{
- DECLARE_PLAYLIST;
+ if (playback_get_playing () && playlist_num == playlist_get_playing ())
+ playback_stop ();
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST_RET (FALSE);
- if (cfg.shuffle)
+ if (get_bool (NULL, "shuffle"))
{
if (! shuffle_prev (playlist))
- return FALSE;
+ LEAVE_RET (FALSE);
}
else
{
- if (playlist->position == NULL || playlist->position->number == 0)
- return FALSE;
+ if (! playlist->position || playlist->position->number == 0)
+ LEAVE_RET (FALSE);
set_position (playlist, index_get (playlist->entries,
playlist->position->number - 1));
}
- if (playlist == playing_playlist && playback_get_playing ())
- playback_stop();
+ LEAVE;
hook_call ("playlist position", GINT_TO_POINTER (playlist_num));
return TRUE;
}
-static gboolean shuffle_next (Playlist * playlist)
+static bool_t shuffle_next (Playlist * playlist)
{
- gint entries = index_count (playlist->entries), choice = 0, count;
+ int entries = index_count (playlist->entries), choice = 0, count;
Entry * found = NULL;
for (count = 0; count < entries; count ++)
@@ -1919,13 +2061,13 @@ static gboolean shuffle_next (Playlist * playlist)
if (! entry->shuffle_num)
choice ++;
- else if (playlist->position != NULL && entry->shuffle_num >
- playlist->position->shuffle_num && (found == NULL || entry->shuffle_num
+ else if (playlist->position && entry->shuffle_num >
+ playlist->position->shuffle_num && (! found || entry->shuffle_num
< found->shuffle_num))
found = entry;
}
- if (found != NULL)
+ if (found)
{
playlist->position = found;
return TRUE;
@@ -1955,57 +2097,58 @@ static gboolean shuffle_next (Playlist * playlist)
static void shuffle_reset (Playlist * playlist)
{
- gint entries = index_count (playlist->entries), count;
+ int entries = index_count (playlist->entries);
playlist->last_shuffle_num = 0;
- for (count = 0; count < entries; count ++)
+ for (int count = 0; count < entries; count ++)
{
Entry * entry = index_get (playlist->entries, count);
entry->shuffle_num = 0;
}
}
-gboolean playlist_next_song(gint playlist_num, gboolean repeat)
+bool_t playlist_next_song (int playlist_num, bool_t repeat)
{
- DECLARE_PLAYLIST;
- gint entries;
+ if (playback_get_playing () && playlist_num == playlist_get_playing ())
+ playback_stop ();
+ ENTER;
+ DECLARE_PLAYLIST;
LOOKUP_PLAYLIST_RET (FALSE);
- entries = index_count(playlist->entries);
- if (entries == 0)
- return FALSE;
+ int entries = index_count(playlist->entries);
+
+ if (! entries)
+ LEAVE_RET (FALSE);
- /* If we have a song in queue, jump to it, _then_ remove it from queue */
- if (playlist->queued != NULL)
+ if (playlist->queued)
{
set_position (playlist, playlist->queued->data);
-
- playlist->queued = g_list_remove(playlist->queued, playlist->position);
+ playlist->queued = g_list_remove (playlist->queued, playlist->position);
playlist->position->queued = FALSE;
}
- else if (cfg.shuffle)
+ else if (get_bool (NULL, "shuffle"))
{
if (! shuffle_next (playlist))
{
if (! repeat)
- return FALSE;
+ LEAVE_RET (FALSE);
shuffle_reset (playlist);
if (! shuffle_next (playlist))
- return FALSE;
+ LEAVE_RET (FALSE);
}
}
else
{
- if (playlist->position == NULL)
+ if (! playlist->position)
set_position (playlist, index_get (playlist->entries, 0));
else if (playlist->position->number == entries - 1)
{
- if (!repeat)
- return FALSE;
+ if (! repeat)
+ LEAVE_RET (FALSE);
set_position (playlist, index_get (playlist->entries, 0));
}
@@ -2014,105 +2157,199 @@ gboolean playlist_next_song(gint playlist_num, gboolean repeat)
playlist->position->number + 1));
}
- if (playlist == playing_playlist && playback_get_playing ())
- playback_stop();
+ LEAVE;
hook_call ("playlist position", GINT_TO_POINTER (playlist_num));
return TRUE;
}
+int playback_entry_get_position (void)
+{
+ ENTER;
+
+ Entry * entry = get_playback_entry (FALSE, FALSE);
+ int entry_num = entry ? entry->number : -1;
+
+ LEAVE_RET (entry_num);
+}
+
+PluginHandle * playback_entry_get_decoder (void)
+{
+ ENTER;
+
+ Entry * entry = get_playback_entry (TRUE, FALSE);
+ PluginHandle * decoder = entry ? entry->decoder : NULL;
+
+ LEAVE_RET (decoder);
+}
+
+Tuple * playback_entry_get_tuple (void)
+{
+ ENTER;
+
+ Entry * entry = get_playback_entry (FALSE, TRUE);
+ Tuple * tuple = entry ? entry->tuple : NULL;
+
+ if (tuple)
+ tuple_ref (tuple);
+
+ LEAVE_RET (tuple);
+}
+
+char * playback_entry_get_title (void)
+{
+ ENTER;
+
+ Entry * entry = get_playback_entry (FALSE, TRUE);
+ char * title = entry ? str_ref (entry->formatted ? entry->formatted :
+ entry->filename) : NULL;
+
+ LEAVE_RET (title);
+}
+
+int playback_entry_get_length (void)
+{
+ ENTER;
+
+ Entry * entry = get_playback_entry (FALSE, TRUE);
+ int length = entry->length;
+
+ LEAVE_RET (length);
+}
+
+void playback_entry_set_tuple (Tuple * tuple)
+{
+ ENTER;
+ if (! playing_playlist || ! playing_playlist->position)
+ LEAVE_RET_VOID;
+
+ Entry * entry = playing_playlist->position;
+ entry_cancel_scan (entry);
+ entry_set_tuple (playing_playlist, entry, tuple);
+
+ METADATA_HAS_CHANGED (playing_playlist->number, entry->number, 1);
+ LEAVE;
+}
+
+int playback_entry_get_start_time (void)
+{
+ ENTER;
+ if (! playing_playlist || ! playing_playlist->position)
+ LEAVE_RET (0);
+
+ int start = playing_playlist->position->start;
+ LEAVE_RET (start);
+}
+
+int playback_entry_get_end_time (void)
+{
+ ENTER;
+ if (! playing_playlist || ! playing_playlist->position)
+ LEAVE_RET (-1);
+
+ int end = playing_playlist->position->end;
+ LEAVE_RET (end);
+}
+
void playlist_save_state (void)
{
- gchar scratch[512];
- FILE * handle;
- gint playlist_num;
+ ENTER;
- snprintf (scratch, sizeof scratch, "%s/" STATE_FILE,
- get_path (AUD_PATH_USER_DIR));
- handle = fopen (scratch, "w");
+ char * path = g_strdup_printf ("%s/" STATE_FILE, get_path (AUD_PATH_USER_DIR));
+ FILE * handle = fopen (path, "w");
+ g_free (path);
+ if (! handle)
+ LEAVE_RET_VOID;
- if (handle == NULL)
- return;
+ resume_state = playback_get_playing () ? (playback_get_paused () ?
+ RESUME_PAUSE : RESUME_PLAY) : RESUME_STOP;
+ resume_time = playback_get_playing () ? playback_get_time () : 0;
- fprintf (handle, "active %d\n", playlist_get_active ());
- fprintf (handle, "playing %d\n", playlist_get_playing ());
+ fprintf (handle, "resume-state %d\n", resume_state);
+ fprintf (handle, "resume-time %d\n", resume_time);
- for (playlist_num = 0; playlist_num < index_count (playlists);
+ fprintf (handle, "active %d\n", active_playlist ? active_playlist->number : -1);
+ fprintf (handle, "playing %d\n", playing_playlist ? playing_playlist->number : -1);
+
+ for (int playlist_num = 0; playlist_num < index_count (playlists);
playlist_num ++)
{
Playlist * playlist = index_get (playlists, playlist_num);
- gint entries = index_count (playlist->entries), count;
fprintf (handle, "playlist %d\n", playlist_num);
- fprintf (handle, "position %d\n", playlist_get_position (playlist_num));
- fprintf (handle, "last-shuffled %d\n", playlist->last_shuffle_num);
- for (count = 0; count < entries; count ++)
- {
- Entry * entry = index_get (playlist->entries, count);
- fprintf (handle, "S %d\n", entry->shuffle_num);
- }
+ if (playlist->filename)
+ fprintf (handle, "filename %s\n", playlist->filename);
+
+ fprintf (handle, "position %d\n", playlist->position ?
+ playlist->position->number : -1);
}
fclose (handle);
+ LEAVE;
}
-static gchar parse_key[32];
-static gchar * parse_value;
+static char parse_key[512];
+static char * parse_value;
static void parse_next (FILE * handle)
{
- gchar * found;
-
parse_value = NULL;
- if (fgets (parse_key, sizeof parse_key, handle) == NULL)
+ if (! fgets (parse_key, sizeof parse_key, handle))
return;
- found = strchr (parse_key, ' ');
-
- if (found == NULL)
+ char * space = strchr (parse_key, ' ');
+ if (! space)
return;
- * found = 0;
- parse_value = found + 1;
+ * space = 0;
+ parse_value = space + 1;
- found = strchr (parse_value, '\n');
+ char * newline = strchr (parse_value, '\n');
+ if (newline)
+ * newline = 0;
+}
- if (found != NULL)
- * found = 0;
+static bool_t parse_integer (const char * key, int * value)
+{
+ return (parse_value && ! strcmp (parse_key, key) && sscanf (parse_value,
+ "%d", value) == 1);
}
-static gboolean parse_integer (const gchar * key, gint * value)
+static char * parse_string (const char * key)
{
- return (parse_value != NULL && ! strcmp (parse_key, key) && sscanf
- (parse_value, "%d", value) == 1);
+ return (parse_value && ! strcmp (parse_key, key)) ? str_get (parse_value) : NULL;
}
void playlist_load_state (void)
{
- gchar scratch[512];
- FILE * handle;
- gint playlist_num;
-
- snprintf (scratch, sizeof scratch, "%s/" STATE_FILE,
- get_path (AUD_PATH_USER_DIR));
- handle = fopen (scratch, "r");
+ ENTER;
+ int playlist_num;
- if (handle == NULL)
- return;
+ char * path = g_strdup_printf ("%s/" STATE_FILE, get_path (AUD_PATH_USER_DIR));
+ FILE * handle = fopen (path, "r");
+ g_free (path);
+ if (! handle)
+ LEAVE_RET_VOID;
parse_next (handle);
+ if (parse_integer ("resume-state", & resume_state))
+ parse_next (handle);
+ if (parse_integer ("resume-time", & resume_time))
+ parse_next (handle);
+
if (parse_integer ("active", & playlist_num))
{
- playlist_set_active (playlist_num);
+ if (! (active_playlist = lookup_playlist (playlist_num)))
+ active_playlist = index_get (playlists, 0);
parse_next (handle);
}
if (parse_integer ("playing", & playlist_num))
{
- playlist_set_playing (playlist_num);
+ playing_playlist = lookup_playlist (playlist_num);
parse_next (handle);
}
@@ -2120,32 +2357,49 @@ void playlist_load_state (void)
playlist_num < index_count (playlists))
{
Playlist * playlist = index_get (playlists, playlist_num);
- gint entries = index_count (playlist->entries), position, count;
+ int entries = index_count (playlist->entries), position;
+ char * s;
parse_next (handle);
+ if ((s = parse_string ("filename")))
+ {
+ str_unref (playlist->filename);
+ playlist->filename = s;
+ parse_next (handle);
+ }
+
if (parse_integer ("position", & position))
parse_next (handle);
if (position >= 0 && position < entries)
- playlist->position = index_get (playlist->entries, position);
+ set_position (playlist, index_get (playlist->entries, position));
+ }
- gint obsolete = 0;
- if (parse_integer ("shuffled", & obsolete)) /* compatibility with 2.3 */
- parse_next (handle);
+ fclose (handle);
- if (parse_integer ("last-shuffled", & playlist->last_shuffle_num))
- parse_next (handle);
- else /* compatibility with 2.3 beta */
- playlist->last_shuffle_num = obsolete;
+ /* clear updates queued during init sequence */
- for (count = 0; count < entries; count ++)
- {
- Entry * entry = index_get (playlist->entries, count);
- if (parse_integer ("S", & entry->shuffle_num))
- parse_next (handle);
- }
+ for (int i = 0; i < index_count (playlists); i ++)
+ {
+ Playlist * p = index_get (playlists, i);
+ memset (& p->last_update, 0, sizeof (Update));
+ memset (& p->next_update, 0, sizeof (Update));
}
- fclose (handle);
+ update_level = 0;
+
+ if (update_source)
+ {
+ g_source_remove (update_source);
+ update_source = 0;
+ }
+
+ LEAVE;
+}
+
+void playlist_resume (void)
+{
+ if (resume_state == RESUME_PLAY || resume_state == RESUME_PAUSE)
+ playback_play (resume_time, resume_state == RESUME_PAUSE);
}
diff --git a/src/audacious/playlist-utils.c b/src/audacious/playlist-utils.c
index cbb001f..66a879f 100644
--- a/src/audacious/playlist-utils.c
+++ b/src/audacious/playlist-utils.c
@@ -1,6 +1,6 @@
/*
* playlist-utils.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -19,90 +19,83 @@
* using our public API to be a derived work.
*/
+#include <dirent.h>
#include <glib.h>
#include <regex.h>
+#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
-#include "audconfig.h"
#include "misc.h"
#include "playlist.h"
-#include "playlist-utils.h"
-static const gchar * aud_titlestring_presets[] =
+static const char * get_basename (const char * filename)
{
- "${title}",
- "${?artist:${artist} - }${title}",
- "${?artist:${artist} - }${?album:${album} - }${title}",
- "${?artist:${artist} - }${?album:${album} - }"
- "${?track-number:${track-number}. }${title}",
- "${?artist:${artist} }${?album:[ ${album} ] }${?artist:- }"
- "${?track-number:${track-number}. }${title}",
- "${?album:${album} - }${title}",
-};
-
-const gint n_titlestring_presets = G_N_ELEMENTS (aud_titlestring_presets);
-
-static const gchar * get_basename (const gchar * filename)
-{
- const gchar * slash = strrchr (filename, '/');
+ const char * slash = strrchr (filename, '/');
return (slash == NULL) ? filename : slash + 1;
}
-static gint filename_compare_basename (const gchar * a, const gchar * b)
+static int filename_compare_basename (const char * a, const char * b)
{
return string_compare_encoded (get_basename (a), get_basename (b));
}
-static gint tuple_compare_string (const Tuple * a, const Tuple * b, gint field)
+static int tuple_compare_string (const Tuple * a, const Tuple * b, int field)
{
- const gchar * string_a = tuple_get_string (a, field, NULL);
- const gchar * string_b = tuple_get_string (b, field, NULL);
+ char * string_a = tuple_get_str (a, field, NULL);
+ char * string_b = tuple_get_str (b, field, NULL);
+ int ret;
if (string_a == NULL)
- return (string_b == NULL) ? 0 : -1;
- if (string_b == NULL)
- return 1;
-
- return string_compare (string_a, string_b);
+ ret = (string_b == NULL) ? 0 : -1;
+ else if (string_b == NULL)
+ ret = 1;
+ else
+ ret = string_compare (string_a, string_b);
+
+ str_unref (string_a);
+ str_unref (string_b);
+ return ret;
}
-static gint tuple_compare_int (const Tuple * a, const Tuple * b, gint field)
+static int tuple_compare_int (const Tuple * a, const Tuple * b, int field)
{
if (tuple_get_value_type (a, field, NULL) != TUPLE_INT)
return (tuple_get_value_type (b, field, NULL) != TUPLE_INT) ? 0 : -1;
if (tuple_get_value_type (b, field, NULL) != TUPLE_INT)
return 1;
- gint int_a = tuple_get_int (a, field, NULL);
- gint int_b = tuple_get_int (b, field, NULL);
+ int int_a = tuple_get_int (a, field, NULL);
+ int int_b = tuple_get_int (b, field, NULL);
return (int_a < int_b) ? -1 : (int_a > int_b);
}
-static gint tuple_compare_title (const Tuple * a, const Tuple * b)
+static int tuple_compare_title (const Tuple * a, const Tuple * b)
{
return tuple_compare_string (a, b, FIELD_TITLE);
}
-static gint tuple_compare_album (const Tuple * a, const Tuple * b)
+static int tuple_compare_album (const Tuple * a, const Tuple * b)
{
return tuple_compare_string (a, b, FIELD_ALBUM);
}
-static gint tuple_compare_artist (const Tuple * a, const Tuple * b)
+static int tuple_compare_artist (const Tuple * a, const Tuple * b)
{
return tuple_compare_string (a, b, FIELD_ARTIST);
}
-static gint tuple_compare_date (const Tuple * a, const Tuple * b)
+static int tuple_compare_date (const Tuple * a, const Tuple * b)
{
return tuple_compare_int (a, b, FIELD_YEAR);
}
-static gint tuple_compare_track (const Tuple * a, const Tuple * b)
+static int tuple_compare_track (const Tuple * a, const Tuple * b)
{
return tuple_compare_int (a, b, FIELD_TRACK_NUMBER);
}
@@ -137,16 +130,7 @@ static const PlaylistStringCompareFunc title_comparisons[] = {
[PLAYLIST_SORT_TRACK] = NULL,
[PLAYLIST_SORT_FORMATTED_TITLE] = string_compare};
-const gchar * get_gentitle_format (void)
-{
- if (cfg.titlestring_preset >= 0 && cfg.titlestring_preset <
- n_titlestring_presets)
- return aud_titlestring_presets[cfg.titlestring_preset];
-
- return cfg.gentitle_format;
-}
-
-void playlist_sort_by_scheme (gint playlist, gint scheme)
+void playlist_sort_by_scheme (int playlist, int scheme)
{
if (filename_comparisons[scheme] != NULL)
playlist_sort_by_filename (playlist, filename_comparisons[scheme]);
@@ -156,7 +140,7 @@ void playlist_sort_by_scheme (gint playlist, gint scheme)
playlist_sort_by_title (playlist, title_comparisons[scheme]);
}
-void playlist_sort_selected_by_scheme (gint playlist, gint scheme)
+void playlist_sort_selected_by_scheme (int playlist, int scheme)
{
if (filename_comparisons[scheme] != NULL)
playlist_sort_selected_by_filename (playlist,
@@ -168,10 +152,10 @@ void playlist_sort_selected_by_scheme (gint playlist, gint scheme)
}
/* Fix me: This considers empty fields as duplicates. */
-void playlist_remove_duplicates_by_scheme (gint playlist, gint scheme)
+void playlist_remove_duplicates_by_scheme (int playlist, int scheme)
{
- gint entries = playlist_entry_count (playlist);
- gint count;
+ int entries = playlist_entry_count (playlist);
+ int count;
if (entries < 1)
return;
@@ -180,176 +164,328 @@ void playlist_remove_duplicates_by_scheme (gint playlist, gint scheme)
if (filename_comparisons[scheme] != NULL)
{
- gint (* compare) (const gchar * a, const gchar * b) =
+ int (* compare) (const char * a, const char * b) =
filename_comparisons[scheme];
- const gchar * last, * current;
playlist_sort_by_filename (playlist, compare);
- last = playlist_entry_get_filename (playlist, 0);
+ char * last = playlist_entry_get_filename (playlist, 0);
for (count = 1; count < entries; count ++)
{
- current = playlist_entry_get_filename (playlist, count);
+ char * current = playlist_entry_get_filename (playlist, count);
if (compare (last, current) == 0)
playlist_entry_set_selected (playlist, count, TRUE);
+ str_unref (last);
last = current;
}
+
+ str_unref (last);
}
else if (tuple_comparisons[scheme] != NULL)
{
- gint (* compare) (const Tuple * a, const Tuple * b) =
+ int (* compare) (const Tuple * a, const Tuple * b) =
tuple_comparisons[scheme];
- const Tuple * last, * current;
playlist_sort_by_tuple (playlist, compare);
- last = playlist_entry_get_tuple (playlist, 0, FALSE);
+ Tuple * last = playlist_entry_get_tuple (playlist, 0, FALSE);
for (count = 1; count < entries; count ++)
{
- current = playlist_entry_get_tuple (playlist, count, FALSE);
+ Tuple * current = playlist_entry_get_tuple (playlist, count, FALSE);
if (last != NULL && current != NULL && compare (last, current) == 0)
playlist_entry_set_selected (playlist, count, TRUE);
+ if (last)
+ tuple_unref (last);
last = current;
}
+
+ if (last)
+ tuple_unref (last);
}
playlist_delete_selected (playlist);
}
-void playlist_remove_failed (gint playlist)
+void playlist_remove_failed (int playlist)
{
- gint entries = playlist_entry_count (playlist);
- gint count;
+ int entries = playlist_entry_count (playlist);
+ int count;
- playlist_rescan (playlist);
playlist_select_all (playlist, FALSE);
for (count = 0; count < entries; count ++)
{
- if (! playlist_entry_get_decoder (playlist, count, FALSE))
+ char * filename = playlist_entry_get_filename (playlist, count);
+
+ /* vfs_file_test() only works for file:// URIs currently */
+ if (! strncmp (filename, "file://", 7) && ! vfs_file_test (filename,
+ G_FILE_TEST_EXISTS))
playlist_entry_set_selected (playlist, count, TRUE);
+
+ str_unref (filename);
}
playlist_delete_selected (playlist);
}
-void playlist_select_by_patterns (gint playlist, const Tuple * patterns)
+void playlist_select_by_patterns (int playlist, const Tuple * patterns)
{
- const gint fields[] = {FIELD_TITLE, FIELD_ALBUM, FIELD_ARTIST,
+ const int fields[] = {FIELD_TITLE, FIELD_ALBUM, FIELD_ARTIST,
FIELD_FILE_NAME};
- gint entries = playlist_entry_count (playlist);
- gint field, entry;
+ int entries = playlist_entry_count (playlist);
+ int field, entry;
playlist_select_all (playlist, TRUE);
for (field = 0; field < G_N_ELEMENTS (fields); field ++)
{
- const gchar * pattern = tuple_get_string ((Tuple *) patterns,
- fields[field], NULL);
+ char * pattern = tuple_get_str (patterns, fields[field], NULL);
regex_t regex;
- if (pattern == NULL || pattern[0] == 0)
- continue;
-
- if (regcomp (& regex, pattern, REG_ICASE) != 0)
+ if (! pattern || ! pattern[0] || regcomp (& regex, pattern, REG_ICASE))
+ {
+ str_unref (pattern);
continue;
+ }
for (entry = 0; entry < entries; entry ++)
{
- const Tuple * tuple;
- const gchar * string;
-
if (! playlist_entry_get_selected (playlist, entry))
continue;
- tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
-
- if (tuple == NULL)
- goto NO_MATCH;
-
- string = tuple_get_string ((Tuple *) tuple, fields[field], NULL);
+ Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
+ char * string = tuple ? tuple_get_str (tuple, fields[field], NULL) : NULL;
- if (string == NULL)
- goto NO_MATCH;
+ if (! string || regexec (& regex, string, 0, NULL, 0))
+ playlist_entry_set_selected (playlist, entry, FALSE);
- if (regexec (& regex, string, 0, NULL, 0) == 0)
- continue;
-
- NO_MATCH:
- playlist_entry_set_selected (playlist, entry, FALSE);
+ str_unref (string);
+ if (tuple)
+ tuple_unref (tuple);
}
regfree (& regex);
+ str_unref (pattern);
}
}
-/* The algorithm is a bit quirky for historical reasons. -jlindgren */
-static gchar * make_playlist_path (gint playlist)
+static char * make_playlist_path (int playlist)
{
if (! playlist)
- return g_strdup (get_path (AUD_PATH_PLAYLIST_FILE));
+ return g_strdup_printf ("%s/playlist.xspf", get_path (AUD_PATH_USER_DIR));
return g_strdup_printf ("%s/playlist_%02d.xspf",
get_path (AUD_PATH_PLAYLISTS_DIR), 1 + playlist);
}
-void load_playlists (void)
+static void load_playlists_real (void)
{
- gboolean done = FALSE;
- gint count;
+ /* old (v3.1 and earlier) naming scheme */
- for (count = 0; ! done; count ++)
+ int count;
+ for (count = 0; ; count ++)
{
- gchar * path = make_playlist_path (count);
+ char * path = make_playlist_path (count);
- if (g_file_test (path, G_FILE_TEST_EXISTS))
+ if (! g_file_test (path, G_FILE_TEST_EXISTS))
{
- gchar * uri = filename_to_uri (path);
+ g_free (path);
+ break;
+ }
- if (count)
- playlist_insert (count);
+ char * uri = filename_to_uri (path);
- playlist_insert_playlist (count, 0, uri);
- g_free (uri);
+ playlist_insert (count);
+ playlist_insert_playlist_raw (count, 0, uri);
+ playlist_set_modified (count, TRUE);
+
+ g_free (path);
+ g_free (uri);
+ }
+
+ /* unique ID-based naming scheme */
+
+ char * order_path = g_strdup_printf ("%s/order", get_path (AUD_PATH_PLAYLISTS_DIR));
+ char * order_string;
+ g_file_get_contents (order_path, & order_string, NULL, NULL);
+ g_free (order_path);
+
+ if (! order_string)
+ goto DONE;
+
+ char * * order = g_strsplit (order_string, " ", -1);
+ g_free (order_string);
+
+ for (int i = 0; order[i]; i ++)
+ {
+ char * path = g_strdup_printf ("%s/%s.audpl", get_path (AUD_PATH_PLAYLISTS_DIR), order[i]);
+
+ if (! g_file_test (path, G_FILE_TEST_EXISTS))
+ {
+ g_free (path);
+ path = g_strdup_printf ("%s/%s.xspf", get_path (AUD_PATH_PLAYLISTS_DIR), order[i]);
}
- else
- done = TRUE;
+
+ char * uri = filename_to_uri (path);
+
+ playlist_insert_with_id (count + i, atoi (order[i]));
+ playlist_insert_playlist_raw (count + i, 0, uri);
+ playlist_set_modified (count + i, FALSE);
+
+ if (g_str_has_suffix (path, ".xspf"))
+ playlist_set_modified (count + i, TRUE);
g_free (path);
+ g_free (uri);
}
- playlist_load_state ();
+ g_strfreev (order);
+
+DONE:
+ if (! playlist_count ())
+ playlist_insert (0);
+
+ playlist_set_active (0);
}
-void save_playlists (void)
+static void save_playlists_real (void)
{
- gint playlists = playlist_count ();
- gboolean done = FALSE;
- gint count;
+ int lists = playlist_count ();
+ const char * folder = get_path (AUD_PATH_PLAYLISTS_DIR);
+
+ /* save playlists */
+
+ char * * order = g_malloc (sizeof (char *) * (lists + 1));
+ GHashTable * saved = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- for (count = 0; ! done; count ++)
+ for (int i = 0; i < lists; i ++)
{
- gchar * path = make_playlist_path (count);
+ int id = playlist_get_unique_id (i);
+ order[i] = g_strdup_printf ("%d", id);
- if (count < playlists)
+ if (playlist_get_modified (i))
{
- gchar * uri = filename_to_uri (path);
+ char * path = g_strdup_printf ("%s/%d.audpl", folder, id);
+ char * uri = filename_to_uri (path);
- playlist_save (count, uri);
+ playlist_save (i, uri);
+ playlist_set_modified (i, FALSE);
+
+ g_free (path);
g_free (uri);
}
- else if (g_file_test (path, G_FILE_TEST_EXISTS))
+
+ g_hash_table_insert (saved, g_strdup_printf ("%d.audpl", id), NULL);
+ }
+
+ order[lists] = NULL;
+ char * order_string = g_strjoinv (" ", order);
+ g_strfreev (order);
+
+ GError * error = NULL;
+ char * order_path = g_strdup_printf ("%s/order", get_path (AUD_PATH_PLAYLISTS_DIR));
+
+ char * old_order_string;
+ g_file_get_contents (order_path, & old_order_string, NULL, NULL);
+
+ if (! old_order_string || strcmp (old_order_string, order_string))
+ {
+ if (! g_file_set_contents (order_path, order_string, -1, & error))
+ {
+ fprintf (stderr, "Cannot write to %s: %s\n", order_path, error->message);
+ g_error_free (error);
+ }
+ }
+
+ g_free (order_string);
+ g_free (order_path);
+ g_free (old_order_string);
+
+ /* clean up deleted playlists and files from old naming scheme */
+
+ char * path = make_playlist_path (0);
+ remove (path);
+ g_free (path);
+
+ DIR * dir = opendir (folder);
+ if (! dir)
+ goto DONE;
+
+ struct dirent * entry;
+ while ((entry = readdir (dir)))
+ {
+ if (! g_str_has_suffix (entry->d_name, ".audpl")
+ && ! g_str_has_suffix (entry->d_name, ".xspf"))
+ continue;
+
+ if (! g_hash_table_lookup_extended (saved, entry->d_name, NULL, NULL))
+ {
+ char * path = g_strdup_printf ("%s/%s", folder, entry->d_name);
remove (path);
- else
- done = TRUE;
+ g_free (path);
+ }
+ }
- g_free (path);
+ closedir (dir);
+
+DONE:
+ g_hash_table_destroy (saved);
+}
+
+static bool_t hooks_added, state_changed;
+
+static void update_cb (void * data, void * user)
+{
+ if (GPOINTER_TO_INT (data) < PLAYLIST_UPDATE_METADATA)
+ return;
+
+ state_changed = TRUE;
+}
+
+static void state_cb (void * data, void * user)
+{
+ state_changed = TRUE;
+}
+
+void load_playlists (void)
+{
+ load_playlists_real ();
+ playlist_load_state ();
+
+ state_changed = FALSE;
+
+ if (! hooks_added)
+ {
+ hook_associate ("playlist update", update_cb, NULL);
+ hook_associate ("playlist activate", state_cb, NULL);
+ hook_associate ("playlist position", state_cb, NULL);
+
+ hooks_added = TRUE;
}
+}
- playlist_save_state ();
+void save_playlists (bool_t exiting)
+{
+ save_playlists_real ();
+
+ /* on exit, save resume time if resume feature is enabled */
+ if (state_changed || (exiting && get_bool (NULL, "resume_playback_on_startup")))
+ {
+ playlist_save_state ();
+ state_changed = FALSE;
+ }
+
+ if (exiting && hooks_added)
+ {
+ hook_dissociate ("playlist update", update_cb);
+ hook_dissociate ("playlist activate", state_cb);
+ hook_dissociate ("playlist position", state_cb);
+
+ hooks_added = FALSE;
+ }
}
diff --git a/src/audacious/playlist-utils.h b/src/audacious/playlist-utils.h
deleted file mode 100644
index 7b76130..0000000
--- a/src/audacious/playlist-utils.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * playlist-utils.h
- * Copyright 2009 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_PLAYLIST_UTILS_H
-#define AUDACIOUS_PLAYLIST_UTILS_H
-
-#include <glib.h>
-
-extern const gint n_titlestring_presets;
-
-#endif
diff --git a/src/audacious/playlist.h b/src/audacious/playlist.h
index 9b0b555..52cc3b3 100644
--- a/src/audacious/playlist.h
+++ b/src/audacious/playlist.h
@@ -22,7 +22,8 @@
#ifndef AUDACIOUS_PLAYLIST_H
#define AUDACIOUS_PLAYLIST_H
-#include <glib.h>
+#include <stdint.h>
+
#include <audacious/api.h>
#include <audacious/types.h>
#include <libaudcore/index.h>
@@ -30,17 +31,16 @@
/* The values which can be passed (packed into a pointer) to the "playlist
* update" hook. PLAYLIST_UPDATE_SELECTION means that entries have been
- * selected or unselected, entries have been added or removed from the queue,
- * or that the current song has changed. PLAYLIST_UPDATE_METADATA means that
- * new metadata has been read for some entries, and implies
- * PLAYLIST_UPDATE_SELECTION. PLAYLIST_UPDATE_STRUCTURE covers any change not
- * listed under the other types, and implies both PLAYLIST_UPDATE_SELECTION and
- * PLAYLIST_UPDATE_METADATA. */
+ * selected or unselected, or that entries have been added to or removed from
+ * the queue. PLAYLIST_UPDATE_METADATA means that new metadata has been read
+ * for some entries, or that the title or filename of a playlist has changed,
+ * and implies PLAYLIST_UPDATE_SELECTION. PLAYLIST_UPDATE_STRUCTURE covers any
+ * change not listed under the other types, and implies both
+ * PLAYLIST_UPDATE_SELECTION and PLAYLIST_UPDATE_METADATA. */
enum {
- PLAYLIST_UPDATE_SELECTION,
+ PLAYLIST_UPDATE_SELECTION = 1,
PLAYLIST_UPDATE_METADATA,
- PLAYLIST_UPDATE_STRUCTURE,
- PLAYLIST_UPDATE_TYPES};
+ PLAYLIST_UPDATE_STRUCTURE};
/* The values which can be passed to playlist_sort_by_scheme(),
* playlist_sort_selected_by_scheme(), and
@@ -59,9 +59,9 @@ enum {
PLAYLIST_SORT_FORMATTED_TITLE,
PLAYLIST_SORT_SCHEMES};
-#define PlaylistFilenameCompareFunc PlaylistStringCompareFunc /* deprecated */
-typedef gint (* PlaylistStringCompareFunc) (const gchar * a, const gchar * b);
-typedef gint (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b);
+typedef bool_t (* PlaylistFilterFunc) (const char * filename, void * user);
+typedef int (* PlaylistStringCompareFunc) (const char * a, const char * b);
+typedef int (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b);
#define AUD_API_NAME PlaylistAPI
#define AUD_API_SYMBOL playlist_api
@@ -72,28 +72,47 @@ typedef gint (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b);
#include "playlist-api.h"
#include "api-local-end.h"
+/* playlist-files.c */
+bool_t playlist_load (const char * filename, char * * title,
+ Index * * filenames, Index * * tuples);
+bool_t playlist_insert_playlist_raw (int list, int at,
+ const char * filename);
+
/* playlist-new.c */
void playlist_init (void);
void playlist_end (void);
+
+void playlist_insert_with_id (int at, int id);
+void playlist_set_modified (int playlist, bool_t modified);
+bool_t playlist_get_modified (int playlist);
+
void playlist_load_state (void);
void playlist_save_state (void);
+void playlist_resume (void);
void playlist_reformat_titles (void);
+void playlist_trigger_scan (void);
+
+void playlist_entry_insert_batch_raw (int playlist, int at,
+ Index * filenames, Index * tuples, Index * decoders);
+
+bool_t playlist_prev_song (int playlist);
+bool_t playlist_next_song (int playlist, bool_t repeat);
-void playlist_entry_insert_batch_with_decoders (gint playlist, gint at,
- struct index * filenames, struct index * decoders, struct index * tuples);
-void playlist_entry_set_tuple (gint playlist, gint entry, Tuple * tuple);
+int playback_entry_get_position (void);
+PluginHandle * playback_entry_get_decoder (void);
+Tuple * playback_entry_get_tuple (void);
+char * playback_entry_get_title (void);
+int playback_entry_get_length (void);
-gboolean playlist_entry_is_segmented (gint playlist, gint entry);
-gint playlist_entry_get_start_time (gint playlist, gint entry);
-gint playlist_entry_get_end_time (gint playlist, gint entry);
+void playback_entry_set_tuple (Tuple * tuple);
-gboolean playlist_prev_song (gint playlist);
-gboolean playlist_next_song (gint playlist, gboolean repeat);
+int playback_entry_get_start_time (void);
+int playback_entry_get_end_time (void);
/* playlist-utils.c */
-void save_playlists (void);
void load_playlists (void);
+void save_playlists (bool_t exiting);
#else
diff --git a/src/audacious/plugin-init.c b/src/audacious/plugin-init.c
index a12ea11..dd1e692 100644
--- a/src/audacious/plugin-init.c
+++ b/src/audacious/plugin-init.c
@@ -1,6 +1,6 @@
/*
* plugin-init.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -19,6 +19,7 @@
* using our public API to be a derived work.
*/
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
@@ -28,13 +29,14 @@
#include "effect.h"
#include "general.h"
#include "interface.h"
+#include "main.h"
#include "output.h"
#include "plugin.h"
#include "plugins.h"
#include "ui_preferences.h"
#include "visualization.h"
-static gboolean dummy_plugin_start (PluginHandle * p)
+static bool_t dummy_plugin_start (PluginHandle * p)
{
return TRUE;
}
@@ -44,23 +46,22 @@ static void dummy_plugin_stop (PluginHandle * p)
}
static const struct {
- const gchar * name;
- gboolean is_managed, is_single;
+ const char * name;
+ bool_t is_managed, is_single;
union {
struct {
- gboolean (* start) (PluginHandle * plugin);
+ bool_t (* start) (PluginHandle * plugin);
void (* stop) (PluginHandle * plugin);
} m;
struct {
PluginHandle * (* probe) (void);
PluginHandle * (* get_current) (void);
- gboolean (* set_current) (PluginHandle * plugin);
+ bool_t (* set_current) (PluginHandle * plugin);
} s;
} u;
} table[PLUGIN_TYPES] = {
- [PLUGIN_TYPE_LOWLEVEL] = {"lowlevel", FALSE},
[PLUGIN_TYPE_TRANSPORT] = {"transport", TRUE, FALSE, .u.m =
{dummy_plugin_start, dummy_plugin_stop}},
[PLUGIN_TYPE_PLAYLIST] = {"playlist", TRUE, FALSE, .u.m = {dummy_plugin_start,
@@ -78,20 +79,20 @@ static const struct {
[PLUGIN_TYPE_IFACE] = {"interface", TRUE, TRUE, .u.s = {iface_plugin_probe,
iface_plugin_get_current, iface_plugin_set_current}}};
-static gboolean find_enabled_cb (PluginHandle * p, PluginHandle * * pp)
+static bool_t find_enabled_cb (PluginHandle * p, PluginHandle * * pp)
{
* pp = p;
return FALSE;
}
-static PluginHandle * find_enabled (gint type)
+static PluginHandle * find_enabled (int type)
{
PluginHandle * p = NULL;
plugin_for_enabled (type, (PluginForEachFunc) find_enabled_cb, & p);
return p;
}
-static void start_single (gint type)
+static void start_single (int type)
{
PluginHandle * p;
@@ -126,7 +127,7 @@ static void start_single (gint type)
}
}
-static gboolean start_multi_cb (PluginHandle * p, void * type)
+static bool_t start_multi_cb (PluginHandle * p, void * type)
{
AUDDBG ("Starting %s.\n", plugin_get_name (p));
@@ -139,10 +140,12 @@ static gboolean start_multi_cb (PluginHandle * p, void * type)
return TRUE;
}
-static void start_plugins (gint type)
+static void start_plugins (int type)
{
if (! table[type].is_managed)
return;
+ if (headless && type == PLUGIN_TYPE_IFACE)
+ return;
if (table[type].is_single)
start_single (type);
@@ -151,14 +154,14 @@ static void start_plugins (gint type)
GINT_TO_POINTER (type));
}
-static VFSConstructor * lookup_transport (const gchar * scheme)
+static VFSConstructor * lookup_transport (const char * scheme)
{
PluginHandle * plugin = transport_plugin_for_scheme (scheme);
if (! plugin)
return NULL;
TransportPlugin * tp = plugin_get_header (plugin);
- return tp->vtable;
+ return tp ? tp->vtable : NULL;
}
void start_plugins_one (void)
@@ -166,27 +169,29 @@ void start_plugins_one (void)
plugin_system_init ();
vfs_set_lookup_func (lookup_transport);
- for (gint i = 0; i < PLUGIN_TYPE_GENERAL; i ++)
+ for (int i = 0; i < PLUGIN_TYPE_GENERAL; i ++)
start_plugins (i);
}
void start_plugins_two (void)
{
- for (gint i = PLUGIN_TYPE_GENERAL; i < PLUGIN_TYPES; i ++)
+ for (int i = PLUGIN_TYPE_GENERAL; i < PLUGIN_TYPES; i ++)
start_plugins (i);
}
-static gboolean stop_multi_cb (PluginHandle * p, void * type)
+static bool_t stop_multi_cb (PluginHandle * p, void * type)
{
AUDDBG ("Shutting down %s.\n", plugin_get_name (p));
table[GPOINTER_TO_INT (type)].u.m.stop (p);
return TRUE;
}
-static void stop_plugins (gint type)
+static void stop_plugins (int type)
{
if (! table[type].is_managed)
return;
+ if (headless && type == PLUGIN_TYPE_IFACE)
+ return;
if (table[type].is_single)
{
@@ -201,26 +206,26 @@ static void stop_plugins (gint type)
void stop_plugins_two (void)
{
- for (gint i = PLUGIN_TYPES - 1; i >= PLUGIN_TYPE_GENERAL; i --)
+ for (int i = PLUGIN_TYPES - 1; i >= PLUGIN_TYPE_GENERAL; i --)
stop_plugins (i);
}
void stop_plugins_one (void)
{
- for (gint i = PLUGIN_TYPE_GENERAL - 1; i >= 0; i --)
+ for (int i = PLUGIN_TYPE_GENERAL - 1; i >= 0; i --)
stop_plugins (i);
vfs_set_lookup_func (NULL);
plugin_system_cleanup ();
}
-PluginHandle * plugin_get_current (gint type)
+PluginHandle * plugin_get_current (int type)
{
g_return_val_if_fail (table[type].is_managed && table[type].is_single, NULL);
return table[type].u.s.get_current ();
}
-static gboolean enable_single (gint type, PluginHandle * p)
+static bool_t enable_single (int type, PluginHandle * p)
{
PluginHandle * old = table[type].u.s.get_current ();
@@ -245,7 +250,7 @@ static gboolean enable_single (gint type, PluginHandle * p)
exit (EXIT_FAILURE);
}
-static gboolean enable_multi (gint type, PluginHandle * p, gboolean enable)
+static bool_t enable_multi (int type, PluginHandle * p, bool_t enable)
{
AUDDBG ("%sabling %s.\n", enable ? "En" : "Dis", plugin_get_name (p));
plugin_set_enabled (p, enable);
@@ -265,7 +270,7 @@ static gboolean enable_multi (gint type, PluginHandle * p, gboolean enable)
return TRUE;
}
-gboolean plugin_enable (PluginHandle * plugin, gboolean enable)
+bool_t plugin_enable (PluginHandle * plugin, bool_t enable)
{
if (! enable == ! plugin_get_enabled (plugin))
{
@@ -274,7 +279,7 @@ gboolean plugin_enable (PluginHandle * plugin, gboolean enable)
return TRUE;
}
- gint type = plugin_get_type (plugin);
+ int type = plugin_get_type (plugin);
g_return_val_if_fail (table[type].is_managed, FALSE);
if (table[type].is_single)
@@ -286,7 +291,8 @@ gboolean plugin_enable (PluginHandle * plugin, gboolean enable)
return enable_multi (type, plugin, enable);
}
-/* This doesn't really belong here, but it's a bit of an oddball. */
+/* Miscellaneous plugin-related functions ... */
+
PluginHandle * plugin_by_widget (/* GtkWidget * */ void * widget)
{
PluginHandle * p;
@@ -296,3 +302,15 @@ PluginHandle * plugin_by_widget (/* GtkWidget * */ void * widget)
return p;
return NULL;
}
+
+int plugin_send_message (PluginHandle * plugin, const char * code, const void * data, int size)
+{
+ if (! plugin_get_enabled (plugin))
+ return ENOSYS;
+
+ Plugin * header = plugin_get_header (plugin);
+ if (! header || ! PLUGIN_HAS_FUNC (header, take_message))
+ return ENOSYS;
+
+ return header->take_message (code, data, size);
+}
diff --git a/src/audacious/plugin-registry.c b/src/audacious/plugin-registry.c
index 59b5464..7baa2e8 100644
--- a/src/audacious/plugin-registry.c
+++ b/src/audacious/plugin-registry.c
@@ -1,6 +1,6 @@
/*
* plugin-registry.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -19,8 +19,15 @@
* using our public API to be a derived work.
*/
+/* While the registry is being built (during early startup) or destroyed (during
+ * late shutdown), the registry_locked flag will be set. Once this flag is
+ * cleared, the registry will not be modified and can be read by concurrent
+ * threads. The one change that can happen during this time is that a plugin is
+ * loaded; hence the mutex must be locked before checking that a plugin is
+ * loaded and while loading it. */
+
#include <glib.h>
-#include <limits.h>
+#include <pthread.h>
#include <stdio.h>
#include <string.h>
@@ -34,15 +41,7 @@
#include "util.h"
#define FILENAME "plugin-registry"
-#define FORMAT 5
-
-typedef struct {
- gchar * path;
- gboolean confirmed;
- gint timestamp;
- gboolean loaded;
- GList * plugin_list;
-} ModuleData;
+#define FORMAT 6
typedef struct {
GList * schemes;
@@ -54,17 +53,17 @@ typedef struct {
typedef struct {
GList * keys[INPUT_KEYS];
- gboolean has_images, has_subtunes, can_write_tuple, has_infowin;
+ bool_t has_images, has_subtunes, can_write_tuple, has_infowin;
} InputPluginData;
struct PluginHandle {
- ModuleData * module;
- gint type, number;
- gboolean confirmed;
- const void * header;
- gchar * name;
- gint priority;
- gboolean has_about, has_configure, enabled;
+ char * path;
+ bool_t confirmed, loaded;
+ int timestamp, type;
+ Plugin * header;
+ char * name;
+ int priority;
+ bool_t has_about, has_configure, enabled;
GList * watches;
union {
@@ -79,8 +78,7 @@ typedef struct {
void * data;
} PluginWatch;
-static const gchar * plugin_type_names[] = {
- [PLUGIN_TYPE_LOWLEVEL] = NULL,
+static const char * plugin_type_names[] = {
[PLUGIN_TYPE_TRANSPORT] = "transport",
[PLUGIN_TYPE_PLAYLIST] = "playlist",
[PLUGIN_TYPE_INPUT] = "input",
@@ -89,39 +87,26 @@ static const gchar * plugin_type_names[] = {
[PLUGIN_TYPE_VIS] = "vis",
[PLUGIN_TYPE_GENERAL] = "general",
[PLUGIN_TYPE_IFACE] = "iface"};
-static const gchar * input_key_names[] = {
+
+static const char * input_key_names[] = {
[INPUT_KEY_SCHEME] = "scheme",
[INPUT_KEY_EXTENSION] = "ext",
[INPUT_KEY_MIME] = "mime"};
-static GList * module_list = NULL;
-static GList * plugin_list = NULL;
-static gboolean registry_locked = TRUE;
-
-static ModuleData * module_new (gchar * path, gboolean confirmed, gint
- timestamp, gboolean loaded)
-{
- ModuleData * module = g_malloc (sizeof (ModuleData));
-
- module->path = path;
- module->confirmed = confirmed;
- module->timestamp = timestamp;
- module->loaded = loaded;
- module->plugin_list = NULL;
- module_list = g_list_prepend (module_list, module);
-
- return module;
-}
+static GList * plugin_list = NULL;
+static bool_t registry_locked = TRUE;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-static PluginHandle * plugin_new (ModuleData * module, gint type, gint number,
- gboolean confirmed, const void * header)
+static PluginHandle * plugin_new (char * path, bool_t confirmed, bool_t
+ loaded, int timestamp, int type, Plugin * header)
{
PluginHandle * plugin = g_malloc (sizeof (PluginHandle));
- plugin->module = module;
- plugin->type = type;
- plugin->number = number;
+ plugin->path = path;
plugin->confirmed = confirmed;
+ plugin->loaded = loaded;
+ plugin->timestamp = timestamp;
+ plugin->type = type;
plugin->header = header;
plugin->name = NULL;
plugin->priority = 0;
@@ -151,15 +136,12 @@ static PluginHandle * plugin_new (ModuleData * module, gint type, gint number,
}
plugin_list = g_list_prepend (plugin_list, plugin);
- module->plugin_list = g_list_prepend (module->plugin_list, plugin);
-
return plugin;
}
-static void plugin_free (PluginHandle * plugin, ModuleData * module)
+static void plugin_free (PluginHandle * plugin)
{
plugin_list = g_list_remove (plugin_list, plugin);
- module->plugin_list = g_list_remove (module->plugin_list, plugin);
g_list_foreach (plugin->watches, (GFunc) g_free, NULL);
g_list_free (plugin->watches);
@@ -176,53 +158,44 @@ static void plugin_free (PluginHandle * plugin, ModuleData * module)
}
else if (plugin->type == PLUGIN_TYPE_INPUT)
{
- for (gint key = 0; key < INPUT_KEYS; key ++)
+ for (int key = 0; key < INPUT_KEYS; key ++)
{
g_list_foreach (plugin->u.i.keys[key], (GFunc) g_free, NULL);
g_list_free (plugin->u.i.keys[key]);
}
}
+ g_free (plugin->path);
g_free (plugin->name);
g_free (plugin);
}
-static void module_free (ModuleData * module)
+static FILE * open_registry_file (const char * mode)
{
- module_list = g_list_remove (module_list, module);
-
- g_list_foreach (module->plugin_list, (GFunc) plugin_free, module);
-
- g_free (module->path);
- g_free (module);
-}
-
-static FILE * open_registry_file (const gchar * mode)
-{
- gchar path[PATH_MAX];
- snprintf (path, sizeof path, "%s/" FILENAME, get_path (AUD_PATH_USER_DIR));
- return fopen (path, mode);
+ char * path = g_strdup_printf ("%s/" FILENAME, get_path (AUD_PATH_USER_DIR));
+ FILE * file = fopen (path, mode);
+ g_free (path);
+ return file;
}
static void transport_plugin_save (PluginHandle * plugin, FILE * handle)
{
for (GList * node = plugin->u.t.schemes; node; node = node->next)
- fprintf (handle, "scheme %s\n", (const gchar *) node->data);
+ fprintf (handle, "scheme %s\n", (const char *) node->data);
}
static void playlist_plugin_save (PluginHandle * plugin, FILE * handle)
{
for (GList * node = plugin->u.p.exts; node; node = node->next)
- fprintf (handle, "ext %s\n", (const gchar *) node->data);
+ fprintf (handle, "ext %s\n", (const char *) node->data);
}
static void input_plugin_save (PluginHandle * plugin, FILE * handle)
{
- for (gint key = 0; key < INPUT_KEYS; key ++)
+ for (int key = 0; key < INPUT_KEYS; key ++)
{
- for (GList * node = plugin->u.i.keys[key]; node != NULL; node =
- node->next)
- fprintf (handle, "%s %s\n", input_key_names[key], (const gchar *)
+ for (GList * node = plugin->u.i.keys[key]; node; node = node->next)
+ fprintf (handle, "%s %s\n", input_key_names[key], (const char *)
node->data);
}
@@ -234,7 +207,8 @@ static void input_plugin_save (PluginHandle * plugin, FILE * handle)
static void plugin_save (PluginHandle * plugin, FILE * handle)
{
- fprintf (handle, "%s %d\n", plugin_type_names[plugin->type], plugin->number);
+ fprintf (handle, "%s %s\n", plugin_type_names[plugin->type], plugin->path);
+ fprintf (handle, "stamp %d\n", plugin->timestamp);
fprintf (handle, "name %s\n", plugin->name);
fprintf (handle, "priority %d\n", plugin->priority);
fprintf (handle, "about %d\n", plugin->has_about);
@@ -249,78 +223,57 @@ static void plugin_save (PluginHandle * plugin, FILE * handle)
input_plugin_save (plugin, handle);
}
-static gint plugin_not_handled_cb (PluginHandle * plugin)
-{
- return (plugin_type_names[plugin->type] == NULL) ? 0 : -1;
-}
-
-static void module_save (ModuleData * module, FILE * handle)
-{
- /* If the module contains any plugins that we do not handle, we do not save
- * it, thereby forcing it to be loaded on next startup. If the module
- * appears to contain no plugins at all, we can assume that it failed to
- * load, in which case we also want to try to load it again. */
- if (! module->plugin_list || g_list_find_custom (module->plugin_list, NULL,
- (GCompareFunc) plugin_not_handled_cb) != NULL)
- return;
-
- fprintf (handle, "module %s\n", module->path);
- fprintf (handle, "stamp %d\n", module->timestamp);
-
- g_list_foreach (module->plugin_list, (GFunc) plugin_save, handle);
-}
-
void plugin_registry_save (void)
{
FILE * handle = open_registry_file ("w");
- g_return_if_fail (handle != NULL);
+ g_return_if_fail (handle);
fprintf (handle, "format %d\n", FORMAT);
- g_list_foreach (module_list, (GFunc) module_save, handle);
+ g_list_foreach (plugin_list, (GFunc) plugin_save, handle);
fclose (handle);
- g_list_foreach (module_list, (GFunc) module_free, NULL);
+ g_list_foreach (plugin_list, (GFunc) plugin_free, NULL);
registry_locked = TRUE;
}
-static gchar parse_key[512];
-static gchar * parse_value;
+static char parse_key[512];
+static char * parse_value;
static void parse_next (FILE * handle)
{
parse_value = NULL;
- if (fgets (parse_key, sizeof parse_key, handle) == NULL)
+ if (! fgets (parse_key, sizeof parse_key, handle))
return;
- gchar * space = strchr (parse_key, ' ');
- if (space == NULL)
+ char * space = strchr (parse_key, ' ');
+ if (! space)
return;
* space = 0;
parse_value = space + 1;
- gchar * newline = strchr (parse_value, '\n');
- if (newline != NULL)
+ char * newline = strchr (parse_value, '\n');
+ if (newline)
* newline = 0;
}
-static gboolean parse_integer (const gchar * key, gint * value)
+static bool_t parse_integer (const char * key, int * value)
{
- return (parse_value != NULL && ! strcmp (parse_key, key) && sscanf
- (parse_value, "%d", value) == 1);
+ return (parse_value && ! strcmp (parse_key, key) && sscanf (parse_value,
+ "%d", value) == 1);
}
-static gchar * parse_string (const gchar * key)
+static char * parse_string (const char * key)
{
- return (parse_value != NULL && ! strcmp (parse_key, key)) ? g_strdup
- (parse_value) : NULL;
+ return (parse_value && ! strcmp (parse_key, key)) ? g_strdup (parse_value) :
+ NULL;
}
static void transport_plugin_parse (PluginHandle * plugin, FILE * handle)
{
- gchar * value;
+ char * value;
while ((value = parse_string ("scheme")))
{
plugin->u.t.schemes = g_list_prepend (plugin->u.t.schemes, value);
@@ -330,7 +283,7 @@ static void transport_plugin_parse (PluginHandle * plugin, FILE * handle)
static void playlist_plugin_parse (PluginHandle * plugin, FILE * handle)
{
- gchar * value;
+ char * value;
while ((value = parse_string ("ext")))
{
plugin->u.p.exts = g_list_prepend (plugin->u.p.exts, value);
@@ -340,10 +293,10 @@ static void playlist_plugin_parse (PluginHandle * plugin, FILE * handle)
static void input_plugin_parse (PluginHandle * plugin, FILE * handle)
{
- for (gint key = 0; key < INPUT_KEYS; key ++)
+ for (int key = 0; key < INPUT_KEYS; key ++)
{
- gchar * value;
- while ((value = parse_string (input_key_names[key])) != NULL)
+ char * value;
+ while ((value = parse_string (input_key_names[key])))
{
plugin->u.i.keys[key] = g_list_prepend (plugin->u.i.keys[key],
value);
@@ -361,23 +314,34 @@ static void input_plugin_parse (PluginHandle * plugin, FILE * handle)
parse_next (handle);
}
-static gboolean plugin_parse (ModuleData * module, FILE * handle)
+static bool_t plugin_parse (FILE * handle)
{
- gint type, number;
+ char * path = NULL;
+
+ int type;
for (type = 0; type < PLUGIN_TYPES; type ++)
{
- if (plugin_type_names[type] != NULL && parse_integer
- (plugin_type_names[type], & number))
+ if ((path = parse_string (plugin_type_names[type])))
goto FOUND;
}
return FALSE;
-FOUND:;
- PluginHandle * plugin = plugin_new (module, type, number, FALSE, NULL);
+FOUND:
parse_next (handle);
- if ((plugin->name = parse_string ("name")) != NULL)
+ int timestamp;
+ if (! parse_integer ("stamp", & timestamp))
+ {
+ g_free (path);
+ return FALSE;
+ }
+
+ PluginHandle * plugin = plugin_new (path, FALSE, FALSE, timestamp, type,
+ NULL);
+ parse_next (handle);
+
+ if ((plugin->name = parse_string ("name")))
parse_next (handle);
if (parse_integer ("priority", & plugin->priority))
parse_next (handle);
@@ -398,45 +362,21 @@ FOUND:;
return TRUE;
}
-static gboolean module_parse (FILE * handle)
-{
- gchar * path = parse_string ("module");
- if (path == NULL)
- return FALSE;
-
- parse_next (handle);
-
- gint timestamp;
- if (! parse_integer ("stamp", & timestamp))
- {
- g_free (path);
- return FALSE;
- }
-
- ModuleData * module = module_new (path, FALSE, timestamp, FALSE);
- parse_next (handle);
-
- while (plugin_parse (module, handle))
- ;
-
- return TRUE;
-}
-
void plugin_registry_load (void)
{
FILE * handle = open_registry_file ("r");
- if (handle == NULL)
+ if (! handle)
goto UNLOCK;
parse_next (handle);
- gint format;
+ int format;
if (! parse_integer ("format", & format) || format != FORMAT)
goto ERR;
parse_next (handle);
- while (module_parse (handle))
+ while (plugin_parse (handle))
;
ERR:
@@ -445,30 +385,16 @@ UNLOCK:
registry_locked = FALSE;
}
-static void plugin_prune (PluginHandle * plugin, ModuleData * module)
+static void plugin_prune (PluginHandle * plugin)
{
if (plugin->confirmed)
return;
- AUDDBG ("Plugin not found: %s %d:%d\n", plugin->module->path, plugin->type,
- plugin->number);
- plugin_free (plugin, module);
+ AUDDBG ("Plugin not found: %s\n", plugin->path);
+ plugin_free (plugin);
}
-static void module_prune (ModuleData * module)
-{
- if (! module->confirmed)
- {
- AUDDBG ("Module not found: %s\n", module->path);
- module_free (module);
- return;
- }
-
- if (module->loaded)
- g_list_foreach (module->plugin_list, (GFunc) plugin_prune, module);
-}
-
-gint plugin_compare (PluginHandle * a, PluginHandle * b)
+int plugin_compare (PluginHandle * a, PluginHandle * b)
{
if (a->type < b->type)
return -1;
@@ -479,205 +405,209 @@ gint plugin_compare (PluginHandle * a, PluginHandle * b)
if (a->priority > b->priority)
return 1;
- gint diff;
+ int diff;
if ((diff = string_compare (a->name, b->name)))
return diff;
- if ((diff = string_compare (a->module->path, b->module->path)))
- return diff;
-
- if (a->number < b->number)
- return -1;
- if (a->number > b->number)
- return 1;
- return 0;
+ return string_compare (a->path, b->path);
}
void plugin_registry_prune (void)
{
- g_list_foreach (module_list, (GFunc) module_prune, NULL);
+ g_list_foreach (plugin_list, (GFunc) plugin_prune, NULL);
plugin_list = g_list_sort (plugin_list, (GCompareFunc) plugin_compare);
registry_locked = TRUE;
}
-static gint module_lookup_cb (ModuleData * module, const gchar * path)
+static int plugin_lookup_cb (PluginHandle * plugin, const char * path)
{
- return strcmp (module->path, path);
+ return strcmp (plugin->path, path);
}
-static ModuleData * module_lookup (const gchar * path)
+PluginHandle * plugin_lookup (const char * path)
{
- GList * node = g_list_find_custom (module_list, path, (GCompareFunc)
- module_lookup_cb);
- return (node != NULL) ? node->data : NULL;
+ GList * node = g_list_find_custom (plugin_list, path, (GCompareFunc)
+ plugin_lookup_cb);
+ return node ? node->data : NULL;
}
-void module_register (const gchar * path)
+static int plugin_lookup_basename_cb (PluginHandle * plugin, const char * basename)
{
- gint timestamp = file_get_mtime (path);
- g_return_if_fail (timestamp >= 0);
+ char * test = g_path_get_basename (plugin->path);
- ModuleData * module = module_lookup (path);
- if (module == NULL)
- {
- AUDDBG ("New module: %s\n", path);
- g_return_if_fail (! registry_locked);
- module = module_new (g_strdup (path), TRUE, timestamp, TRUE);
- module_load (path);
- module->loaded = TRUE;
- return;
- }
+ char * dot = strrchr (test, '.');
+ if (dot)
+ * dot = 0;
- AUDDBG ("Register module: %s\n", path);
- module->confirmed = TRUE;
- if (module->timestamp == timestamp)
- return;
+ int ret = strcmp (test, basename);
- AUDDBG ("Rescan module: %s\n", path);
- module->timestamp = timestamp;
- module_load (path);
- module->loaded = TRUE;
+ g_free (test);
+ return ret;
}
-typedef struct {
- gint type, number;
-} PluginLookupState;
-
-static gint plugin_lookup_cb (PluginHandle * plugin, PluginLookupState * state)
+/* Note: If there are multiple plugins with the same basename, this returns only
+ * one of them. So give different plugins different basenames. --jlindgren */
+PluginHandle * plugin_lookup_basename (const char * basename)
{
- return (plugin->type == state->type && plugin->number == state->number) ? 0
- : -1;
+ GList * node = g_list_find_custom (plugin_list, basename, (GCompareFunc)
+ plugin_lookup_basename_cb);
+ return node ? node->data : NULL;
}
-static PluginHandle * plugin_lookup_real (ModuleData * module, gint type, gint
- number)
+void plugin_register (const char * path)
{
- PluginLookupState state = {type, number};
- GList * node = g_list_find_custom (module->plugin_list, & state,
- (GCompareFunc) plugin_lookup_cb);
- return (node != NULL) ? node->data : NULL;
+ PluginHandle * plugin = plugin_lookup (path);
+ if (! plugin)
+ {
+ AUDDBG ("New plugin: %s\n", path);
+ plugin_load (path);
+ return;
+ }
+
+ int timestamp = file_get_mtime (path);
+ g_return_if_fail (timestamp >= 0);
+
+ AUDDBG ("Register plugin: %s\n", path);
+ plugin->confirmed = TRUE;
+
+ if (plugin->timestamp == timestamp)
+ return;
+
+ AUDDBG ("Rescan plugin: %s\n", path);
+ plugin->timestamp = timestamp;
+ plugin_load (path);
}
-void plugin_register (gint type, const gchar * path, gint number, const void *
- header)
+void plugin_register_loaded (const char * path, Plugin * header)
{
- ModuleData * module = module_lookup (path);
- g_return_if_fail (module != NULL);
+ AUDDBG ("Loaded plugin: %s\n", path);
+ PluginHandle * plugin = plugin_lookup (path);
+ bool_t new = FALSE;
- PluginHandle * plugin = plugin_lookup_real (module, type, number);
- if (plugin == NULL)
+ if (plugin)
{
- AUDDBG ("New plugin: %s %d:%d\n", path, type, number);
- g_return_if_fail (! registry_locked);
- plugin = plugin_new (module, type, number, TRUE, header);
- }
+ g_return_if_fail (plugin->type == header->type);
- AUDDBG ("Register plugin: %s %d:%d\n", path, type, number);
- plugin->confirmed = TRUE;
- plugin->header = header;
+ plugin->loaded = TRUE;
+ plugin->header = header;
- if (type != PLUGIN_TYPE_LOWLEVEL && type != PLUGIN_TYPE_IFACE)
+ if (registry_locked)
+ return;
+ }
+ else
{
- Plugin * gp = header;
- g_free (plugin->name);
- plugin->name = g_strdup (gp->description);
- plugin->has_about = (gp->about != NULL);
- plugin->has_configure = (gp->configure != NULL || gp->settings != NULL);
+ g_return_if_fail (! registry_locked);
+
+ int timestamp = file_get_mtime (path);
+ g_return_if_fail (timestamp >= 0);
+
+ plugin = plugin_new (g_strdup (path), TRUE, TRUE, timestamp,
+ header->type, header);
+ new = TRUE;
}
- if (type == PLUGIN_TYPE_TRANSPORT)
+ g_free (plugin->name);
+ plugin->name = g_strdup (header->name);
+ plugin->has_about = PLUGIN_HAS_FUNC (header, about);
+ plugin->has_configure = PLUGIN_HAS_FUNC (header, configure) ||
+ PLUGIN_HAS_FUNC (header, settings);
+
+ if (header->type == PLUGIN_TYPE_TRANSPORT)
{
- TransportPlugin * tp = header;
- for (gint i = 0; tp->schemes[i]; i ++)
+ TransportPlugin * tp = (TransportPlugin *) header;
+ for (int i = 0; tp->schemes[i]; i ++)
plugin->u.t.schemes = g_list_prepend (plugin->u.t.schemes, g_strdup
(tp->schemes[i]));
}
- else if (type == PLUGIN_TYPE_PLAYLIST)
+ else if (header->type == PLUGIN_TYPE_PLAYLIST)
{
- PlaylistPlugin * pp = header;
- for (gint i = 0; pp->extensions[i]; i ++)
+ PlaylistPlugin * pp = (PlaylistPlugin *) header;
+ for (int i = 0; pp->extensions[i]; i ++)
plugin->u.p.exts = g_list_prepend (plugin->u.p.exts, g_strdup
(pp->extensions[i]));
}
- else if (type == PLUGIN_TYPE_INPUT)
+ else if (header->type == PLUGIN_TYPE_INPUT)
{
- InputPlugin * ip = header;
+ InputPlugin * ip = (InputPlugin *) header;
plugin->priority = ip->priority;
- for (gint key = 0; key < INPUT_KEYS; key ++)
+ for (int key = 0; key < INPUT_KEYS; key ++)
{
g_list_foreach (plugin->u.i.keys[key], (GFunc) g_free, NULL);
g_list_free (plugin->u.i.keys[key]);
plugin->u.i.keys[key] = NULL;
}
- if (ip->vfs_extensions != NULL)
+ if (PLUGIN_HAS_FUNC (ip, extensions))
{
- for (gint i = 0; ip->vfs_extensions[i] != NULL; i ++)
+ for (int i = 0; ip->extensions[i]; i ++)
plugin->u.i.keys[INPUT_KEY_EXTENSION] = g_list_prepend
(plugin->u.i.keys[INPUT_KEY_EXTENSION], g_strdup
- (ip->vfs_extensions[i]));
+ (ip->extensions[i]));
}
- plugin->u.i.has_images = (ip->get_song_image != NULL);
+ if (PLUGIN_HAS_FUNC (ip, mimes))
+ {
+ for (int i = 0; ip->mimes[i]; i ++)
+ plugin->u.i.keys[INPUT_KEY_MIME] = g_list_prepend
+ (plugin->u.i.keys[INPUT_KEY_MIME], g_strdup (ip->mimes[i]));
+ }
+
+ if (PLUGIN_HAS_FUNC (ip, schemes))
+ {
+ for (int i = 0; ip->schemes[i]; i ++)
+ plugin->u.i.keys[INPUT_KEY_SCHEME] = g_list_prepend
+ (plugin->u.i.keys[INPUT_KEY_SCHEME], g_strdup (ip->schemes[i]));
+ }
+
+ plugin->u.i.has_images = PLUGIN_HAS_FUNC (ip, get_song_image);
plugin->u.i.has_subtunes = ip->have_subtune;
- plugin->u.i.can_write_tuple = (ip->update_song_tuple != NULL);
- plugin->u.i.has_infowin = (ip->file_info_box != NULL);
+ plugin->u.i.can_write_tuple = PLUGIN_HAS_FUNC (ip, update_song_tuple);
+ plugin->u.i.has_infowin = PLUGIN_HAS_FUNC (ip, file_info_box);
}
- else if (type == PLUGIN_TYPE_OUTPUT)
+ else if (header->type == PLUGIN_TYPE_OUTPUT)
{
- OutputPlugin * op = header;
+ OutputPlugin * op = (OutputPlugin *) header;
plugin->priority = 10 - op->probe_priority;
}
- else if (type == PLUGIN_TYPE_EFFECT)
+ else if (header->type == PLUGIN_TYPE_EFFECT)
{
- EffectPlugin * ep = header;
+ EffectPlugin * ep = (EffectPlugin *) header;
plugin->priority = ep->order;
}
- else if (type == PLUGIN_TYPE_IFACE)
+ else if (header->type == PLUGIN_TYPE_GENERAL)
{
- Iface * i = (void *) header;
- g_free (plugin->name);
- plugin->name = g_strdup (i->desc);
+ GeneralPlugin * gp = (GeneralPlugin *) header;
+ if (new)
+ plugin->enabled = gp->enabled_by_default;
}
}
-gint plugin_get_type (PluginHandle * plugin)
+int plugin_get_type (PluginHandle * plugin)
{
return plugin->type;
}
-const gchar * plugin_get_filename (PluginHandle * plugin)
-{
- return plugin->module->path;
-}
-
-gint plugin_get_number (PluginHandle * plugin)
+const char * plugin_get_filename (PluginHandle * plugin)
{
- return plugin->number;
-}
-
-PluginHandle * plugin_lookup (gint type, const gchar * path, gint number)
-{
- ModuleData * module = module_lookup (path);
- if (module == NULL)
- return NULL;
-
- return plugin_lookup_real (module, type, number);
+ return plugin->path;
}
const void * plugin_get_header (PluginHandle * plugin)
{
- if (! plugin->module->loaded)
+ pthread_mutex_lock (& mutex);
+
+ if (! plugin->loaded)
{
- module_load (plugin->module->path);
- plugin->module->loaded = TRUE;
+ plugin_load (plugin->path);
+ plugin->loaded = TRUE;
}
+ pthread_mutex_unlock (& mutex);
return plugin->header;
}
-static gint plugin_by_header_cb (PluginHandle * plugin, const void * header)
+static int plugin_by_header_cb (PluginHandle * plugin, const void * header)
{
return (plugin->header == header) ? 0 : -1;
}
@@ -686,12 +616,12 @@ PluginHandle * plugin_by_header (const void * header)
{
GList * node = g_list_find_custom (plugin_list, header, (GCompareFunc)
plugin_by_header_cb);
- return (node != NULL) ? node->data : NULL;
+ return node ? node->data : NULL;
}
-void plugin_for_each (gint type, PluginForEachFunc func, void * data)
+void plugin_for_each (int type, PluginForEachFunc func, void * data)
{
- for (GList * node = plugin_list; node != NULL; node = node->next)
+ for (GList * node = plugin_list; node; node = node->next)
{
if (((PluginHandle *) node->data)->type != type)
continue;
@@ -700,29 +630,29 @@ void plugin_for_each (gint type, PluginForEachFunc func, void * data)
}
}
-const gchar * plugin_get_name (PluginHandle * plugin)
+const char * plugin_get_name (PluginHandle * plugin)
{
return plugin->name;
}
-gboolean plugin_has_about (PluginHandle * plugin)
+bool_t plugin_has_about (PluginHandle * plugin)
{
return plugin->has_about;
}
-gboolean plugin_has_configure (PluginHandle * plugin)
+bool_t plugin_has_configure (PluginHandle * plugin)
{
return plugin->has_configure;
}
-gboolean plugin_get_enabled (PluginHandle * plugin)
+bool_t plugin_get_enabled (PluginHandle * plugin)
{
return plugin->enabled;
}
static void plugin_call_watches (PluginHandle * plugin)
{
- for (GList * node = plugin->watches; node != NULL; )
+ for (GList * node = plugin->watches; node; )
{
GList * next = node->next;
PluginWatch * watch = node->data;
@@ -737,7 +667,7 @@ static void plugin_call_watches (PluginHandle * plugin)
}
}
-void plugin_set_enabled (PluginHandle * plugin, gboolean enabled)
+void plugin_set_enabled (PluginHandle * plugin, bool_t enabled)
{
plugin->enabled = enabled;
plugin_call_watches (plugin);
@@ -748,7 +678,7 @@ typedef struct {
void * data;
} PluginForEnabledState;
-static gboolean plugin_for_enabled_cb (PluginHandle * plugin,
+static bool_t plugin_for_enabled_cb (PluginHandle * plugin,
PluginForEnabledState * state)
{
if (! plugin->enabled)
@@ -756,7 +686,7 @@ static gboolean plugin_for_enabled_cb (PluginHandle * plugin,
return state->func (plugin, state->data);
}
-void plugin_for_enabled (gint type, PluginForEachFunc func, void * data)
+void plugin_for_enabled (int type, PluginForEachFunc func, void * data)
{
PluginForEnabledState state = {func, data};
plugin_for_each (type, (PluginForEachFunc) plugin_for_enabled_cb, & state);
@@ -774,7 +704,7 @@ void plugin_add_watch (PluginHandle * plugin, PluginForEachFunc func, void *
void plugin_remove_watch (PluginHandle * plugin, PluginForEachFunc func, void *
data)
{
- for (GList * node = plugin->watches; node != NULL; )
+ for (GList * node = plugin->watches; node; )
{
GList * next = node->next;
PluginWatch * watch = node->data;
@@ -789,24 +719,23 @@ void plugin_remove_watch (PluginHandle * plugin, PluginForEachFunc func, void *
}
}
-
typedef struct {
- const gchar * scheme;
+ const char * scheme;
PluginHandle * plugin;
} TransportPluginForSchemeState;
-static gboolean transport_plugin_for_scheme_cb (PluginHandle * plugin,
+static bool_t transport_plugin_for_scheme_cb (PluginHandle * plugin,
TransportPluginForSchemeState * state)
{
- if (! g_list_find_custom (plugin->u.t.schemes, state->scheme, (GCompareFunc)
- strcasecmp))
+ if (! g_list_find_custom (plugin->u.t.schemes, state->scheme,
+ (GCompareFunc) g_ascii_strcasecmp))
return TRUE;
state->plugin = plugin;
return FALSE;
}
-PluginHandle * transport_plugin_for_scheme (const gchar * scheme)
+PluginHandle * transport_plugin_for_scheme (const char * scheme)
{
TransportPluginForSchemeState state = {scheme, NULL};
plugin_for_enabled (PLUGIN_TYPE_TRANSPORT, (PluginForEachFunc)
@@ -815,22 +744,22 @@ PluginHandle * transport_plugin_for_scheme (const gchar * scheme)
}
typedef struct {
- const gchar * ext;
+ const char * ext;
PluginHandle * plugin;
} PlaylistPluginForExtState;
-static gboolean playlist_plugin_for_ext_cb (PluginHandle * plugin,
+static bool_t playlist_plugin_for_ext_cb (PluginHandle * plugin,
PlaylistPluginForExtState * state)
{
- if (! g_list_find_custom (plugin->u.p.exts, state->ext, (GCompareFunc)
- strcasecmp))
+ if (! g_list_find_custom (plugin->u.p.exts, state->ext,
+ (GCompareFunc) g_ascii_strcasecmp))
return TRUE;
state->plugin = plugin;
return FALSE;
}
-PluginHandle * playlist_plugin_for_extension (const gchar * extension)
+PluginHandle * playlist_plugin_for_extension (const char * extension)
{
PlaylistPluginForExtState state = {extension, NULL};
plugin_for_enabled (PLUGIN_TYPE_PLAYLIST, (PluginForEachFunc)
@@ -839,23 +768,23 @@ PluginHandle * playlist_plugin_for_extension (const gchar * extension)
}
typedef struct {
- gint key;
- const gchar * value;
+ int key;
+ const char * value;
PluginForEachFunc func;
void * data;
} InputPluginForKeyState;
-static gboolean input_plugin_for_key_cb (PluginHandle * plugin,
+static bool_t input_plugin_for_key_cb (PluginHandle * plugin,
InputPluginForKeyState * state)
{
- if (g_list_find_custom (plugin->u.i.keys[state->key], state->value,
- (GCompareFunc) strcasecmp) == NULL)
+ if (! g_list_find_custom (plugin->u.i.keys[state->key], state->value,
+ (GCompareFunc) g_ascii_strcasecmp))
return TRUE;
return state->func (plugin, state->data);
}
-void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
+void input_plugin_for_key (int key, const char * value, PluginForEachFunc
func, void * data)
{
InputPluginForKeyState state = {key, value, func, data};
@@ -863,44 +792,25 @@ void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
input_plugin_for_key_cb, & state);
}
-static void input_plugin_add_key (InputPlugin * header, gint key, const gchar *
- value)
-{
- PluginHandle * plugin = plugin_by_header (header);
- g_return_if_fail (plugin != NULL);
- plugin->u.i.keys[key] = g_list_prepend (plugin->u.i.keys[key], g_strdup
- (value));
-}
-
-void uri_set_plugin (const gchar * scheme, InputPlugin * header)
-{
- input_plugin_add_key (header, INPUT_KEY_SCHEME, scheme);
-}
-
-void mime_set_plugin (const gchar * mime, InputPlugin * header)
-{
- input_plugin_add_key (header, INPUT_KEY_MIME, mime);
-}
-
-gboolean input_plugin_has_images (PluginHandle * plugin)
+bool_t input_plugin_has_images (PluginHandle * plugin)
{
g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
return plugin->u.i.has_images;
}
-gboolean input_plugin_has_subtunes (PluginHandle * plugin)
+bool_t input_plugin_has_subtunes (PluginHandle * plugin)
{
g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
return plugin->u.i.has_subtunes;
}
-gboolean input_plugin_can_write_tuple (PluginHandle * plugin)
+bool_t input_plugin_can_write_tuple (PluginHandle * plugin)
{
g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
return plugin->u.i.can_write_tuple;
}
-gboolean input_plugin_has_infowin (PluginHandle * plugin)
+bool_t input_plugin_has_infowin (PluginHandle * plugin)
{
g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
return plugin->u.i.has_infowin;
diff --git a/src/audacious/plugin-view.c b/src/audacious/plugin-view.c
index 818adc1..f8a88f2 100644
--- a/src/audacious/plugin-view.c
+++ b/src/audacious/plugin-view.c
@@ -60,7 +60,7 @@ static Plugin * get_selected_header (GtkTreeView * tree)
return plugin_get_header (p);
}
-static void do_enable (GtkCellRendererToggle * cell, const gchar * path_str,
+static void do_enable (GtkCellRendererToggle * cell, const char * path_str,
GtkTreeModel * model)
{
GtkTreePath * path = gtk_tree_path_new_from_string (path_str);
@@ -69,7 +69,7 @@ static void do_enable (GtkCellRendererToggle * cell, const gchar * path_str,
gtk_tree_path_free (path);
Node * n = NULL;
- gboolean enabled;
+ bool_t enabled;
gtk_tree_model_get (model, & iter, PVIEW_COL_NODE, & n,
PVIEW_COL_ENABLED, & enabled, -1);
g_return_if_fail (n != NULL);
@@ -77,7 +77,7 @@ static void do_enable (GtkCellRendererToggle * cell, const gchar * path_str,
plugin_enable (n->p, ! enabled);
}
-static gboolean list_watcher (PluginHandle * p, Node * n)
+static bool_t list_watcher (PluginHandle * p, Node * n)
{
GtkTreeIter iter;
gtk_tree_model_get_iter (n->model, & iter, n->path);
@@ -86,7 +86,7 @@ static gboolean list_watcher (PluginHandle * p, Node * n)
return TRUE;
}
-static gboolean fill_cb (PluginHandle * p, GtkTreeModel * model)
+static bool_t fill_cb (PluginHandle * p, GtkTreeModel * model)
{
Node * n = g_slice_new (Node);
@@ -122,7 +122,7 @@ static void list_fill (GtkTreeView * tree, void * type)
gtk_tree_view_column_set_attributes (col, rend, "active", PVIEW_COL_ENABLED,
NULL);
- for (gint i = PVIEW_COL_NAME; i <= PVIEW_COL_PATH; i ++)
+ for (int i = PVIEW_COL_NAME; i <= PVIEW_COL_PATH; i ++)
{
col = gtk_tree_view_column_new ();
gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_GROW_ONLY);
@@ -162,14 +162,14 @@ static void list_destroy (GtkTreeView * tree)
g_object_unref ((GObject *) model);
}
-static gboolean config_watcher (PluginHandle * p, GtkWidget * config)
+static bool_t config_watcher (PluginHandle * p, GtkWidget * config)
{
gtk_widget_set_sensitive (config, plugin_has_configure (p) &&
plugin_get_enabled (p));
return TRUE;
}
-static gboolean about_watcher (PluginHandle * p, GtkWidget * about)
+static bool_t about_watcher (PluginHandle * p, GtkWidget * about)
{
gtk_widget_set_sensitive (about, plugin_has_about (p) && plugin_get_enabled
(p));
@@ -178,7 +178,8 @@ static gboolean about_watcher (PluginHandle * p, GtkWidget * about)
static void button_update (GtkTreeView * tree, GtkWidget * b)
{
- PluginForEachFunc watcher = g_object_get_data ((GObject *) b, "watcher");
+ PluginForEachFunc watcher = (PluginForEachFunc) g_object_get_data
+ ((GObject *) b, "watcher");
g_return_if_fail (watcher != NULL);
PluginHandle * p = g_object_steal_data ((GObject *) b, "plugin");
@@ -218,7 +219,8 @@ static void do_about (GtkTreeView * tree)
static void button_destroy (GtkWidget * b)
{
- PluginForEachFunc watcher = g_object_get_data ((GObject *) b, "watcher");
+ PluginForEachFunc watcher = (PluginForEachFunc) g_object_get_data
+ ((GObject *) b, "watcher");
g_return_if_fail (watcher != NULL);
PluginHandle * p = g_object_steal_data ((GObject *) b, "plugin");
@@ -226,7 +228,7 @@ static void button_destroy (GtkWidget * b)
plugin_remove_watch (p, watcher, b);
}
-GtkWidget * plugin_view_new (gint type)
+GtkWidget * plugin_view_new (int type)
{
GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
gtk_container_set_border_width ((GtkContainer *) vbox, 6);
@@ -251,7 +253,7 @@ GtkWidget * plugin_view_new (gint type)
GtkWidget * config = gtk_button_new_from_stock (GTK_STOCK_PREFERENCES);
gtk_box_pack_start ((GtkBox *) hbox, config, FALSE, FALSE, 0);
gtk_widget_set_sensitive (config, FALSE);
- g_object_set_data ((GObject *) config, "watcher", config_watcher);
+ g_object_set_data ((GObject *) config, "watcher", (void *) config_watcher);
g_signal_connect (tree, "cursor-changed", (GCallback) button_update, config);
g_signal_connect_swapped (config, "clicked", (GCallback)
do_config, tree);
@@ -260,7 +262,7 @@ GtkWidget * plugin_view_new (gint type)
GtkWidget * about = gtk_button_new_from_stock (GTK_STOCK_ABOUT);
gtk_box_pack_start ((GtkBox *) hbox, about, FALSE, FALSE, 0);
gtk_widget_set_sensitive (about, FALSE);
- g_object_set_data ((GObject *) about, "watcher", about_watcher);
+ g_object_set_data ((GObject *) about, "watcher", (void *) about_watcher);
g_signal_connect (tree, "cursor-changed", (GCallback) button_update, about);
g_signal_connect_swapped (about, "clicked", (GCallback) do_about, tree);
g_signal_connect (about, "destroy", (GCallback) button_destroy, NULL);
diff --git a/src/audacious/plugin.h b/src/audacious/plugin.h
index d8958c5..e77dbbf 100644
--- a/src/audacious/plugin.h
+++ b/src/audacious/plugin.h
@@ -22,12 +22,10 @@
#ifndef AUDACIOUS_PLUGIN_H
#define AUDACIOUS_PLUGIN_H
-#include <glib.h>
-#include <gmodule.h>
-
#include <audacious/api.h>
#include <audacious/types.h>
#include <libaudcore/audio.h>
+#include <libaudcore/index.h>
#include <libaudcore/tuple.h>
#include <libaudcore/vfs.h>
@@ -47,100 +45,117 @@
* the API tables), increment _AUD_PLUGIN_VERSION *and* set
* _AUD_PLUGIN_VERSION_MIN to the same value. */
-#define _AUD_PLUGIN_VERSION_MIN 18 /* 2.5-alpha1 */
-#define _AUD_PLUGIN_VERSION 20 /* 2.5-beta2 */
+#define _AUD_PLUGIN_VERSION_MIN 38 /* 3.2-alpha2 */
+#define _AUD_PLUGIN_VERSION 38
-/**
- * The plugin module header. Each module can contain several plugins,
- * of any supported type.
- */
-typedef const struct {
- gint magic; /* checked against _AUD_PLUGIN_MAGIC */
- gint version; /* checked against _AUD_PLUGIN_VERSION */
- const gchar * name;
- void (* init) (void);
- void (* fini) (void);
-
- /* These are arrays of pointers, ending with NULL: */
- InputPlugin * const * ip_list;
- OutputPlugin * const * op_list;
- EffectPlugin * const * ep_list;
- GeneralPlugin * const * gp_list;
- VisPlugin * const * vp_list;
- TransportPlugin * const * tp_list;
- PlaylistPlugin * const * pp_list;
-
- Iface * iface;
-} PluginHeader;
-
-#define DECLARE_PLUGIN(name, ...) \
- AudAPITable * _aud_api_table = NULL; \
- G_MODULE_EXPORT PluginHeader * get_plugin_info (AudAPITable * table) { \
- static PluginHeader h = {_AUD_PLUGIN_MAGIC, _AUD_PLUGIN_VERSION, #name, \
- __VA_ARGS__}; \
- _aud_api_table = table; \
- return & h; \
- }
-
-#define SIMPLE_TRANSPORT_PLUGIN(name, t) DECLARE_PLUGIN(name, .tp_list = t)
-#define SIMPLE_PLAYLIST_PLUGIN(name, p) DECLARE_PLUGIN(name, .pp_list = p)
-#define SIMPLE_INPUT_PLUGIN(name, i) DECLARE_PLUGIN (name, .ip_list = i)
-#define SIMPLE_EFFECT_PLUGIN(name, e) DECLARE_PLUGIN (name, .ep_list = e)
-#define SIMPLE_OUTPUT_PLUGIN(name, o) DECLARE_PLUGIN (name, .op_list = o)
-#define SIMPLE_VIS_PLUGIN(name, v) DECLARE_PLUGIN(name, .vp_list = v)
-#define SIMPLE_GENERAL_PLUGIN(name, g) DECLARE_PLUGIN (name, .gp_list = g)
-#define SIMPLE_IFACE_PLUGIN(name, i) DECLARE_PLUGIN(name, .iface = i)
-
-#define SIMPLE_VISUAL_PLUGIN SIMPLE_VIS_PLUGIN /* deprecated */
-
-#define PLUGIN_COMMON_FIELDS \
- gchar *description; \
- gboolean (* init) (void); \
- void (*cleanup) (void); \
- void (*about) (void); \
- void (*configure) (void); \
- PluginPreferences *settings;
-
-struct _Plugin {
+/* A NOTE ON THREADS
+ *
+ * How thread-safe a plugin must be depends on the type of plugin. Note that
+ * some parts of the Audacious API are *not* thread-safe and therefore cannot be
+ * used in some parts of some plugins; for example, input plugins cannot use
+ * GUI-related calls or access the playlist except in about() and configure().
+ *
+ * Thread-safe plugins: transport, playlist, input, effect, and output. These
+ * must be mostly thread-safe. init() and cleanup() may be called from
+ * secondary threads; however, no other functions provided by the plugin will be
+ * called at the same time. about() and configure() will be called only from
+ * the main thread. All other functions provided by the plugin may be called
+ * from any thread and from multiple threads simultaneously.
+ *
+ * Exceptions:
+ * - Because many existing input plugins are not coded to handle simultaneous
+ * calls to play(), play() will only be called from one thread at a time. New
+ * plugins should not rely on this exception, though.
+ * - Some combinations of calls, especially for output and effect plugins, make
+ * no sense; for example, flush() in an output plugin will only be called
+ * after open_audio() and before close_audio().
+ *
+ * Single-thread plugins: visualization, general, and interface. Functions
+ * provided by these plugins will only be called from the main thread. */
+
+/* CROSS-PLUGIN MESSAGES
+ *
+ * Since 3.2, Audacious implements a basic messaging system between plugins.
+ * Messages are sent using aud_plugin_send_message() and received through the
+ * take_message() method specified in the header of the receiving plugin.
+ * Plugins that do not need to receive messages can set take_message() to NULL.
+ *
+ * Each message includes a code indicating the type of message, a pointer to
+ * some data, and a value indicating the size of that data. What the message
+ * data contains is entirely up to the two plugins involved. For this reason, it
+ * is crucial that both plugins agree on the meaning of the message codes used.
+ *
+ * Once the message is sent, an integer error code is returned. If the receiving
+ * plugin does not provide the take_message() method, ENOSYS is returned. If
+ * take_message() does not recognize the message code, it should ignore the
+ * message and return EINVAL. An error code of zero represents success. Other
+ * error codes may be used with more specific meanings.
+ *
+ * For the time being, aud_plugin_send_message() should only be called from the
+ * program's main thread. */
+
+#define PLUGIN_COMMON_FIELDS \
+ int magic; /* checked against _AUD_PLUGIN_MAGIC */ \
+ int version; /* checked against _AUD_PLUGIN_VERSION */ \
+ int type; /* PLUGIN_TYPE_XXX */ \
+ int size; /* size in bytes of the struct */ \
+ const char * name; \
+ bool_t (* init) (void); \
+ void (* cleanup) (void); \
+ int (* take_message) (const char * code, const void * data, int size); \
+ void (* about) (void); \
+ void (* configure) (void); \
+ PluginPreferences * settings;
+
+struct _Plugin
+{
PLUGIN_COMMON_FIELDS
};
-struct _TransportPlugin {
+struct _TransportPlugin
+{
PLUGIN_COMMON_FIELDS
- const gchar * const * schemes; /* array ending with NULL */
+ const char * const * schemes; /* array ending with NULL */
const VFSConstructor * vtable;
};
-struct _PlaylistPlugin {
+struct _PlaylistPlugin
+{
PLUGIN_COMMON_FIELDS
- const gchar * const * extensions; /* array ending with NULL */
- gboolean (* load) (const gchar * filename, gint list, gint at);
- gboolean (* save) (const gchar * filename, gint list);
+ const char * const * extensions; /* array ending with NULL */
+ bool_t (* load) (const char * path, VFSFile * file,
+ char * * title, /* pooled */
+ Index * filenames, /* of (char *), pooled */
+ Index * tuples); /* of (Tuple *) */
+ bool_t (* save) (const char * path, VFSFile * file, const char * title,
+ Index * filenames, /* of (char *) */
+ Index * tuples); /* of (Tuple *) */
};
-struct _OutputPlugin {
+struct _OutputPlugin
+{
PLUGIN_COMMON_FIELDS
/* During probing, plugins with higher priority (10 to 0) are tried first. */
- gint probe_priority;
+ int probe_priority;
/* Returns current volume for left and right channels (0 to 100). */
- void (* get_volume) (gint * l, gint * r);
+ void (* get_volume) (int * l, int * r);
/* Changes volume for left and right channels (0 to 100). */
- void (* set_volume) (gint l, gint r);
+ void (* set_volume) (int l, int r);
/* Begins playback of a PCM stream. <format> is one of the FMT_*
* enumeration values defined in libaudcore/audio.h. Returns nonzero on
* success. */
- gboolean (* open_audio) (gint format, gint rate, gint chans);
+ bool_t (* open_audio) (int format, int rate, int chans);
/* Ends playback. Any buffered audio data is discarded. */
void (* close_audio) (void);
/* Returns how many bytes of data may be passed to a following write_audio()
* call. NULL if the plugin supports only blocking writes (not recommended). */
- gint (* buffer_free) (void);
+ int (* buffer_free) (void);
/* Waits until buffer_free() will return a size greater than zero.
* output_time(), pause(), and flush() may be called meanwhile; if flush()
@@ -149,47 +164,48 @@ struct _OutputPlugin {
void (* period_wait) (void);
/* Buffers <size> bytes of data, in the format given to open_audio(). */
- void (* write_audio) (void * data, gint size);
+ void (* write_audio) (void * data, int size);
/* Waits until all buffered data has been heard by the user. */
void (* drain) (void);
/* Returns time count (in milliseconds) of how much data has been written. */
- gint (* written_time) (void);
+ int (* written_time) (void);
/* Returns time count (in milliseconds) of how much data has been heard by
* the user. */
- gint (* output_time) (void);
+ int (* output_time) (void);
/* Pauses the stream if <p> is nonzero; otherwise unpauses it.
* write_audio() will not be called while the stream is paused. */
- void (* pause) (gboolean p);
+ void (* pause) (bool_t p);
/* Discards any buffered audio data and sets the time counter (in
* milliseconds) of data written. */
- void (* flush) (gint time);
+ void (* flush) (int time);
/* Sets the time counter (in milliseconds) of data written without
* discarding any buffered audio data. If <time> is less than the amount of
* buffered data, following calls to output_time() will return negative
* values. */
- void (* set_written_time) (gint time);
+ void (* set_written_time) (int time);
};
-struct _EffectPlugin {
+struct _EffectPlugin
+{
PLUGIN_COMMON_FIELDS
/* All processing is done in floating point. If the effect plugin wants to
* change the channel count or sample rate, it can change the parameters
* passed to start(). They cannot be changed in the middle of a song. */
- void (* start) (gint * channels, gint * rate);
+ void (* start) (int * channels, int * rate);
/* process() has two options: modify the samples in place and leave the data
* pointer unchanged or copy them into a buffer of its own. If it sets the
* pointer to dynamically allocated memory, it is the plugin's job to free
* that memory. process() may return different lengths of audio than it is
* passed, even a zero length. */
- void (* process) (gfloat * * data, gint * samples);
+ void (* process) (float * * data, int * samples);
/* A seek is taking place; any buffers should be discarded. */
void (* flush) (void);
@@ -197,19 +213,19 @@ struct _EffectPlugin {
/* Exactly like process() except that any buffers should be drained (i.e.
* the data processed and returned). finish() will be called a second time
* at the end of the last song in the playlist. */
- void (* finish) (gfloat * * data, gint * samples);
+ void (* finish) (float * * data, int * samples);
- /* For effects that change the length of the song, these functions allow the
- * correct time to be displayed. */
- gint (* decoder_to_output_time) (gint time);
- gint (* output_to_decoder_time) (gint time);
+ /* Optional. For effects that change the length of the song, these
+ * functions allow the correct time to be displayed. */
+ int (* decoder_to_output_time) (int time);
+ int (* output_to_decoder_time) (int time);
/* Effects with lowest order (0 to 9) are applied first. */
- gint order;
+ int order;
/* If the effect does not change the number of channels or the sampling
* rate, it can be enabled and disabled more smoothly. */
- gboolean preserves_format;
+ bool_t preserves_format;
};
struct OutputAPI
@@ -220,7 +236,7 @@ struct OutputAPI
/* Prepare the output system for playback in the specified format. Returns
* nonzero on success. If the call fails, no other output functions may be
* called. */
- gint (* open_audio) (gint format, gint rate, gint channels);
+ int (* open_audio) (int format, int rate, int channels);
/* Informs the output system of replay gain values for the current song so
* that volume levels can be adjusted accordingly, if the user so desires.
@@ -233,7 +249,7 @@ struct OutputAPI
* been written (though it may not yet be heard by the user); if the output
* system is paused; this may be indefinitely. See abort_write for a way to
* interrupt a blocked call. */
- void (* write_audio) (void * data, gint length);
+ void (* write_audio) (void * data, int length);
/* End playback. Any audio data currently buffered by the output system
* will be discarded. After the call, no other output functions, except
@@ -243,12 +259,12 @@ struct OutputAPI
/* Pause or unpause playback. This function may be called during a call to
* write_audio, in which write_audio will block until playback is unpaused
* (but see abort_write to prevent the call from blocking). */
- void (* pause) (gboolean pause);
+ void (* pause) (bool_t pause);
/* Discard any audio data currently buffered by the output system, and set
* the time counter to a new value. This function is intended to be used
* for seeking. */
- void (* flush) (gint time);
+ void (* flush) (int time);
/* Returns the time counter. Note that this represents the amount of audio
* data passed to the output system, not the amount actually heard by the
@@ -256,7 +272,7 @@ struct OutputAPI
* First, save the time counter using this function. Second, call
* close_audio and then open_audio with the new format (note that the call
* may fail). Finally, restore the time counter using flush. */
- gint (* written_time) (void);
+ int (* written_time) (void);
/* Returns TRUE if there is data remaining in the output buffer; FALSE if
* all data written to the output system has been heard by the user. This
@@ -264,7 +280,7 @@ struct OutputAPI
* calls) at the end of a song before calling close_audio. Once it returns
* FALSE, close_audio can be called without cutting off any of the end of
* the song. */
- gboolean (* buffer_playing) (void);
+ bool_t (* buffer_playing) (void);
/* Interrupt a call to write_audio so that it returns immediately. This
* works even when the call is blocked by pause. Buffered audio data is
@@ -281,7 +297,8 @@ struct OutputAPI
typedef const struct _InputPlayback InputPlayback;
-struct _InputPlayback {
+struct _InputPlayback
+{
/* Pointer to the output API functions. */
const struct OutputAPI * output;
@@ -297,15 +314,12 @@ struct _InputPlayback {
/* Updates attributes of the stream. "bitrate" is in bits per second.
* "samplerate" is in hertz. */
- void (* set_params) (InputPlayback * p, gint bitrate, gint samplerate,
- gint channels);
+ void (* set_params) (InputPlayback * p, int bitrate, int samplerate,
+ int channels);
- /**
- * Sets / updates playback entry #Tuple.
- * @attention Caller gives up ownership of one reference to the tuple.
- * @since Added in Audacious 2.2.
- */
- void (*set_tuple) (InputPlayback * playback, Tuple * tuple);
+ /* Updates metadata for the stream. Caller gives up ownership of one
+ * reference to the tuple. */
+ void (* set_tuple) (InputPlayback * playback, Tuple * tuple);
/* If replay gain settings are stored in the tuple associated with the
* current song, this function can be called (after opening audio) to apply
@@ -314,7 +328,8 @@ struct _InputPlayback {
void (* set_gain_from_playlist) (InputPlayback * playback);
};
-struct _InputPlugin {
+struct _InputPlugin
+{
PLUGIN_COMMON_FIELDS
/* Nonzero if the files handled by the plugin may contain more than one
@@ -334,38 +349,44 @@ struct _InputPlugin {
* 3. When one of the songs is played, Audacious opens the file and calls
* play() with a file name modified in this way.
*/
- gboolean have_subtune;
+ bool_t have_subtune;
/* Pointer to an array (terminated with NULL) of file extensions associated
* with file types the plugin can handle. */
- const gchar * const * vfs_extensions;
+ const char * const * extensions;
+ /* Pointer to an array (terminated with NULL) of MIME types the plugin can
+ * handle. */
+ const char * const * mimes;
+ /* Pointer to an array (terminated with NULL) of custom URI schemes the
+ * plugin can handle. */
+ const char * const * schemes;
/* How quickly the plugin should be tried in searching for a plugin to
* handle a file which could not be identified from its extension. Plugins
* with priority 0 are tried first, 10 last. */
- gint priority;
+ int priority;
/* Must return nonzero if the plugin can handle this file. If the file
* could not be opened, "file" will be NULL. (This is normal in the case of
* special URI schemes like cdda:// that do not represent actual files.) */
- gboolean (* is_our_file_from_vfs) (const gchar * filename, VFSFile * file);
+ bool_t (* is_our_file_from_vfs) (const char * filename, VFSFile * file);
/* Must return a tuple containing metadata for this file, or NULL if no
* metadata could be read. If the file could not be opened, "file" will be
* NULL. Audacious takes over one reference to the tuple returned. */
- Tuple * (* probe_for_tuple) (const gchar * filename, VFSFile * file);
+ Tuple * (* probe_for_tuple) (const char * filename, VFSFile * file);
/* Optional. Must write metadata from a tuple to this file. Must return
* nonzero on success or zero on failure. "file" will never be NULL. */
/* Bug: This function does not support special URI schemes like cdda://,
* since no file name is passed. */
- gboolean (* update_song_tuple) (const Tuple * tuple, VFSFile * file);
+ bool_t (* update_song_tuple) (const Tuple * tuple, VFSFile * file);
/* Optional, and not recommended. Must show a window with information about
* this file. If this function is provided, update_song_tuple should not be. */
/* Bug: Implementing this function duplicates user interface code and code
* to open the file in each and every plugin. */
- void (* file_info_box) (const gchar * filename);
+ void (* file_info_box) (const char * filename);
/* Optional. Must try to read an "album art" image embedded in this file.
* Must return nonzero on success or zero on failure. If the file could not
@@ -373,8 +394,8 @@ struct _InputPlugin {
* pointer to a block of data allocated with g_malloc and "size" with the
* size in bytes of that block. The data may be in any format supported by
* GTK. Audacious will free the data when it is no longer needed. */
- gboolean (* get_song_image) (const gchar * filename, VFSFile * file,
- void * * data, gint * size);
+ bool_t (* get_song_image) (const char * filename, VFSFile * file,
+ void * * data, int64_t * size);
/* Must try to play this file. "playback" is a structure containing output-
* related functions which the plugin may make use of. It also contains a
@@ -387,19 +408,19 @@ struct _InputPlugin {
* file. "paused" specifies whether playback should immediately be paused.
* Must return nonzero if some of the file was successfully played or zero
* on failure. */
- gboolean (* play) (InputPlayback * playback, const gchar * filename,
- VFSFile * file, gint start_time, gint stop_time, gboolean pause);
+ bool_t (* play) (InputPlayback * playback, const char * filename,
+ VFSFile * file, int start_time, int stop_time, bool_t pause);
/* Must pause or unpause a file currently being played. This function will
* be called from a different thread than play, but it will not be called
* before the plugin calls set_pb_ready or after stop is called. */
- void (* pause) (InputPlayback * playback, gboolean paused);
+ void (* pause) (InputPlayback * playback, bool_t paused);
/* Optional. Must seek to the given position in milliseconds within a file
* currently being played. This function will be called from a different
* thread than play, but it will not be called before the plugin calls
* set_pb_ready or after stop is called. */
- void (* mseek) (InputPlayback * playback, gint time);
+ void (* mseek) (InputPlayback * playback, int time);
/* Must signal a currently playing song to stop and cause play to return.
* This function will be called from a different thread than play. It will
@@ -409,40 +430,94 @@ struct _InputPlugin {
/* Advanced, for plugins that do not use Audacious's output system. Use at
* your own risk. */
- gint (* get_time) (InputPlayback * playback);
- gint (* get_volume) (gint * l, gint * r);
- gint (* set_volume) (gint l, gint r);
+ int (* get_time) (InputPlayback * playback);
+ int (* get_volume) (int * l, int * r);
+ int (* set_volume) (int l, int r);
};
-struct _GeneralPlugin {
+struct _GeneralPlugin
+{
PLUGIN_COMMON_FIELDS
+ bool_t enabled_by_default;
+
/* GtkWidget * (* get_widget) (void); */
void * (* get_widget) (void);
};
-struct _VisPlugin {
+struct _VisPlugin
+{
PLUGIN_COMMON_FIELDS
- gint num_pcm_chs_wanted;
- gint num_freq_chs_wanted;
+ /* reset internal state and clear display */
+ void (* clear) (void);
- void (*playback_start) (void);
- void (*playback_stop) (void);
- void (*render_pcm) (gint16 pcm_data[2][512]);
+ /* 512 frames of a single-channel PCM signal */
+ void (* render_mono_pcm) (const float * pcm);
- /* The range of intensities is 0 - 32767 (though theoretically it is
- * possible for the FFT to result in bigger values, making the final
- * intensity negative due to overflowing the 16bit signed integer.)
- *
- * If output is mono, only freq_data[0] is filled.
- */
- void (*render_freq) (gint16 freq_data[2][256]);
+ /* 512 frames of an interleaved multi-channel PCM signal */
+ void (* render_multi_pcm) (const float * pcm, int channels);
+
+ /* intensity of frequencies 1/512, 2/512, ..., 256/512 of sample rate */
+ void (* render_freq) (const float * freq);
/* GtkWidget * (* get_widget) (void); */
void * (* get_widget) (void);
};
+struct _IfacePlugin
+{
+ PLUGIN_COMMON_FIELDS
+
+ /* is_shown() may return nonzero even if the interface is not actually
+ * visible; for example, if it is obscured by other windows or minimized.
+ * is_focused() only returns nonzero if the interface is actually visible;
+ * in X11, this should be determined by whether the interface has the
+ * toplevel focus. show() should show and raise the interface, so that both
+ * is_shown() and is_focused() will return nonzero. */
+ void (* show) (bool_t show);
+ bool_t (* is_shown) (void);
+
+ void (* show_error) (const char * markup);
+ void (* show_filebrowser) (bool_t play_button);
+ void (* show_jump_to_track) (void);
+
+ void /* GtkWidget */ * (* run_gtk_plugin) (void /* GtkWidget */ * widget,
+ const char * name);
+ void * (* stop_gtk_plugin) (void /* GtkWidget */ * widget);
+
+ void (* install_toolbar) (void /* GtkWidget */ * button);
+ void (* uninstall_toolbar) (void /* GtkWidget */ * button);
+
+ /* added after 3.0-alpha1 */
+ bool_t (* is_focused) (void);
+};
+
#undef PLUGIN_COMMON_FIELDS
+#define AUD_PLUGIN(stype, itype, ...) \
+AudAPITable * _aud_api_table = NULL; \
+stype _aud_plugin_self = { \
+ .magic = _AUD_PLUGIN_MAGIC, \
+ .version = _AUD_PLUGIN_VERSION, \
+ .type = itype, \
+ .size = sizeof (stype), \
+ __VA_ARGS__}; \
+stype * get_plugin_info (AudAPITable * table) { \
+ _aud_api_table = table; \
+ return & _aud_plugin_self; \
+}
+
+#define AUD_TRANSPORT_PLUGIN(...) AUD_PLUGIN (TransportPlugin, PLUGIN_TYPE_TRANSPORT, __VA_ARGS__)
+#define AUD_PLAYLIST_PLUGIN(...) AUD_PLUGIN (PlaylistPlugin, PLUGIN_TYPE_PLAYLIST, __VA_ARGS__)
+#define AUD_INPUT_PLUGIN(...) AUD_PLUGIN (InputPlugin, PLUGIN_TYPE_INPUT, __VA_ARGS__)
+#define AUD_EFFECT_PLUGIN(...) AUD_PLUGIN (EffectPlugin, PLUGIN_TYPE_EFFECT, __VA_ARGS__)
+#define AUD_OUTPUT_PLUGIN(...) AUD_PLUGIN (OutputPlugin, PLUGIN_TYPE_OUTPUT, __VA_ARGS__)
+#define AUD_VIS_PLUGIN(...) AUD_PLUGIN (VisPlugin, PLUGIN_TYPE_VIS, __VA_ARGS__)
+#define AUD_GENERAL_PLUGIN(...) AUD_PLUGIN (GeneralPlugin, PLUGIN_TYPE_GENERAL, __VA_ARGS__)
+#define AUD_IFACE_PLUGIN(...) AUD_PLUGIN (IfacePlugin, PLUGIN_TYPE_IFACE, __VA_ARGS__)
+
+#define PLUGIN_HAS_FUNC(p, func) \
+ ((p)->size > (char *) & (p)->func - (char *) (p) && (p)->func)
+
#endif /* AUDACIOUS_PLUGIN_H */
diff --git a/src/audacious/pluginenum.c b/src/audacious/pluginenum.c
index e4b8641..869e9ff 100644
--- a/src/audacious/pluginenum.c
+++ b/src/audacious/pluginenum.c
@@ -1,5 +1,5 @@
/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2009 Audacious development team
+ * Copyright (C) 2005-2011 Audacious development team
*
* Based on BMP:
* Copyright (C) 2003-2004 BMP development team
@@ -24,9 +24,9 @@
*/
#include <assert.h>
-
#include <glib.h>
#include <gmodule.h>
+#include <pthread.h>
#include <libaudcore/audstrings.h>
#include <libaudgui/init.h>
@@ -37,38 +37,38 @@
# define SHARED_SUFFIX G_MODULE_SUFFIX
#endif
-#include "audconfig.h"
#include "debug.h"
#include "plugin.h"
#include "ui_preferences.h"
#include "util.h"
#define AUD_API_DECLARE
-#include "configdb.h"
#include "drct.h"
#include "misc.h"
#include "playlist.h"
#include "plugins.h"
#undef AUD_API_DECLARE
-static const gchar * plugin_dir_list[] = {PLUGINSUBS, NULL};
+static const char * plugin_dir_list[] = {PLUGINSUBS, NULL};
+
+char verbose = 0;
-static AudAPITable api_table = {
- .configdb_api = & configdb_api,
+AudAPITable api_table = {
.drct_api = & drct_api,
.misc_api = & misc_api,
.playlist_api = & playlist_api,
.plugins_api = & plugins_api,
- .cfg = & cfg};
+ .verbose = & verbose};
typedef struct {
- PluginHeader * header;
+ Plugin * header;
GModule * module;
} LoadedModule;
static GList * loaded_modules = NULL;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-static void plugin2_process (PluginHeader * header, GModule * module, const gchar * filename)
+static void plugin2_process (Plugin * header, GModule * module, const char * filename)
{
if (header->magic != _AUD_PLUGIN_MAGIC)
{
@@ -84,151 +84,60 @@ static void plugin2_process (PluginHeader * header, GModule * module, const gcha
return;
}
- LoadedModule * loaded = g_slice_new (LoadedModule);
- loaded->header = header;
- loaded->module = module;
- loaded_modules = g_list_prepend (loaded_modules, loaded);
-
- if (header->init != NULL)
- {
- plugin_register (PLUGIN_TYPE_LOWLEVEL, filename, 0, NULL);
- header->init ();
- }
-
- if (header->tp_list)
- {
- TransportPlugin * tp;
- for (gint i = 0; (tp = header->tp_list[i]); i ++)
- {
- plugin_register (PLUGIN_TYPE_TRANSPORT, filename, i, tp);
- if (tp->init != NULL)
- tp->init (); /* FIXME: Pay attention to the return value. */
- }
- }
-
- if (header->pp_list)
- {
- PlaylistPlugin * pp;
- for (gint i = 0; (pp = header->pp_list[i]); i ++)
- {
- plugin_register (PLUGIN_TYPE_PLAYLIST, filename, i, pp);
- if (pp->init != NULL)
- pp->init (); /* FIXME: Pay attention to the return value. */
- }
- }
-
- if (header->ip_list != NULL)
- {
- InputPlugin * ip;
- for (gint i = 0; (ip = header->ip_list[i]) != NULL; i ++)
- {
- plugin_register (PLUGIN_TYPE_INPUT, filename, i, ip);
- if (ip->init != NULL)
- ip->init (); /* FIXME: Pay attention to the return value. */
- }
- }
-
- if (header->ep_list != NULL)
+ switch (header->type)
{
- EffectPlugin * ep;
- for (gint i = 0; (ep = header->ep_list[i]) != NULL; i ++)
+ case PLUGIN_TYPE_TRANSPORT:
+ case PLUGIN_TYPE_PLAYLIST:
+ case PLUGIN_TYPE_INPUT:
+ case PLUGIN_TYPE_EFFECT:
+ if (PLUGIN_HAS_FUNC (header, init) && ! header->init ())
{
- plugin_register (PLUGIN_TYPE_EFFECT, filename, i, ep);
- if (ep->init != NULL)
- ep->init (); /* FIXME: Pay attention to the return value. */
+ fprintf (stderr, " *** ERROR: %s failed to initialize.\n", filename);
+ g_module_close (module);
+ return;
}
+ break;
}
- if (header->op_list != NULL)
- {
- OutputPlugin * op;
- for (gint i = 0; (op = header->op_list[i]) != NULL; i ++)
- plugin_register (PLUGIN_TYPE_OUTPUT, filename, i, op);
- }
-
- if (header->vp_list != NULL)
- {
- VisPlugin * vp;
- for (gint i = 0; (vp = header->vp_list[i]) != NULL; i ++)
- plugin_register (PLUGIN_TYPE_VIS, filename, i, vp);
- }
-
- if (header->gp_list != NULL)
- {
- GeneralPlugin * gp;
- for (gint i = 0; (gp = header->gp_list[i]) != NULL; i ++)
- plugin_register (PLUGIN_TYPE_GENERAL, filename, i, gp);
- }
+ pthread_mutex_lock (& mutex);
+ LoadedModule * loaded = g_slice_new (LoadedModule);
+ loaded->header = header;
+ loaded->module = module;
+ loaded_modules = g_list_prepend (loaded_modules, loaded);
+ pthread_mutex_unlock (& mutex);
- if (header->iface != NULL)
- plugin_register (PLUGIN_TYPE_IFACE, filename, 0, header->iface);
+ plugin_register_loaded (filename, header);
}
static void plugin2_unload (LoadedModule * loaded)
{
- PluginHeader * header = loaded->header;
-
- if (header->ip_list != NULL)
- {
- InputPlugin * ip;
- for (gint i = 0; (ip = header->ip_list[i]) != NULL; i ++)
- {
- if (ip->settings != NULL)
- plugin_preferences_cleanup (ip->settings);
- if (ip->cleanup != NULL)
- ip->cleanup ();
- }
- }
+ Plugin * header = loaded->header;
- if (header->ep_list != NULL)
+ switch (header->type)
{
- EffectPlugin * ep;
- for (gint i = 0; (ep = header->ep_list[i]) != NULL; i ++)
- {
- if (ep->settings != NULL)
- plugin_preferences_cleanup (ep->settings);
- if (ep->cleanup != NULL)
- ep->cleanup ();
- }
- }
-
- if (header->pp_list != NULL)
- {
- PlaylistPlugin * pp;
- for (gint i = 0; (pp = header->pp_list[i]) != NULL; i ++)
- {
- if (pp->settings != NULL)
- plugin_preferences_cleanup (pp->settings);
- if (pp->cleanup != NULL)
- pp->cleanup ();
- }
+ case PLUGIN_TYPE_TRANSPORT:
+ case PLUGIN_TYPE_PLAYLIST:
+ case PLUGIN_TYPE_INPUT:
+ case PLUGIN_TYPE_EFFECT:
+ if (PLUGIN_HAS_FUNC (header, settings))
+ plugin_preferences_cleanup (header->settings);
+ if (PLUGIN_HAS_FUNC (header, cleanup))
+ header->cleanup ();
+ break;
}
- if (header->tp_list != NULL)
- {
- TransportPlugin * tp;
- for (gint i = 0; (tp = header->tp_list[i]) != NULL; i ++)
- {
- if (tp->settings != NULL)
- plugin_preferences_cleanup (tp->settings);
- if (tp->cleanup != NULL)
- tp->cleanup ();
- }
- }
-
- if (header->fini != NULL)
- header->fini ();
-
+ pthread_mutex_lock (& mutex);
g_module_close (loaded->module);
g_slice_free (LoadedModule, loaded);
+ pthread_mutex_unlock (& mutex);
}
/******************************************************************/
-void module_load (const gchar * filename)
+void plugin_load (const char * filename)
{
GModule *module;
- PluginHeader * (* func) (AudAPITable * table);
+ Plugin * (* func) (AudAPITable * table);
AUDDBG ("Loading plugin: %s.\n", filename);
@@ -241,7 +150,7 @@ void module_load (const gchar * filename)
/* v2 plugin loading */
if (g_module_symbol (module, "get_plugin_info", (void *) & func))
{
- PluginHeader * header = func (& api_table);
+ Plugin * header = func (& api_table);
g_return_if_fail (header != NULL);
plugin2_process(header, module, filename);
return;
@@ -251,7 +160,7 @@ void module_load (const gchar * filename)
g_module_close(module);
}
-static gboolean scan_plugin_func(const gchar * path, const gchar * basename, gpointer data)
+static bool_t scan_plugin_func(const char * path, const char * basename, gpointer data)
{
if (!str_has_suffix_nocase(basename, SHARED_SUFFIX))
return FALSE;
@@ -259,22 +168,22 @@ static gboolean scan_plugin_func(const gchar * path, const gchar * basename, gpo
if (!g_file_test(path, G_FILE_TEST_IS_REGULAR))
return FALSE;
- module_register (path);
+ plugin_register (path);
return FALSE;
}
-static void scan_plugins(const gchar * path)
+static void scan_plugins(const char * path)
{
- dir_foreach(path, scan_plugin_func, NULL, NULL);
+ dir_foreach (path, scan_plugin_func, NULL);
}
void plugin_system_init(void)
{
assert (g_module_supported ());
- gchar *dir;
- gint dirsel = 0;
+ char *dir;
+ int dirsel = 0;
audgui_init (& api_table);
@@ -317,4 +226,6 @@ void plugin_system_cleanup(void)
g_list_free (loaded_modules);
loaded_modules = NULL;
+
+ audgui_cleanup ();
}
diff --git a/src/audacious/plugins-api.h b/src/audacious/plugins-api.h
index 6d0d875..b39566e 100644
--- a/src/audacious/plugins-api.h
+++ b/src/audacious/plugins-api.h
@@ -24,35 +24,34 @@
/* CAUTION: These functions are not thread safe. */
/* plugin-init.c */
-AUD_FUNC1 (PluginHandle *, plugin_get_current, gint, type)
-AUD_FUNC2 (gboolean, plugin_enable, PluginHandle *, plugin, gboolean, enable)
+AUD_FUNC1 (PluginHandle *, plugin_get_current, int, type)
+AUD_FUNC2 (bool_t, plugin_enable, PluginHandle *, plugin, bool_t, enable)
+AUD_FUNC1 (PluginHandle *, plugin_by_widget, void /* GtkWidget */ *, widget)
+AUD_FUNC4 (int, plugin_send_message, PluginHandle *, plugin,
+ const char *, code, const void *, data, int, size)
/* plugin-registry.c */
-AUD_FUNC1 (gint, plugin_get_type, PluginHandle *, plugin)
-AUD_FUNC1 (const gchar *, plugin_get_filename, PluginHandle *, plugin)
-AUD_FUNC1 (gint, plugin_get_number, PluginHandle *, plugin)
-AUD_FUNC3 (PluginHandle *, plugin_lookup, gint, type, const gchar *, filename,
- gint, number)
+AUD_FUNC1 (int, plugin_get_type, PluginHandle *, plugin)
+AUD_FUNC1 (const char *, plugin_get_filename, PluginHandle *, plugin)
+AUD_FUNC1 (PluginHandle *, plugin_lookup, const char *, filename)
+AUD_FUNC1 (PluginHandle *, plugin_lookup_basename, const char *, basename)
AUD_FUNC1 (const void *, plugin_get_header, PluginHandle *, plugin)
AUD_FUNC1 (PluginHandle *, plugin_by_header, const void *, header)
-AUD_FUNC2 (gint, plugin_compare, PluginHandle *, a, PluginHandle *, b)
-AUD_FUNC3 (void, plugin_for_each, gint, type, PluginForEachFunc, func, void *,
+AUD_FUNC2 (int, plugin_compare, PluginHandle *, a, PluginHandle *, b)
+AUD_VFUNC3 (plugin_for_each, int, type, PluginForEachFunc, func, void *,
data)
-AUD_FUNC1 (gboolean, plugin_get_enabled, PluginHandle *, plugin)
-AUD_FUNC3 (void, plugin_for_enabled, gint, type, PluginForEachFunc, func,
+AUD_FUNC1 (bool_t, plugin_get_enabled, PluginHandle *, plugin)
+AUD_VFUNC3 (plugin_for_enabled, int, type, PluginForEachFunc, func,
void *, data)
-AUD_FUNC1 (const gchar *, plugin_get_name, PluginHandle *, plugin)
-AUD_FUNC1 (gboolean, plugin_has_about, PluginHandle *, plugin)
-AUD_FUNC1 (gboolean, plugin_has_configure, PluginHandle *, plugin)
+AUD_FUNC1 (const char *, plugin_get_name, PluginHandle *, plugin)
+AUD_FUNC1 (bool_t, plugin_has_about, PluginHandle *, plugin)
+AUD_FUNC1 (bool_t, plugin_has_configure, PluginHandle *, plugin)
-AUD_FUNC3 (void, plugin_add_watch, PluginHandle *, plugin, PluginForEachFunc,
+AUD_VFUNC3 (plugin_add_watch, PluginHandle *, plugin, PluginForEachFunc,
func, void *, data)
-AUD_FUNC3 (void, plugin_remove_watch, PluginHandle *, plugin, PluginForEachFunc,
+AUD_VFUNC3 (plugin_remove_watch, PluginHandle *, plugin, PluginForEachFunc,
func, void *, data)
-
-/* New in 2.5-alpha2 */
-AUD_FUNC1 (PluginHandle *, plugin_by_widget, /* GtkWidget * */ void *, widget)
diff --git a/src/audacious/plugins.h b/src/audacious/plugins.h
index 01dc6b5..af821dc 100644
--- a/src/audacious/plugins.h
+++ b/src/audacious/plugins.h
@@ -22,24 +22,11 @@
#ifndef AUDACIOUS_PLUGINS_H
#define AUDACIOUS_PLUGINS_H
-#include <glib.h>
-
#include <audacious/api.h>
#include <audacious/types.h>
+#include <libaudcore/core.h>
-enum {
- PLUGIN_TYPE_LOWLEVEL,
- PLUGIN_TYPE_TRANSPORT,
- PLUGIN_TYPE_PLAYLIST,
- PLUGIN_TYPE_INPUT,
- PLUGIN_TYPE_EFFECT,
- PLUGIN_TYPE_OUTPUT,
- PLUGIN_TYPE_VIS,
- PLUGIN_TYPE_GENERAL,
- PLUGIN_TYPE_IFACE,
- PLUGIN_TYPES};
-
-typedef gboolean (* PluginForEachFunc) (PluginHandle * plugin, void * data);
+typedef bool_t (* PluginForEachFunc) (PluginHandle * plugin, void * data);
#define AUD_API_NAME PluginsAPI
#define AUD_API_SYMBOL plugins_api
@@ -67,25 +54,24 @@ void plugin_registry_load (void);
void plugin_registry_prune (void);
void plugin_registry_save (void);
-void module_register (const gchar * path);
-void plugin_register (gint type, const gchar * path, gint number, const void *
- header);
+void plugin_register (const char * path);
+void plugin_register_loaded (const char * path, Plugin * header);
-void plugin_set_enabled (PluginHandle * plugin, gboolean enabled);
+void plugin_set_enabled (PluginHandle * plugin, bool_t enabled);
-PluginHandle * transport_plugin_for_scheme (const gchar * scheme);
-PluginHandle * playlist_plugin_for_extension (const gchar * extension);
-void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
+PluginHandle * transport_plugin_for_scheme (const char * scheme);
+PluginHandle * playlist_plugin_for_extension (const char * extension);
+void input_plugin_for_key (int key, const char * value, PluginForEachFunc
func, void * data);
-gboolean input_plugin_has_images (PluginHandle * plugin);
-gboolean input_plugin_has_subtunes (PluginHandle * plugin);
-gboolean input_plugin_can_write_tuple (PluginHandle * plugin);
-gboolean input_plugin_has_infowin (PluginHandle * plugin);
+bool_t input_plugin_has_images (PluginHandle * plugin);
+bool_t input_plugin_has_subtunes (PluginHandle * plugin);
+bool_t input_plugin_can_write_tuple (PluginHandle * plugin);
+bool_t input_plugin_has_infowin (PluginHandle * plugin);
/* pluginenum.c */
void plugin_system_init (void);
void plugin_system_cleanup (void);
-void module_load (const gchar * path);
+void plugin_load (const char * path);
#else
diff --git a/src/audacious/preferences.h b/src/audacious/preferences.h
index f82bbf0..eb44893 100644
--- a/src/audacious/preferences.h
+++ b/src/audacious/preferences.h
@@ -20,9 +20,6 @@
#ifndef AUDACIOUS_PREFERENCES_H
#define AUDACIOUS_PREFERENCES_H
-#include <glib.h>
-#include <audacious/types.h>
-
typedef enum {
WIDGET_NONE,
WIDGET_CHK_BTN,
@@ -44,14 +41,12 @@ typedef enum {
VALUE_FLOAT,
VALUE_BOOLEAN,
VALUE_STRING,
- VALUE_CFG_BOOLEAN, /* cfg holds config database key for bool option */
- VALUE_CFG_STRING, /* cfg holds config database key for gchar* option */
VALUE_NULL,
} ValueType;
typedef struct {
gpointer value;
- const gchar *label;
+ const char *label;
} ComboBoxElements;
struct _NotebookTab;
@@ -62,21 +57,25 @@ struct _PreferencesWidget {
gpointer cfg; /* connected config value */
void (*callback) (void); /* this func will be called after value change, can be NULL */
char *tooltip; /* widget tooltip, can be NULL */
- gboolean child;
+ bool_t child;
+ ValueType cfg_type; /* connected value type */
+ const char * csect; /* config file section */
+ const char * cname; /* config file key name */
+
union {
struct {
- gdouble min, max, step;
+ double min, max, step;
char *right_label; /* text right to widget */
} spin_btn;
struct {
struct _PreferencesWidget *elem;
- gint rows;
+ int rows;
} table;
struct {
char *stock_id;
- gboolean single_line; /* FALSE to enable line wrap */
+ bool_t single_line; /* FALSE to enable line wrap */
} label;
struct {
@@ -84,43 +83,42 @@ struct _PreferencesWidget {
} font_btn;
struct {
- gboolean password;
+ bool_t password;
} entry;
struct {
ComboBoxElements *elements;
- gint n_elements;
- gboolean enabled;
+ int n_elements;
+ bool_t enabled;
} combo;
struct {
struct _PreferencesWidget *elem;
- gint n_elem;
+ int n_elem;
- gboolean horizontal; /* FALSE gives vertical, TRUE gives horizontal aligment of child widgets */
- gboolean frame; /* whether to draw frame around box */
+ bool_t horizontal; /* FALSE gives vertical, TRUE gives horizontal aligment of child widgets */
+ bool_t frame; /* whether to draw frame around box */
} box;
struct {
struct _NotebookTab *tabs;
- gint n_tabs;
+ int n_tabs;
} notebook;
struct {
- gboolean horizontal; /* FALSE gives vertical, TRUE gives horizontal separator */
+ bool_t horizontal; /* FALSE gives vertical, TRUE gives horizontal separator */
} separator;
/* for WIDGET_CUSTOM --nenolod */
/* GtkWidget * (* populate) (void); */
void * (* populate) (void);
} data;
- ValueType cfg_type; /* connected value type */
};
typedef struct _NotebookTab {
- gchar *name;
+ char *name;
PreferencesWidget *settings;
- gint n_settings;
+ int n_settings;
} NotebookTab;
typedef enum {
@@ -128,11 +126,12 @@ typedef enum {
} PreferencesType;
struct _PluginPreferences {
- gchar *title;
- gchar *imgurl; /* Optional */
+ const char * domain;
+ const char * title;
+ const char * imgurl;
PreferencesWidget *prefs;
- gint n_prefs;
+ int n_prefs;
PreferencesType type;
diff --git a/src/audacious/probe-buffer.c b/src/audacious/probe-buffer.c
index e9621e1..3c0fe43 100644
--- a/src/audacious/probe-buffer.c
+++ b/src/audacious/probe-buffer.c
@@ -1,6 +1,6 @@
/*
* probe-buffer.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -19,91 +19,74 @@
* using our public API to be a derived work.
*/
-#include <stdio.h>
+#include <glib.h>
#include <stdlib.h>
#include <string.h>
+#include "debug.h"
#include "probe-buffer.h"
typedef struct
{
- const gchar * filename, * decoder;
VFSFile * file;
- guchar buffer[16384];
- gint filled, at;
- const gchar * read_warned, * seek_warned;
+ unsigned char buffer[16384];
+ int filled, at;
}
ProbeBuffer;
-static gint probe_buffer_fclose (VFSFile * file)
+static int probe_buffer_fclose (VFSFile * file)
{
- gint ret = vfs_fclose (((ProbeBuffer *) file->handle)->file);
- g_free (file->handle);
+ ProbeBuffer * p = vfs_get_handle (file);
+
+ int ret = vfs_fclose (p->file);
+ g_slice_free (ProbeBuffer, p);
return ret;
}
-static void increase_buffer (ProbeBuffer * p, gint64 size)
+static void increase_buffer (ProbeBuffer * p, int64_t size)
{
size = (size + 0xFF) & ~0xFF;
if (size > sizeof p->buffer)
- {
- if (p->read_warned != p->decoder)
- {
- fprintf (stderr, "%s tried to read past end of buffer while "
- "probing %s.\n", p->decoder, p->filename);
- p->read_warned = p->decoder;
- }
-
size = sizeof p->buffer;
- }
if (p->filled < size)
p->filled += vfs_fread (p->buffer + p->filled, 1, size - p->filled,
p->file);
}
-static gint64 probe_buffer_fread (void * buffer, gint64 size, gint64 count,
+static int64_t probe_buffer_fread (void * buffer, int64_t size, int64_t count,
VFSFile * file)
{
- ProbeBuffer * p = file->handle;
+ ProbeBuffer * p = vfs_get_handle (file);
increase_buffer (p, p->at + size * count);
- gint readed = (size > 0) ? MIN (count, (p->filled - p->at) / size) : 0;
+ int readed = (size > 0) ? MIN (count, (p->filled - p->at) / size) : 0;
memcpy (buffer, p->buffer + p->at, size * readed);
p->at += size * readed;
return readed;
}
-static gint64 probe_buffer_fwrite (const void * data, gint64 size, gint64 count,
+static int64_t probe_buffer_fwrite (const void * data, int64_t size, int64_t count,
VFSFile * file)
{
/* not implemented */
return 0;
}
-static gint probe_buffer_getc (VFSFile * file)
+static int probe_buffer_getc (VFSFile * file)
{
- guchar c;
+ unsigned char c;
return (probe_buffer_fread (& c, 1, 1, file) == 1) ? c : EOF;
}
-static gint probe_buffer_fseek (VFSFile * file, gint64 offset, gint whence)
+static int probe_buffer_fseek (VFSFile * file, int64_t offset, int whence)
{
- ProbeBuffer * p = file->handle;
+ ProbeBuffer * p = vfs_get_handle (file);
if (whence == SEEK_END)
- {
- if (p->seek_warned != p->decoder)
- {
- fprintf (stderr, "%s tried to seek to end of file while probing "
- "%s.\n", p->decoder, p->filename);
- p->seek_warned = p->decoder;
- }
-
return -1;
- }
if (whence == SEEK_CUR)
offset += p->at;
@@ -118,7 +101,7 @@ static gint probe_buffer_fseek (VFSFile * file, gint64 offset, gint whence)
return 0;
}
-static gint probe_buffer_ungetc (gint c, VFSFile * file)
+static int probe_buffer_ungetc (int c, VFSFile * file)
{
return (! probe_buffer_fseek (file, -1, SEEK_CUR)) ? c : EOF;
}
@@ -128,31 +111,31 @@ static void probe_buffer_rewind (VFSFile * file)
probe_buffer_fseek (file, 0, SEEK_SET);
}
-static gint64 probe_buffer_ftell (VFSFile * file)
+static int64_t probe_buffer_ftell (VFSFile * file)
{
- return ((ProbeBuffer *) file->handle)->at;
+ return ((ProbeBuffer *) vfs_get_handle (file))->at;
}
-static gboolean probe_buffer_feof (VFSFile * file)
+static bool_t probe_buffer_feof (VFSFile * file)
{
- ProbeBuffer * p = file->handle;
+ ProbeBuffer * p = vfs_get_handle (file);
return (p->at < p->filled) ? FALSE : vfs_feof (p->file);
}
-static gint probe_buffer_ftruncate (VFSFile * file, gint64 size)
+static int probe_buffer_ftruncate (VFSFile * file, int64_t size)
{
/* not implemented */
return -1;
}
-static gint64 probe_buffer_fsize (VFSFile * file)
+static int64_t probe_buffer_fsize (VFSFile * file)
{
- return vfs_fsize (((ProbeBuffer *) file->handle)->file);
+ return vfs_fsize (((ProbeBuffer *) vfs_get_handle (file))->file);
}
-static gchar * probe_buffer_get_metadata (VFSFile * file, const gchar * field)
+static char * probe_buffer_get_metadata (VFSFile * file, const char * field)
{
- return vfs_get_metadata (((ProbeBuffer *) file->handle)->file, field);
+ return vfs_get_metadata (((ProbeBuffer *) vfs_get_handle (file))->file, field);
}
static VFSConstructor probe_buffer_table =
@@ -172,34 +155,17 @@ static VFSConstructor probe_buffer_table =
.vfs_get_metadata_impl = probe_buffer_get_metadata,
};
-VFSFile * probe_buffer_new (const gchar * filename)
+VFSFile * probe_buffer_new (const char * filename)
{
VFSFile * file = vfs_fopen (filename, "r");
if (! file)
return NULL;
- ProbeBuffer * p = g_malloc (sizeof (ProbeBuffer));
- p->decoder = NULL;
- p->filename = filename;
+ ProbeBuffer * p = g_slice_new (ProbeBuffer);
p->file = file;
p->filled = 0;
p->at = 0;
- p->read_warned = NULL;
- p->seek_warned = NULL;
-
- VFSFile * file2 = g_malloc (sizeof (VFSFile));
- file2->base = & probe_buffer_table;
- file2->handle = p;
- file2->uri = g_strdup (filename);
- file2->ref = 1;
- file2->sig = VFS_SIG;
- return file2;
-}
-
-void probe_buffer_set_decoder (VFSFile * file, const gchar * decoder)
-{
- ProbeBuffer * p = file->handle;
- p->decoder = decoder;
+ return vfs_new (filename, & probe_buffer_table, p);
}
diff --git a/src/audacious/probe-buffer.h b/src/audacious/probe-buffer.h
index 2c1b110..9c4405f 100644
--- a/src/audacious/probe-buffer.h
+++ b/src/audacious/probe-buffer.h
@@ -22,10 +22,8 @@
#ifndef AUDACIOUS_PROBE_BUFFER_H
#define AUDACIOUS_PROBE_BUFFER_H
-#include <glib.h>
#include <libaudcore/vfs.h>
-VFSFile * probe_buffer_new (const gchar * filename);
-void probe_buffer_set_decoder (VFSFile * file, const gchar * decoder);
+VFSFile * probe_buffer_new (const char * filename);
#endif
diff --git a/src/audacious/probe.c b/src/audacious/probe.c
index 9c15789..b24abe4 100644
--- a/src/audacious/probe.c
+++ b/src/audacious/probe.c
@@ -19,6 +19,7 @@
* using our public API to be a derived work.
*/
+#include <glib.h>
#include <stdio.h>
#include <string.h>
@@ -33,17 +34,19 @@
typedef struct
{
- gchar * filename;
+ const char * filename;
VFSFile * handle;
- gboolean buffered;
+ bool_t buffered, failed;
PluginHandle * plugin;
}
ProbeState;
-static gboolean check_opened (ProbeState * state)
+static bool_t check_opened (ProbeState * state)
{
if (state->handle != NULL)
return TRUE;
+ if (state->failed)
+ return FALSE;
AUDDBG ("Opening %s.\n", state->filename);
if ((state->buffered = vfs_is_remote (state->filename)))
@@ -55,10 +58,11 @@ static gboolean check_opened (ProbeState * state)
return TRUE;
AUDDBG ("FAILED.\n");
+ state->failed = TRUE;
return FALSE;
}
-static gboolean probe_func (PluginHandle * plugin, ProbeState * state)
+static bool_t probe_func (PluginHandle * plugin, ProbeState * state)
{
AUDDBG ("Trying %s.\n", plugin_get_name (plugin));
InputPlugin * decoder = plugin_get_header (plugin);
@@ -70,9 +74,6 @@ static gboolean probe_func (PluginHandle * plugin, ProbeState * state)
if (! check_opened (state))
return FALSE;
- if (state->buffered)
- probe_buffer_set_decoder (state->handle, plugin_get_name (plugin));
-
if (decoder->is_our_file_from_vfs (state->filename, state->handle))
{
state->plugin = plugin;
@@ -98,7 +99,7 @@ static gboolean probe_func (PluginHandle * plugin, ProbeState * state)
* similarly that the plugin passed in this call is the last one.
*/
-static gboolean probe_func_fast (PluginHandle * plugin, ProbeState * state)
+static bool_t probe_func_fast (PluginHandle * plugin, ProbeState * state)
{
if (state->plugin != NULL)
{
@@ -116,42 +117,38 @@ static gboolean probe_func_fast (PluginHandle * plugin, ProbeState * state)
static void probe_by_scheme (ProbeState * state)
{
- gchar * s = strstr (state->filename, "://");
- gchar c;
+ const char * s = strstr (state->filename, "://");
if (s == NULL)
return;
AUDDBG ("Probing by scheme.\n");
- c = s[3];
- s[3] = 0;
- input_plugin_for_key (INPUT_KEY_SCHEME, state->filename, (PluginForEachFunc)
- probe_func_fast, state);
- s[3] = c;
+ char buf[s - state->filename + 1];
+ memcpy (buf, state->filename, s - state->filename);
+ buf[s - state->filename] = 0;
+
+ input_plugin_for_key (INPUT_KEY_SCHEME, buf, (PluginForEachFunc) probe_func_fast, state);
}
static void probe_by_extension (ProbeState * state)
{
- gchar * s = strrchr (state->filename, '.');
+ const char * ext, * sub;
+ uri_parse (state->filename, NULL, & ext, & sub, NULL);
- if (s == NULL)
+ if (ext == sub)
return;
AUDDBG ("Probing by extension.\n");
- s = g_ascii_strdown (s + 1, -1);
-
- gchar * q = strrchr (s, '?');
- if (q != NULL)
- * q = 0;
+ char buf[sub - ext];
+ memcpy (buf, ext + 1, sub - ext - 1);
+ buf[sub - ext - 1] = 0;
- input_plugin_for_key (INPUT_KEY_EXTENSION, s, (PluginForEachFunc)
- probe_func_fast, state);
- g_free (s);
+ input_plugin_for_key (INPUT_KEY_EXTENSION, buf, (PluginForEachFunc) probe_func_fast, state);
}
static void probe_by_mime (ProbeState * state)
{
- gchar * mime;
+ char * mime;
if (! check_opened (state))
return;
@@ -171,14 +168,15 @@ static void probe_by_content (ProbeState * state)
plugin_for_enabled (PLUGIN_TYPE_INPUT, (PluginForEachFunc) probe_func, state);
}
-PluginHandle * file_find_decoder (const gchar * filename, gboolean fast)
+PluginHandle * file_find_decoder (const char * filename, bool_t fast)
{
ProbeState state;
AUDDBG ("Probing %s.\n", filename);
state.plugin = NULL;
- state.filename = filename_split_subtune (filename, NULL);
+ state.filename = filename;
state.handle = NULL;
+ state.failed = FALSE;
probe_by_scheme (& state);
@@ -198,24 +196,19 @@ PluginHandle * file_find_decoder (const gchar * filename, gboolean fast)
probe_by_content (& state);
DONE:
- g_free (state.filename);
-
if (state.handle != NULL)
vfs_fclose (state.handle);
return state.plugin;
}
-Tuple * file_read_tuple (const gchar * filename, PluginHandle * decoder)
+Tuple * file_read_tuple (const char * filename, PluginHandle * decoder)
{
InputPlugin * ip = plugin_get_header (decoder);
g_return_val_if_fail (ip, NULL);
g_return_val_if_fail (ip->probe_for_tuple, NULL);
- gchar * real = filename_split_subtune (filename, NULL);
- VFSFile * handle = vfs_fopen (real, "r");
- g_free (real);
-
+ VFSFile * handle = vfs_fopen (filename, "r");
Tuple * tuple = ip->probe_for_tuple (filename, handle);
if (handle)
@@ -224,8 +217,8 @@ Tuple * file_read_tuple (const gchar * filename, PluginHandle * decoder)
return tuple;
}
-gboolean file_read_image (const gchar * filename, PluginHandle * decoder,
- void * * data, gint * size)
+bool_t file_read_image (const char * filename, PluginHandle * decoder,
+ void * * data, int64_t * size)
{
if (! input_plugin_has_images (decoder))
return FALSE;
@@ -234,38 +227,39 @@ gboolean file_read_image (const gchar * filename, PluginHandle * decoder,
g_return_val_if_fail (ip, FALSE);
g_return_val_if_fail (ip->get_song_image, FALSE);
- gchar * real = filename_split_subtune (filename, NULL);
- VFSFile * handle = vfs_fopen (real, "r");
- g_free (real);
-
- gboolean success = ip->get_song_image (filename, handle, data, size);
+ VFSFile * handle = vfs_fopen (filename, "r");
+ bool_t success = ip->get_song_image (filename, handle, data, size);
if (handle)
vfs_fclose (handle);
+ if (! success)
+ {
+ * data = NULL;
+ * size = 0;
+ }
+
return success;
}
-gboolean file_can_write_tuple (const gchar * filename, PluginHandle * decoder)
+bool_t file_can_write_tuple (const char * filename, PluginHandle * decoder)
{
return input_plugin_can_write_tuple (decoder);
}
-gboolean file_write_tuple (const gchar * filename, PluginHandle * decoder,
+bool_t file_write_tuple (const char * filename, PluginHandle * decoder,
const Tuple * tuple)
{
InputPlugin * ip = plugin_get_header (decoder);
g_return_val_if_fail (ip, FALSE);
g_return_val_if_fail (ip->update_song_tuple, FALSE);
- gchar * real = filename_split_subtune (filename, NULL);
- VFSFile * handle = vfs_fopen (real, "r+");
- g_free (real);
+ VFSFile * handle = vfs_fopen (filename, "r+");
if (! handle)
return FALSE;
- gboolean success = ip->update_song_tuple (tuple, handle);
+ bool_t success = ip->update_song_tuple (tuple, handle);
if (handle)
vfs_fclose (handle);
@@ -276,7 +270,7 @@ gboolean file_write_tuple (const gchar * filename, PluginHandle * decoder,
return success;
}
-gboolean custom_infowin (const gchar * filename, PluginHandle * decoder)
+bool_t custom_infowin (const char * filename, PluginHandle * decoder)
{
if (! input_plugin_has_infowin (decoder))
return FALSE;
diff --git a/src/audacious/signals.c b/src/audacious/signals.c
index 99fbbc5..7fda12c 100644
--- a/src/audacious/signals.c
+++ b/src/audacious/signals.c
@@ -21,16 +21,18 @@
#include <signal.h>
#include <glib.h>
-#include <libaudcore/eventqueue.h>
+
+#include <libaudcore/hook.h>
#include "config.h"
+#include "main.h"
#ifdef HAVE_SIGWAIT
static sigset_t signal_set;
static void * signal_thread (void * data)
{
- gint signal;
+ int signal;
while (! sigwait (& signal_set, & signal))
event_queue ("quit", NULL);
diff --git a/src/audacious/smclient.c b/src/audacious/smclient.c
index bb5e2ff..846efed 100644
--- a/src/audacious/smclient.c
+++ b/src/audacious/smclient.c
@@ -21,17 +21,16 @@
#include <gdk/gdk.h>
#include <libaudcore/hook.h>
-#include "audconfig.h"
#include "config.h"
+#include "main.h"
#ifdef USE_EGGSM
-
#include "eggsmclient.h"
static void
signal_session_quit_cb(EggSMClient *client, gpointer user_data)
{
- const gchar * argv[2];
+ const char * argv[2];
g_print("Session quit requested. Saving state and shutting down.\n");
@@ -45,7 +44,7 @@ signal_session_quit_cb(EggSMClient *client, gpointer user_data)
static void
signal_session_save_cb(EggSMClient *client, GKeyFile *state_file, gpointer user_data)
{
- const gchar * argv[2];
+ const char * argv[2];
g_print("Session save requested. Saving state.\n");
@@ -53,7 +52,7 @@ signal_session_save_cb(EggSMClient *client, GKeyFile *state_file, gpointer user_
argv[1] = g_strdup_printf ("--display=%s", gdk_display_get_name (gdk_display_get_default()));
egg_sm_client_set_restart_command (client, 2, argv);
- aud_config_save();
+ do_autosave ();
}
#endif
diff --git a/src/audacious/types.h b/src/audacious/types.h
index 50faaba..6e789c3 100644
--- a/src/audacious/types.h
+++ b/src/audacious/types.h
@@ -22,34 +22,40 @@
#ifndef AUDACIOUS_TYPES_H
#define AUDACIOUS_TYPES_H
-#include <glib.h>
-
#define AUD_EQUALIZER_NBANDS 10
#define EQUALIZER_MAX_GAIN 12
+enum {
+ PLUGIN_TYPE_TRANSPORT,
+ PLUGIN_TYPE_PLAYLIST,
+ PLUGIN_TYPE_INPUT,
+ PLUGIN_TYPE_EFFECT,
+ PLUGIN_TYPE_OUTPUT,
+ PLUGIN_TYPE_VIS,
+ PLUGIN_TYPE_GENERAL,
+ PLUGIN_TYPE_IFACE,
+ PLUGIN_TYPES};
+
typedef struct PluginHandle PluginHandle;
-#ifdef _AUDACIOUS_CORE
typedef const struct _Plugin Plugin;
-#endif
-
+typedef const struct _TransportPlugin TransportPlugin;
+typedef const struct _PlaylistPlugin PlaylistPlugin;
typedef const struct _InputPlugin InputPlugin;
-typedef const struct _OutputPlugin OutputPlugin;
typedef const struct _EffectPlugin EffectPlugin;
-typedef const struct _GeneralPlugin GeneralPlugin;
+typedef const struct _OutputPlugin OutputPlugin;
typedef const struct _VisPlugin VisPlugin;
-typedef const struct _TransportPlugin TransportPlugin;
-typedef const struct _PlaylistPlugin PlaylistPlugin;
+typedef const struct _GeneralPlugin GeneralPlugin;
+typedef const struct _IfacePlugin IfacePlugin;
-typedef struct _Iface Iface;
typedef struct _PluginPreferences PluginPreferences;
typedef struct _PreferencesWidget PreferencesWidget;
typedef struct {
- gfloat track_gain; /* dB */
- gfloat track_peak; /* 0-1 */
- gfloat album_gain; /* dB */
- gfloat album_peak; /* 0-1 */
+ float track_gain; /* dB */
+ float track_peak; /* 0-1 */
+ float album_gain; /* dB */
+ float album_peak; /* 0-1 */
} ReplayGainInfo;
#endif
diff --git a/src/audacious/ui_albumart.c b/src/audacious/ui_albumart.c
index 6675f8d..45dd5dd 100644
--- a/src/audacious/ui_albumart.c
+++ b/src/audacious/ui_albumart.c
@@ -20,18 +20,16 @@
*/
#include <glib.h>
-#include <gtk/gtk.h>
#include <string.h>
#include <libaudcore/audstrings.h>
-#include "audconfig.h"
#include "config.h"
#include "i18n.h"
#include "misc.h"
-static gboolean
-has_front_cover_extension(const gchar *name)
+static bool_t
+has_front_cover_extension(const char *name)
{
char *ext;
@@ -46,14 +44,14 @@ has_front_cover_extension(const gchar *name)
g_strcasecmp(ext, ".png") == 0;
}
-static gboolean
-cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_empty)
+static bool_t
+cover_name_filter(const char *name, const char *filter, const bool_t ret_on_empty)
{
- gboolean result = FALSE;
- gchar **splitted;
- gchar *current;
- gchar *lname;
- gint i;
+ bool_t result = FALSE;
+ char **splitted;
+ char *current;
+ char *lname;
+ int i;
if (!filter || strlen(filter) == 0) {
return ret_on_empty;
@@ -65,7 +63,7 @@ cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_
g_strdown(lname);
for (i = 0; !result && (current = splitted[i]); i++) {
- gchar *stripped = g_strstrip(g_strdup(current));
+ char *stripped = g_strstrip(g_strdup(current));
g_strdown(stripped);
result = result || strstr(lname, stripped);
@@ -80,15 +78,19 @@ cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_
}
/* Check wether it's an image we want */
-static gboolean
-is_front_cover_image(const gchar *imgfile)
+static bool_t is_front_cover_image (const char * file)
{
- return cover_name_filter(imgfile, cfg.cover_name_include, TRUE) &&
- !cover_name_filter(imgfile, cfg.cover_name_exclude, FALSE);
+ char * include = get_string (NULL, "cover_name_include");
+ char * exclude = get_string (NULL, "cover_name_exclude");
+ bool_t accept = cover_name_filter (file, include, TRUE) &&
+ ! cover_name_filter (file, exclude, FALSE);
+ g_free (include);
+ g_free (exclude);
+ return accept;
}
-static gboolean
-is_file_image(const gchar *imgfile, const gchar *file_name)
+static bool_t
+is_file_image(const char *imgfile, const char *file_name)
{
char *imgfile_ext, *file_name_ext;
size_t imgfile_len, file_name_len;
@@ -115,23 +117,24 @@ is_file_image(const gchar *imgfile, const gchar *file_name)
}
}
-static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
- file_name, gint depth)
+static char * fileinfo_recursive_get_image (const char * path, const char *
+ file_name, int depth)
{
GDir *d;
- if (cfg.recurse_for_cover && depth > cfg.recurse_for_cover_depth)
+ if (get_bool (NULL, "recurse_for_cover") && depth > get_int (NULL, "recurse_for_cover_depth"))
return NULL;
d = g_dir_open(path, 0, NULL);
if (d) {
- const gchar *f;
+ const char *f;
- if (cfg.use_file_cover && file_name) {
+ if (get_bool (NULL, "use_file_cover") && file_name)
+ {
/* Look for images matching file name */
while((f = g_dir_read_name(d))) {
- gchar *newpath = g_strconcat(path, "/", f, NULL);
+ char *newpath = g_strconcat(path, "/", f, NULL);
if (!g_file_test(newpath, G_FILE_TEST_IS_DIR) &&
has_front_cover_extension(f) &&
@@ -147,7 +150,7 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
/* Search for files using filter */
while ((f = g_dir_read_name(d))) {
- gchar *newpath = g_strconcat(path, "/", f, NULL);
+ char *newpath = g_strconcat(path, "/", f, NULL);
if (!g_file_test(newpath, G_FILE_TEST_IS_DIR) &&
has_front_cover_extension(f) &&
@@ -161,17 +164,18 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
g_dir_rewind(d);
/* checks whether recursive or not. */
- if (!cfg.recurse_for_cover) {
+ if (! get_bool (NULL, "recurse_for_cover"))
+ {
g_dir_close(d);
return NULL;
}
/* Descend into directories recursively. */
while ((f = g_dir_read_name(d))) {
- gchar *newpath = g_strconcat(path, "/", f, NULL);
+ char *newpath = g_strconcat(path, "/", f, NULL);
if(g_file_test(newpath, G_FILE_TEST_IS_DIR)) {
- gchar *tmp = fileinfo_recursive_get_image(newpath,
+ char *tmp = fileinfo_recursive_get_image(newpath,
NULL, depth + 1);
if(tmp) {
g_free(newpath);
@@ -189,18 +193,18 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
return NULL;
}
-gchar * get_associated_image_file (const gchar * filename)
+char * get_associated_image_file (const char * filename)
{
if (strncmp (filename, "file://", 7))
return NULL;
- gchar * unesc = uri_to_filename (filename);
+ char * unesc = uri_to_filename (filename);
if (! unesc)
return NULL;
- gchar * path = g_path_get_dirname (unesc);
- gchar * base = g_path_get_basename (unesc);
- gchar * image_file = fileinfo_recursive_get_image (path, base, 0);
+ char * path = g_path_get_dirname (unesc);
+ char * base = g_path_get_basename (unesc);
+ char * image_file = fileinfo_recursive_get_image (path, base, 0);
g_free (unesc);
g_free (path);
diff --git a/src/audacious/ui_plugin_menu.c b/src/audacious/ui_plugin_menu.c
index bb43ed9..a614735 100644
--- a/src/audacious/ui_plugin_menu.c
+++ b/src/audacious/ui_plugin_menu.c
@@ -1,12 +1,12 @@
/*
* ui_plugin_menu.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
* This file is part of Audacious.
*
* Audacious 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, version 3 of the License.
+ * Foundation, version 2 or version 3 of the License.
*
* Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
@@ -24,45 +24,80 @@
#include "misc.h"
-static void destroy_warning (void)
-{
- fprintf (stderr, "Interface destroyed a plugin services menu!\n");
-}
+struct Item {
+ MenuFunc func;
+ const char * name;
+ const char * icon;
+};
+
+static GList * items[AUD_MENU_COUNT];
+static GtkWidget * menus[AUD_MENU_COUNT];
-/* GtkWidget * get_plugin_menu (gint id) */
-void * get_plugin_menu (gint id)
+static void add_to_menu (GtkWidget * menu, struct Item * item)
{
- static gboolean initted = FALSE;
- static GtkWidget * menus[TOTAL_PLUGIN_MENUS];
+ GtkWidget * widget = gtk_image_menu_item_new_with_mnemonic (item->name);
+ g_object_set_data ((GObject *) widget, "func", (void *) item->func);
+ g_signal_connect (widget, "activate", item->func, NULL);
- if (! initted)
- {
- memset (menus, 0, sizeof menus);
- initted = TRUE;
- }
+ if (item->icon)
+ gtk_image_menu_item_set_image ((GtkImageMenuItem *) widget,
+ gtk_image_new_from_stock (item->icon, GTK_ICON_SIZE_MENU));
- if (menus[id] == NULL)
+ gtk_widget_show (widget);
+ gtk_menu_shell_append ((GtkMenuShell *) menu, widget);
+}
+
+/* GtkWidget * get_plugin_menu (int id) */
+void * get_plugin_menu (int id)
+{
+ if (! menus[id])
{
menus[id] = gtk_menu_new ();
- g_object_ref ((GObject *) menus[id]);
- g_signal_connect (menus[id], "destroy", (GCallback) destroy_warning,
- NULL);
- gtk_widget_show (menus[id]);
+ g_signal_connect (menus[id], "destroy", (GCallback)
+ gtk_widget_destroyed, & menus[id]);
+
+ for (GList * node = items[id]; node; node = node->next)
+ add_to_menu (menus[id], node->data);
}
return menus[id];
}
-/* gint menu_plugin_item_add (gint id, GtkWidget * item) */
-gint menu_plugin_item_add (gint id, void * item)
+void plugin_menu_add (int id, MenuFunc func, const char * name,
+ const char * icon)
{
- gtk_menu_shell_append ((GtkMenuShell *) get_plugin_menu (id), item);
- return 0;
+ struct Item * item = g_slice_new (struct Item);
+ item->name = name;
+ item->icon = icon;
+ item->func = func;
+
+ items[id] = g_list_append (items[id], item);
+
+ if (menus[id])
+ add_to_menu (menus[id], item);
+}
+
+static void remove_cb (GtkWidget * widget, MenuFunc func)
+{
+ if ((MenuFunc) g_object_get_data ((GObject *) widget, "func") == func)
+ gtk_widget_destroy (widget);
}
-/* gint menu_plugin_item_remove (gint id, GtkWidget * item) */
-gint menu_plugin_item_remove (gint id, void * item)
+void plugin_menu_remove (int id, MenuFunc func)
{
- gtk_container_remove ((GtkContainer *) get_plugin_menu (id), item);
- return 0;
+ if (menus[id])
+ gtk_container_foreach ((GtkContainer *) menus[id], (GtkCallback)
+ remove_cb, (void *) func);
+
+ GList * next;
+ for (GList * node = items[id]; node; node = next)
+ {
+ next = node->next;
+
+ if (((struct Item *) node->data)->func == func)
+ {
+ g_slice_free (struct Item, node->data);
+ items[id] = g_list_delete_link (items[id], node);
+ }
+ }
}
diff --git a/src/audacious/ui_preferences.c b/src/audacious/ui_preferences.c
index 7dbc2f9..ec905ed 100644
--- a/src/audacious/ui_preferences.c
+++ b/src/audacious/ui_preferences.c
@@ -1,5 +1,5 @@
/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2010 Audacious development team.
+ * Copyright (C) 2005-2011 Audacious development team.
*
* 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
@@ -25,24 +25,22 @@
#include <libaudcore/hook.h>
-#include "audconfig.h"
#include "config.h"
-#include "configdb.h"
#include "debug.h"
-#include "glib-compat.h"
#include "gtk-compat.h"
#include "i18n.h"
#include "misc.h"
#include "output.h"
#include "playback.h"
#include "playlist.h"
-#include "playlist-utils.h"
#include "plugin.h"
#include "plugins.h"
#include "preferences.h"
#include "ui_preferences.h"
-#define TITLESTRING_UPDATE_TIMEOUT 3
+#ifdef USE_CHARDET
+#include <libguess.h>
+#endif
static void sw_volume_toggled (void);
@@ -54,13 +52,13 @@ enum CategoryViewCols {
};
typedef struct {
- const gchar *icon_path;
- const gchar *name;
+ const char *icon_path;
+ const char *name;
} Category;
typedef struct {
- const gchar *name;
- const gchar *tag;
+ const char *name;
+ const char *tag;
} TitleFieldTag;
static /* GtkWidget * */ void * prefswin = NULL;
@@ -70,29 +68,27 @@ static GtkWidget *category_notebook = NULL;
GtkWidget *filepopupbutton = NULL;
/* filepopup settings widgets */
-GtkWidget *filepopup_settings_cover_name_include;
-GtkWidget *filepopup_settings_cover_name_exclude;
-GtkWidget *filepopup_settings_recurse_for_cover;
-GtkWidget *filepopup_settings_recurse_for_cover_depth;
-GtkWidget *filepopup_settings_recurse_for_cover_depth_box;
-GtkWidget *filepopup_settings_use_file_cover;
-GtkWidget *filepopup_settings_showprogressbar;
-GtkWidget *filepopup_settings_delay;
+GtkWidget *filepopup_cover_name_include;
+GtkWidget *filepopup_cover_name_exclude;
+GtkWidget *filepopup_recurse;
+GtkWidget *filepopup_recurse_depth;
+GtkWidget *filepopup_recurse_depth_box;
+GtkWidget *filepopup_use_file_cover;
+GtkWidget *filepopup_showprogressbar;
+GtkWidget *filepopup_delay;
/* prefswin widgets */
GtkWidget *titlestring_entry;
-GtkWidget *filepopup_for_tuple_settings_button;
-static gint titlestring_timeout_counter = 0;
+GtkWidget *filepopup_settings_button;
static Category categories[] = {
{"audio.png", N_("Audio")},
- {"replay_gain.png", N_("Replay Gain")},
{"connectivity.png", N_("Network")},
{"playlist.png", N_("Playlist")},
{"plugins.png", N_("Plugins")},
};
-static gint n_categories = G_N_ELEMENTS(categories);
+static int n_categories = G_N_ELEMENTS(categories);
static TitleFieldTag title_field_tags[] = {
{ N_("Artist") , "${artist}" },
@@ -108,23 +104,23 @@ static TitleFieldTag title_field_tags[] = {
{ N_("Codec") , "${codec}" },
{ N_("Quality") , "${quality}" },
};
-static const guint n_title_field_tags = G_N_ELEMENTS(title_field_tags);
+static const unsigned int n_title_field_tags = G_N_ELEMENTS(title_field_tags);
+#ifdef USE_CHARDET
static ComboBoxElements chardet_detector_presets[] = {
- { N_("None") , N_("None") },
- { N_("Japanese") , N_("Japanese") },
- { N_("Taiwanese"), N_("Taiwanese") },
- { N_("Chinese") , N_("Chinese") },
- { N_("Korean") , N_("Korean") },
- { N_("Russian") , N_("Russian") },
- { N_("Greek") , N_("Greek") },
- { N_("Hebrew") , N_("Hebrew") },
- { N_("Turkish") , N_("Turkish") },
- { N_("Arabic") , N_("Arabic") },
- { N_("Polish") , N_("Polish") },
- { N_("Baltic") , N_("Baltic") },
- { N_("Universal"), N_("Universal") }
-};
+ {"", N_("None")},
+ {GUESS_REGION_AR, N_("Arabic")},
+ {GUESS_REGION_BL, N_("Baltic")},
+ {GUESS_REGION_CN, N_("Chinese")},
+ {GUESS_REGION_GR, N_("Greek")},
+ {GUESS_REGION_HW, N_("Hebrew")},
+ {GUESS_REGION_JP, N_("Japanese")},
+ {GUESS_REGION_KR, N_("Korean")},
+ {GUESS_REGION_PL, N_("Polish")},
+ {GUESS_REGION_RU, N_("Russian")},
+ {GUESS_REGION_TW, N_("Taiwanese")},
+ {GUESS_REGION_TR, N_("Turkish")}};
+#endif
static ComboBoxElements bitdepth_elements[] = {
{ GINT_TO_POINTER(16), "16" },
@@ -136,93 +132,108 @@ static ComboBoxElements bitdepth_elements[] = {
typedef struct {
void *next;
GtkWidget *container;
- const gchar * pg_name;
- const gchar * img_url;
+ const char * pg_name;
+ const char * img_url;
} CategoryQueueEntry;
CategoryQueueEntry *category_queue = NULL;
-static PreferencesWidget audio_page_widgets[] = {
- {WIDGET_LABEL, N_("<b>Bit Depth</b>"), NULL, NULL, NULL, FALSE},
- {WIDGET_COMBO_BOX, N_("Output bit depth:"), &cfg.output_bit_depth, NULL,
- N_("All streams will be converted to this bit depth.\n"
- "This should be the max supported bit depth of\nthe sound card or output plugin."), FALSE,
- {.combo = {bitdepth_elements, G_N_ELEMENTS(bitdepth_elements), TRUE}}, VALUE_INT},
- {WIDGET_LABEL, N_("<b>Volume Control</b>"), NULL, NULL, NULL, FALSE},
- {WIDGET_CHK_BTN, N_("Use software volume control"),
- & cfg.software_volume_control, sw_volume_toggled,
- N_("Use software volume control. This may be useful for situations where your audio system does not support controlling the playback volume."), FALSE},
-};
+static void * create_output_plugin_box (void);
-static PreferencesWidget rg_params_elements[] =
-{{WIDGET_SPIN_BTN, N_("Amplify all files:"), & cfg.replay_gain_preamp, NULL,
- NULL, FALSE, {.spin_btn = {-15, 15, 0.01, N_("dB")}}, VALUE_FLOAT},
-{WIDGET_SPIN_BTN, N_("Amplify untagged files:"), & cfg.default_gain, NULL,
- NULL, FALSE, {.spin_btn = {-15, 15, 0.01, N_("dB")}}, VALUE_FLOAT}};
-
-static PreferencesWidget replay_gain_page_widgets[] =
- {{WIDGET_LABEL, N_("<b>Replay Gain</b>"), NULL, NULL, NULL, FALSE},
- {WIDGET_CHK_BTN, N_("Enable Replay Gain"), &cfg.enable_replay_gain, NULL,
- NULL, FALSE},
- {WIDGET_LABEL, N_("<b>Mode</b>"), NULL, NULL, NULL, TRUE},
- {WIDGET_RADIO_BTN, N_("Single track mode"), &cfg.replay_gain_track, NULL,
- NULL, TRUE},
- {WIDGET_RADIO_BTN, N_("Album mode"), &cfg.replay_gain_album, NULL, NULL,
- TRUE},
- {WIDGET_LABEL, N_("<b>Adjust Levels</b>"), NULL, NULL, NULL, TRUE},
- {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {rg_params_elements,
- G_N_ELEMENTS (rg_params_elements)}}},
- {WIDGET_LABEL, N_("<b>Clipping Prevention</b>"), NULL, NULL, NULL, TRUE},
- {WIDGET_CHK_BTN, N_("Enable clipping prevention"),
- & cfg.enable_clipping_prevention, NULL, NULL, TRUE}};
+static PreferencesWidget rg_mode_widgets[] = {
+ {WIDGET_CHK_BTN, N_("Album mode"), .cfg_type = VALUE_BOOLEAN, .cname = "replay_gain_album"}};
+
+static PreferencesWidget audio_page_widgets[] = {
+ {WIDGET_LABEL, N_("<b>Output Settings</b>")},
+ {WIDGET_CUSTOM, .data = {.populate = create_output_plugin_box}},
+ {WIDGET_COMBO_BOX, N_("Bit depth:"),
+ .cfg_type = VALUE_INT, .cname = "output_bit_depth",
+ .data = {.combo = {bitdepth_elements, G_N_ELEMENTS (bitdepth_elements), TRUE}}},
+ {WIDGET_SPIN_BTN, N_("Buffer size:"),
+ .cfg_type = VALUE_INT, .cname = "output_buffer_size",
+ .data = {.spin_btn = {100, 10000, 1000, N_("ms")}}},
+ {WIDGET_CHK_BTN, N_("Use software volume control (not recommended)"),
+ .cfg_type = VALUE_BOOLEAN, .cname = "software_volume_control", .callback = sw_volume_toggled},
+ {WIDGET_LABEL, N_("<b>Replay Gain</b>")},
+ {WIDGET_CHK_BTN, N_("Enable Replay Gain"),
+ .cfg_type = VALUE_BOOLEAN, .cname = "enable_replay_gain"},
+ {WIDGET_BOX, .child = TRUE, .data = {.box = {rg_mode_widgets, G_N_ELEMENTS (rg_mode_widgets), TRUE}}},
+ {WIDGET_CHK_BTN, N_("Prevent clipping (recommended)"), .child = TRUE,
+ .cfg_type = VALUE_BOOLEAN, .cname = "enable_clipping_prevention"},
+ {WIDGET_LABEL, N_("<b>Adjust Levels</b>"), .child = TRUE},
+ {WIDGET_SPIN_BTN, N_("Amplify all files:"), .child = TRUE,
+ .cfg_type = VALUE_FLOAT, .cname = "replay_gain_preamp",
+ .data = {.spin_btn = {-15, 15, 0.1, N_("dB")}}},
+ {WIDGET_SPIN_BTN, N_("Amplify untagged files:"), .child = TRUE,
+ .cfg_type = VALUE_FLOAT, .cname = "default_gain",
+ .data = {.spin_btn = {-15, 15, 0.1, N_("dB")}}}};
static PreferencesWidget proxy_host_port_elements[] = {
- {WIDGET_ENTRY, N_("Proxy hostname:"), "proxy_host", NULL, NULL, FALSE, {.entry = {FALSE}}, VALUE_CFG_STRING},
- {WIDGET_ENTRY, N_("Proxy port:"), "proxy_port", NULL, NULL, FALSE, {.entry = {FALSE}}, VALUE_CFG_STRING},
-};
+ {WIDGET_ENTRY, N_("Proxy hostname:"), .cfg_type = VALUE_STRING, .cname = "proxy_host"},
+ {WIDGET_ENTRY, N_("Proxy port:"), .cfg_type = VALUE_STRING, .cname = "proxy_port"}};
static PreferencesWidget proxy_auth_elements[] = {
- {WIDGET_ENTRY, N_("Proxy username:"), "proxy_user", NULL, NULL, FALSE, {.entry = {FALSE}}, VALUE_CFG_STRING},
- {WIDGET_ENTRY, N_("Proxy password:"), "proxy_pass", NULL, NULL, FALSE, {.entry = {TRUE}}, VALUE_CFG_STRING},
-};
+ {WIDGET_ENTRY, N_("Proxy username:"), .cfg_type = VALUE_STRING, .cname = "proxy_user"},
+ {WIDGET_ENTRY, N_("Proxy password:"), .cfg_type = VALUE_STRING, .cname = "proxy_pass",
+ .data = {.entry = {.password = TRUE}}}};
static PreferencesWidget connectivity_page_widgets[] = {
{WIDGET_LABEL, N_("<b>Proxy Configuration</b>"), NULL, NULL, NULL, FALSE},
- {WIDGET_CHK_BTN, N_("Enable proxy usage"), "use_proxy", NULL, NULL, FALSE,
- .cfg_type = VALUE_CFG_BOOLEAN},
- {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {proxy_host_port_elements, G_N_ELEMENTS(proxy_host_port_elements)}}},
- {WIDGET_CHK_BTN, N_("Use authentication with proxy"), "proxy_use_auth",
- NULL, NULL, FALSE, .cfg_type = VALUE_CFG_BOOLEAN},
- {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {proxy_auth_elements, G_N_ELEMENTS(proxy_auth_elements)}}},
- {WIDGET_LABEL, N_("<span size=\"small\">Changing these settings will require a restart of Audacious.</span>"), NULL, NULL, NULL, FALSE, {.label = {"gtk-dialog-warning"}}},
+ {WIDGET_CHK_BTN, N_("Enable proxy usage"), .cfg_type = VALUE_BOOLEAN, .cname = "use_proxy"},
+ {WIDGET_TABLE, .child = TRUE, .data = {.table = {proxy_host_port_elements,
+ G_N_ELEMENTS (proxy_host_port_elements)}}},
+ {WIDGET_CHK_BTN, N_("Use authentication with proxy"),
+ .cfg_type = VALUE_BOOLEAN, .cname = "use_proxy_auth"},
+ {WIDGET_TABLE, .child = TRUE, .data = {.table = {proxy_auth_elements,
+ G_N_ELEMENTS (proxy_auth_elements)}}}
};
static PreferencesWidget chardet_elements[] = {
- {WIDGET_COMBO_BOX, N_("Auto character encoding detector for:"), &cfg.chardet_detector, NULL, NULL, TRUE,
- {.combo = {chardet_detector_presets, G_N_ELEMENTS(chardet_detector_presets),
- #ifdef USE_CHARDET
- TRUE
- #else
- FALSE
- #endif
- }}, VALUE_STRING},
- {WIDGET_ENTRY, N_("Fallback character encodings:"), &cfg.chardet_fallback, aud_config_chardet_update, N_("List of character encodings used for fall back conversion of metadata. If automatic character encoding detector failed or has been disabled, encodings in this list would be treated as candidates of the encoding of metadata, and fall back conversion from these encodings to UTF-8 would be attempted."), TRUE, {.entry = {FALSE}}, VALUE_STRING},
-};
+#ifdef USE_CHARDET
+ {WIDGET_COMBO_BOX, N_("Auto character encoding detector for:"),
+ .cfg_type = VALUE_STRING, .cname = "chardet_detector", .child = TRUE,
+ .data = {.combo = {chardet_detector_presets,
+ G_N_ELEMENTS (chardet_detector_presets), TRUE}}},
+#endif
+ {WIDGET_ENTRY, N_("Fallback character encodings:"), .cfg_type = VALUE_STRING,
+ .cname = "chardet_fallback", .child = TRUE}};
static PreferencesWidget playlist_page_widgets[] = {
{WIDGET_LABEL, N_("<b>Behavior</b>"), NULL, NULL, NULL, FALSE},
{WIDGET_CHK_BTN, N_("Continue playback on startup"),
- & cfg.resume_playback_on_startup, NULL, NULL, FALSE},
+ .cfg_type = VALUE_BOOLEAN, .cname = "resume_playback_on_startup"},
{WIDGET_CHK_BTN, N_("Advance when the current song is deleted"),
- & cfg.advance_on_delete, NULL, NULL, FALSE},
+ .cfg_type = VALUE_BOOLEAN, .cname = "advance_on_delete"},
{WIDGET_CHK_BTN, N_("Clear the playlist when opening files"),
- & cfg.clear_playlist, NULL, NULL, FALSE},
+ .cfg_type = VALUE_BOOLEAN, .cname = "clear_playlist"},
{WIDGET_CHK_BTN, N_("Open files in a temporary playlist"),
- & cfg.open_to_temporary, NULL, NULL, FALSE},
+ .cfg_type = VALUE_BOOLEAN, .cname = "open_to_temporary"},
{WIDGET_LABEL, N_("<b>Metadata</b>"), NULL, NULL, NULL, FALSE},
- {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {chardet_elements, G_N_ELEMENTS(chardet_elements)}}},
+ {WIDGET_CHK_BTN, N_("Do not load metadata for songs until played"),
+ .cfg_type = VALUE_BOOLEAN, .cname = "metadata_on_play",
+ .callback = playlist_trigger_scan},
+ {WIDGET_TABLE, .data = {.table = {chardet_elements,
+ G_N_ELEMENTS (chardet_elements)}}}
};
+#define TITLESTRING_NPRESETS 6
+
+static const char * const titlestring_presets[TITLESTRING_NPRESETS] = {
+ "${title}",
+ "${?artist:${artist} - }${title}",
+ "${?artist:${artist} - }${?album:${album} - }${title}",
+ "${?artist:${artist} - }${?album:${album} - }${?track-number:${track-number}. }${title}",
+ "${?artist:${artist} }${?album:[ ${album} ] }${?artist:- }${?track-number:${track-number}. }${title}",
+ "${?album:${album} - }${title}"};
+
+static const char * const titlestring_preset_names[TITLESTRING_NPRESETS] = {
+ N_("TITLE"),
+ N_("ARTIST - TITLE"),
+ N_("ARTIST - ALBUM - TITLE"),
+ N_("ARTIST - ALBUM - TRACK. TITLE"),
+ N_("ARTIST [ ALBUM ] - TRACK. TITLE"),
+ N_("ALBUM - TITLE")};
+
static void prefswin_page_queue_destroy(CategoryQueueEntry *ent);
static void
@@ -231,7 +242,7 @@ change_category(GtkNotebook * notebook,
{
GtkTreeModel *model;
GtkTreeIter iter;
- gint index;
+ int index;
if (!gtk_tree_selection_get_selected(selection, &model, &iter))
return;
@@ -242,8 +253,8 @@ change_category(GtkNotebook * notebook,
static void
editable_insert_text(GtkEditable * editable,
- const gchar * text,
- gint * pos)
+ const char * text,
+ int * pos)
{
gtk_editable_insert_text(editable, text, strlen(text), pos);
}
@@ -252,9 +263,9 @@ static void
titlestring_tag_menu_callback(GtkMenuItem * menuitem,
gpointer data)
{
- const gchar *separator = " - ";
- gint item = GPOINTER_TO_INT(data);
- gint pos;
+ const char *separator = " - ";
+ int item = GPOINTER_TO_INT(data);
+ int pos;
pos = gtk_editable_get_position(GTK_EDITABLE(titlestring_entry));
@@ -276,77 +287,140 @@ on_titlestring_help_button_clicked(GtkButton * button,
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME);
}
+static void update_titlestring_cbox (GtkComboBox * cbox, const char * format)
+{
+ int preset;
+ for (preset = 0; preset < TITLESTRING_NPRESETS; preset ++)
+ {
+ if (! strcmp (titlestring_presets[preset], format))
+ break;
+ }
-static void
-on_titlestring_entry_realize(GtkWidget * entry,
- gpointer data)
+ if (gtk_combo_box_get_active (cbox) != preset)
+ gtk_combo_box_set_active (cbox, preset);
+}
+
+static void on_titlestring_entry_changed (GtkEntry * entry, GtkComboBox * cbox)
{
- gtk_entry_set_text(GTK_ENTRY(entry), cfg.gentitle_format);
+ const char * format = gtk_entry_get_text (entry);
+ set_string (NULL, "generic_title_format", format);
+ update_titlestring_cbox (cbox, format);
+ playlist_reformat_titles ();
+}
+
+static void on_titlestring_cbox_changed (GtkComboBox * cbox, GtkEntry * entry)
+{
+ int preset = gtk_combo_box_get_active (cbox);
+ if (preset < TITLESTRING_NPRESETS)
+ gtk_entry_set_text (entry, titlestring_presets[preset]);
+}
+
+static void widget_set_bool (PreferencesWidget * widget, bool_t value)
+{
+ g_return_if_fail (widget->cfg_type == VALUE_BOOLEAN);
+
+ if (widget->cfg)
+ * (bool_t *) widget->cfg = value;
+ else if (widget->cname)
+ set_bool (widget->csect, widget->cname, value);
+
+ if (widget->callback)
+ widget->callback ();
}
-static gboolean
-titlestring_timeout_proc (gpointer data)
+static bool_t widget_get_bool (PreferencesWidget * widget)
{
- titlestring_timeout_counter--;
+ g_return_val_if_fail (widget->cfg_type == VALUE_BOOLEAN, FALSE);
- if(titlestring_timeout_counter <= 0) {
- titlestring_timeout_counter = 0;
- playlist_reformat_titles ();
+ if (widget->cfg)
+ return * (bool_t *) widget->cfg;
+ else if (widget->cname)
+ return get_bool (widget->csect, widget->cname);
+ else
return FALSE;
- } else {
- return TRUE;
- }
}
-static void
-on_titlestring_entry_changed(GtkWidget * entry,
- gpointer data)
+static void widget_set_int (PreferencesWidget * widget, int value)
{
- g_free(cfg.gentitle_format);
- cfg.gentitle_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
+ g_return_if_fail (widget->cfg_type == VALUE_INT);
- if(titlestring_timeout_counter == 0) {
- g_timeout_add_seconds (1, (GSourceFunc) titlestring_timeout_proc, NULL);
- }
+ if (widget->cfg)
+ * (int *) widget->cfg = value;
+ else if (widget->cname)
+ set_int (widget->csect, widget->cname, value);
- titlestring_timeout_counter = TITLESTRING_UPDATE_TIMEOUT;
+ if (widget->callback)
+ widget->callback ();
}
-static void
-on_titlestring_cbox_realize(GtkWidget * cbox,
- gpointer data)
+static int widget_get_int (PreferencesWidget * widget)
{
- gtk_combo_box_set_active(GTK_COMBO_BOX(cbox), cfg.titlestring_preset);
- gtk_widget_set_sensitive(GTK_WIDGET(data),
- (cfg.titlestring_preset == (gint)n_titlestring_presets));
+ g_return_val_if_fail (widget->cfg_type == VALUE_INT, 0);
+
+ if (widget->cfg)
+ return * (int *) widget->cfg;
+ else if (widget->cname)
+ return get_int (widget->csect, widget->cname);
+ else
+ return 0;
}
-static void
-on_titlestring_cbox_changed(GtkWidget * cbox,
- gpointer data)
+static void widget_set_double (PreferencesWidget * widget, double value)
{
- gint position = gtk_combo_box_get_active(GTK_COMBO_BOX(cbox));
+ g_return_if_fail (widget->cfg_type == VALUE_FLOAT);
- cfg.titlestring_preset = position;
- gtk_widget_set_sensitive(GTK_WIDGET(data), (position == 6));
+ if (widget->cfg)
+ * (float *) widget->cfg = value;
+ else if (widget->cname)
+ set_double (widget->csect, widget->cname, value);
- playlist_reformat_titles ();
+ if (widget->callback)
+ widget->callback ();
}
-static void
-on_font_btn_realize(GtkFontButton * button, gchar **cfg)
+static double widget_get_double (PreferencesWidget * widget)
{
- gtk_font_button_set_font_name(button, *cfg);
+ g_return_val_if_fail (widget->cfg_type == VALUE_FLOAT, 0);
+
+ if (widget->cfg)
+ return * (float *) widget->cfg;
+ else if (widget->cname)
+ return get_double (widget->csect, widget->cname);
+ else
+ return 0;
}
-static void
-on_font_btn_font_set(GtkFontButton * button, gchar **config)
+static void widget_set_string (PreferencesWidget * widget, const char * value)
{
- g_free(*config);
- *config = g_strdup(gtk_font_button_get_font_name(button));
- AUDDBG("Returned font name: \"%s\"\n", *config);
- void (*callback) (void) = g_object_get_data(G_OBJECT(button), "callback");
- if (callback != NULL) callback();
+ g_return_if_fail (widget->cfg_type == VALUE_STRING);
+
+ if (widget->cfg)
+ {
+ g_free (* (char * *) widget->cfg);
+ * (char * *) widget->cfg = g_strdup (value);
+ }
+ else if (widget->cname)
+ set_string (widget->csect, widget->cname, value);
+
+ if (widget->callback)
+ widget->callback ();
+}
+
+static char * widget_get_string (PreferencesWidget * widget)
+{
+ g_return_val_if_fail (widget->cfg_type == VALUE_STRING, NULL);
+
+ if (widget->cfg)
+ return g_strdup (* (char * *) widget->cfg);
+ else if (widget->cname)
+ return get_string (widget->csect, widget->cname);
+ else
+ return NULL;
+}
+
+static void on_font_btn_font_set (GtkFontButton * button, PreferencesWidget * widget)
+{
+ widget_set_string (widget, gtk_font_button_get_font_name (button));
}
static void
@@ -397,16 +471,28 @@ void plugin_preferences_show (PluginPreferences * settings)
if (settings->init)
settings->init();
+ const char * d = settings->domain;
+ if (! d)
+ {
+ printf ("WARNING: PluginPreferences window with title \"%s\" did not "
+ "declare its gettext domain. Text may not be translated correctly.\n",
+ settings->title);
+ d = "audacious-plugins";
+ }
+
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
- gtk_window_set_title(GTK_WINDOW(window), _(settings->title));
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
+ if (settings->title)
+ gtk_window_set_title ((GtkWindow *) window, dgettext (d, settings->title));
+
+ gtk_container_set_border_width(GTK_CONTAINER(window), 10);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(plugin_preferences_destroy), settings);
vbox = gtk_vbox_new(FALSE, 10);
- create_widgets(GTK_BOX(vbox), settings->prefs, settings->n_prefs);
+ create_widgets_with_domain ((GtkBox *) vbox, settings->prefs,
+ settings->n_prefs, d);
gtk_container_add(GTK_CONTAINER(window), vbox);
bbox = gtk_hbutton_box_new();
@@ -445,48 +531,17 @@ void plugin_preferences_cleanup (PluginPreferences * p)
}
}
-static void
-on_output_plugin_bufsize_realize(GtkSpinButton *button,
- gpointer data)
-{
- gtk_spin_button_set_value(button, cfg.output_buffer_size);
-}
-
-static void
-on_output_plugin_bufsize_value_changed(GtkSpinButton *button,
- gpointer data)
+static void on_spin_btn_changed_int (GtkSpinButton * button, PreferencesWidget * widget)
{
- cfg.output_buffer_size = gtk_spin_button_get_value_as_int(button);
+ widget_set_int (widget, gtk_spin_button_get_value_as_int (button));
}
-static void
-on_spin_btn_realize_gint(GtkSpinButton *button, gint *cfg)
+static void on_spin_btn_changed_float (GtkSpinButton * button, PreferencesWidget * widget)
{
- gtk_spin_button_set_value(button, *cfg);
+ widget_set_double (widget, gtk_spin_button_get_value (button));
}
-static void
-on_spin_btn_changed_gint(GtkSpinButton *button, gint *cfg)
-{
- *cfg = gtk_spin_button_get_value_as_int(button);
-}
-
-static void
-on_spin_btn_realize_gfloat(GtkSpinButton *button, gfloat *cfg)
-{
- gtk_spin_button_set_value(button, (gdouble) *cfg);
-}
-
-static void
-on_spin_btn_changed_gfloat(GtkSpinButton *button, gfloat *cfg)
-{
- *cfg = (gfloat) gtk_spin_button_get_value(button);
-}
-
-
-static void
-on_category_treeview_realize(GtkTreeView * treeview,
- GtkNotebook * notebook)
+static void fill_category_list (GtkTreeView * treeview, GtkNotebook * notebook)
{
GtkListStore *store;
GtkCellRenderer *renderer;
@@ -495,7 +550,7 @@ on_category_treeview_realize(GtkTreeView * treeview,
GtkTreeIter iter;
GdkPixbuf *img;
CategoryQueueEntry *qlist;
- gint i;
+ int i;
column = gtk_tree_view_column_new();
gtk_tree_view_column_set_title(column, _("Category"));
@@ -510,9 +565,7 @@ on_category_treeview_realize(GtkTreeView * treeview,
gtk_tree_view_column_pack_start(column, renderer, FALSE);
gtk_tree_view_column_set_attributes(column, renderer, "text", 1, NULL);
- gint width, height;
- gtk_widget_get_size_request(GTK_WIDGET(treeview), &width, &height);
- g_object_set(G_OBJECT(renderer), "wrap-width", width - 64 - 24, "wrap-mode",
+ g_object_set ((GObject *) renderer, "wrap-width", 96, "wrap-mode",
PANGO_WRAP_WORD_CHAR, NULL);
store = gtk_list_store_new(CATEGORY_VIEW_N_COLS,
@@ -521,7 +574,7 @@ on_category_treeview_realize(GtkTreeView * treeview,
for (i = 0; i < n_categories; i ++)
{
- gchar * path = g_strdup_printf ("%s/images/%s",
+ char * path = g_strdup_printf ("%s/images/%s",
get_path (AUD_PATH_DATA_DIR), categories[i].icon_path);
img = gdk_pixbuf_new_from_file (path, NULL);
g_free (path);
@@ -553,200 +606,105 @@ on_category_treeview_realize(GtkTreeView * treeview,
}
}
-static void
-on_show_filepopup_for_tuple_realize(GtkToggleButton * button, gpointer data)
+static void on_show_filepopup_toggled (GtkToggleButton * button)
{
- gtk_toggle_button_set_active(button, cfg.show_filepopup_for_tuple);
- filepopupbutton = GTK_WIDGET(button);
-
- gtk_widget_set_sensitive(filepopup_for_tuple_settings_button, cfg.show_filepopup_for_tuple);
+ bool_t active = gtk_toggle_button_get_active (button);
+ set_bool (NULL, "show_filepopup_for_tuple", active);
+ gtk_widget_set_sensitive (filepopup_settings_button, active);
}
-static void
-on_show_filepopup_for_tuple_toggled(GtkToggleButton * button, gpointer data)
+static void on_filepopup_settings_clicked (void)
{
- cfg.show_filepopup_for_tuple = gtk_toggle_button_get_active(button);
+ char * string = get_string (NULL, "cover_name_include");
+ gtk_entry_set_text ((GtkEntry *) filepopup_cover_name_include, string);
+ g_free (string);
- gtk_widget_set_sensitive(filepopup_for_tuple_settings_button, cfg.show_filepopup_for_tuple);
-}
+ string = get_string (NULL, "cover_name_exclude");
+ gtk_entry_set_text ((GtkEntry *) filepopup_cover_name_exclude, string);
+ g_free (string);
-static void
-on_recurse_for_cover_toggled(GtkToggleButton *button, gpointer data)
-{
- gtk_widget_set_sensitive(GTK_WIDGET(data),
- gtk_toggle_button_get_active(button));
-}
+ gtk_toggle_button_set_active ((GtkToggleButton *) filepopup_recurse,
+ get_bool (NULL, "recurse_for_cover"));
+ gtk_spin_button_set_value ((GtkSpinButton *) filepopup_recurse_depth,
+ get_int (NULL, "recurse_for_cover_depth"));
+ gtk_toggle_button_set_active ((GtkToggleButton *) filepopup_use_file_cover,
+ get_bool (NULL, "use_file_cover"));
-static void
-on_filepopup_for_tuple_settings_clicked(GtkButton *button, gpointer data)
-{
- gtk_entry_set_text(GTK_ENTRY(filepopup_settings_cover_name_include), cfg.cover_name_include);
- gtk_entry_set_text(GTK_ENTRY(filepopup_settings_cover_name_exclude), cfg.cover_name_exclude);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filepopup_settings_recurse_for_cover), cfg.recurse_for_cover);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(filepopup_settings_recurse_for_cover_depth), cfg.recurse_for_cover_depth);
- on_recurse_for_cover_toggled(GTK_TOGGLE_BUTTON(filepopup_settings_recurse_for_cover), filepopup_settings_recurse_for_cover_depth_box);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filepopup_settings_use_file_cover), cfg.use_file_cover);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filepopup_settings_showprogressbar), cfg.filepopup_showprogressbar);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(filepopup_settings_delay), cfg.filepopup_delay);
+ gtk_toggle_button_set_active ((GtkToggleButton *) filepopup_showprogressbar,
+ get_bool (NULL, "filepopup_showprogressbar"));
+ gtk_spin_button_set_value ((GtkSpinButton *) filepopup_delay,
+ get_int (NULL, "filepopup_delay"));
- gtk_widget_show(filepopup_settings);
+ gtk_widget_show (filepopup_settings);
}
-static void
-on_filepopup_settings_ok_clicked(GtkButton *button, gpointer data)
+static void on_filepopup_ok_clicked (void)
{
- g_free(cfg.cover_name_include);
- cfg.cover_name_include = g_strdup(gtk_entry_get_text(GTK_ENTRY(filepopup_settings_cover_name_include)));
+ set_string (NULL, "cover_name_include",
+ gtk_entry_get_text ((GtkEntry *) filepopup_cover_name_include));
+ set_string (NULL, "cover_name_exclude",
+ gtk_entry_get_text ((GtkEntry *) filepopup_cover_name_exclude));
- g_free(cfg.cover_name_exclude);
- cfg.cover_name_exclude = g_strdup(gtk_entry_get_text(GTK_ENTRY(filepopup_settings_cover_name_exclude)));
+ set_bool (NULL, "recurse_for_cover",
+ gtk_toggle_button_get_active ((GtkToggleButton *) filepopup_recurse));
+ set_int (NULL, "recurse_for_cover_depth",
+ gtk_spin_button_get_value_as_int ((GtkSpinButton *) filepopup_recurse_depth));
+ set_bool (NULL, "use_file_cover",
+ gtk_toggle_button_get_active ((GtkToggleButton *) filepopup_use_file_cover));
- cfg.recurse_for_cover = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filepopup_settings_recurse_for_cover));
- cfg.recurse_for_cover_depth = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(filepopup_settings_recurse_for_cover_depth));
- cfg.use_file_cover = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filepopup_settings_use_file_cover));
- cfg.filepopup_showprogressbar = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filepopup_settings_showprogressbar));
- cfg.filepopup_delay = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(filepopup_settings_delay));
+ set_bool (NULL, "filepopup_showprogressbar",
+ gtk_toggle_button_get_active ((GtkToggleButton *) filepopup_showprogressbar));
+ set_int (NULL, "filepopup_delay",
+ gtk_spin_button_get_value_as_int ((GtkSpinButton *) filepopup_delay));
- gtk_widget_hide(filepopup_settings);
+ gtk_widget_hide (filepopup_settings);
}
static void
-on_filepopup_settings_cancel_clicked(GtkButton *button, gpointer data)
+on_filepopup_cancel_clicked(GtkButton *button, gpointer data)
{
gtk_widget_hide(filepopup_settings);
}
-static void
-on_toggle_button_toggled(GtkToggleButton * button, gboolean *cfg)
-{
- *cfg = gtk_toggle_button_get_active(button);
- void (*callback) (void) = g_object_get_data(G_OBJECT(button), "callback");
- if (callback != NULL) callback();
- GtkWidget *child = g_object_get_data(G_OBJECT(button), "child");
- if (child) gtk_widget_set_sensitive(GTK_WIDGET(child), *cfg);
-}
-
-static void
-on_toggle_button_realize(GtkToggleButton * button, gboolean *cfg)
-{
- gtk_toggle_button_set_active(button, cfg ? *cfg : FALSE);
- GtkWidget *child = g_object_get_data(G_OBJECT(button), "child");
- if (child) gtk_widget_set_sensitive(GTK_WIDGET(child), cfg ? *cfg : FALSE);
-}
-
-static void
-on_toggle_button_cfg_toggled(GtkToggleButton *button, gchar *cfg)
-{
- g_return_if_fail(cfg != NULL);
-
- mcs_handle_t *db;
- gboolean ret = gtk_toggle_button_get_active(button);
-
- db = cfg_db_open();
- cfg_db_set_bool(db, NULL, cfg, ret);
- cfg_db_close(db);
-}
-
-static void
-on_toggle_button_cfg_realize(GtkToggleButton *button, gchar *cfg)
-{
- mcs_handle_t *db;
- gboolean ret;
-
- g_return_if_fail(cfg != NULL);
-
- db = cfg_db_open();
-
- if (cfg_db_get_bool(db, NULL, cfg, &ret) != FALSE)
- gtk_toggle_button_set_active(button, ret);
-
- cfg_db_close(db);
-}
-
-static void
-on_entry_realize(GtkEntry *entry, gchar **cfg)
+static void on_toggle_button_toggled (GtkToggleButton * button, PreferencesWidget * widget)
{
- g_return_if_fail(cfg != NULL);
+ bool_t active = gtk_toggle_button_get_active (button);
+ widget_set_bool (widget, active);
- if (*cfg)
- gtk_entry_set_text(entry, *cfg);
+ GtkWidget * child = g_object_get_data ((GObject *) button, "child");
+ if (child)
+ gtk_widget_set_sensitive (child, active);
}
-static void
-on_entry_changed(GtkEntry *entry, gchar **cfg)
+static void init_toggle_button (GtkWidget * button, PreferencesWidget * widget)
{
- void (*callback) (void) = g_object_get_data(G_OBJECT(entry), "callback");
- const gchar *ret;
-
- g_return_if_fail(cfg != NULL);
-
- g_free(*cfg);
-
- ret = gtk_entry_get_text(entry);
-
- if (ret == NULL)
- *cfg = g_strdup("");
- else
- *cfg = g_strdup(ret);
-
- if (callback != NULL) callback();
-}
-
-static void
-on_entry_cfg_realize(GtkEntry *entry, gchar *cfg)
-{
- mcs_handle_t *db;
- gchar *ret;
-
- g_return_if_fail(cfg != NULL);
-
- db = cfg_db_open();
-
- if (cfg_db_get_string(db, NULL, cfg, &ret) != FALSE)
- gtk_entry_set_text(entry, ret);
+ if (widget->cfg_type != VALUE_BOOLEAN)
+ return;
- cfg_db_close(db);
+ gtk_toggle_button_set_active ((GtkToggleButton *) button, widget_get_bool (widget));
+ g_signal_connect (button, "toggled", (GCallback) on_toggle_button_toggled, widget);
}
-static void
-on_entry_cfg_changed(GtkEntry *entry, gchar *cfg)
+static void on_entry_changed (GtkEntry * entry, PreferencesWidget * widget)
{
- mcs_handle_t *db;
- gchar *ret = g_strdup(gtk_entry_get_text(entry));
-
- g_return_if_fail(cfg != NULL);
-
- db = cfg_db_open();
- cfg_db_set_string(db, NULL, cfg, ret);
- cfg_db_close(db);
-
- g_free(ret);
+ widget_set_string (widget, gtk_entry_get_text (entry));
}
-static void
-on_cbox_changed_int(GtkComboBox * combobox, PreferencesWidget *widget)
+static void on_cbox_changed_int (GtkComboBox * combobox, PreferencesWidget * widget)
{
- gint position = 0;
-
- position = gtk_combo_box_get_active(GTK_COMBO_BOX(combobox));
- *((gint *)widget->cfg) = GPOINTER_TO_INT(widget->data.combo.elements[position].value);
+ int position = gtk_combo_box_get_active (combobox);
+ widget_set_int (widget, GPOINTER_TO_INT (widget->data.combo.elements[position].value));
}
-static void
-on_cbox_changed_string(GtkComboBox * combobox, PreferencesWidget *widget)
+static void on_cbox_changed_string (GtkComboBox * combobox, PreferencesWidget * widget)
{
- gint position = 0;
-
- position = gtk_combo_box_get_active(GTK_COMBO_BOX(combobox));
-
- g_free(*((gchar **)widget->cfg));
-
- *((gchar **)widget->cfg) = g_strdup(widget->data.combo.elements[position].value);
+ int position = gtk_combo_box_get_active (combobox);
+ widget_set_string (widget, widget->data.combo.elements[position].value);
}
-static void on_cbox_realize (GtkWidget * combobox, PreferencesWidget * widget)
+static void fill_cbox (GtkWidget * combobox, PreferencesWidget * widget)
{
- guint i=0,index=0;
+ unsigned int i=0,index=0;
for (i = 0; i < widget->data.combo.n_elements; i ++)
gtk_combo_box_text_append_text ((GtkComboBoxText *) combobox,
@@ -757,8 +715,12 @@ static void on_cbox_realize (GtkWidget * combobox, PreferencesWidget * widget)
case VALUE_INT:
g_signal_connect(combobox, "changed",
G_CALLBACK(on_cbox_changed_int), widget);
+
+ int ivalue = widget_get_int (widget);
+
for(i=0; i<widget->data.combo.n_elements; i++) {
- if (GPOINTER_TO_INT(widget->data.combo.elements[i].value) == *((gint *) widget->cfg)) {
+ if (GPOINTER_TO_INT (widget->data.combo.elements[i].value) == ivalue)
+ {
index = i;
break;
}
@@ -767,17 +729,20 @@ static void on_cbox_realize (GtkWidget * combobox, PreferencesWidget * widget)
case VALUE_STRING:
g_signal_connect(combobox, "changed",
G_CALLBACK(on_cbox_changed_string), widget);
+
+ char * value = widget_get_string (widget);
+
for(i=0; i<widget->data.combo.n_elements; i++) {
- if(!strcmp((gchar *)widget->data.combo.elements[i].value, *((gchar **)widget->cfg))) {
+ if (value && ! strcmp ((char *) widget->data.combo.elements[i].value, value))
+ {
index = i;
break;
}
}
- break;
- case VALUE_NULL:
+
+ g_free (value);
break;
default:
- g_warning("Unhandled cbox value type");
break;
}
gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), index);
@@ -837,11 +802,11 @@ create_filepopup_settings(void)
gtk_table_set_row_spacings(GTK_TABLE(table), 4);
gtk_table_set_col_spacings(GTK_TABLE(table), 4);
- filepopup_settings_cover_name_include = gtk_entry_new();
- gtk_table_attach(GTK_TABLE(table), filepopup_settings_cover_name_include, 1, 2, 0, 1,
+ filepopup_cover_name_include = gtk_entry_new();
+ gtk_table_attach(GTK_TABLE(table), filepopup_cover_name_include, 1, 2, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
- gtk_entry_set_activates_default(GTK_ENTRY(filepopup_settings_cover_name_include), TRUE);
+ gtk_entry_set_activates_default(GTK_ENTRY(filepopup_cover_name_include), TRUE);
label_exclude = gtk_label_new(_("Exclude:"));
gtk_table_attach(GTK_TABLE(table), label_exclude, 0, 1, 1, 2,
@@ -857,42 +822,42 @@ create_filepopup_settings(void)
gtk_misc_set_alignment(GTK_MISC(label_include), 0, 0.5);
gtk_misc_set_padding(GTK_MISC(label_include), 12, 0);
- filepopup_settings_cover_name_exclude = gtk_entry_new();
- gtk_table_attach(GTK_TABLE(table), filepopup_settings_cover_name_exclude, 1, 2, 1, 2,
+ filepopup_cover_name_exclude = gtk_entry_new();
+ gtk_table_attach(GTK_TABLE(table), filepopup_cover_name_exclude, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
- gtk_entry_set_activates_default(GTK_ENTRY(filepopup_settings_cover_name_exclude), TRUE);
+ gtk_entry_set_activates_default(GTK_ENTRY(filepopup_cover_name_exclude), TRUE);
alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
- filepopup_settings_recurse_for_cover = gtk_check_button_new_with_mnemonic(_("Recursively search for cover"));
- gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_recurse_for_cover);
+ filepopup_recurse = gtk_check_button_new_with_mnemonic(_("Recursively search for cover"));
+ gtk_container_add(GTK_CONTAINER(alignment), filepopup_recurse);
alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 45, 0);
- filepopup_settings_recurse_for_cover_depth_box = gtk_hbox_new(FALSE, 0);
- gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_recurse_for_cover_depth_box);
+ filepopup_recurse_depth_box = gtk_hbox_new(FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(alignment), filepopup_recurse_depth_box);
label_search_depth = gtk_label_new(_("Search depth: "));
- gtk_box_pack_start(GTK_BOX(filepopup_settings_recurse_for_cover_depth_box), label_search_depth, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX(filepopup_recurse_depth_box), label_search_depth, TRUE, TRUE, 0);
gtk_misc_set_padding(GTK_MISC(label_search_depth), 4, 0);
recurse_for_cover_depth_adj = (GtkAdjustment *) gtk_adjustment_new (0, 0,
100, 1, 10, 0);
- filepopup_settings_recurse_for_cover_depth = gtk_spin_button_new(GTK_ADJUSTMENT(recurse_for_cover_depth_adj), 1, 0);
- gtk_box_pack_start(GTK_BOX(filepopup_settings_recurse_for_cover_depth_box), filepopup_settings_recurse_for_cover_depth, TRUE, TRUE, 0);
- gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_settings_recurse_for_cover_depth), TRUE);
+ filepopup_recurse_depth = gtk_spin_button_new(GTK_ADJUSTMENT(recurse_for_cover_depth_adj), 1, 0);
+ gtk_box_pack_start(GTK_BOX(filepopup_recurse_depth_box), filepopup_recurse_depth, TRUE, TRUE, 0);
+ gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_recurse_depth), TRUE);
alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
- filepopup_settings_use_file_cover = gtk_check_button_new_with_mnemonic(_("Use per-file cover"));
- gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_use_file_cover);
+ filepopup_use_file_cover = gtk_check_button_new_with_mnemonic(_("Use per-file cover"));
+ gtk_container_add(GTK_CONTAINER(alignment), filepopup_use_file_cover);
label_misc = gtk_label_new(_("<b>Miscellaneous</b>"));
gtk_box_pack_start(GTK_BOX(vbox), label_misc, FALSE, FALSE, 0);
@@ -903,8 +868,8 @@ create_filepopup_settings(void)
gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
- filepopup_settings_showprogressbar = gtk_check_button_new_with_mnemonic(_("Show Progress bar for the current track"));
- gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_showprogressbar);
+ filepopup_showprogressbar = gtk_check_button_new_with_mnemonic(_("Show Progress bar for the current track"));
+ gtk_container_add(GTK_CONTAINER(alignment), filepopup_showprogressbar);
alignment = gtk_alignment_new(0, 0.5, 1, 1);
gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
@@ -919,9 +884,9 @@ create_filepopup_settings(void)
gtk_misc_set_padding(GTK_MISC(label_delay), 12, 0);
delay_adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 100, 1, 10, 0);
- filepopup_settings_delay = gtk_spin_button_new(GTK_ADJUSTMENT(delay_adj), 1, 0);
- gtk_box_pack_start(GTK_BOX(hbox), filepopup_settings_delay, TRUE, TRUE, 0);
- gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_settings_delay), TRUE);
+ filepopup_delay = gtk_spin_button_new(GTK_ADJUSTMENT(delay_adj), 1, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), filepopup_delay, TRUE, TRUE, 0);
+ gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_delay), TRUE);
hbuttonbox = gtk_hbutton_box_new();
gtk_box_pack_start(GTK_BOX(vbox), hbuttonbox, FALSE, FALSE, 0);
@@ -939,28 +904,23 @@ create_filepopup_settings(void)
G_CALLBACK(gtk_widget_hide_on_delete),
NULL);
g_signal_connect(G_OBJECT(btn_cancel), "clicked",
- G_CALLBACK(on_filepopup_settings_cancel_clicked),
+ G_CALLBACK(on_filepopup_cancel_clicked),
NULL);
g_signal_connect(G_OBJECT(btn_ok), "clicked",
- G_CALLBACK(on_filepopup_settings_ok_clicked),
+ G_CALLBACK(on_filepopup_ok_clicked),
NULL);
- g_signal_connect(G_OBJECT(filepopup_settings_recurse_for_cover), "toggled",
- G_CALLBACK(on_recurse_for_cover_toggled),
- filepopup_settings_recurse_for_cover_depth_box);
gtk_widget_grab_default(btn_ok);
gtk_widget_show_all(vbox);
}
static void create_spin_button (PreferencesWidget * widget, GtkWidget * *
- label_pre, GtkWidget * * spin_btn, GtkWidget * * label_past, const gchar *
+ label_pre, GtkWidget * * spin_btn, GtkWidget * * label_past, const char *
domain)
{
g_return_if_fail(widget->type == WIDGET_SPIN_BTN);
* label_pre = gtk_label_new (dgettext (domain, widget->label));
- gtk_misc_set_alignment(GTK_MISC(*label_pre), 0, 0.5);
- gtk_misc_set_padding(GTK_MISC(*label_pre), 4, 0);
*spin_btn = gtk_spin_button_new_with_range(widget->data.spin_btn.min,
widget->data.spin_btn.max,
@@ -974,36 +934,26 @@ static void create_spin_button (PreferencesWidget * widget, GtkWidget * *
if (widget->data.spin_btn.right_label) {
* label_past = gtk_label_new (dgettext (domain,
widget->data.spin_btn.right_label));
- gtk_misc_set_alignment(GTK_MISC(*label_past), 0, 0.5);
- gtk_misc_set_padding(GTK_MISC(*label_past), 4, 0);
}
- switch (widget->cfg_type) {
- case VALUE_INT:
- g_signal_connect(G_OBJECT(*spin_btn), "value_changed",
- G_CALLBACK(on_spin_btn_changed_gint),
- widget->cfg);
- g_signal_connect(G_OBJECT(*spin_btn), "realize",
- G_CALLBACK(on_spin_btn_realize_gint),
- widget->cfg);
- break;
- case VALUE_FLOAT:
- g_signal_connect(G_OBJECT(*spin_btn), "value_changed",
- G_CALLBACK(on_spin_btn_changed_gfloat),
- widget->cfg);
- g_signal_connect(G_OBJECT(*spin_btn), "realize",
- G_CALLBACK(on_spin_btn_realize_gfloat),
- widget->cfg);
- break;
- case VALUE_NULL:
- break;
- default:
- g_warning("Unsupported value type for spin button");
- }
+ switch (widget->cfg_type)
+ {
+ case VALUE_INT:
+ gtk_spin_button_set_value ((GtkSpinButton *) * spin_btn, widget_get_int (widget));
+ g_signal_connect (* spin_btn, "value_changed", (GCallback) on_spin_btn_changed_int, widget);
+ break;
+ case VALUE_FLOAT:
+ gtk_spin_button_set_value ((GtkSpinButton *) * spin_btn, widget_get_double (widget));
+ g_signal_connect (* spin_btn, "value_changed", (GCallback)
+ on_spin_btn_changed_float, widget);
+ break;
+ default:
+ break;
+ }
}
void create_font_btn (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * font_btn, const gchar * domain)
+ GtkWidget * * font_btn, const char * domain)
{
*font_btn = gtk_font_button_new();
gtk_font_button_set_use_font(GTK_FONT_BUTTON(*font_btn), TRUE);
@@ -1020,19 +970,18 @@ void create_font_btn (PreferencesWidget * widget, GtkWidget * * label,
gtk_font_button_set_title (GTK_FONT_BUTTON (* font_btn),
dgettext (domain, widget->data.font_btn.title));
- g_object_set_data ((GObject *) (* font_btn), "callback", (void *)
- widget->callback);
+ char * name = widget_get_string (widget);
+ if (name)
+ {
+ gtk_font_button_set_font_name ((GtkFontButton *) * font_btn, name);
+ g_free (name);
+ }
- g_signal_connect(G_OBJECT(*font_btn), "font_set",
- G_CALLBACK(on_font_btn_font_set),
- (gchar**)widget->cfg);
- g_signal_connect(G_OBJECT(*font_btn), "realize",
- G_CALLBACK(on_font_btn_realize),
- (gchar**)widget->cfg);
+ g_signal_connect (* font_btn, "font_set", (GCallback) on_font_btn_font_set, widget);
}
static void create_entry (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * entry, const gchar * domain)
+ GtkWidget * * entry, const char * domain)
{
*entry = gtk_entry_new();
gtk_entry_set_visibility(GTK_ENTRY(*entry), !widget->data.entry.password);
@@ -1043,33 +992,21 @@ static void create_entry (PreferencesWidget * widget, GtkWidget * * label,
if (widget->tooltip)
gtk_widget_set_tooltip_text (* entry, dgettext (domain, widget->tooltip));
- g_object_set_data ((GObject *) (* entry), "callback", (void *)
- widget->callback);
-
- switch (widget->cfg_type) {
- case VALUE_STRING:
- g_signal_connect(G_OBJECT(*entry), "realize",
- G_CALLBACK(on_entry_realize),
- widget->cfg);
- g_signal_connect(G_OBJECT(*entry), "changed",
- G_CALLBACK(on_entry_changed),
- widget->cfg);
- break;
- case VALUE_CFG_STRING:
- g_signal_connect(G_OBJECT(*entry), "realize",
- G_CALLBACK(on_entry_cfg_realize),
- widget->cfg);
- g_signal_connect(G_OBJECT(*entry), "changed",
- G_CALLBACK(on_entry_cfg_changed),
- widget->cfg);
- break;
- default:
- g_warning("Unhandled entry value type %d", widget->cfg_type);
+ if (widget->cfg_type == VALUE_STRING)
+ {
+ char * value = widget_get_string (widget);
+ if (value)
+ {
+ gtk_entry_set_text ((GtkEntry *) * entry, value);
+ g_free (value);
+ }
+
+ g_signal_connect (* entry, "changed", (GCallback) on_entry_changed, widget);
}
}
static void create_label (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * icon, const gchar * domain)
+ GtkWidget * * icon, const char * domain)
{
if (widget->data.label.stock_id)
*icon = gtk_image_new_from_stock(widget->data.label.stock_id, GTK_ICON_SIZE_BUTTON);
@@ -1084,24 +1021,21 @@ static void create_label (PreferencesWidget * widget, GtkWidget * * label,
}
static void create_cbox (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * combobox, const gchar * domain)
+ GtkWidget * * combobox, const char * domain)
{
* combobox = gtk_combo_box_text_new ();
if (widget->label) {
* label = gtk_label_new (dgettext (domain, widget->label));
- gtk_misc_set_alignment(GTK_MISC(*label), 1, 0.5);
}
- g_signal_connect_after(G_OBJECT(*combobox), "realize",
- G_CALLBACK(on_cbox_realize),
- widget);
+ fill_cbox (* combobox, widget);
}
-static void fill_table (GtkWidget * table, PreferencesWidget * elements, gint
- amt, const gchar * domain)
+static void fill_table (GtkWidget * table, PreferencesWidget * elements, int
+ amt, const char * domain)
{
- gint x;
+ int x;
GtkWidget *widget_left, *widget_middle, *widget_right;
GtkAttachOptions middle_policy = (GtkAttachOptions) (0);
@@ -1155,29 +1089,34 @@ static void fill_table (GtkWidget * table, PreferencesWidget * elements, gint
}
/* void create_widgets_with_domain (GtkBox * box, PreferencesWidget * widgets,
- gint amt, const gchar * domain) */
-void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
- amt, const gchar * domain)
+ int amt, const char * domain) */
+void create_widgets_with_domain (void * box, PreferencesWidget * widgets, int
+ amt, const char * domain)
{
- gint x;
+ int x;
GtkWidget *alignment = NULL, *widget = NULL;
GtkWidget *child_box = NULL;
GSList *radio_btn_group = NULL;
for (x = 0; x < amt; ++x) {
- if (widgets[x].child) { /* perhaps this logic can be better */
+ if (widget && widgets[x].child)
+ {
if (!child_box) {
child_box = gtk_vbox_new(FALSE, 0);
g_object_set_data(G_OBJECT(widget), "child", child_box);
alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
gtk_box_pack_start(box, alignment, FALSE, FALSE, 0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 24, 0);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
gtk_container_add (GTK_CONTAINER (alignment), child_box);
+
+ if (GTK_IS_TOGGLE_BUTTON (widget))
+ gtk_widget_set_sensitive (child_box, gtk_toggle_button_get_active ((GtkToggleButton *) widget));
}
} else
child_box = NULL;
alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
+ gtk_alignment_set_padding ((GtkAlignment *) alignment, 6, 0, 12, 0);
gtk_box_pack_start(child_box ? GTK_BOX(child_box) : box, alignment, FALSE, FALSE, 0);
if (radio_btn_group && widgets[x].type != WIDGET_RADIO_BTN)
@@ -1185,34 +1124,11 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
switch(widgets[x].type) {
case WIDGET_CHK_BTN:
- gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
- widget = gtk_check_button_new_with_mnemonic (dgettext (domain,
- widgets[x].label));
- g_object_set_data ((GObject *) widget, "callback",
- (void *) widgets[x].callback);
-
- if (widgets[x].cfg_type == VALUE_CFG_BOOLEAN) {
- g_signal_connect(G_OBJECT(widget), "toggled",
- G_CALLBACK(on_toggle_button_cfg_toggled),
- widgets[x].cfg);
- g_signal_connect(G_OBJECT(widget), "realize",
- G_CALLBACK(on_toggle_button_cfg_realize),
- widgets[x].cfg);
- } else {
- if (widgets[x].cfg) {
- g_signal_connect(G_OBJECT(widget), "toggled",
- G_CALLBACK(on_toggle_button_toggled),
- widgets[x].cfg);
- } else {
- gtk_widget_set_sensitive(widget, FALSE);
- }
- g_signal_connect(G_OBJECT(widget), "realize",
- G_CALLBACK(on_toggle_button_realize),
- widgets[x].cfg);
- }
+ widget = gtk_check_button_new_with_mnemonic (dgettext (domain, widgets[x].label));
+ init_toggle_button (widget, & widgets[x]);
break;
case WIDGET_LABEL:
- gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 12, 6, 0, 0);
+ gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 12, 0, 0, 0);
GtkWidget *label = NULL, *icon = NULL;
create_label (& widgets[x], & label, & icon, domain);
@@ -1226,20 +1142,12 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
}
break;
case WIDGET_RADIO_BTN:
- gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
widget = gtk_radio_button_new_with_mnemonic (radio_btn_group,
dgettext (domain, widgets[x].label));
- radio_btn_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
- g_signal_connect(G_OBJECT(widget), "toggled",
- G_CALLBACK(on_toggle_button_toggled),
- widgets[x].cfg);
- g_signal_connect(G_OBJECT(widget), "realize",
- G_CALLBACK(on_toggle_button_realize),
- widgets[x].cfg);
+ radio_btn_group = gtk_radio_button_get_group ((GtkRadioButton *) widget);
+ init_toggle_button (widget, & widgets[x]);
break;
case WIDGET_SPIN_BTN:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
-
widget = gtk_hbox_new(FALSE, 6);
GtkWidget *label_pre = NULL, *spin_btn = NULL, *label_past = NULL;
@@ -1262,8 +1170,6 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
break;
case WIDGET_FONT_BTN:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-
widget = gtk_hbox_new(FALSE, 6);
GtkWidget *font_btn = NULL;
@@ -1275,16 +1181,12 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
gtk_box_pack_start(GTK_BOX(widget), font_btn, FALSE, FALSE, 0);
break;
case WIDGET_TABLE:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-
widget = gtk_table_new(widgets[x].data.table.rows, 3, FALSE);
fill_table (widget, widgets[x].data.table.elem,
widgets[x].data.table.rows, domain);
gtk_table_set_row_spacings(GTK_TABLE(widget), 6);
break;
case WIDGET_ENTRY:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 6, 12);
-
widget = gtk_hbox_new(FALSE, 6);
GtkWidget *entry = NULL;
@@ -1296,9 +1198,7 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
gtk_box_pack_start(GTK_BOX(widget), entry, TRUE, TRUE, 0);
break;
case WIDGET_COMBO_BOX:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-
- widget = gtk_hbox_new(FALSE, 10);
+ widget = gtk_hbox_new(FALSE, 6);
GtkWidget *combo = NULL;
create_cbox (& widgets[x], & label, & combo, domain);
@@ -1309,7 +1209,7 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
gtk_box_pack_start(GTK_BOX(widget), combo, FALSE, FALSE, 0);
break;
case WIDGET_BOX:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 3, 0);
+ gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 0, 0);
if (widgets[x].data.box.horizontal) {
widget = gtk_hbox_new(FALSE, 0);
@@ -1317,7 +1217,8 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
widget = gtk_vbox_new(FALSE, 0);
}
- create_widgets(GTK_BOX(widget), widgets[x].data.box.elem, widgets[x].data.box.n_elem);
+ create_widgets_with_domain ((GtkBox *) widget,
+ widgets[x].data.box.elem, widgets[x].data.box.n_elem, domain);
if (widgets[x].data.box.frame) {
GtkWidget *tmp;
@@ -1328,15 +1229,17 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
}
break;
case WIDGET_NOTEBOOK:
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 3, 0);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 0, 0);
widget = gtk_notebook_new();
- gint i;
+ int i;
for (i = 0; i<widgets[x].data.notebook.n_tabs; i++) {
GtkWidget *vbox;
vbox = gtk_vbox_new(FALSE, 5);
- create_widgets(GTK_BOX(vbox), widgets[x].data.notebook.tabs[i].settings, widgets[x].data.notebook.tabs[i].n_settings);
+ create_widgets_with_domain ((GtkBox *) vbox,
+ widgets[x].data.notebook.tabs[i].settings,
+ widgets[x].data.notebook.tabs[i].n_settings, domain);
gtk_notebook_append_page (GTK_NOTEBOOK (widget), vbox,
gtk_label_new (dgettext (domain,
@@ -1353,9 +1256,7 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
}
break;
default:
- /* shouldn't ever happen - expect things to break */
- g_error("This shouldn't ever happen - expect things to break.");
- continue;
+ break;
}
if (widget && !gtk_widget_get_parent(widget))
@@ -1371,7 +1272,7 @@ static GtkWidget *
create_titlestring_tag_menu(void)
{
GtkWidget *titlestring_tag_menu, *menu_item;
- guint i;
+ unsigned int i;
titlestring_tag_menu = gtk_menu_new();
for(i = 0; i < n_title_field_tags; i++) {
@@ -1386,42 +1287,36 @@ create_titlestring_tag_menu(void)
return titlestring_tag_menu;
}
-static void
-create_replay_gain_category(void)
+static void show_numbers_cb (GtkToggleButton * numbers, void * unused)
{
- GtkWidget *rg_page_vbox;
- GtkWidget *widgets_vbox;
-
- rg_page_vbox = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (category_notebook), rg_page_vbox);
+ set_bool (NULL, "show_numbers_in_pl", gtk_toggle_button_get_active (numbers));
- widgets_vbox = gtk_vbox_new (FALSE, 0);
- create_widgets(GTK_BOX(widgets_vbox), replay_gain_page_widgets, G_N_ELEMENTS(replay_gain_page_widgets));
- gtk_box_pack_start (GTK_BOX (rg_page_vbox), widgets_vbox, TRUE, TRUE, 0);
+ hook_call ("title change", NULL);
}
-static void show_numbers_cb (GtkToggleButton * numbers, void * unused)
+static void leading_zero_cb (GtkToggleButton * leading)
{
- cfg.show_numbers_in_pl = gtk_toggle_button_get_active (numbers);
+ set_bool (NULL, "leading_zero", gtk_toggle_button_get_active (leading));
hook_call ("title change", NULL);
-
- /* trigger playlist update */
- gchar * t = g_strdup (playlist_get_title (playlist_get_active ()));
- playlist_set_title (playlist_get_active (), t);
- g_free (t);
}
-static void leading_zero_cb (GtkToggleButton * leading)
+static void create_titlestring_widgets (GtkWidget * * cbox, GtkWidget * * entry)
{
- cfg.leading_zero = gtk_toggle_button_get_active (leading);
+ * cbox = gtk_combo_box_text_new ();
+ for (int i = 0; i < TITLESTRING_NPRESETS; i ++)
+ gtk_combo_box_text_append_text ((GtkComboBoxText *) * cbox, _(titlestring_preset_names[i]));
+ gtk_combo_box_text_append_text ((GtkComboBoxText *) * cbox, _("Custom"));
- hook_call ("title change", NULL);
+ * entry = gtk_entry_new ();
+
+ char * format = get_string (NULL, "generic_title_format");
+ update_titlestring_cbox ((GtkComboBox *) * cbox, format);
+ gtk_entry_set_text ((GtkEntry *) * entry, format);
+ g_free (format);
- /* trigger playlist update */
- gchar * t = g_strdup (playlist_get_title (playlist_get_active ()));
- playlist_set_title (playlist_get_active (), t);
- g_free (t);
+ g_signal_connect (* cbox, "changed", (GCallback) on_titlestring_cbox_changed, * entry);
+ g_signal_connect (* entry, "changed", (GCallback) on_titlestring_entry_changed, * cbox);
}
static void
@@ -1434,7 +1329,6 @@ create_playlist_category(void)
GtkWidget *table6;
GtkWidget *titlestring_help_button;
GtkWidget *image1;
- GtkWidget *titlestring_cbox;
GtkWidget *label62;
GtkWidget *label61;
GtkWidget *alignment85;
@@ -1442,7 +1336,6 @@ create_playlist_category(void)
GtkWidget *alignment86;
GtkWidget *hbox9;
GtkWidget *vbox34;
- GtkWidget *checkbutton10;
GtkWidget *image8;
GtkWidget *titlestring_tag_menu = create_titlestring_tag_menu();
GtkWidget * numbers_alignment, * numbers;
@@ -1467,7 +1360,7 @@ create_playlist_category(void)
numbers = gtk_check_button_new_with_label (_("Show song numbers"));
gtk_toggle_button_set_active ((GtkToggleButton *) numbers,
- cfg.show_numbers_in_pl);
+ get_bool (NULL, "show_numbers_in_pl"));
g_signal_connect ((GObject *) numbers, "toggled", (GCallback)
show_numbers_cb, 0);
gtk_container_add ((GtkContainer *) numbers_alignment, numbers);
@@ -1478,7 +1371,7 @@ create_playlist_category(void)
numbers = gtk_check_button_new_with_label (_("Show leading zeroes (02:00 "
"instead of 2:00)"));
- gtk_toggle_button_set_active ((GtkToggleButton *) numbers, cfg.leading_zero);
+ gtk_toggle_button_set_active ((GtkToggleButton *) numbers, get_bool (NULL, "leading_zero"));
g_signal_connect ((GObject *) numbers, "toggled", (GCallback)
leading_zero_cb, 0);
gtk_container_add ((GtkContainer *) numbers_alignment, numbers);
@@ -1505,21 +1398,11 @@ create_playlist_category(void)
image1 = gtk_image_new_from_stock ("gtk-index", GTK_ICON_SIZE_BUTTON);
gtk_container_add (GTK_CONTAINER (titlestring_help_button), image1);
- titlestring_cbox = gtk_combo_box_text_new ();
-
+ GtkWidget * titlestring_cbox;
+ create_titlestring_widgets (& titlestring_cbox, & titlestring_entry);
gtk_table_attach (GTK_TABLE (table6), titlestring_cbox, 1, 3, 0, 1,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
-
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("TITLE"));
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST - TITLE"));
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST - ALBUM - TITLE"));
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST - ALBUM - TRACK. TITLE"));
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST [ ALBUM ] - TRACK. TITLE"));
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ALBUM - TITLE"));
- gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("Custom"));
-
- titlestring_entry = gtk_entry_new ();
gtk_table_attach (GTK_TABLE (table6), titlestring_entry, 1, 2, 1, 2,
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
(GtkAttachOptions) (0), 0, 0);
@@ -1557,62 +1440,44 @@ create_playlist_category(void)
vbox34 = gtk_vbox_new (FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox9), vbox34, TRUE, TRUE, 0);
- checkbutton10 = gtk_check_button_new_with_mnemonic (_("Show popup information for playlist entries"));
- gtk_box_pack_start (GTK_BOX (vbox34), checkbutton10, TRUE, FALSE, 0);
- gtk_widget_set_tooltip_text (checkbutton10, _("Toggles popup information window for the pointed entry in the playlist. The window shows title of song, name of album, genre, year of publish, track number, track length, and artwork."));
+ filepopupbutton = gtk_check_button_new_with_mnemonic (_("Show popup information for playlist entries"));
+ gtk_widget_set_tooltip_text (filepopupbutton, _("Toggles popup information window for the pointed entry in the playlist. The window shows title of song, name of album, genre, year of publish, track number, track length, and artwork."));
+ gtk_toggle_button_set_active ((GtkToggleButton *) filepopupbutton,
+ get_bool (NULL, "show_filepopup_for_tuple"));
+ gtk_box_pack_start ((GtkBox *) vbox34, filepopupbutton, TRUE, FALSE, 0);
- filepopup_for_tuple_settings_button = gtk_button_new ();
- gtk_box_pack_start (GTK_BOX (hbox9), filepopup_for_tuple_settings_button, FALSE, FALSE, 0);
+ filepopup_settings_button = gtk_button_new ();
+ gtk_widget_set_sensitive (filepopup_settings_button,
+ get_bool (NULL, "show_filepopup_for_tuple"));
+ gtk_box_pack_start (GTK_BOX (hbox9), filepopup_settings_button, FALSE, FALSE, 0);
- gtk_widget_set_can_focus (filepopup_for_tuple_settings_button, FALSE);
- gtk_widget_set_tooltip_text (filepopup_for_tuple_settings_button, _("Edit settings for popup information"));
- gtk_button_set_relief (GTK_BUTTON (filepopup_for_tuple_settings_button), GTK_RELIEF_HALF);
+ gtk_widget_set_can_focus (filepopup_settings_button, FALSE);
+ gtk_widget_set_tooltip_text (filepopup_settings_button, _("Edit settings for popup information"));
+ gtk_button_set_relief (GTK_BUTTON (filepopup_settings_button), GTK_RELIEF_HALF);
image8 = gtk_image_new_from_stock ("gtk-properties", GTK_ICON_SIZE_BUTTON);
- gtk_container_add (GTK_CONTAINER (filepopup_for_tuple_settings_button), image8);
+ gtk_container_add (GTK_CONTAINER (filepopup_settings_button), image8);
- g_signal_connect(G_OBJECT(checkbutton10), "toggled",
- G_CALLBACK(on_show_filepopup_for_tuple_toggled),
+ g_signal_connect (filepopupbutton, "toggled",
+ G_CALLBACK(on_show_filepopup_toggled),
NULL);
- g_signal_connect_after(G_OBJECT(checkbutton10), "realize",
- G_CALLBACK(on_show_filepopup_for_tuple_realize),
- NULL);
- g_signal_connect(G_OBJECT(filepopup_for_tuple_settings_button), "clicked",
- G_CALLBACK(on_filepopup_for_tuple_settings_clicked),
+ g_signal_connect(G_OBJECT(filepopup_settings_button), "clicked",
+ G_CALLBACK(on_filepopup_settings_clicked),
NULL);
- g_signal_connect(titlestring_cbox, "realize",
- G_CALLBACK(on_titlestring_cbox_realize),
- titlestring_entry);
- g_signal_connect(titlestring_cbox, "changed",
- G_CALLBACK(on_titlestring_cbox_changed),
- titlestring_entry);
-
- g_signal_connect(titlestring_cbox, "changed",
- G_CALLBACK(on_titlestring_cbox_changed),
- titlestring_help_button);
g_signal_connect(titlestring_help_button, "clicked",
G_CALLBACK(on_titlestring_help_button_clicked),
titlestring_tag_menu);
- g_signal_connect(G_OBJECT(titlestring_entry), "changed",
- G_CALLBACK(on_titlestring_entry_changed),
- NULL);
- g_signal_connect_after(G_OBJECT(titlestring_entry), "realize",
- G_CALLBACK(on_titlestring_entry_realize),
- NULL);
-
-
-
/* Create window for filepopup settings */
create_filepopup_settings();
}
static GtkWidget * output_config_button, * output_about_button;
-static gboolean output_enum_cb (PluginHandle * plugin, GList * * list)
+static bool_t output_enum_cb (PluginHandle * plugin, GList * * list)
{
* list = g_list_prepend (* list, plugin);
return TRUE;
@@ -1673,96 +1538,44 @@ static void output_do_about (void)
op->about ();
}
-static void
-create_audio_category(void)
-{
- GtkWidget *audio_page_vbox;
- GtkWidget *alignment74;
- GtkWidget *label77;
- GtkWidget *alignment73;
- GtkWidget *vbox33;
- GtkWidget *table11;
- GtkWidget *label79;
- GtkAdjustment * output_plugin_bufsize_adj;
- GtkWidget *output_plugin_bufsize;
- GtkWidget *output_plugin_cbox;
- GtkWidget *label78;
-
- audio_page_vbox = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (category_notebook), audio_page_vbox);
-
- alignment74 = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_box_pack_start (GTK_BOX (audio_page_vbox), alignment74, FALSE, FALSE, 0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment74), 0, 12, 0, 0);
-
- label77 = gtk_label_new (_("<b>Audio System</b>"));
- gtk_container_add (GTK_CONTAINER (alignment74), label77);
- gtk_label_set_use_markup (GTK_LABEL (label77), TRUE);
- gtk_misc_set_alignment (GTK_MISC (label77), 0, 0.5);
-
- alignment73 = gtk_alignment_new (0.5, 0.5, 1, 1);
- gtk_box_pack_start (GTK_BOX (audio_page_vbox), alignment73, FALSE, FALSE, 0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment73), 0, 6, 12, 0);
-
- vbox33 = gtk_vbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (alignment73), vbox33);
-
- table11 = gtk_table_new (3, 2, FALSE);
- gtk_box_pack_start (GTK_BOX (vbox33), table11, FALSE, FALSE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table11), 6);
- gtk_table_set_col_spacings (GTK_TABLE (table11), 6);
-
- label79 = gtk_label_new (_("Buffer size:"));
- gtk_table_attach (GTK_TABLE (table11), label79, 0, 1, 1, 2,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label79), 1, 0.5);
-
- output_plugin_bufsize_adj = (GtkAdjustment *) gtk_adjustment_new (0, 100,
- 10000, 100, 1000, 0);
- output_plugin_bufsize = gtk_spin_button_new (GTK_ADJUSTMENT (output_plugin_bufsize_adj), 100, 0);
- gtk_table_attach (GTK_TABLE (table11), output_plugin_bufsize, 1, 2, 1, 2,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
+static void * create_output_plugin_box (void)
+{
+ GtkWidget * hbox1 = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start ((GtkBox *) hbox1, gtk_label_new (_("Output plugin:")), FALSE, FALSE, 0);
- output_plugin_cbox = gtk_combo_box_text_new ();
+ GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+ gtk_box_pack_start ((GtkBox *) hbox1, vbox, FALSE, FALSE, 0);
- gtk_table_attach (GTK_TABLE (table11), output_plugin_cbox, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
+ GtkWidget * hbox2 = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start ((GtkBox *) vbox, hbox2, FALSE, FALSE, 0);
- label78 = gtk_label_new (_("Current output plugin:"));
- gtk_table_attach (GTK_TABLE (table11), label78, 0, 1, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label78), 0, 0.5);
+ GtkWidget * output_plugin_cbox = gtk_combo_box_text_new ();
+ gtk_box_pack_start ((GtkBox *) hbox2, output_plugin_cbox, FALSE, FALSE, 0);
- GtkWidget * hbox = gtk_hbox_new (FALSE, 6);
- gtk_box_pack_start ((GtkBox *) audio_page_vbox, hbox, FALSE, FALSE, 0);
+ GtkWidget * hbox3 = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start ((GtkBox *) vbox, hbox3, FALSE, FALSE, 0);
output_config_button = gtk_button_new_from_stock (GTK_STOCK_PREFERENCES);
- output_about_button = gtk_button_new_from_stock (GTK_STOCK_ABOUT);
-
- gtk_box_pack_end ((GtkBox *) hbox, output_about_button, FALSE, FALSE, 0);
- gtk_box_pack_end ((GtkBox *) hbox, output_config_button, FALSE, FALSE, 0);
+ gtk_box_pack_start ((GtkBox *) hbox3, output_config_button, FALSE, FALSE, 0);
- create_widgets(GTK_BOX(audio_page_vbox), audio_page_widgets, G_N_ELEMENTS(audio_page_widgets));
+ output_about_button = gtk_button_new_from_stock (GTK_STOCK_ABOUT);
+ gtk_box_pack_start ((GtkBox *) hbox3, output_about_button, FALSE, FALSE, 0);
output_combo_fill ((GtkComboBox *) output_plugin_cbox);
output_combo_update ((GtkComboBox *) output_plugin_cbox);
- g_signal_connect (output_plugin_cbox, "changed", (GCallback)
- output_combo_changed, NULL);
- g_signal_connect (output_config_button, "clicked", (GCallback)
- output_do_config, NULL);
- g_signal_connect (output_about_button, "clicked", (GCallback)
- output_do_about, NULL);
-
- g_signal_connect(G_OBJECT(output_plugin_bufsize), "value_changed",
- G_CALLBACK(on_output_plugin_bufsize_value_changed),
- NULL);
- g_signal_connect_after(G_OBJECT(output_plugin_bufsize), "realize",
- G_CALLBACK(on_output_plugin_bufsize_realize),
- NULL);
+
+ g_signal_connect (output_plugin_cbox, "changed", (GCallback) output_combo_changed, NULL);
+ g_signal_connect (output_config_button, "clicked", (GCallback) output_do_config, NULL);
+ g_signal_connect (output_about_button, "clicked", (GCallback) output_do_about, NULL);
+
+ return hbox1;
+}
+
+static void create_audio_category (void)
+{
+ GtkWidget * audio_page_vbox = gtk_vbox_new (FALSE, 0);
+ create_widgets ((GtkBox *) audio_page_vbox, audio_page_widgets, G_N_ELEMENTS (audio_page_widgets));
+ gtk_container_add ((GtkContainer *) category_notebook, audio_page_vbox);
}
static void
@@ -1785,17 +1598,17 @@ static void create_plugin_category (void)
GtkWidget * notebook = gtk_notebook_new ();
gtk_container_add ((GtkContainer *) category_notebook, notebook);
- gint types[] = {PLUGIN_TYPE_TRANSPORT, PLUGIN_TYPE_PLAYLIST,
+ int types[] = {PLUGIN_TYPE_TRANSPORT, PLUGIN_TYPE_PLAYLIST,
PLUGIN_TYPE_INPUT, PLUGIN_TYPE_EFFECT, PLUGIN_TYPE_VIS, PLUGIN_TYPE_GENERAL};
- const gchar * names[] = {N_("Transport"), N_("Playlist"), N_("Input"),
+ const char * names[] = {N_("Transport"), N_("Playlist"), N_("Input"),
N_("Effect"), N_("Visualization"), N_("General")};
- for (gint i = 0; i < G_N_ELEMENTS (types); i ++)
+ for (int i = 0; i < G_N_ELEMENTS (types); i ++)
gtk_notebook_append_page ((GtkNotebook *) notebook, plugin_view_new
(types[i]), gtk_label_new (_(names[i])));
}
-static gboolean
+static bool_t
prefswin_destroy(GtkWidget *window, GdkEvent *event, gpointer data)
{
prefswin = NULL;
@@ -1809,7 +1622,7 @@ prefswin_destroy(GtkWidget *window, GdkEvent *event, gpointer data)
/* GtkWidget * * create_prefs_window (void) */
void * * create_prefs_window (void)
{
- gchar *aud_version_string;
+ char *aud_version_string;
GtkWidget *vbox;
GtkWidget *hbox1;
@@ -1839,13 +1652,13 @@ void * * create_prefs_window (void)
gtk_box_pack_start (GTK_BOX (vbox), hbox1, TRUE, TRUE, 0);
scrolledwindow6 = gtk_scrolled_window_new (NULL, NULL);
- gtk_box_pack_start (GTK_BOX (hbox1), scrolledwindow6, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox1), scrolledwindow6, FALSE, FALSE, 0);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_SHADOW_IN);
category_treeview = gtk_tree_view_new ();
gtk_container_add (GTK_CONTAINER (scrolledwindow6), category_treeview);
- gtk_widget_set_size_request (category_treeview, 172, -1);
+ gtk_widget_set_size_request (scrolledwindow6, 168, -1);
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (category_treeview), FALSE);
category_notebook = gtk_notebook_new ();
@@ -1856,10 +1669,7 @@ void * * create_prefs_window (void)
gtk_notebook_set_show_border (GTK_NOTEBOOK (category_notebook), FALSE);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (category_notebook), TRUE);
-
-
create_audio_category();
- create_replay_gain_category();
create_connectivity_category();
create_playlist_category();
create_plugin_category();
@@ -1903,14 +1713,12 @@ void * * create_prefs_window (void)
prefswin);
/* create category view */
- on_category_treeview_realize ((GtkTreeView *) category_treeview,
- (GtkNotebook *) category_notebook);
+ fill_category_list ((GtkTreeView *) category_treeview, (GtkNotebook *) category_notebook);
/* audacious version label */
aud_version_string = g_strdup_printf
- ("<span size='small'>%s (%s)</span>", "Audacious " PACKAGE_VERSION,
- BUILDSTAMP);
+ ("<span size='small'>%s (%s)</span>", "Audacious " VERSION, BUILDSTAMP);
gtk_label_set_markup( GTK_LABEL(audversionlabel) , aud_version_string );
g_free(aud_version_string);
@@ -1925,10 +1733,12 @@ destroy_prefs_window(void)
prefswin_destroy(prefswin, NULL, NULL);
}
-void
-show_prefs_window(void)
+void show_prefs_window (void)
{
- gtk_window_present(GTK_WINDOW(prefswin)); /* show or raise prefs window */
+ if (! prefswin)
+ create_prefs_window ();
+
+ gtk_window_present ((GtkWindow *) prefswin);
}
void
@@ -1938,8 +1748,8 @@ hide_prefs_window(void)
gtk_widget_hide(GTK_WIDGET(prefswin));
}
-static void prefswin_page_queue_new (GtkWidget * container, const gchar * name,
- const gchar * imgurl)
+static void prefswin_page_queue_new (GtkWidget * container, const char * name,
+ const char * imgurl)
{
CategoryQueueEntry *ent = g_new0(CategoryQueueEntry, 1);
@@ -1971,16 +1781,16 @@ prefswin_page_queue_destroy(CategoryQueueEntry *ent)
*
* - nenolod
*/
-/* gint prefswin_page_new (GtkWidget * container, const gchar * name,
- const gchar * imgurl) */
-gint prefswin_page_new (void * container, const gchar * name, const gchar *
+/* int prefswin_page_new (GtkWidget * container, const char * name,
+ const char * imgurl) */
+int prefswin_page_new (void * container, const char * name, const char *
imgurl)
{
GtkTreeModel *model;
GtkTreeIter iter;
GdkPixbuf *img = NULL;
GtkTreeView *treeview = GTK_TREE_VIEW(category_treeview);
- gint id;
+ int id;
if (treeview == NULL || category_notebook == NULL)
{
@@ -2024,9 +1834,9 @@ prefswin_page_destroy(GtkWidget *container)
GtkTreeModel *model;
GtkTreeIter iter;
GtkTreeView *treeview = GTK_TREE_VIEW(category_treeview);
- gboolean ret;
- gint id;
- gint index = -1;
+ bool_t ret;
+ int id;
+ int index = -1;
if (category_notebook == NULL || treeview == NULL || container == NULL)
return;
@@ -2068,12 +1878,12 @@ prefswin_page_destroy(GtkWidget *container)
static void sw_volume_toggled (void)
{
- gint vol[2];
+ int vol[2];
- if (cfg.software_volume_control)
+ if (get_bool (NULL, "software_volume_control"))
{
- vol[0] = cfg.sw_volume_left;
- vol[1] = cfg.sw_volume_right;
+ vol[0] = get_int (NULL, "sw_volume_left");
+ vol[1] = get_int (NULL, "sw_volume_right");
}
else
playback_get_volume (& vol[0], & vol[1]);
diff --git a/src/audacious/ui_preferences.h b/src/audacious/ui_preferences.h
index c41a62f..21a01bb 100644
--- a/src/audacious/ui_preferences.h
+++ b/src/audacious/ui_preferences.h
@@ -20,7 +20,6 @@
#ifndef AUDACIOUS_UI_PREFERENCES_H
#define AUDACIOUS_UI_PREFERENCES_H
-#include <glib.h>
#include <gtk/gtk.h>
#include "preferences.h"
@@ -31,9 +30,9 @@ void destroy_prefs_window(void);
void show_prefs_window(void);
void hide_prefs_window(void);
-/* gint prefswin_page_new (GtkWidget * container, const gchar * name,
- const gchar * imgurl); */
-gint prefswin_page_new (void * container, const gchar * name, const gchar *
+/* int prefswin_page_new (GtkWidget * container, const char * name,
+ const char * imgurl); */
+int prefswin_page_new (void * container, const char * name, const char *
imgurl);
void prefswin_page_destroy(GtkWidget *container);
@@ -41,6 +40,6 @@ void plugin_preferences_show (PluginPreferences * p);
void plugin_preferences_cleanup (PluginPreferences * p);
/* plugin-view.c */
-GtkWidget * plugin_view_new (gint type);
+GtkWidget * plugin_view_new (int type);
#endif /* AUDACIOUS_UI_PREFERENCES_H */
diff --git a/src/audacious/util.c b/src/audacious/util.c
index 2c2445b..96c1492 100644
--- a/src/audacious/util.c
+++ b/src/audacious/util.c
@@ -23,7 +23,8 @@
* Audacious or using our public API to be a derived work.
*/
-#include <limits.h>
+#include <dirent.h>
+#include <sys/stat.h>
#include <unistd.h>
#ifdef _WIN32
@@ -41,108 +42,66 @@
#include <errno.h>
-#ifdef HAVE_FTS_H
-# include <sys/types.h>
-# include <sys/stat.h>
-# include <fts.h>
-#endif
-
#include <libaudcore/audstrings.h>
-#include <libaudcore/stringpool.h>
-#include "audconfig.h"
#include "debug.h"
#include "i18n.h"
#include "misc.h"
#include "plugins.h"
#include "util.h"
-gboolean
-dir_foreach(const gchar * path, DirForeachFunc function,
- gpointer user_data, GError ** error)
+bool_t dir_foreach (const char * path, DirForeachFunc func, void * user)
{
- GError *error_out = NULL;
- GDir *dir;
- const gchar *entry;
- gchar *entry_fullpath;
-
- if (!(dir = g_dir_open(path, 0, &error_out))) {
- g_propagate_error(error, error_out);
+ DIR * dir = opendir (path);
+ if (! dir)
return FALSE;
- }
- while ((entry = g_dir_read_name(dir))) {
- entry_fullpath = g_build_filename(path, entry, NULL);
+ struct dirent * entry;
+ while ((entry = readdir (dir)))
+ {
+ if (entry->d_name[0] == '.')
+ continue;
- if ((*function) (entry_fullpath, entry, user_data)) {
- g_free(entry_fullpath);
- break;
- }
+ char * full = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", path, entry->d_name);
+ bool_t stop = func (full, entry->d_name, user);
+ g_free (full);
- g_free(entry_fullpath);
+ if (stop)
+ break;
}
- g_dir_close(dir);
-
+ closedir (dir);
return TRUE;
}
-/**
- * util_get_localdir:
- *
- * Returns a string with the full path of Audacious local datadir (where config files are placed).
- * It's useful in order to put in the right place custom config files for audacious plugins.
- *
- * Return value: a string with full path of Audacious local datadir (should be freed after use)
- **/
-gchar*
-util_get_localdir(void)
+char * construct_uri (const char * string, const char * playlist_name)
{
- gchar *datadir;
- gchar *tmp;
+ /* URI */
+ if (strstr (string, "://"))
+ return strdup (string);
- if ( (tmp = getenv("XDG_CONFIG_HOME")) == NULL )
- datadir = g_build_filename( g_get_home_dir() , ".config" , "audacious" , NULL );
- else
- datadir = g_build_filename( tmp , "audacious" , NULL );
-
- return datadir;
-}
-
-
-gchar * construct_uri (const gchar * string, const gchar * playlist_name)
-{
- gchar *filename = g_strdup(string);
- gchar *uri = NULL;
-
- /* try to translate dos path */
- convert_dos_path(filename); /* in place replacement */
-
- // make full path uri here
- // case 1: filename is raw full path or uri
- if (filename[0] == '/' || strstr(filename, "://")) {
- uri = g_filename_to_uri(filename, NULL, NULL);
- if(!uri)
- uri = g_strdup(filename);
- }
- // case 2: filename is not raw full path nor uri
- // make full path by replacing last part of playlist path with filename.
- else
- {
- const gchar * fslash = strrchr (filename, '/');
- const gchar * pslash = strrchr (playlist_name, '/');
+ /* absolute filename (assumed UTF-8) */
+#ifdef _WIN32
+ if (string[0] && string[1] == ':' && string[2] == '\\')
+#else
+ if (string[0] == '/')
+#endif
+ return filename_to_uri (string);
- if (pslash)
- uri = g_strdup_printf ("%.*s/%s", (gint) (pslash - playlist_name),
- playlist_name, fslash ? fslash + 1 : filename);
- }
+ /* relative filename (assumed UTF-8) */
+ const char * slash = strrchr (playlist_name, '/');
+ if (! slash)
+ return NULL;
- g_free (filename);
- return uri;
+ int pathlen = slash + 1 - playlist_name;
+ char buf[pathlen + 3 * strlen (string) + 1];
+ memcpy (buf, playlist_name, pathlen);
+ str_encode_percent (string, -1, buf + pathlen);
+ return strdup (buf);
}
/* local files -- not URI's */
-gint file_get_mtime (const gchar * filename)
+int file_get_mtime (const char * filename)
{
struct stat info;
@@ -153,7 +112,7 @@ gint file_get_mtime (const gchar * filename)
}
void
-make_directory(const gchar * path, mode_t mode)
+make_directory(const char * path, mode_t mode)
{
if (g_mkdir_with_parents(path, mode) == 0)
return;
@@ -162,79 +121,117 @@ make_directory(const gchar * path, mode_t mode)
g_strerror(errno));
}
-gchar * get_path_to_self (void)
+char * write_temp_file (void * data, int64_t len)
{
- gchar buf[PATH_MAX];
- gint len;
+ char * name = g_strdup_printf ("%s/audacious-temp-XXXXXX", g_get_tmp_dir ());
-#ifdef _WIN32
- if (! (len = GetModuleFileName (NULL, buf, sizeof buf)) || len == sizeof buf)
+ int handle = g_mkstemp (name);
+ if (handle < 0)
{
- fprintf (stderr, "GetModuleFileName failed.\n");
+ fprintf (stderr, "Error creating temporary file: %s\n", strerror (errno));
+ g_free (name);
return NULL;
}
-#else
- if ((len = readlink ("/proc/self/exe", buf, sizeof buf)) < 0)
+
+ while (len)
+ {
+ int64_t written = write (handle, data, len);
+ if (written < 0)
+ {
+ fprintf (stderr, "Error writing %s: %s\n", name, strerror (errno));
+ close (handle);
+ g_free (name);
+ return NULL;
+ }
+
+ data += written;
+ len -= written;
+ }
+
+ if (close (handle) < 0)
{
- fprintf (stderr, "Cannot access /proc/self/exe: %s.\n", strerror (errno));
+ fprintf (stderr, "Error closing %s: %s\n", name, strerror (errno));
+ g_free (name);
return NULL;
}
-#endif
- return g_strndup (buf, len);
+ return name;
}
-#define URL_HISTORY_MAX_SIZE 30
-
-void
-util_add_url_history_entry(const gchar * url)
+char * get_path_to_self (void)
{
- if (g_list_find_custom(cfg.url_history, url, (GCompareFunc) strcasecmp))
- return;
+#if defined _WIN32 || defined HAVE_PROC_SELF_EXE
+ int size = 256;
+ char * buf = g_malloc (size);
- cfg.url_history = g_list_prepend(cfg.url_history, g_strdup(url));
+ while (1)
+ {
+ int len;
- while (g_list_length(cfg.url_history) > URL_HISTORY_MAX_SIZE) {
- GList *node = g_list_last(cfg.url_history);
- g_free(node->data);
- cfg.url_history = g_list_delete_link(cfg.url_history, node);
+#ifdef _WIN32
+ if (! (len = GetModuleFileName (NULL, buf, size)))
+ {
+ fprintf (stderr, "GetModuleFileName failed.\n");
+ g_free (buf);
+ return NULL;
+ }
+#else
+ if ((len = readlink ("/proc/self/exe", buf, size)) < 0)
+ {
+ fprintf (stderr, "Cannot access /proc/self/exe: %s.\n", strerror (errno));
+ g_free (buf);
+ return NULL;
+ }
+#endif
+
+ if (len < size)
+ {
+ buf[len] = 0;
+ return buf;
+ }
+
+ size += size;
+ buf = g_realloc (buf, size);
}
+#else
+ return NULL;
+#endif
}
-/* Strips various common top-level folders from a file name (not URI). The
- * string passed will not be modified, but the string returned will share the
- * same memory. Examples:
- * "/home/john/folder/file.mp3" -> "folder/file.mp3"
- * "/folder/file.mp3" -> "folder/file.mp3"
- * "C:\Users\John\folder\file.mp3" -> "folder\file.mp3"
- * "E:\folder\file.mp3" -> "folder\file.mp3" */
+/* Strips various common top-level folders from a URI. The string passed will
+ * not be modified, but the string returned will share the same memory.
+ * Examples:
+ * "file:///home/john/folder/file.mp3" -> "folder/file.mp3"
+ * "file:///folder/file.mp3" -> "folder/file.mp3" */
-static gchar * skip_top_folders (gchar * name)
+static char * skip_top_folders (char * name)
{
- const gchar * home = getenv ("HOME");
+ static char * home;
+ static int len;
+
if (! home)
- goto NO_HOME;
+ {
+ home = filename_to_uri (g_get_home_dir ());
+ len = strlen (home);
- gint len = strlen (home);
- if (len > 0 && home[len - 1] == G_DIR_SEPARATOR)
- len --;
+ if (len > 0 && home[len - 1] == '/')
+ len --;
+ }
#ifdef _WIN32
- if (! strncasecmp (name, home, len) && name[len] == '\\')
+ if (! g_ascii_strncasecmp (name, home, len) && name[len] == '/')
#else
if (! strncmp (name, home, len) && name[len] == '/')
#endif
return name + len + 1;
-NO_HOME:
-#ifdef _WIN32
- return (name[0] && name[1] == ':' && name[2] == '\\') ? name + 3 : name;
-#else
- return (name[0] == '/') ? name + 1 : name;
-#endif
+ if (! strncmp (name, "file:///", 8))
+ return name + 8;
+
+ return name;
}
-/* Divides a file name (not URI) into the base name, the lowest folder, and the
+/* Divides a URI into the base name, the lowest folder, and the
* second lowest folder. The string passed will be modified, and the strings
* returned will use the same memory. May return NULL for <first> and <second>.
* Examples:
@@ -242,14 +239,14 @@ NO_HOME:
* "d/e.mp3" -> "e", "d", NULL
* "e.mp3" -> "e", NULL, NULL */
-static void split_filename (gchar * name, gchar * * base, gchar * * first,
- gchar * * second)
+static void split_filename (char * name, char * * base, char * * first,
+ char * * second)
{
* first = * second = NULL;
- gchar * c;
+ char * c;
- if ((c = strrchr (name, G_DIR_SEPARATOR)))
+ if ((c = strrchr (name, '/')))
{
* base = c + 1;
* c = 0;
@@ -260,7 +257,7 @@ static void split_filename (gchar * name, gchar * * base, gchar * * first,
goto DONE;
}
- if ((c = strrchr (name, G_DIR_SEPARATOR)))
+ if ((c = strrchr (name, '/')))
{
* first = c + 1;
* c = 0;
@@ -271,7 +268,7 @@ static void split_filename (gchar * name, gchar * * base, gchar * * first,
goto DONE;
}
- if ((c = strrchr (name, G_DIR_SEPARATOR)))
+ if ((c = strrchr (name, '/')))
* second = c + 1;
else
* second = name;
@@ -287,7 +284,7 @@ DONE:
* "http://some.domain.org/folder/file.mp3" -> "some.domain.org"
* "http://some.stream.fm:8000" -> "some.stream.fm" */
-static gchar * stream_name (gchar * name)
+static char * stream_name (char * name)
{
if (! strncmp (name, "http://", 7))
name += 7;
@@ -298,7 +295,7 @@ static gchar * stream_name (gchar * name)
else
return NULL;
- gchar * c;
+ char * c;
if ((c = strchr (name, '/')))
* c = 0;
@@ -310,47 +307,66 @@ static gchar * stream_name (gchar * name)
return name;
}
-/* Derives best guesses of title, artist, and album from a file name (URI) and
- * tuple. The returned strings are stringpooled or NULL. */
+static char * get_nonblank_field (const Tuple * tuple, int field)
+{
+ char * str = tuple ? tuple_get_str (tuple, field, NULL) : NULL;
+
+ if (str && ! str[0])
+ {
+ str_unref (str);
+ str = NULL;
+ }
+
+ return str;
+}
-void describe_song (const gchar * name, const Tuple * tuple, gchar * * _title,
- gchar * * _artist, gchar * * _album)
+static char * str_get_decoded (char * str)
{
- /* Common folder names to skip */
- static const gchar * const skip[] = {"music"};
+ if (! str)
+ return NULL;
- const gchar * title = tuple_get_string (tuple, FIELD_TITLE, NULL);
- const gchar * artist = tuple_get_string (tuple, FIELD_ARTIST, NULL);
- const gchar * album = tuple_get_string (tuple, FIELD_ALBUM, NULL);
+ str_decode_percent (str, -1, str);
+ return str_get (str);
+}
+
+/* Derives best guesses of title, artist, and album from a file name (URI) and
+ * tuple (which may be NULL). The returned strings are stringpooled or NULL. */
- if (title && ! title[0])
- title = NULL;
- if (artist && ! artist[0])
- artist = NULL;
- if (album && ! album[0])
- album = NULL;
+void describe_song (const char * name, const Tuple * tuple, char * * _title,
+ char * * _artist, char * * _album)
+{
+ /* Common folder names to skip */
+ static const char * const skip[] = {"music"};
- gchar * copy = NULL;
+ char * title = get_nonblank_field (tuple, FIELD_TITLE);
+ char * artist = get_nonblank_field (tuple, FIELD_ARTIST);
+ char * album = get_nonblank_field (tuple, FIELD_ALBUM);
if (title && artist && album)
- goto DONE;
+ {
+DONE:
+ * _title = title;
+ * _artist = artist;
+ * _album = album;
+ return;
+ }
- copy = uri_to_display (name);
+ char buf[strlen (name) + 1];
+ memcpy (buf, name, sizeof buf);
- if (! strncmp (name, "file://", 7))
+ if (! strncmp (buf, "file:///", 8))
{
- gchar * base, * first, * second;
- split_filename (skip_top_folders (copy), & base, & first,
- & second);
+ char * base, * first, * second;
+ split_filename (skip_top_folders (buf), & base, & first, & second);
if (! title)
- title = base;
+ title = str_get_decoded (base);
- for (gint i = 0; i < G_N_ELEMENTS (skip); i ++)
+ for (int i = 0; i < G_N_ELEMENTS (skip); i ++)
{
- if (first && ! strcasecmp (first, skip[i]))
+ if (first && ! g_ascii_strcasecmp (first, skip[i]))
first = NULL;
- if (second && ! strcasecmp (second, skip[i]))
+ if (second && ! g_ascii_strcasecmp (second, skip[i]))
second = NULL;
}
@@ -358,29 +374,29 @@ void describe_song (const gchar * name, const Tuple * tuple, gchar * * _title,
{
if (second && ! artist && ! album)
{
- artist = second;
- album = first;
+ artist = str_get_decoded (second);
+ album = str_get_decoded (first);
}
else if (! artist)
- artist = first;
+ artist = str_get_decoded (first);
else if (! album)
- album = first;
+ album = str_get_decoded (first);
}
}
else
{
if (! title)
- title = stream_name (copy);
+ {
+ title = str_get_decoded (stream_name (buf));
+
+ if (! title)
+ title = str_get_decoded (buf);
+ }
else if (! artist)
- artist = stream_name (copy);
+ artist = str_get_decoded (stream_name (buf));
else if (! album)
- album = stream_name (copy);
+ album = str_get_decoded (stream_name (buf));
}
-DONE:
- * _title = title ? stringpool_get ((gchar *) title, FALSE) : NULL;
- * _artist = artist ? stringpool_get ((gchar *) artist, FALSE) : NULL;
- * _album = album ? stringpool_get ((gchar *) album, FALSE) : NULL;
-
- g_free (copy);
+ goto DONE;
}
diff --git a/src/audacious/util.h b/src/audacious/util.h
index f5edf24..a42a453 100644
--- a/src/audacious/util.h
+++ b/src/audacious/util.h
@@ -27,21 +27,21 @@
#define AUDACIOUS_UTIL_H
#include <sys/types.h>
-#include <glib.h>
+#include <libaudcore/core.h>
-typedef gboolean(*DirForeachFunc) (const gchar * path,
- const gchar * basename,
+typedef bool_t(*DirForeachFunc) (const char * path,
+ const char * basename,
gpointer user_data);
-gboolean dir_foreach(const gchar * path, DirForeachFunc function,
- gpointer user_data, GError ** error);
+bool_t dir_foreach (const char * path, DirForeachFunc func, void * user_data);
-gint file_get_mtime (const gchar * filename);
-void make_directory(const gchar * path, mode_t mode);
+int file_get_mtime (const char * filename);
+void make_directory(const char * path, mode_t mode);
+char * write_temp_file (void * data, int64_t len);
-gchar * get_path_to_self (void);
+char * get_path_to_self (void);
-void describe_song (const gchar * filename, const Tuple * tuple,
- gchar * * title, gchar * * artist, gchar * * album);
+void describe_song (const char * filename, const Tuple * tuple,
+ char * * title, char * * artist, char * * album);
#endif /* AUDACIOUS_UTIL_H */
diff --git a/src/audacious/vis_runner.c b/src/audacious/vis_runner.c
index a82e5f7..a4a6e95 100644
--- a/src/audacious/vis_runner.c
+++ b/src/audacious/vis_runner.c
@@ -1,6 +1,6 @@
/*
* vis_runner.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -20,38 +20,46 @@
*/
#include <glib.h>
-#include <libaudcore/hook.h>
+#include <pthread.h>
+#include <string.h>
-#include "glib-compat.h"
-#include "misc.h"
#include "output.h"
#include "vis_runner.h"
+#include "visualization.h"
#define INTERVAL 30 /* milliseconds */
typedef struct {
- VisHookFunc func;
- void * user;
-} VisHookItem;
-
-G_LOCK_DEFINE_STATIC (mutex);
-static gboolean playing = FALSE, paused = FALSE, active = FALSE;
-static GList * hooks = NULL;
+ int time;
+ float * data;
+ int channels;
+} VisNode;
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static bool_t enabled = FALSE;
+static bool_t playing = FALSE, paused = FALSE, active = FALSE;
static VisNode * current_node = NULL;
+static int current_frames;
static GQueue vis_list = G_QUEUE_INIT;
-static gint send_source = 0, clear_source = 0;
+static int send_source = 0, clear_source = 0;
+
+static void vis_node_free (VisNode * node)
+{
+ g_free (node->data);
+ g_free (node);
+}
-static gboolean send_audio (void * unused)
+static bool_t send_audio (void * unused)
{
- G_LOCK (mutex);
+ pthread_mutex_lock (& mutex);
if (! send_source)
{
- G_UNLOCK (mutex);
+ pthread_mutex_unlock (& mutex);
return FALSE;
}
- gint outputted = get_raw_output_time ();
+ int outputted = get_raw_output_time ();
VisNode * vis_node = NULL;
VisNode * next;
@@ -65,69 +73,73 @@ static gboolean send_audio (void * unused)
if (next->time > outputted + (vis_node ? 0 : INTERVAL))
break;
- g_free (vis_node);
+ if (vis_node)
+ vis_node_free (vis_node);
+
vis_node = g_queue_pop_head (& vis_list);
}
- G_UNLOCK (mutex);
+ pthread_mutex_unlock (& mutex);
if (! vis_node)
return TRUE;
- for (GList * node = hooks; node; node = node->next)
- {
- VisHookItem * item = node->data;
- item->func (vis_node, item->user);
- }
+ vis_send_audio (vis_node->data, vis_node->channels);
- g_free (vis_node);
+ vis_node_free (vis_node);
return TRUE;
}
-static gboolean send_clear (void * unused)
+static bool_t send_clear (void * unused)
{
- G_LOCK (mutex);
+ pthread_mutex_lock (& mutex);
clear_source = 0;
- G_UNLOCK (mutex);
+ pthread_mutex_unlock (& mutex);
+
+ vis_send_clear ();
- hook_call ("visualization clear", NULL);
return FALSE;
}
-static gboolean locked = FALSE;
+static bool_t locked = FALSE;
void vis_runner_lock (void)
{
- G_LOCK (mutex);
+ pthread_mutex_lock (& mutex);
locked = TRUE;
}
void vis_runner_unlock (void)
{
locked = FALSE;
- G_UNLOCK (mutex);
+ pthread_mutex_unlock (& mutex);
}
-gboolean vis_runner_locked (void)
+bool_t vis_runner_locked (void)
{
return locked;
}
void vis_runner_flush (void)
{
- g_free (current_node);
- current_node = NULL;
- g_queue_foreach (& vis_list, (GFunc) g_free, NULL);
+ if (current_node)
+ {
+ vis_node_free (current_node);
+ current_node = NULL;
+ }
+
+ g_queue_foreach (& vis_list, (GFunc) vis_node_free, NULL);
g_queue_clear (& vis_list);
- clear_source = g_timeout_add (0, send_clear, NULL);
+ if (! clear_source)
+ clear_source = g_timeout_add (0, send_clear, NULL);
}
-void vis_runner_start_stop (gboolean new_playing, gboolean new_paused)
+void vis_runner_start_stop (bool_t new_playing, bool_t new_paused)
{
playing = new_playing;
paused = new_paused;
- active = playing && hooks;
+ active = playing && enabled;
if (send_source)
{
@@ -147,31 +159,42 @@ void vis_runner_start_stop (gboolean new_playing, gboolean new_paused)
send_source = g_timeout_add (INTERVAL, send_audio, NULL);
}
-void vis_runner_pass_audio (gint time, gfloat * data, gint samples, gint
- channels, gint rate)
+void vis_runner_pass_audio (int time, float * data, int samples, int
+ channels, int rate)
{
if (! active)
return;
- if (current_node && current_node->nch != MIN (channels, 2))
+ /* We can build a single node from multiple calls; we can also build
+ * multiple nodes from the same call. If current_node is present, it was
+ * partly built in the last call and needs to be finished. */
+
+ if (current_node && current_node->channels != channels)
{
- g_free (current_node);
+ vis_node_free (current_node);
current_node = NULL;
}
- gint at = 0;
+ int at = 0;
while (1)
{
if (! current_node)
{
- gint node_time = time;
+ int node_time = time;
VisNode * last;
+ /* There is no partly-built node, so start a new one. Normally
+ * there will be nodes in the queue already; if so, we want to copy
+ * audio data from the signal starting at 30 milliseconds after the
+ * beginning of the most recent node. If there are no nodes in the
+ * queue, we are at the beginning of the song or had an underrun,
+ * and we want to copy the earliest audio data we have. */
+
if ((last = g_queue_peek_tail (& vis_list)))
node_time = last->time + INTERVAL;
- at = channels * (gint) ((gint64) (node_time - time) * rate / 1000);
+ at = channels * (int) ((int64_t) (node_time - time) * rate / 1000);
if (at < 0)
at = 0;
@@ -180,29 +203,21 @@ void vis_runner_pass_audio (gint time, gfloat * data, gint samples, gint
current_node = g_malloc (sizeof (VisNode));
current_node->time = node_time;
- current_node->nch = MIN (channels, 2);
- current_node->length = 0;
+ current_node->data = g_malloc (sizeof (float) * channels * 512);
+ current_node->channels = channels;
+ current_frames = 0;
}
- gint copy = MIN (samples - at, channels * (512 - current_node->length));
+ /* Copy as much data as we can, limited by how much we have and how much
+ * space is left in the node. If we cannot fill the node, we return and
+ * wait for more data to be passed in the next call. If we do fill the
+ * node, we loop and start building a new one. */
- for (gint channel = 0; channel < current_node->nch; channel ++)
- {
- gfloat * from = data + at + channel;
- gfloat * end = from + copy;
- gint16 * to = current_node->data[channel] + current_node->length;
-
- while (from < end)
- {
- register gfloat temp = * from;
- * to ++ = CLAMP (temp, -1, 1) * 32767;
- from += channels;
- }
- }
-
- current_node->length += copy / channels;
+ int copy = MIN (samples - at, channels * (512 - current_frames));
+ memcpy (current_node->data + channels * current_frames, data + at, sizeof (float) * copy);
+ current_frames += copy / channels;
- if (current_node->length < 512)
+ if (current_frames < 512)
break;
g_queue_push_tail (& vis_list, current_node);
@@ -215,7 +230,7 @@ static void time_offset_cb (VisNode * vis_node, void * offset)
vis_node->time += GPOINTER_TO_INT (offset);
}
-void vis_runner_time_offset (gint offset)
+void vis_runner_time_offset (int offset)
{
if (current_node)
current_node->time += offset;
@@ -223,33 +238,10 @@ void vis_runner_time_offset (gint offset)
g_queue_foreach (& vis_list, (GFunc) time_offset_cb, GINT_TO_POINTER (offset));
}
-void vis_runner_add_hook (VisHookFunc func, void * user)
-{
- G_LOCK (mutex);
-
- VisHookItem * item = g_malloc (sizeof (VisHookItem));
- item->func = func;
- item->user = user;
- hooks = g_list_prepend (hooks, item);
-
- vis_runner_start_stop (playing, paused);
- G_UNLOCK (mutex);
-}
-
-void vis_runner_remove_hook (VisHookFunc func)
+void vis_runner_enable (bool_t enable)
{
- G_LOCK (mutex);
-
- for (GList * node = hooks; node; node = node->next)
- {
- if (((VisHookItem *) node->data)->func == func)
- {
- g_free (node->data);
- hooks = g_list_delete_link (hooks, node);
- break;
- }
- }
-
+ pthread_mutex_lock (& mutex);
+ enabled = enable;
vis_runner_start_stop (playing, paused);
- G_UNLOCK (mutex);
+ pthread_mutex_unlock (& mutex);
}
diff --git a/src/audacious/vis_runner.h b/src/audacious/vis_runner.h
index 30d4e58..c2a2149 100644
--- a/src/audacious/vis_runner.h
+++ b/src/audacious/vis_runner.h
@@ -22,18 +22,22 @@
#ifndef AUD_VIS_RUNNER_H
#define AUD_VIS_RUNNER_H
+#include <libaudcore/core.h>
+
/* When the decoder thread wants to send data to the vis runner, it must block
* the vis timeout before blocking output functions; otherwise, the vis timeout
* will hang up waiting for those output functions to be unblocked while the
* decoder thread hangs up waiting for the vis timeout to finish. */
void vis_runner_lock (void);
void vis_runner_unlock (void);
-gboolean vis_runner_locked (void);
+bool_t vis_runner_locked (void);
-void vis_runner_start_stop (gboolean playing, gboolean paused);
-void vis_runner_pass_audio (gint time, gfloat * data, gint samples, gint
- channels, gint rate);
-void vis_runner_time_offset (gint offset);
+void vis_runner_start_stop (bool_t playing, bool_t paused);
+void vis_runner_pass_audio (int time, float * data, int samples, int
+ channels, int rate);
+void vis_runner_time_offset (int offset);
void vis_runner_flush (void);
+void vis_runner_enable (bool_t enable);
+
#endif
diff --git a/src/audacious/visualization.c b/src/audacious/visualization.c
index 9310e8b..17f60c2 100644
--- a/src/audacious/visualization.c
+++ b/src/audacious/visualization.c
@@ -1,203 +1,126 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2010 Audacious development team
+/*
+ * visualization.c
+ * Copyright 2010-2011 John Lindgren
*
- * Based on BMP:
- * Copyright (C) 2003-2004 BMP development team
+ * This file is part of Audacious.
*
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team
+ * Audacious 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, version 2 or version 3 of the License.
*
- * 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; under version 3 of the License.
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
*/
#include <glib.h>
#include <gtk/gtk.h>
-#include <math.h>
#include <string.h>
-#include <libaudcore/hook.h>
-
#include "debug.h"
#include "fft.h"
#include "interface.h"
#include "misc.h"
-#include "playback.h"
#include "plugin.h"
#include "plugins.h"
#include "ui_preferences.h"
#include "visualization.h"
+#include "vis_runner.h"
+
+static GList * vis_funcs[AUD_VIS_TYPES];
typedef struct {
PluginHandle * plugin;
VisPlugin * header;
GtkWidget * widget;
- gboolean started;
} LoadedVis;
-static gint running = FALSE;
+static int running = FALSE;
static GList * loaded_vis_plugins = NULL;
-void calc_stereo_pcm (VisPCMData dest, const VisPCMData src, gint nch)
+void vis_func_add (int type, GCallback func)
{
- memcpy(dest[0], src[0], 512 * sizeof(gint16));
- if (nch == 1)
- memcpy(dest[1], src[0], 512 * sizeof(gint16));
- else
- memcpy(dest[1], src[1], 512 * sizeof(gint16));
-}
+ g_return_if_fail (type >= 0 && type < AUD_VIS_TYPES);
+ vis_funcs[type] = g_list_prepend (vis_funcs[type], (void *) func);
-void calc_mono_pcm (VisPCMData dest, const VisPCMData src, gint nch)
-{
- gint i;
- gint16 *d;
- const gint16 *sl, *sr;
-
- if (nch == 1)
- memcpy(dest[0], src[0], 512 * sizeof(gint16));
- else {
- d = dest[0];
- sl = src[0];
- sr = src[1];
- for (i = 0; i < 512; i++) {
- *(d++) = (*(sl++) + *(sr++)) >> 1;
- }
- }
+ vis_runner_enable (TRUE);
}
-static void calc_freq (gint16 * dest, const gint16 * src)
+void vis_func_remove (GCallback func)
{
- static fft_state *state = NULL;
- gfloat tmp_out[257];
- gint i;
+ bool_t disable = TRUE;
- if (!state)
- state = fft_init();
-
- fft_perform(src, tmp_out, state);
+ for (int i = 0; i < AUD_VIS_TYPES; i ++)
+ {
+ vis_funcs[i] = g_list_remove_all (vis_funcs[i], (void *) func);
+ if (vis_funcs[i])
+ disable = FALSE;
+ }
- for (i = 0; i < 256; i++)
- dest[i] = ((gint) sqrt(tmp_out[i + 1])) >> 8;
+ if (disable)
+ vis_runner_enable (FALSE);
}
-void calc_mono_freq (VisFreqData dest, const VisPCMData src, gint nch)
+void vis_send_clear (void)
{
- gint i;
- gint16 *d, tmp[512];
- const gint16 *sl, *sr;
-
- if (nch == 1)
- calc_freq(dest[0], src[0]);
- else {
- d = tmp;
- sl = src[0];
- sr = src[1];
- for (i = 0; i < 512; i++) {
- *(d++) = (*(sl++) + *(sr++)) >> 1;
- }
- calc_freq(dest[0], tmp);
+ for (GList * node = vis_funcs[AUD_VIS_TYPE_CLEAR]; node; node = node->next)
+ {
+ void (* func) (void) = (void (*) (void)) node->data;
+ func ();
}
}
-void calc_stereo_freq (VisFreqData dest, const VisPCMData src, gint nch)
+static void pcm_to_mono (const float * data, float * mono, int channels)
{
- calc_freq(dest[0], src[0]);
-
- if (nch == 2)
- calc_freq(dest[1], src[1]);
+ if (channels == 1)
+ memcpy (mono, data, sizeof (float) * 512);
else
- memcpy(dest[1], dest[0], 256 * sizeof(gint16));
-}
-
-static void send_audio (const VisNode * vis_node)
-{
- gint16 mono_freq[2][256], stereo_freq[2][256];
- gboolean mono_freq_calced = FALSE, stereo_freq_calced = FALSE;
- gint16 mono_pcm[2][512], stereo_pcm[2][512];
- gboolean mono_pcm_calced = FALSE, stereo_pcm_calced = FALSE;
-
- for (GList * node = loaded_vis_plugins; node != NULL; node = node->next)
{
- VisPlugin * vp = ((LoadedVis *) node->data)->header;
-
- if (vp->num_pcm_chs_wanted > 0 && vp->render_pcm) {
- if (vp->num_pcm_chs_wanted == 1) {
- if (!mono_pcm_calced) {
- calc_mono_pcm(mono_pcm, vis_node->data, vis_node->nch);
- mono_pcm_calced = TRUE;
- }
- vp->render_pcm(mono_pcm);
- }
- else {
- if (!stereo_pcm_calced) {
- calc_stereo_pcm(stereo_pcm, vis_node->data, vis_node->nch);
- stereo_pcm_calced = TRUE;
- }
- vp->render_pcm(stereo_pcm);
- }
- }
- if (vp->num_freq_chs_wanted > 0 && vp->render_freq) {
- if (vp->num_freq_chs_wanted == 1) {
- if (!mono_freq_calced) {
- calc_mono_freq(mono_freq, vis_node->data, vis_node->nch);
- mono_freq_calced = TRUE;
- }
- vp->render_freq(mono_freq);
- }
- else {
- if (!stereo_freq_calced) {
- calc_stereo_freq(stereo_freq, vis_node->data, vis_node->nch);
- stereo_freq_calced = TRUE;
- }
- vp->render_freq(stereo_freq);
- }
+ float * set = mono;
+ while (set < & mono[512])
+ {
+ * set ++ = (data[0] + data[1]) / 2;
+ data += channels;
}
}
}
-static void vis_start (LoadedVis * vis)
+void vis_send_audio (const float * data, int channels)
{
- if (vis->started)
- return;
- AUDDBG ("Starting %s.\n", plugin_get_name (vis->plugin));
- if (vis->header->playback_start != NULL)
- vis->header->playback_start ();
- vis->started = TRUE;
-}
+ float mono[512];
+ float freq[256];
-static void vis_start_all (void)
-{
- g_list_foreach (loaded_vis_plugins, (GFunc) vis_start, NULL);
-}
+ if (vis_funcs[AUD_VIS_TYPE_MONO_PCM] || vis_funcs[AUD_VIS_TYPE_FREQ])
+ pcm_to_mono (data, mono, channels);
+ if (vis_funcs[AUD_VIS_TYPE_FREQ])
+ calc_freq (mono, freq);
-static void vis_stop (LoadedVis * vis)
-{
- if (! vis->started)
- return;
- AUDDBG ("Stopping %s.\n", plugin_get_name (vis->plugin));
- if (vis->header->playback_stop != NULL)
- vis->header->playback_stop ();
- vis->started = FALSE;
-}
+ for (GList * node = vis_funcs[AUD_VIS_TYPE_MONO_PCM]; node; node = node->next)
+ {
+ void (* func) (const float *) = (void (*) (const float *)) node->data;
+ func (mono);
+ }
-static void vis_stop_all (void)
-{
- g_list_foreach (loaded_vis_plugins, (GFunc) vis_stop, NULL);
+ for (GList * node = vis_funcs[AUD_VIS_TYPE_MULTI_PCM]; node; node = node->next)
+ {
+ void (* func) (const float *, int) = (void (*) (const float *, int)) node->data;
+ func (data, channels);
+ }
+
+ for (GList * node = vis_funcs[AUD_VIS_TYPE_FREQ]; node; node = node->next)
+ {
+ void (* func) (const float *) = (void (*) (const float *)) node->data;
+ func (freq);
+ }
}
-static gint vis_find_cb (LoadedVis * vis, PluginHandle * plugin)
+static int vis_find_cb (LoadedVis * vis, PluginHandle * plugin)
{
return (vis->plugin == plugin) ? 0 : -1;
}
@@ -217,7 +140,6 @@ static void vis_load (PluginHandle * plugin)
vis->plugin = plugin;
vis->header = header;
vis->widget = NULL;
- vis->started = FALSE;
if (header->get_widget != NULL)
vis->widget = header->get_widget ();
@@ -230,11 +152,14 @@ static void vis_load (PluginHandle * plugin)
interface_add_plugin_widget (plugin, vis->widget);
}
- if (playback_get_playing ())
- vis_start (vis);
-
- if (loaded_vis_plugins == NULL)
- vis_runner_add_hook ((VisHookFunc) send_audio, NULL);
+ if (PLUGIN_HAS_FUNC (header, clear))
+ vis_func_add (AUD_VIS_TYPE_CLEAR, (GCallback) header->clear);
+ if (PLUGIN_HAS_FUNC (header, render_mono_pcm))
+ vis_func_add (AUD_VIS_TYPE_MONO_PCM, (GCallback) header->render_mono_pcm);
+ if (PLUGIN_HAS_FUNC (header, render_multi_pcm))
+ vis_func_add (AUD_VIS_TYPE_MULTI_PCM, (GCallback) header->render_multi_pcm);
+ if (PLUGIN_HAS_FUNC (header, render_freq))
+ vis_func_add (AUD_VIS_TYPE_FREQ, (GCallback) header->render_freq);
loaded_vis_plugins = g_list_prepend (loaded_vis_plugins, vis);
}
@@ -250,8 +175,15 @@ static void vis_unload (PluginHandle * plugin)
LoadedVis * vis = node->data;
loaded_vis_plugins = g_list_delete_link (loaded_vis_plugins, node);
- if (loaded_vis_plugins == NULL)
- vis_runner_remove_hook ((VisHookFunc) send_audio);
+ VisPlugin * header = vis->header;
+ if (PLUGIN_HAS_FUNC (header, clear))
+ vis_func_remove ((GCallback) header->clear);
+ if (PLUGIN_HAS_FUNC (header, render_mono_pcm))
+ vis_func_remove ((GCallback) header->render_mono_pcm);
+ if (PLUGIN_HAS_FUNC (header, render_multi_pcm))
+ vis_func_remove ((GCallback) header->render_multi_pcm);
+ if (PLUGIN_HAS_FUNC (header, render_freq))
+ vis_func_remove ((GCallback) header->render_freq);
if (vis->widget != NULL)
{
@@ -263,7 +195,7 @@ static void vis_unload (PluginHandle * plugin)
g_slice_free (LoadedVis, vis);
}
-static gboolean vis_init_cb (PluginHandle * plugin)
+static bool_t vis_init_cb (PluginHandle * plugin)
{
vis_load (plugin);
return TRUE;
@@ -275,9 +207,6 @@ void vis_init (void)
running = TRUE;
plugin_for_enabled (PLUGIN_TYPE_VIS, (PluginForEachFunc) vis_init_cb, NULL);
-
- hook_associate ("playback begin", (HookFunction) vis_start_all, NULL);
- hook_associate ("playback stop", (HookFunction) vis_stop_all, NULL);
}
static void vis_cleanup_cb (LoadedVis * vis)
@@ -290,13 +219,10 @@ void vis_cleanup (void)
g_return_if_fail (running);
running = FALSE;
- hook_dissociate ("playback begin", (HookFunction) vis_start_all);
- hook_dissociate ("playback stop", (HookFunction) vis_stop_all);
-
g_list_foreach (loaded_vis_plugins, (GFunc) vis_cleanup_cb, NULL);
}
-gboolean vis_plugin_start (PluginHandle * plugin)
+bool_t vis_plugin_start (PluginHandle * plugin)
{
VisPlugin * vp = plugin_get_header (plugin);
g_return_val_if_fail (vp != NULL, FALSE);
@@ -334,6 +260,6 @@ PluginHandle * vis_plugin_by_widget (/* GtkWidget * */ void * widget)
if (vis->widget == widget)
return vis->plugin;
}
-
+
return NULL;
}
diff --git a/src/audacious/visualization.h b/src/audacious/visualization.h
index f84cb10..78f6ac3 100644
--- a/src/audacious/visualization.h
+++ b/src/audacious/visualization.h
@@ -1,6 +1,6 @@
/*
* visualization.h
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -22,14 +22,15 @@
#ifndef AUDACIOUS_VISUALIZATION_H
#define AUDACIOUS_VISUALIZATION_H
-#include <glib.h>
-
#include "plugins.h"
+void vis_send_clear (void);
+void vis_send_audio (const float * data, int channels);
+
void vis_init (void);
void vis_cleanup (void);
-gboolean vis_plugin_start (PluginHandle * plugin);
+bool_t vis_plugin_start (PluginHandle * plugin);
void vis_plugin_stop (PluginHandle * plugin);
PluginHandle * vis_plugin_by_widget (/* GtkWidget * */ void * widget);
diff --git a/src/audtool/Makefile b/src/audtool/Makefile
index dbc3c94..2433604 100644
--- a/src/audtool/Makefile
+++ b/src/audtool/Makefile
@@ -11,17 +11,11 @@ SRCS = main.c \
include ../../buildsys.mk
include ../../extra.mk
-CPPFLAGS += ${CFLAGS} -I.. -I../.. -I../intl
-CFLAGS += ${GTK_CFLAGS} \
- ${DBUS_CFLAGS} \
- ${AUDACIOUS_DEFINES} \
- ${ARCH_DEFINES} \
- ${MOWGLI_CFLAGS}
-
-LDFLAGS += ${AUDLDFLAGS}
+CPPFLAGS += -I.. -I../.. \
+ ${AUDACIOUS_DEFINES} \
+ ${DBUS_CFLAGS} \
+ ${GTK_CFLAGS}
LIBS += ${DBUS_LIBS} \
-L../libaudclient -laudclient \
- ${GTK_LIBS} \
- ${MOWGLI_LIBS} \
- ${LIBMCS_LIBS}
+ ${GTK_LIBS}
diff --git a/src/audtool/audtool.h b/src/audtool/audtool.h
index f21808b..a1282fe 100644
--- a/src/audtool/audtool.h
+++ b/src/audtool/audtool.h
@@ -32,10 +32,8 @@
#ifndef AUDTOOL_H
#define AUDTOOL_H
-#include <mowgli.h>
#include <audacious/dbus.h>
-extern mowgli_error_context_t *e;
extern DBusGProxy *dbus_proxy;
struct commandhandler {
@@ -43,7 +41,7 @@ struct commandhandler {
void (*handler)(gint argc, gchar **argv);
gchar *desc;
gint args;
-};
+};
extern struct commandhandler handlers[];
@@ -74,6 +72,8 @@ extern void set_volume(gint, gchar **);
extern void playlist_position(gint, gchar **);
extern void playlist_advance(gint, gchar **);
+extern void playlist_auto_advance_status(gint, gchar **);
+extern void playlist_auto_advance_toggle(gint, gchar **);
extern void playlist_reverse(gint, gchar **);
extern void playlist_length(gint, gchar **);
extern void playlist_song(gint, gchar **);
@@ -91,8 +91,9 @@ extern void playlist_repeat_status(gint, gchar **);
extern void playlist_repeat_toggle(gint, gchar **);
extern void playlist_shuffle_status(gint, gchar **);
extern void playlist_shuffle_toggle(gint, gchar **);
+void playlist_stop_after_status (gint argc, gchar * * argv);
+void playlist_stop_after_toggle (gint argc, gchar * * argv);
extern void playlist_tuple_field_data(gint, gchar **argv);
-extern void playlist_show(gint, gchar **);
extern void playlist_enqueue_to_temp(gint argc, gchar **argv);
extern void playlist_ins_url_string(gint argc, gchar **argv);
extern void playlist_title(gint, gchar **);
@@ -124,7 +125,6 @@ extern void show_filebrowser(gint, gchar **);
extern void shutdown_audacious_server(gint, gchar **);
extern void show_about_window(gint, gchar **);
-extern void activate(gint argc, gchar **argv);
extern void toggle_aot(gint argc, gchar **argv);
extern void get_skin(gint argc, gchar **argv);
extern void set_skin(gint argc, gchar **argv);
@@ -137,7 +137,6 @@ extern void equalizer_set_eq(gint argc, gchar **argv);
extern void equalizer_set_eq_preamp(gint argc, gchar **argv);
extern void equalizer_set_eq_band(gint argc, gchar **argv);
extern void equalizer_active(gint argc, gchar **argv);
-extern void equalizer_show(gint, gchar **);
extern gint check_args_playlist_pos(gint argc, gchar **argv);
diff --git a/src/audtool/examples/infoline.sh b/src/audtool/examples/infoline.sh
old mode 100644
new mode 100755
diff --git a/src/audtool/examples/np-colourful.sh b/src/audtool/examples/np-colourful.sh
deleted file mode 100644
index 54c10e4..0000000
--- a/src/audtool/examples/np-colourful.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-SONGTITLE=$(audtool current-song | sed 's: - : 09-12 :g')
-SONGELAPSED=$(audtool current-song-output-length)
-SONGLEN=$(audtool current-song-length)
-SONGPOS=$(audtool playlist-position)
-PLAYLEN=$(audtool playlist-length)
-
-printf "\00303-=[\003 \00312$SONGPOS\00309/\00312$PLAYLEN\00309:\00312 $SONGTITLE \00309(\00312$SONGELAPSED\00309/\00312$SONGLEN\00309)\00303 ]=-\003\n"
diff --git a/src/audtool/examples/np.sh b/src/audtool/examples/np.sh
old mode 100644
new mode 100755
diff --git a/src/audtool/handlers_equalizer.c b/src/audtool/handlers_equalizer.c
index e1f822c..22ae8ae 100644
--- a/src/audtool/handlers_equalizer.c
+++ b/src/audtool/handlers_equalizer.c
@@ -29,10 +29,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
@@ -79,9 +79,9 @@ void equalizer_get_eq_band(gint argc, gchar **argv)
audtool_whine("band number out of range\n");
exit(1);
}
-
+
audtool_report("band %d = %.2f", band, audacious_remote_get_eq_band(dbus_proxy, band));
-
+
}
void equalizer_set_eq(gint argc, gchar **argv)
@@ -97,12 +97,12 @@ void equalizer_set_eq(gint argc, gchar **argv)
}
preamp = atof(argv[1]);
-
+
for(i=0; i<10; i++){
gdouble val = atof(argv[i+2]);
g_array_append_val(bands, val);
}
-
+
audacious_remote_set_eq(dbus_proxy, preamp, bands);
}
diff --git a/src/audtool/handlers_general.c b/src/audtool/handlers_general.c
index c89448f..a847626 100644
--- a/src/audtool/handlers_general.c
+++ b/src/audtool/handlers_general.c
@@ -32,7 +32,6 @@
#include <stdlib.h>
#include <string.h>
#include <glib.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
@@ -57,7 +56,7 @@ void set_volume(gint argc, gchar **argv)
}
current_volume = audacious_remote_get_main_volume(dbus_proxy);
- switch (argv[1][0])
+ switch (argv[1][0])
{
case '+':
case '-':
@@ -88,40 +87,6 @@ void mainwin_show(gint argc, gchar **argv)
}
}
-void playlist_show(gint argc, gchar **argv)
-{
- if (argc < 2) {
- audtool_whine_args(argv[0], "<on/off>");
- exit(1);
- }
-
- if (!g_ascii_strcasecmp(argv[1], "on")) {
- audacious_remote_pl_win_toggle(dbus_proxy, TRUE);
- return;
- }
- else if (!g_ascii_strcasecmp(argv[1], "off")) {
- audacious_remote_pl_win_toggle(dbus_proxy, FALSE);
- return;
- }
-}
-
-void equalizer_show(gint argc, gchar **argv)
-{
- if (argc < 2) {
- audtool_whine_args(argv[0], "<on/off>");
- exit(1);
- }
-
- if (!g_ascii_strcasecmp(argv[1] ,"on")) {
- audacious_remote_eq_win_toggle(dbus_proxy, TRUE);
- return;
- }
- else if (!g_ascii_strcasecmp(argv[1] ,"off")) {
- audacious_remote_eq_win_toggle(dbus_proxy, FALSE);
- return;
- }
-}
-
void show_preferences_window(gint argc, gchar **argv)
{
gboolean show = TRUE;
@@ -244,12 +209,7 @@ void get_handlers_list(gint argc, gchar **argv)
audtool_report("");
audtool_report("Handlers may be prefixed with `--' (GNU-style long-options) or not, your choice.");
- audtool_report("Report bugs to http://bugzilla.atheme.org/");
-}
-
-void activate(gint argc, gchar **argv)
-{
- audacious_remote_activate(dbus_proxy);
+ audtool_report("Report bugs to http://redmine.audacious-media-player.org/");
}
void toggle_aot(gint argc, gchar **argv)
diff --git a/src/audtool/handlers_playback.c b/src/audtool/handlers_playback.c
index 90e6b5b..b2d7bac 100644
--- a/src/audtool/handlers_playback.c
+++ b/src/audtool/handlers_playback.c
@@ -32,7 +32,6 @@
#include <stdlib.h>
#include <string.h>
#include <glib.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
diff --git a/src/audtool/handlers_playlist.c b/src/audtool/handlers_playlist.c
index c30d3e0..ada0461 100644
--- a/src/audtool/handlers_playlist.c
+++ b/src/audtool/handlers_playlist.c
@@ -33,7 +33,6 @@
#include <string.h>
#include <glib.h>
#include <glib/gi18n.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
@@ -48,6 +47,32 @@ void playlist_advance(gint argc, gchar **argv)
audacious_remote_playlist_next(dbus_proxy);
}
+void playlist_auto_advance_status(gint argc, gchar **argv)
+{
+ if (audacious_remote_is_advance(dbus_proxy))
+ {
+ audtool_report("on");
+ }
+ else
+ {
+ audtool_report("off");
+ }
+}
+
+void playlist_auto_advance_toggle(gint argc, gchar **argv)
+{
+ audacious_remote_toggle_advance(dbus_proxy);
+}
+
+void playlist_stop_after_status (gint argc, gchar * * argv)
+{
+ audtool_report (audacious_remote_is_stop_after (dbus_proxy) ? "on" : "off");
+}
+
+void playlist_stop_after_toggle (gint argc, gchar * * argv)
+{
+ audacious_remote_toggle_stop_after (dbus_proxy);
+}
gint check_args_playlist_pos(gint argc, gchar **argv)
{
diff --git a/src/audtool/handlers_playqueue.c b/src/audtool/handlers_playqueue.c
index e5b0675..ddcf2b8 100644
--- a/src/audtool/handlers_playqueue.c
+++ b/src/audtool/handlers_playqueue.c
@@ -32,7 +32,6 @@
#include <stdlib.h>
#include <string.h>
#include <glib.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
@@ -95,7 +94,7 @@ void playqueue_display(gint argc, gchar **argv)
gchar *songname;
gchar *fmt = NULL, *p;
gint column;
-
+
i = audacious_remote_get_playqueue_length(dbus_proxy);
audtool_report("%d queued tracks.", i);
diff --git a/src/audtool/handlers_vitals.c b/src/audtool/handlers_vitals.c
index abc1f09..01b931a 100644
--- a/src/audtool/handlers_vitals.c
+++ b/src/audtool/handlers_vitals.c
@@ -33,7 +33,6 @@
#include <string.h>
#include <glib.h>
#include <glib/gi18n.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
diff --git a/src/audtool/main.c b/src/audtool/main.c
index 18612fe..8007117 100644
--- a/src/audtool/main.c
+++ b/src/audtool/main.c
@@ -29,10 +29,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
@@ -58,10 +58,12 @@ struct commandhandler handlers[] = {
{"<sep>", NULL, "Playlist manipulation", 0},
{"playlist-advance", playlist_advance, "go to the next song in the playlist", 0},
+ {"playlist-auto-advance-status", playlist_auto_advance_status, "returns the status of playlist auto-advance", 0},
+ {"playlist-auto-advance-toggle", playlist_auto_advance_toggle, "toggles playlist auto-advance", 0},
{"playlist-reverse", playlist_reverse, "go to the previous song in the playlist", 0},
- {"playlist-addurl", playlist_add_url_string, "adds a url to the playlist", 1},
- {"playlist-insurl", playlist_ins_url_string, "inserts a url at specified position in the playlist", 2},
- {"playlist-addurl-to-new-playlist", playlist_enqueue_to_temp, "adds a url to the newly created playlist", 1},
+ {"playlist-addurl", playlist_add_url_string, "adds a URL to the playlist", 1},
+ {"playlist-insurl", playlist_ins_url_string, "inserts a URL at specified position in the playlist", 2},
+ {"playlist-addurl-to-new-playlist", playlist_enqueue_to_temp, "adds a URL to the newly created playlist", 1},
{"playlist-delete", playlist_delete, "deletes a song from the playlist", 1},
{"playlist-length", playlist_length, "returns the total length of the playlist", 0},
{"playlist-song", playlist_song, "returns the title of a song in the playlist", 1},
@@ -77,6 +79,8 @@ struct commandhandler handlers[] = {
{"playlist-repeat-toggle", playlist_repeat_toggle, "toggles playlist repeat", 0},
{"playlist-shuffle-status", playlist_shuffle_status, "returns the status of playlist shuffle", 0},
{"playlist-shuffle-toggle", playlist_shuffle_toggle, "toggles playlist shuffle", 0},
+ {"playlist-stop-after-status", playlist_stop_after_status, "queries if stopping after current song", 0},
+ {"playlist-stop-after-toggle", playlist_stop_after_toggle, "toggles if stopping after current song", 0},
{"playlist-tuple-data", playlist_tuple_field_data, "returns the value of a tuple field for a song in the playlist", 2},
{"current-playlist-name", playlist_title, "returns the playlist title of the active playlist", 0},
@@ -121,18 +125,14 @@ struct commandhandler handlers[] = {
{"<sep>", NULL, "Miscellaneous", 0},
{"mainwin-show", mainwin_show, "shows/hides the main window", 1},
- {"playlist-show", playlist_show, "shows/hides the playlist window", 1},
- {"equalizer-show", equalizer_show, "shows/hides the equalizer window", 1},
-
{"filebrowser-show", show_filebrowser, "shows/hides the filebrowser", 1},
{"jumptofile-show", show_jtf_window, "shows/hides the jump to file window", 1},
{"preferences-show", show_preferences_window, "shows/hides the preferences window", 1},
{"about-show", show_about_window, "shows/hides the about window", 1},
- {"activate", activate, "activates and raises audacious", 0},
{"always-on-top", toggle_aot, "on/off always on top", 1},
- {"version", get_version, "shows audaciuos version", 0},
- {"shutdown", shutdown_audacious_server, "shuts down audacious", 0},
+ {"version", get_version, "shows Audacious version", 0},
+ {"shutdown", shutdown_audacious_server, "shuts down Audacious", 0},
{"<sep>", NULL, "Help system", 0},
@@ -143,7 +143,6 @@ struct commandhandler handlers[] = {
{NULL, NULL, NULL, 0}
};
-mowgli_error_context_t *e = NULL;
DBusGProxy *dbus_proxy = NULL;
static DBusGConnection *connection = NULL;
@@ -152,13 +151,13 @@ audtool_connect(void)
{
GError *error = NULL;
- mowgli_error_context_push(e, "While attempting to connect to the D-Bus session bus");
connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
if (connection == NULL)
- mowgli_error_context_display_with_error(e, ":\n * ", g_strdup_printf("D-Bus Error: %s", error->message));
-
- mowgli_error_context_pop(e);
+ {
+ fprintf (stderr, "D-Bus Error: %s\n", error->message);
+ exit (EXIT_FAILURE);
+ }
dbus_proxy = dbus_g_proxy_new_for_name(connection, AUDACIOUS_DBUS_SERVICE,
AUDACIOUS_DBUS_PATH,
@@ -179,18 +178,14 @@ main(gint argc, gchar **argv)
setlocale(LC_CTYPE, "");
g_type_init();
- mowgli_init();
-
- e = mowgli_error_context_create();
- mowgli_error_context_push(e, "In program %s", argv[0]);
audtool_connect();
- mowgli_error_context_push(e, "While processing the commandline");
-
if (argc < 2)
- mowgli_error_context_display_with_error (e, ":\n * ", "not enough "
- "parameters, use \'audtool help\' for more information.");
+ {
+ fprintf (stderr, "Not enough parameters. Try \"audtool help\".\n");
+ exit (EXIT_FAILURE);
+ }
for (j = 1; j < argc; j++)
{
@@ -211,9 +206,10 @@ main(gint argc, gchar **argv)
}
if (k == 0)
- mowgli_error_context_display_with_error (e, ":\n * ", g_strdup_printf
- ("Unknown command '%s' encountered, use \'audtool help\' for a "
- "command list.", argv[1]));
+ {
+ fprintf (stderr, "Unknown command \"%s\". Try \"audtool help\".\n", argv[1]);
+ exit (EXIT_FAILURE);
+ }
audtool_disconnect();
diff --git a/src/audtool/report.c b/src/audtool/report.c
index 5484727..d996a5d 100644
--- a/src/audtool/report.c
+++ b/src/audtool/report.c
@@ -32,7 +32,6 @@
#include <stdlib.h>
#include <string.h>
#include <glib.h>
-#include <mowgli.h>
#include <locale.h>
#include "libaudclient/audctrl.h"
#include "audtool.h"
@@ -82,11 +81,11 @@ void audtool_whine_tuple_fields(void)
gint nfields, i;
gchar **fields = audacious_remote_get_tuple_fields(dbus_proxy),
**tmp = fields;
-
+
audtool_whine("Field names include, but are not limited to:\n");
-
+
for (nfields = 0; tmp && *tmp; nfields++, tmp++);
-
+
tmp = fields;
i = 0;
g_printerr(" ");
@@ -99,13 +98,13 @@ void audtool_whine_tuple_fields(void)
g_printerr("%s", *tmp);
if (--nfields > 0)
g_printerr(", ");
-
+
g_free(*tmp);
tmp++;
}
-
+
g_printerr("\n");
-
+
g_free(fields);
}
diff --git a/src/libaudclient/Makefile b/src/libaudclient/Makefile
index e5c74da..d943fa5 100644
--- a/src/libaudclient/Makefile
+++ b/src/libaudclient/Makefile
@@ -15,8 +15,6 @@ pre-depend:
CPPFLAGS = ${CFLAGS} -D_AUDACIOUS_CORE -I.. -I../..
CFLAGS += ${LIB_CFLAGS} \
${GLIB_CFLAGS} \
- ${MOWGLI_CFLAGS} \
- ${DBUS_CFLAGS} \
- ${LIBMCS_CFLAGS}
+ ${DBUS_CFLAGS}
LIBS += ${GLIB_LIBS} \
${DBUS_LIBS}
diff --git a/src/libaudclient/audctrl.c b/src/libaudclient/audctrl.c
index 1e3ca07..98e5b56 100644
--- a/src/libaudclient/audctrl.c
+++ b/src/libaudclient/audctrl.c
@@ -87,10 +87,10 @@ void audacious_remote_playlist_add (DBusGProxy * proxy, GList * list)
{
const gchar * filenames[g_list_length (list) + 1];
int count;
-
+
for (count = 0; list != NULL; count ++, list = list->next)
filenames[count] = list->data;
-
+
filenames[count] = NULL;
org_atheme_audacious_add_list (proxy, filenames, & error);
@@ -107,10 +107,10 @@ void audacious_remote_playlist_open_list (DBusGProxy * proxy, GList * list)
{
const gchar * filenames[g_list_length (list) + 1];
int count;
-
+
for (count = 0; list != NULL; count ++, list = list->next)
filenames[count] = list->data;
-
+
filenames[count] = NULL;
org_atheme_audacious_open_list (proxy, filenames, & error);
@@ -129,10 +129,10 @@ void audacious_remote_playlist_open_list_to_temp (DBusGProxy * proxy, GList *
{
const gchar * filenames[g_list_length (list) + 1];
int count;
-
+
for (count = 0; list != NULL; count ++, list = list->next)
filenames[count] = list->data;
-
+
filenames[count] = NULL;
org_atheme_audacious_open_list_to_temp (proxy, filenames, & error);
@@ -457,28 +457,6 @@ void audacious_remote_main_win_toggle(DBusGProxy *proxy, gboolean show) {
}
/**
- * Toggles the playlist window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @param[in] show Whether or not to show the playlist window.
- **/
-void audacious_remote_pl_win_toggle(DBusGProxy *proxy, gboolean show) {
- org_atheme_audacious_show_playlist(proxy, show, &error);
- g_clear_error(&error);
-}
-
-/**
- * Toggles the equalizer window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @param[in] show Whether or not to show the equalizer window.
- **/
-void audacious_remote_eq_win_toggle(DBusGProxy *proxy, gboolean show) {
- org_atheme_audacious_show_equalizer(proxy, show, &error);
- g_clear_error(&error);
-}
-
-/**
* Queries Audacious about the main window's visibility.
*
* @param[in] proxy DBus proxy for audacious
@@ -492,32 +470,6 @@ gboolean audacious_remote_is_main_win(DBusGProxy *proxy) {
}
/**
- * Queries Audacious about the playlist window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @return TRUE if visible, FALSE otherwise.
- **/
-gboolean audacious_remote_is_pl_win(DBusGProxy *proxy) {
- gboolean visible = TRUE;
- org_atheme_audacious_playlist_visible(proxy, &visible, &error);
- g_clear_error(&error);
- return visible;
-}
-
-/**
- * Queries Audacious about the equalizer window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @return TRUE if visible, FALSE otherwise.
- **/
-gboolean audacious_remote_is_eq_win(DBusGProxy *proxy) {
- gboolean visible = FALSE;
- org_atheme_audacious_equalizer_visible(proxy, &visible, &error);
- g_clear_error(&error);
- return visible;
-}
-
-/**
* Tells audacious to show the preferences pane.
*
* @param[in] proxy DBus proxy for audacious
@@ -649,6 +601,12 @@ void audacious_remote_toggle_shuffle(DBusGProxy *proxy) {
g_clear_error(&error);
}
+void audacious_remote_toggle_stop_after (DBusGProxy * proxy)
+{
+ org_atheme_audacious_toggle_stop_after (proxy, & error);
+ g_clear_error (& error);
+}
+
/**
* Queries audacious about whether or not the repeat feature is active.
*
@@ -675,6 +633,14 @@ gboolean audacious_remote_is_shuffle(DBusGProxy *proxy) {
return is_shuffle;
}
+gboolean audacious_remote_is_stop_after (DBusGProxy * proxy)
+{
+ gboolean is_stop_after;
+ org_atheme_audacious_stop_after (proxy, & is_stop_after, & error);
+ g_clear_error (& error);
+ return is_stop_after;
+}
+
/**
* Queries audacious about the equalizer settings.
*
@@ -848,16 +814,6 @@ gboolean audacious_remote_is_advance(DBusGProxy *proxy) {
}
/**
- * Tells audacious to display the main window and become the selected window.
- *
- * @param[in] proxy DBus proxy for audacious
- **/
-void audacious_remote_activate(DBusGProxy *proxy) {
- org_atheme_audacious_activate(proxy, &error);
- g_clear_error(&error);
-}
-
-/**
* Tells audacious to show the Jump-to-File pane.
*
* @param[in] proxy DBus proxy for audacious
diff --git a/src/libaudclient/audctrl.h b/src/libaudclient/audctrl.h
index 6942976..518c3b7 100644
--- a/src/libaudclient/audctrl.h
+++ b/src/libaudclient/audctrl.h
@@ -55,11 +55,7 @@ gint audacious_remote_get_playlist_time(DBusGProxy *proxy, guint pos);
void audacious_remote_get_info(DBusGProxy *proxy, gint *rate, gint *freq,
gint *nch);
void audacious_remote_main_win_toggle(DBusGProxy *proxy, gboolean show);
-void audacious_remote_pl_win_toggle(DBusGProxy *proxy, gboolean show);
-void audacious_remote_eq_win_toggle(DBusGProxy *proxy, gboolean show);
gboolean audacious_remote_is_main_win(DBusGProxy *proxy);
-gboolean audacious_remote_is_pl_win(DBusGProxy *proxy);
-gboolean audacious_remote_is_eq_win(DBusGProxy *proxy);
void audacious_remote_show_prefs_box(DBusGProxy *proxy);
void audacious_remote_toggle_aot(DBusGProxy *proxy, gboolean ontop);
void audacious_remote_eject(DBusGProxy *proxy);
@@ -70,8 +66,11 @@ void audacious_remote_playlist_add_url_string(DBusGProxy *proxy,
gboolean audacious_remote_is_running(DBusGProxy *proxy);
void audacious_remote_toggle_repeat(DBusGProxy *proxy);
void audacious_remote_toggle_shuffle(DBusGProxy *proxy);
+void audacious_remote_toggle_stop_after (DBusGProxy * proxy);
gboolean audacious_remote_is_repeat(DBusGProxy *proxy);
gboolean audacious_remote_is_shuffle(DBusGProxy *proxy);
+gboolean audacious_remote_is_stop_after (DBusGProxy * proxy);
+
void audacious_remote_get_eq(DBusGProxy *proxy, gdouble *preamp,
GArray **bands);
gdouble audacious_remote_get_eq_preamp(DBusGProxy *proxy);
@@ -97,9 +96,6 @@ gint audacious_remote_get_playqueue_length(DBusGProxy *proxy);
void audacious_remote_toggle_advance(DBusGProxy *proxy);
gboolean audacious_remote_is_advance(DBusGProxy *proxy);
-/* Added in BMP 0.9.7 */
-void audacious_remote_activate(DBusGProxy *proxy);
-
/* Added in Audacious 1.1 */
void audacious_remote_show_jtf_box(DBusGProxy *proxy);
void audacious_remote_playqueue_clear(DBusGProxy *proxy);
diff --git a/src/libaudcore/Makefile b/src/libaudcore/Makefile
index 39815f9..886efe3 100644
--- a/src/libaudcore/Makefile
+++ b/src/libaudcore/Makefile
@@ -7,38 +7,29 @@ SRCS = audio.c \
eventqueue.c \
hook.c \
index.c \
- stringpool.c \
+ strpool.c \
tuple.c \
tuple_compiler.c \
tuple_formatter.c \
vfs.c \
vfs_async.c \
- vfs_buffer.c \
- vfs_buffered_file.c \
- vfs_common.c \
- md5.c
+ vfs_common.c
INCLUDES = audio.h \
audstrings.h \
- eventqueue.h \
+ core.h \
hook.h \
index.h \
- stringpool.h \
tuple.h \
- tuple_compiler.h \
- tuple_formatter.h \
vfs.h \
- vfs_async.h \
- vfs_buffer.h \
- vfs_buffered_file.h \
- md5.h
+ vfs_async.h
include ../../buildsys.mk
include ../../extra.mk
includesubdir = libaudcore
-CPPFLAGS += -DHAVE_CONFIG_H ${CFLAGS} -I.. -I../..
-CFLAGS += ${LIB_CFLAGS} ${GLIB_CFLAGS} ${MOWGLI_CFLAGS}
+CPPFLAGS += -DHAVE_CONFIG_H ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} -I.. -I../..
+CFLAGS += ${LIB_CFLAGS}
-LIBS += ${GLIB_LIBS} ${MOWGLI_LIBS}
+LIBS += ${PTHREAD_LIBS} ${GLIB_LIBS} -lm
diff --git a/src/libaudcore/audio.c b/src/libaudcore/audio.c
index a6b844e..ba01697 100644
--- a/src/libaudcore/audio.c
+++ b/src/libaudcore/audio.c
@@ -1,92 +1,91 @@
/*
* audio.c
- * Copyright 2009 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <glib.h>
+#include <stdint.h>
#include "audio.h"
#define FROM_INT_LOOP(NAME, TYPE, SWAP, OFFSET, RANGE) \
-static void NAME (TYPE * in, gfloat * out, gint samples) \
+static void NAME (const TYPE * in, float * out, int samples) \
{ \
- TYPE * end = in + samples; \
+ const TYPE * end = in + samples; \
while (in < end) \
- * out ++ = (TYPE) (SWAP (* in ++) - OFFSET) / (gdouble) RANGE; \
+ * out ++ = (TYPE) (SWAP (* in ++) - OFFSET) / (double) RANGE; \
}
#define TO_INT_LOOP(NAME, TYPE, SWAP, OFFSET, RANGE) \
-static void NAME (gfloat * in, TYPE * out, gint samples) \
+static void NAME (const float * in, TYPE * out, int samples) \
{ \
- gfloat * end = in + samples; \
+ const float * end = in + samples; \
while (in < end) \
{ \
- gdouble f = * in ++; \
- * out ++ = SWAP (OFFSET + (TYPE) (CLAMP (f, -1, 1) * (gdouble) RANGE)); \
+ double f = * in ++; \
+ * out ++ = SWAP (OFFSET + (TYPE) (CLAMP (f, -1, 1) * (double) RANGE)); \
} \
}
-static inline gint8 noop8 (gint8 i) {return i;}
-static inline gint16 noop16 (gint16 i) {return i;}
-static inline gint32 noop32 (gint32 i) {return i;}
-
-FROM_INT_LOOP (from_s8, gint8, noop8, 0x00, 0x7f)
-FROM_INT_LOOP (from_u8, gint8, noop8, 0x80, 0x7f)
-FROM_INT_LOOP (from_s16, gint16, noop16, 0x0000, 0x7fff)
-FROM_INT_LOOP (from_u16, gint16, noop16, 0x8000, 0x7fff)
-FROM_INT_LOOP (from_s24, gint32, noop32, 0x000000, 0x7fffff)
-FROM_INT_LOOP (from_u24, gint32, noop32, 0x800000, 0x7fffff)
-FROM_INT_LOOP (from_s32, gint32, noop32, 0x00000000, 0x7fffffff)
-FROM_INT_LOOP (from_u32, gint32, noop32, 0x80000000, 0x7fffffff)
-
-TO_INT_LOOP (to_s8, gint8, noop8, 0x00, 0x7f)
-TO_INT_LOOP (to_u8, gint8, noop8, 0x80, 0x7f)
-TO_INT_LOOP (to_s16, gint16, noop16, 0x0000, 0x7fff)
-TO_INT_LOOP (to_u16, gint16, noop16, 0x8000, 0x7fff)
-TO_INT_LOOP (to_s24, gint32, noop32, 0x000000, 0x7fffff)
-TO_INT_LOOP (to_u24, gint32, noop32, 0x800000, 0x7fffff)
-TO_INT_LOOP (to_s32, gint32, noop32, 0x00000000, 0x7fffffff)
-TO_INT_LOOP (to_u32, gint32, noop32, 0x80000000, 0x7fffffff)
-
-static inline gint16 swap16 (gint16 i) {return GUINT16_SWAP_LE_BE (i);}
-static inline gint32 swap32 (gint32 i) {return GUINT32_SWAP_LE_BE (i);}
-
-FROM_INT_LOOP (from_s16_swap, gint16, swap16, 0x0000, 0x7fff)
-FROM_INT_LOOP (from_u16_swap, gint16, swap16, 0x8000, 0x7fff)
-FROM_INT_LOOP (from_s24_swap, gint32, swap32, 0x000000, 0x7fffff)
-FROM_INT_LOOP (from_u24_swap, gint32, swap32, 0x800000, 0x7fffff)
-FROM_INT_LOOP (from_s32_swap, gint32, swap32, 0x00000000, 0x7fffffff)
-FROM_INT_LOOP (from_u32_swap, gint32, swap32, 0x80000000, 0x7fffffff)
-
-TO_INT_LOOP (to_s16_swap, gint16, swap16, 0x0000, 0x7fff)
-TO_INT_LOOP (to_u16_swap, gint16, swap16, 0x8000, 0x7fff)
-TO_INT_LOOP (to_s24_swap, gint32, swap32, 0x000000, 0x7fffff)
-TO_INT_LOOP (to_u24_swap, gint32, swap32, 0x800000, 0x7fffff)
-TO_INT_LOOP (to_s32_swap, gint32, swap32, 0x00000000, 0x7fffffff)
-TO_INT_LOOP (to_u32_swap, gint32, swap32, 0x80000000, 0x7fffffff)
-
-typedef void (* FromFunc) (void * in, gfloat * out, gint samples);
-typedef void (* ToFunc) (gfloat * in, void * out, gint samples);
+static inline int8_t noop8 (int8_t i) {return i;}
+static inline int16_t noop16 (int16_t i) {return i;}
+static inline int32_t noop32 (int32_t i) {return i;}
+
+FROM_INT_LOOP (from_s8, int8_t, noop8, 0x00, 0x7f)
+FROM_INT_LOOP (from_u8, int8_t, noop8, 0x80, 0x7f)
+FROM_INT_LOOP (from_s16, int16_t, noop16, 0x0000, 0x7fff)
+FROM_INT_LOOP (from_u16, int16_t, noop16, 0x8000, 0x7fff)
+FROM_INT_LOOP (from_s24, int32_t, noop32, 0x000000, 0x7fffff)
+FROM_INT_LOOP (from_u24, int32_t, noop32, 0x800000, 0x7fffff)
+FROM_INT_LOOP (from_s32, int32_t, noop32, 0x00000000, 0x7fffffff)
+FROM_INT_LOOP (from_u32, int32_t, noop32, 0x80000000, 0x7fffffff)
+
+TO_INT_LOOP (to_s8, int8_t, noop8, 0x00, 0x7f)
+TO_INT_LOOP (to_u8, int8_t, noop8, 0x80, 0x7f)
+TO_INT_LOOP (to_s16, int16_t, noop16, 0x0000, 0x7fff)
+TO_INT_LOOP (to_u16, int16_t, noop16, 0x8000, 0x7fff)
+TO_INT_LOOP (to_s24, int32_t, noop32, 0x000000, 0x7fffff)
+TO_INT_LOOP (to_u24, int32_t, noop32, 0x800000, 0x7fffff)
+TO_INT_LOOP (to_s32, int32_t, noop32, 0x00000000, 0x7fffffff)
+TO_INT_LOOP (to_u32, int32_t, noop32, 0x80000000, 0x7fffffff)
+
+static inline int16_t swap16 (int16_t i) {return GUINT16_SWAP_LE_BE (i);}
+static inline int32_t swap32 (int32_t i) {return GUINT32_SWAP_LE_BE (i);}
+
+FROM_INT_LOOP (from_s16_swap, int16_t, swap16, 0x0000, 0x7fff)
+FROM_INT_LOOP (from_u16_swap, int16_t, swap16, 0x8000, 0x7fff)
+FROM_INT_LOOP (from_s24_swap, int32_t, swap32, 0x000000, 0x7fffff)
+FROM_INT_LOOP (from_u24_swap, int32_t, swap32, 0x800000, 0x7fffff)
+FROM_INT_LOOP (from_s32_swap, int32_t, swap32, 0x00000000, 0x7fffffff)
+FROM_INT_LOOP (from_u32_swap, int32_t, swap32, 0x80000000, 0x7fffffff)
+
+TO_INT_LOOP (to_s16_swap, int16_t, swap16, 0x0000, 0x7fff)
+TO_INT_LOOP (to_u16_swap, int16_t, swap16, 0x8000, 0x7fff)
+TO_INT_LOOP (to_s24_swap, int32_t, swap32, 0x000000, 0x7fffff)
+TO_INT_LOOP (to_u24_swap, int32_t, swap32, 0x800000, 0x7fffff)
+TO_INT_LOOP (to_s32_swap, int32_t, swap32, 0x00000000, 0x7fffffff)
+TO_INT_LOOP (to_u32_swap, int32_t, swap32, 0x80000000, 0x7fffffff)
+
+typedef void (* FromFunc) (const void * in, float * out, int samples);
+typedef void (* ToFunc) (const float * in, void * out, int samples);
struct
{
- gint format;
+ int format;
FromFunc from;
ToFunc to;
}
@@ -126,9 +125,9 @@ convert_table [] =
#endif
};
-void audio_from_int (void * in, gint format, gfloat * out, gint samples)
+void audio_from_int (const void * in, int format, float * out, int samples)
{
- gint entry;
+ int entry;
for (entry = 0; entry < G_N_ELEMENTS (convert_table); entry ++)
{
@@ -140,9 +139,9 @@ void audio_from_int (void * in, gint format, gfloat * out, gint samples)
}
}
-void audio_to_int (gfloat * in, void * out, gint format, gint samples)
+void audio_to_int (const float * in, void * out, int format, int samples)
{
- gint entry;
+ int entry;
for (entry = 0; entry < G_N_ELEMENTS (convert_table); entry ++)
{
@@ -154,10 +153,10 @@ void audio_to_int (gfloat * in, void * out, gint format, gint samples)
}
}
-void audio_amplify (gfloat * data, gint channels, gint frames, gfloat * factors)
+void audio_amplify (float * data, int channels, int frames, float * factors)
{
- gfloat * end = data + channels * frames;
- gint channel;
+ float * end = data + channels * frames;
+ int channel;
while (data < end)
{
diff --git a/src/libaudcore/audio.h b/src/libaudcore/audio.h
deleted file mode 100644
index 1a61f77..0000000
--- a/src/libaudcore/audio.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * audio.h
- * Copyright 2009 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_AUDIO_H
-#define AUDACIOUS_AUDIO_H
-
-#include <glib.h>
-
-/* 24-bit integer samples are padded to 32-bit; high byte is always 0 */
-enum {
- FMT_FLOAT,
- FMT_S8, FMT_U8,
- FMT_S16_LE, FMT_S16_BE, FMT_U16_LE, FMT_U16_BE,
- FMT_S24_LE, FMT_S24_BE, FMT_U24_LE, FMT_U24_BE,
- FMT_S32_LE, FMT_S32_BE, FMT_U32_LE, FMT_U32_BE};
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define FMT_S16_NE FMT_S16_LE
-#define FMT_U16_NE FMT_U16_LE
-#define FMT_S24_NE FMT_S24_LE
-#define FMT_U24_NE FMT_U24_LE
-#define FMT_S32_NE FMT_S32_LE
-#define FMT_U32_NE FMT_U32_LE
-#else
-#define FMT_S16_NE FMT_S16_BE
-#define FMT_U16_NE FMT_U16_BE
-#define FMT_S24_NE FMT_S24_BE
-#define FMT_U24_NE FMT_U24_BE
-#define FMT_S32_NE FMT_S32_BE
-#define FMT_U32_NE FMT_U32_BE
-#endif
-
-#define FMT_SIZEOF(f) \
- (f == FMT_FLOAT ? sizeof (gfloat) : f <= FMT_U8 ? 1 : f <= FMT_U16_BE ? 2 : 4)
-
-void audio_from_int (void * in, gint format, gfloat * out, gint samples);
-void audio_to_int (gfloat * in, void * out, gint format, gint samples);
-void audio_amplify (gfloat * data, gint channels, gint frames, gfloat * factors);
-
-#endif
diff --git a/src/libaudcore/audio.h.in b/src/libaudcore/audio.h.in
new file mode 100644
index 0000000..d7b2cae
--- /dev/null
+++ b/src/libaudcore/audio.h.in
@@ -0,0 +1,53 @@
+/*
+ * audio.h
+ * Copyright 2009-2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#ifndef LIBAUDCORE_AUDIO_H
+#define LIBAUDCORE_AUDIO_H
+
+/* 24-bit integer samples are padded to 32-bit; high byte is always 0 */
+enum {
+ FMT_FLOAT,
+ FMT_S8, FMT_U8,
+ FMT_S16_LE, FMT_S16_BE, FMT_U16_LE, FMT_U16_BE,
+ FMT_S24_LE, FMT_S24_BE, FMT_U24_LE, FMT_U24_BE,
+ FMT_S32_LE, FMT_S32_BE, FMT_U32_LE, FMT_U32_BE};
+
+#if @BIGENDIAN@
+#define FMT_S16_NE FMT_S16_BE
+#define FMT_U16_NE FMT_U16_BE
+#define FMT_S24_NE FMT_S24_BE
+#define FMT_U24_NE FMT_U24_BE
+#define FMT_S32_NE FMT_S32_BE
+#define FMT_U32_NE FMT_U32_BE
+#else
+#define FMT_S16_NE FMT_S16_LE
+#define FMT_U16_NE FMT_U16_LE
+#define FMT_S24_NE FMT_S24_LE
+#define FMT_U24_NE FMT_U24_LE
+#define FMT_S32_NE FMT_S32_LE
+#define FMT_U32_NE FMT_U32_LE
+#endif
+
+#define FMT_SIZEOF(f) ((f) == FMT_FLOAT ? sizeof (float) : (f) <= FMT_U8 ? 1 : (f) <= FMT_U16_BE ? 2 : 4)
+
+void audio_from_int (const void * in, int format, float * out, int samples);
+void audio_to_int (const float * in, void * out, int format, int samples);
+void audio_amplify (float * data, int channels, int frames, float * factors);
+
+#endif /* LIBAUDCORE_AUDIO_H */
diff --git a/src/libaudcore/audstrings.c b/src/libaudcore/audstrings.c
index b3ef5ff..476311b 100644
--- a/src/libaudcore/audstrings.c
+++ b/src/libaudcore/audstrings.c
@@ -1,547 +1,270 @@
-/* Audacious
- * Copyright (C) 2005-2009 Audacious development team.
+/*
+ * audstrings.c
+ * Copyright 2009-2011 John Lindgren
+ * Copyright 2010 William Pitcock
*
- * BMP - Cross-platform multimedia player
- * Copyright (C) 2003-2004 BMP development team.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * 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; under version 3 of the License.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "audstrings.h"
-
+#include <limits.h>
+#include <math.h>
#include <stdio.h>
+#include <stdlib.h>
#include <glib.h>
-#include <audacious/i18n.h>
#include <string.h>
#include <ctype.h>
-/**
- * Performs in place replacement of Windows-style drive letter with '/' (slash).
- *
- * @param str String to be manipulated.
- * @return Pointer to the string if succesful, NULL if failed or if input was NULL.
- */
-static gchar *
-str_replace_drive_letter(gchar * str)
-{
- gchar *match, *match_end;
-
- g_return_val_if_fail(str != NULL, NULL);
-
- while ((match = strstr(str, ":\\")) != NULL) {
- match--;
- match_end = match + 3;
- *match++ = '/';
- while (*match_end)
- *match++ = *match_end++;
- *match = 0; /* the end of line */
- }
-
- return str;
-}
-
-gchar *
-str_append(gchar * str, const gchar * add_str)
-{
- return str_replace(str, g_strconcat(str, add_str, NULL));
-}
-
-gchar *
-str_replace(gchar * str, gchar * new_str)
-{
- g_free(str);
- return new_str;
-}
+#include <audacious/i18n.h>
-void
-str_replace_in(gchar ** str, gchar * new_str)
-{
- *str = str_replace(*str, new_str);
-}
+#include "audstrings.h"
+#include "config.h"
-gboolean
-str_has_prefix_nocase(const gchar * str, const gchar * prefix)
-{
- /* strncasecmp causes segfaults when str is NULL*/
- return (str != NULL && (strncasecmp(str, prefix, strlen(prefix)) == 0));
-}
+#define FROM_HEX(c) ((c) < 'A' ? (c) - '0' : (c) < 'a' ? 10 + (c) - 'A' : 10 + (c) - 'a')
+#define TO_HEX(i) ((i) < 10 ? '0' + (i) : 'A' + (i) - 10)
+#define IS_LEGAL(c) (((c) >= 'A' && (c) <= 'Z') || ((c) >= 'a' && (c) <= 'z') \
+ || ((c) >= '0' && (c) <= '9') || (strchr ("-_.~/", (c))))
-gboolean str_has_suffix_nocase (const gchar * str, const gchar * suffix)
+bool_t str_has_prefix_nocase (const char * str, const char * prefix)
{
- return (str && strlen (str) >= strlen (suffix) && ! strcasecmp (str + strlen
- (str) - strlen (suffix), suffix));
+ return ! g_ascii_strncasecmp (str, prefix, strlen (prefix));
}
-gboolean
-str_has_suffixes_nocase(const gchar * str, gchar * const *suffixes)
+bool_t str_has_suffix_nocase (const char * str, const char * suffix)
{
- gchar *const *suffix;
-
- g_return_val_if_fail(str != NULL, FALSE);
- g_return_val_if_fail(suffixes != NULL, FALSE);
+ int len1 = strlen (str);
+ int len2 = strlen (suffix);
- for (suffix = suffixes; *suffix; suffix++)
- if (str_has_suffix_nocase(str, *suffix))
- return TRUE;
+ if (len2 > len1)
+ return FALSE;
- return FALSE;
+ return ! g_ascii_strcasecmp (str + len1 - len2, suffix);
}
-static gchar * (* str_to_utf8_impl) (const gchar *) = NULL;
-static gchar * (* str_to_utf8_full_impl) (const gchar *, gssize, gsize *,
- gsize *, GError * *) = NULL;
+static char * (* str_to_utf8_impl) (const char *) = NULL;
+static char * (* str_to_utf8_full_impl) (const char *, int, int *, int *) = NULL;
-void str_set_utf8_impl (gchar * (* stu_impl) (const gchar *),
- gchar * (* stuf_impl) (const gchar *, gssize, gsize *, gsize *, GError * *))
+void str_set_utf8_impl (char * (* stu_impl) (const char *),
+ char * (* stuf_impl) (const char *, int, int *, int *))
{
str_to_utf8_impl = stu_impl;
str_to_utf8_full_impl = stuf_impl;
}
-/**
- * Convert given string from nearly any encoding to UTF-8 encoding.
- *
- * @param str Local filename/path to convert.
- * @return String in UTF-8 encoding. Must be freed with g_free().
- */
-
-gchar * str_to_utf8 (const gchar * str)
+char * str_to_utf8 (const char * str)
{
g_return_val_if_fail (str_to_utf8_impl, NULL);
return str_to_utf8_impl (str);
}
-gchar * str_to_utf8_full (const gchar * str, gssize len, gsize * bytes_read,
- gsize * bytes_written, GError * * err)
+char * str_to_utf8_full (const char * str, int len, int * bytes_read, int * bytes_written)
{
g_return_val_if_fail (str_to_utf8_full_impl, NULL);
- return str_to_utf8_full_impl (str, len, bytes_read, bytes_written, err);
-}
-
-#ifdef HAVE_EXECINFO_H
-# include <execinfo.h>
-#endif
-
-/**
- * This function can be used to assert that a given string is valid UTF-8.
- * If it is, a copy of the string is returned. However, if the string is NOT
- * valid UTF-8, a warning and a callstack backtrace is printed in order to
- * see where the problem occured.
- *
- * This is a temporary measure for removing useless str_to_utf8 etc. calls
- * and will be eventually removed. This function should be used in place of
- * #str_to_utf8() calls when it can be reasonably assumed that the input
- * should already be in unicode encoding.
- *
- * @param str String to be tested and converted to UTF-8 encoding.
- * @return String in UTF-8 encoding, or NULL if conversion failed or input was NULL.
- */
-gchar *
-str_assert_utf8(const gchar * str)
-{
- /* NULL in NULL out */
- if (str == NULL)
- return NULL;
-
- /* already UTF-8? */
- if (!g_utf8_validate(str, -1, NULL)) {
-#ifdef HAVE_EXECINFO_H
- gint i, nsymbols;
- const gint nsymmax = 50;
- void *addrbuf[nsymmax];
- gchar **symbols;
- nsymbols = backtrace(addrbuf, nsymmax);
- symbols = backtrace_symbols(addrbuf, nsymbols);
-
- fprintf(stderr, "String '%s' was not UTF-8! Backtrace (%d):\n", str, nsymbols);
-
- for (i = 0; i < nsymbols; i++)
- fprintf(stderr, " #%d: %s\n", i, symbols[i]);
-
- free(symbols);
-#else
- g_warning("String '%s' was not UTF-8!", str);
-#endif
- return str_to_utf8(str);
- } else
- return g_strdup(str);
-}
-
-
-const gchar *
-str_skip_chars(const gchar * str, const gchar * chars)
-{
- while (strchr(chars, *str) != NULL)
- str++;
- return str;
+ return str_to_utf8_full_impl (str, len, bytes_read, bytes_written);
}
-gchar *
-convert_dos_path(gchar * path)
-{
- g_return_val_if_fail(path != NULL, NULL);
-
- /* replace drive letter with '/' */
- str_replace_drive_letter(path);
-
- /* replace '\' with '/' */
- string_replace_char (path, '\\', '/');
-
- return path;
-}
-
-/**
- * Checks if given URI contains a subtune indicator/number.
- * If it does, track is set to to it, and position of subtune
- * separator in the URI string is returned.
- *
- * @param filename Filename/URI to split.
- * @param track Pointer to variable where subtune number should be
- * assigned or NULL if it is not needed.
- * @return Position of subtune separator character in filename
- * or NULL if none found. Notice that this value should NOT be modified,
- * even though it is not declared const for technical reasons.
- */
-gchar *
-filename_get_subtune(const gchar * filename, gint * track)
-{
- gchar *pos;
-
- if ((pos = strrchr(filename, '?')) != NULL)
- {
- const gchar *s = pos + 1;
- while (*s != '\0' && g_ascii_isdigit(*s)) s++;
- if (*s == '\0') {
- if (track != NULL)
- *track = atoi(pos + 1);
- return pos;
- }
- }
-
- return NULL;
-}
-
-/**
- * Given file path/URI contains ending indicating subtune number
- * "?<number>", splits the string into filename without subtune value.
- * If given track pointer is non-NULL, subtune number is assigned into it.
- *
- * @param filename Filename/URI to split.
- * @param track Pointer to variable where subtune number should be
- * assigned or NULL if it is not needed.
- * @return Newly allocated splitted filename without the subtune indicator.
- * This string must be freed with g_free(). NULL will be returned if
- * there was any failure.
- */
-gchar *
-filename_split_subtune(const gchar * filename, gint * track)
-{
- gchar *result;
- gchar *pos;
-
- g_return_val_if_fail(filename != NULL, NULL);
-
- result = g_strdup(filename);
- g_return_val_if_fail(result != NULL, NULL);
-
- if ((pos = filename_get_subtune(result, track)) != NULL)
- *pos = '\0';
-
- return result;
-}
-
-void string_replace_char (gchar * string, gchar old_str, gchar new_str)
+void string_replace_char (char * string, char old_str, char new_str)
{
while ((string = strchr (string, old_str)) != NULL)
* string = new_str;
}
-static inline gchar get_hex_digit (const gchar * * get)
-{
- gchar c = * * get;
-
- if (! c)
- return 0;
-
- (* get) ++;
-
- if (c < 'A')
- return c - '0';
- if (c < 'a')
- return c - 'A' + 10;
-
- return c - 'a' + 10;
-}
-
-/* Requires that the destination be large enough to hold the decoded string.
- * The source and destination may be the same string. USE EXTREME CAUTION. */
+/* Percent-decodes up to <len> bytes of <str> to <out>, which must be large
+ * enough to hold the decoded string (i.e., (len + 1) bytes). If <len> is
+ * negative, decodes all of <str>. */
-static void string_decode_percent_2 (const gchar * from, gchar * to)
+void str_decode_percent (const char * str, int len, char * out)
{
- gchar c;
- while ((c = * from ++))
- * to ++ = (c != '%') ? c : ((get_hex_digit (& from) << 4) | get_hex_digit
- (& from));
+ if (len < 0)
+ len = INT_MAX;
- * to = 0;
-}
+ while (len --)
+ {
+ char c = * str ++;
+ if (! c)
+ break;
-/* Decodes a percent-encoded string in-place. */
+ if (c == '%' && len >= 2 && str[0] && str[1])
+ {
+ c = (FROM_HEX (str[0]) << 4) | FROM_HEX (str[1]);
+ str += 2;
+ len -= 2;
+ }
-void string_decode_percent (gchar * s)
-{
- string_decode_percent_2 (s, s);
-}
+ * out ++ = c;
+ }
-/* We encode any character except the "unreserved" characters of RFC 3986 and
- * (optionally) the forward slash. On Windows, we also (optionally) do not
- * encode the colon. */
-static gboolean is_legal_char (gchar c, gboolean is_filename)
-{
- return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <=
- '9') || (strchr ("-_.~", c) != NULL) ||
-#ifdef _WIN32
- (is_filename && strchr ("/:", c) != NULL);
-#else
- (is_filename && c == '/');
-#endif
+ * out = 0;
}
-static gchar make_hex_digit (gint i)
-{
- if (i < 10)
- return '0' + i;
- else
- return ('A' - 10) + i;
-}
+/* Percent-encodes up to <len> bytes of <str> to <out>, which must be large
+ * enough to hold the encoded string (i.e., (3 * len + 1) bytes). If <len> is
+ * negative, decodes all of <str>. */
-/* is_filename specifies whether the forward slash should be left intact */
-/* returns string allocated with g_malloc */
-gchar * string_encode_percent (const gchar * string, gboolean is_filename)
+void str_encode_percent (const char * str, int len, char * out)
{
- gint length = 0;
- const gchar * get;
- gchar c;
- gchar * new, * set;
+ if (len < 0)
+ len = INT_MAX;
- for (get = string; (c = * get); get ++)
+ while (len --)
{
- if (is_legal_char (c, is_filename))
- length ++;
- else
- length += 3;
- }
-
- new = g_malloc (length + 1);
- set = new;
+ char c = * str ++;
+ if (! c)
+ break;
- for (get = string; (c = * get); get ++)
- {
- if (is_legal_char (c, is_filename))
- * set ++ = c;
+ if (IS_LEGAL (c))
+ * out ++ = c;
else
{
- * set ++ = '%';
- * set ++ = make_hex_digit (((guchar) c) >> 4);
- * set ++ = make_hex_digit (c & 0xF);
+ * out ++ = '%';
+ * out ++ = TO_HEX ((unsigned char) c >> 4);
+ * out ++ = TO_HEX (c & 0xF);
}
}
- * set = 0;
- return new;
-}
-
-/* Determines whether a URI is valid UTF-8. If not and <warn> is nonzero,
- * prints a warning to stderr. */
-
-gboolean uri_is_utf8 (const gchar * uri, gboolean warn)
-{
- gchar buf[strlen (uri) + 1];
- string_decode_percent_2 (uri, buf);
-
- if (g_utf8_validate (buf, -1, NULL))
- return TRUE;
-
- if (warn)
- fprintf (stderr, "URI is not UTF-8: %s.\n", buf);
-
- return FALSE;
-}
-
-/* Converts a URI to UTF-8 encoding. The returned URI must be freed with g_free.
- *
- * Note: The function intentionally converts only URI's that are encoded in the
- * system locale and refer to local files.
- *
- * Rationale:
- *
- * 1. Local files. The URI was probably created by percent-encoding a raw
- * filename.
- * a. If that filename was in the system locale, then we can convert the URI
- * to a UTF-8 one, allowing us to display the name correctly and to access
- * the file by converting back to the system locale.
- * b. If that filename was in a different locale (perhaps copied from another
- * machine), then we do not want to convert it to UTF-8 (even assuming we
- * can do so correctly), because we will not know what encoding to convert
- * back to when we want to access the file.
- * 2. Remote files. The URI was probably created by percent-encoding a raw
- * filename in whatever locale the remote system is using. We do not want
- * to convert it to UTF-8 because we do not know whether the remote system
- * can handle UTF-8 requests. */
-
-gchar * uri_to_utf8 (const gchar * uri)
-{
- if (strncmp (uri, "file://", 7))
- return g_strdup (uri);
-
- /* recover the raw filename */
- gchar buf[strlen (uri + 7) + 1];
- string_decode_percent_2 (uri + 7, buf);
-
- /* convert it to a URI again, in UTF-8 if possible */
- return filename_to_uri (buf);
-}
-
-/* Check that a URI is valid UTF-8. If not, prints a warning to stderr if
- * <warn> is nonzero, frees the old URI with g_free, and sets <uri> to the
- * converted URI, which must be freed with g_free when no longer needed. */
-
-void uri_check_utf8 (gchar * * uri, gboolean warn)
-{
- if (uri_is_utf8 (* uri, warn))
- return;
-
- gchar * copy = uri_to_utf8 (* uri);
- g_free (* uri);
- * uri = copy;
+ * out = 0;
}
/* Like g_filename_to_uri, but converts the filename from the system locale to
* UTF-8 before percent-encoding. On Windows, replaces '\' with '/' and adds a
* leading '/'. */
-gchar * filename_to_uri (const gchar * name)
+char * filename_to_uri (const char * name)
{
- gchar * utf8 = g_locale_to_utf8 (name, -1, NULL, NULL, NULL);
+ char * utf8 = g_locale_to_utf8 (name, -1, NULL, NULL, NULL);
+ if (! utf8)
+ {
+ fprintf (stderr, "Cannot convert filename from system locale: %s\n", name);
+ return NULL;
+ }
+
#ifdef _WIN32
string_replace_char (utf8, '\\', '/');
#endif
- gchar * enc = string_encode_percent (utf8 ? utf8 : name, TRUE);
+ char enc[3 * strlen (utf8) + 1];
+ str_encode_percent (utf8, -1, enc);
+
g_free (utf8);
+
#ifdef _WIN32
- gchar * uri = g_strdup_printf ("file:///%s", enc);
+ return g_strdup_printf ("file:///%s", enc);
#else
- gchar * uri = g_strdup_printf ("file://%s", enc);
+ return g_strdup_printf ("file://%s", enc);
#endif
- g_free (enc);
- return uri;
}
/* Like g_filename_from_uri, but converts the filename from UTF-8 to the system
* locale after percent-decoding. On Windows, strips the leading '/' and
* replaces '/' with '\'. */
-gchar * uri_to_filename (const gchar * uri)
+char * uri_to_filename (const char * uri)
{
#ifdef _WIN32
g_return_val_if_fail (! strncmp (uri, "file:///", 8), NULL);
- gchar buf[strlen (uri + 8) + 1];
- string_decode_percent_2 (uri + 8, buf);
+ char buf[strlen (uri + 8) + 1];
+ str_decode_percent (uri + 8, -1, buf);
#else
g_return_val_if_fail (! strncmp (uri, "file://", 7), NULL);
- gchar buf[strlen (uri + 7) + 1];
- string_decode_percent_2 (uri + 7, buf);
+ char buf[strlen (uri + 7) + 1];
+ str_decode_percent (uri + 7, -1, buf);
#endif
#ifdef _WIN32
string_replace_char (buf, '/', '\\');
#endif
- gchar * name = g_locale_from_utf8 (buf, -1, NULL, NULL, NULL);
- return name ? name : g_strdup (buf);
+
+ char * name = g_locale_from_utf8 (buf, -1, NULL, NULL, NULL);
+ if (! name)
+ fprintf (stderr, "Cannot convert filename to system locale: %s\n", buf);
+
+ return name;
}
-/* Formats a URI for human-readable display. Percent-decodes and converts to
- * UTF-8 (more aggressively than uri_to_utf8). For file:// URI's, converts to
- * filename format (but in UTF-8). */
+/* Formats a URI for human-readable display. Percent-decodes and, for file://
+ * URI's, converts to filename format, but in UTF-8. */
-gchar * uri_to_display (const gchar * uri)
+char * uri_to_display (const char * uri)
{
- gchar buf[strlen (uri) + 1];
+ if (! strncmp (uri, "cdda://?", 8))
+ return g_strdup_printf (_("Audio CD, track %s"), uri + 8);
+
+ char buf[strlen (uri) + 1];
#ifdef _WIN32
if (! strncmp (uri, "file:///", 8))
{
- string_decode_percent_2 (uri + 8, buf);
+ str_decode_percent (uri + 8, -1, buf);
string_replace_char (buf, '/', '\\');
}
#else
if (! strncmp (uri, "file://", 7))
- string_decode_percent_2 (uri + 7, buf);
+ str_decode_percent (uri + 7, -1, buf);
#endif
else
- string_decode_percent_2 (uri, buf);
+ str_decode_percent (uri, -1, buf);
- return str_to_utf8 (buf);
+ return g_strdup (buf);
}
-gchar * uri_get_extension (const gchar * uri)
+void uri_parse (const char * uri, const char * * base_p, const char * * ext_p,
+ const char * * sub_p, int * isub_p)
{
- const gchar * slash = strrchr (uri, '/');
- if (! slash)
- return NULL;
-
- gchar * lower = g_ascii_strdown (slash + 1, -1);
-
- gchar * qmark = strchr (lower, '?');
- if (qmark)
- * qmark = 0;
-
- gchar * dot = strrchr (lower, '.');
- gchar * ext = dot ? g_strdup (dot + 1) : NULL;
-
- g_free (lower);
- return ext;
-}
+ const char * end = uri + strlen (uri);
+ const char * base, * ext, * sub, * c;
+ int isub = 0;
+ char junk;
-void string_cut_extension(gchar *string)
-{
- gchar *period = strrchr(string, '.');
+ if ((c = strrchr (uri, '/')))
+ base = c + 1;
+ else
+ base = end;
- if (period != NULL)
- *period = 0;
+ if ((c = strrchr (base, '?')) && sscanf (c + 1, "%d%c", & isub, & junk) == 1)
+ sub = c;
+ else
+ sub = end;
+
+ char buf[sub - base + 1];
+ memcpy (buf, base, sub - base);
+ buf[sub - base] = 0;
+
+ if ((c = strrchr (buf, '.')))
+ ext = base + (c - buf);
+ else
+ ext = sub;
+
+ if (base_p)
+ * base_p = base;
+ if (ext_p)
+ * ext_p = ext;
+ if (sub_p)
+ * sub_p = sub;
+ if (isub_p)
+ * isub_p = isub;
}
/* Like strcasecmp, but orders numbers correctly (2 before 10). */
/* Non-ASCII characters are treated exactly as is. */
/* Handles NULL gracefully. */
-gint string_compare (const gchar * ap, const gchar * bp)
+int string_compare (const char * ap, const char * bp)
{
if (ap == NULL)
return (bp == NULL) ? 0 : -1;
if (bp == NULL)
return 1;
- guchar a = * ap ++, b = * bp ++;
+ unsigned char a = * ap ++, b = * bp ++;
for (; a || b; a = * ap ++, b = * bp ++)
{
if (a > '9' || b > '9' || a < '0' || b < '0')
@@ -558,11 +281,11 @@ gint string_compare (const gchar * ap, const gchar * bp)
}
else
{
- gint x = a - '0';
+ int x = a - '0';
for (; (a = * ap) <= '9' && a >= '0'; ap ++)
x = 10 * x + (a - '0');
- gint y = b - '0';
+ int y = b - '0';
for (; (b = * bp) >= '0' && b <= '9'; bp ++)
y = 10 * y + (b - '0');
@@ -578,20 +301,26 @@ gint string_compare (const gchar * ap, const gchar * bp)
/* Decodes percent-encoded strings, then compares then with string_compare. */
-gint string_compare_encoded (const gchar * ap, const gchar * bp)
+int string_compare_encoded (const char * ap, const char * bp)
{
if (ap == NULL)
return (bp == NULL) ? 0 : -1;
if (bp == NULL)
return 1;
- guchar a = * ap ++, b = * bp ++;
+ unsigned char a = * ap ++, b = * bp ++;
for (; a || b; a = * ap ++, b = * bp ++)
{
- if (a == '%')
- a = (get_hex_digit (& ap) << 4) | get_hex_digit (& ap);
- if (b == '%')
- b = (get_hex_digit (& bp) << 4) | get_hex_digit (& bp);
+ if (a == '%' && ap[0] && ap[1])
+ {
+ a = (FROM_HEX (ap[0]) << 4) | FROM_HEX (ap[1]);
+ ap += 2;
+ }
+ if (b == '%' && bp[0] && bp[1])
+ {
+ b = (FROM_HEX (bp[0]) << 4) | FROM_HEX (bp[1]);
+ bp += 2;
+ }
if (a > '9' || b > '9' || a < '0' || b < '0')
{
@@ -607,11 +336,11 @@ gint string_compare_encoded (const gchar * ap, const gchar * bp)
}
else
{
- gint x = a - '0';
+ int x = a - '0';
for (; (a = * ap) <= '9' && a >= '0'; ap ++)
x = 10 * x + (a - '0');
- gint y = b - '0';
+ int y = b - '0';
for (; (b = * bp) >= '0' && b <= '9'; bp ++)
y = 10 * y + (b - '0');
@@ -625,40 +354,15 @@ gint string_compare_encoded (const gchar * ap, const gchar * bp)
return 0;
}
-const void * memfind (const void * mem, gint size, const void * token, gint
- length)
-{
- if (! length)
- return mem;
-
- size -= length - 1;
-
- while (size > 0)
- {
- const void * maybe = memchr (mem, * (guchar *) token, size);
-
- if (maybe == NULL)
- return NULL;
-
- if (! memcmp (maybe, token, length))
- return maybe;
-
- size -= (guchar *) maybe + 1 - (guchar *) mem;
- mem = (guchar *) maybe + 1;
- }
-
- return NULL;
-}
-
-gchar *
-str_replace_fragment(gchar *s, gint size, const gchar *old, const gchar *new)
+char *
+str_replace_fragment(char *s, int size, const char *old, const char *new)
{
- gchar *ptr = s;
- gint left = strlen(s);
- gint avail = size - (left + 1);
- gint oldlen = strlen(old);
- gint newlen = strlen(new);
- gint diff = newlen - oldlen;
+ char *ptr = s;
+ int left = strlen(s);
+ int avail = size - (left + 1);
+ int oldlen = strlen(old);
+ int newlen = strlen(new);
+ int diff = newlen - oldlen;
while (left >= oldlen)
{
@@ -683,12 +387,173 @@ str_replace_fragment(gchar *s, gint size, const gchar *old, const gchar *new)
return s;
}
-void
-string_canonize_case(gchar *str)
+/*
+ * Routines to convert numbers between string and binary representations.
+ *
+ * Goals:
+ *
+ * - Accuracy, meaning that we can convert back and forth between string and
+ * binary without the number changing slightly each time.
+ * - Consistency, meaning that we get the same results no matter what
+ * architecture or locale we have to deal with.
+ * - Readability, meaning that the number one is rendered "1", not "1.000".
+ *
+ * Values are limited between -1,000,000,000 and 1,000,000,000 (inclusive) and
+ * have an accuracy of 6 decimal places.
+ */
+
+bool_t string_to_int (const char * string, int * addr)
{
- while (*str)
+ bool_t neg = (string[0] == '-');
+ if (neg)
+ string ++;
+
+ int val = 0;
+ char c;
+
+ while ((c = * string ++))
{
- *str = g_ascii_toupper(*str);
- str++;
+ if (c < '0' || c > '9' || val > 100000000)
+ goto ERR;
+
+ val = val * 10 + (c - '0');
}
-}
+
+ if (val > 1000000000)
+ goto ERR;
+
+ * addr = neg ? -val : val;
+ return TRUE;
+
+ERR:
+ return FALSE;
+}
+
+bool_t string_to_double (const char * string, double * addr)
+{
+ bool_t neg = (string[0] == '-');
+ if (neg)
+ string ++;
+
+ const char * p = strchr (string, '.');
+ int i, f;
+
+ if (p)
+ {
+ char buf[11];
+ int len;
+
+ len = p - string;
+ if (len > 10)
+ goto ERR;
+
+ memcpy (buf, string, len);
+ buf[len] = 0;
+
+ if (! string_to_int (buf, & i))
+ goto ERR;
+
+ len = strlen (p + 1);
+ if (len > 6)
+ goto ERR;
+
+ memcpy (buf, p + 1, len);
+ memset (buf + len, '0', 6 - len);
+ buf[6] = 0;
+
+ if (! string_to_int (buf, & f))
+ goto ERR;
+ }
+ else
+ {
+ if (! string_to_int (string, & i))
+ goto ERR;
+
+ f = 0;
+ }
+
+ double val = i + (double) f / 1000000;
+ if (val > 1000000000)
+ goto ERR;
+
+ * addr = neg ? -val : val;
+ return TRUE;
+
+ERR:
+ return FALSE;
+}
+
+char * int_to_string (int val)
+{
+ g_return_val_if_fail (val >= -1000000000 && val <= 1000000000, NULL);
+ return g_strdup_printf ("%d", val);
+}
+
+char * double_to_string (double val)
+{
+ g_return_val_if_fail (val >= -1000000000 && val <= 1000000000, NULL);
+
+ bool_t neg = (val < 0);
+ if (neg)
+ val = -val;
+
+ int i = floor (val);
+ int f = round ((val - i) * 1000000);
+
+ if (f == 1000000)
+ {
+ i ++;
+ f = 0;
+ }
+
+ char * s = neg ? g_strdup_printf ("-%d.%06d", i, f) : g_strdup_printf ("%d.%06d", i, f);
+
+ char * c = s + strlen (s);
+ while (* (c - 1) == '0')
+ c --;
+ if (* (c - 1) == '.')
+ c --;
+ * c = 0;
+
+ return s;
+}
+
+bool_t string_to_double_array (const char * string, double * array, int count)
+{
+ char * * split = g_strsplit (string, ",", -1);
+ if (g_strv_length (split) != count)
+ goto ERR;
+
+ for (int i = 0; i < count; i ++)
+ {
+ if (! string_to_double (split[i], & array[i]))
+ goto ERR;
+ }
+
+ g_strfreev (split);
+ return TRUE;
+
+ERR:
+ g_strfreev (split);
+ return FALSE;
+}
+
+char * double_array_to_string (const double * array, int count)
+{
+ char * * split = g_malloc0 (sizeof (char *) * (count + 1));
+
+ for (int i = 0; i < count; i ++)
+ {
+ split[i] = double_to_string (array[i]);
+ if (! split[i])
+ goto ERR;
+ }
+
+ char * string = g_strjoinv (",", split);
+ g_strfreev (split);
+ return string;
+
+ERR:
+ g_strfreev (split);
+ return NULL;
+}
diff --git a/src/libaudcore/audstrings.h b/src/libaudcore/audstrings.h
index bc64e97..363daf1 100644
--- a/src/libaudcore/audstrings.h
+++ b/src/libaudcore/audstrings.h
@@ -1,83 +1,59 @@
-/* Audacious
- * Copyright (C) 2005-2007 Audacious development team.
+/*
+ * audstrings.h
+ * Copyright 2009-2011 John Lindgren
+ * Copyright 2010 William Pitcock
*
- * BMP - Cross-platform multimedia player
- * Copyright (C) 2003-2004 BMP development team.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * 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; under version 3 of the License.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#ifndef AUDACIOUS_STRINGS_H
-#define AUDACIOUS_STRINGS_H
-
-#include <stdlib.h>
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-gchar *str_append(gchar * str, const gchar * add_str);
-gchar *str_replace(gchar * str, gchar * new_str);
-void str_replace_in(gchar ** str, gchar * new_str);
-
-gboolean str_has_prefix_nocase(const gchar * str, const gchar * prefix);
-gboolean str_has_suffix_nocase(const gchar * str, const gchar * suffix);
-gboolean str_has_suffixes_nocase(const gchar * str, gchar * const *suffixes);
-
-gchar *str_assert_utf8(const gchar *str);
-
-void str_set_utf8_impl (gchar * (* stu_impl) (const gchar *),
- gchar * (* stuf_impl) (const gchar *, gssize, gsize *, gsize *, GError * *));
-gchar * str_to_utf8 (const gchar * str);
-gchar * str_to_utf8_full (const gchar * str, gssize len, gsize * bytes_read,
- gsize * bytes_written, GError * * err);
+#ifndef LIBAUDCORE_STRINGS_H
+#define LIBAUDCORE_STRINGS_H
-const gchar *str_skip_chars(const gchar * str, const gchar * chars);
+#include <libaudcore/core.h>
-gchar *convert_dos_path(gchar * text);
+bool_t str_has_prefix_nocase(const char * str, const char * prefix);
+bool_t str_has_suffix_nocase(const char * str, const char * suffix);
-gchar *filename_get_subtune(const gchar * filename, gint * track);
-gchar *filename_split_subtune(const gchar * filename, gint * track);
+void str_set_utf8_impl (char * (* stu_impl) (const char *),
+ char * (* stuf_impl) (const char *, int, int *, int *));
+char * str_to_utf8 (const char * str);
+char * str_to_utf8_full (const char * str, int len, int * bytes_read, int * bytes_written);
-void string_replace_char (gchar * string, gchar old_str, gchar new_str);
-void string_decode_percent (gchar * string);
-gchar * string_encode_percent (const gchar * string, gboolean is_filename);
+void string_replace_char (char * string, char old_str, char new_str);
-gboolean uri_is_utf8 (const gchar * uri, gboolean warn);
-gchar * uri_to_utf8 (const gchar * uri);
-void uri_check_utf8 (gchar * * uri, gboolean warn);
-gchar * filename_to_uri (const gchar * filename);
-gchar * uri_to_filename (const gchar * uri);
-gchar * uri_to_display (const gchar * uri);
+void str_decode_percent (const char * str, int len, char * out);
+void str_encode_percent (const char * str, int len, char * out);
-gchar * uri_get_extension (const gchar * uri);
+char * filename_to_uri (const char * filename);
+char * uri_to_filename (const char * uri);
+char * uri_to_display (const char * uri);
-void string_cut_extension(gchar *string);
-gint string_compare (const gchar * a, const gchar * b);
-gint string_compare_encoded (const gchar * a, const gchar * b);
+void uri_parse (const char * uri, const char * * base_p, const char * * ext_p,
+ const char * * sub_p, int * isub_p);
-const void * memfind (const void * mem, gint size, const void * token, gint
- length);
+int string_compare (const char * a, const char * b);
+int string_compare_encoded (const char * a, const char * b);
-gchar *str_replace_fragment(gchar *s, gint size, const gchar *old_str, const gchar *new_str);
+char *str_replace_fragment(char *s, int size, const char *old_str, const char *new_str);
-void string_canonize_case(gchar *string);
+bool_t string_to_int (const char * string, int * addr);
+bool_t string_to_double (const char * string, double * addr);
+char * int_to_string (int val);
+char * double_to_string (double val);
-G_END_DECLS
+bool_t string_to_double_array (const char * string, double * array, int count);
+char * double_array_to_string (const double * array, int count);
-#endif /* AUDACIOUS_STRINGS_H */
+#endif /* LIBAUDCORE_STRINGS_H */
diff --git a/src/libaudcore/core.h b/src/libaudcore/core.h
new file mode 100644
index 0000000..d8bb57a
--- /dev/null
+++ b/src/libaudcore/core.h
@@ -0,0 +1,87 @@
+/*
+ * core.h
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#ifndef LIBAUDCORE_CORE_H
+#define LIBAUDCORE_CORE_H
+
+/* #define STRPOOL_DEBUG */
+
+/* "bool_t" means "int" for compatibility with GLib */
+#undef bool_t
+#define bool_t int
+
+#undef FALSE
+#define FALSE ((bool_t) 0)
+#undef TRUE
+#define TRUE ((bool_t) 1)
+
+/* Simple sanity check to catch (1) strings that are still in use after their
+ * reference count has dropped to zero and (2) strings that should have been
+ * pooled but never were. If the check fails, the program is aborted. */
+#define STR_CHECK(str) do {if ((str) && (str)[-1] != '@') strpool_abort (str);} while (0)
+
+/* If the pool contains a copy of <str>, increments its reference count.
+ * Otherwise, adds a copy of <str> to the pool with a reference count of one.
+ * In either case, returns the copy. Because this copy may be shared by other
+ * parts of the code, it should not be modified. If <str> is NULL, simply
+ * returns NULL with no side effects. */
+#ifdef STRPOOL_DEBUG
+char * str_get_debug (const char * str, const char * file, int line);
+#define str_get(str) str_get_debug (str, __FILE__, __LINE__)
+#else
+char * str_get (const char * str);
+#endif
+
+/* Increments the reference count of <str>, where <str> is the address of a
+ * string already in the pool. Faster than calling str_get() a second time.
+ * Returns <str> for convenience. If <str> is NULL, simply returns NULL with no
+ * side effects. */
+#ifdef STRPOOL_DEBUG
+char * str_ref_debug (char * str, const char * file, int line);
+#define str_ref(str) str_ref_debug (str, __FILE__, __LINE__)
+#else
+char * str_ref (char * str);
+#endif
+
+/* Decrements the reference count of <str>, where <str> is the address of a
+ * string in the pool. If the reference count drops to zero, releases the
+ * memory used by <str>. If <str> is NULL, simply returns NULL with no side
+ * effects. */
+#ifdef STRPOOL_DEBUG
+void str_unref_debug (char * str, const char * file, int line);
+#define str_unref(str) str_unref_debug (str, __FILE__, __LINE__)
+#else
+void str_unref (char * str);
+#endif
+
+/* Calls str_get() on the first <len> characters of <str>. If <str> has less
+ * than or equal to <len> characters, equivalent to str_get(). */
+char * str_nget (const char * str, int len);
+
+/* Calls sprintf() internally, then pools the produced string with str_get(). */
+char * str_printf (const char * format, ...);
+
+/* Used by STR_CHECK; should not be called directly. */
+void strpool_abort (char * str);
+
+/* Releases all memory used by the string pool. If strings remain in the pool,
+ * a warning may be printed to stderr in order to reveal memory leaks. */
+void strpool_shutdown (void);
+
+#endif /* LIBAUDCORE_CORE_H */
diff --git a/src/libaudcore/eventqueue.c b/src/libaudcore/eventqueue.c
index e10cd16..aa12cf2 100644
--- a/src/libaudcore/eventqueue.c
+++ b/src/libaudcore/eventqueue.c
@@ -1,87 +1,97 @@
/*
- * Audacious
- * Copyright (c) 2006-2007 Audacious development team.
+ * eventqueue.c
+ * Copyright 2011 John Lindgren
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#include <stdio.h>
+#include <glib.h>
+#include <pthread.h>
+#include <string.h>
-#include "eventqueue.h"
+#include "core.h"
+#include "hook.h"
-static gboolean eventqueue_handle(gpointer udata)
+typedef struct {
+ char * name;
+ void * data;
+ void (* destroy) (void *);
+ int source;
+} Event;
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GList * events;
+
+static bool_t event_execute (Event * event)
{
- HookCallQueue *hq = (HookCallQueue *) udata;
+ pthread_mutex_lock (& mutex);
+
+ g_source_remove (event->source);
+ events = g_list_remove (events, event);
- hook_call(hq->name, hq->user_data);
+ pthread_mutex_unlock (& mutex);
- g_free(hq->name);
- if (hq->free_data && hq->user_data)
- g_free(hq->user_data);
+ hook_call (event->name, event->data);
- g_slice_free(HookCallQueue, hq);
+ g_free (event->name);
+ if (event->destroy)
+ event->destroy (event->data);
+ g_slice_free (Event, event);
return FALSE;
}
-void event_queue(const gchar *name, gpointer user_data)
+void event_queue_full (int time, const char * name, void * data, void (* destroy) (void *))
{
- HookCallQueue *hq;
+ Event * event = g_slice_new (Event);
+ event->name = g_strdup (name);
+ event->data = data;
+ event->destroy = destroy;
- hq = g_slice_new0(HookCallQueue);
- hq->name = g_strdup(name);
- hq->user_data = user_data;
- hq->free_data = FALSE;
+ pthread_mutex_lock (& mutex);
- g_idle_add_full(G_PRIORITY_HIGH_IDLE, eventqueue_handle, hq, NULL);
+ event->source = g_timeout_add (time, (GSourceFunc) event_execute, event);
+ events = g_list_prepend (events, event);
+
+ pthread_mutex_unlock (& mutex);
}
-void event_queue_timed(gint time, const gchar *name, gpointer user_data)
+void event_queue_cancel (const char * name, void * data)
{
- HookCallQueue *hq;
+ pthread_mutex_lock (& mutex);
- /* event_queue() with a pointer may be unsafe: the data might
- * get freed or moved before the event is processed. -jlindgren
- */
- if (user_data)
+ GList * node = events;
+ while (node)
{
- g_warning("Unsafe event_queue of \"%s\" with "
- "pointer. (Use event_queue_with_data_free instead.)\n", name);
- return;
- }
+ Event * event = node->data;
+ GList * next = node->next;
- hq = g_slice_new0(HookCallQueue);
- hq->name = g_strdup(name);
- hq->user_data = user_data;
- hq->free_data = FALSE;
+ if (! strcmp (event->name, name) && (! data || event->data == data))
+ {
+ g_source_remove (event->source);
+ events = g_list_delete_link (events, node);
- g_timeout_add(time, eventqueue_handle, hq);
-}
-
-void event_queue_with_data_free(const gchar *name, gpointer user_data)
-{
- HookCallQueue *hq;
+ g_free (event->name);
+ if (event->destroy)
+ event->destroy (event->data);
- g_return_if_fail(name != NULL);
- g_return_if_fail(user_data != NULL);
+ g_slice_free (Event, event);
+ }
- hq = g_slice_new0(HookCallQueue);
- hq->name = g_strdup(name);
- hq->user_data = user_data;
- hq->free_data = TRUE;
+ node = next;
+ }
- g_idle_add_full(G_PRIORITY_HIGH_IDLE, eventqueue_handle, hq, NULL);
+ pthread_mutex_unlock (& mutex);
}
diff --git a/src/libaudcore/eventqueue.h b/src/libaudcore/eventqueue.h
deleted file mode 100644
index 9b26db3..0000000
--- a/src/libaudcore/eventqueue.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Audacious
- * Copyright (c) 2006-2007 Audacious development team.
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-
-#include "hook.h"
-
-#ifndef AUDACIOUS_EVENTQUEUE_H
-#define AUDACIOUS_EVENTQUEUE_H
-
-typedef struct {
- gchar *name;
- gpointer *user_data;
- gboolean free_data;
-} HookCallQueue;
-
-void event_queue(const gchar *name, gpointer user_data);
-void event_queue_timed(gint time, const gchar *name, gpointer user_data);
-void event_queue_with_data_free(const gchar *name, gpointer user_data);
-
-#endif /* AUDACIOUS_EVENTQUEUE_H */
diff --git a/src/libaudcore/hook.c b/src/libaudcore/hook.c
index d9f9bef..e3011a8 100644
--- a/src/libaudcore/hook.c
+++ b/src/libaudcore/hook.c
@@ -1,182 +1,109 @@
-/* Audacious
- * Copyright (c) 2006-2007 William Pitcock
+/*
+ * hook.c
+ * Copyright 2011 John Lindgren
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#include <stdio.h>
+#include <glib.h>
+#include <pthread.h>
#include <string.h>
-#include <glib.h>
+#include "core.h"
#include "hook.h"
-static GThread * hook_thread;
-static GSList *hook_list;
+typedef struct {
+ HookFunction func;
+ void * user;
+} HookItem;
-void hook_init (void)
-{
- hook_thread = g_thread_self ();
-}
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GHashTable * hooks;
-static Hook *
-hook_find(const gchar *name)
+/* str_unref() may be a macro */
+static void str_unref_cb (void * str)
{
- GSList *list;
-
- for (list = hook_list; list != NULL; list = g_slist_next(list))
- {
- Hook *hook = (Hook *) list->data;
-
- if (!g_ascii_strcasecmp(hook->name, name))
- return hook;
- }
-
- return NULL;
+ str_unref (str);
}
-void
-hook_register(const gchar *name)
+void hook_associate (const char * name, HookFunction func, void * user)
{
- Hook *hook;
+ pthread_mutex_lock (& mutex);
- g_return_if_fail(name != NULL);
+ if (! hooks)
+ hooks = g_hash_table_new_full (g_str_hash, g_str_equal, str_unref_cb, NULL);
- if (hook_find(name) != NULL)
- return;
+ HookItem * item = g_slice_new (HookItem);
+ item->func = func;
+ item->user = user;
- hook = g_new0(Hook, 1);
- hook->name = g_strdup(name);
- hook->items = NULL;
+ GList * items = g_hash_table_lookup (hooks, name);
+ items = g_list_prepend (items, item);
+ g_hash_table_insert (hooks, str_get (name), items);
- hook_list = g_slist_append(hook_list, hook);
+ pthread_mutex_unlock (& mutex);
}
-gint
-hook_associate(const gchar *name, HookFunction func, gpointer user_data)
+void hook_dissociate_full (const char * name, HookFunction func, void * user)
{
- Hook *hook;
- HookItem *hookitem;
+ pthread_mutex_lock (& mutex);
- g_return_val_if_fail(name != NULL, -1);
- g_return_val_if_fail(func != NULL, -1);
+ if (! hooks)
+ goto DONE;
- hook = hook_find(name);
+ GList * items = g_hash_table_lookup (hooks, name);
- if (hook == NULL)
+ GList * node = items;
+ while (node)
{
- hook_register(name);
- hook = hook_find(name);
- }
-
- /* this *cant* happen */
- g_return_val_if_fail(hook != NULL, -1);
-
- hookitem = g_new0(HookItem, 1);
- hookitem->func = func;
- hookitem->user_data = user_data;
-
- hook->items = g_slist_append(hook->items, hookitem);
- return 0;
-}
-
-gint
-hook_dissociate(const gchar *name, HookFunction func)
-{
- Hook *hook;
- GSList *iter;
-
- g_return_val_if_fail(name != NULL, -1);
- g_return_val_if_fail(func != NULL, -1);
-
- hook = hook_find(name);
+ HookItem * item = node->data;
+ GList * next = node->next;
- if (hook == NULL)
- return -1;
-
- iter = hook->items;
- while (iter != NULL)
- {
- HookItem *hookitem = (HookItem*)iter->data;
- if (hookitem->func == func)
+ if (item->func == func && (! user || item->user == user))
{
- hook->items = g_slist_delete_link(hook->items, iter);
- g_free( hookitem );
- return 0;
+ items = g_list_delete_link (items, node);
+ g_slice_free (HookItem, item);
}
- iter = g_slist_next(iter);
- }
- return -1;
-}
-gint
-hook_dissociate_full(const gchar *name, HookFunction func, gpointer user_data)
-{
- Hook *hook;
- GSList *iter;
-
- g_return_val_if_fail(name != NULL, -1);
- g_return_val_if_fail(func != NULL, -1);
-
- hook = hook_find(name);
+ node = next;
+ }
- if (hook == NULL)
- return -1;
+ if (items)
+ g_hash_table_insert (hooks, str_get (name), items);
+ else
+ g_hash_table_remove (hooks, name);
- iter = hook->items;
- while (iter != NULL)
- {
- HookItem *hookitem = (HookItem*)iter->data;
- if (hookitem->func == func && hookitem->user_data == user_data)
- {
- hook->items = g_slist_delete_link(hook->items, iter);
- g_free( hookitem );
- return 0;
- }
- iter = g_slist_next(iter);
- }
- return -1;
+DONE:
+ pthread_mutex_unlock (& mutex);
}
-void
-hook_call(const gchar *name, gpointer hook_data)
+void hook_call (const char * name, void * data)
{
- Hook *hook;
- GSList *iter;
+ pthread_mutex_lock (& mutex);
- // Some plugins (skins, cdaudio-ng, maybe others) set up hooks that are not
- // thread safe. We can disagree about whether that's the way it should be;
- // but that's the way it is, so live with it. -jlindgren
- if (g_thread_self () != hook_thread)
- {
- fprintf (stderr, "Warning: Unsafe hook_call of \"%s\" from secondary "
- "thread. (Use event_queue instead.)\n", name);
- return;
- }
+ if (! hooks)
+ goto DONE;
- hook = hook_find(name);
+ GList * node = g_hash_table_lookup (hooks, name);
- if (hook == NULL)
- return;
-
- for (iter = hook->items; iter != NULL; iter = g_slist_next(iter))
+ for (; node; node = node->next)
{
- HookItem *hookitem = (HookItem*)iter->data;
-
- g_return_if_fail(hookitem->func != NULL);
-
- hookitem->func(hook_data, hookitem->user_data);
+ HookItem * item = node->data;
+ item->func (data, item->user);
}
+
+DONE:
+ pthread_mutex_unlock (& mutex);
}
diff --git a/src/libaudcore/hook.h b/src/libaudcore/hook.h
index a2ae3e9..79fe8ac 100644
--- a/src/libaudcore/hook.h
+++ b/src/libaudcore/hook.h
@@ -1,44 +1,50 @@
-/* Audacious
- * Copyright (c) 2006-2007 William Pitcock
+/*
+ * hook.h
+ * Copyright 2011 John Lindgren
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#ifndef AUDACIOUS_HOOK_H
-#define AUDACIOUS_HOOK_H
+#ifndef LIBAUDCORE_HOOK_H
+#define LIBAUDCORE_HOOK_H
-#include <glib.h>
+typedef void (* HookFunction) (void * data, void * user);
-typedef void (*HookFunction)(gpointer hook_data, gpointer user_data);
+/* Adds <func> to the list of functions to be called when the hook <name> is
+ * triggered. */
+void hook_associate (const char * name, HookFunction func, void * user);
-typedef struct {
- HookFunction func;
- gpointer user_data;
-} HookItem;
+/* Removes all instances matching <func> and <user> from the list of functions
+ * to be called when the hook <name> is triggered. If <user> is NULL, all
+ * instances matching <func> are removed. */
+void hook_dissociate_full (const char * name, HookFunction func, void * user);
-typedef struct {
- const gchar *name;
- GSList *items;
-} Hook;
+#define hook_dissociate(n, f) hook_dissociate_full (n, f, NULL)
-void hook_init (void);
-void hook_register(const gchar *name);
-gint hook_associate(const gchar *name, HookFunction func, gpointer user_data);
-gint hook_dissociate(const gchar *name, HookFunction func);
-gint hook_dissociate_full(const gchar *name, HookFunction func, gpointer user_data);
-void hook_call(const gchar *name, gpointer hook_data);
+/* Triggers the hook <name>. */
+void hook_call (const char * name, void * data);
-#endif /* AUDACIOUS_HOOK_H */
+/* Schedules a call of the hook <name> from the program's main loop, to be
+ * executed in <time> milliseconds. If <destroy> is not NULL, it will be called
+ * on <data> after the hook is called. */
+void event_queue_full (int time, const char * name, void * data, void (* destroy) (void *));
+
+#define event_queue(n, d) event_queue_full (0, n, d, NULL)
+
+/* Cancels pending hook calls matching <name> and <data>. If <data> is NULL,
+ * all hook calls matching <name> are canceled. */
+void event_queue_cancel (const char * name, void * data);
+
+#endif /* LIBAUDCORE_HOOK_H */
diff --git a/src/libaudcore/index.c b/src/libaudcore/index.c
index 0ee66db..4925eba 100644
--- a/src/libaudcore/index.c
+++ b/src/libaudcore/index.c
@@ -1,22 +1,20 @@
/*
* index.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <stdlib.h>
@@ -26,39 +24,43 @@
#include "index.h"
-struct index
-{
+struct _Index {
void * * data;
- gint count, size;
- gint (* compare) (const void * a, const void * b, void * data);
- void * compare_data;
+ int count, size;
};
-struct index * index_new (void)
+typedef struct {
+ int (* compare) (const void * a, const void * b);
+} CompareWrapper;
+
+typedef struct {
+ int (* compare) (const void * a, const void * b, void * data);
+ void * data;
+} CompareWrapper2;
+
+Index * index_new (void)
{
- struct index * index = g_slice_new (struct index);
+ Index * index = g_slice_new (Index);
index->data = NULL;
index->count = 0;
index->size = 0;
- index->compare = NULL;
- index->compare_data = NULL;
return index;
}
-void index_free (struct index * index)
+void index_free (Index * index)
{
g_free (index->data);
- g_slice_free (struct index, index);
+ g_slice_free (Index, index);
}
-gint index_count (struct index * index)
+int index_count (Index * index)
{
return index->count;
}
-void index_allocate (struct index * index, gint size)
+void index_allocate (Index * index, int size)
{
if (size <= index->size)
return;
@@ -72,17 +74,17 @@ void index_allocate (struct index * index, gint size)
index->data = g_realloc (index->data, sizeof (void *) * index->size);
}
-void index_set (struct index * index, gint at, void * value)
+void index_set (Index * index, int at, void * value)
{
index->data[at] = value;
}
-void * index_get (struct index * index, gint at)
+void * index_get (Index * index, int at)
{
return index->data[at];
}
-static void make_room (struct index * index, gint at, gint count)
+static void make_room (Index * index, int at, int count)
{
index_allocate (index, index->count + count);
@@ -93,88 +95,81 @@ static void make_room (struct index * index, gint at, gint count)
index->count += count;
}
-void index_insert (struct index * index, gint at, void * value)
+void index_insert (Index * index, int at, void * value)
{
make_room (index, at, 1);
index->data[at] = value;
}
-void index_append (struct index * index, void * value)
+void index_append (Index * index, void * value)
{
index_insert (index, index->count, value);
}
-void index_copy_set (struct index * source, gint from, struct index * target,
- gint to, gint count)
+void index_copy_set (Index * source, int from, Index * target,
+ int to, int count)
{
memcpy (target->data + to, source->data + from, sizeof (void *) * count);
}
-void index_copy_insert (struct index * source, gint from, struct index * target,
- gint to, gint count)
+void index_copy_insert (Index * source, int from, Index * target,
+ int to, int count)
{
make_room (target, to, count);
memcpy (target->data + to, source->data + from, sizeof (void *) * count);
}
-void index_copy_append (struct index * source, gint from, struct index * target,
- gint count)
+void index_copy_append (Index * source, int from, Index * target,
+ int count)
{
index_copy_insert (source, from, target, target->count, count);
}
-void index_merge_insert (struct index * first, gint at, struct index * second)
+void index_merge_insert (Index * first, int at, Index * second)
{
index_copy_insert (second, 0, first, at, second->count);
}
-void index_merge_append (struct index * first, struct index * second)
+void index_merge_append (Index * first, Index * second)
{
index_copy_insert (second, 0, first, first->count, second->count);
}
-void index_move (struct index * index, gint from, gint to, gint count)
+void index_move (Index * index, int from, int to, int count)
{
memmove (index->data + to, index->data + from, sizeof (void *) * count);
}
-void index_delete (struct index * index, gint at, gint count)
+void index_delete (Index * index, int at, int count)
{
index->count -= count;
memmove (index->data + at, index->data + at + count, sizeof (void *) *
(index->count - at));
}
-static gint index_compare (const void * a, const void * b, void * _compare)
+static int index_compare (const void * ap, const void * bp, void * _wrapper)
{
- gint (* compare) (const void *, const void *) = _compare;
-
- return compare (* (const void * *) a, * (const void * *) b);
+ CompareWrapper * wrapper = _wrapper;
+ return wrapper->compare (* (const void * *) ap, * (const void * *) bp);
}
-void index_sort (struct index * index, gint (* compare) (const void *, const
- void *))
+void index_sort (Index * index, int (* compare) (const void *, const void *))
{
+ CompareWrapper wrapper = {compare};
g_qsort_with_data (index->data, index->count, sizeof (void *),
- index_compare, compare);
+ index_compare, & wrapper);
}
-static gint index_compare_with_data (const void * a, const void * b, void *
- _index)
+static int index_compare2 (const void * ap, const void * bp, void * _wrapper)
{
- struct index * index = _index;
-
- return index->compare (* (const void * *) a, * (const void * *) b,
- index->compare_data);
+ CompareWrapper2 * wrapper = _wrapper;
+ return wrapper->compare (* (const void * *) ap, * (const void * *) bp, wrapper->data);
}
-void index_sort_with_data (struct index * index, gint (* compare)
+void index_sort_with_data (Index * index, int (* compare)
(const void * a, const void * b, void * data), void * data)
{
- index->compare = compare;
- index->compare_data = data;
+ CompareWrapper2 wrapper = {compare, data};
g_qsort_with_data (index->data, index->count, sizeof (void *),
- index_compare_with_data, index);
- index->compare = NULL;
- index->compare_data = NULL;
+ index_compare2, & wrapper);
}
diff --git a/src/libaudcore/index.h b/src/libaudcore/index.h
index 0a3499b..68d21a6 100644
--- a/src/libaudcore/index.h
+++ b/src/libaudcore/index.h
@@ -1,50 +1,45 @@
/*
* index.h
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#ifndef AUDACIOUS_INDEX_H
-#define AUDACIOUS_INDEX_H
+#ifndef LIBAUDCORE_INDEX_H
+#define LIBAUDCORE_INDEX_H
-struct index;
+struct _Index;
+typedef struct _Index Index;
-struct index * index_new (void);
-void index_free (struct index * index);
-gint index_count (struct index * index);
-void index_allocate (struct index * index, gint size);
-void index_set (struct index * index, gint at, void * value);
-void * index_get (struct index * index, gint at);
-void index_insert (struct index * index, gint at, void * value);
-void index_append (struct index * index, void * value);
-void index_copy_set (struct index * source, gint from, struct index * target,
- gint to, gint count);
-void index_copy_insert (struct index * source, gint from, struct index * target,
- gint to, gint count);
-void index_copy_append (struct index * source, gint from, struct index * target,
- gint count);
-void index_merge_insert (struct index * first, gint at, struct index * second);
-void index_merge_append (struct index * first, struct index * second);
-void index_move (struct index * index, gint from, gint to, gint count);
-void index_delete (struct index * index, gint at, gint count);
-void index_sort (struct index * index, gint (* compare) (const void * a,
- const void * b));
-void index_sort_with_data (struct index * index, gint (* compare)
- (const void * a, const void * b, void * data), void * data);
+Index * index_new (void);
+void index_free (Index * index);
+int index_count (Index * index);
+void index_allocate (Index * index, int size);
+void index_set (Index * index, int at, void * value);
+void * index_get (Index * index, int at);
+void index_insert (Index * index, int at, void * value);
+void index_append (Index * index, void * value);
+void index_copy_set (Index * source, int from, Index * target, int to, int count);
+void index_copy_insert (Index * source, int from, Index * target, int to, int count);
+void index_copy_append (Index * source, int from, Index * target, int count);
+void index_merge_insert (Index * first, int at, Index * second);
+void index_merge_append (Index * first, Index * second);
+void index_move (Index * index, int from, int to, int count);
+void index_delete (Index * index, int at, int count);
+void index_sort (Index * index, int (* compare) (const void * a, const void * b));
+void index_sort_with_data (Index * index, int (* compare) (const void * a,
+ const void * b, void * data), void * data);
-#endif
+#endif /* LIBAUDCORE_INDEX_H */
diff --git a/src/libaudcore/md5.c b/src/libaudcore/md5.c
deleted file mode 100644
index 3f98736..0000000
--- a/src/libaudcore/md5.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * MD5 implementation, modified for Audacious from
- * Colin Plumb's implementation by Matti 'ccr' Hämäläinen.
- *
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest. This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- */
-#include "md5.h"
-#include <string.h>
-
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-# define aud_md5_bytereverse(buf, len) do { } while (0)
-#else
-# if G_BYTE_ORDER == G_BIG_ENDIAN
-static void aud_md5_bytereverse(guint8 *buf, guint l)
-{
- guint32 t;
- do {
- t = (guint32) ((guint) buf[3] << 8 | buf[2]) << 16 | ((guint) buf[1] << 8 | buf[0]);
- *(guint32 *) buf = t;
- buf += sizeof(guint32);
- } while (--l);
-}
-# else
-# error Unsupported endianess, not G_LITTLE_ENDIAN or G_BIG_ENDIAN!
-# endif
-#endif
-
-
-/**
- * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
- * initialization constants. Initializes the given state context.
- *
- * @param ctx Context structure to initialize.
- */
-void aud_md5_init(aud_md5state_t *ctx)
-{
- ctx->buf[0] = 0x67452301;
- ctx->buf[1] = 0xefcdab89;
- ctx->buf[2] = 0x98badcfe;
- ctx->buf[3] = 0x10325476;
-
- ctx->bits[0] = 0;
- ctx->bits[1] = 0;
-}
-
-
-/* The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data. aud_md5_update blocks
- * the data and converts bytes into longwords for this routine.
- */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-#define MD5STEP(f, w, x, y, z, data, s) \
- ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x )
-
-static void aud_md5_transform(guint32 buf[4], guint32 const in[16])
-{
- register guint32 a, b, c, d;
-
- a = buf[0];
- b = buf[1];
- c = buf[2];
- d = buf[3];
-
- MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
- MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
- MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
- MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
- MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
- MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
- MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
- MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
- MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
- MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
- MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
- MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
- MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
- MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
- MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
- MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
- MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
- MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
- MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
- MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
- MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
- MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
- MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
- MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
- MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
- MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
- MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
- MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
- MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
- MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
- MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
- MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
- MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
- MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
- MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
- MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
- MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
- MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
- MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
- MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
- MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
- MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
- MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
- MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
- MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
- MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
- MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
- MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
- MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
- MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
- MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
- MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
- MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
- MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
- MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
- MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
- MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
- MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
- MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
- MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
- MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
- MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
- MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
- MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
- buf[0] += a;
- buf[1] += b;
- buf[2] += c;
- buf[3] += d;
-}
-
-
-/**
- * Appends more data to the MD5 state context. Updates context to
- * reflect the concatenation of another buffer full of bytes.
- *
- * @param ctx State context to add data in.
- * @param buf Pointer to buffer of data.
- * @param len Length/size of the data in buffer.
- */
-void aud_md5_append(aud_md5state_t *ctx, const guint8 *buf, guint len)
-{
- guint32 t;
-
- /* Update bitcount */
- t = ctx->bits[0];
- if ((ctx->bits[0] = t + ((guint32) len << 3)) < t)
- ctx->bits[1]++; /* Carry from low to high */
- ctx->bits[1] += len >> 29;
-
- t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */
-
- /* Handle any leading odd-sized chunks */
- if (t) {
- guint8 *p = (guint8 *) ctx->in + t;
-
- t = 64 - t;
- if (len < t) {
- memcpy(p, buf, len);
- return;
- }
- memcpy(p, buf, t);
- aud_md5_bytereverse(ctx->in, 16);
- aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
- buf += t;
- len -= t;
- }
-
- /* Process data in 64-byte chunks */
- while (len >= 64) {
- memcpy(ctx->in, buf, 64);
- aud_md5_bytereverse(ctx->in, 16);
- aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
- buf += 64;
- len -= 64;
- }
-
- /* Handle any remaining bytes of data. */
- memcpy(ctx->in, buf, len);
-}
-
-/**
- * Calculates a MD5 hash digest from the given context.
- *
- * @param ctx State context to be hashed.
- * @param digest Variable where computed MD5 digest is placed.
- */
-void aud_md5_finish(aud_md5state_t *ctx, aud_md5hash_t digest)
-{
- guint count;
- guint8 *p;
-
- /* Compute number of bytes mod 64 */
- count = (ctx->bits[0] >> 3) & 0x3F;
-
- /* Set the first char of padding to 0x80. This is safe since there is
- always at least one byte free */
- p = ctx->in + count;
- *p++ = 0x80;
-
- /* Bytes of padding needed to make 64 bytes */
- count = 64 - 1 - count;
-
- /* Pad out to 56 mod 64 */
- if (count < 8) {
- /* Two lots of padding: Pad the first block to 64 bytes */
- memset(p, 0, count);
- aud_md5_bytereverse(ctx->in, 16);
- aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
-
- /* Now fill the next block with 56 bytes */
- memset(ctx->in, 0, 56);
- } else {
- /* Pad block to 56 bytes */
- memset(p, 0, count - 8);
- }
- aud_md5_bytereverse(ctx->in, 14);
-
- /* Append length in bits and transform */
- ((guint32 *) ctx->in)[14] = ctx->bits[0];
- ((guint32 *) ctx->in)[15] = ctx->bits[1];
-
- aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
- aud_md5_bytereverse((guint8 *) ctx->buf, 4);
- memcpy(digest, ctx->buf, 16);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
-}
diff --git a/src/libaudcore/md5.h b/src/libaudcore/md5.h
deleted file mode 100644
index 97edc82..0000000
--- a/src/libaudcore/md5.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * @file md5.h
- * Functions for computing MD5 hashes of given data.
- */
-#ifndef AUDACIOUS_MD5_H
-#define AUDACIOUS_MD5_H
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/** State context structure for MD5 hash calculation */
-typedef struct {
- guint32 bits[2]; /**< Message length in bits, lsw first */
- guint32 buf[4]; /**< Message digest buffer */
- guint8 in[64]; /**< Data accumulation block */
-} aud_md5state_t;
-
-/** Length of MD5 hash in bytes */
-#define AUD_MD5HASH_LENGTH (16)
-
-/** Length of MD5 hash in ASCII characters */
-#define AUD_MD5HASH_LENGTH_CH (AUD_MD5HASH_LENGTH * 2)
-
-/** Type for holding calculated MD5 hash digest */
-typedef guint8 aud_md5hash_t[AUD_MD5HASH_LENGTH];
-
-
-void aud_md5_init(aud_md5state_t *ctx);
-void aud_md5_append(aud_md5state_t *ctx, const guint8 *buf, guint len);
-void aud_md5_finish(aud_md5state_t *ctx, aud_md5hash_t digest);
-
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_MD5_H */
diff --git a/src/libaudcore/stringpool.c b/src/libaudcore/stringpool.c
deleted file mode 100644
index b30889d..0000000
--- a/src/libaudcore/stringpool.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Audacious
- * Copyright © 2009 William Pitcock <nenolod at atheme.org>
- * Copyright © 2010 John Lindgren <john.lindgren at tds.net>
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <assert.h>
-#include <glib.h>
-#include <mowgli.h>
-
-static mowgli_patricia_t *stringpool_tree = NULL;
-static GStaticMutex stringpool_mutex = G_STATIC_MUTEX_INIT;
-
-#define MAXLEN 100
-
-gchar *
-stringpool_get(gchar *str, gboolean take)
-{
- if (str == NULL)
- return NULL;
-
- if (strlen(str) > MAXLEN)
- return take ? str : g_strdup(str);
-
- g_static_mutex_lock(&stringpool_mutex);
-
- if (stringpool_tree == NULL)
- stringpool_tree = mowgli_patricia_create(NULL);
-
- mowgli_patricia_elem_t *elem = mowgli_patricia_elem_find(stringpool_tree, str);
- if (elem != NULL)
- {
- gint refcount = GPOINTER_TO_INT(mowgli_patricia_elem_get_data(elem));
- mowgli_patricia_elem_set_data(elem, GINT_TO_POINTER(refcount + 1));
- }
- else
- {
- elem = mowgli_patricia_elem_add(stringpool_tree, str, GINT_TO_POINTER(1));
- assert(elem != NULL);
- }
-
- if (take)
- g_free(str);
- str = (gchar *)mowgli_patricia_elem_get_key(elem);
-
- g_static_mutex_unlock(&stringpool_mutex);
-
- return str;
-}
-
-void
-stringpool_unref(gchar *str)
-{
- if (str == NULL)
- return;
-
- if (strlen(str) > MAXLEN)
- return g_free(str);
-
- g_return_if_fail(stringpool_tree != NULL);
-
- g_static_mutex_lock(&stringpool_mutex);
-
- mowgli_patricia_elem_t *elem = mowgli_patricia_elem_find(stringpool_tree, str);
- assert(elem != NULL);
-
- gint refcount = GPOINTER_TO_INT(mowgli_patricia_elem_get_data(elem));
- if (refcount == 1)
- mowgli_patricia_elem_delete(stringpool_tree, elem);
- else
- mowgli_patricia_elem_set_data(elem, GINT_TO_POINTER(refcount - 1));
-
- g_static_mutex_unlock(&stringpool_mutex);
-}
diff --git a/src/libaudcore/stringpool.h b/src/libaudcore/stringpool.h
deleted file mode 100644
index 0bd4255..0000000
--- a/src/libaudcore/stringpool.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Audacious
- * Copyright © 2009 William Pitcock <nenolod at atheme.org>
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-/**
- * @file stringpool.h
- * String pool API for "pooling" identical strings into references
- * instead of keeping multiple copies around.
- */
-
-#ifndef AUDACIOUS_STRINGPOOL_H
-#define AUDACIOUS_STRINGPOOL_H
-
-/**
- * Fetches or allocates a given string from the stringpool.
- * If string already exists in the pool, reference to it is returned.
- * Otherwise, a new string is created in the pool with one reference.
- *
- * @param[in] str String to be poolified.
- * @param[in] take Nonzero if the caller no longer needs str; in this case, the
- * pool will eventually call g_free(str).
- * @return Reference to the pooled string, or NULL if the given
- * string was NULL or an error occured.
- */
-gchar *stringpool_get(gchar *str, gboolean take);
-
-/**
- * Unreference a pooled string. When there are no references left,
- * the string is unallocated and removed from the pool.
- *
- * @param[in] str Pointer to a string in the pool.
- */
-void stringpool_unref(gchar *str);
-
-#endif
-
diff --git a/src/libaudcore/strpool.c b/src/libaudcore/strpool.c
new file mode 100644
index 0000000..34c0b58
--- /dev/null
+++ b/src/libaudcore/strpool.c
@@ -0,0 +1,206 @@
+/*
+ * strpool.c
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <glib.h>
+#include <pthread.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "config.h"
+#include "core.h"
+
+/* Each string in the pool is allocated with five leading bytes: a 32-bit
+ * reference count and a one-byte signature, the '@' character. */
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GHashTable * table;
+
+#ifdef STRPOOL_DEBUG
+static GHashTable * logged;
+
+static void str_log (const char * str, const char * op, const char * file, int line)
+{
+ if (! logged)
+ logged = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+ GList * list = g_hash_table_lookup (logged, str);
+ list = g_list_prepend (list, g_strdup_printf ("%s by %s:%d", op, file, line));
+ g_hash_table_insert (logged, g_strdup (str), list);
+}
+
+static void str_log_dump (const char * str)
+{
+ if (! logged)
+ return;
+
+ for (GList * node = g_hash_table_lookup (logged, str); node; node = node->next)
+ printf (" - %s\n", (char *) node->data);
+}
+#endif
+
+static void str_destroy (void * str)
+{
+ * ((char *) str - 1) = 0;
+ free ((char *) str - 5);
+}
+
+#ifdef STRPOOL_DEBUG
+char * str_get_debug (const char * str, const char * file, int line)
+#else
+char * str_get (const char * str)
+#endif
+{
+ if (! str)
+ return NULL;
+
+ char * copy;
+ pthread_mutex_lock (& mutex);
+
+#ifdef STRPOOL_DEBUG
+ str_log (str, "get", file, line);
+#endif
+
+ if (! table)
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, str_destroy);
+
+ if ((copy = g_hash_table_lookup (table, str)))
+ {
+ void * mem = copy - 5;
+ (* (int32_t *) mem) ++;
+ }
+ else
+ {
+ void * mem = malloc (6 + strlen (str));
+ (* (int32_t *) mem) = 1;
+
+ copy = (char *) mem + 5;
+ copy[-1] = '@';
+ strcpy (copy, str);
+
+ g_hash_table_insert (table, copy, copy);
+ }
+
+ pthread_mutex_unlock (& mutex);
+ return copy;
+}
+
+#ifdef STRPOOL_DEBUG
+char * str_ref_debug (char * str, const char * file, int line)
+#else
+char * str_ref (char * str)
+#endif
+{
+ if (! str)
+ return NULL;
+
+ pthread_mutex_lock (& mutex);
+ STR_CHECK (str);
+
+#ifdef STRPOOL_DEBUG
+ str_log (str, "ref", file, line);
+#endif
+
+ void * mem = str - 5;
+ (* (int32_t *) mem) ++;
+
+ pthread_mutex_unlock (& mutex);
+ return str;
+}
+
+#ifdef STRPOOL_DEBUG
+void str_unref_debug (char * str, const char * file, int line)
+#else
+void str_unref (char * str)
+#endif
+{
+ if (! str)
+ return;
+
+ pthread_mutex_lock (& mutex);
+ STR_CHECK (str);
+
+#ifdef STRPOOL_DEBUG
+ str_log (str, "unref", file, line);
+#endif
+
+ void * mem = str - 5;
+ if (! -- (* (int32_t *) mem))
+ g_hash_table_remove (table, str);
+
+ pthread_mutex_unlock (& mutex);
+}
+
+char * str_nget (const char * str, int len)
+{
+ if (strlen (str) <= len)
+ return str_get (str);
+
+ char buf[len + 1];
+ memcpy (buf, str, len);
+ buf[len] = 0;
+
+ return str_get (buf);
+}
+
+char * str_printf (const char * format, ...)
+{
+ va_list args;
+
+ va_start (args, format);
+ int len = vsnprintf (NULL, 0, format, args);
+ va_end (args);
+
+ char buf[len + 1];
+
+ va_start (args, format);
+ vsnprintf (buf, sizeof buf, format, args);
+ va_end (args);
+
+ return str_get (buf);
+}
+
+void strpool_abort (char * str)
+{
+ fprintf (stderr, "String not in pool: %s\n", str);
+#ifdef STRPOOL_DEBUG
+ str_log_dump (str);
+#endif
+ abort ();
+}
+
+static void str_leaked (void * key, void * str, void * unused)
+{
+ fprintf (stderr, "String not freed: %s\n", (char *) str);
+#ifdef STRPOOL_DEBUG
+ str_log_dump (str);
+#endif
+}
+
+void strpool_shutdown (void)
+{
+ if (! table)
+ return;
+
+ g_hash_table_foreach (table, str_leaked, NULL);
+ g_hash_table_destroy (table);
+ table = NULL;
+}
diff --git a/src/libaudcore/tuple.c b/src/libaudcore/tuple.c
index 878b2f8..7c66e44 100644
--- a/src/libaudcore/tuple.c
+++ b/src/libaudcore/tuple.c
@@ -1,6 +1,7 @@
/*
- * Audacious
- * Copyright (c) 2006-2007 Audacious team
+ * tuple.c
+ * Copyright 2007-2011 William Pitcock, Christian Birchinger, Matti Hämäläinen,
+ * Giacomo Lozito, Eugene Zagidullin, and John Lindgren
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,34 +18,74 @@
* The Audacious team does not consider modular code linking to
* Audacious or using our public API to be a derived work.
*/
+
/**
* @file tuple.c
* @brief Basic Tuple handling API.
*/
#include <glib.h>
-#include <mowgli.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
#include <audacious/i18n.h>
+#include "audstrings.h"
#include "config.h"
#include "tuple.h"
-#include "audstrings.h"
-#include "stringpool.h"
+#include "tuple_formatter.h"
+
+#define BLOCK_VALS 4
+
+typedef struct {
+ char *name;
+ TupleValueType type;
+} TupleBasicType;
+
+typedef union {
+ char * str;
+ int x;
+} TupleVal;
+
+typedef struct _TupleBlock TupleBlock;
-static gboolean set_string (Tuple * tuple, const gint nfield,
- const gchar * field, gchar * string, gboolean take);
+struct _TupleBlock {
+ TupleBlock * next;
+ char fields[BLOCK_VALS];
+ TupleVal vals[BLOCK_VALS];
+};
+
+/**
+ * Structure for holding and passing around miscellaneous track
+ * metadata. This is not the same as a playlist entry, though.
+ */
+struct _Tuple {
+ int refcount;
+ int64_t setmask;
+ TupleBlock * blocks;
+
+ int nsubtunes; /**< Number of subtunes, if any. Values greater than 0
+ mean that there are subtunes and #subtunes array
+ may be set. */
+ int *subtunes; /**< Array of int containing subtune index numbers.
+ Can be NULL if indexing is linear or if
+ there are no subtunes. */
+};
+
+#define BIT(i) ((int64_t) 1 << (i))
/** Ordered table of basic #Tuple field names and their #TupleValueType.
*/
-const TupleBasicType tuple_fields[FIELD_LAST] = {
+static const TupleBasicType tuple_fields[TUPLE_FIELDS] = {
{ "artist", TUPLE_STRING },
{ "title", TUPLE_STRING },
{ "album", TUPLE_STRING },
{ "comment", TUPLE_STRING },
{ "genre", TUPLE_STRING },
- { "track", TUPLE_STRING },
{ "track-number", TUPLE_INT },
{ "length", TUPLE_INT },
{ "year", TUPLE_INT },
@@ -54,10 +95,9 @@ const TupleBasicType tuple_fields[FIELD_LAST] = {
{ "file-name", TUPLE_STRING },
{ "file-path", TUPLE_STRING },
{ "file-ext", TUPLE_STRING },
- { "song-artist", TUPLE_STRING },
- { "mtime", TUPLE_INT },
- { "formatter", TUPLE_STRING },
+ { "song-artist", TUPLE_STRING },
+ { "composer", TUPLE_STRING },
{ "performer", TUPLE_STRING },
{ "copyright", TUPLE_STRING },
{ "date", TUPLE_STRING },
@@ -76,113 +116,182 @@ const TupleBasicType tuple_fields[FIELD_LAST] = {
{ "gain-track-peak", TUPLE_INT },
{ "gain-gain-unit", TUPLE_INT },
{ "gain-peak-unit", TUPLE_INT },
-
- { "composer", TUPLE_STRING },
};
+typedef struct {
+ const char * name;
+ int field;
+} FieldDictEntry;
+
+/* used for binary search, MUST be in alphabetical order */
+static const FieldDictEntry field_dict[TUPLE_FIELDS] = {
+ {"album", FIELD_ALBUM},
+ {"artist", FIELD_ARTIST},
+ {"bitrate", FIELD_BITRATE},
+ {"codec", FIELD_CODEC},
+ {"comment", FIELD_COMMENT},
+ {"composer", FIELD_COMPOSER},
+ {"copyright", FIELD_COPYRIGHT},
+ {"date", FIELD_DATE},
+ {"file-ext", FIELD_FILE_EXT},
+ {"file-name", FIELD_FILE_NAME},
+ {"file-path", FIELD_FILE_PATH},
+ {"gain-album-gain", FIELD_GAIN_ALBUM_GAIN},
+ {"gain-album-peak", FIELD_GAIN_ALBUM_PEAK},
+ {"gain-gain-unit", FIELD_GAIN_GAIN_UNIT},
+ {"gain-peak-unit", FIELD_GAIN_PEAK_UNIT},
+ {"gain-track-gain", FIELD_GAIN_TRACK_GAIN},
+ {"gain-track-peak", FIELD_GAIN_TRACK_PEAK},
+ {"genre", FIELD_GENRE},
+ {"length", FIELD_LENGTH},
+ {"mime-type", FIELD_MIMETYPE},
+ {"performer", FIELD_PERFORMER},
+ {"quality", FIELD_QUALITY},
+ {"segment-end", FIELD_SEGMENT_END},
+ {"segment-start", FIELD_SEGMENT_START},
+ {"song-artist", FIELD_SONG_ARTIST},
+ {"subsong-id", FIELD_SUBSONG_ID},
+ {"subsong-num", FIELD_SUBSONG_NUM},
+ {"title", FIELD_TITLE},
+ {"track-number", FIELD_TRACK_NUMBER},
+ {"year", FIELD_YEAR}};
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+
+
+static int field_dict_compare (const void * a, const void * b)
+{
+ return strcmp (((FieldDictEntry *) a)->name, ((FieldDictEntry *) b)->name);
+}
-/** A mowgli heap containing all the allocated tuples. */
-static mowgli_heap_t *tuple_heap = NULL;
-
-/** A mowgli heap containing values contained by tuples. */
-static mowgli_heap_t *tuple_value_heap = NULL;
-static mowgli_object_class_t tuple_klass;
+int tuple_field_by_name (const char * name)
+{
+ FieldDictEntry find = {name, -1};
+ FieldDictEntry * found = bsearch (& find, field_dict, TUPLE_FIELDS,
+ sizeof (FieldDictEntry), field_dict_compare);
-/** Global lock to preserve data consistency of heaps */
-static GStaticMutex tuple_mutex = G_STATIC_MUTEX_INIT;
+ if (found)
+ return found->field;
-//@{
-/**
- * Convenience macros to lock the globally
- * used internal Tuple system structures.
- */
-#define TUPLE_LOCK_WRITE(X) g_static_mutex_lock (& tuple_mutex)
-#define TUPLE_UNLOCK_WRITE(X) g_static_mutex_unlock (& tuple_mutex)
-#define TUPLE_LOCK_READ(X) g_static_mutex_lock (& tuple_mutex)
-#define TUPLE_UNLOCK_READ(X) g_static_mutex_unlock (& tuple_mutex)
-//@}
+ fprintf (stderr, "Unknown tuple field name \"%s\".\n", name);
+ return -1;
+}
-static void tuple_value_destroy (TupleValue * value)
+const char * tuple_field_get_name (int field)
{
- if (value->type == TUPLE_STRING)
- stringpool_unref (value->value.string);
+ if (field < 0 || field >= TUPLE_FIELDS)
+ return NULL;
- memset (value, 0, sizeof (TupleValue));
- mowgli_heap_free (tuple_value_heap, value);
+ return tuple_fields[field].name;
}
-/* iterative destructor of tuple values. */
-static void tuple_value_destroy_cb (const gchar * key, void * data, void * priv)
+TupleValueType tuple_field_get_type (int field)
{
- tuple_value_destroy (data);
+ if (field < 0 || field >= TUPLE_FIELDS)
+ return TUPLE_UNKNOWN;
+
+ return tuple_fields[field].type;
}
-static void
-tuple_destroy(gpointer data)
+static TupleVal * lookup_val (Tuple * tuple, int field, bool_t add, bool_t remove)
{
- Tuple *tuple = (Tuple *) data;
- gint i;
+ if ((tuple->setmask & BIT (field)))
+ {
+ for (TupleBlock * block = tuple->blocks; block; block = block->next)
+ {
+ for (int i = 0; i < BLOCK_VALS; i ++)
+ {
+ if (block->fields[i] == field)
+ {
+ if (remove)
+ {
+ tuple->setmask &= ~BIT (field);
+ block->fields[i] = -1;
+ }
+
+ return & block->vals[i];
+ }
+ }
+ }
+ }
- TUPLE_LOCK_WRITE();
- mowgli_patricia_destroy(tuple->dict, tuple_value_destroy_cb, NULL);
+ if (! add)
+ return NULL;
+
+ tuple->setmask |= BIT (field);
- for (i = 0; i < FIELD_LAST; i++)
+ for (TupleBlock * block = tuple->blocks; block; block = block->next)
{
- if (tuple->values[i])
- tuple_value_destroy (tuple->values[i]);
+ for (int i = 0; i < BLOCK_VALS; i ++)
+ {
+ if (block->fields[i] < 0)
+ {
+ block->fields[i] = field;
+ return & block->vals[i];
+ }
+ }
}
- g_free(tuple->subtunes);
+ TupleBlock * block = g_slice_new0 (TupleBlock);
+ memset (block->fields, -1, BLOCK_VALS);
- memset (tuple, 0, sizeof (Tuple));
- mowgli_heap_free(tuple_heap, tuple);
- TUPLE_UNLOCK_WRITE();
+ block->next = tuple->blocks;
+ tuple->blocks = block;
+
+ block->fields[0] = field;
+ return & block->vals[0];
}
-static Tuple *
-tuple_new_unlocked(void)
+static void tuple_destroy_unlocked (Tuple * tuple)
{
- Tuple *tuple;
-
- if (tuple_heap == NULL)
+ TupleBlock * next;
+ for (TupleBlock * block = tuple->blocks; block; block = next)
{
- tuple_heap = mowgli_heap_create(sizeof(Tuple), 512, BH_NOW);
- tuple_value_heap = mowgli_heap_create(sizeof(TupleValue), 1024, BH_NOW);
- mowgli_object_class_init(&tuple_klass, "audacious.tuple", tuple_destroy, FALSE);
+ next = block->next;
+
+ for (int i = 0; i < BLOCK_VALS; i ++)
+ {
+ int field = block->fields[i];
+ if (field >= 0 && tuple_fields[field].type == TUPLE_STRING)
+ str_unref (block->vals[i].str);
+ }
+
+ memset (block, 0, sizeof (TupleBlock));
+ g_slice_free (TupleBlock, block);
}
- /* FIXME: use mowgli_object_bless_from_class() in mowgli 0.4
- when it is released --nenolod */
- tuple = mowgli_heap_alloc(tuple_heap);
- memset(tuple, 0, sizeof(Tuple));
- mowgli_object_init(mowgli_object(tuple), NULL, &tuple_klass, NULL);
+ g_free(tuple->subtunes);
- tuple->dict = mowgli_patricia_create(string_canonize_case);
+ memset (tuple, 0, sizeof (Tuple));
+ g_slice_free (Tuple, tuple);
+}
+Tuple * tuple_new (void)
+{
+ Tuple * tuple = g_slice_new0 (Tuple);
+ tuple->refcount = 1;
return tuple;
}
-/**
- * Allocates a new empty #Tuple structure. Must be freed via tuple_free().
- *
- * @return Pointer to newly allocated Tuple.
- */
-Tuple *
-tuple_new(void)
+Tuple * tuple_ref (Tuple * tuple)
{
- Tuple *tuple;
-
- TUPLE_LOCK_WRITE();
+ pthread_mutex_lock (& mutex);
- tuple = tuple_new_unlocked();
+ tuple->refcount ++;
- TUPLE_UNLOCK_WRITE();
+ pthread_mutex_unlock (& mutex);
return tuple;
}
-static TupleValue *
-tuple_associate_data(Tuple *tuple, const gint cnfield, const gchar *field, TupleValueType ftype);
+void tuple_unref (Tuple * tuple)
+{
+ pthread_mutex_lock (& mutex);
+
+ if (! -- tuple->refcount)
+ tuple_destroy_unlocked (tuple);
+ pthread_mutex_unlock (& mutex);
+}
/**
* Sets filename/URI related fields of a #Tuple structure, based
@@ -192,70 +301,30 @@ tuple_associate_data(Tuple *tuple, const gint cnfield, const gchar *field, Tuple
* @param[in] filename Filename URI.
* @param[in,out] tuple Tuple structure to manipulate.
*/
-void tuple_set_filename (Tuple * tuple, const gchar * name)
+void tuple_set_filename (Tuple * tuple, const char * filename)
{
- const gchar * slash;
- if ((slash = strrchr (name, '/')))
- {
- gchar path[slash - name + 2];
- memcpy (path, name, slash - name + 1);
- path[slash - name + 1] = 0;
+ const char * base, * ext, * sub;
+ int isub;
- set_string (tuple, FIELD_FILE_PATH, NULL, uri_to_display (path), TRUE);
- name = slash + 1;
- }
+ uri_parse (filename, & base, & ext, & sub, & isub);
- gchar buf[strlen (name) + 1];
- strcpy (buf, name);
+ char path[base - filename + 1];
+ str_decode_percent (filename, base - filename, path);
+ tuple_set_str (tuple, FIELD_FILE_PATH, NULL, path);
- gchar * c;
- if ((c = strrchr (buf, '?')))
- {
- gint sub;
- if (sscanf (c + 1, "%d", & sub) == 1)
- tuple_associate_int (tuple, FIELD_SUBSONG_ID, NULL, sub);
+ char name[ext - base + 1];
+ str_decode_percent (base, ext - base, name);
+ tuple_set_str (tuple, FIELD_FILE_NAME, NULL, name);
- * c = 0;
+ if (ext < sub)
+ {
+ char extbuf[sub - ext];
+ str_decode_percent (ext + 1, sub - ext - 1, extbuf);
+ tuple_set_str (tuple, FIELD_FILE_EXT, NULL, extbuf);
}
- gchar * base = uri_to_display (buf);
-
- if ((c = strrchr (base, '.')))
- set_string (tuple, FIELD_FILE_EXT, NULL, c + 1, FALSE);
-
- set_string (tuple, FIELD_FILE_NAME, NULL, base, TRUE);
-}
-
-/**
- * Creates a copy of given TupleValue structure, with copied data.
- *
- * @param[in] src TupleValue structure to be made a copy of.
- * @return Pointer to newly allocated TupleValue or NULL
- * if error occured or source was NULL.
- */
-static TupleValue *
-tuple_copy_value(TupleValue *src)
-{
- TupleValue *res;
-
- if (src == NULL) return NULL;
-
- res = mowgli_heap_alloc(tuple_value_heap);
- g_strlcpy(res->name, src->name, TUPLE_NAME_MAX);
- res->type = src->type;
-
- switch (src->type) {
- case TUPLE_STRING:
- res->value.string = stringpool_get (src->value.string, FALSE);
- break;
- case TUPLE_INT:
- res->value.integer = src->value.integer;
- break;
- default:
- mowgli_heap_free (tuple_value_heap, res);
- return NULL;
- }
- return res;
+ if (sub[0])
+ tuple_set_int (tuple, FIELD_SUBSONG_ID, NULL, isub);
}
/**
@@ -264,41 +333,32 @@ tuple_copy_value(TupleValue *src)
* @param[in] src Tuple structure to be made a copy of.
* @return Pointer to newly allocated Tuple.
*/
-Tuple *
-tuple_copy(const Tuple *src)
+Tuple * tuple_copy (const Tuple * old)
{
- Tuple *dst;
- TupleValue * tv, * copied;
- mowgli_patricia_iteration_state_t state;
- gint i;
-
- g_return_val_if_fail(src != NULL, NULL);
+ pthread_mutex_lock (& mutex);
- TUPLE_LOCK_WRITE();
+ Tuple * new = tuple_new ();
- dst = tuple_new_unlocked();
-
- /* Copy basic fields */
- for (i = 0; i < FIELD_LAST; i++)
- dst->values[i] = tuple_copy_value(src->values[i]);
-
- /* Copy dictionary contents */
- MOWGLI_PATRICIA_FOREACH (tv, & state, src->dict)
+ for (int f = 0; f < TUPLE_FIELDS; f ++)
{
- if ((copied = tuple_copy_value (tv)) != NULL)
- mowgli_patricia_add (dst->dict, copied->name, copied);
+ TupleVal * oldval = lookup_val ((Tuple *) old, f, FALSE, FALSE);
+ if (oldval)
+ {
+ TupleVal * newval = lookup_val (new, f, TRUE, FALSE);
+ if (tuple_fields[f].type == TUPLE_STRING)
+ newval->str = str_ref (oldval->str);
+ else
+ newval->x = oldval->x;
+ }
}
- /* Copy subtune number information */
- if (src->subtunes && src->nsubtunes > 0)
- {
- dst->nsubtunes = src->nsubtunes;
- dst->subtunes = g_new(gint, dst->nsubtunes);
- memcpy(dst->subtunes, src->subtunes, sizeof(gint) * dst->nsubtunes);
- }
+ new->nsubtunes = old->nsubtunes;
+
+ if (old->subtunes)
+ new->subtunes = g_memdup (old->subtunes, sizeof (int) * old->nsubtunes);
- TUPLE_UNLOCK_WRITE();
- return dst;
+ pthread_mutex_unlock (& mutex);
+ return new;
}
/**
@@ -309,7 +369,7 @@ tuple_copy(const Tuple *src)
* @return Pointer to newly allocated Tuple.
*/
Tuple *
-tuple_new_from_filename(const gchar *filename)
+tuple_new_from_filename(const char *filename)
{
Tuple *tuple = tuple_new();
@@ -317,236 +377,66 @@ tuple_new_from_filename(const gchar *filename)
return tuple;
}
-
-static gint
-tuple_get_nfield(const gchar *field)
-{
- gint i;
- for (i = 0; i < FIELD_LAST; i++)
- if (!strcmp(field, tuple_fields[i].name))
- return i;
- return -1;
-}
-
-
-/**
- * (Re)associates data into given #Tuple field.
- * If specified field already exists in the #Tuple, any data from it
- * is freed and this current TupleValue struct is returned.
- *
- * If field does NOT exist, a new structure is allocated from global
- * heap, added to Tuple and returned.
- *
- * @attention This function has (unbalanced) Tuple structure unlocking,
- * so please make sure you use it only exactly like it is used in
- * #tuple_associate_string(), etc.
- *
- * @param[in] tuple Tuple structure to be manipulated.
- * @param[in] cnfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] ftype Type of the field to be associated.
- * @return Pointer to associated TupleValue structure.
- */
-static TupleValue *
-tuple_associate_data(Tuple *tuple, const gint cnfield, const gchar *field, TupleValueType ftype)
-{
- const gchar *tfield = field;
- gint nfield = cnfield;
- TupleValue *value = NULL;
-
- g_return_val_if_fail(tuple != NULL, NULL);
- g_return_val_if_fail(cnfield < FIELD_LAST, NULL);
-
- /* Check for known fields */
- if (nfield < 0) {
- nfield = tuple_get_nfield(field);
- if (nfield >= 0)
- g_warning("Tuple FIELD_* not used for '%s'!\n", field);
- }
-
- /* Check if field was known */
- if (nfield >= 0) {
- tfield = tuple_fields[nfield].name;
- value = tuple->values[nfield];
-
- if (ftype != tuple_fields[nfield].type) {
- g_warning("Invalid type for [%s](%d->%d), %d != %d\n",
- tfield, cnfield, nfield, ftype, tuple_fields[nfield].type);
- //mowgli_throw_exception_val(audacious.tuple.invalid_type_request, 0);
- TUPLE_UNLOCK_WRITE();
- return NULL;
- }
- } else {
- value = mowgli_patricia_retrieve(tuple->dict, tfield);
- }
-
- if (value != NULL) {
- /* Value exists, just delete old associated data */
- if (value->type == TUPLE_STRING) {
- stringpool_unref(value->value.string);
- value->value.string = NULL;
- }
- } else {
- /* Allocate a new value */
- value = mowgli_heap_alloc(tuple_value_heap);
- value->type = ftype;
-
- if (nfield >= 0)
- {
- value->name[0] = 0;
- tuple->values[nfield] = value;
- }
- else
- {
- g_strlcpy (value->name, tfield, TUPLE_NAME_MAX);
- mowgli_patricia_add(tuple->dict, tfield, value);
- }
- }
-
- return value;
-}
-
-static gboolean set_string (Tuple * tuple, const gint nfield,
- const gchar * field, gchar * string, gboolean take)
+void tuple_set_int (Tuple * tuple, int nfield, const char * field, int x)
{
- TUPLE_LOCK_WRITE ();
-
- TupleValue * value = tuple_associate_data (tuple, nfield, field,
- TUPLE_STRING);
- if (! value)
- {
- if (take)
- g_free (string);
- return FALSE;
- }
-
- if (! string)
- value->value.string = NULL;
- else
- value->value.string = stringpool_get (string, take);
-
- TUPLE_UNLOCK_WRITE ();
- return TRUE;
-}
+ if (nfield < 0)
+ nfield = tuple_field_by_name (field);
+ if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_INT)
+ return;
-/**
- * Associates copy of given string to a field in specified #Tuple.
- * If field already exists, old value is freed and replaced.
- *
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] nfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] string String to be associated to given field in Tuple.
- * @return TRUE if operation was succesful, FALSE if not.
- */
+ pthread_mutex_lock (& mutex);
-gboolean tuple_associate_string (Tuple * tuple, const gint nfield,
- const gchar * field, const gchar * string)
-{
- if (string && ! g_utf8_validate (string, -1, NULL))
- {
- fprintf (stderr, "Invalid UTF-8: %s.\n", string);
- return set_string (tuple, nfield, field, str_to_utf8 (string), TRUE);
- }
+ TupleVal * val = lookup_val (tuple, nfield, TRUE, FALSE);
+ val->x = x;
- gboolean ret = set_string (tuple, nfield, field, (gchar *) string, FALSE);
- return ret;
+ pthread_mutex_unlock (& mutex);
}
-/**
- * Associates given string to a field in specified #Tuple. The caller
- * gives up ownership of the string. If field already exists, old
- * value is freed and replaced.
- *
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] nfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] string String to be associated to given field in Tuple.
- * @return TRUE if operation was succesful, FALSE if not.
- */
-
-gboolean tuple_associate_string_rel (Tuple * tuple, const gint nfield,
- const gchar * field, gchar * string)
+void tuple_set_str (Tuple * tuple, int nfield, const char * field, const char * str)
{
- if (string && ! g_utf8_validate (string, -1, NULL))
+ if (! str)
{
- fprintf (stderr, "Invalid UTF-8: %s.\n", string);
- gchar * copy = str_to_utf8 (string);
- g_free (string);
- string = copy;
+ tuple_unset (tuple, nfield, field);
+ return;
}
- return set_string (tuple, nfield, field, string, TRUE);
-}
-
-/**
- * Associates given integer to a field in specified #Tuple.
- * If field already exists, old value is freed and replaced.
- *
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] nfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] integer Integer to be associated to given field in Tuple.
- * @return TRUE if operation was succesful, FALSE if not.
- */
-gboolean
-tuple_associate_int(Tuple *tuple, const gint nfield, const gchar *field, gint integer)
-{
- TupleValue *value;
+ if (nfield < 0)
+ nfield = tuple_field_by_name (field);
+ if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_STRING)
+ return;
- TUPLE_LOCK_WRITE();
- if ((value = tuple_associate_data(tuple, nfield, field, TUPLE_INT)) == NULL)
- return FALSE;
+ pthread_mutex_lock (& mutex);
- value->value.integer = integer;
+ TupleVal * val = lookup_val (tuple, nfield, TRUE, FALSE);
+ if (val->str)
+ str_unref (val->str);
+ val->str = str_get (str);
- TUPLE_UNLOCK_WRITE();
- return TRUE;
+ pthread_mutex_unlock (& mutex);
}
-/**
- * Disassociates given field from specified #Tuple structure.
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] cnfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- */
-void
-tuple_disassociate(Tuple *tuple, const gint cnfield, const gchar *field)
+void tuple_unset (Tuple * tuple, int nfield, const char * field)
{
- TupleValue *value;
- gint nfield = cnfield;
-
- g_return_if_fail(tuple != NULL);
- g_return_if_fail(nfield < FIELD_LAST);
-
if (nfield < 0)
- nfield = tuple_get_nfield(field);
+ nfield = tuple_field_by_name (field);
+ if (nfield < 0 || nfield >= TUPLE_FIELDS)
+ return;
- TUPLE_LOCK_WRITE();
- if (nfield < 0)
- /* why _delete()? because _delete() returns the dictnode's data on success */
- value = mowgli_patricia_delete(tuple->dict, field);
- else {
- value = tuple->values[nfield];
- tuple->values[nfield] = NULL;
- }
+ pthread_mutex_lock (& mutex);
- if (value)
- tuple_value_destroy (value);
+ TupleVal * val = lookup_val (tuple, nfield, FALSE, TRUE);
+ if (val)
+ {
+ if (tuple_fields[nfield].type == TUPLE_STRING)
+ {
+ str_unref (val->str);
+ val->str = NULL;
+ }
+ else
+ val->x = 0;
+ }
- TUPLE_UNLOCK_WRITE();
+ pthread_mutex_unlock (& mutex);
}
/**
@@ -559,71 +449,42 @@ tuple_disassociate(Tuple *tuple, const gint cnfield, const gchar *field)
* @param[in] field String acting as key name or NULL if nfield is used.
* @return #TupleValueType of the field or TUPLE_UNKNOWN if there was an error.
*/
-TupleValueType tuple_get_value_type (const Tuple * tuple, gint cnfield,
- const gchar * field)
+TupleValueType tuple_get_value_type (const Tuple * tuple, int nfield, const char * field)
{
- TupleValueType type = TUPLE_UNKNOWN;
- gint nfield = cnfield;
+ if (nfield < 0)
+ nfield = tuple_field_by_name (field);
+ if (nfield < 0 || nfield >= TUPLE_FIELDS)
+ return TUPLE_UNKNOWN;
- g_return_val_if_fail(tuple != NULL, TUPLE_UNKNOWN);
- g_return_val_if_fail(nfield < FIELD_LAST, TUPLE_UNKNOWN);
+ pthread_mutex_lock (& mutex);
- if (nfield < 0)
- nfield = tuple_get_nfield(field);
-
- TUPLE_LOCK_READ();
- if (nfield < 0) {
- TupleValue *value;
- if ((value = mowgli_patricia_retrieve(tuple->dict, field)) != NULL)
- type = value->type;
- } else {
- if (tuple->values[nfield])
- type = tuple->values[nfield]->type;
- }
+ TupleValueType type = TUPLE_UNKNOWN;
+
+ TupleVal * val = lookup_val ((Tuple *) tuple, nfield, FALSE, FALSE);
+ if (val)
+ type = tuple_fields[nfield].type;
- TUPLE_UNLOCK_READ();
+ pthread_mutex_unlock (& mutex);
return type;
}
-/**
- * Returns pointer to a string associated to #Tuple field.
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] cnfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @return Pointer to string or NULL if the field/key did not exist.
- * The returned string is const, and must not be freed or modified.
- */
-const gchar * tuple_get_string (const Tuple * tuple, gint cnfield, const gchar *
- field)
+char * tuple_get_str (const Tuple * tuple, int nfield, const char * field)
{
- TupleValue *value;
- gint nfield = cnfield;
+ if (nfield < 0)
+ nfield = tuple_field_by_name (field);
+ if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_STRING)
+ return NULL;
- g_return_val_if_fail(tuple != NULL, NULL);
- g_return_val_if_fail(nfield < FIELD_LAST, NULL);
+ pthread_mutex_lock (& mutex);
- if (nfield < 0)
- nfield = tuple_get_nfield(field);
+ char * str = NULL;
- TUPLE_LOCK_READ();
- if (nfield < 0)
- value = mowgli_patricia_retrieve(tuple->dict, field);
- else
- value = tuple->values[nfield];
-
- if (value) {
- if (value->type != TUPLE_STRING)
- mowgli_throw_exception_val(audacious.tuple.invalid_type_request, NULL);
-
- TUPLE_UNLOCK_READ();
- return value->value.string;
- } else {
- TUPLE_UNLOCK_READ();
- return NULL;
- }
+ TupleVal * val = lookup_val ((Tuple *) tuple, nfield, FALSE, FALSE);
+ if (val)
+ str = str_ref (val->str);
+
+ pthread_mutex_unlock (& mutex);
+ return str;
}
/**
@@ -638,45 +499,35 @@ const gchar * tuple_get_string (const Tuple * tuple, gint cnfield, const gchar *
*
* @bug There is no way to distinguish error situations if the associated value is zero.
*/
-gint tuple_get_int (const Tuple * tuple, gint cnfield, const gchar * field)
+int tuple_get_int (const Tuple * tuple, int nfield, const char * field)
{
- TupleValue *value;
- gint nfield = cnfield;
+ if (nfield < 0)
+ nfield = tuple_field_by_name (field);
+ if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_INT)
+ return 0;
- g_return_val_if_fail(tuple != NULL, 0);
- g_return_val_if_fail(nfield < FIELD_LAST, 0);
+ pthread_mutex_lock (& mutex);
- if (nfield < 0)
- nfield = tuple_get_nfield(field);
+ int x = 0;
- TUPLE_LOCK_READ();
- if (nfield < 0)
- value = mowgli_patricia_retrieve(tuple->dict, field);
- else
- value = tuple->values[nfield];
-
- if (value) {
- if (value->type != TUPLE_INT)
- mowgli_throw_exception_val(audacious.tuple.invalid_type_request, 0);
-
- TUPLE_UNLOCK_READ();
- return value->value.integer;
- } else {
- TUPLE_UNLOCK_READ();
- return 0;
- }
+ TupleVal * val = lookup_val ((Tuple *) tuple, nfield, FALSE, FALSE);
+ if (val)
+ x = val->x;
+
+ pthread_mutex_unlock (& mutex);
+ return x;
}
#define APPEND(b, ...) snprintf (b + strlen (b), sizeof b - strlen (b), \
__VA_ARGS__)
-void tuple_set_format (Tuple * t, const gchar * format, gint chans, gint rate,
- gint brate)
+void tuple_set_format (Tuple * t, const char * format, int chans, int rate,
+ int brate)
{
if (format)
- tuple_associate_string (t, FIELD_CODEC, NULL, format);
+ tuple_set_str (t, FIELD_CODEC, NULL, format);
- gchar buf[32];
+ char buf[32];
buf[0] = 0;
if (chans > 0)
@@ -686,7 +537,8 @@ void tuple_set_format (Tuple * t, const gchar * format, gint chans, gint rate,
else if (chans == 2)
APPEND (buf, _("Stereo"));
else
- APPEND (buf, _("%d channels"), chans);
+ APPEND (buf, dngettext (PACKAGE, "%d channel", "%d channels",
+ chans), chans);
if (rate > 0)
APPEND (buf, ", ");
@@ -696,8 +548,62 @@ void tuple_set_format (Tuple * t, const gchar * format, gint chans, gint rate,
APPEND (buf, "%d kHz", rate / 1000);
if (buf[0])
- tuple_associate_string (t, FIELD_QUALITY, NULL, buf);
-
+ tuple_set_str (t, FIELD_QUALITY, NULL, buf);
+
if (brate > 0)
- tuple_associate_int (t, FIELD_BITRATE, NULL, brate);
+ tuple_set_int (t, FIELD_BITRATE, NULL, brate);
+}
+
+void tuple_set_subtunes (Tuple * tuple, int n_subtunes, const int * subtunes)
+{
+ pthread_mutex_lock (& mutex);
+
+ g_free (tuple->subtunes);
+ tuple->subtunes = NULL;
+
+ tuple->nsubtunes = n_subtunes;
+ if (subtunes)
+ tuple->subtunes = g_memdup (subtunes, sizeof (int) * n_subtunes);
+
+ pthread_mutex_unlock (& mutex);
+}
+
+int tuple_get_n_subtunes (Tuple * tuple)
+{
+ pthread_mutex_lock (& mutex);
+
+ int n_subtunes = tuple->nsubtunes;
+
+ pthread_mutex_unlock (& mutex);
+ return n_subtunes;
+}
+
+int tuple_get_nth_subtune (Tuple * tuple, int n)
+{
+ pthread_mutex_lock (& mutex);
+
+ int subtune = -1;
+ if (n >= 0 && n < tuple->nsubtunes)
+ subtune = tuple->subtunes ? tuple->subtunes[n] : 1 + n;
+
+ pthread_mutex_unlock (& mutex);
+ return subtune;
+}
+
+char * tuple_format_title (Tuple * tuple, const char * format)
+{
+ static const gint fallbacks[] = {FIELD_TITLE, FIELD_FILE_NAME, FIELD_FILE_PATH};
+
+ char * title = tuple_formatter_process_string (tuple, format);
+
+ for (int i = 0; i < G_N_ELEMENTS (fallbacks); i ++)
+ {
+ if (title && title[0])
+ break;
+
+ str_unref (title);
+ title = tuple_get_str (tuple, fallbacks[i], NULL);
+ }
+
+ return title ? title : str_get ("");
}
diff --git a/src/libaudcore/tuple.h b/src/libaudcore/tuple.h
index bb277bf..f202c1d 100644
--- a/src/libaudcore/tuple.h
+++ b/src/libaudcore/tuple.h
@@ -1,6 +1,7 @@
/*
- * Audacious
- * Copyright (c) 2006-2007 Audacious team
+ * tuple.h
+ * Copyright 2007-2011 William Pitcock, Christian Birchinger, Matti Hämäläinen,
+ * Giacomo Lozito, Eugene Zagidullin, and John Lindgren
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,18 +18,16 @@
* The Audacious team does not consider modular code linking to
* Audacious or using our public API to be a derived work.
*/
+
/**
* @file tuple.h
* @brief Basic Tuple handling API.
*/
-#ifndef AUDACIOUS_TUPLE_H
-#define AUDACIOUS_TUPLE_H
-
-#include <glib.h>
-#include <mowgli.h>
+#ifndef LIBAUDCORE_TUPLE_H
+#define LIBAUDCORE_TUPLE_H
-G_BEGIN_DECLS
+#include <libaudcore/core.h>
/** Ordered enum for basic #Tuple fields.
* @sa TupleBasicType
@@ -40,9 +39,8 @@ enum {
FIELD_COMMENT, /**< Freeform comment */
FIELD_GENRE, /**< Song's genre */
- FIELD_TRACK,
FIELD_TRACK_NUMBER,
- FIELD_LENGTH, /**< Track length in seconds */
+ FIELD_LENGTH, /**< Track length in milliseconds */
FIELD_YEAR, /**< Year of production/performance/etc */
FIELD_QUALITY, /**< String representing quality, such as
"lossy", "lossless", "sequenced" */
@@ -51,10 +49,9 @@ enum {
FIELD_FILE_NAME, /**< File name part of the location URI */
FIELD_FILE_PATH, /**< Path part of the location URI */
FIELD_FILE_EXT, /**< Filename extension part of the location URI */
- FIELD_SONG_ARTIST,
- FIELD_MTIME, /**< Playlist entry modification time for internal use */
- FIELD_FORMATTER, /**< Playlist entry Tuplez formatting string */
+ FIELD_SONG_ARTIST,
+ FIELD_COMPOSER, /**< Composer of song, if different than artist. */
FIELD_PERFORMER,
FIELD_COPYRIGHT,
FIELD_DATE,
@@ -80,10 +77,7 @@ enum {
FIELD_GAIN_GAIN_UNIT,
FIELD_GAIN_PEAK_UNIT,
- FIELD_COMPOSER, /**< Composer of song, if different than artist. */
-
- /* Special field, must always be last */
- FIELD_LAST
+ TUPLE_FIELDS
};
typedef enum {
@@ -92,66 +86,92 @@ typedef enum {
TUPLE_UNKNOWN
} TupleValueType;
-typedef struct {
- gchar *name;
- TupleValueType type;
-} TupleBasicType;
+int tuple_field_by_name (const char * name);
+const char * tuple_field_get_name (int field);
+TupleValueType tuple_field_get_type (int field);
-extern const TupleBasicType tuple_fields[FIELD_LAST];
+typedef struct _Tuple Tuple;
-#define TUPLE_NAME_MAX 20
+/* Creates a new, blank tuple with a reference count of one. */
+Tuple * tuple_new (void);
-typedef struct {
- gchar name[TUPLE_NAME_MAX]; /* for standard fields, the empty string */
- TupleValueType type;
- union {
- gchar *string;
- gint integer;
- } value;
-} TupleValue;
+/* Increments the reference count of <tuple> by one. */
+Tuple * tuple_ref (Tuple * tuple);
-/**
- * Structure for holding and passing around miscellaneous track
- * metadata. This is not the same as a playlist entry, though.
- */
-typedef struct _Tuple {
- mowgli_object_t parent;
- mowgli_patricia_t *dict; /**< Mowgli dictionary for holding other than basic values. */
- TupleValue *values[FIELD_LAST]; /**< Basic #Tuple values, entry is NULL if not set. */
- gint nsubtunes; /**< Number of subtunes, if any. Values greater than 0
- mean that there are subtunes and #subtunes array
- may be set. */
- gint *subtunes; /**< Array of gint containing subtune index numbers.
- Can be NULL if indexing is linear or if
- there are no subtunes. */
-} Tuple;
-
-
-Tuple *tuple_new(void);
+/* Decrements the reference count of <tuple> by one. If the reference count
+ * drops to zero, releases all memory used by <tuple>. */
+void tuple_unref (Tuple * tuple);
+
+/* Makes a copy of <tuple>. Only use tuple_copy() if you need to modify one
+ * copy of the tuple while not modifying the other. In most cases, tuple_ref()
+ * is more appropriate. */
Tuple *tuple_copy(const Tuple *);
-void tuple_set_filename(Tuple *tuple, const gchar *filename);
-Tuple *tuple_new_from_filename(const gchar *filename);
-gboolean tuple_associate_string_rel(Tuple *tuple, const gint nfield, const gchar *field, gchar *string);
-gboolean tuple_associate_string(Tuple *tuple, const gint nfield, const gchar *field, const gchar *string);
-gboolean tuple_associate_int(Tuple *tuple, const gint nfield, const gchar *field, gint integer);
-void tuple_disassociate(Tuple *tuple, const gint nfield, const gchar *field);
-void tuple_disassociate_now(TupleValue *value);
-TupleValueType tuple_get_value_type (const Tuple * tuple, gint nfield,
- const gchar * field);
-const gchar * tuple_get_string (const Tuple * tuple, gint nfield, const gchar *
- field);
-gint tuple_get_int (const Tuple * tuple, gint nfield, const gchar * field);
-#define tuple_free(x) mowgli_object_unref(x);
+
+/* Parses the URI <filename> and sets FIELD_FILE_NAME, FIELD_FILE_PATH,
+ * FIELD_FILE_EXT, and FIELD_SUBSONG_ID accordingly. */
+void tuple_set_filename(Tuple *tuple, const char *filename);
+
+/* Convenience function, equivalent to calling tuple_new() and then
+ * tuple_set_filename(). */
+Tuple *tuple_new_from_filename(const char *filename);
+
+/* Sets a field to the integer value <x>. */
+void tuple_set_int (Tuple * tuple, int nfield, const char * field, int x);
+
+/* Sets the field specified by <nfield> (one of the FIELD_* constants) or
+ * <field> (one of the names returned by tuple_field_get_name() to the string
+ * value <str>. Only one of <nfield> or <field> may be set. If <nfield> is
+ * set, <field> must be NULL; if <field> is set, <nfield> must be -1. As a
+ * special case, if <str> is NULL, the result is equivalent to calling
+ * tuple_unset(). */
+void tuple_set_str (Tuple * tuple, int nfield, const char * field, const char * str);
+
+/* Clears any value that a field is currently set to. */
+void tuple_unset (Tuple * tuple, int nfield, const char * field);
+
+/* Returns the value type of a field, or TUPLE_UNKNOWN if the field has not been
+ * set to any value. */
+TupleValueType tuple_get_value_type (const Tuple * tuple, int nfield,
+ const char * field);
+
+/* Returns the string value of a field. The returned string is pooled and must
+ * be released with str_unref() when no longer needed. If the field has not
+ * been set to any value, returns NULL. */
+char * tuple_get_str (const Tuple * tuple, int nfield, const char * field);
+
+/* Returns the integer value of a field. If the field has not been set to any
+ * value, returns 0. (In hindsight, it would have been better to return -1 in
+ * this case. If you need to distinguish between a value of 0 and a field not
+ * set to any value, use tuple_get_value_type().) */
+int tuple_get_int (const Tuple * tuple, int nfield, const char * field);
/* Fills in format-related fields (specifically FIELD_CODEC, FIELD_QUALITY, and
- * FIELD_BITRATE. Plugins should use this function instead of setting these
+ * FIELD_BITRATE). Plugins should use this function instead of setting these
* fields individually so that the style is consistent across file formats.
* <format> should be a brief description such as "Microsoft WAV", "MPEG-1 layer
* 3", "Audio CD", and so on. <samplerate> is in Hertz. <bitrate> is in 1000
* bits per second. */
-void tuple_set_format (Tuple * tuple, const gchar * format, gint channels, gint
- samplerate, gint bitrate);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_TUPLE_H */
+void tuple_set_format (Tuple * tuple, const char * format, int channels, int
+ samplerate, int bitrate);
+
+/* In addition to the normal fields, tuples contain an integer array of subtune
+ * ID numbers. This function sets that array. It also sets FIELD_SUBSONG_NUM
+ * to the value <n_subtunes>. */
+void tuple_set_subtunes (Tuple * tuple, int n_subtunes, const int * subtunes);
+
+/* Returns the length of the subtune array. If the array has not been set,
+ * returns zero. Note that if FIELD_SUBSONG_NUM is changed after
+ * tuple_set_subtunes() is called, this function returns the value <n_subtunes>
+ * passed to tuple_set_subtunes(), not the value of FIELD_SUBSONG_NUM. */
+int tuple_get_n_subtunes (Tuple * tuple);
+
+/* Returns the <n>th member of the subtune array. */
+int tuple_get_nth_subtune (Tuple * tuple, int n);
+
+/* Generates a formatted title string for <tuple> according to <format>. The
+ * syntax of <format> is documented in tuple_formatter.c. The returned string
+ * is pooled and must be released with str_unref() when no longer need. The
+ * returned string is never NULL, though it may be the empty string. */
+char * tuple_format_title (Tuple * tuple, const char * format);
+
+#endif /* LIBAUDCORE_TUPLE_H */
diff --git a/src/libaudcore/tuple_compiler.c b/src/libaudcore/tuple_compiler.c
index c930f5b..eeef443 100644
--- a/src/libaudcore/tuple_compiler.c
+++ b/src/libaudcore/tuple_compiler.c
@@ -1,6 +1,7 @@
/*
* Audacious - Tuplez compiler
* Copyright (c) 2007 Matti 'ccr' Hämäläinen
+ * Copyright (c) 2011 John Lindgren
*
* 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
@@ -31,46 +32,73 @@
* currently there is just a single context, is a "global" context needed?
*/
-#include "config.h"
-#include <assert.h>
+#include <ctype.h>
#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <glib.h>
+
#include "tuple_compiler.h"
#define MAX_STR (256)
#define MIN_ALLOC_NODES (8)
#define MIN_ALLOC_BUF (64)
-
-
-void tuple_error(TupleEvalContext *ctx, const gchar *fmt, ...)
-{
- va_list ap;
- g_free(ctx->errmsg);
- va_start(ap, fmt);
- ctx->errmsg = g_strdup_vprintf(fmt, ap);
- va_end(ap);
- ctx->iserror = TRUE;
-}
+#define TUPLEZ_MAX_VARS (4)
+
+#define tuple_error(ctx, ...) fprintf (stderr, "Tuple compiler: " __VA_ARGS__)
+
+enum {
+ OP_RAW = 0, /* plain text */
+ OP_FIELD, /* a field/variable */
+ OP_EXISTS,
+ OP_EQUALS,
+ OP_NOT_EQUALS,
+ OP_GT,
+ OP_GTEQ,
+ OP_LT,
+ OP_LTEQ,
+ OP_IS_EMPTY
+};
+
+enum {
+ TUPLE_VAR_FIELD = 0,
+ TUPLE_VAR_CONST
+};
+
+struct _TupleEvalNode {
+ int opcode; /* operator, see OP_ enums */
+ int var[TUPLEZ_MAX_VARS]; /* tuple variable references */
+ char *text; /* raw text, if any (OP_RAW) */
+ struct _TupleEvalNode *children, *next, *prev; /* children of this struct, and pointer to next node. */
+};
+
+typedef struct {
+ char *name;
+ int type; /* Type of variable, see VAR_* */
+ int defvali;
+ TupleValueType ctype; /* Type of constant/def value */
+
+ int fieldidx; /* if >= 0: Index # of "pre-defined" Tuple fields */
+ bool_t fieldread, fieldvalid;
+ char * fieldstr;
+} TupleEvalVar;
+
+struct _TupleEvalContext {
+ int nvariables;
+ TupleEvalVar **variables;
+};
static void tuple_evalctx_free_var(TupleEvalVar *var)
{
- assert(var != NULL);
- var->fieldidx = -1;
- g_free(var->defvals);
g_free(var->name);
+ str_unref (var->fieldstr);
g_free(var);
}
-static void tuple_evalctx_free_function(TupleEvalFunc *func)
-{
- assert(func != NULL);
-
- g_free(func->name);
- g_free(func);
-}
-
-
/* Initialize an evaluation context
*/
TupleEvalContext * tuple_evalctx_new(void)
@@ -79,21 +107,19 @@ TupleEvalContext * tuple_evalctx_new(void)
}
-/* "Reset" the evaluation context, clean up temporary variables.
+/* "Reset" the evaluation context
*/
void tuple_evalctx_reset(TupleEvalContext *ctx)
{
- gint i;
+ int i;
for (i = 0; i < ctx->nvariables; i++)
if (ctx->variables[i]) {
- ctx->variables[i]->fieldref = NULL;
-
- if (ctx->variables[i]->istemp)
- tuple_evalctx_free_var(ctx->variables[i]);
+ ctx->variables[i]->fieldread = FALSE;
+ ctx->variables[i]->fieldvalid = FALSE;
+ str_unref (ctx->variables[i]->fieldstr);
+ ctx->variables[i]->fieldstr = NULL;
}
-
- ctx->iserror = FALSE;
}
@@ -101,7 +127,7 @@ void tuple_evalctx_reset(TupleEvalContext *ctx)
*/
void tuple_evalctx_free(TupleEvalContext *ctx)
{
- gint i;
+ int i;
if (!ctx) return;
@@ -111,36 +137,26 @@ void tuple_evalctx_free(TupleEvalContext *ctx)
tuple_evalctx_free_var(ctx->variables[i]);
g_free(ctx->variables);
-
- /* Deallocate functions */
- for (i = 0; i < ctx->nfunctions; i++)
- if (ctx->functions[i])
- tuple_evalctx_free_function(ctx->functions[i]);
-
- g_free(ctx->functions);
g_free(ctx);
}
-gint tuple_evalctx_add_var(TupleEvalContext *ctx, const gchar *name, const gboolean istemp, const gint type, const TupleValueType ctype)
+static int tuple_evalctx_add_var (TupleEvalContext * ctx, const char * name,
+ const int type, const TupleValueType ctype)
{
- gint i, ref = -1;
+ int i;
TupleEvalVar *tmp = g_new0(TupleEvalVar, 1);
- assert(tmp != NULL);
tmp->name = g_strdup(name);
- tmp->istemp = istemp;
tmp->type = type;
- tmp->fieldidx = ref;
+ tmp->fieldidx = -1;
tmp->ctype = ctype;
/* Find fieldidx, if any */
switch (type) {
case TUPLE_VAR_FIELD:
- for (i = 0; i < FIELD_LAST && ref < 0; i++)
- if (strcmp(tuple_fields[i].name, name) == 0) ref = i;
-
- tmp->fieldidx = ref;
+ tmp->fieldidx = tuple_field_by_name (name);
+ tmp->ctype = tuple_field_get_type (tmp->fieldidx);
break;
case TUPLE_VAR_CONST:
@@ -166,20 +182,8 @@ gint tuple_evalctx_add_var(TupleEvalContext *ctx, const gchar *name, const gbool
}
-gint tuple_evalctx_add_function(TupleEvalContext *ctx, gchar *name)
-{
- assert(ctx != NULL);
- assert(name != NULL);
-
- return -1;
-}
-
-
static void tuple_evalnode_insert(TupleEvalNode **nodes, TupleEvalNode *node)
{
- assert(nodes != NULL);
- assert(node != NULL);
-
if (*nodes) {
node->prev = (*nodes)->prev;
(*nodes)->prev->next = node;
@@ -218,17 +222,15 @@ void tuple_evalnode_free(TupleEvalNode *expr)
}
-static TupleEvalNode *tuple_compiler_pass1(gint *level, TupleEvalContext *ctx, gchar **expression);
+static TupleEvalNode *tuple_compiler_pass1(int *level, TupleEvalContext *ctx, char **expression);
-static gboolean tc_get_item(TupleEvalContext *ctx,
- gchar **str, gchar *buf, gssize max,
- gchar endch, gboolean *literal, gchar *errstr, gchar *item)
+static bool_t tc_get_item(TupleEvalContext *ctx,
+ char **str, char *buf, gssize max,
+ char endch, bool_t *literal, char *errstr, char *item)
{
gssize i = 0;
- gchar *s = *str, tmpendch;
- assert(str != NULL);
- assert(buf != NULL);
+ char *s = *str, tmpendch;
if (*s == '"') {
if (*literal == FALSE) {
@@ -282,9 +284,9 @@ static gboolean tc_get_item(TupleEvalContext *ctx,
}
-static gint tc_get_variable(TupleEvalContext *ctx, gchar *name, gint type)
+static int tc_get_variable(TupleEvalContext *ctx, char *name, int type)
{
- gint i;
+ int i;
TupleValueType ctype = TUPLE_UNKNOWN;
if (name == '\0') return -1;
@@ -301,14 +303,14 @@ static gint tc_get_variable(TupleEvalContext *ctx, gchar *name, gint type)
return i;
}
- return tuple_evalctx_add_var(ctx, name, FALSE, type, ctype);
+ return tuple_evalctx_add_var(ctx, name, type, ctype);
}
-static gboolean tc_parse_construct(TupleEvalContext *ctx, TupleEvalNode **res, gchar *item, gchar **c, gint *level, gint opcode)
+static bool_t tc_parse_construct(TupleEvalContext *ctx, TupleEvalNode **res, char *item, char **c, int *level, int opcode)
{
- gchar tmps1[MAX_STR], tmps2[MAX_STR];
- gboolean literal1 = TRUE, literal2 = TRUE;
+ char tmps1[MAX_STR], tmps2[MAX_STR];
+ bool_t literal1 = TRUE, literal2 = TRUE;
(*c)++;
if (tc_get_item(ctx, c, tmps1, MAX_STR, ',', &literal1, "tag1", item)) {
@@ -343,13 +345,11 @@ static gboolean tc_parse_construct(TupleEvalContext *ctx, TupleEvalNode **res, g
* A "simple" straight compilation is sufficient in first pass, later
* passes can perform subexpression removal and other optimizations.
*/
-static TupleEvalNode *tuple_compiler_pass1(gint *level, TupleEvalContext *ctx, gchar **expression)
+static TupleEvalNode *tuple_compiler_pass1(int *level, TupleEvalContext *ctx, char **expression)
{
TupleEvalNode *res = NULL, *tmp = NULL;
- gchar *c = *expression, *item, tmps1[MAX_STR];
- gboolean literal, end = FALSE;
- assert(ctx != NULL);
- assert(expression != NULL);
+ char *c = *expression, *item, tmps1[MAX_STR];
+ bool_t literal, end = FALSE;
(*level)++;
@@ -363,8 +363,8 @@ static TupleEvalNode *tuple_compiler_pass1(gint *level, TupleEvalContext *ctx, g
/* Expression? */
item = c++;
if (*c == '{') {
- gint opcode;
- gchar *expr = ++c;
+ int opcode;
+ char *expr = ++c;
switch (*c) {
case '?': c++;
@@ -536,22 +536,11 @@ ret_error:
}
-static TupleEvalNode *tuple_compiler_pass2(gboolean *changed, TupleEvalContext *ctx, TupleEvalNode *expr)
-{
- /* TupleEvalNode *curr = expr; */
- TupleEvalNode *res = NULL;
- assert(ctx != NULL);
-
- return res;
-}
-
-
-TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, gchar *expr)
+TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, char *expr)
{
- gint level = 0;
- gboolean changed = FALSE;
- gchar *tmpexpr = expr;
- TupleEvalNode *res1, *res2;
+ int level = 0;
+ char *tmpexpr = expr;
+ TupleEvalNode *res1;
res1 = tuple_compiler_pass1(&level, ctx, &tmpexpr);
@@ -561,38 +550,40 @@ TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, gchar *expr)
return NULL;
}
- res2 = tuple_compiler_pass2(&changed, ctx, res1);
-
- if (changed) {
- tuple_evalnode_free(res1);
- return res2;
- } else {
- tuple_evalnode_free(res2);
- return res1;
- }
+ return res1;
}
-/* Fetch a reference to a tuple field for given variable by fieldidx or dict.
- * Return pointer to field, NULL if not available.
- */
-static TupleValue * tf_get_fieldref (TupleEvalVar * var, const Tuple * tuple)
+/* Fetch a tuple field value. Return TRUE if found. */
+static bool_t tf_get_fieldval (TupleEvalVar * var, const Tuple * tuple)
{
- if (var->type == TUPLE_VAR_FIELD && var->fieldref == NULL) {
- if (var->fieldidx < 0)
- var->fieldref = mowgli_patricia_retrieve(tuple->dict, var->name);
- else
- var->fieldref = tuple->values[var->fieldidx];
+ if (var->type != TUPLE_VAR_FIELD || var->fieldidx < 0)
+ return FALSE;
+
+ if (var->fieldread)
+ return var->fieldvalid;
+
+ if (tuple_get_value_type (tuple, var->fieldidx, NULL) != var->ctype) {
+ var->fieldread = TRUE;
+ var->fieldvalid = FALSE;
+ return FALSE;
}
- return var->fieldref;
+ if (var->ctype == TUPLE_INT)
+ var->defvali = tuple_get_int (tuple, var->fieldidx, NULL);
+ else if (var->ctype == TUPLE_STRING)
+ var->fieldstr = tuple_get_str (tuple, var->fieldidx, NULL);
+
+ var->fieldread = TRUE;
+ var->fieldvalid = TRUE;
+ return TRUE;
}
/* Fetch string or int value of given variable, whatever type it might be.
* Return VAR_* type for the variable.
*/
-static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
+static TupleValueType tf_get_var (char * * tmps, int * tmpi, TupleEvalVar *
var, const Tuple * tuple)
{
TupleValueType type = TUPLE_UNKNOWN;
@@ -600,15 +591,6 @@ static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
*tmpi = 0;
switch (var->type) {
- case TUPLE_VAR_DEF:
- switch (var->ctype) {
- case TUPLE_STRING: *tmps = var->defvals; break;
- case TUPLE_INT: *tmpi = var->defvali; break;
- default: /* Possible, but should be prevented elsewhere */ break;
- }
- type = var->ctype;
- break;
-
case TUPLE_VAR_CONST:
switch (var->ctype) {
case TUPLE_STRING: *tmps = var->name; break;
@@ -619,12 +601,12 @@ static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
break;
case TUPLE_VAR_FIELD:
- if (tf_get_fieldref(var, tuple)) {
- if (var->fieldref->type == TUPLE_STRING)
- *tmps = var->fieldref->value.string;
- else
- *tmpi = var->fieldref->value.integer;
- type = var->fieldref->type;
+ if (tf_get_fieldval (var, tuple)) {
+ type = var->ctype;
+ if (type == TUPLE_INT)
+ * tmpi = var->defvali;
+ else if (type == TUPLE_STRING)
+ * tmps = var->fieldstr;
}
break;
}
@@ -636,21 +618,21 @@ static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
/* Evaluate tuple in given TupleEval expression in given
* context and return resulting string.
*/
-static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
- expr, const Tuple * tuple, gchar * * res, gssize * resmax, gssize * reslen)
+static bool_t tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
+ expr, const Tuple * tuple, GString * out)
{
TupleEvalNode *curr = expr;
TupleEvalVar *var0, *var1;
TupleValueType type0, type1;
- gint tmpi0, tmpi1;
- gchar tmps[MAX_STR], *tmps0, *tmps1, *tmps2;
- gboolean result;
- gint resulti;
+ int tmpi0, tmpi1;
+ char tmps[MAX_STR], *tmps0, *tmps1, *tmps2;
+ bool_t result;
+ int resulti;
if (!expr) return FALSE;
while (curr) {
- const gchar *str = NULL;
+ const char *str = NULL;
switch (curr->opcode) {
case OP_RAW:
@@ -661,31 +643,15 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
var0 = ctx->variables[curr->var[0]];
switch (var0->type) {
- case TUPLE_VAR_DEF:
- switch (var0->ctype) {
- case TUPLE_STRING:
- str = var0->defvals;
- break;
-
- case TUPLE_INT:
- g_snprintf(tmps, sizeof(tmps), "%d", var0->defvali);
- str = tmps;
- break;
-
- default:
- break;
- }
- break;
-
case TUPLE_VAR_FIELD:
- if (tf_get_fieldref(var0, tuple)) {
- switch (var0->fieldref->type) {
+ if (tf_get_fieldval (var0, tuple)) {
+ switch (var0->ctype) {
case TUPLE_STRING:
- str = var0->fieldref->value.string;
+ str = var0->fieldstr;
break;
case TUPLE_INT:
- g_snprintf(tmps, sizeof(tmps), "%d", var0->fieldref->value.integer);
+ g_snprintf (tmps, sizeof (tmps), "%d", var0->defvali);
str = tmps;
break;
@@ -732,32 +698,29 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
}
}
- if (result && !tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
+ if (result && ! tuple_formatter_eval_do (ctx, curr->children, tuple, out))
return FALSE;
break;
case OP_EXISTS:
-#ifdef NO_EXISTS_HACK
- if (tf_get_fieldref(ctx->variables[curr->var[0]], tuple)) {
- if (!tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
+ if (tf_get_fieldval (ctx->variables[curr->var[0]], tuple)) {
+ if (! tuple_formatter_eval_do (ctx, curr->children, tuple, out))
return FALSE;
}
break;
-#endif
case OP_IS_EMPTY:
var0 = ctx->variables[curr->var[0]];
- if (tf_get_fieldref(var0, tuple)) {
-
- switch (var0->fieldref->type) {
+ if (tf_get_fieldval (var0, tuple)) {
+ switch (var0->ctype) {
case TUPLE_INT:
- result = (var0->fieldref->value.integer == 0);
+ result = (var0->defvali == 0);
break;
case TUPLE_STRING:
result = TRUE;
- tmps2 = var0->fieldref->value.string;
+ tmps2 = var0->fieldstr;
while (result && tmps2 && *tmps2 != '\0') {
gunichar uc = g_utf8_get_char(tmps2);
@@ -774,15 +737,8 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
} else
result = TRUE;
-#ifdef NO_EXISTS_HACK
- if (result && !tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
+ if (result && ! tuple_formatter_eval_do (ctx, curr->children, tuple, out))
return FALSE;
-#else
- if ((curr->opcode == OP_EXISTS && !result) || (curr->opcode == OP_IS_EMPTY && result)) {
- if (!tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
- return FALSE;
- }
-#endif
break;
default:
@@ -791,23 +747,8 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
break;
}
- if (str) {
- /* (Re)allocate res for more space, if needed. */
- *reslen += strlen(str);
- if (*res) {
- if (*reslen >= *resmax) {
- *resmax += *reslen + MIN_ALLOC_BUF;
- *res = g_realloc(*res, *resmax);
- }
-
- strcat(*res, str);
- } else {
- *resmax = *reslen + MIN_ALLOC_BUF;
- *res = g_malloc(*resmax);
-
- g_strlcpy(*res, str, *resmax);
- }
- }
+ if (str)
+ g_string_append (out, str);
curr = curr->next;
}
@@ -815,120 +756,9 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
return TRUE;
}
-
-gchar * tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
- const Tuple * tuple)
-{
- gchar *res = NULL;
- gssize resmax = 0, reslen = 0;
- assert(ctx != NULL);
- assert(tuple != NULL);
-
- if (!expr) return res;
-
- tuple_formatter_eval_do(ctx, expr, tuple, &res, &resmax, &reslen);
-
- return res;
-}
-
-
-static void print_vars(FILE *f, TupleEvalContext *ctx, TupleEvalNode *node, gint start, gint end)
-{
- gint i;
-
- for (i = start; i <= end; i++) {
- TupleEvalVar *v = NULL;
- gchar *s = NULL;
- gint n = node->var[i];
-
- if (n >= 0) {
- v = ctx->variables[n];
- if (v) {
- s = v->name;
-
- if (v->type == TUPLE_VAR_CONST)
- fprintf(f, "(const)");
- else if (v->type == TUPLE_VAR_DEF)
- fprintf(f, "(def)");
- }
- }
-
- fprintf(f, "var[%d]=(%d),\"%s\" ", i, n, s);
- }
-}
-
-
-gint tuple_formatter_print(FILE *f, gint *level, TupleEvalContext *ctx, TupleEvalNode *expr)
+void tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
+ const Tuple * tuple, GString * out)
{
- TupleEvalNode *curr = expr;
-
- if (!expr) return -1;
-
- (*level)++;
-
- while (curr) {
- gint i;
- for (i = 0; i < *level; i++)
- fprintf(f, " ");
-
- switch (curr->opcode) {
- case OP_RAW:
- fprintf(f, "OP_RAW text=\"%s\"\n", curr->text);
- break;
-
- case OP_FIELD:
- fprintf(f, "OP_FIELD ");
- print_vars(f, ctx, curr, 0, 0);
- fprintf(f, "\n");
- break;
-
- case OP_EXISTS:
- fprintf(f, "OP_EXISTS ");
- print_vars(f, ctx, curr, 0, 0);
- fprintf(f, "\n");
- tuple_formatter_print(f, level, ctx, curr->children);
- break;
-
- case OP_DEF_STRING:
- fprintf(f, "OP_DEF_STRING ");
- fprintf(f, "\n");
- break;
-
- case OP_DEF_INT:
- fprintf(f, "OP_DEF_INT ");
- fprintf(f, "\n");
- break;
-
- case OP_EQUALS:
- fprintf(f, "OP_EQUALS ");
- print_vars(f, ctx, curr, 0, 1);
- fprintf(f, "\n");
- tuple_formatter_print(f, level, ctx, curr->children);
- break;
-
- case OP_NOT_EQUALS:
- fprintf(f, "OP_NOT_EQUALS ");
- print_vars(f, ctx, curr, 0, 1);
- fprintf(f, "\n");
- tuple_formatter_print(f, level, ctx, curr->children);
- break;
-
- case OP_IS_EMPTY:
- fprintf(f, "OP_IS_EMPTY ");
- print_vars(f, ctx, curr, 0, 0);
- fprintf(f, "\n");
- tuple_formatter_print(f, level, ctx, curr->children);
- break;
-
- default:
- fprintf(f, "Unimplemented opcode %d!\n", curr->opcode);
- break;
- }
-
- curr = curr->next;
- }
-
- (*level)--;
-
- return 0;
+ g_string_truncate (out, 0);
+ tuple_formatter_eval_do (ctx, expr, tuple, out);
}
diff --git a/src/libaudcore/tuple_compiler.h b/src/libaudcore/tuple_compiler.h
index 62a0729..9aaacbf 100644
--- a/src/libaudcore/tuple_compiler.h
+++ b/src/libaudcore/tuple_compiler.h
@@ -17,100 +17,27 @@
* The Audacious team does not consider modular code linking to
* Audacious or using our public API to be a derived work.
*/
-#ifndef AUDACIOUS_TUPLE_COMPILER_H
-#define AUDACIOUS_TUPLE_COMPILER_H
-
-#include <glib.h>
-#include <mowgli.h>
-#include "tuple.h"
-
-G_BEGIN_DECLS
-
-#define TUPLEZ_MAX_VARS (4)
-
-
-enum {
- OP_RAW = 0, /* plain text */
- OP_FIELD, /* a field/variable */
- OP_EXISTS,
- OP_DEF_STRING,
- OP_DEF_INT,
- OP_EQUALS,
- OP_NOT_EQUALS,
- OP_GT,
- OP_GTEQ,
- OP_LT,
- OP_LTEQ,
- OP_IS_EMPTY,
-
- OP_FUNCTION, /* function */
- OP_EXPRESSION /* additional registered expressions */
-};
-
-
-enum {
- TUPLE_VAR_FIELD = 0,
- TUPLE_VAR_CONST,
- TUPLE_VAR_DEF
-};
-
-
-/* Caching structure for deterministic functions
- */
-typedef struct {
- gchar *name;
- gboolean istemp; /* Scope of variable - TRUE = temporary */
- gint type; /* Type of variable, see VAR_* */
- gchar *defvals; /* Defined value ${=foo,bar} */
- gint defvali;
- TupleValueType ctype; /* Type of constant/def value */
-
- gint fieldidx; /* if >= 0: Index # of "pre-defined" Tuple fields */
- TupleValue *fieldref; /* Cached tuple field ref */
-} TupleEvalVar;
-
-
-typedef struct {
- gchar *name;
- gboolean isdeterministic;
- gchar *(*func)(Tuple *tuple, TupleEvalVar **argument);
-} TupleEvalFunc;
+#ifndef LIBAUDCORE_TUPLE_COMPILER_H
+#define LIBAUDCORE_TUPLE_COMPILER_H
-typedef struct _TupleEvalNode {
- gint opcode; /* operator, see OP_ enums */
- gint var[TUPLEZ_MAX_VARS]; /* tuple / global variable references */
- gboolean global[TUPLEZ_MAX_VARS];
- gchar *text; /* raw text, if any (OP_RAW) */
- gint function, expression; /* for OP_FUNCTION and OP_EXPRESSION */
- struct _TupleEvalNode *children, *next, *prev; /* children of this struct, and pointer to next node. */
-} TupleEvalNode;
-
-
-typedef struct {
- gint nvariables, nfunctions, nexpressions;
- TupleEvalVar **variables;
- TupleEvalFunc **functions;
+#include <glib.h>
+#include <libaudcore/tuple.h>
- /* Error context */
- gboolean iserror;
- gchar *errmsg;
-} TupleEvalContext;
+struct _TupleEvalNode;
+typedef struct _TupleEvalNode TupleEvalNode;
+struct _TupleEvalContext;
+typedef struct _TupleEvalContext TupleEvalContext;
TupleEvalContext * tuple_evalctx_new(void);
void tuple_evalctx_reset(TupleEvalContext *ctx);
void tuple_evalctx_free(TupleEvalContext *ctx);
-gint tuple_evalctx_add_var(TupleEvalContext *ctx, const gchar *name, const gboolean istemp, const gint type, const TupleValueType ctype);
void tuple_evalnode_free(TupleEvalNode *expr);
-gint tuple_formatter_print(FILE *f, gint *level, TupleEvalContext *ctx, TupleEvalNode *expr);
-TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, gchar *expr);
-gchar * tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
- const Tuple * tuple);
-
-
-G_END_DECLS
+TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, char *expr);
+void tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
+ const Tuple * tuple, GString * out);
-#endif /* AUDACIOUS_TUPLE_COMPILER_H */
+#endif /* LIBAUDCORE_TUPLE_COMPILER_H */
diff --git a/src/libaudcore/tuple_formatter.c b/src/libaudcore/tuple_formatter.c
index 4738ecb..04ea555 100644
--- a/src/libaudcore/tuple_formatter.c
+++ b/src/libaudcore/tuple_formatter.c
@@ -1,55 +1,28 @@
/*
- * Audacious
+ * tuple_formatter.c
* Copyright (c) 2007 William Pitcock
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <glib.h>
-#include <mowgli.h>
+#include <pthread.h>
+#include <string.h>
-#include "config.h"
-#include "tuple.h"
+#include "tuple_compiler.h"
#include "tuple_formatter.h"
-#include "audstrings.h"
-
-/*
- * TUPLE_USE_COMPILER:
- * Undefine this to disable usage of the Tuplez compiler implementation.
- * This may be useful for prototyping new features of the language.
- */
-#define TUPLE_USE_COMPILER
-
-/*
- * TUPLE_COMPILER_DEBUG:
- * Define this to debug the execution process of the Tuplez compiled
- * bytecode. This may be useful if bugs creep in.
- */
-#undef TUPLE_COMPILER_DEBUG
-
-#ifdef TUPLE_USE_COMPILER
-# include "tuple_compiler.h"
-static GStaticMutex tuplec_mutex = G_STATIC_MUTEX_INIT;
-#endif
-
-#ifdef _DEBUG
-# define _TRACE(fmt, ...) g_print("[tuple-fmt] %s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__);
-#else
-# define _TRACE(fmt, ...)
-#endif
/*
* the tuple formatter:
@@ -77,477 +50,22 @@ static GStaticMutex tuplec_mutex = G_STATIC_MUTEX_INIT;
* additionally, plugins can add additional instructions and functions!
*/
-typedef struct {
- Tuple *tuple;
- GString *str;
-} TupleFormatterContext;
-
-/* processes a construct, e.g. "${?artist:artist is defined}" would
- return "artist is defined" if artist is defined. */
-gchar *
-tuple_formatter_process_construct(Tuple *tuple, const gchar *string)
-{
- TupleFormatterContext *ctx;
- const gchar *iter;
- gchar *out;
- gint level = 0;
-
- g_return_val_if_fail(tuple != NULL, NULL);
- g_return_val_if_fail(string != NULL, NULL);
-
- ctx = g_new0(TupleFormatterContext, 1);
- ctx->str = g_string_new("");
-
- _TRACE("parsing <%s>", string);
-
- /* parsers are ugly */
- for (iter = string; *iter != '\0'; iter++)
- {
- /* if it's raw text, just copy the byte */
- if (*iter != '$' && *iter != '%' && *iter != '}' )
- {
- g_string_append_c(ctx->str, *iter);
- }
- else if (*iter == '}' && level > 0)
- {
- level--;
- }
- else if (g_str_has_prefix(iter, "${") == TRUE)
- {
- GString *expression = g_string_new("");
- GString *argument = g_string_new("");
- GString *sel = expression;
- gchar *result;
- level++;
-
- for (iter += 2; *iter != '\0'; iter++)
- {
- if (*iter == ':')
- {
- if (sel != argument)
- {
- sel = argument;
- continue;
- }
- else
- g_string_append_c(sel, *iter);
- continue;
- }
-
- if (g_str_has_prefix(iter, "${") == TRUE || g_str_has_prefix(iter, "%{") == TRUE)
- {
- if (sel == argument)
- {
- g_string_append_c(sel, *iter);
- level++;
- }
- }
- else if (*iter == '}')
- {
- level--;
- if (sel == argument)
- {
- if (level == 0)
- break;
- else
- g_string_append_c(sel, *iter);
- }
- else
- break;
- }
- else
- g_string_append_c(sel, *iter);
- }
-
- if (expression->len == 0)
- {
- g_string_free(expression, TRUE);
- g_string_free(argument, TRUE);
- continue;
- }
-
- result = tuple_formatter_process_expr(tuple, expression->str, argument->len ? argument->str : NULL);
- if (result != NULL)
- {
- g_string_append(ctx->str, result);
- g_free(result);
- }
-
- g_string_free(expression, TRUE);
- g_string_free(argument, TRUE);
-
- if (*iter == '\0')
- break;
- }
- else if (g_str_has_prefix(iter, "%{") == TRUE)
- {
- GString *expression = g_string_new("");
- GString *argument = g_string_new("");
- GString *sel = expression;
- gchar *result;
- level++;
-
- for (iter += 2; *iter != '\0'; iter++)
- {
- if (*iter == ':')
- {
- if (sel != argument)
- {
- sel = argument;
- continue;
- }
- else
- g_string_append_c(sel, *iter);
- continue;
- }
-
- if (g_str_has_prefix(iter, "${") == TRUE || g_str_has_prefix(iter, "%{") == TRUE)
- {
- if (sel == argument)
- {
- g_string_append_c(sel, *iter);
- level++;
- }
- }
- else if (*iter == '}')
- {
- level--;
- if (sel == argument)
- {
- if (level == 0)
- break;
- else
- g_string_append_c(sel, *iter);
- }
- else
- break;
- }
- else
- g_string_append_c(sel, *iter);
- }
-
- if (expression->len == 0)
- {
- g_string_free(expression, TRUE);
- g_string_free(argument, TRUE);
- continue;
- }
-
- result = tuple_formatter_process_function(tuple, expression->str, argument->len ? argument->str : NULL);
- if (result != NULL)
- {
- g_string_append(ctx->str, result);
- g_free(result);
- }
-
- g_string_free(expression, TRUE);
- g_string_free(argument, TRUE);
-
- if (*iter == '\0')
- break;
- }
- }
-
- out = g_strdup(ctx->str->str);
- g_string_free(ctx->str, TRUE);
- g_free(ctx);
-
- _TRACE("parsed <%s> as <%s>", string, out);
-
- return out;
-}
-
-static GList *tuple_formatter_expr_list = NULL;
-
-typedef struct {
- const gchar *name;
- gboolean (*func)(Tuple *tuple, const gchar *expression);
-} TupleFormatterExpression;
-
-/* processes an expression and optional argument pair. */
-gchar *
-tuple_formatter_process_expr(Tuple *tuple, const gchar *expression,
- const gchar *argument)
-{
- TupleFormatterExpression *expr = NULL;
- GList *iter;
-
- g_return_val_if_fail(tuple != NULL, NULL);
- g_return_val_if_fail(expression != NULL, NULL);
-
- for (iter = tuple_formatter_expr_list; iter != NULL; iter = iter->next)
- {
- TupleFormatterExpression *tmp = (TupleFormatterExpression *) iter->data;
-
- if (g_str_has_prefix(expression, tmp->name) == TRUE)
- {
- expr = tmp;
- expression += strlen(tmp->name);
- }
- }
-
- /* ${artist} */
- if (expr == NULL && argument == NULL)
- {
- TupleValueType type = tuple_get_value_type(tuple, -1, expression);
-
- switch(type)
- {
- case TUPLE_STRING:
- return g_strdup(tuple_get_string(tuple, -1, expression));
- break;
- case TUPLE_INT:
- return g_strdup_printf("%d", tuple_get_int(tuple, -1, expression));
- break;
- case TUPLE_UNKNOWN:
- default:
- return NULL;
- }
- }
- else if (expr != NULL)
- {
- if (expr->func(tuple, expression) == TRUE && argument != NULL)
- return tuple_formatter_process_construct(tuple, argument);
- }
-
- return NULL;
-}
-
-static GList *tuple_formatter_func_list = NULL;
-
-typedef struct {
- const gchar *name;
- gchar *(*func)(Tuple *tuple, gchar **args);
-} TupleFormatterFunction;
-
-/* processes a function */
-gchar *
-tuple_formatter_process_function(Tuple *tuple, const gchar *expression,
- const gchar *argument)
-{
- TupleFormatterFunction *expr = NULL;
- GList *iter;
-
- g_return_val_if_fail(tuple != NULL, NULL);
- g_return_val_if_fail(expression != NULL, NULL);
-
- for (iter = tuple_formatter_func_list; iter != NULL; iter = iter->next)
- {
- TupleFormatterFunction *tmp = (TupleFormatterFunction *) iter->data;
-
- if (g_str_has_prefix(expression, tmp->name) == TRUE)
- {
- expr = tmp;
- expression += strlen(tmp->name);
- }
- }
-
- if (expr != NULL)
- {
- gchar **args;
- gchar *ret;
-
- if (argument)
- args = g_strsplit(argument, ",", 10);
- else
- args = NULL;
-
- ret = expr->func(tuple, args);
-
- if (args)
- g_strfreev(args);
-
- return ret;
- }
-
- return NULL;
-}
-
-/* registers a formatter */
-void
-tuple_formatter_register_expression(const gchar *keyword,
- gboolean (*func)(Tuple *tuple, const gchar *argument))
-{
- TupleFormatterExpression *expr;
-
- g_return_if_fail(keyword != NULL);
- g_return_if_fail(func != NULL);
-
- expr = g_new0(TupleFormatterExpression, 1);
- expr->name = keyword;
- expr->func = func;
-
- tuple_formatter_expr_list = g_list_append(tuple_formatter_expr_list, expr);
-}
-
-/* registers a function */
-void
-tuple_formatter_register_function(const gchar *keyword,
- gchar *(*func)(Tuple *tuple, gchar **argument))
-{
- TupleFormatterFunction *expr;
-
- g_return_if_fail(keyword != NULL);
- g_return_if_fail(func != NULL);
-
- expr = g_new0(TupleFormatterFunction, 1);
- expr->name = keyword;
- expr->func = func;
-
- tuple_formatter_func_list = g_list_append(tuple_formatter_func_list, expr);
-}
-
-/* builtin-keyword: ${==arg1,arg2}, returns TRUE if <arg1> and <arg2> match.
- <arg1> and <arg2> can also be raw text, which should be enclosed in "double quotes". */
-static gboolean
-tuple_formatter_expression_match(Tuple *tuple, const gchar *expression)
-{
- gchar **args = g_strsplit(expression, ",", 2);
- gchar *arg1 = NULL, *arg2 = NULL;
- gint ret;
-
- if (args[0][0] == '\"') /* check if arg1 is "raw text" */
- {
- if ( strlen(args[0]) > 1 )
- {
- args[0][strlen(args[0]) - 1] = '\0';
- arg1 = g_strdup(&(args[0][1]));
- args[0][strlen(args[0]) - 1] = '\"';
- }
- else /* bad formatted arg */
- return FALSE;
- }
- else if (tuple_get_value_type(tuple, -1, args[0]) == TUPLE_UNKNOWN)
- {
- g_strfreev(args);
- return FALSE;
- }
-
- if (args[1][0] == '\"') /* check if arg2 is "raw text" */
- {
- if ( strlen(args[1]) > 1 )
- {
- args[1][strlen(args[1]) - 1] = '\0';
- arg2 = g_strdup(&(args[1][1]));
- args[1][strlen(args[1]) - 1] = '\"';
- }
- else /* bad formatted arg */
- return FALSE;
- }
- else if (tuple_get_value_type(tuple, -1, args[1]) == TUPLE_UNKNOWN)
- {
- g_strfreev(args);
- return FALSE;
- }
-
- if (!arg1) /* if arg1 is not "raw text", get the tuple value */
- {
- if (tuple_get_value_type(tuple, -1, args[0]) == TUPLE_STRING)
- arg1 = g_strdup(tuple_get_string(tuple, -1, args[0]));
- else
- arg1 = g_strdup_printf("%d", tuple_get_int(tuple, -1, args[0]));
- }
-
- if (!arg2) /* if arg2 is not "raw text", get the tuple value */
- {
- if (tuple_get_value_type(tuple, -1, args[1]) == TUPLE_STRING)
- arg2 = g_strdup(tuple_get_string(tuple, -1, args[1]));
- else
- arg2 = g_strdup_printf("%d", tuple_get_int(tuple, -1, args[1]));
- }
-
- ret = g_ascii_strcasecmp(arg1, arg2);
- g_free(arg1);
- g_free(arg2);
- g_strfreev(args);
-
- return ret ? FALSE : TRUE;
-}
-
-/* builtin-keyword: ${!=arg1,arg2}. returns TRUE if <arg1> and <arg2> don't match.
- <arg1> and <arg2> can also be raw text, which should be enclosed in "double quotes". */
-static gboolean
-tuple_formatter_expression_nonmatch(Tuple *tuple, const gchar *expression)
-{
- return tuple_formatter_expression_match(tuple, expression) ^ 1;
-}
-
-/* builtin-keyword: ${(empty)?}. returns TRUE if <arg> is empty. */
-static gboolean
-tuple_formatter_expression_empty(Tuple *tuple, const gchar *expression)
-{
- gboolean ret = TRUE;
- const gchar *iter;
- TupleValueType type = tuple_get_value_type(tuple, -1, expression);
-
- if (type == TUPLE_UNKNOWN)
- return TRUE;
-
- if (type == TUPLE_INT)
- return (tuple_get_int(tuple, -1, expression) == 0);
-
- iter = tuple_get_string(tuple, -1, expression);
- if (!iter)
- return TRUE;
-
- while (ret && *iter != '\0')
- {
- if (*iter == ' ')
- iter++;
- else
- ret = FALSE;
- }
-
- return ret;
-}
-
-/* builtin-keyword: ${?arg}, returns TRUE if <arg> exists. */
-static gboolean
-tuple_formatter_expression_exists(Tuple *tuple, const gchar *expression)
-{
- return !tuple_formatter_expression_empty(tuple, expression);
-}
-
-/* builtin function: %{audacious-version} */
-static gchar *
-tuple_formatter_function_version(Tuple *tuple, gchar **args)
-{
- return g_strdup(PACKAGE_NAME " " PACKAGE_VERSION);
-}
-
/*
* Compile a tuplez string and cache the result.
* This caches the result for the last string, so that
* successive calls are sped up.
- *
- * TODO/1.5: Implement a more efficient use of the compiler.
*/
-gchar * tuple_formatter_process_string (const Tuple * tuple, const gchar * string)
+
+char * tuple_formatter_process_string (const Tuple * tuple, const char * string)
{
- static gboolean initialized = FALSE;
- static gchar *last_string = NULL;
-#ifdef TUPLE_USE_COMPILER
+ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+ pthread_mutex_lock (& mutex);
+
+ static char *last_string = NULL;
static TupleEvalContext *last_ctx = NULL;
static TupleEvalNode *last_ev = NULL;
- gchar *result = NULL;
-#endif
- if (initialized == FALSE)
- {
- tuple_formatter_register_expression("?", tuple_formatter_expression_exists);
- tuple_formatter_register_expression("==", tuple_formatter_expression_match);
- tuple_formatter_register_expression("!=", tuple_formatter_expression_nonmatch);
- tuple_formatter_register_expression("(empty)?", tuple_formatter_expression_empty);
-
- tuple_formatter_register_function("audacious-version", tuple_formatter_function_version);
- initialized = TRUE;
- }
-
-#ifdef TUPLE_USE_COMPILER
- g_static_mutex_lock (& tuplec_mutex);
-
- if (last_string == NULL ||
- (last_string != NULL && strcmp(last_string, string)))
+ if (! last_string || strcmp (string, last_string))
{
g_free(last_string);
@@ -560,50 +78,17 @@ gchar * tuple_formatter_process_string (const Tuple * tuple, const gchar * strin
last_ctx = tuple_evalctx_new();
last_string = g_strdup(string);
last_ev = tuple_formatter_compile(last_ctx, last_string);
- if (last_ctx->iserror) {
- g_warning("[TuplezCC]: %s", last_ctx->errmsg);
- }
- if (!last_ev) {
- g_warning("[TuplezCC]: Compilation failed!\n");
- }
- }
-
-#ifdef TUPLE_COMPILER_DEBUG
- {
- gint level = 0;
-
- tuple_formatter_print(stderr, &level, last_ctx, last_ev);
}
-#endif
- tuple_evalctx_reset(last_ctx);
+ static GString * buf;
+ if (! buf)
+ buf = g_string_sized_new (255);
- result = tuple_formatter_eval(last_ctx, last_ev, tuple);
- if (last_ctx->iserror) {
- g_warning("[TuplezEV]: %s", last_ctx->errmsg);
- }
+ tuple_formatter_eval (last_ctx, last_ev, tuple, buf);
+ tuple_evalctx_reset (last_ctx);
- g_static_mutex_unlock (& tuplec_mutex);
+ char * result = str_get (buf->str);
+ pthread_mutex_unlock (& mutex);
return result;
-#else
- return tuple_formatter_process_construct(tuple, string);
-#endif
-}
-
-gchar * tuple_formatter_make_title_string (const Tuple * tuple, const gchar *
- string)
-{
- gchar *title = tuple_formatter_process_string(tuple, string);
-
- if (title == NULL || !title[0])
- {
- const char *filename = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
-
- g_free(title);
- title = g_strdup((filename != NULL) ? filename : "");
- string_cut_extension(title);
- }
-
- return title;
}
diff --git a/src/libaudcore/tuple_formatter.h b/src/libaudcore/tuple_formatter.h
index dc64e27..bb3052b 100644
--- a/src/libaudcore/tuple_formatter.h
+++ b/src/libaudcore/tuple_formatter.h
@@ -1,47 +1,28 @@
/*
- * Audacious
+ * tuple_formatter.h
* Copyright (c) 2007 William Pitcock
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#ifndef AUDACIOUS_TUPLE_FORMATTER_H
-#define AUDACIOUS_TUPLE_FORMATTER_H
+#ifndef LIBAUDCORE_TUPLE_FORMATTER_H
+#define LIBAUDCORE_TUPLE_FORMATTER_H
-#include <glib.h>
-#include <mowgli.h>
+#include <libaudcore/tuple.h>
-#include "tuple.h"
+/* returned string be released with str_unref() */
+char * tuple_formatter_process_string (const Tuple * tuple, const char * string);
-G_BEGIN_DECLS
-
-gchar * tuple_formatter_process_string (const Tuple * tuple, const gchar *
- string);
-gchar * tuple_formatter_make_title_string (const Tuple * tuple, const gchar *
- string);
-void tuple_formatter_register_expression(const gchar *keyword,
- gboolean (*func)(Tuple *tuple, const gchar *argument));
-void tuple_formatter_register_function(const gchar *keyword,
- gchar *(*func)(Tuple *tuple, gchar **argument));
-gchar *tuple_formatter_process_expr(Tuple *tuple, const gchar *expression,
- const gchar *argument);
-gchar *tuple_formatter_process_function(Tuple *tuple, const gchar *expression,
- const gchar *argument);
-gchar *tuple_formatter_process_construct(Tuple *tuple, const gchar *string);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_TUPLE_FORMATTER_H */
+#endif /* LIBAUDCORE_TUPLE_FORMATTER_H */
diff --git a/src/libaudcore/vfs.c b/src/libaudcore/vfs.c
index b05b47e..9d1dcbc 100644
--- a/src/libaudcore/vfs.c
+++ b/src/libaudcore/vfs.c
@@ -1,5 +1,7 @@
-/* Audacious
- * Copyright (c) 2006-2007 William Pitcock
+/*
+ * vfs.c
+ * Copyright 2006-2011 William Pitcock, Daniel Barkalow, Ralf Ertzinger,
+ * Yoshiki Yazawa, Matti Hämäläinen, and John Lindgren
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,6 +19,7 @@
* Audacious or using our public API to be a derived work.
*/
+#include <glib.h>
#include <inttypes.h>
#include "vfs.h"
@@ -27,7 +30,19 @@
#include <sys/types.h>
#include <string.h>
-#include <mowgli.h>
+#define VFS_SIG ('V' | ('F' << 8) | ('S' << 16))
+
+/**
+ * @struct _VFSFile
+ * #VFSFile objects describe an opened VFS stream, basically being
+ * similar in purpose as stdio FILE
+ */
+struct _VFSFile {
+ char * uri; /**< The URI of the stream */
+ VFSConstructor * base; /**< The base vtable used for VFS functions */
+ void * handle; /**< Opaque data used by the transport plugins */
+ int sig; /**< Used to detect invalid or twice-closed objects */
+};
/* Audacious core provides us with a function that looks up a VFS transport for
* a given URI scheme. Since this function will load plugins as needed, it can
@@ -35,93 +50,26 @@
* vfs_prepare must be called from the main thread to look up any needed
* transports beforehand. */
-typedef struct {
- VFSConstructor * transport;
- gboolean prepared;
-} LookupNode;
+static VFSConstructor * (* lookup_func) (const char * scheme) = NULL;
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static GThread * lookup_thread = NULL;
-static VFSConstructor * (* lookup_func) (const gchar * scheme) = NULL;
-static mowgli_patricia_t * lookup_table = NULL;
-
-void vfs_set_lookup_func (VFSConstructor * (* func) (const gchar * scheme))
+void vfs_set_lookup_func (VFSConstructor * (* func) (const char * scheme))
{
- g_static_mutex_lock (& mutex);
-
- lookup_thread = g_thread_self ();
lookup_func = func;
-
- if (! lookup_table)
- lookup_table = mowgli_patricia_create (NULL);
-
- g_static_mutex_unlock (& mutex);
}
-static VFSConstructor * do_lookup (const gchar * scheme, gboolean prepare)
-{
- g_return_val_if_fail (lookup_thread && lookup_func && lookup_table, NULL);
-
- LookupNode * node = mowgli_patricia_retrieve (lookup_table, scheme);
- if (! node)
- {
- node = g_slice_new (LookupNode);
- node->transport = NULL;
- node->prepared = FALSE;
- mowgli_patricia_add (lookup_table, scheme, node);
- }
-
- if (prepare)
- node->prepared = TRUE;
-
- /* vfs_prepare can only be called from the main thread. vfs_fopen can only
- * be called from the main thread unless vfs_prepare has been called. */
- if (prepare || ! node->prepared)
- g_return_val_if_fail (g_thread_self () == lookup_thread, NULL);
-
- /* do the actual lookup if needed, but only in the main thread */
- if (! node->transport && g_thread_self () == lookup_thread)
- {
- node->transport = lookup_func (scheme);
- /* This is normal for custom URI schemes.
- if (! node->transport)
- fprintf (stderr, "No transport plugin found for URI scheme \"%s\".\n", scheme); */
- }
-
- return node->transport;
-}
+static bool_t verbose = FALSE;
-void vfs_prepare (const gchar * scheme)
-{
- g_static_mutex_lock (& mutex);
- do_lookup (scheme, TRUE);
- g_static_mutex_unlock (& mutex);
-}
-
-void vfs_prepare_filename (const gchar * path)
-{
- const gchar * s = strstr (path, "://");
- g_return_if_fail (s);
- gchar scheme[s - path + 1];
- strncpy (scheme, path, s - path);
- scheme[s - path] = 0;
-
- vfs_prepare (scheme);
-}
-
-static gboolean verbose = FALSE;
-
-void vfs_set_verbose (gboolean set)
+void vfs_set_verbose (bool_t set)
{
verbose = set;
}
-static void logger (const gchar * format, ...)
+static void logger (const char * format, ...)
{
- static gchar last[256] = "";
- static gint repeated = 0;
+ static char last[256] = "";
+ static int repeated = 0;
- gchar buf[256];
+ char buf[256];
va_list args;
va_start (args, format);
@@ -137,12 +85,32 @@ static void logger (const gchar * format, ...)
printf ("VFS: (last message repeated %d times)\n", repeated);
repeated = 0;
}
-
+
fputs (buf, stdout);
strcpy (last, buf);
}
}
+VFSFile * vfs_new (const char * path, VFSConstructor * vtable, void * handle)
+{
+ VFSFile * file = g_slice_new (VFSFile);
+ file->uri = str_get (path);
+ file->base = vtable;
+ file->handle = handle;
+ file->sig = VFS_SIG;
+ return file;
+}
+
+const char * vfs_get_filename (VFSFile * file)
+{
+ return file->uri;
+}
+
+void * vfs_get_handle (VFSFile * file)
+{
+ return file->handle;
+}
+
/**
* Opens a stream from a VFS transport using one of the registered
* #VFSConstructor handlers.
@@ -152,40 +120,37 @@ static void logger (const gchar * format, ...)
* @return On success, a #VFSFile object representing the stream.
*/
VFSFile *
-vfs_fopen(const gchar * path,
- const gchar * mode)
+vfs_fopen(const char * path,
+ const char * mode)
{
g_return_val_if_fail (path && mode, NULL);
g_return_val_if_fail (lookup_func, NULL);
- VFSFile *file;
- VFSConstructor *vtable = NULL;
-
- const gchar * s = strstr (path, "://");
+ const char * s = strstr (path, "://");
g_return_val_if_fail (s, NULL);
- gchar scheme[s - path + 1];
+ char scheme[s - path + 1];
strncpy (scheme, path, s - path);
scheme[s - path] = 0;
- g_static_mutex_lock (& mutex);
- vtable = do_lookup (scheme, FALSE);
- g_static_mutex_unlock (& mutex);
-
+ VFSConstructor * vtable = lookup_func (scheme);
if (! vtable)
return NULL;
- file = vtable->vfs_fopen_impl(path, mode);
+ const gchar * sub;
+ uri_parse (path, NULL, NULL, & sub, NULL);
- if (verbose)
- logger ("VFS: <%p> open (mode %s) %s\n", file, mode, path);
+ gchar buf[sub - path + 1];
+ memcpy (buf, path, sub - path);
+ buf[sub - path] = 0;
- if (file == NULL)
+ void * handle = vtable->vfs_fopen_impl (buf, mode);
+ if (! handle)
return NULL;
- file->uri = g_strdup(path);
- file->base = vtable;
- file->ref = 1;
- file->sig = VFS_SIG;
+ VFSFile * file = vfs_new (path, vtable, handle);
+
+ if (verbose)
+ logger ("VFS: <%p> open (mode %s) %s\n", file, mode, path);
return file;
}
@@ -196,26 +161,23 @@ vfs_fopen(const gchar * path,
* @param file A #VFSFile object to destroy.
* @return -1 on failure, 0 on success.
*/
-gint
+int
vfs_fclose(VFSFile * file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
if (verbose)
- printf ("VFS: <%p> close\n", file);
+ logger ("VFS: <%p> close\n", file);
- gint ret = 0;
-
- if (--file->ref > 0)
- return -1;
+ int ret = 0;
if (file->base->vfs_fclose_impl(file) != 0)
ret = -1;
- g_free(file->uri);
+ str_unref (file->uri);
memset (file, 0, sizeof (VFSFile));
- g_free (file);
+ g_slice_free (VFSFile, file);
return ret;
}
@@ -229,15 +191,15 @@ vfs_fclose(VFSFile * file)
* @param file #VFSFile object that represents the VFS stream.
* @return The number of elements succesfully read.
*/
-gint64 vfs_fread (void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fread (void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, 0);
- gint64 readed = file->base->vfs_fread_impl (ptr, size, nmemb, file);
-
- if (verbose)
+ int64_t readed = file->base->vfs_fread_impl (ptr, size, nmemb, file);
+
+/* if (verbose)
logger ("VFS: <%p> read %"PRId64" elements of size %"PRId64" = "
- "%"PRId64"\n", file, nmemb, size, readed);
+ "%"PRId64"\n", file, nmemb, size, readed); */
return readed;
}
@@ -251,11 +213,11 @@ gint64 vfs_fread (void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
* @param file #VFSFile object that represents the VFS stream.
* @return The number of elements succesfully written.
*/
-gint64 vfs_fwrite (const void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fwrite (const void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, 0);
- gint64 written = file->base->vfs_fwrite_impl (ptr, size, nmemb, file);
+ int64_t written = file->base->vfs_fwrite_impl (ptr, size, nmemb, file);
if (verbose)
logger ("VFS: <%p> write %"PRId64" elements of size %"PRId64" = "
@@ -270,7 +232,7 @@ gint64 vfs_fwrite (const void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
* @param file #VFSFile object that represents the VFS stream.
* @return On success, a character. Otherwise, EOF.
*/
-gint
+int
vfs_getc(VFSFile *file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, EOF);
@@ -288,8 +250,8 @@ vfs_getc(VFSFile *file)
* @param file #VFSFile object that represents the VFS stream.
* @return On success, 0. Otherwise, EOF.
*/
-gint
-vfs_ungetc(gint c, VFSFile *file)
+int
+vfs_ungetc(int c, VFSFile *file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, EOF);
@@ -312,10 +274,10 @@ vfs_ungetc(gint c, VFSFile *file)
* @param whence Type of the seek: SEEK_CUR, SEEK_SET or SEEK_END.
* @return On success, 0. Otherwise, -1.
*/
-gint
+int
vfs_fseek(VFSFile * file,
- gint64 offset,
- gint whence)
+ int64_t offset,
+ int whence)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
@@ -349,12 +311,12 @@ vfs_rewind(VFSFile * file)
* @param file #VFSFile object that represents the VFS stream.
* @return On success, the current position. Otherwise, -1.
*/
-gint64
+int64_t
vfs_ftell(VFSFile * file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
- gint64 told = file->base->vfs_ftell_impl (file);
+ int64_t told = file->base->vfs_ftell_impl (file);
if (verbose)
logger ("VFS: <%p> tell = %"PRId64"\n", file, told);
@@ -368,12 +330,12 @@ vfs_ftell(VFSFile * file)
* @param file #VFSFile object that represents the VFS stream.
* @return On success, whether or not the VFS stream is at EOF. Otherwise, FALSE.
*/
-gboolean
+bool_t
vfs_feof(VFSFile * file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, TRUE);
- gboolean eof = file->base->vfs_feof_impl (file);
+ bool_t eof = file->base->vfs_feof_impl (file);
if (verbose)
logger ("VFS: <%p> eof = %s\n", file, eof ? "yes" : "no");
@@ -388,7 +350,7 @@ vfs_feof(VFSFile * file)
* @param length The length to truncate at.
* @return On success, 0. Otherwise, -1.
*/
-gint vfs_ftruncate (VFSFile * file, gint64 length)
+int vfs_ftruncate (VFSFile * file, int64_t length)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
@@ -404,11 +366,11 @@ gint vfs_ftruncate (VFSFile * file, gint64 length)
* @param file #VFSFile object that represents the VFS stream.
* @return On success, the size of the file in bytes. Otherwise, -1.
*/
-gint64 vfs_fsize (VFSFile * file)
+int64_t vfs_fsize (VFSFile * file)
{
g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
- gint64 size = file->base->vfs_fsize_impl (file);
+ int64_t size = file->base->vfs_fsize_impl (file);
if (verbose)
logger ("VFS: <%p> size = %"PRId64"\n", file, size);
@@ -423,8 +385,8 @@ gint64 vfs_fsize (VFSFile * file)
* @param field The string constant field name to get.
* @return On success, a copy of the value of the field. Otherwise, NULL.
*/
-gchar *
-vfs_get_metadata(VFSFile * file, const gchar * field)
+char *
+vfs_get_metadata(VFSFile * file, const char * field)
{
if (file == NULL)
return NULL;
@@ -441,18 +403,18 @@ vfs_get_metadata(VFSFile * file, const gchar * field)
* @param test A GFileTest to run.
* @return The result of g_file_test().
*/
-gboolean
-vfs_file_test(const gchar * path, GFileTest test)
+bool_t
+vfs_file_test(const char * path, int test)
{
if (strncmp (path, "file://", 7))
return FALSE; /* only local files are handled */
- gchar * path2 = uri_to_filename (path);
+ char * path2 = uri_to_filename (path);
if (path2 == NULL)
path2 = g_strdup(path);
- gboolean ret = g_file_test (path2, test);
+ bool_t ret = g_file_test (path2, test);
g_free(path2);
@@ -465,11 +427,11 @@ vfs_file_test(const gchar * path, GFileTest test)
* @param path A path to test.
* @return TRUE if the file is writeable, otherwise FALSE.
*/
-gboolean
-vfs_is_writeable(const gchar * path)
+bool_t
+vfs_is_writeable(const char * path)
{
struct stat info;
- gchar * realfn = uri_to_filename (path);
+ char * realfn = uri_to_filename (path);
if (stat(realfn, &info) == -1)
return FALSE;
@@ -480,34 +442,14 @@ vfs_is_writeable(const gchar * path)
}
/**
- * Increments the amount of references that are using this FD.
- * References are removed by calling vfs_fclose on the handle returned
- * from this function. If the amount of references reaches zero, then
- * the file will be closed.
- *
- * @param in The VFSFile handle to mark as duplicated.
- * @return VFSFile handle, which is same as given input.
- */
-VFSFile *
-vfs_dup(VFSFile *in)
-{
- g_return_val_if_fail(in != NULL, NULL);
-
- in->ref++;
-
- return in;
-}
-
-/**
* Tests if a path is remote uri.
*
* @param path A path to test.
* @return TRUE if the file is remote, otherwise FALSE.
*/
-gboolean
-vfs_is_remote(const gchar * path)
+bool_t vfs_is_remote (const char * path)
{
- return strncasecmp (path, "file://", 7) ? TRUE : FALSE;
+ return strncmp (path, "file://", 7) ? TRUE : FALSE;
}
/**
@@ -516,18 +458,7 @@ vfs_is_remote(const gchar * path)
* @param file A #VFSFile object to test.
* @return TRUE if the file is streaming, otherwise FALSE.
*/
-gboolean
-vfs_is_streaming(VFSFile *file)
+bool_t vfs_is_streaming (VFSFile * file)
{
- off_t size = 0;
-
- if (file == NULL)
- return FALSE;
-
- size = file->base->vfs_fsize_impl(file);
-
- if (size == -1)
- return TRUE;
- else
- return FALSE;
+ return (vfs_fsize (file) < 0);
}
diff --git a/src/libaudcore/vfs.h b/src/libaudcore/vfs.h
index b9d2cca..24179ea 100644
--- a/src/libaudcore/vfs.h
+++ b/src/libaudcore/vfs.h
@@ -1,6 +1,7 @@
/*
- * Audacious
- * Copyright (c) 2006-2010 Audacious team
+ * vfs.h
+ * Copyright 2006-2011 William Pitcock, Daniel Barkalow, Ralf Ertzinger,
+ * Yoshiki Yazawa, Matti Hämäläinen, and John Lindgren
*
* 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
@@ -24,35 +25,18 @@
* file access.
*/
-#ifndef AUDACIOUS_VFS_H
-#define AUDACIOUS_VFS_H
+#ifndef LIBAUDCORE_VFS_H
+#define LIBAUDCORE_VFS_H
-#include <glib.h>
-#include <stdio.h>
-#include <sys/types.h>
+#include <stdint.h>
-G_BEGIN_DECLS
+#include <libaudcore/core.h>
/** @struct VFSFile */
typedef struct _VFSFile VFSFile;
/** @struct VFSConstructor */
typedef const struct _VFSConstructor VFSConstructor;
-#define VFS_SIG ('V' | ('F' << 8) | ('S' << 16))
-
-/**
- * @struct _VFSFile
- * #VFSFile objects describe an opened VFS stream, basically being
- * similar in purpose as stdio FILE
- */
-struct _VFSFile {
- gchar *uri; /**< The URI of the stream */
- gpointer handle; /**< Opaque data used by the transport plugins */
- VFSConstructor *base; /**< The base vtable used for VFS functions */
- gint ref; /**< The amount of references that the VFSFile object has */
- gint sig; /**< Used to detect invalid or twice-closed objects */
-};
-
/**
* @struct _VFSConstructor
* #VFSConstructor objects contain the base vtables used for extrapolating
@@ -61,37 +45,37 @@ struct _VFSFile {
*/
struct _VFSConstructor {
/** A function pointer which points to a fopen implementation. */
- VFSFile * (* vfs_fopen_impl) (const gchar * filename, const gchar * mode);
+ void * (* vfs_fopen_impl) (const char * filename, const char * mode);
/** A function pointer which points to a fclose implementation. */
- gint (* vfs_fclose_impl) (VFSFile * file);
+ int (* vfs_fclose_impl) (VFSFile * file);
/** A function pointer which points to a fread implementation. */
- gint64 (* vfs_fread_impl) (void * ptr, gint64 size, gint64 nmemb, VFSFile *
+ int64_t (* vfs_fread_impl) (void * ptr, int64_t size, int64_t nmemb, VFSFile *
file);
/** A function pointer which points to a fwrite implementation. */
- gint64 (* vfs_fwrite_impl) (const void * ptr, gint64 size, gint64 nmemb,
+ int64_t (* vfs_fwrite_impl) (const void * ptr, int64_t size, int64_t nmemb,
VFSFile * file);
/** A function pointer which points to a getc implementation. */
- gint (* vfs_getc_impl) (VFSFile * stream);
+ int (* vfs_getc_impl) (VFSFile * stream);
/** A function pointer which points to an ungetc implementation. */
- gint (* vfs_ungetc_impl) (gint c, VFSFile * stream);
+ int (* vfs_ungetc_impl) (int c, VFSFile * stream);
/** A function pointer which points to a fseek implementation. */
- gint (* vfs_fseek_impl) (VFSFile * file, gint64 offset, gint whence);
+ int (* vfs_fseek_impl) (VFSFile * file, int64_t offset, int whence);
/** function pointer which points to a rewind implementation. */
void (* vfs_rewind_impl) (VFSFile * file);
/** A function pointer which points to a ftell implementation. */
- gint64 (* vfs_ftell_impl) (VFSFile * file);
+ int64_t (* vfs_ftell_impl) (VFSFile * file);
/** A function pointer which points to a feof implementation. */
- gboolean (* vfs_feof_impl) (VFSFile * file);
+ bool_t (* vfs_feof_impl) (VFSFile * file);
/** A function pointer which points to a ftruncate implementation. */
- gint (* vfs_ftruncate_impl) (VFSFile * file, gint64 length);
+ int (* vfs_ftruncate_impl) (VFSFile * file, int64_t length);
/** A function pointer which points to a fsize implementation. */
- gint64 (* vfs_fsize_impl) (VFSFile * file);
+ int64_t (* vfs_fsize_impl) (VFSFile * file);
/** A function pointer which points to a (stream) metadata fetching implementation. */
- gchar * (* vfs_get_metadata_impl) (VFSFile * file, const gchar * field);
+ char * (* vfs_get_metadata_impl) (VFSFile * file, const char * field);
};
#ifdef __GNUC__
@@ -100,60 +84,58 @@ struct _VFSConstructor {
#define WARN_RETURN
#endif
-VFSFile * vfs_fopen (const gchar * path, const gchar * mode) WARN_RETURN;
-VFSFile * vfs_dup (VFSFile * in) WARN_RETURN;
-gint vfs_fclose (VFSFile * file);
+VFSFile * vfs_new (const char * path, VFSConstructor * vtable, void * handle) WARN_RETURN;
+const char * vfs_get_filename (VFSFile * file) WARN_RETURN;
+void * vfs_get_handle (VFSFile * file) WARN_RETURN;
+
+VFSFile * vfs_fopen (const char * path, const char * mode) WARN_RETURN;
+int vfs_fclose (VFSFile * file);
-gint64 vfs_fread (void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fread (void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
WARN_RETURN;
-gint64 vfs_fwrite (const void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fwrite (const void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
WARN_RETURN;
-gint vfs_getc (VFSFile * stream) WARN_RETURN;
-gint vfs_ungetc (gint c, VFSFile * stream) WARN_RETURN;
-gchar * vfs_fgets (gchar * s, gint n, VFSFile * stream) WARN_RETURN;
-gboolean vfs_feof (VFSFile * file) WARN_RETURN;
-gint vfs_fprintf (VFSFile * stream, gchar const * format, ...) __attribute__
+int vfs_getc (VFSFile * stream) WARN_RETURN;
+int vfs_ungetc (int c, VFSFile * stream) WARN_RETURN;
+char * vfs_fgets (char * s, int n, VFSFile * stream) WARN_RETURN;
+bool_t vfs_feof (VFSFile * file) WARN_RETURN;
+int vfs_fprintf (VFSFile * stream, char const * format, ...) __attribute__
((__format__ (__printf__, 2, 3)));
-gint vfs_fseek (VFSFile * file, gint64 offset, gint whence) WARN_RETURN;
+int vfs_fseek (VFSFile * file, int64_t offset, int whence) WARN_RETURN;
void vfs_rewind (VFSFile * file);
-gint64 vfs_ftell (VFSFile * file) WARN_RETURN;
-gint64 vfs_fsize (VFSFile * file) WARN_RETURN;
-gint vfs_ftruncate (VFSFile * file, gint64 length) WARN_RETURN;
-
-gboolean vfs_fget_le16 (guint16 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_le32 (guint32 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_le64 (guint64 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_be16 (guint16 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_be32 (guint32 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_be64 (guint64 * value, VFSFile * stream) WARN_RETURN;
-
-gboolean vfs_fput_le16 (guint16 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_le32 (guint32 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_le64 (guint64 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_be16 (guint16 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_be32 (guint32 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_be64 (guint64 value, VFSFile * stream) WARN_RETURN;
-
-gboolean vfs_is_streaming (VFSFile * file) WARN_RETURN;
-gchar * vfs_get_metadata (VFSFile * file, const gchar * field) WARN_RETURN;
-
-gboolean vfs_file_test (const gchar * path, GFileTest test) WARN_RETURN;
-gboolean vfs_is_writeable (const gchar * path) WARN_RETURN;
-gboolean vfs_is_remote (const gchar * path) WARN_RETURN;
-
-void vfs_file_get_contents (const gchar * filename, void * * buf, gint64 *
+int64_t vfs_ftell (VFSFile * file) WARN_RETURN;
+int64_t vfs_fsize (VFSFile * file) WARN_RETURN;
+int vfs_ftruncate (VFSFile * file, int64_t length) WARN_RETURN;
+
+bool_t vfs_fget_le16 (uint16_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_le32 (uint32_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_le64 (uint64_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_be16 (uint16_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_be32 (uint32_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_be64 (uint64_t * value, VFSFile * stream) WARN_RETURN;
+
+bool_t vfs_fput_le16 (uint16_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_le32 (uint32_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_le64 (uint64_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_be16 (uint16_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_be32 (uint32_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_be64 (uint64_t value, VFSFile * stream) WARN_RETURN;
+
+bool_t vfs_is_streaming (VFSFile * file) WARN_RETURN;
+char * vfs_get_metadata (VFSFile * file, const char * field) WARN_RETURN;
+
+bool_t vfs_file_test (const char * path, int test) WARN_RETURN;
+bool_t vfs_is_writeable (const char * path) WARN_RETURN;
+bool_t vfs_is_remote (const char * path) WARN_RETURN;
+
+void vfs_file_get_contents (const char * filename, void * * buf, int64_t *
size);
-void vfs_set_lookup_func (VFSConstructor * (* func) (const gchar * scheme));
-void vfs_prepare (const gchar * scheme);
-void vfs_prepare_filename (const gchar * filename);
-
-void vfs_set_verbose (gboolean verbose);
+void vfs_set_lookup_func (VFSConstructor * (* func) (const char * scheme));
+void vfs_set_verbose (bool_t verbose);
#undef WARN_RETURN
-G_END_DECLS
-
-#endif /* AUDACIOUS_VFS_H */
+#endif /* LIBAUDCORE_VFS_H */
diff --git a/src/libaudcore/vfs_async.c b/src/libaudcore/vfs_async.c
index cb4acd5..52d7457 100644
--- a/src/libaudcore/vfs_async.c
+++ b/src/libaudcore/vfs_async.c
@@ -1,37 +1,38 @@
/*
- * Audacious
- * Copyright (c) 2010 William Pitcock <nenolod at dereferenced.org>
+ * vfs_async.c
+ * Copyright 2010 William Pitcock
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
+#include <glib.h>
+
#include <libaudcore/vfs_async.h>
typedef struct {
- gchar *filename;
+ char *filename;
void *buf;
- gint64 size;
+ int64_t size;
GThread *thread;
- gpointer userdata;
+ void * userdata;
VFSConsumer cons_f;
} VFSAsyncTrampoline;
-gboolean
-vfs_async_file_get_contents_trampoline(gpointer data)
+bool_t
+vfs_async_file_get_contents_trampoline(void * data)
{
VFSAsyncTrampoline *tr = data;
@@ -41,8 +42,8 @@ vfs_async_file_get_contents_trampoline(gpointer data)
return FALSE;
}
-gpointer
-vfs_async_file_get_contents_worker(gpointer data)
+void *
+vfs_async_file_get_contents_worker(void * data)
{
VFSAsyncTrampoline *tr = data;
@@ -54,10 +55,8 @@ vfs_async_file_get_contents_worker(gpointer data)
}
void
-vfs_async_file_get_contents(const gchar *filename, VFSConsumer cons_f, gpointer userdata)
+vfs_async_file_get_contents(const char *filename, VFSConsumer cons_f, void * userdata)
{
- vfs_prepare_filename (filename);
-
VFSAsyncTrampoline *tr;
tr = g_slice_new0(VFSAsyncTrampoline);
diff --git a/src/libaudcore/vfs_async.h b/src/libaudcore/vfs_async.h
index f4ee3c0..9503013 100644
--- a/src/libaudcore/vfs_async.h
+++ b/src/libaudcore/vfs_async.h
@@ -1,30 +1,29 @@
/*
- * Audacious
- * Copyright (c) 2010 William Pitcock <nenolod at dereferenced.org>
+ * vfs_async.c
+ * Copyright 2010 William Pitcock
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#ifndef AUDACIOUS_VFS_ASYNC_H
-#define AUDACIOUS_VFS_ASYNC_H
+#ifndef LIBAUDCORE_VFS_ASYNC_H
+#define LIBAUDCORE_VFS_ASYNC_H
#include <libaudcore/vfs.h>
-typedef gboolean (*VFSConsumer)(gpointer buf, gint64 size, gpointer userdata);
+typedef bool_t (*VFSConsumer)(void * buf, int64_t size, void * userdata);
-void vfs_async_file_get_contents(const gchar *filename, VFSConsumer cons_f, gpointer userdata);
+void vfs_async_file_get_contents(const char *filename, VFSConsumer cons_f, void * userdata);
#endif
diff --git a/src/libaudcore/vfs_buffer.c b/src/libaudcore/vfs_buffer.c
deleted file mode 100644
index 33240f3..0000000
--- a/src/libaudcore/vfs_buffer.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/* Audacious
- * Copyright (c) 2006-2007 William Pitcock
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-#include <string.h>
-#include "vfs.h"
-#include "vfs_buffer.h"
-
-
-static VFSFile *
-buffer_vfs_fopen_impl(const gchar * path,
- const gchar * mode)
-{
- return NULL;
-}
-
-static gint
-buffer_vfs_fclose_impl(VFSFile * file)
-{
- g_return_val_if_fail(file != NULL, -1);
-
- g_free(file->handle);
-
- return 0;
-}
-
-static gint64 buffer_vfs_fread_impl (void * i_ptr, gint64 size, gint64 nmemb,
- VFSFile * file)
-{
- VFSBuffer *handle;
- guchar *i;
- gsize read = 0;
- guchar *ptr = (guchar *) i_ptr;
-
- if (file == NULL)
- return 0;
-
- handle = (VFSBuffer *) file->handle;
-
- for (i = ptr; (gsize) (i - ptr) < nmemb * size &&
- (gsize) (i - ptr) <= handle->size;
- i++, handle->iter++)
- {
- *i = *handle->iter;
- read++;
- }
-
- return (read / size);
-}
-
-static gint64 buffer_vfs_fwrite_impl (const void * i_ptr, gint64 size, gint64
- nmemb, VFSFile * file)
-{
- VFSBuffer *handle;
- const guchar *i;
- gsize written = 0;
- const guchar *ptr = (const guchar *) i_ptr;
-
- if (file == NULL)
- return 0;
-
- handle = (VFSBuffer *) file->handle;
-
- for (i = ptr; (gsize) (i - ptr) < nmemb * size &&
- (gsize) (i - ptr) <= handle->size;
- i++, handle->iter++)
- {
- *handle->iter = *i;
- written++;
- }
-
- return (written / size);
-}
-
-static gint
-buffer_vfs_getc_impl(VFSFile *stream)
-{
- VFSBuffer *handle = (VFSBuffer *) stream->handle;
- gint c;
-
- c = *handle->iter;
- handle->iter++;
-
- return c;
-}
-
-static gint
-buffer_vfs_ungetc_impl(gint c, VFSFile *stream)
-{
- return -1;
-}
-
-static gint
-buffer_vfs_fseek_impl(VFSFile * file,
- gint64 offset,
- gint whence)
-{
- VFSBuffer *handle;
-
- if (file == NULL)
- return 0;
-
- handle = (VFSBuffer *) file->handle;
-
- switch(whence)
- {
- case SEEK_CUR:
- handle->iter = handle->iter + offset;
- break;
- case SEEK_END:
- handle->iter = handle->end;
- break;
- case SEEK_SET:
- default:
- handle->iter = handle->data + offset;
- break;
- }
-
- return 0;
-}
-
-static void
-buffer_vfs_rewind_impl(VFSFile * file)
-{
- VFSBuffer *handle;
-
- if (file == NULL)
- return;
-
- handle = (VFSBuffer *) file->handle;
-
- handle->iter = handle->data;
-}
-
-static gint64
-buffer_vfs_ftell_impl(VFSFile * file)
-{
- VFSBuffer *handle;
-
- if (file == NULL)
- return 0;
-
- handle = (VFSBuffer *) file->handle;
-
- return handle->iter - handle->data;
-}
-
-static gboolean
-buffer_vfs_feof_impl(VFSFile * file)
-{
- VFSBuffer *handle;
-
- if (file == NULL)
- return FALSE;
-
- handle = (VFSBuffer *) file->handle;
-
- return (gboolean) (handle->iter == handle->end);
-}
-
-static gint
-buffer_vfs_truncate_impl (VFSFile * file, gint64 size)
-{
- return 0;
-}
-
-static gint64
-buffer_vfs_fsize_impl(VFSFile * file)
-{
- VFSBuffer *handle;
-
- if (file == NULL)
- return -1;
-
- handle = (VFSBuffer *) file->handle;
-
- return (off_t) (handle->end - handle->data);
-}
-
-static VFSConstructor buffer_const = {
- buffer_vfs_fopen_impl,
- buffer_vfs_fclose_impl,
- buffer_vfs_fread_impl,
- buffer_vfs_fwrite_impl,
- buffer_vfs_getc_impl,
- buffer_vfs_ungetc_impl,
- buffer_vfs_fseek_impl,
- buffer_vfs_rewind_impl,
- buffer_vfs_ftell_impl,
- buffer_vfs_feof_impl,
- buffer_vfs_truncate_impl,
- buffer_vfs_fsize_impl,
- NULL
-};
-
-VFSFile *
-vfs_buffer_new(gpointer data, gsize size)
-{
- VFSFile *handle;
- VFSBuffer *buffer;
-
- g_return_val_if_fail(data != NULL, NULL);
- g_return_val_if_fail(size > 0, NULL);
-
- if ((handle = g_new0(VFSFile, 1)) == NULL)
- return NULL;
-
- if ((buffer = g_new0(VFSBuffer, 1)) == NULL)
- {
- g_free(handle);
- return NULL;
- }
-
- buffer->data = data;
- buffer->iter = data;
- buffer->end = (guchar *) data + size;
- buffer->size = size;
-
- handle->handle = buffer;
- handle->base = &buffer_const;
- handle->ref = 1;
- handle->sig = VFS_SIG;
-
- return handle;
-}
-
-VFSFile *
-vfs_buffer_new_from_string(gchar *str)
-{
- g_return_val_if_fail(str != NULL, NULL);
-
- return vfs_buffer_new(str, strlen(str));
-}
diff --git a/src/libaudcore/vfs_buffer.h b/src/libaudcore/vfs_buffer.h
deleted file mode 100644
index d505ef7..0000000
--- a/src/libaudcore/vfs_buffer.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Audacious
- * Copyright (c) 2006-2007 William Pitcock
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_VFS_BUFFER_H
-#define AUDACIOUS_VFS_BUFFER_H
-
-#include <glib.h>
-#include "vfs.h"
-
-G_BEGIN_DECLS
-
-/** Private data for the VFS memorybuffer class. */
-typedef struct {
- guchar *data; /**< The data inside the VFSBuffer. */
- guchar *iter; /**< The current position of the VFS buffer iterator. */
- guchar *end; /**< The end of the memory segment that the VFS buffer uses. */
- gsize size; /**< The size of the memory segment. */
-} VFSBuffer;
-
-/**
- * Creates a VFS buffer for reading/writing to a memory segment.
- *
- * @param data Pointer to data to use.
- * @param size Size of data to use.
- * @return A VFSFile handle for the memory segment's stream representation.
- */
-VFSFile *vfs_buffer_new(gpointer data, gsize size);
-
-/**
- * Creates a VFS buffer for reading/writing to a string.
- *
- * @param str String to use.
- * @return A VFSFile handle for the memory segment's stream representation.
- */
-VFSFile *vfs_buffer_new_from_string(gchar *str);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_VFS_BUFFER_H */
diff --git a/src/libaudcore/vfs_buffered_file.c b/src/libaudcore/vfs_buffered_file.c
deleted file mode 100644
index 064d697..0000000
--- a/src/libaudcore/vfs_buffered_file.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (c) 2006-2007 William Pitcock
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-#include <string.h>
-#include "vfs.h"
-#include "vfs_buffer.h"
-#include "vfs_buffered_file.h"
-
-VFSFile *
-buffered_file_vfs_fopen_impl(const gchar * path,
- const gchar * mode)
-{
- return NULL;
-}
-
-gint
-buffered_file_vfs_fclose_impl(VFSFile * file)
-{
- g_return_val_if_fail(file != NULL, -1);
-
- if (file->handle)
- {
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- if (handle->fd != NULL)
- vfs_fclose(handle->fd);
-
- vfs_fclose(handle->buffer);
- g_free(handle->mem);
- g_free(handle);
- }
-
- return 0;
-}
-
-gint64 buffered_file_vfs_fread_impl (void * i_ptr, gint64 size, gint64 nmemb,
- VFSFile * file)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- /* is this request within the buffered area, or should we switch to
- * an FD? --nenolod
- */
- if (handle->which == FALSE &&
- (vfs_ftell(handle->buffer)) + (size * nmemb) >
- ((VFSBuffer *) handle->buffer->handle)->size)
- {
- if (vfs_fseek (handle->fd, vfs_ftell (handle->buffer), SEEK_SET))
- return 0;
- handle->which = TRUE;
- }
-
- return vfs_fread(i_ptr, size, nmemb, handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gint64 buffered_file_vfs_fwrite_impl (const void * i_ptr, gint64 size, gint64
- nmemb, VFSFile * file)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- return vfs_fwrite(i_ptr, size, nmemb, handle->fd);
-}
-
-gint
-buffered_file_vfs_getc_impl(VFSFile *stream)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) stream->handle;
-
- /* is this request within the buffered area, or should we switch to
- * an FD? --nenolod
- */
- if ((vfs_ftell(handle->buffer)) + 1 >
- ((VFSBuffer *) handle->buffer->handle)->size)
- {
- if (vfs_fseek (handle->fd, vfs_ftell (handle->buffer), SEEK_SET))
- return EOF;
- handle->which = TRUE;
- }
-
- return vfs_getc(handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gint
-buffered_file_vfs_ungetc_impl(gint c, VFSFile *stream)
-{
- return -1;
-}
-
-gint
-buffered_file_vfs_fseek_impl(VFSFile * file,
- gint64 offset,
- gint whence)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- if (vfs_fseek (handle->buffer, offset, whence))
- return -1;
-
- switch(whence)
- {
- case SEEK_END:
- handle->which = TRUE;
- return vfs_fseek (handle->fd, offset, whence);
- case SEEK_CUR:
- if (vfs_ftell(handle->buffer) + offset >= ((VFSBuffer *) handle->buffer->handle)->size)
- {
- handle->which = TRUE;
- return vfs_fseek (handle->fd, offset, whence);
- }
- else
- {
- gint64 noff;
-
- handle->which = FALSE;
- noff = ((VFSBuffer *) handle->buffer->handle)->size - (vfs_ftell(handle->buffer) + offset);
- return vfs_fseek (handle->buffer, noff, whence);
- }
- break;
- case SEEK_SET:
- default:
- if (offset > ((VFSBuffer *) handle->buffer->handle)->size)
- {
- handle->which = TRUE;
- return vfs_fseek (handle->fd, offset, whence);
- }
- else
- {
- handle->which = FALSE;
- return vfs_fseek (handle->buffer, offset, whence);
- }
- break;
- }
- return 0;
-}
-
-void
-buffered_file_vfs_rewind_impl(VFSFile * file)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- vfs_rewind(handle->buffer);
- vfs_rewind(handle->fd);
- handle->which = FALSE;
-}
-
-gint64
-buffered_file_vfs_ftell_impl(VFSFile * file)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- return vfs_ftell(handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gboolean
-buffered_file_vfs_feof_impl(VFSFile * file)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- return vfs_feof(handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gint
-buffered_file_vfs_truncate_impl (VFSFile * file, gint64 size)
-{
- return 0;
-}
-
-gint64
-buffered_file_vfs_fsize_impl(VFSFile * file)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- return vfs_fsize(handle->fd);
-}
-
-gchar *
-buffered_file_vfs_metadata_impl(VFSFile * file, const gchar * field)
-{
- VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
- return vfs_get_metadata(handle->fd, field);
-}
-
-VFSConstructor buffered_file_const = {
- buffered_file_vfs_fopen_impl,
- buffered_file_vfs_fclose_impl,
- buffered_file_vfs_fread_impl,
- buffered_file_vfs_fwrite_impl,
- buffered_file_vfs_getc_impl,
- buffered_file_vfs_ungetc_impl,
- buffered_file_vfs_fseek_impl,
- buffered_file_vfs_rewind_impl,
- buffered_file_vfs_ftell_impl,
- buffered_file_vfs_feof_impl,
- buffered_file_vfs_truncate_impl,
- buffered_file_vfs_fsize_impl,
- buffered_file_vfs_metadata_impl
-};
-
-/**
- * Creates a VFSBufferedFile. VFSBufferedFile is read-only.
- *
- * @param uri URI locator pointing to the file to open.
- * @return A VFSFile handle for the VFSBufferedFile.
- **/
-VFSFile *
-vfs_buffered_file_new_from_uri(const gchar *uri)
-{
- VFSFile *handle;
- VFSBufferedFile *fd;
- gsize sz;
-
- g_return_val_if_fail(uri != NULL, NULL);
-
- handle = g_new0(VFSFile, 1);
- fd = g_new0(VFSBufferedFile, 1);
- fd->mem = g_malloc0(128000);
- fd->fd = vfs_fopen(uri, "rb");
-
- if (fd->fd == NULL)
- {
- g_free(fd->mem);
- g_free(fd);
- g_free(handle);
-
- return NULL;
- }
-
- sz = vfs_fread(fd->mem, 1, 128000, fd->fd);
- vfs_rewind(fd->fd);
-
- if (!sz)
- {
- vfs_fclose(fd->fd);
- g_free(fd->mem);
- g_free(fd);
- g_free(handle);
-
- return NULL;
- }
-
- fd->buffer = vfs_buffer_new(fd->mem, sz);
-
- handle->handle = fd;
- handle->base = &buffered_file_const;
- handle->uri = g_strdup(uri);
- handle->ref = 1;
- handle->sig = VFS_SIG;
-
- return handle;
-}
-
-/**
- * @bug Is this function used for anything? -- ccr
- * @deprecated This function probably should not be used.
- */
-VFSFile *
-vfs_buffered_file_release_live_fd(VFSFile *fd)
-{
- VFSBufferedFile *file = (VFSBufferedFile *) fd;
- VFSFile *out;
-
- g_return_val_if_fail(file != NULL, NULL);
-
- out = file->fd;
- file->fd = NULL;
-
- vfs_fclose(fd);
-
- return out;
-}
diff --git a/src/libaudcore/vfs_buffered_file.h b/src/libaudcore/vfs_buffered_file.h
deleted file mode 100644
index e1ec7d8..0000000
--- a/src/libaudcore/vfs_buffered_file.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Audacious
- * Copyright (c) 2006-2007 William Pitcock
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-/**
- * @file vfs_buffered_file.h
- * Functions and structures for buffered file access over VFS.
- */
-
-#ifndef AUDACIOUS_VFS_BUFFERED_FILE_H
-#define AUDACIOUS_VFS_BUFFERED_FILE_H
-
-#include <glib.h>
-#include "vfs.h"
-#include "vfs_buffer.h"
-
-G_BEGIN_DECLS
-
-/** Private data for the VFS memorybuffer class. */
-typedef struct {
- VFSFile *fd; /**< VFS handle for the active FD. */
- VFSFile *buffer; /**< First 32kb read from the FD. */
- gchar *mem; /**< The memory for the buffer. */
- gboolean which; /**< Whether to use the live FD or the buffer. */
-} VFSBufferedFile;
-
-VFSFile *vfs_buffered_file_new_from_uri(const gchar *uri);
-VFSFile *vfs_buffered_file_release_live_fd(VFSFile *fd);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_VFS_BUFFERED_FILE_H */
diff --git a/src/libaudcore/vfs_common.c b/src/libaudcore/vfs_common.c
index d554964..da1f4ea 100644
--- a/src/libaudcore/vfs_common.c
+++ b/src/libaudcore/vfs_common.c
@@ -1,4 +1,9 @@
-/* This program is free software; you can redistribute it and/or modify
+/*
+ * vfs_common.c
+ * Copyright 2006-2010 Tony Vroon, William Pitcock, Maciej Grela,
+ * Matti Hämäläinen, and John Lindgren
+ *
+ * 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; under version 3 of the License.
*
@@ -13,10 +18,15 @@
* The Audacious team does not consider modular code linking to
* Audacious or using our public API to be a derived work.
*/
-#include "vfs.h"
-#include <string.h>
-#include <stdlib.h>
+
+#include <glib.h>
#include <glib/gprintf.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "vfs.h"
+
/**
* @file vfs_common.c
* Common code for various VFS-stream related operations.
@@ -32,9 +42,9 @@
* @param stream A #VFSFile object representing the stream.
* @return The character on success, or EOF.
*/
-gint vfs_fputc(gint c, VFSFile *stream)
+int vfs_fputc(int c, VFSFile *stream)
{
- guchar uc = (guchar) c;
+ unsigned char uc = (unsigned char) c;
if (!vfs_fwrite(&uc, 1, 1, stream)) {
return EOF;
@@ -51,10 +61,10 @@ gint vfs_fputc(gint c, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return The string on success, or NULL.
*/
-gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream)
+char *vfs_fgets(char *s, int n, VFSFile *stream)
{
- gint c;
- register gchar *p;
+ int c;
+ register char *p;
if (n <= 0) return NULL;
@@ -83,7 +93,7 @@ gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return The amount of bytes written.
*/
-gint vfs_fputs(const gchar *s, VFSFile *stream)
+int vfs_fputs(const char *s, VFSFile *stream)
{
gsize n = strlen(s);
@@ -98,10 +108,10 @@ gint vfs_fputs(const gchar *s, VFSFile *stream)
* @param args A va_list of args to use.
* @return value The amount of bytes written.
*/
-gint vfs_vfprintf(VFSFile *stream, gchar const *format, va_list args)
+int vfs_vfprintf(VFSFile *stream, char const *format, va_list args)
{
- gchar *string;
- gint rv = g_vasprintf(&string, format, args);
+ char *string;
+ int rv = g_vasprintf(&string, format, args);
if (rv < 0) return rv;
rv = vfs_fputs(string, stream);
g_free(string);
@@ -116,10 +126,10 @@ gint vfs_vfprintf(VFSFile *stream, gchar const *format, va_list args)
* @param ... Optional list of arguments.
* @return The amount of bytes written.
*/
-gint vfs_fprintf(VFSFile *stream, gchar const *format, ...)
+int vfs_fprintf(VFSFile *stream, char const *format, ...)
{
va_list arg;
- gint rv;
+ int rv;
va_start(arg, format);
rv = vfs_vfprintf(stream, format, arg);
@@ -137,14 +147,14 @@ gint vfs_fprintf(VFSFile *stream, gchar const *format, ...)
* @param size Pointer to gsize variable that will hold the amount of
* read data e.g. filesize.
*/
-void vfs_file_get_contents (const gchar * filename, void * * buf, gint64 * size)
+void vfs_file_get_contents (const char * filename, void * * buf, int64_t * size)
{
* buf = NULL;
* size = 0;
VFSFile *fd;
gsize filled_size = 0, buf_size = 4096;
- guchar * ptr;
+ unsigned char * ptr;
if ((fd = vfs_fopen(filename, "rb")) == NULL)
return;
@@ -175,7 +185,7 @@ void vfs_file_get_contents (const gchar * filename, void * * buf, gint64 * size)
if (*buf == NULL)
goto close_handle;
- ptr = *buf + filled_size;
+ ptr = (unsigned char *) (* buf) + filled_size;
}
}
@@ -194,9 +204,9 @@ close_handle:
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fget_le16(guint16 *value, VFSFile *stream)
+bool_t vfs_fget_le16(uint16_t *value, VFSFile *stream)
{
- guint16 tmp;
+ uint16_t tmp;
if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
return FALSE;
*value = GUINT16_FROM_LE(tmp);
@@ -210,9 +220,9 @@ gboolean vfs_fget_le16(guint16 *value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fget_le32(guint32 *value, VFSFile *stream)
+bool_t vfs_fget_le32(uint32_t *value, VFSFile *stream)
{
- guint32 tmp;
+ uint32_t tmp;
if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
return FALSE;
*value = GUINT32_FROM_LE(tmp);
@@ -226,9 +236,9 @@ gboolean vfs_fget_le32(guint32 *value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fget_le64(guint64 *value, VFSFile *stream)
+bool_t vfs_fget_le64(uint64_t *value, VFSFile *stream)
{
- guint64 tmp;
+ uint64_t tmp;
if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
return FALSE;
*value = GUINT64_FROM_LE(tmp);
@@ -243,9 +253,9 @@ gboolean vfs_fget_le64(guint64 *value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fget_be16(guint16 *value, VFSFile *stream)
+bool_t vfs_fget_be16(uint16_t *value, VFSFile *stream)
{
- guint16 tmp;
+ uint16_t tmp;
if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
return FALSE;
*value = GUINT16_FROM_BE(tmp);
@@ -259,9 +269,9 @@ gboolean vfs_fget_be16(guint16 *value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fget_be32(guint32 *value, VFSFile *stream)
+bool_t vfs_fget_be32(uint32_t *value, VFSFile *stream)
{
- guint32 tmp;
+ uint32_t tmp;
if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
return FALSE;
*value = GUINT32_FROM_BE(tmp);
@@ -275,9 +285,9 @@ gboolean vfs_fget_be32(guint32 *value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fget_be64(guint64 *value, VFSFile *stream)
+bool_t vfs_fget_be64(uint64_t *value, VFSFile *stream)
{
- guint64 tmp;
+ uint64_t tmp;
if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
return FALSE;
*value = GUINT64_FROM_BE(tmp);
@@ -292,9 +302,9 @@ gboolean vfs_fget_be64(guint64 *value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fput_le16(guint16 value, VFSFile *stream)
+bool_t vfs_fput_le16(uint16_t value, VFSFile *stream)
{
- guint16 tmp = GUINT16_TO_LE(value);
+ uint16_t tmp = GUINT16_TO_LE(value);
return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
}
@@ -306,9 +316,9 @@ gboolean vfs_fput_le16(guint16 value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fput_le32(guint32 value, VFSFile *stream)
+bool_t vfs_fput_le32(uint32_t value, VFSFile *stream)
{
- guint32 tmp = GUINT32_TO_LE(value);
+ uint32_t tmp = GUINT32_TO_LE(value);
return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
}
@@ -320,9 +330,9 @@ gboolean vfs_fput_le32(guint32 value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fput_le64(guint64 value, VFSFile *stream)
+bool_t vfs_fput_le64(uint64_t value, VFSFile *stream)
{
- guint64 tmp = GUINT64_TO_LE(value);
+ uint64_t tmp = GUINT64_TO_LE(value);
return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
}
@@ -334,9 +344,9 @@ gboolean vfs_fput_le64(guint64 value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fput_be16(guint16 value, VFSFile *stream)
+bool_t vfs_fput_be16(uint16_t value, VFSFile *stream)
{
- guint16 tmp = GUINT16_TO_BE(value);
+ uint16_t tmp = GUINT16_TO_BE(value);
return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
}
@@ -348,9 +358,9 @@ gboolean vfs_fput_be16(guint16 value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fput_be32(guint32 value, VFSFile *stream)
+bool_t vfs_fput_be32(uint32_t value, VFSFile *stream)
{
- guint32 tmp = GUINT32_TO_BE(value);
+ uint32_t tmp = GUINT32_TO_BE(value);
return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
}
@@ -362,8 +372,8 @@ gboolean vfs_fput_be32(guint32 value, VFSFile *stream)
* @param stream A #VFSFile object representing the stream.
* @return TRUE if read was succesful, FALSE if there was an error.
*/
-gboolean vfs_fput_be64(guint64 value, VFSFile *stream)
+bool_t vfs_fput_be64(uint64_t value, VFSFile *stream)
{
- guint64 tmp = GUINT64_TO_BE(value);
+ uint64_t tmp = GUINT64_TO_BE(value);
return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
}
diff --git a/src/libaudgui/Makefile b/src/libaudgui/Makefile
index cbf6678..07f7eb4 100644
--- a/src/libaudgui/Makefile
+++ b/src/libaudgui/Makefile
@@ -2,22 +2,23 @@ LIB = ${LIB_PREFIX}audgui${LIB_SUFFIX}
LIB_MAJOR = 1
LIB_MINOR = 0
-SRCS = confirm.c \
+SRCS = about.c \
+ confirm.c \
effects-menu.c \
equalizer.c \
iface-menu.c \
infopopup.c \
infowin.c \
init.c \
+ jump-to-time.c \
list.c \
- ui_gtk.c \
+ playlists.c \
+ queue-manager.c \
ui_fileopener.c \
ui_urlopener.c \
ui_jumptotrack.c \
ui_jumptotrack_cache.c \
icons-stock.c \
- ui_about.c \
- ui_credits.c \
ui_playlist_manager.c \
urilist.c \
util.c
@@ -31,7 +32,6 @@ include ../../extra.mk
includesubdir = libaudgui
-CPPFLAGS += -DHAVE_CONFIG_H -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${LIBMCS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS}
-CFLAGS += -std=gnu99 ${LIB_CFLAGS}
-LDFLAGS += $(AUDLDFLAGS)
-LIBS += -lm ${GLIB_LIBS} ${MOWGLI_LIBS} ${GTK_LIBS} ${REGEX_LIBS} -L../libaudcore -laudcore
+CPPFLAGS += -DHAVE_CONFIG_H -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS}
+CFLAGS += ${LIB_CFLAGS}
+LIBS += -lm ${GLIB_LIBS} ${GTK_LIBS} ${REGEX_LIBS} -L../libaudcore -laudcore
diff --git a/src/libaudgui/about.c b/src/libaudgui/about.c
new file mode 100644
index 0000000..1121ce2
--- /dev/null
+++ b/src/libaudgui/about.c
@@ -0,0 +1,121 @@
+/*
+ * about.c
+ * Copyright 2011-2012 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <gtk/gtk.h>
+
+#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
+#include <audacious/misc.h>
+
+#include "config.h"
+#include "libaudgui-gtk.h"
+
+static GtkWidget * about_window;
+
+static GtkTextBuffer * create_text_buffer (const char * const * items)
+{
+ GString * string = g_string_new ("");
+
+ for (; items[0] || items[1]; items ++)
+ {
+ if (items[0])
+ g_string_append (string, _(items[0]));
+
+ g_string_append_c (string, '\n');
+ }
+
+ GtkTextBuffer * buffer = gtk_text_buffer_new (NULL);
+ gtk_text_buffer_set_text (buffer, string->str, string->len - 1);
+ g_string_free (string, TRUE);
+ return buffer;
+}
+
+static GtkWidget * create_credits_notebook (const char * const * credits,
+ const char * const * translators)
+{
+ const char * titles[2] = {_("Credits"), _("Translators")};
+ const char * const * lists[2] = {credits, translators};
+
+ GtkWidget * notebook = gtk_notebook_new ();
+
+ for (int i = 0; i < 2; i ++)
+ {
+ GtkWidget * label = gtk_label_new (titles[i]);
+
+ GtkWidget * scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) scrolled,
+ GTK_SHADOW_IN);
+ gtk_widget_set_size_request (scrolled, -1, 200);
+
+ GtkWidget * text = gtk_text_view_new_with_buffer (create_text_buffer (lists[i]));
+ gtk_text_view_set_editable ((GtkTextView *) text, FALSE);
+ gtk_text_view_set_cursor_visible ((GtkTextView *) text, FALSE);
+ gtk_text_view_set_left_margin ((GtkTextView *) text, 6);
+ gtk_text_view_set_right_margin ((GtkTextView *) text, 6);
+ gtk_container_add ((GtkContainer *) scrolled, text);
+
+ gtk_notebook_append_page ((GtkNotebook *) notebook, scrolled, label);
+ }
+
+ return notebook;
+}
+
+void audgui_show_about_window (void)
+{
+ if (about_window)
+ {
+ gtk_window_present ((GtkWindow *) about_window);
+ return;
+ }
+
+ const char * brief, * const * credits, * const * translators;
+ aud_get_audacious_credits (& brief, & credits, & translators);
+
+ about_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title ((GtkWindow *) about_window, _("About Audacious"));
+ gtk_window_set_resizable ((GtkWindow *) about_window, FALSE);
+ gtk_container_set_border_width ((GtkContainer *) about_window, 3);
+
+ audgui_destroy_on_escape (about_window);
+ g_signal_connect (about_window, "destroy", (GCallback) gtk_widget_destroyed,
+ & about_window);
+
+ GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+ gtk_container_add ((GtkContainer *) about_window, vbox);
+
+ char * name = g_strdup_printf ("%s/images/about-logo.png", aud_get_path
+ (AUD_PATH_DATA_DIR));
+ GtkWidget * image = gtk_image_new_from_file (name);
+ gtk_box_pack_start ((GtkBox *) vbox, image, FALSE, FALSE, 0);
+ g_free (name);
+
+ char * markup = g_strdup_printf (brief, VERSION);
+ GtkWidget * label = gtk_label_new (NULL);
+ gtk_label_set_markup ((GtkLabel *) label, markup);
+ gtk_label_set_justify ((GtkLabel *) label, GTK_JUSTIFY_CENTER);
+ gtk_box_pack_start ((GtkBox *) vbox, label, FALSE, FALSE, 0);
+ g_free (markup);
+
+ GtkWidget * exp = gtk_expander_new (_("Credits"));
+ GtkWidget * notebook = create_credits_notebook (credits, translators);
+ gtk_container_add ((GtkContainer *) exp, notebook);
+ gtk_box_pack_start ((GtkBox *) vbox, exp, TRUE, TRUE, 0);
+
+ gtk_widget_show_all (about_window);
+}
diff --git a/src/libaudgui/confirm.c b/src/libaudgui/confirm.c
index 2330c07..a919ff1 100644
--- a/src/libaudgui/confirm.c
+++ b/src/libaudgui/confirm.c
@@ -1,48 +1,58 @@
/*
- * libaudgui/confirm.c
+ * confirm.c
* Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <gtk/gtk.h>
-#include <audacious/audconfig.h>
#include <audacious/gtk-compat.h>
#include <audacious/i18n.h>
+#include <audacious/misc.h>
#include <audacious/playlist.h>
#include "config.h"
#include "libaudgui-gtk.h"
+static void no_confirm_cb (GtkToggleButton * toggle)
+{
+ aud_set_bool ("audgui", "no_confirm_playlist_delete", gtk_toggle_button_get_active (toggle));
+}
+
static void confirm_delete_cb (GtkButton * button, void * data)
{
- if (GPOINTER_TO_INT (data) < aud_playlist_count ())
- aud_playlist_delete (GPOINTER_TO_INT (data));
+ int list = aud_playlist_by_unique_id (GPOINTER_TO_INT (data));
+ if (list < 0)
+ return;
+
+ aud_playlist_delete (list);
+ if (list > 0)
+ aud_playlist_set_active (list - 1);
}
-void audgui_confirm_playlist_delete (gint playlist)
+void audgui_confirm_playlist_delete (int playlist)
{
GtkWidget * window, * vbox, * hbox, * label, * button;
- gchar * message;
+ char * message;
- if (aud_cfg->no_confirm_playlist_delete)
+ if (aud_get_bool ("audgui", "no_confirm_playlist_delete"))
{
aud_playlist_delete (playlist);
+ if (playlist > 0)
+ aud_playlist_set_active (playlist - 1);
return;
}
@@ -62,9 +72,11 @@ void audgui_confirm_playlist_delete (gint playlist)
gtk_box_pack_start ((GtkBox *) hbox, gtk_image_new_from_stock
(GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG), FALSE, FALSE, 0);
+ char * title = aud_playlist_get_title (playlist);
message = g_strdup_printf (_("Are you sure you want to close %s? If you "
"do, any changes made since the playlist was exported will be lost."),
- aud_playlist_get_title (playlist));
+ title);
+ str_unref (title);
label = gtk_label_new (message);
g_free (message);
gtk_label_set_line_wrap ((GtkLabel *) label, TRUE);
@@ -74,10 +86,9 @@ void audgui_confirm_playlist_delete (gint playlist)
hbox = gtk_hbox_new (FALSE, 6);
gtk_box_pack_start ((GtkBox *) vbox, hbox, FALSE, FALSE, 0);
- button = gtk_check_button_new_with_mnemonic (_("_Don't show this message "
- "again"));
+ button = gtk_check_button_new_with_mnemonic (_("_Don't show this message again"));
gtk_box_pack_start ((GtkBox *) hbox, button, FALSE, FALSE, 0);
- audgui_connect_check_box (button, & aud_cfg->no_confirm_playlist_delete);
+ g_signal_connect (button, "toggled", (GCallback) no_confirm_cb, NULL);
hbox = gtk_hbox_new (FALSE, 6);
gtk_box_pack_start ((GtkBox *) vbox, hbox, FALSE, FALSE, 0);
@@ -93,16 +104,16 @@ void audgui_confirm_playlist_delete (gint playlist)
gtk_widget_grab_default (button);
gtk_widget_grab_focus (button);
g_signal_connect ((GObject *) button, "clicked", (GCallback)
- confirm_delete_cb, GINT_TO_POINTER (playlist));
+ confirm_delete_cb, GINT_TO_POINTER (aud_playlist_get_unique_id (playlist)));
g_signal_connect_swapped ((GObject *) button, "clicked", (GCallback)
gtk_widget_destroy, window);
gtk_widget_show_all (window);
}
-static void rename_cb (GtkDialog * dialog, gint resp, void * list)
+static void rename_cb (GtkDialog * dialog, int resp, void * list)
{
- if (resp == GTK_RESPONSE_ACCEPT && GPOINTER_TO_INT (list) <
+ if (resp == GTK_RESPONSE_ACCEPT && GPOINTER_TO_INT (list) <
aud_playlist_count ())
aud_playlist_set_title (GPOINTER_TO_INT (list), gtk_entry_get_text
((GtkEntry *) g_object_get_data ((GObject *) dialog, "entry")));
@@ -110,7 +121,7 @@ static void rename_cb (GtkDialog * dialog, gint resp, void * list)
gtk_widget_destroy ((GtkWidget *) dialog);
}
-void audgui_show_playlist_rename (gint playlist)
+void audgui_show_playlist_rename (int playlist)
{
GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Rename Playlist"),
NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL,
@@ -118,7 +129,9 @@ void audgui_show_playlist_rename (gint playlist)
gtk_dialog_set_default_response ((GtkDialog *) dialog, GTK_RESPONSE_ACCEPT);
GtkWidget * entry = gtk_entry_new ();
- gtk_entry_set_text ((GtkEntry *) entry, aud_playlist_get_title (playlist));
+ char * title = aud_playlist_get_title (playlist);
+ gtk_entry_set_text ((GtkEntry *) entry, title);
+ str_unref (title);
gtk_entry_set_activates_default ((GtkEntry *) entry, TRUE);
gtk_box_pack_start ((GtkBox *) gtk_dialog_get_content_area ((GtkDialog *)
dialog), entry, FALSE, FALSE, 0);
diff --git a/src/libaudgui/effects-menu.c b/src/libaudgui/effects-menu.c
index 67cc118..cb8f968 100644
--- a/src/libaudgui/effects-menu.c
+++ b/src/libaudgui/effects-menu.c
@@ -1,22 +1,20 @@
/*
* effects-menu.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include "config.h"
@@ -27,9 +25,9 @@
#include "libaudgui-gtk.h"
-static gboolean watch_cb (PluginHandle * plugin, GtkCheckMenuItem * item)
+static bool_t watch_cb (PluginHandle * plugin, GtkCheckMenuItem * item)
{
- gboolean enabled = aud_plugin_get_enabled (plugin);
+ bool_t enabled = aud_plugin_get_enabled (plugin);
gtk_check_menu_item_set_active (item, enabled);
GtkWidget * settings = g_object_get_data ((GObject *) item, "settings");
@@ -54,12 +52,12 @@ static void settings_cb (GtkMenuItem * settings, PluginHandle * plugin)
if (! aud_plugin_get_enabled (plugin))
return;
- EffectPlugin * header = aud_plugin_get_header (plugin);
+ Plugin * header = aud_plugin_get_header (plugin);
g_return_if_fail (header != NULL);
header->configure ();
}
-static gboolean add_item_cb (PluginHandle * plugin, GtkWidget * menu)
+static bool_t add_item_cb (PluginHandle * plugin, GtkWidget * menu)
{
GtkWidget * item = gtk_check_menu_item_new_with_label (aud_plugin_get_name
(plugin));
@@ -91,3 +89,10 @@ GtkWidget * audgui_create_effects_menu (void)
menu);
return menu;
}
+
+GtkWidget * audgui_create_vis_menu (void)
+{
+ GtkWidget * menu = gtk_menu_new ();
+ aud_plugin_for_each (PLUGIN_TYPE_VIS, (PluginForEachFunc) add_item_cb, menu);
+ return menu;
+}
diff --git a/src/libaudgui/equalizer.c b/src/libaudgui/equalizer.c
index 6b642df..eab11f3 100644
--- a/src/libaudgui/equalizer.c
+++ b/src/libaudgui/equalizer.c
@@ -1,22 +1,20 @@
/*
- * libaudgui/equalizer.c
- * Copyright 2010 John Lindgren
+ * equalizer.c
+ * Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
/*
@@ -27,38 +25,23 @@
#include <math.h>
-#include <audacious/audconfig.h>
#include <audacious/i18n.h>
+#include <audacious/misc.h>
+#include <audacious/types.h>
#include <libaudcore/hook.h>
#include "config.h"
#include "libaudgui-gtk.h"
-typedef struct
-{
- GtkWidget * slider;
- gfloat * setting;
-}
-SliderPair;
-
static void on_off_cb (GtkToggleButton * on_off, void * unused)
{
- gboolean active = gtk_toggle_button_get_active (on_off);
-
- if (aud_cfg->equalizer_active != active)
- {
- aud_cfg->equalizer_active = active;
- hook_call ("equalizer changed", NULL);
- }
+ aud_set_bool (NULL, "equalizer_active", gtk_toggle_button_get_active (on_off));
}
static void on_off_update (void * unused, GtkWidget * on_off)
{
- gboolean active = gtk_toggle_button_get_active ((GtkToggleButton *) on_off);
-
- if (active != aud_cfg->equalizer_active)
- gtk_toggle_button_set_active ((GtkToggleButton *) on_off,
- aud_cfg->equalizer_active);
+ gtk_toggle_button_set_active ((GtkToggleButton *) on_off, aud_get_bool
+ (NULL, "equalizer_active"));
}
static GtkWidget * create_on_off (void)
@@ -67,50 +50,44 @@ static GtkWidget * create_on_off (void)
on_off = gtk_check_button_new_with_mnemonic (_("_Enable"));
g_signal_connect ((GObject *) on_off, "toggled", (GCallback) on_off_cb, NULL);
- hook_associate ("equalizer changed", (HookFunction) on_off_update, on_off);
+ hook_associate ("set equalizer_active", (HookFunction) on_off_update, on_off);
on_off_update (NULL, on_off);
return on_off;
}
-static void slider_cb (GtkRange * slider, gfloat * setting)
-{
- gint old = roundf (* setting);
- gint new = round (-gtk_range_get_value (slider));
-
- if (old != new)
- {
- * setting = new;
- hook_call ("equalizer changed", NULL);
- }
-}
-
-static void slider_update (void * unused, SliderPair * pair)
+static void slider_moved (GtkRange * slider, void * unused)
{
- gint old = round (-gtk_range_get_value ((GtkRange *) pair->slider));
- gint new = roundf (* pair->setting);
+ int band = GPOINTER_TO_INT (g_object_get_data ((GObject *) slider, "band"));
+ double value = round (-gtk_range_get_value (slider));
- if (old != new)
- gtk_range_set_value ((GtkRange *) pair->slider, -new);
+ if (band == -1)
+ aud_set_double (NULL, "equalizer_preamp", value);
+ else
+ aud_eq_set_band (band, value);
}
-static void set_slider_update (GtkWidget * slider, gfloat * setting)
+static void slider_update (void * unused, GtkRange * slider)
{
- SliderPair * pair = g_slice_new (SliderPair);
+ int band = GPOINTER_TO_INT (g_object_get_data ((GObject *) slider, "band"));
+ double value;
- pair->slider = slider;
- pair->setting = setting;
+ if (band == -1)
+ value = round (aud_get_double (NULL, "equalizer_preamp"));
+ else
+ value = round (aud_eq_get_band (band));
- hook_associate ("equalizer changed", (HookFunction) slider_update, pair);
- slider_update (NULL, pair);
+ g_signal_handlers_block_by_func (slider, (void *) slider_moved, NULL);
+ gtk_range_set_value (slider, -value);
+ g_signal_handlers_unblock_by_func (slider, (void *) slider_moved, NULL);
}
-static gchar * format_value (GtkScale * slider, gdouble value, void * unused)
+static char * format_value (GtkScale * slider, double value, void * unused)
{
- return g_strdup_printf ("%d", (gint) -value);
+ return g_strdup_printf ("%d", (int) -value);
}
-static GtkWidget * create_slider (const gchar * name, gfloat * setting)
+static GtkWidget * create_slider (const char * name, int band)
{
GtkWidget * vbox, * slider, * label;
@@ -120,16 +97,22 @@ static GtkWidget * create_slider (const gchar * name, gfloat * setting)
gtk_label_set_angle ((GtkLabel *) label, 90);
gtk_box_pack_start ((GtkBox *) vbox, label, TRUE, FALSE, 0);
- slider = gtk_vscale_new_with_range (-EQUALIZER_MAX_GAIN, EQUALIZER_MAX_GAIN,
- 1);
+ slider = gtk_vscale_new_with_range (-EQUALIZER_MAX_GAIN, EQUALIZER_MAX_GAIN, 1);
gtk_scale_set_draw_value ((GtkScale *) slider, TRUE);
gtk_scale_set_value_pos ((GtkScale *) slider, GTK_POS_BOTTOM);
gtk_widget_set_size_request (slider, -1, 120);
- g_signal_connect ((GObject *) slider, "format-value", (GCallback)
- format_value, NULL);
- g_signal_connect ((GObject *) slider, "value-changed", (GCallback)
- slider_cb, setting);
- set_slider_update (slider, setting);
+
+ g_object_set_data ((GObject *) slider, "band", GINT_TO_POINTER (band));
+ g_signal_connect ((GObject *) slider, "format-value", (GCallback) format_value, NULL);
+ g_signal_connect ((GObject *) slider, "value-changed", (GCallback) slider_moved, NULL);
+
+ slider_update (NULL, (GtkRange *) slider);
+
+ if (band == -1)
+ hook_associate ("set equalizer_preamp", (HookFunction) slider_update, slider);
+ else
+ hook_associate ("set equalizer_bands", (HookFunction) slider_update, slider);
+
gtk_box_pack_start ((GtkBox *) vbox, slider, FALSE, FALSE, 0);
return vbox;
@@ -137,11 +120,11 @@ static GtkWidget * create_slider (const gchar * name, gfloat * setting)
static GtkWidget * create_window (void)
{
- const gchar * const names[AUD_EQUALIZER_NBANDS] = {N_("31 Hz"), N_("63 Hz"),
+ const char * const names[AUD_EQUALIZER_NBANDS] = {N_("31 Hz"), N_("63 Hz"),
N_("125 Hz"), N_("250 Hz"), N_("500 Hz"), N_("1 kHz"), N_("2 kHz"),
N_("4 kHz"), N_("8 kHz"), N_("16 kHz")};
GtkWidget * window, * vbox, * hbox;
- gint i;
+ int i;
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title ((GtkWindow *) window, _("Equalizer"));
@@ -160,14 +143,11 @@ static GtkWidget * create_window (void)
hbox = gtk_hbox_new (FALSE, 6);
gtk_box_pack_start ((GtkBox *) vbox, hbox, FALSE, FALSE, 0);
- gtk_box_pack_start ((GtkBox *) hbox, create_slider (_("Preamp"),
- & aud_cfg->equalizer_preamp), FALSE, FALSE, 0);
-
+ gtk_box_pack_start ((GtkBox *) hbox, create_slider (_("Preamp"), -1), FALSE, FALSE, 0);
gtk_box_pack_start ((GtkBox *) hbox, gtk_vseparator_new (), FALSE, FALSE, 0);
for (i = 0; i < AUD_EQUALIZER_NBANDS; i ++)
- gtk_box_pack_start ((GtkBox *) hbox, create_slider (_(names[i]),
- & aud_cfg->equalizer_bands[i]), FALSE, FALSE, 0);
+ gtk_box_pack_start ((GtkBox *) hbox, create_slider (_(names[i]), i), FALSE, FALSE, 0);
gtk_widget_show_all (vbox);
return window;
@@ -185,6 +165,13 @@ void audgui_show_equalizer_window (void)
void audgui_hide_equalizer_window (void)
{
- if (equalizer_window != NULL)
- gtk_widget_hide (equalizer_window);
+ if (! equalizer_window)
+ return;
+
+ hook_dissociate ("set equalizer_active", (HookFunction) on_off_update);
+ hook_dissociate ("set equalizer_bands", (HookFunction) slider_update);
+ hook_dissociate ("set equalizer_preamp", (HookFunction) slider_update);
+
+ gtk_widget_destroy (equalizer_window);
+ equalizer_window = NULL;
}
diff --git a/src/libaudgui/icons-stock.c b/src/libaudgui/icons-stock.c
index fd25c94..6ec4e84 100644
--- a/src/libaudgui/icons-stock.c
+++ b/src/libaudgui/icons-stock.c
@@ -1,34 +1,32 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2008 Audacious development team.
+/*
+ * icons-stock.c
+ * Copyright 2007-2010 Michael Färber and John Lindgren
*
- * 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; under version 3 of the License.
+ * 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; under version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
-
-#include "icons-stock.h"
-
-#include <gdk/gdk.h>
#include <gtk/gtk.h>
-
#include <audacious/misc.h>
-static void load_stock_icon (gchar * id, gchar * filename,
+#include "libaudgui.h"
+
+static void load_stock_icon (char * id, char * filename,
GtkIconFactory * iconfactory)
{
- gchar * path = g_strdup_printf ("%s/images/%s",
+ char * path = g_strdup_printf ("%s/images/%s",
aud_get_path (AUD_PATH_DATA_DIR), filename);
GdkPixbuf * pixbuf = gdk_pixbuf_new_from_file (path, NULL);
@@ -61,4 +59,3 @@ audgui_register_stock_icons(void)
gtk_icon_factory_add_default( iconfactory );
g_object_unref( iconfactory );
}
-
diff --git a/src/libaudgui/icons-stock.h b/src/libaudgui/icons-stock.h
deleted file mode 100644
index f1f32f6..0000000
--- a/src/libaudgui/icons-stock.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007 Audacious development team.
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_ICONS_STOCK_H
-#define AUDACIOUS_ICONS_STOCK_H
-
-void audgui_register_stock_icons(void);
-
-/* this header contains macro defines for Audacious stock icons */
-
-#define AUD_STOCK_PLAYLIST "aud-playlist"
-#define AUD_STOCK_PLUGIN "aud-plugin"
-#define AUD_STOCK_QUEUETOGGLE "aud-queuetoggle"
-#define AUD_STOCK_RANDOMIZEPL "aud-randomizepl"
-
-#endif /* AUDACIOUS_ICONS_STOCK_H */
diff --git a/src/libaudgui/iface-menu.c b/src/libaudgui/iface-menu.c
index 24b2834..3e36cb4 100644
--- a/src/libaudgui/iface-menu.c
+++ b/src/libaudgui/iface-menu.c
@@ -2,21 +2,19 @@
* iface-menu.c
* Copyright 2010 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <gtk/gtk.h>
@@ -36,7 +34,7 @@ typedef struct {
GSList * group;
} IfaceMenuAddState;
-static gboolean add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state)
+static bool_t add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state)
{
GtkWidget * item = gtk_radio_menu_item_new_with_label (state->group,
aud_plugin_get_name (plugin));
diff --git a/src/libaudgui/infopopup.c b/src/libaudgui/infopopup.c
index f9c42eb..c649605 100644
--- a/src/libaudgui/infopopup.c
+++ b/src/libaudgui/infopopup.c
@@ -1,30 +1,25 @@
/*
- * libaudgui/infopopup.c
- * Copyright 2006 William Pitcock, Tony Vroon, George Averill, Giacomo Lozito,
- * Derek Pomery and Yoshiki Yazawa.
- * Copyright 2010 John Lindgren
+ * infopopup.c
+ * Copyright 2006-2011 William Pitcock, Giacomo Lozito, and John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <gtk/gtk.h>
#include <string.h>
-#include <audacious/audconfig.h>
#include <audacious/drct.h>
#include <audacious/gtk-compat.h>
#include <audacious/i18n.h>
@@ -35,20 +30,9 @@
#include "libaudgui.h"
#include "libaudgui-gtk.h"
-static const gchar * get_default_artwork (void)
-{
- static gchar * path = NULL;
- if (! path)
- path = g_strdup_printf ("%s/images/audio.png",
- aud_get_path (AUD_PATH_DATA_DIR));
- return path;
-}
-
-#define DEFAULT_ARTWORK (get_default_artwork ())
-
static GtkWidget * infopopup = NULL;
-static void infopopup_entry_set_text (const gchar * entry_name, const gchar *
+static void infopopup_entry_set_text (const char * entry_name, const char *
text)
{
GtkWidget * widget = g_object_get_data ((GObject *) infopopup, entry_name);
@@ -57,62 +41,37 @@ static void infopopup_entry_set_text (const gchar * entry_name, const gchar *
gtk_label_set_text ((GtkLabel *) widget, text);
}
-static void infopopup_entry_set_image (const gchar * entry_name, const gchar *
- text)
+static void infopopup_entry_set_image (int playlist, int entry)
{
- GtkWidget * widget = g_object_get_data ((GObject *) infopopup, entry_name);
- GdkPixbuf * pixbuf;
- gint width, height;
- gfloat aspect;
+ GtkWidget * widget = g_object_get_data ((GObject *) infopopup, "image");
+ g_return_if_fail (widget);
- pixbuf = gdk_pixbuf_new_from_file (text, NULL);
- g_return_if_fail (pixbuf != NULL);
+ GdkPixbuf * pixbuf = audgui_pixbuf_for_entry (playlist, entry);
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
-
- if (strcmp (DEFAULT_ARTWORK, text))
+ if (pixbuf)
{
- GdkPixbuf * pixbuf2;
-
- aspect = height / (gfloat) width;
-
- if (aspect > 1)
- {
- height = aud_cfg->filepopup_pixelsize * aspect;
- width = aud_cfg->filepopup_pixelsize;
- }
- else
- {
- height = aud_cfg->filepopup_pixelsize;
- width = aud_cfg->filepopup_pixelsize / aspect;
- }
-
- pixbuf2 = gdk_pixbuf_scale_simple (pixbuf, width, height,
- GDK_INTERP_BILINEAR);
+ audgui_pixbuf_scale_within (& pixbuf, 96);
+ gtk_image_set_from_pixbuf ((GtkImage *) widget, pixbuf);
g_object_unref (pixbuf);
- pixbuf = pixbuf2;
}
-
- gtk_image_set_from_pixbuf ((GtkImage *) widget, pixbuf);
- g_object_unref (pixbuf);
+ else
+ gtk_image_clear ((GtkImage *) widget);
}
-static gboolean infopopup_progress_cb (void * unused)
+static bool_t infopopup_progress_cb (void * unused)
{
GtkWidget * progressbar = g_object_get_data ((GObject *) infopopup,
"progressbar");
- gchar * tooltip_file = g_object_get_data ((GObject *) infopopup, "file");
- gint length = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
+ char * tooltip_file = g_object_get_data ((GObject *) infopopup, "file");
+ int length = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
"length"));
- gint playlist, entry, time;
- const gchar * filename;
- gchar * progress_time;
+ int playlist, entry, time;
+ char * progress_time;
g_return_val_if_fail (tooltip_file != NULL, FALSE);
g_return_val_if_fail (length > 0, FALSE);
- if (! aud_cfg->filepopup_showprogressbar || ! aud_drct_get_playing ())
+ if (! aud_get_bool (NULL, "filepopup_showprogressbar") || ! aud_drct_get_playing ())
goto HIDE;
playlist = aud_playlist_get_playing ();
@@ -125,14 +84,17 @@ static gboolean infopopup_progress_cb (void * unused)
if (entry == -1)
goto HIDE;
- filename = aud_playlist_entry_get_filename (playlist, entry);
-
+ char * filename = aud_playlist_entry_get_filename (playlist, entry);
if (strcmp (filename, tooltip_file))
+ {
+ str_unref (filename);
goto HIDE;
+ }
+ str_unref (filename);
time = aud_drct_get_time ();
gtk_progress_bar_set_fraction ((GtkProgressBar *) progressbar, time /
- (gfloat) length);
+ (float) length);
progress_time = g_strdup_printf ("%d:%02d", time / 60000, (time / 1000) % 60);
gtk_progress_bar_set_text ((GtkProgressBar *) progressbar, progress_time);
g_free (progress_time);
@@ -154,7 +116,7 @@ static void infopopup_progress_init (void)
static void infopopup_progress_start (void)
{
- gint sid = g_timeout_add (500, (GSourceFunc) infopopup_progress_cb, NULL);
+ int sid = g_timeout_add (500, (GSourceFunc) infopopup_progress_cb, NULL);
g_object_set_data ((GObject *) infopopup, "progress_sid", GINT_TO_POINTER
(sid));
@@ -162,7 +124,7 @@ static void infopopup_progress_start (void)
static void infopopup_progress_stop (void)
{
- gint sid = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
+ int sid = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
"progress_sid"));
if (! sid)
@@ -174,12 +136,12 @@ static void infopopup_progress_stop (void)
}
static void infopopup_add_category (GtkWidget * infopopup_data_table,
- const gchar * category, const gchar * header_data, const gchar * label_data,
- gint position)
+ const char * category, const char * header_data, const char * label_data,
+ int position)
{
GtkWidget * infopopup_data_info_header = gtk_label_new ("");
GtkWidget * infopopup_data_info_label = gtk_label_new ("");
- gchar * markup;
+ char * markup;
gtk_misc_set_alignment ((GtkMisc *) infopopup_data_info_header, 0, 0.5);
gtk_misc_set_alignment ((GtkMisc *) infopopup_data_info_label, 0, 0.5);
@@ -219,11 +181,7 @@ static void infopopup_create (void)
infopopup_data_image = gtk_image_new ();
gtk_misc_set_alignment ((GtkMisc *) infopopup_data_image, 0.5, 0);
- gtk_image_set_from_file ((GtkImage *) infopopup_data_image, DEFAULT_ARTWORK);
-
- g_object_set_data ((GObject *) infopopup, "image_artwork",
- infopopup_data_image);
- g_object_set_data ((GObject *) infopopup, "last_artwork", NULL);
+ g_object_set_data ((GObject *) infopopup, "image", infopopup_data_image);
gtk_box_pack_start ((GtkBox *) infopopup_hbox, infopopup_data_image, FALSE,
FALSE, 0);
@@ -267,21 +225,15 @@ static void infopopup_create (void)
gtk_widget_show_all (infopopup_hbox);
}
-#if 0
-static void infopopup_destroy (void)
+/* calls str_unref() on <text> */
+static void infopopup_update_data (char * text, const char * label_data,
+ const char * header_data)
{
- infopopup_progress_stop (infopopup);
- g_free (g_object_get_data ((GObject *) infopopup, "last_artwork"));
- gtk_widget_destroy (infopopup);
-}
-#endif
-
-static void infopopup_update_data (const gchar * text, const gchar * label_data,
- const gchar * header_data)
-{
- if (text != NULL)
+ if (text)
{
infopopup_entry_set_text (label_data, text);
+ str_unref (text);
+
gtk_widget_show ((GtkWidget *) g_object_get_data ((GObject *) infopopup,
header_data));
gtk_widget_show ((GtkWidget *) g_object_get_data ((GObject *) infopopup,
@@ -311,14 +263,12 @@ static void infopopup_clear (void)
gtk_window_resize ((GtkWindow *) infopopup, 1, 1);
}
-static void infopopup_show (const gchar * filename, const Tuple * tuple,
- const gchar * title)
+static void infopopup_show (int playlist, int entry, const char * filename,
+ const Tuple * tuple, const char * title)
{
- gint x, y, h, w;
- gchar * last_artwork;
- gint length, value;
- gchar * tmp;
- const gchar * title2;
+ int x, y, h, w;
+ int length, value;
+ char * tmp;
if (infopopup == NULL)
infopopup_create ();
@@ -329,49 +279,30 @@ static void infopopup_show (const gchar * filename, const Tuple * tuple,
g_object_set_data ((GObject *) infopopup, "file", g_strdup (filename));
/* use title from tuple if possible */
- if ((title2 = tuple_get_string (tuple, FIELD_TITLE, NULL)))
- title = title2;
+ char * title2 = tuple_get_str (tuple, FIELD_TITLE, NULL);
+ if (! title2)
+ title2 = str_get (title);
- infopopup_update_data (title, "label_title", "header_title");
- infopopup_update_data (tuple_get_string (tuple, FIELD_ARTIST, NULL),
- "label_artist", "header_artist");
- infopopup_update_data (tuple_get_string (tuple, FIELD_ALBUM, NULL),
- "label_album", "header_album");
- infopopup_update_data (tuple_get_string (tuple, FIELD_GENRE, NULL),
- "label_genre", "header_genre");
+ infopopup_update_data (title2, "label_title", "header_title");
+ infopopup_update_data (tuple_get_str (tuple, FIELD_ARTIST, NULL), "label_artist", "header_artist");
+ infopopup_update_data (tuple_get_str (tuple, FIELD_ALBUM, NULL), "label_album", "header_album");
+ infopopup_update_data (tuple_get_str (tuple, FIELD_GENRE, NULL), "label_genre", "header_genre");
length = tuple_get_int (tuple, FIELD_LENGTH, NULL);
- tmp = (length > 0) ? g_strdup_printf ("%d:%02d", length / 60000, length /
- 1000 % 60) : NULL;
+ tmp = (length > 0) ? str_printf ("%d:%02d", length / 60000, length / 1000 % 60) : NULL;
infopopup_update_data (tmp, "label_tracklen", "header_tracklen");
- g_free (tmp);
g_object_set_data ((GObject *) infopopup, "length" , GINT_TO_POINTER (length));
value = tuple_get_int (tuple, FIELD_YEAR, NULL);
- tmp = (value > 0) ? g_strdup_printf ("%d", value) : NULL;
+ tmp = (value > 0) ? str_printf ("%d", value) : NULL;
infopopup_update_data (tmp, "label_year", "header_year");
- g_free (tmp);
value = tuple_get_int (tuple, FIELD_TRACK_NUMBER, NULL);
- tmp = (value > 0) ? g_strdup_printf ("%d", value) : NULL;
+ tmp = (value > 0) ? str_printf ("%d", value) : NULL;
infopopup_update_data (tmp, "label_tracknum", "header_tracknum");
- g_free (tmp);
- last_artwork = g_object_get_data ((GObject *) infopopup, "last_artwork");
- tmp = aud_get_associated_image_file (filename);
-
- if (tmp == NULL)
- tmp = g_strdup (DEFAULT_ARTWORK);
-
- if (last_artwork == NULL || strcmp (tmp, last_artwork))
- {
- infopopup_entry_set_image ("image_artwork", tmp);
- g_free (last_artwork);
- g_object_set_data ((GObject *) infopopup, "last_artwork", tmp);
- }
- else
- g_free (tmp);
+ infopopup_entry_set_image (playlist, entry);
/* start a timer that updates a progress bar if the tooltip
is shown for the song that is being currently played */
@@ -402,24 +333,25 @@ static void infopopup_show (const gchar * filename, const Tuple * tuple,
gtk_widget_show (infopopup);
}
-void audgui_infopopup_show (gint playlist, gint entry)
+void audgui_infopopup_show (int playlist, int entry)
{
- const gchar * filename = aud_playlist_entry_get_filename (playlist, entry);
- const Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
-
- g_return_if_fail (filename != NULL);
+ char * filename = aud_playlist_entry_get_filename (playlist, entry);
+ char * title = aud_playlist_entry_get_title (playlist, entry, FALSE);
+ Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
- if (tuple == NULL) /* FIXME: show an error popup if this happens */
- return;
+ if (filename && title && tuple)
+ infopopup_show (playlist, entry, filename, tuple, title);
- infopopup_show (filename, tuple, aud_playlist_entry_get_title (playlist,
- entry, FALSE));
+ str_unref (filename);
+ str_unref (title);
+ if (tuple)
+ tuple_unref (tuple);
}
void audgui_infopopup_show_current (void)
{
- gint playlist = aud_playlist_get_playing ();
- gint position;
+ int playlist = aud_playlist_get_playing ();
+ int position;
if (playlist == -1)
playlist = aud_playlist_get_active ();
@@ -434,6 +366,9 @@ void audgui_infopopup_show_current (void)
void audgui_infopopup_hide (void)
{
+ if (! infopopup)
+ return;
+
infopopup_progress_stop ();
gtk_widget_hide (infopopup);
}
diff --git a/src/libaudgui/infowin.c b/src/libaudgui/infowin.c
index 13d1c47..866717b 100644
--- a/src/libaudgui/infowin.c
+++ b/src/libaudgui/infowin.c
@@ -1,31 +1,28 @@
/*
* libaudgui/infowin.c
- * Copyright 2006 William Pitcock, Tony Vroon, George Averill, Giacomo Lozito,
- * Derek Pomery and Yoshiki Yazawa.
- * Copyright 2008 Eugene Zagidullin
- * Copyright 2010 John Lindgren
+ * Copyright 2006-2011 William Pitcock, Tomasz MoÅ, Eugene Zagidullin, and
+ * John Lindgren
*
- * This file is part of Audacious.
+ * 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; under version 3 of the License.
*
- * Audacious 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, version 2 or version 3 of the License.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
#include <gtk/gtk.h>
#include <stdarg.h>
+#include <stdlib.h>
-#include <audacious/audconfig.h>
#include <audacious/gtk-compat.h>
#include <audacious/i18n.h>
#include <audacious/misc.h>
@@ -38,6 +35,7 @@
#include "libaudgui-gtk.h"
#define AUDGUI_STATUS_TIMEOUT 3000
+#define IMAGE_SIZE 150
static GtkWidget * infowin = NULL;
@@ -65,15 +63,15 @@ enum
RAWDATA_N_COLS
};
-static gchar * current_file = NULL;
+static char * current_file = NULL;
static PluginHandle * current_decoder = NULL;
-static gboolean can_write = FALSE, something_changed = FALSE;
+static bool_t can_write = FALSE, something_changed = FALSE;
/* This is by no means intended to be a complete list. If it is not short, it
* is useless: scrolling through ten pages of dropdown list is more work than
* typing out the genre. */
-static const gchar * genre_table[] = {
+static const char * genre_table[] = {
N_("Acid Jazz"),
N_("Acid Rock"),
N_("Ambient"),
@@ -115,18 +113,20 @@ static const gchar * genre_table[] = {
N_("Trip-hop")};
static void set_entry_str_from_field (GtkWidget * widget, const Tuple * tuple,
- gint fieldn, gboolean editable)
+ int fieldn, bool_t editable)
{
- const gchar * text = tuple_get_string (tuple, fieldn, NULL);
+ char * text = tuple_get_str (tuple, fieldn, NULL);
gtk_entry_set_text ((GtkEntry *) widget, text != NULL ? text : "");
gtk_editable_set_editable ((GtkEditable *) widget, editable);
+
+ str_unref (text);
}
static void set_entry_int_from_field (GtkWidget * widget, const Tuple * tuple,
- gint fieldn, gboolean editable)
+ int fieldn, bool_t editable)
{
- gchar scratch[32];
+ char scratch[32];
if (tuple_get_value_type (tuple, fieldn, NULL) == TUPLE_INT)
snprintf (scratch, sizeof scratch, "%d", tuple_get_int (tuple, fieldn,
@@ -138,37 +138,39 @@ static void set_entry_int_from_field (GtkWidget * widget, const Tuple * tuple,
gtk_editable_set_editable ((GtkEditable *) widget, editable);
}
-static void set_field_str_from_entry (Tuple * tuple, gint fieldn, GtkWidget *
+static void set_field_str_from_entry (Tuple * tuple, int fieldn, GtkWidget *
widget)
{
- const gchar * text = gtk_entry_get_text ((GtkEntry *) widget);
+ const char * text = gtk_entry_get_text ((GtkEntry *) widget);
if (text[0])
- tuple_associate_string (tuple, fieldn, NULL, text);
+ tuple_set_str (tuple, fieldn, NULL, text);
else
- tuple_disassociate (tuple, fieldn, NULL);
+ tuple_unset (tuple, fieldn, NULL);
}
-static void set_field_int_from_entry (Tuple * tuple, gint fieldn, GtkWidget *
+static void set_field_int_from_entry (Tuple * tuple, int fieldn, GtkWidget *
widget)
{
- const gchar * text = gtk_entry_get_text ((GtkEntry *) widget);
+ const char * text = gtk_entry_get_text ((GtkEntry *) widget);
if (text[0])
- tuple_associate_int (tuple, fieldn, NULL, atoi (text));
+ tuple_set_int (tuple, fieldn, NULL, atoi (text));
else
- tuple_disassociate (tuple, fieldn, NULL);
+ tuple_unset (tuple, fieldn, NULL);
}
-static void infowin_label_set_text (GtkWidget * widget, const gchar * text)
+/* call str_unref() on <text> */
+static void infowin_label_set_text (GtkWidget * widget, char * text)
{
- gchar * tmp;
+ char * tmp;
- if (text != NULL)
+ if (text)
{
tmp = g_strdup_printf("<span size=\"small\">%s</span>", text);
gtk_label_set_text ((GtkLabel *) widget, tmp);
g_free (tmp);
+ str_unref (text);
}
else
gtk_label_set_text ((GtkLabel *) widget,
@@ -177,12 +179,12 @@ static void infowin_label_set_text (GtkWidget * widget, const gchar * text)
gtk_label_set_use_markup ((GtkLabel *) widget, TRUE);
}
-static void infowin_entry_set_image (GtkWidget * widget, gint list, gint entry)
+static void infowin_entry_set_image (GtkWidget * widget, int list, int entry)
{
GdkPixbuf * p = audgui_pixbuf_for_entry (list, entry);
g_return_if_fail (p);
- audgui_pixbuf_scale_within (& p, aud_cfg->filepopup_pixelsize);
+ audgui_pixbuf_scale_within (& p, IMAGE_SIZE);
gtk_image_set_from_pixbuf ((GtkImage *) widget, p);
g_object_unref ((GObject *) p);
}
@@ -225,7 +227,7 @@ static void entry_changed (GtkEditable * editable, void * unused)
}
}
-static gboolean ministatus_timeout_proc (void * data)
+static bool_t ministatus_timeout_proc (void * data)
{
GtkLabel * status = data;
@@ -235,9 +237,9 @@ static gboolean ministatus_timeout_proc (void * data)
return FALSE;
}
-static void ministatus_display_message (const gchar * text)
+static void ministatus_display_message (const char * text)
{
- gchar * tmp = g_strdup_printf ("<span size=\"small\">%s</span>", text);
+ char * tmp = g_strdup_printf ("<span size=\"small\">%s</span>", text);
gtk_label_set_text ((GtkLabel *) label_mini_status, tmp);
gtk_label_set_use_markup ((GtkLabel *) label_mini_status, TRUE);
@@ -269,14 +271,14 @@ static void infowin_update_tuple (void * unused)
else
ministatus_display_message (_("Metadata updating failed"));
- mowgli_object_unref (tuple);
+ tuple_unref (tuple);
}
-gboolean genre_fill (GtkWidget * combo)
+bool_t genre_fill (GtkWidget * combo)
{
GList * list = NULL;
GList * node;
- gint i;
+ int i;
for (i = 0; i < G_N_ELEMENTS (genre_table); i ++)
list = g_list_prepend (list, _(genre_table[i]));
@@ -508,10 +510,10 @@ void create_infowin (void)
gtk_widget_grab_focus (entry_title);
}
-static void infowin_show (gint list, gint entry, const gchar * filename,
- const Tuple * tuple, PluginHandle * decoder, gboolean updating_enabled)
+static void infowin_show (int list, int entry, const char * filename,
+ const Tuple * tuple, PluginHandle * decoder, bool_t updating_enabled)
{
- gchar * tmp;
+ char * tmp;
if (infowin == NULL)
create_infowin ();
@@ -539,18 +541,12 @@ static void infowin_show (gint list, gint entry, const gchar * filename,
set_entry_int_from_field (entry_track, tuple, FIELD_TRACK_NUMBER,
updating_enabled);
- infowin_label_set_text (label_format_name, tuple_get_string (tuple,
- FIELD_CODEC, NULL));
- infowin_label_set_text (label_quality, tuple_get_string (tuple,
- FIELD_QUALITY, NULL));
+ infowin_label_set_text (label_format_name, tuple_get_str (tuple, FIELD_CODEC, NULL));
+ infowin_label_set_text (label_quality, tuple_get_str (tuple, FIELD_QUALITY, NULL));
if (tuple_get_value_type (tuple, FIELD_BITRATE, NULL) == TUPLE_INT)
- {
- tmp = g_strdup_printf (_("%d kb/s"), tuple_get_int (tuple,
- FIELD_BITRATE, NULL));
- infowin_label_set_text (label_bitrate, tmp);
- g_free (tmp);
- }
+ infowin_label_set_text (label_bitrate, str_printf (_("%d kb/s"),
+ tuple_get_int (tuple, FIELD_BITRATE, NULL)));
else
infowin_label_set_text (label_bitrate, NULL);
@@ -559,38 +555,42 @@ static void infowin_show (gint list, gint entry, const gchar * filename,
gtk_window_present ((GtkWindow *) infowin);
}
-void audgui_infowin_show (gint playlist, gint entry)
+void audgui_infowin_show (int playlist, int entry)
{
- const gchar * filename = aud_playlist_entry_get_filename (playlist, entry);
+ char * filename = aud_playlist_entry_get_filename (playlist, entry);
g_return_if_fail (filename != NULL);
PluginHandle * decoder = aud_playlist_entry_get_decoder (playlist, entry,
FALSE);
if (decoder == NULL)
- return;
+ goto FREE;
if (aud_custom_infowin (filename, decoder))
- return;
+ goto FREE;
- const Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
+ Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
if (tuple == NULL)
{
- gchar * message = g_strdup_printf (_("No info available for %s.\n"),
+ char * message = g_strdup_printf (_("No info available for %s.\n"),
filename);
- hook_call ("interface show error", message);
+ aud_interface_show_error (message);
g_free (message);
- return;
+ goto FREE;
}
infowin_show (playlist, entry, filename, tuple, decoder,
aud_file_can_write_tuple (filename, decoder));
+ tuple_unref (tuple);
+
+FREE:
+ str_unref (filename);
}
void audgui_infowin_show_current (void)
{
- gint playlist = aud_playlist_get_playing ();
- gint position;
+ int playlist = aud_playlist_get_playing ();
+ int position;
if (playlist == -1)
playlist = aud_playlist_get_active ();
diff --git a/src/libaudgui/init.c b/src/libaudgui/init.c
index ed0a277..6362c38 100644
--- a/src/libaudgui/init.c
+++ b/src/libaudgui/init.c
@@ -1,29 +1,70 @@
/*
- * libaudgui/init.c
- * Copyright 2010 John Lindgren
+ * init.c
+ * Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
-#include <audacious/plugin.h>
+#include <audacious/misc.h>
+#include <audacious/playlist.h>
+#include <libaudcore/hook.h>
+
+#include "init.h"
+#include "libaudgui.h"
+#include "libaudgui-gtk.h"
+
+static const char * const audgui_defaults[] = {
+ "close_dialog_add", "FALSE",
+ "close_dialog_open", "TRUE",
+ "close_jtf_dialog", "TRUE",
+ "playlist_manager_close_on_activate", "FALSE",
+ "remember_jtf_entry", "TRUE",
+ NULL};
AudAPITable * _aud_api_table = NULL;
+static void playlist_set_playing_cb (void * unused, void * unused2)
+{
+ audgui_pixbuf_uncache ();
+}
+
+static void playlist_position_cb (void * list, void * unused)
+{
+ if (GPOINTER_TO_INT (list) == aud_playlist_get_playing ())
+ audgui_pixbuf_uncache ();
+}
+
void audgui_init (AudAPITable * table)
{
_aud_api_table = table;
+ aud_config_set_defaults ("audgui", audgui_defaults);
+
+ hook_associate ("playlist set playing", playlist_set_playing_cb, NULL);
+ hook_associate ("playlist position", playlist_position_cb, NULL);
+}
+
+void audgui_cleanup (void)
+{
+ hook_dissociate ("playlist set playing", playlist_set_playing_cb);
+ hook_dissociate ("playlist position", playlist_position_cb);
+
+ audgui_hide_equalizer_window ();
+ audgui_jump_to_track_hide ();
+ audgui_pixbuf_uncache ();
+ audgui_playlist_manager_cleanup ();
+ audgui_queue_manager_cleanup ();
+
+ _aud_api_table = NULL;
}
diff --git a/src/libaudgui/init.h b/src/libaudgui/init.h
index 1fa0e4e..ac0c945 100644
--- a/src/libaudgui/init.h
+++ b/src/libaudgui/init.h
@@ -1,24 +1,33 @@
/*
- * libaudgui/init.h
- * Copyright 2010 John Lindgren
+ * init.h
+ * Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <audacious/plugin.h>
+/* init.c */
void audgui_init (AudAPITable * table);
+void audgui_cleanup (void);
+
+/* queue-manager.c */
+void audgui_queue_manager_cleanup (void);
+
+/* ui_playlist_manager.c */
+void audgui_playlist_manager_cleanup (void);
+
+/* util.c */
+void audgui_pixbuf_uncache (void);
diff --git a/src/libaudgui/jump-to-time.c b/src/libaudgui/jump-to-time.c
new file mode 100644
index 0000000..8a95b42
--- /dev/null
+++ b/src/libaudgui/jump-to-time.c
@@ -0,0 +1,113 @@
+/*
+ * jump-to-time.c
+ * Copyright 1998-2003 XMMS development team
+ * Copyright 2003-2004 BMP development team
+ * Copyright 2011 John Lindgren
+ *
+ * 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; under version 2 or version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
+ *
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
+ */
+
+#include <stdio.h>
+#include <gtk/gtk.h>
+
+#include <audacious/drct.h>
+#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
+
+#include "config.h"
+#include "libaudgui.h"
+#include "libaudgui-gtk.h"
+
+static GtkWidget * window = NULL;
+
+static void jump_to_time_cb (GtkWidget * widget, GtkWidget * entry)
+{
+ unsigned int min = 0, sec = 0;
+ int params = sscanf (gtk_entry_get_text ((GtkEntry *) entry), "%u:%u", & min,
+ & sec);
+
+ int time;
+ if (params == 2)
+ time = 60 * min + sec;
+ else if (params == 1)
+ time = min;
+ else
+ return;
+
+ if (aud_drct_get_playing ())
+ aud_drct_seek (1000 * time);
+
+ if (window)
+ gtk_widget_destroy (window);
+}
+
+void audgui_jump_to_time (void)
+{
+ if (! aud_drct_get_playing ())
+ return;
+
+ if (window)
+ {
+ gtk_window_present ((GtkWindow *) window);
+ return;
+ }
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ g_signal_connect (window, "destroy", (GCallback) gtk_widget_destroyed,
+ & window);
+ gtk_window_set_type_hint ((GtkWindow *) window, GDK_WINDOW_TYPE_HINT_DIALOG);
+ gtk_window_set_title ((GtkWindow *) window, _("Jump to Time"));
+ gtk_window_set_resizable ((GtkWindow *) window, FALSE);
+ gtk_container_set_border_width ((GtkContainer *) window, 6);
+ audgui_destroy_on_escape (window);
+
+ GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+ gtk_container_add ((GtkContainer *) window, vbox);
+
+ GtkWidget * hbox_new = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start ((GtkBox *) vbox, hbox_new, FALSE, FALSE, 0);
+
+ GtkWidget * time_entry = gtk_entry_new ();
+ gtk_entry_set_activates_default ((GtkEntry *) time_entry, TRUE);
+ gtk_box_pack_start ((GtkBox *) hbox_new, time_entry, FALSE, FALSE, 0);
+
+ GtkWidget * label = gtk_label_new (_("mm:ss"));
+ gtk_box_pack_start ((GtkBox *) hbox_new, label, FALSE, FALSE, 0);
+
+ GtkWidget * bbox = gtk_hbutton_box_new ();
+ gtk_box_pack_start ((GtkBox *) vbox, bbox, TRUE, TRUE, 0);
+ gtk_button_box_set_layout ((GtkButtonBox *) bbox, GTK_BUTTONBOX_END);
+ gtk_box_set_spacing ((GtkBox *) bbox, 6);
+
+ GtkWidget * cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+ gtk_container_add ((GtkContainer *) bbox, cancel);
+ g_signal_connect_swapped (cancel, "clicked", (GCallback) gtk_widget_destroy,
+ window);
+
+ GtkWidget * jump = gtk_button_new_from_stock (GTK_STOCK_JUMP_TO);
+ gtk_widget_set_can_default (jump, TRUE);
+ gtk_container_add ((GtkContainer *) bbox, jump);
+ g_signal_connect (jump, "clicked", (GCallback) jump_to_time_cb, time_entry);
+
+ unsigned int tindex = aud_drct_get_time () / 1000;
+ char time_str[10];
+ snprintf (time_str, sizeof time_str, "%u:%2.2u", tindex / 60, tindex % 60);
+ gtk_entry_set_text ((GtkEntry *) time_entry, time_str);
+ gtk_editable_select_region ((GtkEditable *) time_entry, 0, -1);
+
+ gtk_widget_show_all (window);
+ gtk_widget_grab_default (jump);
+}
diff --git a/src/libaudgui/libaudgui-gtk.h b/src/libaudgui/libaudgui-gtk.h
index f093851..c54fd36 100644
--- a/src/libaudgui/libaudgui-gtk.h
+++ b/src/libaudgui/libaudgui-gtk.h
@@ -1,50 +1,47 @@
/*
* libaudgui-gtk.h
- * Copyright 2010 Audacious Development Team
+ * Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#ifndef LIBAUDGUI_GTK_H
#define LIBAUDGUI_GTK_H
+#include <stdint.h>
#include <gtk/gtk.h>
+#include <libaudcore/core.h>
/* effects-menu.c */
GtkWidget * audgui_create_effects_menu (void);
+GtkWidget * audgui_create_vis_menu (void);
/* iface-menu.c */
GtkWidget * audgui_create_iface_menu (void);
-void audgui_playlist_manager_update(void);
-void audgui_playlist_manager_ui_show(GtkWidget *mainwin);
-void audgui_playlist_manager_destroy(void);
-
/* util.c */
void audgui_hide_on_delete (GtkWidget * widget);
void audgui_hide_on_escape (GtkWidget * widget);
void audgui_destroy_on_escape (GtkWidget * widget);
void audgui_simple_message (GtkWidget * * widget, GtkMessageType type,
- const gchar * title, const gchar * text);
-void audgui_connect_check_box (GtkWidget * box, gboolean * setting);
+ const char * title, const char * text);
+void audgui_connect_check_box (GtkWidget * box, bool_t * setting);
-GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size);
-GdkPixbuf * audgui_pixbuf_for_entry (gint playlist, gint entry);
+GdkPixbuf * audgui_pixbuf_from_data (const void * data, int64_t size);
+GdkPixbuf * audgui_pixbuf_for_entry (int playlist, int entry);
GdkPixbuf * audgui_pixbuf_for_current (void);
-void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size);
+void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, int size);
#endif
diff --git a/src/libaudgui/libaudgui.h b/src/libaudgui/libaudgui.h
index d96c933..3f4aebc 100644
--- a/src/libaudgui/libaudgui.h
+++ b/src/libaudgui/libaudgui.h
@@ -1,26 +1,27 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2010 Audacious development team.
- *
- * 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; under version 3 of the License.
+/*
+ * libaudgui.h
+ * Copyright 2007-2009 Giacomo Lozito and Tomasz MoÅ
+
+ * 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; under version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
#ifndef LIBAUDGUI_H
#define LIBAUDGUI_H
-#include <glib.h>
+#include <libaudcore/core.h>
/* macro defines for Audacious stock icons */
#define AUD_STOCK_PLAYLIST "aud-playlist"
@@ -30,39 +31,53 @@
void audgui_register_stock_icons(void);
-void audgui_show_add_url_window(gboolean open);
+void audgui_show_add_url_window(bool_t open);
void audgui_jump_to_track(void);
void audgui_jump_to_track_hide(void);
-void audgui_set_default_icon(void);
-
-void audgui_run_filebrowser(gboolean clear_pl_on_ok);
+void audgui_run_filebrowser(bool_t clear_pl_on_ok);
void audgui_hide_filebrowser(void);
-void audgui_show_about_window(void);
-void audgui_hide_about_window(void);
+/* about.c */
+void audgui_show_about_window (void);
/* confirm.c */
-void audgui_confirm_playlist_delete (gint playlist);
-void audgui_show_playlist_rename (gint playlist);
+void audgui_confirm_playlist_delete (int playlist);
+void audgui_show_playlist_rename (int playlist);
/* equalizer.c */
void audgui_show_equalizer_window (void);
void audgui_hide_equalizer_window (void);
/* infopopup.c */
-void audgui_infopopup_show (gint playlist, gint entry);
+void audgui_infopopup_show (int playlist, int entry);
void audgui_infopopup_show_current (void);
void audgui_infopopup_hide (void);
/* infowin.c */
-void audgui_infowin_show (gint playlist, gint entry);
+void audgui_infowin_show (int playlist, int entry);
void audgui_infowin_show_current (void);
+/* jump-to-time.c */
+void audgui_jump_to_time (void);
+
+/* playlists.c */
+void audgui_import_playlist (void);
+void audgui_export_playlist (void);
+
+/* queue-manager.c */
+void audgui_queue_manager_show (void);
+
+/* ui_playlist_manager.c */
+void audgui_playlist_manager (void);
+
/* urilist.c */
-void audgui_urilist_open (const gchar * list);
-void audgui_urilist_insert (gint playlist, gint position, const gchar * list);
-gchar * audgui_urilist_create_from_selected (gint playlist);
+void audgui_urilist_open (const char * list);
+void audgui_urilist_insert (int playlist, int position, const char * list);
+char * audgui_urilist_create_from_selected (int playlist);
+
+/* util.c */
+void audgui_set_default_icon (void);
#endif /* LIBAUDGUI_H */
diff --git a/src/libaudgui/list.c b/src/libaudgui/list.c
old mode 100755
new mode 100644
index 7a39cde..034056d
--- a/src/libaudgui/list.c
+++ b/src/libaudgui/list.c
@@ -2,27 +2,28 @@
* list.c
* Copyright 2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include "list.h"
#include <audacious/gtk-compat.h>
+#define CHAR_WIDTH 12
+#define SPACING 4
+
enum {HIGHLIGHT_COLUMN, RESERVED_COLUMNS};
#define PATH_IS_SELECTED(w, p) (gtk_tree_selection_path_is_selected \
@@ -32,13 +33,13 @@ typedef struct {
GObject parent;
const AudguiListCallbacks * cbs;
void * user;
- gint rows, highlight;
- gint columns;
+ int rows, highlight;
+ int columns;
GList * column_types;
- gboolean frozen, blocked;
- gboolean dragging;
- gboolean clicked_row, receive_row;
- gint scroll_source, scroll_speed;
+ bool_t frozen, blocked;
+ bool_t dragging;
+ bool_t clicked_row, receive_row;
+ int scroll_source, scroll_speed;
} ListModel;
/* ==== MODEL ==== */
@@ -48,12 +49,12 @@ static GtkTreeModelFlags list_model_get_flags (GtkTreeModel * model)
return GTK_TREE_MODEL_LIST_ONLY;
}
-static gint list_model_get_n_columns (GtkTreeModel * model)
+static int list_model_get_n_columns (GtkTreeModel * model)
{
return ((ListModel *) model)->columns;
}
-static GType list_model_get_column_type (GtkTreeModel * _model, gint column)
+static GType list_model_get_column_type (GtkTreeModel * _model, int column)
{
ListModel * model = (ListModel *) _model;
g_return_val_if_fail (column >= 0 && column < model->columns, G_TYPE_INVALID);
@@ -65,10 +66,10 @@ static GType list_model_get_column_type (GtkTreeModel * _model, gint column)
RESERVED_COLUMNS));
}
-static gboolean list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
+static bool_t list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
GtkTreePath * path)
{
- gint row = gtk_tree_path_get_indices (path)[0];
+ int row = gtk_tree_path_get_indices (path)[0];
if (row < 0 || row >= ((ListModel *) model)->rows)
return FALSE;
iter->user_data = GINT_TO_POINTER (row);
@@ -78,16 +79,16 @@ static gboolean list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
static GtkTreePath * list_model_get_path (GtkTreeModel * model,
GtkTreeIter * iter)
{
- gint row = GPOINTER_TO_INT (iter->user_data);
+ int row = GPOINTER_TO_INT (iter->user_data);
g_return_val_if_fail (row >= 0 && row < ((ListModel *) model)->rows, NULL);
return gtk_tree_path_new_from_indices (row, -1);
}
static void list_model_get_value (GtkTreeModel * _model, GtkTreeIter * iter,
- gint column, GValue * value)
+ int column, GValue * value)
{
ListModel * model = (ListModel *) _model;
- gint row = GPOINTER_TO_INT (iter->user_data);
+ int row = GPOINTER_TO_INT (iter->user_data);
g_return_if_fail (column >= 0 && column < model->columns);
g_return_if_fail (row >= 0 && row < model->rows);
@@ -104,10 +105,10 @@ static void list_model_get_value (GtkTreeModel * _model, GtkTreeIter * iter,
model->cbs->get_value (model->user, row, column - RESERVED_COLUMNS, value);
}
-static gboolean list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter)
+static bool_t list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter)
{
ListModel * model = (ListModel *) _model;
- gint row = GPOINTER_TO_INT (iter->user_data);
+ int row = GPOINTER_TO_INT (iter->user_data);
g_return_val_if_fail (row >= 0 && row < model->rows, FALSE);
if (row + 1 >= model->rows)
return FALSE;
@@ -115,7 +116,7 @@ static gboolean list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter)
return TRUE;
}
-static gboolean list_model_iter_children (GtkTreeModel * model,
+static bool_t list_model_iter_children (GtkTreeModel * model,
GtkTreeIter * iter, GtkTreeIter * parent)
{
if (parent || ((ListModel *) model)->rows < 1)
@@ -124,19 +125,19 @@ static gboolean list_model_iter_children (GtkTreeModel * model,
return TRUE;
}
-static gboolean list_model_iter_has_child (GtkTreeModel * model,
+static bool_t list_model_iter_has_child (GtkTreeModel * model,
GtkTreeIter * iter)
{
return FALSE;
}
-static gint list_model_iter_n_children (GtkTreeModel * model, GtkTreeIter * iter)
+static int list_model_iter_n_children (GtkTreeModel * model, GtkTreeIter * iter)
{
return iter ? 0 : ((ListModel *) model)->rows;
}
-static gboolean list_model_iter_nth_child (GtkTreeModel * model,
- GtkTreeIter * iter, GtkTreeIter * parent, gint n)
+static bool_t list_model_iter_nth_child (GtkTreeModel * model,
+ GtkTreeIter * iter, GtkTreeIter * parent, int n)
{
if (parent || n < 0 || n >= ((ListModel *) model)->rows)
return FALSE;
@@ -144,7 +145,7 @@ static gboolean list_model_iter_nth_child (GtkTreeModel * model,
return TRUE;
}
-static gboolean list_model_iter_parent (GtkTreeModel * model,
+static bool_t list_model_iter_parent (GtkTreeModel * model,
GtkTreeIter * iter, GtkTreeIter * child)
{
return FALSE;
@@ -187,8 +188,8 @@ static GType list_model_get_type (void)
/* ==== CALLBACKS ==== */
-static gboolean select_allow_cb (GtkTreeSelection * sel, GtkTreeModel * model,
- GtkTreePath * path, gboolean was, void * user)
+static bool_t select_allow_cb (GtkTreeSelection * sel, GtkTreeModel * model,
+ GtkTreePath * path, bool_t was, void * user)
{
return ! ((ListModel *) model)->frozen;
}
@@ -197,7 +198,7 @@ static void select_row_cb (GtkTreeModel * _model, GtkTreePath * path,
GtkTreeIter * iter, void * user)
{
ListModel * model = (ListModel *) _model;
- gint row = gtk_tree_path_get_indices (path)[0];
+ int row = gtk_tree_path_get_indices (path)[0];
g_return_if_fail (row >= 0 && row < model->rows);
model->cbs->set_selected (model->user, row, TRUE);
}
@@ -213,12 +214,12 @@ static void select_cb (GtkTreeSelection * sel, ListModel * model)
static void activate_cb (GtkTreeView * tree, GtkTreePath * path,
GtkTreeViewColumn * col, ListModel * model)
{
- gint row = gtk_tree_path_get_indices (path)[0];
+ int row = gtk_tree_path_get_indices (path)[0];
g_return_if_fail (row >= 0 && row < model->rows);
model->cbs->activate_row (model->user, row);
}
-static gboolean button_press_cb (GtkWidget * widget, GdkEventButton * event,
+static bool_t button_press_cb (GtkWidget * widget, GdkEventButton * event,
ListModel * model)
{
GtkTreePath * path = NULL;
@@ -264,7 +265,7 @@ static gboolean button_press_cb (GtkWidget * widget, GdkEventButton * event,
return FALSE;
}
-static gboolean button_release_cb (GtkWidget * widget, GdkEventButton * event,
+static bool_t button_release_cb (GtkWidget * widget, GdkEventButton * event,
ListModel * model)
{
/* If button_press_cb set "frozen", and we were not dragging, we need to
@@ -282,6 +283,15 @@ static gboolean button_release_cb (GtkWidget * widget, GdkEventButton * event,
return FALSE;
}
+static bool_t key_press_cb (GtkWidget * widget, GdkEventKey * event, ListModel * model)
+{
+ /* GTK thinks the spacebar should activate a row; I (jlindgren) disagree */
+ if (event->keyval == ' ' && ! (event->state & GDK_CONTROL_MASK))
+ return TRUE;
+
+ return FALSE;
+}
+
/* ==== DRAG AND DROP ==== */
static void drag_begin (GtkWidget * widget, GdkDragContext * context,
@@ -302,21 +312,21 @@ static void drag_end (GtkWidget * widget, GdkDragContext * context,
}
static void drag_data_get (GtkWidget * widget, GdkDragContext * context,
- GtkSelectionData * sel, guint info, guint time, ListModel * model)
+ GtkSelectionData * sel, unsigned int info, unsigned int time, ListModel * model)
{
g_signal_stop_emission_by_name (widget, "drag-data-get");
void * data = NULL;
- gint length = 0;
+ int length = 0;
model->cbs->get_data (model->user, & data, & length);
gtk_selection_data_set (sel, gdk_atom_intern (model->cbs->data_type, FALSE),
8, data, length);
g_free (data);
}
-static gint calc_drop_row (ListModel * model, GtkWidget * widget, gint x, gint y)
+static int calc_drop_row (ListModel * model, GtkWidget * widget, int x, int y)
{
- gint row = audgui_list_row_at_point (widget, x, y);
+ int row = audgui_list_row_at_point (widget, x, y);
if (row < 0)
row = model->rows;
return row;
@@ -332,7 +342,7 @@ static void stop_autoscroll (ListModel * model)
model->scroll_speed = 0;
}
-static gboolean autoscroll (GtkWidget * widget)
+static bool_t autoscroll (GtkWidget * widget)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) widget);
@@ -341,8 +351,8 @@ static gboolean autoscroll (GtkWidget * widget)
if (! adj)
return FALSE;
- gint new = gtk_adjustment_get_value (adj) + model->scroll_speed;
- gint clamped = CLAMP (new, 0, gtk_adjustment_get_upper (adj) -
+ int new = gtk_adjustment_get_value (adj) + model->scroll_speed;
+ int clamped = CLAMP (new, 0, gtk_adjustment_get_upper (adj) -
gtk_adjustment_get_page_size (adj));
gtk_adjustment_set_value (adj, clamped);
@@ -357,7 +367,7 @@ static gboolean autoscroll (GtkWidget * widget)
return TRUE;
}
-static void start_autoscroll (ListModel * model, GtkWidget * widget, gint speed)
+static void start_autoscroll (ListModel * model, GtkWidget * widget, int speed)
{
if (model->scroll_source)
return;
@@ -366,8 +376,8 @@ static void start_autoscroll (ListModel * model, GtkWidget * widget, gint speed)
model->scroll_speed = speed;
}
-static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
- gint x, gint y, guint time, ListModel * model)
+static bool_t drag_motion (GtkWidget * widget, GdkDragContext * context,
+ int x, int y, unsigned int time, ListModel * model)
{
g_signal_stop_emission_by_name (widget, "drag-motion");
@@ -384,7 +394,7 @@ static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
if (model->rows > 0)
{
- gint row = calc_drop_row (model, widget, x, y);
+ int row = calc_drop_row (model, widget, x, y);
if (row == model->rows)
{
GtkTreePath * path = gtk_tree_path_new_from_indices (row - 1, -1);
@@ -401,7 +411,7 @@ static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
}
}
- gint height;
+ int height;
gdk_window_get_geometry (gtk_tree_view_get_bin_window ((GtkTreeView *)
widget), NULL, NULL, NULL, & height);
gtk_tree_view_convert_widget_to_bin_window_coords ((GtkTreeView *) widget,
@@ -418,7 +428,7 @@ static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
}
static void drag_leave (GtkWidget * widget, GdkDragContext * context,
- guint time, ListModel * model)
+ unsigned int time, ListModel * model)
{
g_signal_stop_emission_by_name (widget, "drag-leave");
@@ -426,13 +436,13 @@ static void drag_leave (GtkWidget * widget, GdkDragContext * context,
stop_autoscroll (model);
}
-static gboolean drag_drop (GtkWidget * widget, GdkDragContext * context, gint x,
- gint y, guint time, ListModel * model)
+static bool_t drag_drop (GtkWidget * widget, GdkDragContext * context, int x,
+ int y, unsigned int time, ListModel * model)
{
g_signal_stop_emission_by_name (widget, "drag-drop");
- gboolean success = TRUE;
- gint row = calc_drop_row (model, widget, x, y);
+ bool_t success = TRUE;
+ int row = calc_drop_row (model, widget, x, y);
if (model->dragging && model->cbs->shift_rows) /* dragging within same list */
{
@@ -456,16 +466,16 @@ static gboolean drag_drop (GtkWidget * widget, GdkDragContext * context, gint x,
return TRUE;
}
-static void drag_data_received (GtkWidget * widget, GdkDragContext * context, gint x,
- gint y, GtkSelectionData * sel, guint info, guint time, ListModel * model)
+static void drag_data_received (GtkWidget * widget, GdkDragContext * context, int x,
+ int y, GtkSelectionData * sel, unsigned int info, unsigned int time, ListModel * model)
{
g_signal_stop_emission_by_name (widget, "drag-data-received");
g_return_if_fail (model->receive_row >= 0 && model->receive_row <=
model->rows);
- const guchar * data = gtk_selection_data_get_data (sel);
- gint length = gtk_selection_data_get_length (sel);
+ const unsigned char * data = gtk_selection_data_get_data (sel);
+ int length = gtk_selection_data_get_length (sel);
if (data && length)
model->cbs->receive_data (model->user, model->receive_row, data, length);
@@ -481,13 +491,13 @@ static void destroy_cb (ListModel * model)
g_object_unref (model);
}
-static void update_selection (GtkWidget * list, ListModel * model, gint at,
- gint rows)
+static void update_selection (GtkWidget * list, ListModel * model, int at,
+ int rows)
{
model->blocked = TRUE;
GtkTreeSelection * sel = gtk_tree_view_get_selection ((GtkTreeView *) list);
- for (gint i = at; i < at + rows; i ++)
+ for (int i = at; i < at + rows; i ++)
{
GtkTreeIter iter = {.user_data = GINT_TO_POINTER (i)};
if (model->cbs->get_selected (model->user, i))
@@ -500,7 +510,7 @@ static void update_selection (GtkWidget * list, ListModel * model, gint at,
}
GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
- gint rows)
+ int rows)
{
g_return_val_if_fail (cbs->get_value, NULL);
if (cbs->get_selected)
@@ -524,6 +534,7 @@ GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
model->scroll_speed = 0;
GtkWidget * list = gtk_tree_view_new_with_model ((GtkTreeModel *) model);
+ gtk_tree_view_set_fixed_height_mode ((GtkTreeView *) list, TRUE);
g_signal_connect_swapped (list, "destroy", (GCallback) destroy_cb, model);
if (cbs->get_selected)
@@ -540,14 +551,13 @@ GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
if (cbs->activate_row)
g_signal_connect (list, "row-activated", (GCallback) activate_cb, model);
- g_signal_connect (list, "button-press-event", (GCallback) button_press_cb,
- model);
- g_signal_connect (list, "button-release-event", (GCallback)
- button_release_cb, model);
+ g_signal_connect (list, "button-press-event", (GCallback) button_press_cb, model);
+ g_signal_connect (list, "button-release-event", (GCallback) button_release_cb, model);
+ g_signal_connect (list, "key-press-event", (GCallback) key_press_cb, model);
if (cbs->data_type)
{
- const GtkTargetEntry target = {(gchar *) cbs->data_type, 0, 0};
+ const GtkTargetEntry target = {(char *) cbs->data_type, 0, 0};
gtk_drag_source_set (list, GDK_BUTTON1_MASK, & target, 1,
GDK_ACTION_COPY);
@@ -583,8 +593,8 @@ void * audgui_list_get_user (GtkWidget * list)
return model->user;
}
-void audgui_list_add_column (GtkWidget * list, const gchar * title,
- gint column, GType type, gboolean expand)
+void audgui_list_add_column (GtkWidget * list, const char * title,
+ int column, GType type, int width)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
@@ -598,30 +608,30 @@ void audgui_list_add_column (GtkWidget * list, const gchar * title,
GtkTreeViewColumn * tree_column = gtk_tree_view_column_new_with_attributes
(title, renderer, "text", RESERVED_COLUMNS + column, "weight",
HIGHLIGHT_COLUMN, NULL);
+ gtk_tree_view_column_set_sizing (tree_column, GTK_TREE_VIEW_COLUMN_FIXED);
- if (expand)
+ if (width < 1)
{
- gtk_tree_view_column_set_resizable (tree_column, TRUE);
+ gtk_tree_view_column_set_fixed_width (tree_column, 6 * CHAR_WIDTH + SPACING);
gtk_tree_view_column_set_expand (tree_column, TRUE);
g_object_set ((GObject *) renderer, "ellipsize-set", TRUE, "ellipsize",
PANGO_ELLIPSIZE_END, NULL);
}
else
{
- gtk_tree_view_column_set_sizing (tree_column,
- GTK_TREE_VIEW_COLUMN_GROW_ONLY);
- g_object_set ((GObject *) renderer, "xalign", (gfloat) 1, NULL);
+ gtk_tree_view_column_set_fixed_width (tree_column, width * CHAR_WIDTH + SPACING);
+ g_object_set ((GObject *) renderer, "xalign", (float) 1, NULL);
}
gtk_tree_view_append_column ((GtkTreeView *) list, tree_column);
}
-gint audgui_list_row_count (GtkWidget * list)
+int audgui_list_row_count (GtkWidget * list)
{
return ((ListModel *) gtk_tree_view_get_model ((GtkTreeView *) list))->rows;
}
-void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows)
+void audgui_list_insert_rows (GtkWidget * list, int at, int rows)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
@@ -634,15 +644,16 @@ void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows)
GtkTreeIter iter = {.user_data = GINT_TO_POINTER (at)};
GtkTreePath * path = gtk_tree_path_new_from_indices (at, -1);
- for (gint i = rows; i --; )
+ for (int i = rows; i --; )
gtk_tree_model_row_inserted ((GtkTreeModel *) model, path, & iter);
gtk_tree_path_free (path);
- update_selection (list, model, at, rows);
+ if (model->cbs->get_selected)
+ update_selection (list, model, at, rows);
}
-void audgui_list_update_rows (GtkWidget * list, gint at, gint rows)
+void audgui_list_update_rows (GtkWidget * list, int at, int rows)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
@@ -661,7 +672,7 @@ void audgui_list_update_rows (GtkWidget * list, gint at, gint rows)
gtk_tree_path_free (path);
}
-void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows)
+void audgui_list_delete_rows (GtkWidget * list, int at, int rows)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
@@ -683,7 +694,7 @@ void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows)
model->blocked = FALSE;
}
-void audgui_list_update_selection (GtkWidget * list, gint at, gint rows)
+void audgui_list_update_selection (GtkWidget * list, int at, int rows)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
@@ -692,13 +703,20 @@ void audgui_list_update_selection (GtkWidget * list, gint at, gint rows)
update_selection (list, model, at, rows);
}
-void audgui_list_set_highlight (GtkWidget * list, gint row)
+int audgui_list_get_highlight (GtkWidget * list)
+{
+ ListModel * model = (ListModel *) gtk_tree_view_get_model
+ ((GtkTreeView *) list);
+ return model->highlight;
+}
+
+void audgui_list_set_highlight (GtkWidget * list, int row)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
g_return_if_fail (row >= -1 && row < model->rows);
- gint old = model->highlight;
+ int old = model->highlight;
if (row == old)
return;
model->highlight = row;
@@ -709,7 +727,21 @@ void audgui_list_set_highlight (GtkWidget * list, gint row)
audgui_list_update_rows (list, row, 1);
}
-void audgui_list_set_focus (GtkWidget * list, gint row)
+int audgui_list_get_focus (GtkWidget * list)
+{
+ GtkTreePath * path = NULL;
+ gtk_tree_view_get_cursor ((GtkTreeView *) list, & path, NULL);
+
+ if (! path)
+ return -1;
+
+ int row = gtk_tree_path_get_indices (path)[0];
+
+ gtk_tree_path_free (path);
+ return row;
+}
+
+void audgui_list_set_focus (GtkWidget * list, int row)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model
((GtkTreeView *) list);
@@ -730,7 +762,7 @@ void audgui_list_set_focus (GtkWidget * list, gint row)
model->frozen = FALSE;
}
-gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y)
+int audgui_list_row_at_point (GtkWidget * list, int x, int y)
{
ListModel * model = (ListModel *) gtk_tree_view_get_model ((GtkTreeView *)
list);
@@ -744,7 +776,7 @@ gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y)
if (! path)
return -1;
- gint row = gtk_tree_path_get_indices (path)[0];
+ int row = gtk_tree_path_get_indices (path)[0];
g_return_val_if_fail (row >= 0 && row < model->rows, -1);
GdkRectangle rect;
diff --git a/src/libaudgui/list.h b/src/libaudgui/list.h
index 0eb1cef..4f92d6a 100644
--- a/src/libaudgui/list.h
+++ b/src/libaudgui/list.h
@@ -2,60 +2,63 @@
* list.h
* Copyright 2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#ifndef AUDGUI_LIST_H
#define AUDGUI_LIST_H
#include <gtk/gtk.h>
+#include <libaudcore/core.h>
typedef struct {
- void (* get_value) (void * user, gint row, gint column, GValue * value);
+ void (* get_value) (void * user, int row, int column, GValue * value);
/* selection (optional) */
- gboolean (* get_selected) (void * user, gint row);
- void (* set_selected) (void * user, gint row, gboolean selected);
- void (* select_all) (void * user, gboolean selected);
+ bool_t (* get_selected) (void * user, int row);
+ void (* set_selected) (void * user, int row, bool_t selected);
+ void (* select_all) (void * user, bool_t selected);
- void (* activate_row) (void * user, gint row); /* optional */
+ void (* activate_row) (void * user, int row); /* optional */
void (* right_click) (void * user, GdkEventButton * event); /* optional */
- void (* shift_rows) (void * user, gint row, gint before); /* optional */
+ void (* shift_rows) (void * user, int row, int before); /* optional */
/* cross-widget drag and drop (optional) */
- const gchar * data_type;
- void (* get_data) (void * user, void * * data, gint * length); /* data will
+ const char * data_type;
+ void (* get_data) (void * user, void * * data, int * length); /* data will
be freed */
- void (* receive_data) (void * user, gint row, const void * data, gint length);
+ void (* receive_data) (void * user, int row, const void * data, int length);
} AudguiListCallbacks;
GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
- gint rows);
+ int rows);
void * audgui_list_get_user (GtkWidget * list);
-void audgui_list_add_column (GtkWidget * list, const gchar * title,
- gint column, GType type, gboolean expand);
-
-gint audgui_list_row_count (GtkWidget * list);
-void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows);
-void audgui_list_update_rows (GtkWidget * list, gint at, gint rows);
-void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows);
-void audgui_list_update_selection (GtkWidget * list, gint at, gint rows);
-void audgui_list_set_highlight (GtkWidget * list, gint row);
-void audgui_list_set_focus (GtkWidget * list, gint row);
-gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y);
+void audgui_list_add_column (GtkWidget * list, const char * title,
+ int column, GType type, int width);
+
+int audgui_list_row_count (GtkWidget * list);
+void audgui_list_insert_rows (GtkWidget * list, int at, int rows);
+void audgui_list_update_rows (GtkWidget * list, int at, int rows);
+void audgui_list_delete_rows (GtkWidget * list, int at, int rows);
+void audgui_list_update_selection (GtkWidget * list, int at, int rows);
+
+int audgui_list_get_highlight (GtkWidget * list);
+void audgui_list_set_highlight (GtkWidget * list, int row);
+int audgui_list_get_focus (GtkWidget * list);
+void audgui_list_set_focus (GtkWidget * list, int row);
+
+int audgui_list_row_at_point (GtkWidget * list, int x, int y);
#endif
diff --git a/src/libaudgui/playlists.c b/src/libaudgui/playlists.c
new file mode 100644
index 0000000..8c5a517
--- /dev/null
+++ b/src/libaudgui/playlists.c
@@ -0,0 +1,109 @@
+/*
+ * playlists.c
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <gtk/gtk.h>
+
+#include <audacious/i18n.h>
+#include <audacious/misc.h>
+#include <audacious/playlist.h>
+#include <libaudcore/vfs.h>
+
+#include "config.h"
+#include "libaudgui.h"
+
+static char * select_file (bool_t save, const char * default_filename)
+{
+ GtkWidget * dialog = gtk_file_chooser_dialog_new (save ?
+ _("Export Playlist") : _("Import Playlist"), NULL, save ?
+ GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, NULL, NULL);
+
+ if (default_filename)
+ gtk_file_chooser_set_uri ((GtkFileChooser *) dialog, default_filename);
+
+ gtk_dialog_add_button ((GtkDialog *) dialog, GTK_STOCK_CANCEL,
+ GTK_RESPONSE_REJECT);
+ gtk_dialog_add_button ((GtkDialog *) dialog, save ? GTK_STOCK_SAVE :
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT);
+
+ gtk_dialog_set_default_response ((GtkDialog *) dialog, GTK_RESPONSE_ACCEPT);
+
+ char * path = aud_get_string ("audgui", "playlist_path");
+ if (path[0])
+ gtk_file_chooser_set_current_folder_uri ((GtkFileChooser *) dialog, path);
+ g_free (path);
+
+ char * filename = NULL;
+ if (gtk_dialog_run ((GtkDialog *) dialog) == GTK_RESPONSE_ACCEPT)
+ filename = gtk_file_chooser_get_uri ((GtkFileChooser *) dialog);
+
+ path = gtk_file_chooser_get_current_folder_uri ((GtkFileChooser *) dialog);
+ aud_set_string ("audgui", "playlist_path", path);
+ g_free (path);
+
+ gtk_widget_destroy (dialog);
+ return filename;
+}
+
+static bool_t confirm_overwrite (const char * filename)
+{
+ GtkWidget * dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_QUESTION,
+ GTK_BUTTONS_YES_NO, _("Overwrite %s?"), filename);
+
+ int result = gtk_dialog_run ((GtkDialog *) dialog);
+ gtk_widget_destroy (dialog);
+ return (result == GTK_RESPONSE_YES);
+}
+
+void audgui_import_playlist (void)
+{
+ int list = aud_playlist_get_active ();
+ int id = aud_playlist_get_unique_id (list);
+
+ char * filename = select_file (FALSE, NULL);
+ if (! filename)
+ return;
+
+ if ((list = aud_playlist_by_unique_id (id)) < 0)
+ return;
+
+ aud_playlist_entry_delete (list, 0, aud_playlist_entry_count (list));
+ aud_playlist_entry_insert (list, 0, filename, NULL, FALSE);
+ aud_playlist_set_filename (list, filename);
+ g_free (filename);
+}
+
+void audgui_export_playlist (void)
+{
+ int list = aud_playlist_get_active ();
+ int id = aud_playlist_get_unique_id (list);
+
+ char * def = aud_playlist_get_filename (list);
+ char * filename = select_file (TRUE, def);
+ str_unref (def);
+
+ if (! filename || (vfs_file_test (filename, G_FILE_TEST_EXISTS) &&
+ ! confirm_overwrite (filename)))
+ return;
+
+ if ((list = aud_playlist_by_unique_id (id)) < 0)
+ return;
+
+ aud_playlist_save (list, filename);
+ g_free (filename);
+}
diff --git a/src/libaudgui/queue-manager.c b/src/libaudgui/queue-manager.c
new file mode 100644
index 0000000..1d74c42
--- /dev/null
+++ b/src/libaudgui/queue-manager.c
@@ -0,0 +1,228 @@
+/*
+ * queue-manager.c
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
+#include <audacious/playlist.h>
+#include <libaudcore/hook.h>
+
+#include "config.h"
+#include "init.h"
+#include "libaudgui.h"
+#include "list.h"
+
+enum {
+ COLUMN_ENTRY,
+ COLUMN_TITLE};
+
+#define RESPONSE_REMOVE 1
+
+static GtkWidget * qm_win;
+static GtkWidget * qm_list;
+
+static void get_value (void * user, int row, int column, GValue * value)
+{
+ int list = aud_playlist_get_active ();
+ int entry = aud_playlist_queue_get_entry (list, row);
+
+ switch (column)
+ {
+ case COLUMN_ENTRY:
+ g_value_set_int (value, 1 + entry);
+ break;
+ case COLUMN_TITLE:;
+ char * title = aud_playlist_entry_get_title (list, entry, TRUE);
+ g_value_set_string (value, title);
+ str_unref (title);
+ break;
+ }
+}
+
+static bool_t get_selected (void * user, int row)
+{
+ int list = aud_playlist_get_active ();
+ return aud_playlist_entry_get_selected (list, aud_playlist_queue_get_entry (list, row));
+}
+
+static void set_selected (void * user, int row, bool_t selected)
+{
+ int list = aud_playlist_get_active ();
+ aud_playlist_entry_set_selected (list, aud_playlist_queue_get_entry (list, row), selected);
+}
+
+static void select_all (void * user, bool_t selected)
+{
+ int list = aud_playlist_get_active ();
+ int count = aud_playlist_queue_count (list);
+
+ for (int i = 0; i < count; i ++)
+ aud_playlist_entry_set_selected (list, aud_playlist_queue_get_entry (list, i), selected);
+}
+
+static void shift_rows (void * user, int row, int before)
+{
+ GArray * shift = g_array_new (FALSE, FALSE, sizeof (int));
+ int list = aud_playlist_get_active ();
+ int count = aud_playlist_queue_count (list);
+
+ for (int i = 0; i < count; i ++)
+ {
+ int entry = aud_playlist_queue_get_entry (list, i);
+
+ if (aud_playlist_entry_get_selected (list, entry))
+ {
+ g_array_append_val (shift, entry);
+
+ if (i < before)
+ before --;
+ }
+ }
+
+ aud_playlist_queue_delete_selected (list);
+
+ for (int i = 0; i < shift->len; i ++)
+ aud_playlist_queue_insert (list, before + i, g_array_index (shift, int, i));
+
+ g_array_free (shift, TRUE);
+}
+
+static const AudguiListCallbacks callbacks = {
+ .get_value = get_value,
+ .get_selected = get_selected,
+ .set_selected = set_selected,
+ .select_all = select_all,
+ .shift_rows = shift_rows};
+
+static void remove_selected (void)
+{
+ int list = aud_playlist_get_active ();
+ int count = aud_playlist_queue_count (list);
+
+ for (int i = 0; i < count; )
+ {
+ int entry = aud_playlist_queue_get_entry (list, i);
+
+ if (aud_playlist_entry_get_selected (list, entry))
+ {
+ aud_playlist_queue_delete (list, i, 1);
+ aud_playlist_entry_set_selected (list, entry, FALSE);
+ count --;
+ }
+ else
+ i ++;
+ }
+}
+
+static void update_hook (void * data, void * user)
+{
+ int oldrows = audgui_list_row_count (qm_list);
+ int newrows = aud_playlist_queue_count (aud_playlist_get_active ());
+ int focus = audgui_list_get_focus (qm_list);
+
+ audgui_list_update_rows (qm_list, 0, MIN (oldrows, newrows));
+ audgui_list_update_selection (qm_list, 0, MIN (oldrows, newrows));
+
+ if (newrows > oldrows)
+ audgui_list_insert_rows (qm_list, oldrows, newrows - oldrows);
+ if (newrows < oldrows)
+ audgui_list_delete_rows (qm_list, newrows, oldrows - newrows);
+
+ if (focus > newrows - 1)
+ audgui_list_set_focus (qm_list, newrows - 1);
+}
+
+static void destroy_cb (void)
+{
+ hook_dissociate ("playlist activate", update_hook);
+ hook_dissociate ("playlist update", update_hook);
+
+ qm_win = NULL;
+ qm_list = NULL;
+}
+
+static bool_t keypress_cb (GtkWidget * widget, GdkEventKey * event)
+{
+ if (event->keyval == GDK_A && (event->state & GDK_CONTROL_MASK))
+ select_all (NULL, TRUE);
+ else if (event->keyval == GDK_Delete)
+ remove_selected ();
+ else if (event->keyval == GDK_Escape)
+ gtk_widget_destroy (qm_win);
+ else
+ return FALSE;
+
+ return TRUE;
+}
+
+static void response_cb (GtkDialog * dialog, int response)
+{
+ switch (response)
+ {
+ case RESPONSE_REMOVE:;
+ remove_selected ();
+ break;
+ case GTK_RESPONSE_CLOSE:
+ gtk_widget_destroy (qm_win);
+ break;
+ }
+}
+void audgui_queue_manager_show (void)
+{
+ if (qm_win)
+ {
+ gtk_window_present ((GtkWindow *) qm_win);
+ return;
+ }
+
+ qm_win = gtk_dialog_new_with_buttons (_("Queue Manager"), NULL, 0,
+ GTK_STOCK_REMOVE, RESPONSE_REMOVE, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+ NULL);
+ gtk_window_set_default_size ((GtkWindow *) qm_win, 400, 250);
+
+ GtkWidget * vbox = gtk_dialog_get_content_area ((GtkDialog *) qm_win);
+
+ GtkWidget * scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) scrolled, GTK_SHADOW_IN);
+ gtk_box_pack_start ((GtkBox *) vbox, scrolled, TRUE, TRUE, 0);
+
+ int count = aud_playlist_queue_count (aud_playlist_get_active ());
+ qm_list = audgui_list_new (& callbacks, NULL, count);
+ gtk_tree_view_set_headers_visible ((GtkTreeView *) qm_list, FALSE);
+ audgui_list_add_column (qm_list, NULL, 0, G_TYPE_INT, 7);
+ audgui_list_add_column (qm_list, NULL, 1, G_TYPE_STRING, -1);
+ gtk_container_add ((GtkContainer *) scrolled, qm_list);
+
+ hook_associate ("playlist activate", update_hook, NULL);
+ hook_associate ("playlist update", update_hook, NULL);
+
+ g_signal_connect (qm_win, "destroy", (GCallback) destroy_cb, NULL);
+ g_signal_connect (qm_win, "key-press-event", (GCallback) keypress_cb, NULL);
+ g_signal_connect (qm_win, "response", (GCallback) response_cb, NULL);
+
+ gtk_widget_show_all (qm_win);
+}
+
+void audgui_queue_manager_cleanup (void)
+{
+ if (qm_win)
+ gtk_widget_destroy (qm_win);
+}
diff --git a/src/libaudgui/ui_about.c b/src/libaudgui/ui_about.c
deleted file mode 100644
index caeac03..0000000
--- a/src/libaudgui/ui_about.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007 Audacious development team
- *
- * Based on BMP:
- * Copyright (C) 2003-2004 BMP development team
- *
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <limits.h>
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <glib.h>
-#include <gtk/gtk.h>
-
-#include <gdk/gdk.h>
-#include <gdk/gdkkeysyms.h>
-
-#include <audacious/gtk-compat.h>
-#include <audacious/i18n.h>
-#include <audacious/misc.h>
-
-#include "libaudgui-gtk.h"
-
-/* ui_credits.c */
-GtkWidget * audgui_get_credits_widget (void);
-
-static GtkWidget *about_window = NULL;
-
-void
-audgui_show_about_window(void)
-{
- GtkWidget *brief_label;
- gchar *text;
- static const gchar *audacious_brief;
-
- if (about_window != NULL)
- {
- gtk_window_present(GTK_WINDOW(about_window));
- return;
- }
-
- aud_get_audacious_credits(&audacious_brief, NULL, NULL);
-
- about_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_container_set_border_width ((GtkContainer *) about_window, 3);
-
- g_signal_connect(about_window, "destroy",
- G_CALLBACK(gtk_widget_destroyed), &about_window);
-
- gtk_window_set_title(GTK_WINDOW(about_window), _("About Audacious"));
- gtk_window_set_resizable(GTK_WINDOW(about_window), FALSE);
- audgui_destroy_on_escape (about_window);
-
- GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
- gtk_container_add ((GtkContainer *) about_window, vbox);
-
- gchar name[PATH_MAX];
- snprintf (name, sizeof name, "%s/images/about-logo.png", aud_get_path
- (AUD_PATH_DATA_DIR));
- GtkWidget * image = gtk_image_new_from_file (name);
- gtk_box_pack_start ((GtkBox *) vbox, image, FALSE, FALSE, 0);
-
- brief_label = gtk_label_new(NULL);
- text = g_strdup_printf(_(audacious_brief), VERSION);
-
- gtk_label_set_markup(GTK_LABEL(brief_label), text);
- gtk_label_set_justify(GTK_LABEL(brief_label), GTK_JUSTIFY_CENTER);
- g_free(text);
-
- gtk_box_pack_start ((GtkBox *) vbox, brief_label, FALSE, FALSE, 0);
-
- GtkWidget * exp = gtk_expander_new (_("Credits"));
- gtk_container_add ((GtkContainer *) exp, audgui_get_credits_widget ());
- gtk_box_pack_start ((GtkBox *) vbox, exp, TRUE, TRUE, 0);
-
- gtk_widget_show_all(about_window);
-}
-
-void
-audgui_hide_about_window(void)
-{
- g_return_if_fail(about_window);
- gtk_widget_hide(GTK_WIDGET(about_window));
-}
diff --git a/src/libaudgui/ui_credits.c b/src/libaudgui/ui_credits.c
deleted file mode 100644
index ec7f0f6..0000000
--- a/src/libaudgui/ui_credits.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007 Audacious Team
- *
- * Based on BMP:
- * Copyright (C) 2003-2004 BMP development team
- *
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <glib.h>
-#include <gtk/gtk.h>
-
-#include <audacious/gtk-compat.h>
-#include <audacious/i18n.h>
-#include <audacious/misc.h>
-
-enum {
- COL_LEFT,
- COL_RIGHT,
- N_COLS
-};
-
-static GtkWidget *
-generate_credit_list(const gchar * text[], gboolean sec_space)
-{
- GtkWidget *scrollwin;
- GtkWidget *treeview;
- GtkListStore *list_store;
- GtkTreeIter iter;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- const gchar *const *item;
-
- list_store = gtk_list_store_new(N_COLS, G_TYPE_STRING, G_TYPE_STRING);
-
- item = text;
-
- while (*item) {
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set(list_store, &iter,
- COL_LEFT, _(item[0]), COL_RIGHT, _(item[1]), -1);
- item += 2;
-
- while (*item) {
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set(list_store, &iter,
- COL_LEFT, "", COL_RIGHT, _(*item++), -1);
- }
-
- ++item;
-
- if (*item && sec_space) {
- gtk_list_store_append(list_store, &iter);
- gtk_list_store_set(list_store, &iter,
- COL_LEFT, "", COL_RIGHT, "", -1);
- }
- }
-
- treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
- gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview), FALSE);
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
- gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
- GTK_SELECTION_NONE);
-
- renderer = gtk_cell_renderer_text_new();
- g_object_set(renderer, "xalign", 1.0, NULL);
- column = gtk_tree_view_column_new_with_attributes("Left", renderer,
- "text", COL_LEFT, NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
-
- renderer = gtk_cell_renderer_text_new();
- g_object_set(renderer, "xalign", 0.0, NULL);
- column = gtk_tree_view_column_new_with_attributes("Right", renderer,
- "text", COL_RIGHT,
- NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
-
- scrollwin = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin),
- GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrollwin), GTK_SHADOW_IN);
- gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
- gtk_container_set_border_width ((GtkContainer *) scrollwin, 4);
-
- return scrollwin;
-}
-
-GtkWidget * audgui_get_credits_widget (void)
-{
- GtkWidget *about_notebook;
- GtkWidget *list;
- const gchar **credit_text;
- const gchar **translators;
-
- aud_get_audacious_credits (NULL, &credit_text, &translators);
-
- about_notebook = gtk_notebook_new();
- gtk_widget_set_size_request (about_notebook, -1, 250);
-
- list = generate_credit_list(credit_text, TRUE);
- gtk_notebook_append_page(GTK_NOTEBOOK(about_notebook), list,
- gtk_label_new(_("Credits")));
-
- list = generate_credit_list(translators, FALSE);
- gtk_notebook_append_page(GTK_NOTEBOOK(about_notebook), list,
- gtk_label_new(_("Translators")));
-
- return about_notebook;
-}
diff --git a/src/libaudgui/ui_fileopener.c b/src/libaudgui/ui_fileopener.c
old mode 100755
new mode 100644
index b7d6794..93e9e3e
--- a/src/libaudgui/ui_fileopener.c
+++ b/src/libaudgui/ui_fileopener.c
@@ -1,53 +1,53 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007 Audacious development team
+/*
+ * ui_fileopener.c
+ * Copyright 2007-2011 Michael Färber and John Lindgren
*
- * 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; under version 3 of the License.
+ * 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; under version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
#include <gtk/gtk.h>
-#include <audacious/audconfig.h>
#include <audacious/i18n.h>
#include <audacious/drct.h>
#include <audacious/gtk-compat.h>
+#include <audacious/misc.h>
#include "config.h"
#include "libaudgui.h"
#include "libaudgui-gtk.h"
static void filebrowser_add_files (GtkFileChooser * browser, GSList * files,
- gboolean play)
+ bool_t play)
{
- GSList * node;
- GList * list = NULL;
-
- for (node = files; node != NULL; node = node->next)
- list = g_list_prepend (list, node->data);
+ Index * list = index_new ();
- list = g_list_reverse (list);
+ for (GSList * node = files; node; node = node->next)
+ index_append (list, str_get (node->data));
if (play)
aud_drct_pl_open_list (list);
else
aud_drct_pl_add_list (list, -1);
- g_list_free (list);
-
- g_free (aud_cfg->filesel_path);
- aud_cfg->filesel_path = gtk_file_chooser_get_current_folder (browser);
+ char * path = gtk_file_chooser_get_current_folder (browser);
+ if (path)
+ {
+ aud_set_string ("audgui", "filesel_path", path);
+ g_free (path);
+ }
}
static void
@@ -56,22 +56,23 @@ action_button_cb(GtkWidget *widget, gpointer data)
GtkWidget *window = g_object_get_data(data, "window");
GtkWidget *chooser = g_object_get_data(data, "chooser");
GtkWidget *toggle = g_object_get_data(data, "toggle-button");
- GSList *files;
- aud_cfg->close_dialog_open =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
- files = gtk_file_chooser_get_uris ((GtkFileChooser *) chooser);
+ GSList * files = gtk_file_chooser_get_uris ((GtkFileChooser *) chooser);
- filebrowser_add_files ((GtkFileChooser *) chooser, files, GPOINTER_TO_INT
- (g_object_get_data (data, "play-button")));
+ bool_t play = GPOINTER_TO_INT (g_object_get_data (data, "play-button"));
+ filebrowser_add_files ((GtkFileChooser *) chooser, files, play);
g_slist_foreach(files, (GFunc) g_free, NULL);
g_slist_free(files);
- if (aud_cfg->close_dialog_open)
- gtk_widget_destroy(window);
+ if (gtk_toggle_button_get_active ((GtkToggleButton *) toggle))
+ gtk_widget_destroy (window);
}
+static void toggled_cb (GtkToggleButton * toggle, void * option)
+{
+ aud_set_bool ("audgui", (const char *) option, gtk_toggle_button_get_active (toggle));
+}
static void
close_button_cb(GtkWidget *widget, gpointer data)
@@ -80,14 +81,14 @@ close_button_cb(GtkWidget *widget, gpointer data)
}
static void
-run_filebrowser_gtk2style(gboolean play_button, gboolean show)
+run_filebrowser_gtk2style(bool_t play_button, bool_t show)
{
static GtkWidget *window = NULL;
GtkWidget *vbox, *hbox, *bbox;
GtkWidget *chooser;
GtkWidget *action_button, *close_button;
GtkWidget *toggle;
- gchar *window_title, *toggle_text;
+ char *window_title, *toggle_text;
gpointer action_stock, storage;
if (!show) {
@@ -122,17 +123,22 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
chooser = gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_OPEN);
gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(chooser), TRUE);
- if (aud_cfg->filesel_path)
- gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser),
- aud_cfg->filesel_path);
+
+ char * path = aud_get_string ("audgui", "filesel_path");
+ if (path[0])
+ gtk_file_chooser_set_current_folder ((GtkFileChooser *) chooser, path);
+ g_free (path);
+
gtk_box_pack_start(GTK_BOX(vbox), chooser, TRUE, TRUE, 3);
hbox = gtk_hbox_new(TRUE, 0);
gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 3);
+ const char * option = play_button ? "close_dialog_open" : "close_dialog_add";
toggle = gtk_check_button_new_with_label(toggle_text);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
- aud_cfg->close_dialog_open ? TRUE : FALSE);
+ gtk_toggle_button_set_active ((GtkToggleButton *) toggle, aud_get_bool
+ ("audgui", option));
+ g_signal_connect (toggle, "toggled", (GCallback) toggled_cb, (void *) option);
gtk_box_pack_start(GTK_BOX(hbox), toggle, TRUE, TRUE, 3);
bbox = gtk_hbutton_box_new();
@@ -140,7 +146,7 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
gtk_box_set_spacing(GTK_BOX(bbox), 6);
gtk_box_pack_end(GTK_BOX(hbox), bbox, TRUE, TRUE, 3);
- close_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
+ close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
action_button = gtk_button_new_from_stock(action_stock);
gtk_container_add(GTK_CONTAINER(bbox), close_button);
gtk_container_add(GTK_CONTAINER(bbox), action_button);
@@ -171,10 +177,10 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
}
/*
- * run_filebrowser(gboolean play_button)
+ * run_filebrowser(bool_t play_button)
*
* Inputs:
- * - gboolean play_button
+ * - bool_t play_button
* TRUE - open files
* FALSE - add files
*
@@ -182,7 +188,7 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
* - none
*/
void
-audgui_run_filebrowser(gboolean play_button)
+audgui_run_filebrowser(bool_t play_button)
{
run_filebrowser_gtk2style(play_button, TRUE);
}
diff --git a/src/libaudgui/ui_gtk.c b/src/libaudgui/ui_gtk.c
deleted file mode 100644
index 24d2fe5..0000000
--- a/src/libaudgui/ui_gtk.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2009 Audacious development team.
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <gtk/gtk.h>
-
-#include <audacious/misc.h>
-
-void audgui_set_default_icon (void)
-{
-#ifdef _WIN32
- gtk_window_set_default_icon_from_file (aud_get_path (AUD_PATH_ICON_FILE),
- NULL);
-#else
- gtk_window_set_default_icon_name ("audacious");
-#endif
-}
diff --git a/src/libaudgui/ui_gtk.h b/src/libaudgui/ui_gtk.h
deleted file mode 100644
index 3859cf9..0000000
--- a/src/libaudgui/ui_gtk.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2009 Audacious development team.
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_UI_GTK_H
-#define AUDACIOUS_UI_GTK_H
-
-void audgui_set_default_icon(void);
-
-#endif /* AUDACIOUS_UI_GTK_H */
diff --git a/src/libaudgui/ui_jumptotrack.c b/src/libaudgui/ui_jumptotrack.c
index 52f3f24..9eaaeda 100644
--- a/src/libaudgui/ui_jumptotrack.c
+++ b/src/libaudgui/ui_jumptotrack.c
@@ -1,74 +1,56 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2006 Audacious development team.
+/*
+ * ui_jumptotrack.c
+ * Copyright 1998-2003 XMMS development team
+ * Copyright 2003-2004 BMP development team
+ * Copyright 2007-2011 Yoshiki Yazawa and John Lindgren
*
- * BMP - Cross-platform multimedia player
- * Copyright (C) 2003-2004 BMP development team.
+ * 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; under version 3 of the License.
*
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * 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; under version 3 of the License.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/types.h>
-
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
-#include <audacious/audconfig.h>
#include <audacious/drct.h>
#include <audacious/gtk-compat.h>
#include <audacious/i18n.h>
+#include <audacious/misc.h>
#include <audacious/playlist.h>
#include <libaudcore/hook.h>
-#include "icons-stock.h"
+#include "config.h"
+#include "libaudgui.h"
+#include "list.h"
#include "ui_jumptotrack_cache.h"
-#include "ui_regex.h"
-static void watchdog (void * hook_data, void * user_data);
+static void update_cb (void * data, void * user);
+static void activate_cb (void * data, void * user);
static GtkWidget *jump_to_track_win = NULL;
static JumpToTrackCache* cache = NULL;
-static void * storage = NULL;
-static gboolean watching = FALSE;
-
-static void change_song (guint pos)
-{
- gint playlist = aud_playlist_get_active ();
-
- aud_playlist_set_playing (playlist);
- aud_playlist_set_position (playlist, pos);
- aud_drct_play ();
-}
+static const GArray * search_matches;
+static GtkWidget * treeview, * filter_entry, * queue_button;
+static bool_t watching = FALSE;
void
audgui_jump_to_track_hide(void)
{
if (watching)
{
- hook_dissociate ("playlist update", watchdog);
+ hook_dissociate ("playlist update", update_cb);
+ hook_dissociate ("playlist activate", activate_cb);
watching = FALSE;
}
@@ -80,242 +62,126 @@ audgui_jump_to_track_hide(void)
ui_jump_to_track_cache_free (cache);
cache = NULL;
}
+
+ search_matches = NULL;
}
-static void
-ui_jump_to_track_jump(GtkTreeView * treeview)
+static int get_selected_entry (void)
{
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- GtkTreeIter iter;
- guint pos;
-
- model = gtk_tree_view_get_model(treeview);
- selection = gtk_tree_view_get_selection(treeview);
-
- if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
- return;
+ g_return_val_if_fail (treeview && search_matches, -1);
- gtk_tree_model_get(model, &iter, 0, &pos, -1);
+ GtkTreeModel * model = gtk_tree_view_get_model ((GtkTreeView *) treeview);
+ GtkTreeSelection * selection = gtk_tree_view_get_selection ((GtkTreeView *) treeview);
+ GtkTreeIter iter;
- change_song(pos - 1);
+ if (! gtk_tree_selection_get_selected (selection, NULL, & iter))
+ return -1;
- if(aud_cfg->close_jtf_dialog)
- audgui_jump_to_track_hide();
-}
+ GtkTreePath * path = gtk_tree_model_get_path (model, & iter);
+ int row = gtk_tree_path_get_indices (path)[0];
+ gtk_tree_path_free (path);
-static void
-ui_jump_to_track_toggle_cb(GtkWidget * toggle)
-{
- aud_cfg->close_jtf_dialog =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
+ g_return_val_if_fail (row >= 0 && row < search_matches->len, -1);
+ return g_array_index (search_matches, int, row);
}
-static void
-ui_jump_to_track_toggle2_cb(GtkWidget * toggle)
+static void do_jump (void)
{
- aud_cfg->remember_jtf_entry =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
-}
+ int entry = get_selected_entry ();
+ if (entry < 0)
+ return;
-static void
-ui_jump_to_track_jump_cb(GtkTreeView * treeview,
- gpointer data)
-{
- ui_jump_to_track_jump(treeview);
-}
+ int playlist = aud_playlist_get_active ();
+ aud_playlist_set_playing (playlist);
+ aud_playlist_set_position (playlist, entry);
+ aud_drct_play ();
-static void
-ui_jump_to_track_set_queue_button_label(GtkButton * button,
- guint pos)
-{
- if (aud_playlist_queue_find_entry (aud_playlist_get_active (), pos) != -1)
- gtk_button_set_label(button, _("Un_queue"));
- else
- gtk_button_set_label(button, _("_Queue"));
+ if (aud_get_bool ("audgui", "close_jtf_dialog"))
+ audgui_jump_to_track_hide();
}
-static void
-ui_jump_to_track_queue_cb(GtkButton * button,
- gpointer data)
+static void update_queue_button (int entry)
{
- GtkTreeView *treeview;
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- GtkTreeIter iter;
- guint pos;
-
- treeview = GTK_TREE_VIEW(data);
- model = gtk_tree_view_get_model(treeview);
- selection = gtk_tree_view_get_selection(treeview);
+ g_return_if_fail (queue_button);
- if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
- return;
-
- gtk_tree_model_get(model, &iter, 0, &pos, -1);
-
- if (aud_drct_pq_is_queued (pos - 1))
- aud_drct_pq_remove (pos - 1);
+ if (entry < 0)
+ {
+ gtk_button_set_label ((GtkButton *) queue_button, _("_Queue"));
+ gtk_widget_set_sensitive (queue_button, FALSE);
+ }
else
- aud_drct_pq_add (pos - 1);
+ {
+ if (aud_playlist_queue_find_entry (aud_playlist_get_active (), entry) != -1)
+ gtk_button_set_label ((GtkButton *) queue_button, _("Un_queue"));
+ else
+ gtk_button_set_label ((GtkButton *) queue_button, _("_Queue"));
- ui_jump_to_track_set_queue_button_label(button, (pos - 1));
+ gtk_widget_set_sensitive (queue_button, TRUE);
+ }
}
-static void
-ui_jump_to_track_selection_changed_cb(GtkTreeSelection *treesel,
- gpointer data)
+static void do_queue (void)
{
- GtkTreeView *treeview;
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- GtkTreeIter iter;
- guint pos;
-
- treeview = gtk_tree_selection_get_tree_view(treesel);
- model = gtk_tree_view_get_model(treeview);
- selection = gtk_tree_view_get_selection(treeview);
-
- if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
+ int playlist = aud_playlist_get_active ();
+ int entry = get_selected_entry ();
+ if (entry < 0)
return;
- gtk_tree_model_get(model, &iter, 0, &pos, -1);
+ int queued = aud_playlist_queue_find_entry (playlist, entry);
+ if (queued >= 0)
+ aud_playlist_queue_delete (playlist, queued, 1);
+ else
+ aud_playlist_queue_insert (playlist, -1, entry);
- ui_jump_to_track_set_queue_button_label(GTK_BUTTON(data), (pos - 1));
+ update_queue_button (entry);
}
-static gboolean
-ui_jump_to_track_edit_keypress_cb(GtkWidget * object,
- GdkEventKey * event,
- gpointer data)
+static void selection_changed (void)
{
- switch (event->keyval) {
- case GDK_Return:
- ui_jump_to_track_jump(GTK_TREE_VIEW(data));
- return TRUE;
- default:
- return FALSE;
- }
+ update_queue_button (get_selected_entry ());
}
-static gboolean
-ui_jump_to_track_keypress_cb(GtkWidget * object,
- GdkEventKey * event,
- gpointer data)
+static bool_t keypress_cb (GtkWidget * widget, GdkEventKey * event)
{
- switch (event->keyval) {
- case GDK_Escape:
+ if (event->keyval == GDK_Escape)
+ {
audgui_jump_to_track_hide();
return TRUE;
- case GDK_KP_Enter:
- ui_jump_to_track_queue_cb(NULL, data);
- return TRUE;
- default:
- return FALSE;
- };
+ }
return FALSE;
}
-static void
-ui_jump_to_track_edit_cb(GtkEntry * entry, gpointer user_data)
+static void fill_list (void)
{
- GtkTreeView *treeview = GTK_TREE_VIEW(user_data);
- GtkTreeIter iter;
- gint playlist;
- GtkListStore *store;
+ g_return_if_fail (treeview && filter_entry);
- const GArray *search_matches;
- int i;
-
- if (cache == NULL) {
+ if (! cache)
cache = ui_jump_to_track_cache_new();
- }
-
- /* FIXME: Remove the connected signals before clearing
- * (row-selected will still eventually arrive once) */
- store = GTK_LIST_STORE(gtk_tree_view_get_model(treeview));
-
- /* detach model from treeview */
- g_object_ref( store );
- gtk_tree_view_set_model( GTK_TREE_VIEW(treeview) , NULL );
-
- gtk_list_store_clear(store);
-
- search_matches = ui_jump_to_track_cache_search(cache,
- gtk_entry_get_text(entry));
- playlist = aud_playlist_get_active ();
+ search_matches = ui_jump_to_track_cache_search (cache, gtk_entry_get_text
+ ((GtkEntry *) filter_entry));
- for (i = 0; i < search_matches->len; i++)
- {
- gint entry = g_array_index (search_matches, gint, i);
- const gchar * title = aud_playlist_entry_get_title (playlist, entry,
- TRUE);
-
- if (title == NULL)
- continue;
-
- gtk_list_store_append(store, &iter);
- gtk_list_store_set (store, & iter, 0, 1 + entry, 1, title, -1);
- }
-
- /* attach the model again to the treeview */
- gtk_tree_view_set_model( GTK_TREE_VIEW(treeview) , GTK_TREE_MODEL(store) );
- g_object_unref( store );
-
- if (gtk_tree_model_get_iter_first ((GtkTreeModel *) store, & iter))
- gtk_tree_selection_select_iter (gtk_tree_view_get_selection (treeview),
- & iter);
+ audgui_list_delete_rows (treeview, 0, audgui_list_row_count (treeview));
+ audgui_list_insert_rows (treeview, 0, search_matches->len);
}
-static gboolean
-ui_jump_to_track_fill(gpointer treeview)
+static void clear_cb (GtkWidget * widget)
{
- gint playlist, entries, entry;
- GtkTreeIter iter;
- GtkListStore *jtf_store = (GtkListStore*)gtk_tree_view_get_model( GTK_TREE_VIEW(treeview) );
-
- /* detach model from treeview before fill */
- g_object_ref(jtf_store);
- gtk_tree_view_set_model( GTK_TREE_VIEW(treeview), NULL );
-
- gtk_list_store_clear(jtf_store);
-
- playlist = aud_playlist_get_active ();
- entries = aud_playlist_entry_count (playlist);
-
- for (entry = 0; entry < entries; entry ++)
- {
- gtk_list_store_append(GTK_LIST_STORE(jtf_store), &iter);
- gtk_list_store_set(GTK_LIST_STORE(jtf_store), &iter,
- 0, 1 + entry, 1, aud_playlist_entry_get_title (playlist, entry, TRUE),
- -1);
- }
-
- /* attach liststore to treeview */
- gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(jtf_store));
- g_object_unref(jtf_store);
- return FALSE;
+ g_return_if_fail (filter_entry);
+ gtk_entry_set_text ((GtkEntry *) filter_entry, "");
+ gtk_widget_grab_focus (filter_entry);
}
-static void clear_cb (GtkWidget * widget, void * data)
+static void update_cb (void * data, void * user)
{
- GtkWidget * entry = g_object_get_data (data, "edit");
+ g_return_if_fail (treeview);
- gtk_entry_set_text ((GtkEntry *) entry, "");
- gtk_widget_grab_focus (entry);
-}
-
-static void watchdog (void * hook_data, void * user_data)
-{
- GtkTreeView * tree;
GtkTreeModel * model;
GtkTreeIter iter;
GtkTreePath * path = NULL;
- if (GPOINTER_TO_INT (hook_data) <= PLAYLIST_UPDATE_SELECTION || storage ==
- NULL)
+ if (GPOINTER_TO_INT (data) <= PLAYLIST_UPDATE_SELECTION)
return;
if (cache != NULL)
@@ -324,167 +190,119 @@ static void watchdog (void * hook_data, void * user_data)
cache = NULL;
}
- tree = g_object_get_data (storage, "treeview");
-
/* If it's only a metadata update, save and restore the cursor position. */
- if (GPOINTER_TO_INT (hook_data) <= PLAYLIST_UPDATE_METADATA &&
- gtk_tree_selection_get_selected (gtk_tree_view_get_selection (tree),
- & model, & iter))
+ if (GPOINTER_TO_INT (data) <= PLAYLIST_UPDATE_METADATA &&
+ gtk_tree_selection_get_selected (gtk_tree_view_get_selection
+ ((GtkTreeView *) treeview), & model, & iter))
path = gtk_tree_model_get_path (model, & iter);
- /* Redo the search. */
- ui_jump_to_track_edit_cb (g_object_get_data (storage, "edit"), tree);
+ fill_list ();
if (path != NULL)
{
- gtk_tree_selection_select_path (gtk_tree_view_get_selection (tree), path);
- gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0);
+ gtk_tree_selection_select_path (gtk_tree_view_get_selection
+ ((GtkTreeView *) treeview), path);
+ gtk_tree_view_scroll_to_cell ((GtkTreeView *) treeview, path, NULL, TRUE, 0.5, 0);
gtk_tree_path_free (path);
}
}
-static gboolean delete_cb (GtkWidget * widget, GdkEvent * event, void * unused)
+static void activate_cb (void * data, void * user)
{
- audgui_jump_to_track_hide ();
- return TRUE;
+ update_cb (GINT_TO_POINTER (PLAYLIST_UPDATE_STRUCTURE), NULL);
}
-void
-audgui_jump_to_track(void)
+static void toggle_button_cb (GtkToggleButton * toggle, const char * setting)
{
- GtkWidget *scrollwin;
- GtkWidget *vbox, *bbox, *sep;
- GtkWidget *toggle, *toggle2;
- GtkWidget *jump, *queue, *close;
- GtkWidget *rescan;
- GtkWidget *search_label, *hbox;
- static GtkWidget *edit;
+ aud_set_bool ("audgui", setting, gtk_toggle_button_get_active (toggle));
+}
- GtkWidget *treeview = NULL;
- GtkListStore *jtf_store;
+static bool_t delete_cb (void)
+{
+ audgui_jump_to_track_hide ();
+ return TRUE;
+}
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
+static void list_get_value (void * user, int row, int column, GValue * value)
+{
+ g_return_if_fail (search_matches);
+ g_return_if_fail (column >= 0 && column < 2);
+ g_return_if_fail (row >= 0 && row < search_matches->len);
- if (cache == NULL)
- cache = ui_jump_to_track_cache_new ();
+ int playlist = aud_playlist_get_active ();
+ int entry = g_array_index (search_matches, int, row);
- if (! watching)
+ switch (column)
{
- hook_associate ("playlist update", watchdog, NULL);
- watching = TRUE;
- }
-
- if (jump_to_track_win) {
- gtk_window_present(GTK_WINDOW(jump_to_track_win));
-
- if(!aud_cfg->remember_jtf_entry)
- gtk_entry_set_text(GTK_ENTRY(edit), "");
-
- gtk_widget_grab_focus(edit);
- gtk_editable_select_region(GTK_EDITABLE(edit), 0, -1);
- return;
+ case 0:
+ g_value_set_int (value, 1 + entry);
+ break;
+ case 1:;
+ char * title = aud_playlist_entry_get_title (playlist, entry, TRUE);
+ g_return_if_fail (title);
+ g_value_set_string (value, title);
+ str_unref (title);
+ break;
}
+}
- #if defined(USE_REGEX_ONIGURUMA)
- /* set encoding for Oniguruma regex to UTF-8 */
- reg_set_encoding( REG_POSIX_ENCODING_UTF8 );
- onig_set_default_syntax( ONIG_SYNTAX_POSIX_BASIC );
- #endif
+static const AudguiListCallbacks callbacks = {
+ .get_value = list_get_value};
+static void create_window (void)
+{
jump_to_track_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_type_hint(GTK_WINDOW(jump_to_track_win),
GDK_WINDOW_TYPE_HINT_DIALOG);
- gtk_window_set_title(GTK_WINDOW(jump_to_track_win), _("Jump to Track"));
+ gtk_window_set_title(GTK_WINDOW(jump_to_track_win), _("Jump to Song"));
- gtk_window_set_position(GTK_WINDOW(jump_to_track_win), GTK_WIN_POS_CENTER);
- g_signal_connect (jump_to_track_win, "delete-event", (GCallback) delete_cb,
- NULL);
+ g_signal_connect (jump_to_track_win, "key_press_event", (GCallback) keypress_cb, NULL);
+ g_signal_connect (jump_to_track_win, "delete-event", (GCallback) delete_cb, NULL);
gtk_container_set_border_width(GTK_CONTAINER(jump_to_track_win), 10);
gtk_window_set_default_size(GTK_WINDOW(jump_to_track_win), 600, 500);
- vbox = gtk_vbox_new(FALSE, 5);
+ GtkWidget * vbox = gtk_vbox_new (FALSE, 5);
gtk_container_add(GTK_CONTAINER(jump_to_track_win), vbox);
- jtf_store = gtk_list_store_new(2, G_TYPE_UINT, G_TYPE_STRING);
- treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(jtf_store));
- g_object_unref(jtf_store);
-
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
-
- column = gtk_tree_view_column_new();
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
- gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-
- renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_set_attributes(column, renderer, "text", 0, NULL);
- gtk_tree_view_column_set_spacing(column, 4);
+ treeview = audgui_list_new (& callbacks, NULL, 0);
+ audgui_list_add_column (treeview, NULL, 0, G_TYPE_INT, 7);
+ audgui_list_add_column (treeview, NULL, 1, G_TYPE_STRING, -1);
- renderer = gtk_cell_renderer_text_new();
- gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_set_attributes(column, renderer, "text", 1, NULL);
- gtk_tree_view_column_set_spacing(column, 4);
- gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
+ g_signal_connect (gtk_tree_view_get_selection ((GtkTreeView *) treeview),
+ "changed", (GCallback) selection_changed, NULL);
+ g_signal_connect (treeview, "row-activated", (GCallback) do_jump, NULL);
- gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), 1);
-
- g_signal_connect(treeview, "row-activated",
- G_CALLBACK(ui_jump_to_track_jump), NULL);
-
- hbox = gtk_hbox_new(FALSE, 3);
+ GtkWidget * hbox = gtk_hbox_new (FALSE, 3);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3);
-
/* filter box */
- search_label = gtk_label_new(_("Filter: "));
+ GtkWidget * search_label = gtk_label_new (_("Filter: "));
gtk_label_set_markup_with_mnemonic(GTK_LABEL(search_label), _("_Filter:"));
gtk_box_pack_start(GTK_BOX(hbox), search_label, FALSE, FALSE, 0);
- edit = gtk_entry_new();
- gtk_editable_set_editable(GTK_EDITABLE(edit), TRUE);
- gtk_label_set_mnemonic_widget(GTK_LABEL(search_label), edit);
- g_signal_connect(edit, "changed",
- G_CALLBACK(ui_jump_to_track_edit_cb), treeview);
-
- g_signal_connect(edit, "key_press_event",
- G_CALLBACK(ui_jump_to_track_edit_keypress_cb), treeview);
-
- g_signal_connect(jump_to_track_win, "key_press_event",
- G_CALLBACK(ui_jump_to_track_keypress_cb), treeview);
-
- gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 3);
+ filter_entry = gtk_entry_new ();
+ gtk_label_set_mnemonic_widget ((GtkLabel *) search_label, filter_entry);
+ g_signal_connect (filter_entry, "changed", (GCallback) fill_list, NULL);
+ gtk_entry_set_activates_default ((GtkEntry *) filter_entry, TRUE);
+ gtk_box_pack_start ((GtkBox *) hbox, filter_entry, TRUE, TRUE, 3);
/* remember text entry */
- toggle2 = gtk_check_button_new_with_label(_("Remember"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle2),
- aud_cfg->remember_jtf_entry ? TRUE : FALSE);
+ GtkWidget * toggle2 = gtk_check_button_new_with_label (_("Remember"));
+ gtk_toggle_button_set_active ((GtkToggleButton *) toggle2, aud_get_bool
+ ("audgui", "remember_jtf_entry"));
gtk_box_pack_start(GTK_BOX(hbox), toggle2, FALSE, FALSE, 0);
- g_signal_connect(toggle2, "clicked",
- G_CALLBACK(ui_jump_to_track_toggle2_cb),
- toggle2);
+ g_signal_connect (toggle2, "clicked", (GCallback) toggle_button_cb, "remember_jtf_entry");
/* clear button */
- rescan = gtk_button_new_with_mnemonic (_("Clea_r"));
+ GtkWidget * rescan = gtk_button_new_with_mnemonic (_("Clea_r"));
gtk_button_set_image ((GtkButton *) rescan, gtk_image_new_from_stock
(GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON));
gtk_box_pack_start(GTK_BOX(hbox), rescan, FALSE, FALSE, 0);
+ g_signal_connect (rescan, "clicked", (GCallback) clear_cb, NULL);
-
- /* pack to container */
- storage = g_object_new(G_TYPE_OBJECT, NULL);
- g_object_set_data(storage, "widget", rescan);
- g_object_set_data(storage, "treeview", treeview);
- g_object_set_data(storage, "edit", edit);
-
- g_signal_connect (rescan, "clicked", (GCallback) clear_cb, storage);
-
- gtk_widget_set_can_default(rescan, TRUE);
- gtk_widget_grab_default(rescan);
-
- scrollwin = gtk_scrolled_window_new(NULL, NULL);
+ GtkWidget * scrollwin = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
@@ -492,54 +310,68 @@ audgui_jump_to_track(void)
GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(vbox), scrollwin, TRUE, TRUE, 0);
- sep = gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
-
- bbox = gtk_hbutton_box_new();
+ GtkWidget * bbox = gtk_hbutton_box_new ();
gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
gtk_box_set_spacing(GTK_BOX(bbox), 4);
gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
/* close dialog toggle */
- toggle = gtk_check_button_new_with_label(_("Close on Jump"));
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
- aud_cfg->close_jtf_dialog ? TRUE : FALSE);
+ GtkWidget * toggle = gtk_check_button_new_with_label(_("Close on Jump"));
+ gtk_toggle_button_set_active ((GtkToggleButton *) toggle, aud_get_bool
+ ("audgui", "close_jtf_dialog"));
gtk_box_pack_start(GTK_BOX(bbox), toggle, FALSE, FALSE, 0);
- g_signal_connect(toggle, "clicked",
- G_CALLBACK(ui_jump_to_track_toggle_cb),
- toggle);
-
- queue = gtk_button_new_with_mnemonic(_("_Queue"));
- gtk_button_set_image(GTK_BUTTON(queue),
- gtk_image_new_from_stock(AUD_STOCK_QUEUETOGGLE, GTK_ICON_SIZE_BUTTON));
- gtk_box_pack_start(GTK_BOX(bbox), queue, FALSE, FALSE, 0);
-
- gtk_widget_set_can_default(queue, TRUE);
- g_signal_connect(queue, "clicked",
- G_CALLBACK(ui_jump_to_track_queue_cb),
- treeview);
- g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed",
- G_CALLBACK(ui_jump_to_track_selection_changed_cb),
- queue);
-
- jump = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
+ g_signal_connect (toggle, "clicked", (GCallback) toggle_button_cb, "close_jtf_dialog");
+
+ /* queue button */
+ queue_button = gtk_button_new_with_mnemonic(_("_Queue"));
+ gtk_button_set_image ((GtkButton *) queue_button, gtk_image_new_from_stock
+ (AUD_STOCK_QUEUETOGGLE, GTK_ICON_SIZE_BUTTON));
+ gtk_box_pack_start ((GtkBox *) bbox, queue_button, FALSE, FALSE, 0);
+
+ g_signal_connect (queue_button, "clicked", (GCallback) do_queue, NULL);
+
+ /* jump button */
+ GtkWidget * jump = gtk_button_new_from_stock (GTK_STOCK_JUMP_TO);
gtk_box_pack_start(GTK_BOX(bbox), jump, FALSE, FALSE, 0);
- g_signal_connect_swapped(jump, "clicked",
- G_CALLBACK(ui_jump_to_track_jump_cb),
- treeview);
+ g_signal_connect (jump, "clicked", (GCallback) do_jump, NULL);
gtk_widget_set_can_default(jump, TRUE);
gtk_widget_grab_default(jump);
- close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ /* close button */
+ GtkWidget * close = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(bbox), close, FALSE, FALSE, 0);
g_signal_connect (close, "clicked", (GCallback) audgui_jump_to_track_hide,
NULL);
gtk_widget_set_can_default(close, TRUE);
+}
- g_timeout_add(100, (GSourceFunc)ui_jump_to_track_fill, treeview);
+void audgui_jump_to_track (void)
+{
+ bool_t create = (! jump_to_track_win);
+ if (create)
+ create_window ();
+
+ g_return_if_fail (filter_entry);
+
+ if (aud_get_bool ("audgui", "remember_jtf_entry"))
+ gtk_editable_select_region ((GtkEditable *) filter_entry, 0, -1);
+ else
+ gtk_entry_set_text ((GtkEntry *) filter_entry, "");
+
+ if (! watching)
+ {
+ fill_list ();
+ hook_associate ("playlist update", update_cb, NULL);
+ hook_associate ("playlist activate", activate_cb, NULL);
+ watching = TRUE;
+ }
+
+ if (create)
+ gtk_widget_show_all (jump_to_track_win);
+ else
+ gtk_window_present ((GtkWindow *) jump_to_track_win);
- gtk_widget_show_all(jump_to_track_win);
- gtk_widget_grab_focus(edit);
+ gtk_widget_grab_focus (filter_entry);
}
diff --git a/src/libaudgui/ui_jumptotrack.h b/src/libaudgui/ui_jumptotrack.h
deleted file mode 100644
index 244ee24..0000000
--- a/src/libaudgui/ui_jumptotrack.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2006 Audacious development team.
- *
- * BMP - Cross-platform multimedia player
- * Copyright (C) 2003-2004 BMP development team.
- *
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team.
- *
- * 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; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_UI_JUMPTOTRACK_H
-#define AUDACIOUS_UI_JUMPTOTRACK_H
-
-void ui_jump_to_track_update(GtkWidget * widget, gpointer user_data);
-void audgui_jump_to_track(void);
-void audgui_jump_to_track_hide(void);
-
-#endif /* AUDACIOUS_UI_JUMPTOTRACK_H */
diff --git a/src/libaudgui/ui_jumptotrack_cache.c b/src/libaudgui/ui_jumptotrack_cache.c
index 97202d0..9eed947 100644
--- a/src/libaudgui/ui_jumptotrack_cache.c
+++ b/src/libaudgui/ui_jumptotrack_cache.c
@@ -1,20 +1,21 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2008 Audacious development team.
+/*
+ * ui_jumptotrack_cache.c
+ * Copyright 2008-2011 Jussi Judin and John Lindgren
*
- * 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; under version 3 of the License.
+ * 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; under version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
#ifdef HAVE_CONFIG_H
@@ -22,6 +23,8 @@
#endif
#include <glib.h>
+
+#include <stdlib.h>
#include <string.h>
#include <assert.h>
#ifdef HAVE_SYS_TYPES_H
@@ -32,17 +35,40 @@
#include <audacious/playlist.h>
#include "ui_jumptotrack_cache.h"
-#include "ui_regex.h"
+#include "ui_regex.h"
// Struct to keep information about matches from searches.
typedef struct
{
- GArray* track_entries; // JumpToTrackEntry*
- GArray* normalized_titles; // gchar*
+ GArray * entries; // int
+ GArray * titles, * artists, * albums, * paths, * filenames; // char *
} KeywordMatches;
static void ui_jump_to_track_cache_init (JumpToTrackCache * cache);
+static KeywordMatches * keyword_matches_new (void)
+{
+ KeywordMatches * k = g_malloc (sizeof (KeywordMatches));
+ k->entries = g_array_new (FALSE, FALSE, sizeof (int));
+ k->titles = g_array_new (FALSE, FALSE, sizeof (char *));
+ k->artists = g_array_new (FALSE, FALSE, sizeof (char *));
+ k->albums = g_array_new (FALSE, FALSE, sizeof (char *));
+ k->paths = g_array_new (FALSE, FALSE, sizeof (char *));
+ k->filenames = g_array_new (FALSE, FALSE, sizeof (char *));
+ return k;
+}
+
+static void keyword_matches_free (KeywordMatches * k)
+{
+ g_array_free (k->entries, TRUE);
+ g_array_free (k->titles, TRUE);
+ g_array_free (k->artists, TRUE);
+ g_array_free (k->albums, TRUE);
+ g_array_free (k->paths, TRUE);
+ g_array_free (k->filenames, TRUE);
+ g_free (k);
+}
+
/**
* Creates an regular expression list usable in searches from search keyword.
*
@@ -57,7 +83,7 @@ static GSList*
ui_jump_to_track_cache_regex_list_create(const GString* keyword)
{
GSList *regex_list = NULL;
- gchar **words = NULL;
+ char **words = NULL;
int i = -1;
/* Chop the key string into ' '-separated key regex-pattern strings */
words = g_strsplit(keyword->str, " ", 0);
@@ -108,8 +134,8 @@ ui_jump_to_track_cache_regex_list_free(GSList* regex_list)
/**
* Checks if 'song' matches all regular expressions in 'regex_list'.
*/
-static gboolean
-ui_jump_to_track_match(const gchar * song, GSList *regex_list)
+static bool_t
+ui_jump_to_track_match(const char * song, GSList *regex_list)
{
if ( song == NULL )
return FALSE;
@@ -140,37 +166,41 @@ ui_jump_to_track_cache_match_keyword(JumpToTrackCache* cache,
const GString* keyword)
{
GSList* regex_list = ui_jump_to_track_cache_regex_list_create(keyword);
- GArray * track_entries = g_array_new (FALSE, FALSE, sizeof (gint));
- GArray* normalized_titles = g_array_new(FALSE, FALSE, sizeof(gchar*));
- gboolean match = FALSE;
- int i = 0;
- for (i = 0; i < search_space->normalized_titles->len; i++)
+ KeywordMatches * k = keyword_matches_new ();
+
+ for (int i = 0; i < search_space->entries->len; i ++)
{
- gchar* title = g_array_index(search_space->normalized_titles, gchar*, i);
+ char * title = g_array_index (search_space->titles, char *, i);
+ char * artist = g_array_index (search_space->artists, char *, i);
+ char * album = g_array_index (search_space->albums, char *, i);
+ char * path = g_array_index (search_space->paths, char *, i);
+ char * filename = g_array_index (search_space->filenames, char *, i);
+ bool_t match;
if (regex_list != NULL)
- match = ui_jump_to_track_match(title, regex_list);
+ match = ui_jump_to_track_match (title, regex_list)
+ || ui_jump_to_track_match (artist, regex_list)
+ || ui_jump_to_track_match (album, regex_list)
+ || ui_jump_to_track_match (path, regex_list)
+ || ui_jump_to_track_match (filename, regex_list);
else
match = TRUE;
if (match) {
- g_array_append_val (track_entries, g_array_index
- (search_space->track_entries, gint, i));
- g_array_append_val(normalized_titles, title);
+ g_array_append_val (k->entries, g_array_index (search_space->entries, int, i));
+ g_array_append_val (k->titles, title);
+ g_array_append_val (k->artists, artist);
+ g_array_append_val (k->albums, album);
+ g_array_append_val (k->paths, path);
+ g_array_append_val (k->filenames, filename);
}
}
- KeywordMatches* keyword_matches = g_new(KeywordMatches, 1);
- keyword_matches->track_entries = track_entries;
- keyword_matches->normalized_titles = normalized_titles;
-
- g_hash_table_insert(cache->keywords,
- GINT_TO_POINTER(g_string_hash(keyword)),
- keyword_matches);
+ g_hash_table_insert (cache->keywords, GINT_TO_POINTER (g_string_hash (keyword)), k);
ui_jump_to_track_cache_regex_list_free(regex_list);
- return track_entries;
+ return k->entries;
}
/**
@@ -182,12 +212,18 @@ ui_jump_to_track_cache_match_keyword(JumpToTrackCache* cache,
*
* String returned by this function should be freed manually.
*/
-static gchar *
-normalize_search_string(const gchar* string)
+
+/* calls str_unref() on <string> */
+static char * normalize_search_string (char * string)
{
- gchar* normalized_string = g_utf8_normalize(string, -1, G_NORMALIZE_NFKD);
- gchar* folded_string = g_utf8_casefold(normalized_string, -1);
+ if (! string)
+ return NULL;
+
+ char* normalized_string = g_utf8_normalize(string, -1, G_NORMALIZE_NFKD);
+ char* folded_string = g_utf8_casefold(normalized_string, -1);
g_free(normalized_string);
+ str_unref (string);
+
return folded_string;
}
@@ -197,21 +233,14 @@ normalize_search_string(const gchar* string)
static void
ui_jump_to_track_cache_free_keywordmatch_data(KeywordMatches* match_entry)
{
- int i = 0;
- assert(match_entry->normalized_titles->len == match_entry->track_entries->len);
- for (i = 0; i < match_entry->normalized_titles->len; i++)
- g_free(g_array_index(match_entry->normalized_titles, gchar*, i));
-}
-
-/**
- * Frees the memory reserved for an search result.
- */
-static void
-ui_jump_to_track_cache_free_cache_entry(gpointer entry)
-{
- KeywordMatches* match_entry = (KeywordMatches*)entry;
- g_array_free(match_entry->track_entries, TRUE);
- g_array_free(match_entry->normalized_titles, TRUE);
+ for (int i = 0; i < match_entry->entries->len; i ++)
+ {
+ g_free (g_array_index (match_entry->titles, char *, i));
+ g_free (g_array_index (match_entry->artists, char *, i));
+ g_free (g_array_index (match_entry->albums, char *, i));
+ g_free (g_array_index (match_entry->paths, char *, i));
+ g_free (g_array_index (match_entry->filenames, char *, i));
+ }
}
/**
@@ -224,8 +253,7 @@ ui_jump_to_track_cache_new()
{
JumpToTrackCache* cache = g_new(JumpToTrackCache, 1);
- cache->keywords = g_hash_table_new_full(NULL, NULL, NULL,
- ui_jump_to_track_cache_free_cache_entry);
+ cache->keywords = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) keyword_matches_free);
ui_jump_to_track_cache_init (cache);
return cache;
}
@@ -260,37 +288,39 @@ ui_jump_to_track_cache_clear(JumpToTrackCache* cache)
*/
static void ui_jump_to_track_cache_init (JumpToTrackCache * cache)
{
- gint playlist, entries, entry;
- GArray * track_entries = g_array_new (FALSE, FALSE, sizeof (gint));
- GArray* normalized_titles = g_array_new(FALSE, FALSE, sizeof(gchar*));
- GString* empty_keyword = g_string_new("");
-
- // Reset cache state
- ui_jump_to_track_cache_clear(cache);
+ // Reset cache state
+ ui_jump_to_track_cache_clear(cache);
- // Initialize cache with playlist data
- playlist = aud_playlist_get_active ();
- entries = aud_playlist_entry_count (playlist);
+ // Initialize cache with playlist data
+ int playlist = aud_playlist_get_active ();
+ int entries = aud_playlist_entry_count (playlist);
- for (entry = 0; entry < entries; entry ++)
- {
- gchar * title = normalize_search_string (aud_playlist_entry_get_title
- (playlist, entry, TRUE));
+ KeywordMatches * k = keyword_matches_new ();
- g_array_append_val (track_entries, entry);
- g_array_append_val (normalized_titles, title);
- }
+ for (int entry = 0; entry < entries; entry ++)
+ {
+ Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, TRUE);
+ char * title = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_TITLE, NULL) : NULL);
+ char * artist = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_ARTIST, NULL) : NULL);
+ char * album = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_ALBUM, NULL) : NULL);
+ char * path = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_FILE_PATH, NULL) : NULL);
+ char * filename = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_FILE_NAME, NULL) : NULL);
+ if (tuple)
+ tuple_unref (tuple);
+
+ g_array_append_val (k->entries, entry);
+ g_array_append_val (k->titles, title);
+ g_array_append_val (k->artists, artist);
+ g_array_append_val (k->albums, album);
+ g_array_append_val (k->paths, path);
+ g_array_append_val (k->filenames, filename);
+ }
- // Finally insert all titles into cache into an empty key "" so that
- // the matchable data has specified place to be.
- KeywordMatches* keyword_data = g_new(KeywordMatches, 1);
- keyword_data->track_entries = track_entries;
- keyword_data->normalized_titles = normalized_titles;
- g_hash_table_insert(cache->keywords,
- GINT_TO_POINTER(g_string_hash(empty_keyword)),
- keyword_data);
- g_string_free(empty_keyword,
- TRUE);
+ // Finally insert all titles into cache into an empty key "" so that
+ // the matchable data has specified place to be.
+ GString * empty_keyword = g_string_new ("");
+ g_hash_table_insert (cache->keywords, GINT_TO_POINTER (g_string_hash (empty_keyword)), k);
+ g_string_free (empty_keyword, TRUE);
}
/**
@@ -341,15 +371,15 @@ static void ui_jump_to_track_cache_init (JumpToTrackCache * cache)
* after a few letters typed on playlists with thousands of songs and
* reduce useless iteration quite a lot.
*
- * Return: GArray of gint
+ * Return: GArray of int
*/
const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache, const
- gchar * keyword)
+ char * keyword)
{
- gchar* normalized_keyword = normalize_search_string(keyword);
+ char * normalized_keyword = normalize_search_string (str_get (keyword));
GString* keyword_string = g_string_new(normalized_keyword);
GString* match_string = g_string_new(normalized_keyword);
- gsize match_string_length = keyword_string->len;
+ int match_string_length = keyword_string->len;
while (match_string_length >= 0)
{
@@ -365,7 +395,7 @@ const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache, const
g_string_free(keyword_string, TRUE);
g_string_free(match_string, TRUE);
g_free(normalized_keyword);
- return matched_entries->track_entries;
+ return matched_entries->entries;
}
// Do normal search by using the result of previous search
@@ -385,8 +415,7 @@ const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache, const
// the empty string to match against.
AUDDBG("One should never get to this point. Something is really wrong with \
cache->keywords hash table.");
- assert(FALSE);
- g_return_val_if_fail(FALSE, (GArray*)-1);
+ abort ();
}
void ui_jump_to_track_cache_free (JumpToTrackCache * cache)
diff --git a/src/libaudgui/ui_jumptotrack_cache.h b/src/libaudgui/ui_jumptotrack_cache.h
index f3c4163..26c8114 100644
--- a/src/libaudgui/ui_jumptotrack_cache.h
+++ b/src/libaudgui/ui_jumptotrack_cache.h
@@ -1,24 +1,25 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2008 Audacious development team.
+/*
+ * ui_jumptotrack_cache.h
+ * Copyright 2008 Jussi Judin
*
- * 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; under version 3 of the License.
+ * 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; under version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
-#ifndef AUDACIOUS_UI_JUMPTOTRACK_CACHE_H
-#define AUDACIOUS_UI_JUMPTOTRACK_CACHE_H
+#ifndef LIBAUDGUI_UI_JUMPTOTRACK_CACHE_H
+#define LIBAUDGUI_UI_JUMPTOTRACK_CACHE_H
#include <glib.h>
@@ -31,7 +32,7 @@ struct _JumpToTrackCache
extern JumpToTrackCache* ui_jump_to_track_cache_new(void);
extern const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache,
- const gchar * keyword);
+ const char * keyword);
extern void ui_jump_to_track_cache_free(JumpToTrackCache* cache);
-#endif /* AUDACIOUS_UI_JUMPTOTRACK_CACHE_H */
+#endif
diff --git a/src/libaudgui/ui_playlist_manager.c b/src/libaudgui/ui_playlist_manager.c
index 09ec102..8a43df5 100644
--- a/src/libaudgui/ui_playlist_manager.c
+++ b/src/libaudgui/ui_playlist_manager.c
@@ -1,31 +1,32 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2011 Audacious development team.
+/*
+ * ui_playlist_manager.c
+ * Copyright 2006-2011 Giacomo Lozito and John Lindgren
*
- * 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; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <gtk/gtk.h>
-#include <audacious/audconfig.h>
#include <audacious/gtk-compat.h>
#include <audacious/i18n.h>
+#include <audacious/misc.h>
#include <audacious/playlist.h>
#include <libaudcore/hook.h>
#include "config.h"
+#include "init.h"
#include "libaudgui.h"
#include "libaudgui-gtk.h"
#include "list.h"
@@ -34,13 +35,17 @@ static GtkWidget * playman_win = NULL;
static void save_position (GtkWidget * window)
{
- gtk_window_get_position ((GtkWindow *) window,
- & aud_cfg->playlist_manager_x, & aud_cfg->playlist_manager_y);
- gtk_window_get_size ((GtkWindow *) window,
- & aud_cfg->playlist_manager_width, & aud_cfg->playlist_manager_height);
+ int x, y, w, h;
+ gtk_window_get_position ((GtkWindow *) window, & x, & y);
+ gtk_window_get_size ((GtkWindow *) window, & w, & h);
+
+ aud_set_int ("audgui", "playlist_manager_x", x);
+ aud_set_int ("audgui", "playlist_manager_y", y);
+ aud_set_int ("audgui", "playlist_manager_w", w);
+ aud_set_int ("audgui", "playlist_manager_h", h);
}
-static gboolean hide_cb (GtkWidget * window)
+static bool_t hide_cb (GtkWidget * window)
{
save_position (window);
gtk_widget_hide (window);
@@ -54,7 +59,8 @@ static void rename_cb (void)
static void new_cb (GtkButton * button, void * unused)
{
- aud_playlist_insert (-1);
+ aud_playlist_insert (aud_playlist_get_active () + 1);
+ aud_playlist_set_active (aud_playlist_get_active () + 1);
}
static void delete_cb (GtkButton * button, GtkWidget * list)
@@ -68,12 +74,14 @@ static void save_config_cb (void * hook_data, void * user_data)
save_position ((GtkWidget *) user_data);
}
-static void get_value (void * user, gint row, gint column, GValue * value)
+static void get_value (void * user, int row, int column, GValue * value)
{
switch (column)
{
- case 0:
- g_value_set_string (value, aud_playlist_get_title (row));
+ case 0:;
+ char * title = aud_playlist_get_title (row);
+ g_value_set_string (value, title);
+ str_unref (title);
break;
case 1:
g_value_set_int (value, aud_playlist_entry_count (row));
@@ -81,30 +89,30 @@ static void get_value (void * user, gint row, gint column, GValue * value)
}
}
-static gboolean get_selected (void * user, gint row)
+static bool_t get_selected (void * user, int row)
{
return (row == aud_playlist_get_active ());
}
-static void set_selected (void * user, gint row, gboolean selected)
+static void set_selected (void * user, int row, bool_t selected)
{
if (selected)
aud_playlist_set_active (row);
}
-static void select_all (void * user, gboolean selected)
+static void select_all (void * user, bool_t selected)
{
}
-static void activate_row (void * user, gint row)
+static void activate_row (void * user, int row)
{
aud_playlist_set_active (row);
- if (aud_cfg->playlist_manager_close_on_activate)
+ if (aud_get_bool ("audgui", "playlist_manager_close_on_activate"))
hide_cb (playman_win);
}
-static void shift_rows (void * user, gint row, gint before)
+static void shift_rows (void * user, int row, int before)
{
if (before < row)
aud_playlist_reorder (row, before, 1);
@@ -124,37 +132,93 @@ static const AudguiListCallbacks callbacks = {
.get_data = NULL,
.receive_data = NULL};
-static gboolean position_changed = FALSE;
+static bool_t search_cb (GtkTreeModel * model, int column, const char * key,
+ GtkTreeIter * iter, void * user)
+{
+ GtkTreePath * path = gtk_tree_model_get_path (model, iter);
+ g_return_val_if_fail (path, TRUE);
+ int row = gtk_tree_path_get_indices (path)[0];
+ gtk_tree_path_free (path);
+
+ char * temp = aud_playlist_get_title (row);
+ g_return_val_if_fail (temp, TRUE);
+ char * title = g_utf8_strdown (temp, -1);
+ str_unref (temp);
+
+ temp = g_utf8_strdown (key, -1);
+ char * * keys = g_strsplit (temp, " ", 0);
+ g_free (temp);
+
+ bool_t match = FALSE;
+
+ for (int i = 0; keys[i]; i ++)
+ {
+ if (! keys[i][0])
+ continue;
+
+ if (strstr (title, keys[i]))
+ match = TRUE;
+ else
+ {
+ match = FALSE;
+ break;
+ }
+ }
+
+ g_free (title);
+ g_strfreev (keys);
+
+ return ! match; /* TRUE == not matched, FALSE == matched */
+}
+
+static bool_t position_changed = FALSE;
+static bool_t playlist_activated = FALSE;
static void update_hook (void * data, void * list)
{
- if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE)
+ int rows = aud_playlist_count ();
+
+ if (GPOINTER_TO_INT (data) == PLAYLIST_UPDATE_STRUCTURE)
{
- gint old_rows = audgui_list_row_count (list);
- gint rows = aud_playlist_count ();
+ int old_rows = audgui_list_row_count (list);
if (rows < old_rows)
- {
audgui_list_delete_rows (list, rows, old_rows - rows);
- old_rows = rows;
- }
+ else if (rows > old_rows)
+ audgui_list_insert_rows (list, old_rows, rows - old_rows);
- audgui_list_update_rows (list, 0, old_rows);
- audgui_list_update_selection (list, 0, old_rows);
+ position_changed = TRUE;
+ playlist_activated = TRUE;
+ }
- if (rows > old_rows)
- audgui_list_insert_rows (list, old_rows, rows - old_rows);
+ if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_METADATA)
+ audgui_list_update_rows (list, 0, rows);
+ if (playlist_activated)
+ {
audgui_list_set_focus (list, aud_playlist_get_active ());
+ audgui_list_update_selection (list, 0, rows);
+ playlist_activated = FALSE;
}
-
- if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE || position_changed)
+
+ if (position_changed)
{
audgui_list_set_highlight (list, aud_playlist_get_playing ());
position_changed = FALSE;
}
}
+static void activate_hook (void * data, void * list)
+{
+ if (aud_playlist_update_pending ())
+ playlist_activated = TRUE;
+ else
+ {
+ audgui_list_set_focus (list, aud_playlist_get_active ());
+ audgui_list_update_selection (list, 0, aud_playlist_count ());
+ }
+}
+
static void position_hook (void * data, void * list)
{
if (aud_playlist_update_pending ())
@@ -163,8 +227,13 @@ static void position_hook (void * data, void * list)
audgui_list_set_highlight (list, aud_playlist_get_playing ());
}
-void
-audgui_playlist_manager_ui_show (GtkWidget *mainwin)
+static void close_on_activate_cb (GtkToggleButton * toggle)
+{
+ aud_set_bool ("audgui", "playlist_manager_close_on_activate",
+ gtk_toggle_button_get_active (toggle));
+}
+
+void audgui_playlist_manager (void)
{
GtkWidget *playman_vbox;
GtkWidget * playman_pl_lv, * playman_pl_lv_sw;
@@ -181,7 +250,6 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
playman_win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_window_set_type_hint( GTK_WINDOW(playman_win), GDK_WINDOW_TYPE_HINT_DIALOG );
- gtk_window_set_transient_for( GTK_WINDOW(playman_win) , GTK_WINDOW(mainwin) );
gtk_window_set_title( GTK_WINDOW(playman_win), _("Playlist Manager") );
gtk_container_set_border_width ((GtkContainer *) playman_win, 6);
playman_win_hints.min_width = 400;
@@ -189,12 +257,15 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
gtk_window_set_geometry_hints( GTK_WINDOW(playman_win) , GTK_WIDGET(playman_win) ,
&playman_win_hints , GDK_HINT_MIN_SIZE );
- if (aud_cfg->playlist_manager_width)
+ int x = aud_get_int ("audgui", "playlist_manager_x");
+ int y = aud_get_int ("audgui", "playlist_manager_y");
+ int w = aud_get_int ("audgui", "playlist_manager_w");
+ int h = aud_get_int ("audgui", "playlist_manager_h");
+
+ if (w && h)
{
- gtk_window_move ((GtkWindow *) playman_win, aud_cfg->playlist_manager_x,
- aud_cfg->playlist_manager_y);
- gtk_window_set_default_size ((GtkWindow *) playman_win,
- aud_cfg->playlist_manager_width, aud_cfg->playlist_manager_height);
+ gtk_window_move ((GtkWindow *) playman_win, x, y);
+ gtk_window_set_default_size ((GtkWindow *) playman_win, w, h);
}
g_signal_connect ((GObject *) playman_win, "delete-event", (GCallback)
@@ -205,11 +276,14 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
gtk_container_add( GTK_CONTAINER(playman_win) , playman_vbox );
playman_pl_lv = audgui_list_new (& callbacks, NULL, aud_playlist_count ());
- audgui_list_add_column (playman_pl_lv, _("Title"), 0, G_TYPE_STRING, TRUE);
- audgui_list_add_column (playman_pl_lv, _("Entries"), 1, G_TYPE_INT, FALSE);
+ audgui_list_add_column (playman_pl_lv, _("Title"), 0, G_TYPE_STRING, -1);
+ audgui_list_add_column (playman_pl_lv, _("Entries"), 1, G_TYPE_INT, 7);
audgui_list_set_highlight (playman_pl_lv, aud_playlist_get_playing ());
+ gtk_tree_view_set_search_equal_func ((GtkTreeView *) playman_pl_lv,
+ search_cb, NULL, NULL);
hook_associate ("playlist update", update_hook, playman_pl_lv);
- hook_associate ("playlist position", position_hook, playman_pl_lv);
+ hook_associate ("playlist activate", activate_hook, playman_pl_lv);
+ hook_associate ("playlist set playing", position_hook, playman_pl_lv);
playman_pl_lv_sw = gtk_scrolled_window_new( NULL , NULL );
gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) playman_pl_lv_sw,
@@ -250,16 +324,25 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
button = gtk_check_button_new_with_mnemonic
(_("_Close dialog on activating playlist"));
gtk_box_pack_start ((GtkBox *) hbox, button, FALSE, FALSE, 0);
- audgui_connect_check_box (button,
- & aud_cfg->playlist_manager_close_on_activate);
+ gtk_toggle_button_set_active ((GtkToggleButton *) button, aud_get_bool
+ ("audgui", "playlist_manager_close_on_activate"));
+ g_signal_connect (button, "toggled", (GCallback) close_on_activate_cb, NULL);
gtk_widget_show_all( playman_win );
hook_associate ("config save", save_config_cb, playman_win);
}
-void audgui_playlist_manager_destroy(void)
+void audgui_playlist_manager_cleanup (void)
{
- if (playman_win)
- hide_cb (playman_win);
+ if (! playman_win)
+ return;
+
+ hook_dissociate ("playlist update", update_hook);
+ hook_dissociate ("playlist activate", activate_hook);
+ hook_dissociate ("playlist set playing", position_hook);
+ hook_dissociate ("config save", save_config_cb);
+
+ gtk_widget_destroy (playman_win);
+ playman_win = NULL;
}
diff --git a/src/libaudgui/ui_regex.h b/src/libaudgui/ui_regex.h
index 587f8d3..aecf3fa 100644
--- a/src/libaudgui/ui_regex.h
+++ b/src/libaudgui/ui_regex.h
@@ -1,20 +1,21 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2006 Audacious development team.
+/*
+ * ui_regex.h
+ * Copyright 2010 Carlo Bramini
*
- * 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; under version 3 of the License.
+ * 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; under version 3 of the License.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
#ifndef __UI_REGEX_H__
diff --git a/src/libaudgui/ui_urlopener.c b/src/libaudgui/ui_urlopener.c
index 45e39c0..2750013 100644
--- a/src/libaudgui/ui_urlopener.c
+++ b/src/libaudgui/ui_urlopener.c
@@ -1,26 +1,23 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2010 Audacious development team
+/*
+ * ui_urlopener.c
+ * Copyright 1998-2003 XMMS development team
+ * Copyright 2003-2004 BMP development team
+ * Copyright 2008-2011 Tomasz MoÅ and John Lindgren
*
- * Based on BMP:
- * Copyright (C) 2003-2004 BMP development team.
+ * 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; under version 3 of the License.
*
- * Based on XMMS:
- * Copyright (C) 1998-2003 XMMS development team.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
- * 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; under version 3 of the License.
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses>.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
*/
#ifdef HAVE_CONFIG_H
@@ -30,7 +27,6 @@
#include <glib.h>
#include <gtk/gtk.h>
-#include <audacious/audconfig.h>
#include <audacious/gtk-compat.h>
#include <audacious/i18n.h>
#include <audacious/drct.h>
@@ -39,20 +35,14 @@
#include "libaudgui.h"
#include "libaudgui-gtk.h"
-static void
-urlopener_add_url_callback(GtkWidget * widget,
- GtkEntry * entry)
+static void urlopener_add_url_callback (GtkWidget * widget, GtkEntry * entry)
{
- const gchar *text;
-
- text = gtk_entry_get_text(entry);
- aud_util_add_url_history_entry(text);
+ aud_history_add (gtk_entry_get_text (entry));
}
-GtkWidget * urlopener_add_url_dialog_new (GCallback func, gboolean open)
+GtkWidget * urlopener_add_url_dialog_new (GCallback func, bool_t open)
{
GtkWidget * win, * vbox, * bbox, * cancel, * ok, * combo, * entry;
- GList *url;
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title ((GtkWindow *) win, open ? _("Open URL") : _("Add URL"));
@@ -71,9 +61,9 @@ GtkWidget * urlopener_add_url_dialog_new (GCallback func, gboolean open)
gtk_window_set_focus(GTK_WINDOW(win), entry);
gtk_entry_set_text(GTK_ENTRY(entry), "");
- for (url = aud_cfg->url_history; url; url = g_list_next(url))
- gtk_combo_box_text_append_text ((GtkComboBoxText *) combo,
- (const gchar *) url->data);
+ const char * path;
+ for (int i = 0; (path = aud_history_get (i)); i ++)
+ gtk_combo_box_text_append_text ((GtkComboBoxText *) combo, path);
g_signal_connect(entry, "activate",
G_CALLBACK(urlopener_add_url_callback),
@@ -114,7 +104,7 @@ static void
on_add_url_add_clicked(GtkWidget * widget,
GtkWidget * entry)
{
- const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
+ const char *text = gtk_entry_get_text(GTK_ENTRY(entry));
if (text != NULL && * text)
aud_drct_pl_add (text, -1);
@@ -124,13 +114,13 @@ static void
on_add_url_ok_clicked(GtkWidget * widget,
GtkWidget * entry)
{
- const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
+ const char *text = gtk_entry_get_text(GTK_ENTRY(entry));
if (text != NULL && * text)
aud_drct_pl_open (text);
}
-void audgui_show_add_url_window (gboolean open)
+void audgui_show_add_url_window (bool_t open)
{
static GtkWidget *url_window = NULL;
diff --git a/src/libaudgui/urilist.c b/src/libaudgui/urilist.c
index a7def39..9e81394 100644
--- a/src/libaudgui/urilist.c
+++ b/src/libaudgui/urilist.c
@@ -1,22 +1,20 @@
/*
- * libaudgui/urilist.c
+ * urilist.c
* Copyright 2010 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <string.h>
@@ -29,18 +27,11 @@
#include "libaudgui.h"
-typedef void (* ForEachFunc) (gchar *, void *);
-
-typedef struct
-{
- gint playlist, at;
- struct index * index;
-}
-AddState;
+typedef void (* ForEachFunc) (char *, void *);
-static gchar * check_uri (gchar * name)
+static char * check_uri (char * name)
{
- gchar * new;
+ char * new;
if (strstr (name, "://") || ! (new = filename_to_uri (name)))
return name;
@@ -49,9 +40,9 @@ static gchar * check_uri (gchar * name)
return new;
}
-static void urilist_for_each (const gchar * list, ForEachFunc func, void * user)
+static void urilist_for_each (const char * list, ForEachFunc func, void * user)
{
- const gchar * end, * next;
+ const char * end, * next;
while (list[0])
{
@@ -67,56 +58,33 @@ static void urilist_for_each (const gchar * list, ForEachFunc func, void * user)
}
}
-static void add_to_glist (gchar * name, GList * * listp)
+static void add_to_index (char * name, Index * index)
{
- * listp = g_list_prepend (* listp, name);
-}
-
-void audgui_urilist_open (const gchar * list)
-{
- GList * glist = NULL;
-
- urilist_for_each (list, (ForEachFunc) add_to_glist, & glist);
- glist = g_list_reverse (glist);
-
- aud_drct_pl_open_list (glist);
-
- g_list_foreach (glist, (GFunc) g_free, NULL);
- g_list_free (glist);
+ index_append (index, str_get (name));
+ g_free (name);
}
-static void add_full (gchar * name, AddState * state)
+void audgui_urilist_open (const char * list)
{
- if (vfs_file_test (name, G_FILE_TEST_IS_DIR))
- {
- aud_playlist_insert_folder (state->playlist, state->at, name, FALSE);
- g_free (name);
- }
- else if (aud_filename_is_playlist (name))
- {
- gint entries = aud_playlist_entry_count (state->playlist);
- aud_playlist_insert_playlist (state->playlist, state->at, name);
- state->at += aud_playlist_entry_count (state->playlist) - entries;
- }
- else
- index_append (state->index, name);
+ Index * filenames = index_new ();
+ urilist_for_each (list, (ForEachFunc) add_to_index, filenames);
+ aud_drct_pl_open_list (filenames);
}
-void audgui_urilist_insert (gint playlist, gint at, const gchar * list)
+void audgui_urilist_insert (int playlist, int at, const char * list)
{
- AddState state = {playlist, at, index_new ()};
-
- urilist_for_each (list, (ForEachFunc) add_full, & state);
- aud_playlist_entry_insert_batch (playlist, state.at, state.index, NULL);
+ Index * filenames = index_new ();
+ urilist_for_each (list, (ForEachFunc) add_to_index, filenames);
+ aud_playlist_entry_insert_batch (playlist, at, filenames, NULL, FALSE);
}
-gchar * audgui_urilist_create_from_selected (gint playlist)
+char * audgui_urilist_create_from_selected (int playlist)
{
- gint entries = aud_playlist_entry_count (playlist);
- gint space = 0;
- gint count, length;
- const gchar * name;
- gchar * buffer, * set;
+ int entries = aud_playlist_entry_count (playlist);
+ int space = 0;
+ int count, length;
+ char * name;
+ char * buffer, * set;
for (count = 0; count < entries; count ++)
{
@@ -126,6 +94,7 @@ gchar * audgui_urilist_create_from_selected (gint playlist)
name = aud_playlist_entry_get_filename (playlist, count);
g_return_val_if_fail (name != NULL, NULL);
space += strlen (name) + 1;
+ str_unref (name);
}
if (! space)
@@ -147,6 +116,7 @@ gchar * audgui_urilist_create_from_selected (gint playlist)
set += length;
* set ++ = '\n';
space -= length + 1;
+ str_unref (name);
}
* -- set = 0; /* last newline replaced with null */
diff --git a/src/libaudgui/util.c b/src/libaudgui/util.c
index ac3667a..e1322ed 100644
--- a/src/libaudgui/util.c
+++ b/src/libaudgui/util.c
@@ -1,22 +1,20 @@
/*
- * libaudgui/util.c
- * Copyright 2010 John Lindgren
+ * util.c
+ * Copyright 2010-2011 John Lindgren
*
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
*
- * Audacious 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, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions, and the following disclaimer.
*
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions, and the following disclaimer in the documentation
+ * provided with the distribution.
*
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
*/
#include <gdk/gdkkeysyms.h>
@@ -25,22 +23,26 @@
#include <audacious/debug.h>
#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
#include <audacious/playlist.h>
-#include <audacious/plugin.h>
#include <audacious/misc.h>
#include <libaudcore/audstrings.h>
#include <libaudcore/hook.h>
+#include "config.h"
+#include "init.h"
#include "libaudgui.h"
#include "libaudgui-gtk.h"
+static GdkPixbuf * current_pixbuf;
+
void audgui_hide_on_delete (GtkWidget * widget)
{
g_signal_connect (widget, "delete-event", (GCallback)
gtk_widget_hide_on_delete, NULL);
}
-static gboolean escape_cb (GtkWidget * widget, GdkEventKey * event, void
+static bool_t escape_cb (GtkWidget * widget, GdkEventKey * event, void
(* action) (GtkWidget * widget))
{
if (event->keyval == GDK_Escape)
@@ -55,51 +57,61 @@ static gboolean escape_cb (GtkWidget * widget, GdkEventKey * event, void
void audgui_hide_on_escape (GtkWidget * widget)
{
g_signal_connect (widget, "key-press-event", (GCallback) escape_cb,
- gtk_widget_hide);
+ (void *) gtk_widget_hide);
}
void audgui_destroy_on_escape (GtkWidget * widget)
{
g_signal_connect (widget, "key-press-event", (GCallback) escape_cb,
- gtk_widget_destroy);
+ (void *) gtk_widget_destroy);
}
-static void toggle_cb (GtkToggleButton * toggle, gboolean * setting)
+static void toggle_cb (GtkToggleButton * toggle, bool_t * setting)
{
* setting = gtk_toggle_button_get_active (toggle);
}
-void audgui_connect_check_box (GtkWidget * box, gboolean * setting)
+void audgui_connect_check_box (GtkWidget * box, bool_t * setting)
{
gtk_toggle_button_set_active ((GtkToggleButton *) box, * setting);
g_signal_connect ((GObject *) box, "toggled", (GCallback) toggle_cb, setting);
}
void audgui_simple_message (GtkWidget * * widget, GtkMessageType type,
- const gchar * title, const gchar * text)
+ const char * title, const char * text)
{
AUDDBG ("%s\n", text);
if (* widget != NULL)
{
-#if GTK_CHECK_VERSION (2, 10, 0)
- const gchar * old = NULL;
+ const char * old = NULL;
g_object_get ((GObject *) * widget, "text", & old, NULL);
g_return_if_fail (old);
- if (! strcmp (old, text))
+ int messages = GPOINTER_TO_INT (g_object_get_data ((GObject *)
+ * widget, "messages"));
+
+ if (messages > 10)
+ text = _("\n(Further messages have been hidden.)");
+
+ if (strstr (old, text))
goto CREATED;
- gchar both[strlen (old) + strlen (text) + 2];
+ char both[strlen (old) + strlen (text) + 2];
snprintf (both, sizeof both, "%s\n%s", old, text);
g_object_set ((GObject *) * widget, "text", both, NULL);
-#endif
+
+ g_object_set_data ((GObject *) * widget, "messages", GINT_TO_POINTER
+ (messages + 1));
+
goto CREATED;
}
* widget = gtk_message_dialog_new (NULL, 0, type, GTK_BUTTONS_OK, "%s", text);
gtk_window_set_title ((GtkWindow *) * widget, title);
+ g_object_set_data ((GObject *) * widget, "messages", GINT_TO_POINTER (1));
+
g_signal_connect (* widget, "response", (GCallback) gtk_widget_destroy, NULL);
audgui_destroy_on_escape (* widget);
g_signal_connect (* widget, "destroy", (GCallback) gtk_widget_destroyed,
@@ -109,63 +121,54 @@ CREATED:
gtk_window_present ((GtkWindow *) * widget);
}
-GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size)
+GdkPixbuf * audgui_pixbuf_from_data (const void * data, int64_t size)
{
GdkPixbuf * pixbuf = NULL;
GdkPixbufLoader * loader = gdk_pixbuf_loader_new ();
GError * error = NULL;
- if (gdk_pixbuf_loader_write (loader, data, size, &error))
- pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
+ if (gdk_pixbuf_loader_write (loader, data, size, & error) &&
+ gdk_pixbuf_loader_close (loader, & error))
+ {
+ if ((pixbuf = gdk_pixbuf_loader_get_pixbuf (loader)))
+ g_object_ref (pixbuf);
+ }
else
AUDDBG("error while loading pixbuf: %s\n", error->message);
- gdk_pixbuf_loader_close (loader, NULL);
+ g_object_unref (loader);
return pixbuf;
}
-GdkPixbuf * audgui_pixbuf_for_entry (gint list, gint entry)
+GdkPixbuf * audgui_pixbuf_for_entry (int list, int entry)
{
- const gchar * name = aud_playlist_entry_get_filename (list, entry);
+ char * name = aud_playlist_entry_get_filename (list, entry);
g_return_val_if_fail (name, NULL);
- /* Don't get album art for network files -- too slow. */
- if (! strncmp (name, "http://", 7) || ! strncmp (name, "https://", 8) ||
- ! strncmp (name, "mms://", 6))
- goto FALLBACK;
+ const void * data;
+ int64_t size;
- AUDDBG ("Trying to load pixbuf for %s.\n", name);
- PluginHandle * decoder = aud_playlist_entry_get_decoder (list, entry, FALSE);
- if (! decoder)
- goto FALLBACK;
+ aud_art_get_data (name, & data, & size);
- void * data;
- gint size;
-
- if (aud_file_read_image (name, decoder, & data, & size))
+ if (data)
{
GdkPixbuf * p = audgui_pixbuf_from_data (data, size);
- g_free (data);
- if (p)
- return p;
- }
-
- gchar * assoc = aud_get_associated_image_file (name);
+ aud_art_unref (name);
- if (assoc)
- {
- GdkPixbuf * p = gdk_pixbuf_new_from_file (assoc, NULL);
- g_free (assoc);
if (p)
+ {
+ str_unref (name);
return p;
+ }
}
-FALLBACK:;
+ str_unref (name);
+
AUDDBG ("Using fallback pixbuf.\n");
static GdkPixbuf * fallback = NULL;
if (! fallback)
{
- gchar * path = g_strdup_printf ("%s/images/album.png",
+ char * path = g_strdup_printf ("%s/images/album.png",
aud_get_path (AUD_PATH_DATA_DIR));
fallback = gdk_pixbuf_new_from_file (path, NULL);
g_free (path);
@@ -175,44 +178,33 @@ FALLBACK:;
return fallback;
}
-
-static void clear_cached_pixbuf (void * list, GdkPixbuf * * pixbuf)
+void audgui_pixbuf_uncache (void)
{
- if (GPOINTER_TO_INT (list) != aud_playlist_get_playing () || ! * pixbuf)
- return;
-
- AUDDBG ("Clearing cached pixbuf.\n");
- g_object_unref ((GObject *) * pixbuf);
- * pixbuf = NULL;
+ if (current_pixbuf)
+ {
+ g_object_unref ((GObject *) current_pixbuf);
+ current_pixbuf = NULL;
+ }
}
GdkPixbuf * audgui_pixbuf_for_current (void)
{
- static GdkPixbuf * pixbuf = NULL;
- static gboolean hooked = FALSE;
-
- if (! hooked)
+ if (! current_pixbuf)
{
- hook_associate ("playlist position", (HookFunction) clear_cached_pixbuf,
- & pixbuf);
- hooked = TRUE;
+ int list = aud_playlist_get_playing ();
+ current_pixbuf = audgui_pixbuf_for_entry (list, aud_playlist_get_position (list));
}
- if (! pixbuf)
- {
- gint list = aud_playlist_get_playing ();
- pixbuf = audgui_pixbuf_for_entry (list, aud_playlist_get_position (list));
- }
+ if (current_pixbuf)
+ g_object_ref ((GObject *) current_pixbuf);
- if (pixbuf)
- g_object_ref ((GObject *) pixbuf);
- return pixbuf;
+ return current_pixbuf;
}
-void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size)
+void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, int size)
{
- gint width = gdk_pixbuf_get_width (* pixbuf);
- gint height = gdk_pixbuf_get_height (* pixbuf);
+ int width = gdk_pixbuf_get_width (* pixbuf);
+ int height = gdk_pixbuf_get_height (* pixbuf);
GdkPixbuf * pixbuf2;
if (width > height)
@@ -236,3 +228,10 @@ void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size)
g_object_unref (* pixbuf);
* pixbuf = pixbuf2;
}
+
+void audgui_set_default_icon (void)
+{
+#ifndef _WIN32
+ gtk_window_set_default_icon_name ("audacious");
+#endif
+}
diff --git a/src/libaudtag/Makefile b/src/libaudtag/Makefile
index db21388..0b7cef5 100644
--- a/src/libaudtag/Makefile
+++ b/src/libaudtag/Makefile
@@ -16,6 +16,6 @@ INCLUDES = audtag.h
include ../../buildsys.mk
include ../../extra.mk
-CPPFLAGS += ${GLIB_CFLAGS} ${MOWGLI_CFLAGS} -D_AUDACIOUS_CORE -I.. -I../..
+CPPFLAGS += ${GLIB_CFLAGS} -D_AUDACIOUS_CORE -I.. -I../..
CFLAGS += ${LIB_CFLAGS}
-LIBS += ${GLIB_LIBS} ${MOWGLI_LIBS} -L../libaudcore -laudcore
+LIBS += ${GLIB_LIBS} -L../libaudcore -laudcore
diff --git a/src/libaudtag/aac/aac.c b/src/libaudtag/aac/aac.c
deleted file mode 100644
index 8751d8a..0000000
--- a/src/libaudtag/aac/aac.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#include <glib/gstdio.h>
-#include <libaudcore/tuple.h>
-#include <libaudcore/vfs.h>
-#include "../tag_module.h"
-#include "aac.h"
-#include "../util.h"
-
-static const char *ID3v1GenreList[] = {
- "Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk",
- "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies",
- "Other", "Pop", "R&B", "Rap", "Reggae", "Rock",
- "Techno", "Industrial", "Alternative", "Ska", "Death Metal", "Pranks",
- "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk",
- "Fusion", "Trance", "Classical", "Instrumental", "Acid", "House",
- "Game", "Sound Clip", "Gospel", "Noise", "AlternRock", "Bass",
- "Soul", "Punk", "Space", "Meditative", "Instrumental Pop", "Instrumental Rock",
- "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk",
- "Eurodance", "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta",
- "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", "Cabaret",
- "New Wave", "Psychedelic", "Rave", "Showtunes", "Trailer", "Lo-Fi",
- "Tribal", "Acid Punk", "Acid Jazz", "Polka", "Retro", "Musical",
- "Rock & Roll", "Hard Rock", "Folk", "Folk/Rock", "National Folk", "Swing",
- "Fast-Fusion", "Bebob", "Latin", "Revival", "Celtic", "Bluegrass", "Avantgarde",
- "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", "Big Band",
- "Chorus", "Easy Listening", "Acoustic", "Humour", "Speech", "Chanson",
- "Opera", "Chamber Music", "Sonata", "Symphony", "Booty Bass", "Primus",
- "Porn Groove", "Satire", "Slow Jam", "Club", "Tango", "Samba",
- "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", "Duet",
- "Punk Rock", "Drum Solo", "A capella", "Euro-House", "Dance Hall",
- "Goa", "Drum & Bass", "Club House", "Hardcore", "Terror",
- "Indie", "BritPop", "NegerPunk", "Polsk Punk", "Beat",
- "Christian Gangsta", "Heavy Metal", "Black Metal", "Crossover", "Contemporary C",
- "Christian Rock", "Merengue", "Salsa", "Thrash Metal", "Anime", "JPop",
- "SynthPop",
-};
-
-gchar *atom_types[] = { "\251alb", "\251nam", "cprt", "\251art", "\251ART", "trkn", "\251day", "gnre", "desc" };
-
-Atom *readAtom(VFSFile * fd)
-{
- guint32 size = read_BEuint32(fd);
- if (size > vfs_fsize(fd))
- return NULL;
-
- Atom *atom = g_new0(Atom, 1);
- atom->size = size;
- atom->name = read_char_data(fd, 4);
- atom->body = read_char_data(fd, atom->size - 8);
- atom->type = 0;
- return atom;
-}
-
-void writeAtom(VFSFile * fd, Atom * atom)
-{
- write_BEuint32(fd, atom->size);
- vfs_fwrite(atom->name, 4, 1, fd);
- vfs_fwrite(atom->body, atom->size - 8, 1, fd);
-}
-
-void printAtom(Atom * atom)
-{
- TAGDBG("size = %x\n", atom->size);
- TAGDBG("name = %s\n", atom->name);
-}
-
-StrDataAtom *readStrDataAtom(VFSFile * fd)
-{
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom->atomsize = read_BEuint32(fd);
- atom->name = read_char_data(fd, 4);
- atom->datasize = read_BEuint32(fd);
- atom->dataname = read_char_data(fd, 4);
- atom->vflag = read_BEuint32(fd);
- atom->nullData = read_BEuint32(fd);
- atom->data = read_char_data(fd, atom->datasize - 16);
- atom->type = 1;
- return atom;
-}
-
-void writeStrDataAtom(VFSFile * fd, StrDataAtom * atom)
-{
- write_BEuint32(fd, atom->atomsize);
- vfs_fwrite(atom->name, 4, 1, fd);
- write_BEuint32(fd, atom->datasize);
- vfs_fwrite(atom->dataname, 4, 1, fd);
- write_BEuint32(fd, atom->vflag);
- write_BEuint32(fd, atom->nullData);
- vfs_fwrite(atom->data, atom->datasize - 16, 1, fd);
-}
-
-Atom *findAtom(VFSFile * fd, gchar * name)
-{
- Atom *atom = readAtom(fd);
- while (strcmp(atom->name, name) && !vfs_feof(fd))
- {
- g_free(atom);
- atom = readAtom(fd);
- }
- if (vfs_feof(fd))
- {
- g_free(atom);
- TAGDBG("The atom %s could not be found\n", name);
- return NULL;
- }
- return atom;
-}
-
-Atom *getilstAtom(VFSFile * fd)
-{
- Atom *moov = findAtom(fd, MOOV);
-
- // search atom childs
- vfs_fseek(fd, -(moov->size - 7), SEEK_CUR);
- Atom *udta = findAtom(fd, UDTA);
-
-
- vfs_fseek(fd, -(udta->size - 7), SEEK_CUR);
- Atom *meta = findAtom(fd, META);
-
- vfs_fseek(fd, -(meta->size - 11), SEEK_CUR);
- Atom *ilst = findAtom(fd, ILST);
-
- TAGDBG("zzz = %d\n", vfs_ftell(fd));
- ilstFileOffset = vfs_ftell(fd) - ilst->size;
- vfs_fseek(fd, -(ilst->size - 7), SEEK_CUR);
-
- return ilst;
-
-}
-
-int getAtomID(gchar * name)
-{
- g_return_val_if_fail(name != NULL, -1);
- int i = 0;
- for (i = 0; i < MP4_ITEMS_NO; i++)
- {
- if (!strcmp(name, atom_types[i]))
- return i;
- }
- return -1;
-}
-
-StrDataAtom *makeAtomWithData(const gchar * data, StrDataAtom * atom, int field)
-{
- guint32 charsize = strlen(data);
- atom->atomsize = charsize + 24;
- atom->name = atom_types[field];
- atom->datasize = charsize + 16;
- atom->dataname = "data";
- atom->vflag = 0x0;
- atom->nullData = 0x0;
- atom->data = (gchar *) data;
- atom->type = 1;
- return atom;
-
-}
-
-void writeAtomListToFile(VFSFile * from, VFSFile * to, int offset, mowgli_list_t * list)
-{
- //read free atom if we have any :D
- guint32 oset = ilstFileOffset + ilstAtom->size;
- vfs_fseek(from, oset, SEEK_SET);
- mowgli_list_t *atoms_before_free = mowgli_list_create();
- Atom *atom = readAtom(from);
- while (strcmp(atom->name, "free") && !vfs_feof(from))
- {
- mowgli_node_add(atom, mowgli_node_create(), atoms_before_free);
- g_free(atom);
- atom = readAtom(from);
- }
- g_free(atom);
- if (vfs_feof(from))
- {
- TAGDBG("No free atoms\n");
- g_free(atom);
- atom = NULL;
- }
-
- //write ilst atom header
- gchar il[4] = ILST;
- vfs_fwrite(&newilstSize, 4, 1, to);
- vfs_fwrite(il, 4, 1, to);
- //write ilst
-
- mowgli_node_t *n, *tn;
-
- MOWGLI_LIST_FOREACH_SAFE(n, tn, list->head)
- {
- if (((Atom *) (n->data))->type == 0)
- {
- writeAtom(to, (Atom *) (n->data));
- }
- else
- {
- writeStrDataAtom(to, (StrDataAtom *) (n->data));
- }
- }
-
- //write all atoms before free
- if (atoms_before_free->count != 0)
- {
-
- MOWGLI_LIST_FOREACH_SAFE(n, tn, list->head)
- {
- writeAtom(to, (Atom *) (n->data));
- }
- }
- if (atom != NULL)
- {
- atom->size -= newilstSize - ilstAtom->size;
- }
- writeAtom(to, atom);
-}
-
-gboolean aac_can_handle_file(VFSFile * f)
-{
- Atom *first_atom = readAtom(f);
- if (first_atom == NULL)
- return FALSE;
- if (!strcmp(first_atom->name, FTYP))
- return TRUE;
- return FALSE;
-}
-
-gboolean aac_read_tag (Tuple * tuple, VFSFile * f)
-{
- if (ilstAtom)
- g_free(ilstAtom);
- ilstAtom = getilstAtom(f);
- int size_read = 0;
-
- if (dataAtoms != NULL)
- {
- mowgli_node_t *n, *tn;
-
- MOWGLI_LIST_FOREACH_SAFE(n, tn, dataAtoms->head)
- {
- mowgli_node_delete(n, dataAtoms);
- }
- }
- dataAtoms = mowgli_list_create();
-
- while (size_read < ilstAtom->size)
- {
- Atom *at = readAtom(f);
- mowgli_node_add(at, mowgli_node_create(), dataAtoms);
- int atomtype = getAtomID(at->name);
- if (atomtype == -1)
- {
- size_read += at->size;
- continue;
- }
- g_free(at);
- vfs_fseek(f, -(at->size), SEEK_CUR);
- StrDataAtom *a = readStrDataAtom(f);
- size_read += a->atomsize;
-
- switch (atomtype)
- {
- case MP4_ALBUM:
- {
- tuple_associate_string(tuple, FIELD_ALBUM, NULL, a->data);
- }
- break;
- case MP4_TITLE:
- {
- tuple_associate_string(tuple, FIELD_TITLE, NULL, a->data);
- }
- break;
- case MP4_COPYRIGHT:
- {
- tuple_associate_string(tuple, FIELD_COPYRIGHT, NULL, a->data);
- }
- break;
- case MP4_ARTIST:
- case MP4_ARTIST2:
- {
- tuple_associate_string(tuple, FIELD_ARTIST, NULL, a->data);
- }
- break;
- case MP4_TRACKNR:
- {
- //tuple_associate_string(tuple,FIELD_ALBUM,NULL,a->data);
- }
- break;
- case MP4_YEAR:
- {
- tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi(a->data));
- }
- break;
- case MP4_GENRE:
- {
- guint8 *val = (guint8 *) (a->data + (a->datasize - 17));
- const gchar *genre = ID3v1GenreList[*val - 1];
- tuple_associate_string(tuple, FIELD_GENRE, NULL, genre);
- }
- break;
- case MP4_COMMENT:
- {
- tuple_associate_string(tuple, FIELD_COMMENT, NULL, a->data);
- }
- break;
- }
- }
-
- return TRUE;
-}
-
-gboolean aac_write_tag (Tuple * tuple, VFSFile * f)
-{
-#ifdef BROKEN
- return FALSE;
-#endif
- newilstSize = 0;
- mowgli_node_t *n, *tn;
- mowgli_list_t *newdataAtoms;
- newdataAtoms = mowgli_list_create();
-
- MOWGLI_LIST_FOREACH_SAFE(n, tn, dataAtoms->head)
- {
- int atomtype = getAtomID(((StrDataAtom *) (n->data))->name);
- switch (atomtype)
- {
- case MP4_ALBUM:
- {
- const gchar *strVal = tuple_get_string(tuple, FIELD_ALBUM, NULL);
- if (strVal != NULL)
- {
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom = makeAtomWithData(strVal, atom, MP4_ALBUM);
- mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
- newilstSize += atom->atomsize;
- }
- else
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- }
- break;
- case MP4_TITLE:
- {
- const gchar *strVal = tuple_get_string(tuple, FIELD_TITLE, NULL);
- if (strVal != NULL)
- {
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom = makeAtomWithData(strVal, atom, MP4_TITLE);
- mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
- newilstSize += atom->atomsize;
- }
- else
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- }
- break;
- case MP4_COPYRIGHT:
- {
- const gchar *strVal = tuple_get_string(tuple, FIELD_COPYRIGHT, NULL);
- if (strVal != NULL)
- {
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom = makeAtomWithData(strVal, atom, MP4_COPYRIGHT);
- mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
- newilstSize += atom->atomsize;
- }
- else
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- }
- break;
- case MP4_ARTIST:
- case MP4_ARTIST2:
- {
- const gchar *strVal = tuple_get_string(tuple, FIELD_ARTIST, NULL);
- if (strVal != NULL)
- {
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom = makeAtomWithData(strVal, atom, MP4_ARTIST2);
- mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
- newilstSize += atom->atomsize;
- }
- else
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- }
- break;
- case MP4_TRACKNR:
- {
- //tuple_associate_string(tuple,FIELD_ALBUM,NULL,a->data);
- }
- break;
- case MP4_YEAR:
- {
- int iyear = tuple_get_int(tuple, FIELD_YEAR, NULL);
- gchar *strVal = g_strdup_printf("%d", iyear);
- if (strVal != NULL)
- {
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom = makeAtomWithData(strVal, atom, MP4_YEAR);
- mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
- newilstSize += atom->atomsize;
- }
- else
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- }
- break;
- /*
- case MP4_GENRE:
- {
-
- guint8 *val = (guint8*)(a->data + (a->datasize-17));
- const gchar* genre = ID3v1GenreList[*val-1];
- tuple_associate_string(tuple,FIELD_GENRE,NULL,genre);
-
- }break;
- */
- case MP4_COMMENT:
- {
- const gchar *strVal = tuple_get_string(tuple, FIELD_COMMENT, NULL);
- if (strVal != NULL)
- {
- StrDataAtom *atom = g_new0(StrDataAtom, 1);
- atom = makeAtomWithData(strVal, atom, MP4_COMMENT);
- mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
- newilstSize += atom->atomsize;
- }
- else
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- }
- break;
- default:
- {
- mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
- newilstSize += ((Atom *) (n->data))->size;
- }
- break;
- }
- }
-
- VFSFile *tmp;
- const gchar *tmpdir = g_get_tmp_dir();
- gchar *tmp_path = g_strdup_printf("file://%s/%s", tmpdir, "tmp.mp4");
- tmp = vfs_fopen(tmp_path, "w");
- copyAudioData(f, tmp, 0, ilstFileOffset);
- writeAtomListToFile(f, tmp, ilstFileOffset, newdataAtoms);
- return TRUE;
-}
diff --git a/src/libaudtag/aac/aac.h b/src/libaudtag/aac/aac.h
deleted file mode 100644
index 8f4d57d..0000000
--- a/src/libaudtag/aac/aac.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AAC_H
-#define AAC_H
-#include <libaudcore/tuple.h>
-#include <libaudcore/vfs.h>
-#include "../tag_module.h"
-
-#define FTYP "ftyp"
-#define MOOV "moov"
-#define ILST "ilst"
-#define UDTA "udta"
-#define META "meta"
-#define ILST "ilst"
-#define FREE "free"
-
-enum {
- MP4_ALBUM = 0,
- MP4_TITLE,
- MP4_COPYRIGHT,
- MP4_ARTIST,
- MP4_ARTIST2,
- MP4_TRACKNR,
- MP4_YEAR,
- MP4_GENRE,
- MP4_COMMENT,
- MP4_ITEMS_NO
-};
-
-typedef struct mp4atom
-{
- guint32 size;
- gchar* name; //4 bytes
- gchar* body;
- int type;
-}Atom;
-
-
-typedef struct strdataatom
-{
- guint32 atomsize;
- gchar* name;
- guint32 datasize;
- gchar* dataname;
- guint32 vflag;
- guint32 nullData;
- gchar* data;
- int type;
-}StrDataAtom;
-
-Atom *ilstAtom;
-guint64 ilstFileOffset;
-guint32 newilstSize ;
-mowgli_list_t *dataAtoms;
-mowgli_dictionary_t *ilstAtoms;
-
-/* TAG plugin API */
-gboolean aac_can_handle_file(VFSFile *f);
-gboolean aac_read_tag (Tuple * tuple, VFSFile * handle);
-gboolean aac_write_tag (Tuple * tuple, VFSFile * handle);
-
-static const tag_module_t aac = {
- .name = "AAC",
- .can_handle_file = aac_can_handle_file,
- .read_tag = aac_read_tag,
- .write_tag = aac_write_tag,
-};
-#endif
diff --git a/src/libaudtag/ape/ape.c b/src/libaudtag/ape/ape.c
old mode 100755
new mode 100644
index f1f5d8e..80ed420
--- a/src/libaudtag/ape/ape.c
+++ b/src/libaudtag/ape/ape.c
@@ -35,19 +35,19 @@
#pragma pack(1)
typedef struct
{
- gchar magic[8];
- guint32 version; /* LE */
- guint32 length; /* LE */
- guint32 items; /* LE */
- guint32 flags; /* LE */
- guint64 reserved;
+ char magic[8];
+ uint32_t version; /* LE */
+ uint32_t length; /* LE */
+ uint32_t items; /* LE */
+ uint32_t flags; /* LE */
+ uint64_t reserved;
}
APEHeader;
#pragma pack(pop)
typedef struct
{
- gchar * key, * value;
+ char * key, * value;
}
ValuePair;
@@ -55,7 +55,7 @@ ValuePair;
#define APE_FLAG_HAS_NO_FOOTER (1 << 30)
#define APE_FLAG_IS_HEADER (1 << 29)
-static gboolean ape_read_header (VFSFile * handle, APEHeader * header)
+static bool_t ape_read_header (VFSFile * handle, APEHeader * header)
{
if (vfs_fread (header, 1, sizeof (APEHeader), handle) != sizeof (APEHeader))
return FALSE;
@@ -74,8 +74,8 @@ static gboolean ape_read_header (VFSFile * handle, APEHeader * header)
return TRUE;
}
-static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
- start, gint * length, gint * data_start, gint * data_length)
+static bool_t ape_find_header (VFSFile * handle, APEHeader * header, int *
+ start, int * length, int * data_start, int * data_length)
{
APEHeader secondary;
@@ -84,8 +84,8 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
if (ape_read_header (handle, header))
{
- TAGDBG ("Found header at 0, length = %d, version = %d.\n", (gint)
- header->length, (gint) header->version);
+ TAGDBG ("Found header at 0, length = %d, version = %d.\n", (int)
+ header->length, (int) header->version);
* start = 0;
* length = header->length;
* data_start = sizeof (APEHeader);
@@ -94,7 +94,7 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
if (! (header->flags & APE_FLAG_HAS_HEADER) || ! (header->flags &
APE_FLAG_IS_HEADER))
{
- TAGDBG ("Invalid header flags (%u).\n", (guint) header->flags);
+ TAGDBG ("Invalid header flags (%u).\n", (unsigned int) header->flags);
return FALSE;
}
@@ -115,14 +115,14 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
return TRUE;
}
- if (vfs_fseek (handle, -sizeof (APEHeader), SEEK_END))
+ if (vfs_fseek (handle, -(int) sizeof (APEHeader), SEEK_END))
return FALSE;
if (ape_read_header (handle, header))
{
- TAGDBG ("Found footer at %d, length = %d, version = %d.\n", (gint)
- vfs_ftell (handle) - (gint) sizeof (APEHeader), (gint) header->length,
- (gint) header->version);
+ TAGDBG ("Found footer at %d, length = %d, version = %d.\n", (int)
+ vfs_ftell (handle) - (int) sizeof (APEHeader), (int) header->length,
+ (int) header->version);
* start = vfs_ftell (handle) - header->length;
* length = header->length;
* data_start = vfs_ftell (handle) - header->length;
@@ -131,13 +131,13 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
if ((header->flags & APE_FLAG_HAS_NO_FOOTER) || (header->flags &
APE_FLAG_IS_HEADER))
{
- TAGDBG ("Invalid footer flags (%u).\n", (guint) header->flags);
+ TAGDBG ("Invalid footer flags (%u).\n", (unsigned int) header->flags);
return FALSE;
}
if (header->flags & APE_FLAG_HAS_HEADER)
{
- if (vfs_fseek (handle, -(gint) header->length - sizeof (APEHeader),
+ if (vfs_fseek (handle, -(int) header->length - sizeof (APEHeader),
SEEK_CUR))
return FALSE;
@@ -158,19 +158,19 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
return FALSE;
}
-static gboolean ape_is_our_file (VFSFile * handle)
+static bool_t ape_is_our_file (VFSFile * handle)
{
APEHeader header;
- gint start, length, data_start, data_length;
+ int start, length, data_start, data_length;
return ape_find_header (handle, & header, & start, & length, & data_start,
& data_length);
}
-static ValuePair * ape_read_item (void * * data, gint length)
+static ValuePair * ape_read_item (void * * data, int length)
{
- guint32 * header = * data;
- gchar * value;
+ uint32_t * header = * data;
+ char * value;
ValuePair * pair;
if (length < 8)
@@ -179,7 +179,7 @@ static ValuePair * ape_read_item (void * * data, gint length)
return NULL;
}
- value = memchr ((gchar *) (* data) + 8, 0, length - 8);
+ value = memchr ((char *) (* data) + 8, 0, length - 8);
if (value == NULL)
{
@@ -189,15 +189,15 @@ static ValuePair * ape_read_item (void * * data, gint length)
value ++;
- if (header[0] > (gchar *) (* data) + length - value)
+ if (header[0] > (char *) (* data) + length - value)
{
TAGDBG ("Item value of length %d, but only %d bytes remain in tag.\n",
- (gint) header[0], (gint) ((gchar *) (* data) + length - value));
+ (int) header[0], (int) ((char *) (* data) + length - value));
return NULL;
}
pair = g_malloc (sizeof (ValuePair));
- pair->key = g_strdup ((gchar *) (* data) + 8);
+ pair->key = g_strdup ((char *) (* data) + 8);
pair->value = g_strndup (value, header[0]);
* data = value + header[0];
@@ -209,7 +209,7 @@ static GList * ape_read_items (VFSFile * handle)
{
GList * list = NULL;
APEHeader header;
- gint start, length, data_start, data_length;
+ int start, length, data_start, data_length;
void * data, * item;
if (! ape_find_header (handle, & header, & start, & length, & data_start,
@@ -232,8 +232,8 @@ static GList * ape_read_items (VFSFile * handle)
while (header.items --)
{
- ValuePair * pair = ape_read_item (& item, (gchar *) data + data_length -
- (gchar *) item);
+ ValuePair * pair = ape_read_item (& item, (char *) data + data_length -
+ (char *) item);
if (pair == NULL)
break;
@@ -257,9 +257,9 @@ static void free_tag_list (GList * list)
}
}
-static void parse_gain_text (const gchar * text, gint * value, gint * unit)
+static void parse_gain_text (const char * text, int * value, int * unit)
{
- gint sign = 1;
+ int sign = 1;
* value = 0;
* unit = 1;
@@ -291,54 +291,54 @@ static void parse_gain_text (const gchar * text, gint * value, gint * unit)
* value = * value * sign;
}
-static void set_gain_info (Tuple * tuple, gint field, gint unit_field,
- const gchar * text)
+static void set_gain_info (Tuple * tuple, int field, int unit_field,
+ const char * text)
{
- gint value, unit;
+ int value, unit;
parse_gain_text (text, & value, & unit);
if (tuple_get_value_type (tuple, unit_field, NULL) == TUPLE_INT)
- value = value * (gint64) tuple_get_int (tuple, unit_field, NULL) / unit;
+ value = value * (int64_t) tuple_get_int (tuple, unit_field, NULL) / unit;
else
- tuple_associate_int (tuple, unit_field, NULL, unit);
+ tuple_set_int (tuple, unit_field, NULL, unit);
- tuple_associate_int (tuple, field, NULL, value);
+ tuple_set_int (tuple, field, NULL, value);
}
-static gboolean ape_read_tag (Tuple * tuple, VFSFile * handle)
+static bool_t ape_read_tag (Tuple * tuple, VFSFile * handle)
{
GList * list = ape_read_items (handle), * node;
for (node = list; node != NULL; node = node->next)
{
- gchar * key = ((ValuePair *) node->data)->key;
- gchar * value = ((ValuePair *) node->data)->value;
+ char * key = ((ValuePair *) node->data)->key;
+ char * value = ((ValuePair *) node->data)->value;
if (! strcmp (key, "Artist"))
- tuple_associate_string (tuple, FIELD_ARTIST, NULL, value);
+ tuple_set_str (tuple, FIELD_ARTIST, NULL, value);
else if (! strcmp (key, "Title"))
- tuple_associate_string (tuple, FIELD_TITLE, NULL, value);
+ tuple_set_str (tuple, FIELD_TITLE, NULL, value);
else if (! strcmp (key, "Album"))
- tuple_associate_string (tuple, FIELD_ALBUM, NULL, value);
+ tuple_set_str (tuple, FIELD_ALBUM, NULL, value);
else if (! strcmp (key, "Comment"))
- tuple_associate_string (tuple, FIELD_COMMENT, NULL, value);
+ tuple_set_str (tuple, FIELD_COMMENT, NULL, value);
else if (! strcmp (key, "Genre"))
- tuple_associate_string (tuple, FIELD_GENRE, NULL, value);
+ tuple_set_str (tuple, FIELD_GENRE, NULL, value);
else if (! strcmp (key, "Track"))
- tuple_associate_int (tuple, FIELD_TRACK_NUMBER, NULL, atoi (value));
+ tuple_set_int (tuple, FIELD_TRACK_NUMBER, NULL, atoi (value));
else if (! strcmp (key, "Year"))
- tuple_associate_int (tuple, FIELD_YEAR, NULL, atoi (value));
- else if (! strcasecmp (key, "REPLAYGAIN_TRACK_GAIN"))
+ tuple_set_int (tuple, FIELD_YEAR, NULL, atoi (value));
+ else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_TRACK_GAIN"))
set_gain_info (tuple, FIELD_GAIN_TRACK_GAIN, FIELD_GAIN_GAIN_UNIT,
value);
- else if (! strcasecmp (key, "REPLAYGAIN_TRACK_PEAK"))
+ else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_TRACK_PEAK"))
set_gain_info (tuple, FIELD_GAIN_TRACK_PEAK, FIELD_GAIN_PEAK_UNIT,
value);
- else if (! strcasecmp (key, "REPLAYGAIN_ALBUM_GAIN"))
+ else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_ALBUM_GAIN"))
set_gain_info (tuple, FIELD_GAIN_ALBUM_GAIN, FIELD_GAIN_GAIN_UNIT,
value);
- else if (! strcasecmp (key, "REPLAYGAIN_ALBUM_PEAK"))
+ else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_ALBUM_PEAK"))
set_gain_info (tuple, FIELD_GAIN_ALBUM_PEAK, FIELD_GAIN_PEAK_UNIT,
value);
}
@@ -347,12 +347,12 @@ static gboolean ape_read_tag (Tuple * tuple, VFSFile * handle)
return TRUE;
}
-static gboolean ape_write_item (VFSFile * handle, const gchar * key,
- const gchar * value, int * written_length)
+static bool_t ape_write_item (VFSFile * handle, const char * key,
+ const char * value, int * written_length)
{
- gint key_len = strlen (key) + 1;
- gint value_len = strlen (value);
- guint32 header[2];
+ int key_len = strlen (key) + 1;
+ int value_len = strlen (value);
+ uint32_t header[2];
TAGDBG ("Write: %s = %s.\n", key, value);
@@ -372,26 +372,28 @@ static gboolean ape_write_item (VFSFile * handle, const gchar * key,
return TRUE;
}
-static gboolean write_string_item (const Tuple * tuple, int field, VFSFile *
- handle, const gchar * key, int * written_length, int * written_items)
+static bool_t write_string_item (const Tuple * tuple, int field, VFSFile *
+ handle, const char * key, int * written_length, int * written_items)
{
- const gchar * value = tuple_get_string (tuple, field, NULL);
+ char * value = tuple_get_str (tuple, field, NULL);
if (value == NULL)
return TRUE;
- if (! ape_write_item (handle, key, value, written_length))
- return FALSE;
+ bool_t success = ape_write_item (handle, key, value, written_length);
- (* written_items) ++;
- return TRUE;
+ if (success)
+ (* written_items) ++;
+
+ str_unref (value);
+ return success;
}
-static gboolean write_integer_item (const Tuple * tuple, int field, VFSFile *
- handle, const gchar * key, int * written_length, int * written_items)
+static bool_t write_integer_item (const Tuple * tuple, int field, VFSFile *
+ handle, const char * key, int * written_length, int * written_items)
{
- gint value = tuple_get_int (tuple, field, NULL);
- gchar scratch[32];
+ int value = tuple_get_int (tuple, field, NULL);
+ char scratch[32];
if (! value)
return TRUE;
@@ -405,7 +407,7 @@ static gboolean write_integer_item (const Tuple * tuple, int field, VFSFile *
return TRUE;
}
-static gboolean write_header (gint data_length, gint items, gboolean is_header,
+static bool_t write_header (int data_length, int items, bool_t is_header,
VFSFile * handle)
{
APEHeader header;
@@ -422,11 +424,11 @@ static gboolean write_header (gint data_length, gint items, gboolean is_header,
(APEHeader);
}
-static gboolean ape_write_tag (const Tuple * tuple, VFSFile * handle)
+static bool_t ape_write_tag (const Tuple * tuple, VFSFile * handle)
{
GList * list = ape_read_items (handle), * node;
APEHeader header;
- gint start, length, data_start, data_length, items;
+ int start, length, data_start, data_length, items;
if (ape_find_header (handle, & header, & start, & length, & data_start,
& data_length))
@@ -467,8 +469,8 @@ static gboolean ape_write_tag (const Tuple * tuple, VFSFile * handle)
for (node = list; node != NULL; node = node->next)
{
- gchar * key = ((ValuePair *) node->data)->key;
- gchar * value = ((ValuePair *) node->data)->value;
+ char * key = ((ValuePair *) node->data)->key;
+ char * value = ((ValuePair *) node->data)->value;
if (! strcmp (key, "Artist") || ! strcmp (key, "Title") || ! strcmp
(key, "Album") || ! strcmp (key, "Comment") || ! strcmp (key, "Genre")
diff --git a/src/libaudtag/audtag.c b/src/libaudtag/audtag.c
index 6db71d9..3e8a3bb 100644
--- a/src/libaudtag/audtag.c
+++ b/src/libaudtag/audtag.c
@@ -18,26 +18,23 @@
* using our public API to be a derived work.
*/
+#include <glib.h>
+
#include "libaudcore/tuple.h"
#include "audtag.h"
#include "tag_module.h"
#include "util.h"
-gboolean tag_verbose = FALSE;
-
-void tag_init(void)
-{
- init_tag_modules();
-}
+bool_t tag_verbose = FALSE;
-void tag_set_verbose (gboolean verbose)
+void tag_set_verbose (bool_t verbose)
{
tag_verbose = verbose;
}
/* The tuple's file-related attributes are already set */
-gboolean tag_tuple_read (Tuple * tuple, VFSFile * handle)
+bool_t tag_tuple_read (Tuple * tuple, VFSFile * handle)
{
tag_module_t * module = find_tag_module (handle, TAG_TYPE_NONE);
@@ -47,7 +44,7 @@ gboolean tag_tuple_read (Tuple * tuple, VFSFile * handle)
return module->read_tag (tuple, handle);
}
-gboolean tag_image_read (VFSFile * handle, void * * data, gint * size)
+bool_t tag_image_read (VFSFile * handle, void * * data, int64_t * size)
{
tag_module_t * module = find_tag_module (handle, TAG_TYPE_NONE);
@@ -57,7 +54,7 @@ gboolean tag_image_read (VFSFile * handle, void * * data, gint * size)
return module->read_image (handle, data, size);
}
-gboolean tag_tuple_write (const Tuple * tuple, VFSFile * handle, gint new_type)
+bool_t tag_tuple_write (const Tuple * tuple, VFSFile * handle, int new_type)
{
tag_module_t * module = find_tag_module (handle, new_type);
@@ -68,7 +65,7 @@ gboolean tag_tuple_write (const Tuple * tuple, VFSFile * handle, gint new_type)
}
/* deprecated */
-gboolean tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle)
+bool_t tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle)
{
return tag_tuple_write (tuple, handle, TAG_TYPE_NONE);
}
diff --git a/src/libaudtag/audtag.h b/src/libaudtag/audtag.h
index 725cf5c..dbb4e57 100644
--- a/src/libaudtag/audtag.h
+++ b/src/libaudtag/audtag.h
@@ -23,13 +23,8 @@
#ifndef AUDTAG_H
#define AUDTAG_H
-G_BEGIN_DECLS
-
-#include <glib.h>
-#include <mowgli.h>
-#include "libaudcore/tuple.h"
-#include "libaudcore/vfs.h"
-#include "config.h"
+#include <libaudcore/tuple.h>
+#include <libaudcore/vfs.h>
enum
{
@@ -37,18 +32,16 @@ enum
TAG_TYPE_APE,
};
-void tag_init (void);
-void tag_set_verbose (gboolean verbose);
+void tag_set_verbose (bool_t verbose);
-gboolean tag_tuple_read (Tuple * tuple, VFSFile *fd);
-gboolean tag_image_read (VFSFile * handle, void * * data, gint * size);
+bool_t tag_tuple_read (Tuple * tuple, VFSFile *fd);
+bool_t tag_image_read (VFSFile * handle, void * * data, int64_t * size);
/* new_type specifies the type of tag (see the TAG_TYPE_* enum) that should be
* written if the file does not have any existing tag. */
-gboolean tag_tuple_write (const Tuple * tuple, VFSFile * handle, gint new_type);
+bool_t tag_tuple_write (const Tuple * tuple, VFSFile * handle, int new_type);
/* deprecated, use tag_tuple_write */
-gboolean tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle);
+bool_t tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle);
-G_END_DECLS
#endif /* AUDTAG_H */
diff --git a/src/libaudtag/id3/id3-common.c b/src/libaudtag/id3/id3-common.c
index ea7c587..dbad9be 100644
--- a/src/libaudtag/id3/id3-common.c
+++ b/src/libaudtag/id3/id3-common.c
@@ -1,6 +1,6 @@
/*
* id3-common.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
*
* This file is part of Audacious.
*
@@ -19,6 +19,7 @@
* using our public API to be a derived work.
*/
+#include <stdio.h>
#include <string.h>
#include <glib.h>
@@ -28,10 +29,24 @@
#include "../util.h"
#include "id3-common.h"
-gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
- nulled, gint * _converted, const gchar * * after)
+static void * memchr16 (const void * mem, int16_t chr, int len)
{
- gchar * buffer = NULL;
+ while (len >= 2)
+ {
+ if (* (int16_t *) mem == chr)
+ return (void *) mem;
+
+ mem = (char *) mem + 2;
+ len -= 2;
+ }
+
+ return NULL;
+}
+
+char * convert_text (const char * text, int length, int encoding, bool_t
+ nulled, int * _converted, const char * * after)
+{
+ char * buffer = NULL;
gsize converted = 0;
TAGDBG ("length = %d, encoding = %d, nulled = %d\n", length, encoding,
@@ -39,8 +54,7 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
if (nulled)
{
- const guchar null16[] = {0, 0};
- const gchar * null;
+ const char * null;
switch (encoding)
{
@@ -58,7 +72,7 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
break;
case 1:
case 2:
- if ((null = memfind (text, length, null16, 2)) == NULL)
+ if ((null = memchr16 (text, 0, length)) == NULL)
return NULL;
length = null - text;
@@ -74,11 +88,13 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
switch (encoding)
{
case 0:
- case 3:
- buffer = str_to_utf8_full (text, length, NULL, & converted, NULL);
+ case 3:;
+ int converted_int = 0;
+ buffer = str_to_utf8_full (text, length, NULL, & converted_int);
+ converted = converted_int;
break;
case 1:
- if (text[0] == (gchar) 0xff)
+ if (text[0] == (char) 0xff)
buffer = g_convert (text + 2, length - 2, "UTF-8", "UTF-16LE", NULL,
& converted, NULL);
else
@@ -92,7 +108,7 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
break;
}
- TAGDBG ("length converted: %d\n", (gint) converted);
+ TAGDBG ("length converted: %d\n", (int) converted);
TAGDBG ("string: %s\n", buffer);
if (_converted != NULL)
diff --git a/src/libaudtag/id3/id3-common.h b/src/libaudtag/id3/id3-common.h
index b3e53e5..9ad88a3 100644
--- a/src/libaudtag/id3/id3-common.h
+++ b/src/libaudtag/id3/id3-common.h
@@ -22,8 +22,6 @@
#ifndef AUDTAG_ID3_COMMON_H
#define AUDTAG_ID3_COMMON_H
-#include <glib.h>
-
/*
* text: A pointer to the text data to be converted.
* length: The size in bytes of the text data.
@@ -42,7 +40,7 @@
* returns: A pointer to the converted text with a null character appended, or
* NULL if an error occurs. The text must be freed when no longer needed.
*/
-gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
- nulled, gint * _converted, const gchar * * after);
+char * convert_text (const char * text, int length, int encoding, bool_t
+ nulled, int * _converted, const char * * after);
#endif
diff --git a/src/libaudtag/id3/id3v1.c b/src/libaudtag/id3/id3v1.c
index f6426ef..bc53f1f 100644
--- a/src/libaudtag/id3/id3v1.c
+++ b/src/libaudtag/id3/id3v1.c
@@ -21,6 +21,8 @@
#include <glib.h>
#include <glib/gstdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <libaudcore/audstrings.h>
@@ -29,29 +31,14 @@
#include <inttypes.h>
#include "../tag_module.h"
-static gboolean has_id3v1_ext;
-
-gboolean id3v1_can_handle_file(VFSFile *f)
+bool_t id3v1_can_handle_file(VFSFile *f)
{
- gchar *tag;
-
- if (vfs_fseek(f, -355, SEEK_END))
- return FALSE;
-
- tag = read_char_data(f, 4);
-
- if (!strncmp(tag, "TAG+", 4))
- has_id3v1_ext = TRUE;
- else
- has_id3v1_ext = FALSE;
- g_free(tag);
-
if (vfs_fseek(f, -128, SEEK_END))
return FALSE;
- tag = read_char_data(f, 3);
+ char *tag = read_char_data(f, 3);
- if (!strncmp(tag, "TAG", 3))
+ if (tag && !strncmp(tag, "TAG", 3))
{
g_free(tag);
return TRUE;
@@ -61,31 +48,34 @@ gboolean id3v1_can_handle_file(VFSFile *f)
return FALSE;
}
-static gchar *convert_to_utf8(gchar *str)
+static char *convert_to_utf8(char *str)
{
- gchar *tmp = str;
+ if (!str)
+ return NULL;
+
+ char *tmp = str;
str = str_to_utf8(str);
g_free(tmp);
return g_strchomp(str);
}
-gboolean id3v1_read_tag (Tuple * tuple, VFSFile * f)
+bool_t id3v1_read_tag (Tuple * tuple, VFSFile * f)
{
- gboolean genre_set = FALSE;
+ bool_t genre_set = FALSE;
if (vfs_fseek(f, -125, SEEK_END))
return FALSE;
- gchar *title = read_char_data(f, 30);
- gchar *artist = read_char_data(f, 30);
- gchar *album = read_char_data(f, 30);
- gchar *year = read_char_data(f, 4);
- gchar *comment = read_char_data(f, 30);
- gchar *genre = read_char_data(f, 1);
- gchar track = 0;
+ char *title = read_char_data(f, 30);
+ char *artist = read_char_data(f, 30);
+ char *album = read_char_data(f, 30);
+ char *year = read_char_data(f, 4);
+ char *comment = read_char_data(f, 30);
+ char *genre = read_char_data(f, 1);
+ char track = 0;
- if (comment[28] == 0 && comment[29] != 0)
+ if (comment && comment[28] == 0 && comment[29] != 0)
track = comment[29];
title = convert_to_utf8(title);
@@ -93,17 +83,19 @@ gboolean id3v1_read_tag (Tuple * tuple, VFSFile * f)
album = convert_to_utf8(album);
comment = convert_to_utf8(comment);
- if (has_id3v1_ext)
- {
- if (vfs_fseek (f, -351, SEEK_END))
- goto ERR;
+ if (vfs_fseek(f, -355, SEEK_END))
+ return FALSE;
- gchar *ext_title = convert_to_utf8(read_char_data(f, 60));
- gchar *ext_artist = convert_to_utf8(read_char_data(f, 60));
- gchar *ext_album = convert_to_utf8(read_char_data(f, 60));
- gchar *tmp_title = g_strconcat(title, ext_title, NULL);
- gchar *tmp_artist = g_strconcat(artist, ext_artist, NULL);
- gchar *tmp_album = g_strconcat(album, ext_album, NULL);
+ char *tag = read_char_data(f, 4);
+
+ if (tag && ! strncmp (tag, "TAG+", 4))
+ {
+ char *ext_title = convert_to_utf8(read_char_data(f, 60));
+ char *ext_artist = convert_to_utf8(read_char_data(f, 60));
+ char *ext_album = convert_to_utf8(read_char_data(f, 60));
+ char *tmp_title = title ? g_strconcat(title, ext_title, NULL) : NULL;
+ char *tmp_artist = artist ? g_strconcat(artist, ext_artist, NULL) : NULL;
+ char *tmp_album = album ? g_strconcat(album, ext_album, NULL) : NULL;
g_free(title);
g_free(artist);
g_free(album);
@@ -117,25 +109,31 @@ gboolean id3v1_read_tag (Tuple * tuple, VFSFile * f)
if (vfs_fseek (f, -170, SEEK_END))
goto ERR;
- gchar *ext_genre = convert_to_utf8(read_char_data(f, 30));
+ char *ext_genre = convert_to_utf8(read_char_data(f, 30));
- if (ext_genre != NULL)
+ if (ext_genre)
{
- tuple_associate_string(tuple, FIELD_GENRE, NULL, ext_genre);
+ tuple_set_str(tuple, FIELD_GENRE, NULL, ext_genre);
genre_set = TRUE;
g_free(ext_genre);
}
}
- tuple_associate_string(tuple, FIELD_TITLE, NULL, title);
- tuple_associate_string(tuple, FIELD_ARTIST, NULL, artist);
- tuple_associate_string(tuple, FIELD_ALBUM, NULL, album);
- tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi(year));
- tuple_associate_string(tuple, FIELD_COMMENT, NULL, comment);
- tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, track);
-
- if (!genre_set)
- tuple_associate_string(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(*genre));
+ if (title)
+ tuple_set_str(tuple, FIELD_TITLE, NULL, title);
+ if (artist)
+ tuple_set_str(tuple, FIELD_ARTIST, NULL, artist);
+ if (album)
+ tuple_set_str(tuple, FIELD_ALBUM, NULL, album);
+ if (year)
+ tuple_set_int(tuple, FIELD_YEAR, NULL, atoi(year));
+ if (comment)
+ tuple_set_str(tuple, FIELD_COMMENT, NULL, comment);
+ if (track)
+ tuple_set_int(tuple, FIELD_TRACK_NUMBER, NULL, track);
+
+ if (genre && !genre_set)
+ tuple_set_str(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(*genre));
g_free(title);
g_free(artist);
@@ -156,7 +154,7 @@ ERR:
return FALSE;
}
-static gboolean id3v1_write_tag (const Tuple * tuple, VFSFile * handle)
+static bool_t id3v1_write_tag (const Tuple * tuple, VFSFile * handle)
{
fprintf (stderr, "Writing ID3v1 tags is not implemented yet, sorry.\n");
return FALSE;
@@ -168,4 +166,3 @@ tag_module_t id3v1 = {
.read_tag = id3v1_read_tag,
.write_tag = id3v1_write_tag,
};
-
diff --git a/src/libaudtag/id3/id3v22.c b/src/libaudtag/id3/id3v22.c
index 65e6796..909ad94 100644
--- a/src/libaudtag/id3/id3v22.c
+++ b/src/libaudtag/id3/id3v22.c
@@ -22,6 +22,9 @@
*/
#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <libaudcore/audstrings.h>
@@ -49,34 +52,34 @@ enum
ID3_TAGS_NO
};
-static const gchar * id3_frames[ID3_TAGS_NO] = {"TAL", "TT2", "TCM", "TCR",
+static const char * id3_frames[ID3_TAGS_NO] = {"TAL", "TT2", "TCM", "TCR",
"TDA", "TLE", "TPE", "TRK", "TYE", "TCO", "COM", "TSS", "TXX", "RVA", "TP1"};
#pragma pack(push) /* must be byte-aligned */
#pragma pack(1)
typedef struct
{
- gchar magic[3];
- guchar version;
- guchar revision;
- guchar flags;
- guint32 size;
+ char magic[3];
+ unsigned char version;
+ unsigned char revision;
+ unsigned char flags;
+ uint32_t size;
}
ID3v2Header;
typedef struct
{
- guchar key[3];
- guchar size[3];
+ unsigned char key[3];
+ unsigned char size[3];
}
ID3v2FrameHeader;
#pragma pack(pop)
typedef struct
{
- gchar key[5];
- guchar * data;
- gint size;
+ char key[5];
+ unsigned char * data;
+ int size;
}
GenericFrame;
@@ -87,7 +90,7 @@ GenericFrame;
#define write_syncsafe_int32(x) vfs_fput_be32 (syncsafe32 (x))
-static gboolean validate_header (ID3v2Header * header)
+static bool_t validate_header (ID3v2Header * header)
{
if (memcmp (header->magic, "ID3", 3))
return FALSE;
@@ -99,15 +102,15 @@ static gboolean validate_header (ID3v2Header * header)
TAGDBG ("Found ID3v2 header:\n");
TAGDBG (" magic = %.3s\n", header->magic);
- TAGDBG (" version = %d\n", (gint) header->version);
- TAGDBG (" revision = %d\n", (gint) header->revision);
- TAGDBG (" flags = %x\n", (gint) header->flags);
- TAGDBG (" size = %d\n", (gint) header->size);
+ TAGDBG (" version = %d\n", (int) header->version);
+ TAGDBG (" revision = %d\n", (int) header->revision);
+ TAGDBG (" flags = %x\n", (int) header->flags);
+ TAGDBG (" size = %d\n", (int) header->size);
return TRUE;
}
-static gboolean read_header (VFSFile * handle, gint * version, gboolean *
- syncsafe, gsize * offset, gint * header_size, gint * data_size)
+static bool_t read_header (VFSFile * handle, int * version, bool_t *
+ syncsafe, gsize * offset, int * header_size, int * data_size)
{
ID3v2Header header;
@@ -129,17 +132,17 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
* syncsafe = (header.flags & ID3_HEADER_SYNCSAFE) ? TRUE : FALSE;
TAGDBG ("Offset = %d, header size = %d, data size = %d\n",
- (gint) * offset, * header_size, * data_size);
+ (int) * offset, * header_size, * data_size);
return TRUE;
}
-static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
- gboolean syncsafe, gint * frame_size, gchar * key, guchar * * data, gint * size)
+static bool_t read_frame (VFSFile * handle, int max_size, int version,
+ bool_t syncsafe, int * frame_size, char * key, unsigned char * * data, int * size)
{
ID3v2FrameHeader header;
- gint i;
- guint32 hdrsz = 0;
+ int i;
+ uint32_t hdrsz = 0;
if ((max_size -= sizeof (ID3v2FrameHeader)) < 0)
return FALSE;
@@ -153,7 +156,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
for (i = 0; i < 3; i++)
{
- hdrsz |= (guint32) header.size[i] << ((2 - i) * 8);
+ hdrsz |= (uint32_t) header.size[i] << ((2 - i) * 8);
TAGDBG("header.size[%d] = %d hdrsz %d slot %d\n", i, header.size[i], hdrsz, 2 - i);
}
@@ -163,7 +166,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
TAGDBG ("Found frame:\n");
TAGDBG (" key = %.3s\n", header.key);
- TAGDBG (" size = %d\n", (gint) hdrsz);
+ TAGDBG (" size = %d\n", (int) hdrsz);
* frame_size = sizeof (ID3v2FrameHeader) + hdrsz;
sprintf (key, "%.3s", header.key);
@@ -178,18 +181,18 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
return TRUE;
}
-static gchar * decode_text_frame (const guchar * data, gint size)
+static char * decode_text_frame (const unsigned char * data, int size)
{
- return convert_text ((const gchar *) data + 1, size - 1, data[0], FALSE,
+ return convert_text ((const char *) data + 1, size - 1, data[0], FALSE,
NULL, NULL);
}
-static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
- lang, gchar * * type, gchar * * value)
+static bool_t decode_comment_frame (const unsigned char * _data, int size, char * *
+ lang, char * * type, char * * value)
{
- const gchar * data = (const gchar *) _data;
- gchar * pair, * sep;
- gint converted;
+ const char * data = (const char *) _data;
+ char * pair, * sep;
+ int converted;
pair = convert_text (data + 4, size - 4, data[0], FALSE, & converted, NULL);
@@ -204,9 +207,9 @@ static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
return TRUE;
}
-static gint get_frame_id (const gchar * key)
+static int get_frame_id (const char * key)
{
- gint id;
+ int id;
for (id = 0; id < ID3_TAGS_NO; id ++)
{
@@ -217,43 +220,49 @@ static gint get_frame_id (const gchar * key)
return -1;
}
-static void associate_string (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_string (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
{
- gchar * text = decode_text_frame (data, size);
+ char * text = decode_text_frame (data, size);
- if (text == NULL)
+ if (text == NULL || ! text[0])
+ {
+ g_free (text);
return;
+ }
if (customfield != NULL)
TAGDBG ("Custom field %s = %s.\n", customfield, text);
else
TAGDBG ("Field %i = %s.\n", field, text);
- tuple_associate_string (tuple, field, customfield, text);
+ tuple_set_str (tuple, field, customfield, text);
g_free (text);
}
-static void associate_int (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_int (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
{
- gchar * text = decode_text_frame (data, size);
+ char * text = decode_text_frame (data, size);
- if (text == NULL)
+ if (text == NULL || atoi (text) < 1)
+ {
+ g_free (text);
return;
+ }
if (customfield != NULL)
TAGDBG ("Custom field %s = %s.\n", customfield, text);
else
TAGDBG ("Field %i = %s.\n", field, text);
- tuple_associate_int (tuple, field, customfield, atoi (text));
+ tuple_set_int (tuple, field, customfield, atoi (text));
g_free (text);
}
-static void decode_comment (Tuple * tuple, const guchar * data, gint size)
+static void decode_comment (Tuple * tuple, const unsigned char * data, int size)
{
- gchar * lang, * type, * value;
+ char * lang, * type, * value;
if (! decode_comment_frame (data, size, & lang, & type, & value))
return;
@@ -261,45 +270,45 @@ static void decode_comment (Tuple * tuple, const guchar * data, gint size)
TAGDBG ("Comment: lang = %s, type = %s, value = %s.\n", lang, type, value);
if (! type[0]) /* blank type == actual comment */
- tuple_associate_string (tuple, FIELD_COMMENT, NULL, value);
+ tuple_set_str (tuple, FIELD_COMMENT, NULL, value);
g_free (lang);
g_free (type);
g_free (value);
}
-static void decode_txx (Tuple * tuple, const guchar * data, gint size)
+static void decode_txx (Tuple * tuple, const unsigned char * data, int size)
{
- gchar * text = decode_text_frame (data, size);
+ char * text = decode_text_frame (data, size);
if (text == NULL)
return;
- gchar *separator = strchr(text, 0);
+ char *separator = strchr(text, 0);
if (separator == NULL)
return;
- gchar * value = separator + 1;
+ char * value = separator + 1;
TAGDBG ("TXX: %s = %s.\n", text, value);
- tuple_associate_string (tuple, -1, text, value);
+ tuple_set_str (tuple, -1, text, value);
g_free (text);
}
-static gboolean decode_rva_block (const guchar * * _data, gint * _size, gint *
- channel, gint * adjustment, gint * adjustment_unit, gint * peak, gint *
+static bool_t decode_rva_block (const unsigned char * * _data, int * _size, int *
+ channel, int * adjustment, int * adjustment_unit, int * peak, int *
peak_unit)
{
- const guchar * data = * _data;
- gint size = * _size;
- gint peak_bits;
+ const unsigned char * data = * _data;
+ int size = * _size;
+ int peak_bits;
if (size < 4)
return FALSE;
* channel = data[0];
- * adjustment = (gchar) data[1]; /* first byte is signed */
+ * adjustment = (char) data[1]; /* first byte is signed */
* adjustment = (* adjustment << 8) | data[2];
* adjustment_unit = 512;
peak_bits = data[3];
@@ -310,10 +319,10 @@ static gboolean decode_rva_block (const guchar * * _data, gint * _size, gint *
TAGDBG ("RVA block: channel = %d, adjustment = %d/%d, peak bits = %d\n",
* channel, * adjustment, * adjustment_unit, peak_bits);
- if (peak_bits > 0 && peak_bits < sizeof (gint) * 8)
+ if (peak_bits > 0 && peak_bits < sizeof (int) * 8)
{
- gint bytes = (peak_bits + 7) / 8;
- gint count;
+ int bytes = (peak_bits + 7) / 8;
+ int count;
if (bytes > size)
return FALSE;
@@ -340,15 +349,15 @@ static gboolean decode_rva_block (const guchar * * _data, gint * _size, gint *
return TRUE;
}
-static void decode_rva (Tuple * tuple, const guchar * data, gint size)
+static void decode_rva (Tuple * tuple, const unsigned char * data, int size)
{
- const gchar * domain;
- gint channel, adjustment, adjustment_unit, peak, peak_unit;
+ const char * domain;
+ int channel, adjustment, adjustment_unit, peak, peak_unit;
if (memchr (data, 0, size) == NULL)
return;
- domain = (const gchar *) data;
+ domain = (const char *) data;
TAGDBG ("RVA domain: %s\n", domain);
@@ -366,44 +375,44 @@ static void decode_rva (Tuple * tuple, const guchar * data, gint size)
if (tuple_get_value_type (tuple, FIELD_GAIN_GAIN_UNIT, NULL) ==
TUPLE_INT)
- adjustment = adjustment * (gint64) tuple_get_int (tuple,
+ adjustment = adjustment * (int64_t) tuple_get_int (tuple,
FIELD_GAIN_GAIN_UNIT, NULL) / adjustment_unit;
else
- tuple_associate_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
+ tuple_set_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
adjustment_unit);
if (peak_unit)
{
if (tuple_get_value_type (tuple, FIELD_GAIN_PEAK_UNIT, NULL) ==
TUPLE_INT)
- peak = peak * (gint64) tuple_get_int (tuple,
+ peak = peak * (int64_t) tuple_get_int (tuple,
FIELD_GAIN_PEAK_UNIT, NULL) / peak_unit;
else
- tuple_associate_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
+ tuple_set_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
peak_unit);
}
- if (! strcasecmp (domain, "album"))
+ if (! g_ascii_strcasecmp (domain, "album"))
{
- tuple_associate_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
+ tuple_set_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
if (peak_unit)
- tuple_associate_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
+ tuple_set_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
}
- else if (! strcasecmp (domain, "track"))
+ else if (! g_ascii_strcasecmp (domain, "track"))
{
- tuple_associate_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
+ tuple_set_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
if (peak_unit)
- tuple_associate_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
+ tuple_set_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
}
}
}
-static void decode_genre (Tuple * tuple, const guchar * data, gint size)
+static void decode_genre (Tuple * tuple, const unsigned char * data, int size)
{
- gint numericgenre;
- gchar * text = decode_text_frame (data, size);
+ int numericgenre;
+ char * text = decode_text_frame (data, size);
if (text == NULL)
return;
@@ -415,42 +424,43 @@ static void decode_genre (Tuple * tuple, const guchar * data, gint size)
if (numericgenre > 0)
{
- tuple_associate_string(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(numericgenre));
+ tuple_set_str(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(numericgenre));
return;
}
- tuple_associate_string(tuple, FIELD_GENRE, NULL, text);
+ tuple_set_str(tuple, FIELD_GENRE, NULL, text);
g_free (text);
return;
}
-static gboolean id3v22_can_handle_file (VFSFile * handle)
+static bool_t id3v22_can_handle_file (VFSFile * handle)
{
- gint version, header_size, data_size;
- gboolean syncsafe;
+ int version, header_size, data_size;
+ bool_t syncsafe;
gsize offset;
return read_header (handle, & version, & syncsafe, & offset, & header_size,
& data_size);
}
-gboolean id3v22_read_tag (Tuple * tuple, VFSFile * handle)
+bool_t id3v22_read_tag (Tuple * tuple, VFSFile * handle)
{
- gint version, header_size, data_size;
- gboolean syncsafe;
+ int version, header_size, data_size;
+ bool_t syncsafe;
gsize offset;
- gint pos;
+ int pos;
if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
& data_size))
return FALSE;
- TAGDBG("Reading tags from %i bytes of ID3 data in %s\n", data_size, handle->uri);
+ TAGDBG ("Reading tags from %i bytes of ID3 data in %s\n", data_size,
+ vfs_get_filename (handle));
for (pos = 0; pos < data_size; )
{
- gint frame_size, size, id;
- gchar key[5];
- guchar * data;
+ int frame_size, size, id;
+ char key[5];
+ unsigned char * data;
if (! read_frame (handle, data_size - pos, version, syncsafe,
& frame_size, key, & data, & size))
@@ -518,17 +528,17 @@ gboolean id3v22_read_tag (Tuple * tuple, VFSFile * handle)
return TRUE;
}
-static gboolean parse_pic (const guchar * data, gint size, gchar * * mime,
- gint * type, void * * image_data, gint * image_size)
+static bool_t parse_pic (const unsigned char * data, int size, char * * mime,
+ int * type, void * * image_data, int * image_size)
{
- const guchar * sep;
- const guchar * after;
+ const unsigned char * sep;
+ const unsigned char * after;
if (size < 2 || (sep = memchr (data + 1, 0, size - 2)) == NULL)
return FALSE;
after = sep + 2;
- * mime = g_strdup ((const gchar *) data + 1);
+ * mime = g_strdup ((const char *) data + 1);
* type = sep[1];
* image_data = g_memdup (after, data + size - after);
* image_size = data + size - after;
@@ -538,13 +548,13 @@ static gboolean parse_pic (const guchar * data, gint size, gchar * * mime,
return TRUE;
}
-static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
- image_size)
+static bool_t id3v22_read_image (VFSFile * handle, void * * image_data,
+ int64_t * image_size64)
{
- gint version, header_size, data_size, parsed;
- gboolean syncsafe;
+ int version, header_size, data_size, parsed, image_size = 0;
+ bool_t syncsafe;
gsize offset;
- gboolean found = FALSE;
+ bool_t found = FALSE;
if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
& data_size))
@@ -552,11 +562,11 @@ static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
for (parsed = 0; parsed < data_size && ! found; )
{
- gint frame_size, size, type;
- gchar key[5];
- guchar * data;
- gchar * mime;
- gint frame_length;
+ int frame_size, size, type;
+ char key[5];
+ unsigned char * data;
+ char * mime;
+ int frame_length;
if (! read_frame (handle, data_size - parsed, version, syncsafe,
& frame_size, key, & data, & size))
@@ -565,7 +575,7 @@ static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
frame_length = size;
if (! strcmp (key, "PIC") && parse_pic (data, frame_length, & mime, & type,
- image_data, image_size))
+ image_data, & image_size))
{
g_free (mime);
@@ -584,10 +594,13 @@ static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
parsed += frame_size;
}
+ if (found)
+ * image_size64 = image_size;
+
return found;
}
-static gboolean id3v22_write_tag (const Tuple * tuple, VFSFile * f)
+static bool_t id3v22_write_tag (const Tuple * tuple, VFSFile * f)
{
fprintf (stderr, "Writing ID3v2.2 tags is not implemented yet, sorry.\n");
return FALSE;
diff --git a/src/libaudtag/id3/id3v24.c b/src/libaudtag/id3/id3v24.c
index d655ce8..5d492ca 100644
--- a/src/libaudtag/id3/id3v24.c
+++ b/src/libaudtag/id3/id3v24.c
@@ -20,6 +20,9 @@
*/
#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
#include <libaudcore/audstrings.h>
@@ -49,53 +52,53 @@ enum
ID3_TAGS_NO
};
-static const gchar * id3_frames[ID3_TAGS_NO] = {"TALB","TIT2","TCOM", "TCOP",
+static const char * id3_frames[ID3_TAGS_NO] = {"TALB","TIT2","TCOM", "TCOP",
"TDAT", "TIME", "TLEN", "TPE1", "TRCK", "TYER","TCON", "COMM", "PRIV", "TSSE",
"TDRC", "TXXX", "RVA2"};
-static const guchar PRIMARY_CLASS_MUSIC[16] = {0xBC, 0x7D, 0x60, 0xD1, 0x23,
+static const unsigned char PRIMARY_CLASS_MUSIC[16] = {0xBC, 0x7D, 0x60, 0xD1, 0x23,
0xE3, 0xE2, 0x4B, 0x86, 0xA1, 0x48, 0xA4, 0x2A, 0x28, 0x44, 0x1E};
-static const guchar PRIMARY_CLASS_AUDIO[16] = {0x29, 0x0F, 0xCD, 0x01, 0x4E,
+static const unsigned char PRIMARY_CLASS_AUDIO[16] = {0x29, 0x0F, 0xCD, 0x01, 0x4E,
0xDA, 0x57, 0x41, 0x89, 0x7B, 0x62, 0x75, 0xD5, 0x0C, 0x4F, 0x11};
-static const guchar SECONDARY_CLASS_AUDIOBOOK[16] = {0xEB, 0x6B, 0x23, 0xE0,
+static const unsigned char SECONDARY_CLASS_AUDIOBOOK[16] = {0xEB, 0x6B, 0x23, 0xE0,
0x81, 0xC2, 0xDE, 0x4E, 0xA3, 0x6D, 0x7A, 0xF7, 0x6A, 0x3D, 0x45, 0xB5};
-static const guchar SECONDARY_CLASS_SPOKENWORD[16] = {0x13, 0x2A, 0x17, 0x3A,
+static const unsigned char SECONDARY_CLASS_SPOKENWORD[16] = {0x13, 0x2A, 0x17, 0x3A,
0xD9, 0x2B, 0x31, 0x48, 0x83, 0x5B, 0x11, 0x4F, 0x6A, 0x95, 0x94, 0x3F};
-static const guchar SECONDARY_CLASS_NEWS[16] = {0x9B, 0xDB, 0x77, 0x66, 0xA0,
+static const unsigned char SECONDARY_CLASS_NEWS[16] = {0x9B, 0xDB, 0x77, 0x66, 0xA0,
0xE5, 0x63, 0x40, 0xA1, 0xAD, 0xAC, 0xEB, 0x52, 0x84, 0x0C, 0xF1};
-static const guchar SECONDARY_CLASS_TALKSHOW[16] = {0x67, 0x4A, 0x82, 0x1B,
+static const unsigned char SECONDARY_CLASS_TALKSHOW[16] = {0x67, 0x4A, 0x82, 0x1B,
0x80, 0x3F, 0x3E, 0x4E, 0x9C, 0xDE, 0xF7, 0x36, 0x1B, 0x0F, 0x5F, 0x1B};
-static const guchar SECONDARY_CLASS_GAMES_CLIP[16] = {0x68, 0x33, 0x03, 0x00,
+static const unsigned char SECONDARY_CLASS_GAMES_CLIP[16] = {0x68, 0x33, 0x03, 0x00,
0x09, 0x50, 0xC3, 0x4A, 0xA8, 0x20, 0x5D, 0x2D, 0x09, 0xA4, 0xE7, 0xC1};
-static const guchar SECONDARY_CLASS_GAMES_SONG[16] = {0x31, 0xF7, 0x4F, 0xF2,
+static const unsigned char SECONDARY_CLASS_GAMES_SONG[16] = {0x31, 0xF7, 0x4F, 0xF2,
0xFC, 0x96, 0x0F, 0x4D, 0xA2, 0xF5, 0x5A, 0x34, 0x83, 0x68, 0x2B, 0x1A};
#pragma pack(push) /* must be byte-aligned */
#pragma pack(1)
typedef struct
{
- gchar magic[3];
- guchar version;
- guchar revision;
- guchar flags;
- guint32 size;
+ char magic[3];
+ unsigned char version;
+ unsigned char revision;
+ unsigned char flags;
+ uint32_t size;
}
ID3v2Header;
typedef struct
{
- gchar key[4];
- guint32 size;
- guint16 flags;
+ char key[4];
+ uint32_t size;
+ uint16_t flags;
}
ID3v2FrameHeader;
#pragma pack(pop)
typedef struct
{
- gchar key[5];
- guchar * data;
- gint size;
+ char key[5];
+ unsigned char * data;
+ int size;
}
GenericFrame;
@@ -109,16 +112,22 @@ GenericFrame;
#define ID3_FRAME_SYNCSAFE 0x0002
#define ID3_FRAME_HAS_LENGTH 0x0001
-static gboolean skip_extended_header_3 (VFSFile * handle, gint * _size)
+/* str_unref() may be a macro */
+static void str_unref_cb (void * str)
{
- guint32 size;
+ str_unref (str);
+}
+
+static bool_t skip_extended_header_3 (VFSFile * handle, int * _size)
+{
+ uint32_t size;
if (vfs_fread (& size, 1, 4, handle) != 4)
return FALSE;
size = GUINT32_FROM_BE (size);
- TAGDBG ("Found v2.3 extended header, size = %d.\n", (gint) size);
+ TAGDBG ("Found v2.3 extended header, size = %d.\n", (int) size);
if (vfs_fseek (handle, size, SEEK_CUR))
return FALSE;
@@ -127,16 +136,16 @@ static gboolean skip_extended_header_3 (VFSFile * handle, gint * _size)
return TRUE;
}
-static gboolean skip_extended_header_4 (VFSFile * handle, gint * _size)
+static bool_t skip_extended_header_4 (VFSFile * handle, int * _size)
{
- guint32 size;
+ uint32_t size;
if (vfs_fread (& size, 1, 4, handle) != 4)
return FALSE;
size = unsyncsafe32 (GUINT32_FROM_BE (size));
- TAGDBG ("Found v2.4 extended header, size = %d.\n", (gint) size);
+ TAGDBG ("Found v2.4 extended header, size = %d.\n", (int) size);
if (vfs_fseek (handle, size - 4, SEEK_CUR))
return FALSE;
@@ -145,7 +154,7 @@ static gboolean skip_extended_header_4 (VFSFile * handle, gint * _size)
return TRUE;
}
-static gboolean validate_header (ID3v2Header * header, gboolean is_footer)
+static bool_t validate_header (ID3v2Header * header, bool_t is_footer)
{
if (memcmp (header->magic, is_footer ? "3DI" : "ID3", 3))
return FALSE;
@@ -157,15 +166,15 @@ static gboolean validate_header (ID3v2Header * header, gboolean is_footer)
TAGDBG ("Found ID3v2 %s:\n", is_footer ? "footer" : "header");
TAGDBG (" magic = %.3s\n", header->magic);
- TAGDBG (" version = %d\n", (gint) header->version);
- TAGDBG (" revision = %d\n", (gint) header->revision);
- TAGDBG (" flags = %x\n", (gint) header->flags);
- TAGDBG (" size = %d\n", (gint) header->size);
+ TAGDBG (" version = %d\n", (int) header->version);
+ TAGDBG (" revision = %d\n", (int) header->revision);
+ TAGDBG (" flags = %x\n", (int) header->flags);
+ TAGDBG (" size = %d\n", (int) header->size);
return TRUE;
}
-static gboolean read_header (VFSFile * handle, gint * version, gboolean *
- syncsafe, gsize * offset, gint * header_size, gint * data_size, gint *
+static bool_t read_header (VFSFile * handle, int * version, bool_t *
+ syncsafe, int64_t * offset, int * header_size, int * data_size, int *
footer_size)
{
ID3v2Header header, footer;
@@ -203,7 +212,7 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
}
else
{
- gsize end = vfs_fsize (handle);
+ int64_t end = vfs_fsize (handle);
if (end < 0)
return FALSE;
@@ -239,7 +248,7 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
if (header.flags & ID3_HEADER_HAS_EXTENDED_HEADER)
{
- gint extended_size = 0;
+ int extended_size = 0;
if (header.version == 3)
{
@@ -257,18 +266,18 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
}
TAGDBG ("Offset = %d, header size = %d, data size = %d, footer size = "
- "%d.\n", (gint) * offset, * header_size, * data_size, * footer_size);
+ "%d.\n", (int) * offset, * header_size, * data_size, * footer_size);
return TRUE;
}
-static gint unsyncsafe (guchar * data, gint size)
+static int unsyncsafe (unsigned char * data, int size)
{
- guchar * get = data, * set = data;
+ unsigned char * get = data, * set = data;
while (size --)
{
- guchar c = * set ++ = * get ++;
+ unsigned char c = * set ++ = * get ++;
if (c == 0xff && size && ! get[0])
{
@@ -280,11 +289,11 @@ static gint unsyncsafe (guchar * data, gint size)
return set - data;
}
-static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
- gboolean syncsafe, gint * frame_size, gchar * key, guchar * * data, gint * size)
+static bool_t read_frame (VFSFile * handle, int max_size, int version,
+ bool_t syncsafe, int * frame_size, char * key, unsigned char * * data, int * size)
{
ID3v2FrameHeader header;
- gint skip = 0;
+ int skip = 0;
if ((max_size -= sizeof (ID3v2FrameHeader)) < 0)
return FALSE;
@@ -305,8 +314,8 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
TAGDBG ("Found frame:\n");
TAGDBG (" key = %.4s\n", header.key);
- TAGDBG (" size = %d\n", (gint) header.size);
- TAGDBG (" flags = %x\n", (gint) header.flags);
+ TAGDBG (" size = %d\n", (int) header.size);
+ TAGDBG (" flags = %x\n", (int) header.flags);
* frame_size = sizeof (ID3v2FrameHeader) + header.size;
sprintf (key, "%.4s", header.key);
@@ -338,18 +347,18 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
return TRUE;
}
-static gchar * decode_text_frame (const guchar * data, gint size)
+static char * decode_text_frame (const unsigned char * data, int size)
{
- return convert_text ((const gchar *) data + 1, size - 1, data[0], FALSE,
+ return convert_text ((const char *) data + 1, size - 1, data[0], FALSE,
NULL, NULL);
}
-static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
- lang, gchar * * type, gchar * * value)
+static bool_t decode_comment_frame (const unsigned char * _data, int size, char * *
+ lang, char * * type, char * * value)
{
- const gchar * data = (const gchar *) _data;
- gchar * pair, * sep;
- gint converted;
+ const char * data = (const char *) _data;
+ char * pair, * sep;
+ int converted;
pair = convert_text (data + 4, size - 4, data[0], FALSE, & converted, NULL);
@@ -364,22 +373,30 @@ static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
return TRUE;
}
-static void free_generic_frame (GenericFrame * frame)
+static void free_frame (GenericFrame * frame)
{
g_free (frame->data);
g_free (frame);
}
-static void read_all_frames (VFSFile * handle, gint version, gboolean syncsafe,
- gint data_size, mowgli_dictionary_t * dict)
+static void free_frame_list (GList * list)
+{
+ for (GList * node = list; node; node = node->next)
+ free_frame (node->data);
+
+ g_list_free (list);
+}
+
+static void read_all_frames (VFSFile * handle, int version, bool_t syncsafe,
+ int data_size, GHashTable * dict)
{
- gint pos;
+ int pos;
for (pos = 0; pos < data_size; )
{
- gint frame_size, size;
- gchar key[5];
- guchar * data;
+ int frame_size, size;
+ char key[5];
+ unsigned char * data;
GenericFrame * frame;
if (! read_frame (handle, data_size - pos, version, syncsafe,
@@ -388,23 +405,24 @@ static void read_all_frames (VFSFile * handle, gint version, gboolean syncsafe,
pos += frame_size;
- if (mowgli_dictionary_retrieve (dict, key) != NULL)
- {
- TAGDBG ("Discarding duplicate frame %s.\n", key);
- g_free (data);
- continue;
- }
-
frame = g_malloc (sizeof (GenericFrame));
strcpy (frame->key, key);
frame->data = data;
frame->size = size;
- mowgli_dictionary_add (dict, key, frame);
+ void * key2, * list = NULL;
+
+ if (g_hash_table_lookup_extended (dict, key, & key2, & list))
+ g_hash_table_steal (dict, key);
+ else
+ key2 = str_get (key);
+
+ list = g_list_append (list, frame);
+ g_hash_table_insert (dict, key2, list);
}
}
-static gboolean write_frame (VFSFile * handle, GenericFrame * frame, gint *
+static bool_t write_frame (VFSFile * handle, GenericFrame * frame, int *
frame_size)
{
TAGDBG ("Writing frame %s, size %d\n", frame->key, frame->size);
@@ -429,29 +447,31 @@ static gboolean write_frame (VFSFile * handle, GenericFrame * frame, gint *
typedef struct {
VFSFile * file;
- gint written_size;
+ int written_size;
} WriteState;
-static gint write_frame_cb (mowgli_dictionary_elem_t * elem, void * user)
+static void write_frame_list (void * key, void * list, void * user)
{
WriteState * state = user;
- gint size;
- if (! write_frame (state->file, elem->data, & size))
- return -1;
- state->written_size += size;
- return 0;
+
+ for (GList * node = list; node; node = node->next)
+ {
+ int size;
+ if (write_frame (state->file, node->data, & size))
+ state->written_size += size;
+ }
}
-static gint writeAllFramesToFile (VFSFile * fd, mowgli_dictionary_t * dict)
+static int write_all_frames (VFSFile * handle, GHashTable * dict)
{
- WriteState state = {fd, 0};
- mowgli_dictionary_foreach (dict, write_frame_cb, & state);
+ WriteState state = {handle, 0};
+ g_hash_table_foreach (dict, write_frame_list, & state);
TAGDBG ("Total frame bytes written = %d.\n", state.written_size);
return state.written_size;
}
-static gboolean write_header (VFSFile * handle, gint size, gboolean is_footer)
+static bool_t write_header (VFSFile * handle, int size, bool_t is_footer)
{
ID3v2Header header;
@@ -466,9 +486,9 @@ static gboolean write_header (VFSFile * handle, gint size, gboolean is_footer)
(ID3v2Header);
}
-static gint get_frame_id (const gchar * key)
+static int get_frame_id (const char * key)
{
- gint id;
+ int id;
for (id = 0; id < ID3_TAGS_NO; id ++)
{
@@ -479,10 +499,10 @@ static gint get_frame_id (const gchar * key)
return -1;
}
-static void associate_string (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_string (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
{
- gchar * text = decode_text_frame (data, size);
+ char * text = decode_text_frame (data, size);
if (text == NULL || ! text[0])
{
@@ -495,58 +515,61 @@ static void associate_string (Tuple * tuple, gint field, const gchar *
else
TAGDBG ("Field %i = %s.\n", field, text);
- tuple_associate_string (tuple, field, customfield, text);
+ tuple_set_str (tuple, field, customfield, text);
g_free (text);
}
-static void associate_int (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_int (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
{
- gchar * text = decode_text_frame (data, size);
+ char * text = decode_text_frame (data, size);
- if (text == NULL || ! text[0])
+ if (text == NULL || atoi (text) < 1)
+ {
+ g_free (text);
return;
+ }
if (customfield != NULL)
TAGDBG ("Custom field %s = %s.\n", customfield, text);
else
TAGDBG ("Field %i = %s.\n", field, text);
- tuple_associate_int (tuple, field, customfield, atoi (text));
+ tuple_set_int (tuple, field, customfield, atoi (text));
g_free (text);
}
-static void decode_private_info (Tuple * tuple, const guchar * data, gint size)
+static void decode_private_info (Tuple * tuple, const unsigned char * data, int size)
{
- gchar * text = g_strndup ((const gchar *) data, size);
+ char * text = g_strndup ((const char *) data, size);
if (!strncmp(text, "WM/", 3))
{
- gchar *separator = strchr(text, 0);
+ char *separator = strchr(text, 0);
if (separator == NULL)
goto DONE;
- gchar * value = separator + 1;
+ char * value = separator + 1;
if (!strncmp(text, "WM/MediaClassPrimaryID", 22))
{
if (!memcmp(value, PRIMARY_CLASS_MUSIC, 16))
- tuple_associate_string (tuple, -1, "media-class", "Music");
+ tuple_set_str (tuple, -1, "media-class", "Music");
if (!memcmp(value, PRIMARY_CLASS_AUDIO, 16))
- tuple_associate_string (tuple, -1, "media-class", "Audio (non-music)");
+ tuple_set_str (tuple, -1, "media-class", "Audio (non-music)");
} else if (!strncmp(text, "WM/MediaClassSecondaryID", 24))
{
if (!memcmp(value, SECONDARY_CLASS_AUDIOBOOK, 16))
- tuple_associate_string (tuple, -1, "media-class", "Audio Book");
+ tuple_set_str (tuple, -1, "media-class", "Audio Book");
if (!memcmp(value, SECONDARY_CLASS_SPOKENWORD, 16))
- tuple_associate_string (tuple, -1, "media-class", "Spoken Word");
+ tuple_set_str (tuple, -1, "media-class", "Spoken Word");
if (!memcmp(value, SECONDARY_CLASS_NEWS, 16))
- tuple_associate_string (tuple, -1, "media-class", "News");
+ tuple_set_str (tuple, -1, "media-class", "News");
if (!memcmp(value, SECONDARY_CLASS_TALKSHOW, 16))
- tuple_associate_string (tuple, -1, "media-class", "Talk Show");
+ tuple_set_str (tuple, -1, "media-class", "Talk Show");
if (!memcmp(value, SECONDARY_CLASS_GAMES_CLIP, 16))
- tuple_associate_string (tuple, -1, "media-class", "Game Audio (clip)");
+ tuple_set_str (tuple, -1, "media-class", "Game Audio (clip)");
if (!memcmp(value, SECONDARY_CLASS_GAMES_SONG, 16))
- tuple_associate_string (tuple, -1, "media-class", "Game Soundtrack");
+ tuple_set_str (tuple, -1, "media-class", "Game Soundtrack");
} else {
TAGDBG("Unrecognised tag %s (Windows Media) ignored\n", text);
}
@@ -558,9 +581,9 @@ DONE:
g_free (text);
}
-static void decode_comment (Tuple * tuple, const guchar * data, gint size)
+static void decode_comment (Tuple * tuple, const unsigned char * data, int size)
{
- gchar * lang, * type, * value;
+ char * lang, * type, * value;
if (! decode_comment_frame (data, size, & lang, & type, & value))
return;
@@ -568,45 +591,26 @@ static void decode_comment (Tuple * tuple, const guchar * data, gint size)
TAGDBG ("Comment: lang = %s, type = %s, value = %s.\n", lang, type, value);
if (! type[0]) /* blank type == actual comment */
- tuple_associate_string (tuple, FIELD_COMMENT, NULL, value);
+ tuple_set_str (tuple, FIELD_COMMENT, NULL, value);
g_free (lang);
g_free (type);
g_free (value);
}
-static void decode_txxx (Tuple * tuple, const guchar * data, gint size)
-{
- gchar * text = decode_text_frame (data, size);
-
- if (text == NULL)
- return;
-
- gchar *separator = strchr(text, 0);
-
- if (separator == NULL)
- return;
-
- gchar * value = separator + 1;
- TAGDBG ("TXXX: %s = %s.\n", text, value);
- tuple_associate_string (tuple, -1, text, value);
-
- g_free (text);
-}
-
-static gboolean decode_rva2_block (const guchar * * _data, gint * _size, gint *
- channel, gint * adjustment, gint * adjustment_unit, gint * peak, gint *
+static bool_t decode_rva2_block (const unsigned char * * _data, int * _size, int *
+ channel, int * adjustment, int * adjustment_unit, int * peak, int *
peak_unit)
{
- const guchar * data = * _data;
- gint size = * _size;
- gint peak_bits;
+ const unsigned char * data = * _data;
+ int size = * _size;
+ int peak_bits;
if (size < 4)
return FALSE;
* channel = data[0];
- * adjustment = (gchar) data[1]; /* first byte is signed */
+ * adjustment = (char) data[1]; /* first byte is signed */
* adjustment = (* adjustment << 8) | data[2];
* adjustment_unit = 512;
peak_bits = data[3];
@@ -617,10 +621,10 @@ static gboolean decode_rva2_block (const guchar * * _data, gint * _size, gint *
TAGDBG ("RVA2 block: channel = %d, adjustment = %d/%d, peak bits = %d\n",
* channel, * adjustment, * adjustment_unit, peak_bits);
- if (peak_bits > 0 && peak_bits < sizeof (gint) * 8)
+ if (peak_bits > 0 && peak_bits < sizeof (int) * 8)
{
- gint bytes = (peak_bits + 7) / 8;
- gint count;
+ int bytes = (peak_bits + 7) / 8;
+ int count;
if (bytes > size)
return FALSE;
@@ -647,15 +651,15 @@ static gboolean decode_rva2_block (const guchar * * _data, gint * _size, gint *
return TRUE;
}
-static void decode_rva2 (Tuple * tuple, const guchar * data, gint size)
+static void decode_rva2 (Tuple * tuple, const unsigned char * data, int size)
{
- const gchar * domain;
- gint channel, adjustment, adjustment_unit, peak, peak_unit;
+ const char * domain;
+ int channel, adjustment, adjustment_unit, peak, peak_unit;
if (memchr (data, 0, size) == NULL)
return;
- domain = (const gchar *) data;
+ domain = (const char *) data;
TAGDBG ("RVA2 domain: %s\n", domain);
@@ -673,44 +677,44 @@ static void decode_rva2 (Tuple * tuple, const guchar * data, gint size)
if (tuple_get_value_type (tuple, FIELD_GAIN_GAIN_UNIT, NULL) ==
TUPLE_INT)
- adjustment = adjustment * (gint64) tuple_get_int (tuple,
+ adjustment = adjustment * (int64_t) tuple_get_int (tuple,
FIELD_GAIN_GAIN_UNIT, NULL) / adjustment_unit;
else
- tuple_associate_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
+ tuple_set_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
adjustment_unit);
if (peak_unit)
{
if (tuple_get_value_type (tuple, FIELD_GAIN_PEAK_UNIT, NULL) ==
TUPLE_INT)
- peak = peak * (gint64) tuple_get_int (tuple,
+ peak = peak * (int64_t) tuple_get_int (tuple,
FIELD_GAIN_PEAK_UNIT, NULL) / peak_unit;
else
- tuple_associate_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
+ tuple_set_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
peak_unit);
}
- if (! strcasecmp (domain, "album"))
+ if (! g_ascii_strcasecmp (domain, "album"))
{
- tuple_associate_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
+ tuple_set_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
if (peak_unit)
- tuple_associate_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
+ tuple_set_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
}
- else if (! strcasecmp (domain, "track"))
+ else if (! g_ascii_strcasecmp (domain, "track"))
{
- tuple_associate_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
+ tuple_set_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
if (peak_unit)
- tuple_associate_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
+ tuple_set_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
}
}
}
-static void decode_genre (Tuple * tuple, const guchar * data, gint size)
+static void decode_genre (Tuple * tuple, const unsigned char * data, int size)
{
- gint numericgenre;
- gchar * text = decode_text_frame (data, size);
+ int numericgenre;
+ char * text = decode_text_frame (data, size);
if (text == NULL)
return;
@@ -721,47 +725,37 @@ static void decode_genre (Tuple * tuple, const guchar * data, gint size)
numericgenre = atoi (text);
if (numericgenre > 0)
- tuple_associate_string (tuple, FIELD_GENRE, NULL,
+ tuple_set_str (tuple, FIELD_GENRE, NULL,
convert_numericgenre_to_text (numericgenre));
else
- tuple_associate_string (tuple, FIELD_GENRE, NULL, text);
+ tuple_set_str (tuple, FIELD_GENRE, NULL, text);
g_free (text);
return;
}
-static GenericFrame * add_generic_frame (gint id, gint size,
- mowgli_dictionary_t * dict)
+static GenericFrame * add_generic_frame (int id, int size,
+ GHashTable * dict)
{
- GenericFrame * frame = mowgli_dictionary_retrieve (dict, id3_frames[id]);
-
- if (frame == NULL)
- {
- frame = g_malloc (sizeof (GenericFrame));
- strcpy (frame->key, id3_frames[id]);
- mowgli_dictionary_add (dict, frame->key, frame);
- }
- else
- g_free (frame->data);
+ GenericFrame * frame = g_malloc (sizeof (GenericFrame));
+ strcpy (frame->key, id3_frames[id]);
frame->data = g_malloc (size);
frame->size = size;
+
+ GList * list = g_list_append (NULL, frame);
+ g_hash_table_insert (dict, str_get (id3_frames[id]), list);
+
return frame;
}
-static void remove_frame (gint id, mowgli_dictionary_t * dict)
+static void remove_frame (int id, GHashTable * dict)
{
- GenericFrame * frame = mowgli_dictionary_retrieve (dict, id3_frames[id]);
- if (frame == NULL)
- return;
-
TAGDBG ("Deleting frame %s.\n", id3_frames[id]);
- mowgli_dictionary_delete (dict, id3_frames[id]);
- free_generic_frame (frame);
+ g_hash_table_remove (dict, id3_frames[id]);
}
-static void add_text_frame (gint id, const gchar * text, mowgli_dictionary_t *
- dict)
+static void add_text_frame (int id, const char * text, GHashTable * dict)
{
if (text == NULL)
{
@@ -770,14 +764,14 @@ static void add_text_frame (gint id, const gchar * text, mowgli_dictionary_t *
}
TAGDBG ("Adding text frame %s = %s.\n", id3_frames[id], text);
- gint length = strlen (text);
+ int length = strlen (text);
GenericFrame * frame = add_generic_frame (id, length + 1, dict);
frame->data[0] = 3; /* UTF-8 encoding */
memcpy (frame->data + 1, text, length);
}
-static void add_comment_frame (const gchar * text, mowgli_dictionary_t * dict)
+static void add_comment_frame (const char * text, GHashTable * dict)
{
if (text == NULL)
{
@@ -786,22 +780,24 @@ static void add_comment_frame (const gchar * text, mowgli_dictionary_t * dict)
}
TAGDBG ("Adding comment frame = %s.\n", text);
- gint length = strlen (text);
+ int length = strlen (text);
GenericFrame * frame = add_generic_frame (ID3_COMMENT, length + 5, dict);
frame->data[0] = 3; /* UTF-8 encoding */
- strcpy ((gchar *) frame->data + 1, "eng"); /* well, it *might* be English */
+ strcpy ((char *) frame->data + 1, "eng"); /* well, it *might* be English */
memcpy (frame->data + 5, text, length);
}
-static void add_frameFromTupleStr (const Tuple * tuple, gint field, gint
- id3_field, mowgli_dictionary_t * dict)
+static void add_frameFromTupleStr (const Tuple * tuple, int field, int
+ id3_field, GHashTable * dict)
{
- add_text_frame (id3_field, tuple_get_string (tuple, field, NULL), dict);
+ char * str = tuple_get_str (tuple, field, NULL);
+ add_text_frame (id3_field, str, dict);
+ str_unref (str);
}
-static void add_frameFromTupleInt (const Tuple * tuple, gint field, gint
- id3_field, mowgli_dictionary_t * dict)
+static void add_frameFromTupleInt (const Tuple * tuple, int field, int
+ id3_field, GHashTable * dict)
{
if (tuple_get_value_type (tuple, field, NULL) != TUPLE_INT)
{
@@ -809,27 +805,27 @@ static void add_frameFromTupleInt (const Tuple * tuple, gint field, gint
return;
}
- gchar scratch[16];
+ char scratch[16];
snprintf (scratch, sizeof scratch, "%d", tuple_get_int (tuple, field, NULL));
add_text_frame (id3_field, scratch, dict);
}
-static gboolean id3v24_can_handle_file (VFSFile * handle)
+static bool_t id3v24_can_handle_file (VFSFile * handle)
{
- gint version, header_size, data_size, footer_size;
- gboolean syncsafe;
- gsize offset;
+ int version, header_size, data_size, footer_size;
+ bool_t syncsafe;
+ int64_t offset;
return read_header (handle, & version, & syncsafe, & offset, & header_size,
& data_size, & footer_size);
}
-static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
+static bool_t id3v24_read_tag (Tuple * tuple, VFSFile * handle)
{
- gint version, header_size, data_size, footer_size;
- gboolean syncsafe;
- gsize offset;
- gint pos;
+ int version, header_size, data_size, footer_size;
+ bool_t syncsafe;
+ int64_t offset;
+ int pos;
if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
& data_size, & footer_size))
@@ -837,9 +833,9 @@ static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
for (pos = 0; pos < data_size; )
{
- gint frame_size, size, id;
- gchar key[5];
- guchar * data;
+ int frame_size, size, id;
+ char key[5];
+ unsigned char * data;
if (! read_frame (handle, data_size - pos, version, syncsafe,
& frame_size, key, & data, & size))
@@ -892,9 +888,6 @@ static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
case ID3_ENCODER:
associate_string (tuple, -1, "encoder", data, size);
break;
- case ID3_TXXX:
- decode_txxx (tuple, data, size);
- break;
case ID3_RVA2:
decode_rva2 (tuple, data, size);
break;
@@ -910,11 +903,11 @@ static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
return TRUE;
}
-static gboolean parse_apic (const guchar * _data, gint size, gchar * * mime,
- gint * type, gchar * * desc, void * * image_data, gint * image_size)
+static bool_t parse_apic (const unsigned char * _data, int size, char * * mime,
+ int * type, char * * desc, void * * image_data, int * image_size)
{
- const gchar * data = (const gchar *) _data;
- const gchar * sep, * after;
+ const char * data = (const char *) _data;
+ const char * sep, * after;
if (size < 2 || (sep = memchr (data + 1, 0, size - 2)) == NULL)
return FALSE;
@@ -933,13 +926,13 @@ static gboolean parse_apic (const guchar * _data, gint size, gchar * * mime,
return TRUE;
}
-static gboolean id3v24_read_image (VFSFile * handle, void * * image_data, gint *
- image_size)
+static bool_t id3v24_read_image (VFSFile * handle, void * * image_data,
+ int64_t * image_size64)
{
- gint version, header_size, data_size, footer_size, parsed;
- gboolean syncsafe;
- gsize offset;
- gboolean found = FALSE;
+ int version, header_size, data_size, footer_size, parsed, image_size = 0;
+ bool_t syncsafe;
+ int64_t offset;
+ bool_t found = FALSE;
if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
& data_size, & footer_size))
@@ -947,17 +940,17 @@ static gboolean id3v24_read_image (VFSFile * handle, void * * image_data, gint *
for (parsed = 0; parsed < data_size && ! found; )
{
- gint frame_size, size, type;
- gchar key[5];
- guchar * data;
- gchar * mime, * desc;
+ int frame_size, size, type;
+ char key[5];
+ unsigned char * data;
+ char * mime, * desc;
if (! read_frame (handle, data_size - parsed, version, syncsafe,
& frame_size, key, & data, & size))
break;
if (! strcmp (key, "APIC") && parse_apic (data, size, & mime, & type,
- & desc, image_data, image_size))
+ & desc, image_data, & image_size))
{
g_free (mime);
g_free (desc);
@@ -977,26 +970,25 @@ static gboolean id3v24_read_image (VFSFile * handle, void * * image_data, gint *
parsed += frame_size;
}
- return found;
-}
+ if (found)
+ * image_size64 = image_size;
-static void free_frame_cb (mowgli_dictionary_elem_t * element, void * unused)
-{
- free_generic_frame (element->data);
+ return found;
}
-static gboolean id3v24_write_tag (const Tuple * tuple, VFSFile * f)
+static bool_t id3v24_write_tag (const Tuple * tuple, VFSFile * f)
{
- gint version, header_size, data_size, footer_size;
- gboolean syncsafe;
- gsize offset;
+ int version, header_size, data_size, footer_size;
+ bool_t syncsafe;
+ int64_t offset;
if (! read_header (f, & version, & syncsafe, & offset, & header_size,
& data_size, & footer_size))
return FALSE;
//read all frames into generic frames;
- mowgli_dictionary_t * dict = mowgli_dictionary_create (strcasecmp);
+ GHashTable * dict = g_hash_table_new_full (g_str_hash, g_str_equal,
+ str_unref_cb, (GDestroyNotify) free_frame_list);
read_all_frames (f, version, syncsafe, data_size, dict);
//make the new frames from tuple and replace in the dictionary the old frames with the new ones
@@ -1006,7 +998,10 @@ static gboolean id3v24_write_tag (const Tuple * tuple, VFSFile * f)
add_frameFromTupleInt (tuple, FIELD_YEAR, ID3_YEAR, dict);
add_frameFromTupleInt (tuple, FIELD_TRACK_NUMBER, ID3_TRACKNR, dict);
add_frameFromTupleStr (tuple, FIELD_GENRE, ID3_GENRE, dict);
- add_comment_frame (tuple_get_string (tuple, FIELD_COMMENT, NULL), dict);
+
+ char * comment = tuple_get_str (tuple, FIELD_COMMENT, NULL);
+ add_comment_frame (comment, dict);
+ str_unref (comment);
if (! offset)
{
@@ -1027,17 +1022,17 @@ static gboolean id3v24_write_tag (const Tuple * tuple, VFSFile * f)
FALSE))
goto ERR;
- data_size = writeAllFramesToFile (f, dict);
+ data_size = write_all_frames (f, dict);
if (! write_header (f, data_size, TRUE) || vfs_fseek (f, offset, SEEK_SET)
|| ! write_header (f, data_size, FALSE))
goto ERR;
- mowgli_dictionary_destroy (dict, free_frame_cb, NULL);
+ g_hash_table_destroy (dict);
return TRUE;
ERR:
- mowgli_dictionary_destroy (dict, free_frame_cb, NULL);
+ g_hash_table_destroy (dict);
return FALSE;
}
diff --git a/src/libaudtag/tag_module.c b/src/libaudtag/tag_module.c
index 0b2f743..0ba7ec3 100644
--- a/src/libaudtag/tag_module.c
+++ b/src/libaudtag/tag_module.c
@@ -19,31 +19,27 @@
*/
#include <glib.h>
+#include <stdio.h>
+
#include <libaudcore/tuple.h>
#include <libaudcore/vfs.h>
#include "audtag.h"
#include "util.h"
#include "tag_module.h"
-#include "wma/module.h"
#include "id3/id3v1.h"
#include "id3/id3v22.h"
#include "id3/id3v24.h"
#include "ape/ape.h"
-/* #include "aac/aac.h" */
-void init_tag_modules(void)
-{
- mowgli_node_add((void *)&id3v24, &id3v24.node, &tag_modules);
- mowgli_node_add((void *)&id3v22, &id3v22.node, &tag_modules);
- mowgli_node_add((void *)&ape, &ape.node, &tag_modules);
- mowgli_node_add((void *)&id3v1, &id3v1.node, &tag_modules);
-}
+static tag_module_t * const modules[] = {& id3v24, & id3v22, & ape, & id3v1};
+#define N_MODULES (sizeof modules / sizeof modules[0])
-tag_module_t * find_tag_module (VFSFile * fd, gint new_type)
+tag_module_t * find_tag_module (VFSFile * fd, int new_type)
{
- mowgli_node_t *mod, *tmod;
- MOWGLI_LIST_FOREACH_SAFE(mod, tmod, tag_modules.head)
+ int i;
+
+ for (i = 0; i < N_MODULES; i ++)
{
if (vfs_fseek(fd, 0, SEEK_SET))
{
@@ -51,21 +47,20 @@ tag_module_t * find_tag_module (VFSFile * fd, gint new_type)
return NULL;
}
- if (((tag_module_t *) mod->data)->can_handle_file (fd))
+ if (modules[i]->can_handle_file (fd))
{
- TAGDBG ("Module %s accepted file.\n", ((tag_module_t *)
- mod->data)->name);
- return mod->data;
+ TAGDBG ("Module %s accepted file.\n", modules[i]->name);
+ return modules[i];
}
}
/* No existing tag; see if we can create a new one. */
if (new_type != TAG_TYPE_NONE)
{
- MOWGLI_LIST_FOREACH_SAFE (mod, tmod, tag_modules.head)
+ for (i = 0; i < N_MODULES; i ++)
{
- if (((tag_module_t *) (mod->data))->type == new_type)
- return mod->data;
+ if (modules[i]->type == new_type)
+ return modules[i];
}
}
diff --git a/src/libaudtag/tag_module.h b/src/libaudtag/tag_module.h
index 6884228..dee3be2 100644
--- a/src/libaudtag/tag_module.h
+++ b/src/libaudtag/tag_module.h
@@ -23,32 +23,20 @@
#ifndef TAG_MODULE_H
#define TAG_MODULE_H
-G_BEGIN_DECLS
-
-#include <glib.h>
-#include <mowgli.h>
#include "libaudcore/tuple.h"
#include "libaudcore/vfs.h"
-mowgli_list_t tag_modules;
-int number_of_modules;
typedef Tuple* pTuple;
typedef struct _module {
- gchar *name;
- gint type; /* set to TAG_TYPE_NONE if the module cannot create new tags */
- gboolean(*can_handle_file) (VFSFile *fd);
- gboolean (* read_tag) (Tuple * tuple, VFSFile * handle);
- gboolean (* read_image) (VFSFile * handle, void * * data, gint * size);
- gboolean (* write_tag) (const Tuple * tuple, VFSFile * handle);
-
- mowgli_node_t node;
+ char *name;
+ int type; /* set to TAG_TYPE_NONE if the module cannot create new tags */
+ bool_t(*can_handle_file) (VFSFile *fd);
+ bool_t (* read_tag) (Tuple * tuple, VFSFile * handle);
+ bool_t (* read_image) (VFSFile * handle, void * * data, int64_t * size);
+ bool_t (* write_tag) (const Tuple * tuple, VFSFile * handle);
} tag_module_t;
-/* this function must be modified when including new modules */
-void init_tag_modules(void);
-
-tag_module_t * find_tag_module (VFSFile * handle, gint new_type);
+tag_module_t * find_tag_module (VFSFile * handle, int new_type);
-G_END_DECLS
#endif /* TAG_MODULE_H */
diff --git a/src/libaudtag/util.c b/src/libaudtag/util.c
index 5d75777..9fbf28a 100644
--- a/src/libaudtag/util.c
+++ b/src/libaudtag/util.c
@@ -19,114 +19,30 @@
*/
#include <glib.h>
+#include <stdio.h>
+
#include "util.h"
#include <inttypes.h>
/* convert windows time to unix time */
-time_t unix_time(guint64 win_time)
+time_t unix_time(uint64_t win_time)
{
- guint64 t = (guint64) ((win_time / 10000000LL) - 11644473600LL);
+ uint64_t t = (uint64_t) ((win_time / 10000000LL) - 11644473600LL);
return (time_t) t;
}
-guint16 get_year(guint64 win_time)
+uint16_t get_year(uint64_t win_time)
{
GDate *d = g_date_new();
g_date_set_time_t(d, unix_time(win_time));
- guint16 year = g_date_get_year(d);
+ uint16_t year = g_date_get_year(d);
g_date_free(d);
return year;
}
-Tuple *makeTuple(Tuple * tuple, const gchar * title, const gchar * artist, const gchar * comment, const gchar * album, const gchar * genre, const gchar * year, const gchar * filePath, int tracnr)
-{
-
- tuple_associate_string(tuple, FIELD_ARTIST, NULL, artist);
- tuple_associate_string(tuple, FIELD_TITLE, NULL, title);
- tuple_associate_string(tuple, FIELD_COMMENT, NULL, comment);
- tuple_associate_string(tuple, FIELD_ALBUM, NULL, album);
- tuple_associate_string(tuple, FIELD_GENRE, NULL, genre);
- tuple_associate_string(tuple, FIELD_YEAR, NULL, year);
- tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, tracnr);
- tuple_associate_string(tuple, FIELD_FILE_PATH, NULL, filePath);
- return tuple;
-}
-
-const gchar *get_complete_filepath(Tuple * tuple)
-{
- const gchar *filepath;
- const gchar *dir;
- const gchar *file;
-
- dir = tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
- file = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
- filepath = g_strdup_printf("%s/%s", dir, file);
- TAGDBG("file path = %s\n", filepath);
- return filepath;
-}
-
-void print_tuple(Tuple * tuple)
-{
-#if WMA_DEBUG
- TAGDBG("--------------TUPLE PRINT --------------------\n");
- const gchar *title = tuple_get_string(tuple, FIELD_TITLE, NULL);
- TAGDBG("title = %s\n", title);
- /* artist */
- const gchar *artist = tuple_get_string(tuple, FIELD_ARTIST, NULL);
- TAGDBG("artist = %s\n", artist);
-
- /* copyright */
- const gchar *copyright = tuple_get_string(tuple, FIELD_COPYRIGHT, NULL);
- TAGDBG("copyright = %s\n", copyright);
-
- /* comment / description */
-
- const gchar *comment = tuple_get_string(tuple, FIELD_COMMENT, NULL);
- TAGDBG("comment = %s\n", comment);
-
- /* codec name */
- const gchar *codec_name = tuple_get_string(tuple, FIELD_CODEC, NULL);
- TAGDBG("codec = %s\n", codec_name);
-
- /* album */
- const gchar *album = tuple_get_string(tuple, FIELD_ALBUM, NULL);
- TAGDBG("Album = %s\n", album);
-
- /*track number */
- gint track_nr = tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL);
- TAGDBG("Track nr = %d\n", track_nr);
-
- /* genre */
- const gchar *genre = tuple_get_string(tuple, FIELD_GENRE, NULL);
- TAGDBG("Genre = %s \n", genre);
-
- /* length */
- gint length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
- TAGDBG("Length = %d\n", length);
-
- /* year */
- gint year = tuple_get_int(tuple, FIELD_YEAR, NULL);
- TAGDBG("Year = %d\n", year);
-
- /* quality */
- const gchar *quality = tuple_get_string(tuple, FIELD_QUALITY, NULL);
- TAGDBG("quality = %s\n", quality);
-
- /* path */
- const gchar *path = tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
- TAGDBG("path = %s\n", path);
-
- /* filename */
- const gchar *filename = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
- TAGDBG("filename = %s\n", filename);
-
- TAGDBG("-----------------END---------------------\n");
-#endif
-}
-
-gchar * read_char_data (VFSFile * file, int size)
+char * read_char_data (VFSFile * file, int size)
{
- gchar * value = g_malloc (size + 1);
+ char * value = g_malloc (size + 1);
if (vfs_fread (value, 1, size, file) < size)
{
g_free (value);
@@ -136,39 +52,14 @@ gchar * read_char_data (VFSFile * file, int size)
return value;
}
-gboolean write_char_data(VFSFile * f, gchar * data, size_t i)
-{
- return (vfs_fwrite(data, i, 1, f) == i);
-}
-
-gchar *utf8(gunichar2 * s)
-{
- g_return_val_if_fail(s != NULL, NULL);
- return g_utf16_to_utf8(s, -1, NULL, NULL, NULL);
-}
-
-gunichar2 *fread_utf16(VFSFile * f, guint64 size)
-{
- gunichar2 *p = (gunichar2 *) g_malloc0(size);
- if (vfs_fread(p, 1, size, f) != size)
- {
- g_free(p);
- p = NULL;
- }
- gchar *s = utf8(p);
- TAGDBG("Converted to UTF8: '%s'\n", s);
- g_free(s);
- return p;
-}
-
-gboolean write_utf16(VFSFile * f, gunichar2 * data, size_t i)
+bool_t write_char_data(VFSFile * f, char * data, size_t i)
{
return (vfs_fwrite(data, i, 1, f) == i);
}
-guint8 read_uint8(VFSFile * fd)
+uint8_t read_uint8(VFSFile * fd)
{
- guint16 i;
+ uint16_t i;
if (vfs_fread(&i, 1, 1, fd) == 1)
{
return i;
@@ -176,92 +67,92 @@ guint8 read_uint8(VFSFile * fd)
return -1;
}
-guint16 read_LEuint16(VFSFile * fd)
+uint16_t read_LEuint16(VFSFile * fd)
{
- guint16 a;
+ uint16_t a;
if (vfs_fget_le16(&a, fd))
return a;
else
return -1;
}
-guint16 read_BEuint16(VFSFile * fd)
+uint16_t read_BEuint16(VFSFile * fd)
{
- guint16 a;
+ uint16_t a;
if (vfs_fget_be16(&a, fd))
return a;
else
return -1;
}
-guint32 read_LEuint32(VFSFile * fd)
+uint32_t read_LEuint32(VFSFile * fd)
{
- guint32 a;
+ uint32_t a;
if (vfs_fget_le32(&a, fd))
return a;
else
return -1;
}
-guint32 read_BEuint32(VFSFile * fd)
+uint32_t read_BEuint32(VFSFile * fd)
{
- guint32 a;
+ uint32_t a;
if (vfs_fget_be32(&a, fd))
return a;
else
return -1;
}
-guint64 read_LEuint64(VFSFile * fd)
+uint64_t read_LEuint64(VFSFile * fd)
{
- guint64 a;
+ uint64_t a;
if (vfs_fget_le64(&a, fd))
return a;
else
return -1;
}
-guint64 read_BEuint64(VFSFile * fd)
+uint64_t read_BEuint64(VFSFile * fd)
{
- guint64 a;
+ uint64_t a;
if (vfs_fget_be64(&a, fd))
return a;
else
return 1;
}
-gboolean write_uint8(VFSFile * fd, guint8 val)
+bool_t write_uint8(VFSFile * fd, uint8_t val)
{
return (vfs_fwrite(&val, 1, 1, fd) == 1);
}
-gboolean write_LEuint16(VFSFile * fd, guint16 val)
+bool_t write_LEuint16(VFSFile * fd, uint16_t val)
{
- guint16 le_val = GUINT32_TO_LE(val);
+ uint16_t le_val = GUINT32_TO_LE(val);
return (vfs_fwrite(&le_val, 2, 1, fd) == 2);
}
-gboolean write_BEuint32(VFSFile * fd, guint32 val)
+bool_t write_BEuint32(VFSFile * fd, uint32_t val)
{
- guint32 be_val = GUINT32_TO_BE(val);
+ uint32_t be_val = GUINT32_TO_BE(val);
return (vfs_fwrite(&be_val, 4, 1, fd) == 4);
}
-gboolean write_LEuint32(VFSFile * fd, guint32 val)
+bool_t write_LEuint32(VFSFile * fd, uint32_t val)
{
- guint32 le_val = GUINT32_TO_LE(val);
+ uint32_t le_val = GUINT32_TO_LE(val);
return (vfs_fwrite(&le_val, 4, 1, fd) == 4);
}
-gboolean write_LEuint64(VFSFile * fd, guint64 val)
+bool_t write_LEuint64(VFSFile * fd, uint64_t val)
{
- guint64 le_val = GUINT64_TO_LE(val);
+ uint64_t le_val = GUINT64_TO_LE(val);
return (vfs_fwrite(&le_val, 8, 1, fd) == 8);
}
-gboolean cut_beginning_tag (VFSFile * handle, gsize tag_size)
+bool_t cut_beginning_tag (VFSFile * handle, int64_t tag_size)
{
- guchar buffer[16384];
+ unsigned char buffer[16384];
gsize offset = 0, readed;
if (! tag_size)
@@ -287,12 +178,12 @@ gboolean cut_beginning_tag (VFSFile * handle, gsize tag_size)
return vfs_ftruncate (handle, offset) == 0;
}
-gchar *convert_numericgenre_to_text(gint numericgenre)
+char *convert_numericgenre_to_text(int numericgenre)
{
const struct
{
- gint numericgenre;
- gchar *genre;
+ int numericgenre;
+ char *genre;
}
table[] =
{
@@ -423,7 +314,7 @@ gchar *convert_numericgenre_to_text(gint numericgenre)
{GENRE_EURO_HOUSE, "Euro-House"},
};
- gint count;
+ int count;
for (count = 0; count < G_N_ELEMENTS(table); count++)
{
@@ -436,13 +327,13 @@ gchar *convert_numericgenre_to_text(gint numericgenre)
return "Unknown";
}
-guint32 unsyncsafe32 (guint32 x)
+uint32_t unsyncsafe32 (uint32_t x)
{
return (x & 0x7f) | ((x & 0x7f00) >> 1) | ((x & 0x7f0000) >> 2) | ((x &
0x7f000000) >> 3);
}
-guint32 syncsafe32 (guint32 x)
+uint32_t syncsafe32 (uint32_t x)
{
return (x & 0x7f) | ((x & 0x3f80) << 1) | ((x & 0x1fc000) << 2) | ((x &
0xfe00000) << 3);
diff --git a/src/libaudtag/util.h b/src/libaudtag/util.h
index 4692cfd..c3808ad 100644
--- a/src/libaudtag/util.h
+++ b/src/libaudtag/util.h
@@ -22,7 +22,8 @@
#define TAGUTIL_H
-#include <glib.h>
+#include <stdint.h>
+#include <time.h>
#include "libaudcore/tuple.h"
#include "libaudcore/vfs.h"
@@ -157,53 +158,40 @@ enum {
GENRE_EURO_HOUSE
};
-extern gboolean tag_verbose;
+extern bool_t tag_verbose;
#define TAGDBG(...) do {if (tag_verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
-time_t unix_time(guint64 win_time);
+time_t unix_time(uint64_t win_time);
-guint16 get_year(guint64 win_time);
+uint16_t get_year(uint64_t win_time);
-void print_tuple(Tuple *tuple);
+char *read_char_data(VFSFile *fd, int size);
+bool_t write_char_data(VFSFile *f, char *data, size_t i);
-//Tuple *makeTuple(Tuple *tuple, const gchar* title, const gchar* artist,
-// const gchar* comment, const gchar* album,
-// const gchar * genre, const gchar* year,
-// const gchar* filePath, int tracnr);
+uint8_t read_uint8(VFSFile *fd);
+uint16_t read_LEuint16(VFSFile *fd);
+uint16_t read_BEuint16(VFSFile *fd);
+uint32_t read_LEuint32(VFSFile *fd);
+uint32_t read_BEuint32(VFSFile *fd);
+uint64_t read_LEuint64(VFSFile *fd);
+uint64_t read_BEuint64(VFSFile *fd);
-gchar *utf8(gunichar2* s);
-const gchar* get_complete_filepath(Tuple *tuple);
-gchar *read_char_data(VFSFile *fd, int size);
-gboolean write_char_data(VFSFile *f, gchar *data, size_t i);
+bool_t write_uint8(VFSFile *fd, uint8_t val);
+bool_t write_BEuint16(VFSFile *fd, uint16_t val);
+bool_t write_LEuint16(VFSFile *fd, uint16_t val);
+bool_t write_BEuint32(VFSFile *fd, uint32_t val);
+bool_t write_LEuint32(VFSFile *fd, uint32_t val);
+bool_t write_BEuint64(VFSFile *fd, uint64_t val);
+bool_t write_LEuint64(VFSFile *fd, uint64_t val);
-gunichar2 *fread_utf16(VFSFile* f, guint64 size);
-gboolean write_utf16(VFSFile *f, gunichar2 *data, size_t i);
+uint64_t read_LEint64(VFSFile *fd);
+bool_t cut_beginning_tag (VFSFile * handle, int64_t tag_size);
-guint8 read_uint8(VFSFile *fd);
-guint16 read_LEuint16(VFSFile *fd);
-guint16 read_BEuint16(VFSFile *fd);
-guint32 read_LEuint32(VFSFile *fd);
-guint32 read_BEuint32(VFSFile *fd);
-guint64 read_LEuint64(VFSFile *fd);
-guint64 read_BEuint64(VFSFile *fd);
+char *convert_numericgenre_to_text(int numericgenre);
-
-gboolean write_uint8(VFSFile *fd, guint8 val);
-gboolean write_BEuint16(VFSFile *fd, guint16 val);
-gboolean write_LEuint16(VFSFile *fd, guint16 val);
-gboolean write_BEuint32(VFSFile *fd, guint32 val);
-gboolean write_LEuint32(VFSFile *fd, guint32 val);
-gboolean write_BEuint64(VFSFile *fd, guint64 val);
-gboolean write_LEuint64(VFSFile *fd, guint64 val);
-
-guint64 read_LEint64(VFSFile *fd);
-gboolean cut_beginning_tag (VFSFile * handle, gsize tag_size);
-
-gchar *convert_numericgenre_to_text(gint numericgenre);
-
-guint32 unsyncsafe32 (guint32 x);
-guint32 syncsafe32 (guint32 x);
+uint32_t unsyncsafe32 (uint32_t x);
+uint32_t syncsafe32 (uint32_t x);
#endif
diff --git a/src/libaudtag/wma/guid.c b/src/libaudtag/wma/guid.c
deleted file mode 100644
index f464335..0000000
--- a/src/libaudtag/wma/guid.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-/* this stuff may be moved to ../util.h if needed by other formats */
-
-#include <inttypes.h>
-
-#include "libaudcore/vfs.h"
-#include "../util.h"
-#include "guid.h"
-#include "wma_fmt.h"
-
-GUID_t *guid_read_from_file(VFSFile * f)
-{
- GUID_t temp;
-
- if ((f == NULL) || (vfs_fread(&temp, sizeof(GUID_t), 1, f) != 1))
- return NULL;
-
- temp.le32 = GUINT32_FROM_LE(temp.le32);
- temp.le16_1 = GUINT16_FROM_LE(temp.le16_1);
- temp.le16_2 = GUINT16_FROM_LE(temp.le16_2);
- temp.be64 = GUINT64_FROM_BE(temp.be64);
-
- return g_memdup(&temp, sizeof(GUID_t));
-}
-
-gboolean guid_write_to_file(VFSFile * f, int guid_type)
-{
- g_return_val_if_fail(f != NULL, FALSE);
-
- GUID_t *g = guid_convert_from_string(wma_guid_map(guid_type));
-
- gboolean ret = write_LEuint32(f, g->le32) && write_LEuint16(f, g->le16_1) && write_LEuint16(f, g->le16_1) && write_LEuint64(f, g->be64);
- g_free(g);
- return ret;
-}
-
-GUID_t *guid_convert_from_string(const gchar * string)
-{
- GUID_t temp;
-
- if (sscanf(string, "%" SCNx32 "-%" SCNx16 "-%" SCNx16 "-%" SCNx64, &temp.le32, &temp.le16_1, &temp.le16_2, &temp.be64) != 4)
- return NULL;
- return g_memdup(&temp, sizeof(GUID_t));
-}
-
-gchar *guid_convert_to_string(const GUID_t * g)
-{
-
- return g_strdup_printf("%8x-%hx-%hx-%" PRIx64 "\n", GUINT32_TO_LE(g->le32), GUINT16_TO_LE(g->le16_1), GUINT16_TO_LE(g->le16_2), GUINT64_TO_BE(g->be64));
-}
-
-gboolean guid_equal(GUID_t * g1, GUID_t * g2)
-{
- /*
- TAGDBG("GUID 1 = %8x-%hx-%hx-%"PRIx64"\n", g1->le32, g1->le16_1, g1->le16_2, g1->be64);
- TAGDBG("GUID 2 = %8x-%hx-%hx-%"PRIx64"\n", g2->le32, g2->le16_1, g2->le16_2, g2->be64);
- */
-
- g_return_val_if_fail((g1 != NULL) && (g2 != NULL), FALSE);
- if (!memcmp(g1, g2, 16))
- {
- // TAGDBG("equal\n");
-
- return TRUE;
- }
- /* TAGDBG("not equal\n"); */
- return FALSE;
-}
-
-int get_guid_type(GUID_t * g)
-{
- GUID_t *g1;
- int i;
- for (i = 0; i < ASF_OBJECT_LAST - 1; i++)
- {
- g1 = guid_convert_from_string(wma_guid_map(i));
- if (guid_equal(g, g1))
- {
-
- g_free(g1);
- return i;
- }
- }
- return -1;
-}
-
-const gchar *wma_guid_map(int i)
-{
- const gchar *_guid_map[ASF_OBJECT_LAST] = {
- ASF_HEADER_OBJECT_GUID,
- ASF_FILE_PROPERTIES_OBJECT_GUID,
- ASF_STREAM_PROPERTIES_OBJECT_GUID,
- ASF_HEADER_EXTENSION_OBJECT_GUID,
- ASF_CODEC_LIST_OBJECT_GUID,
- ASF_SCRIPT_COMMAND_OBJECT_GUID,
- ASF_MARKER_OBJECT_GUID,
- ASF_BITRATE_MUTUAL_EXCLUSION_OBJECT_GUID,
- ASF_ERROR_CORRECTION_OBJECT_GUID,
- ASF_CONTENT_DESCRIPTION_OBJECT_GUID,
- ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID,
- ASF_CONTENT_BRANDING_OBJECT_GUID,
- ASF_STREAM_BITRATE_PROPERTIES_OBJECT_GUID,
- ASF_CONTENT_ENCRYPTION_OBJECT_GUID,
- ASF_EXTENDED_CONTENT_ENCRYPTION_OBJECT_GUID,
- ASF_DIGITAL_SIGNATURE_OBJECT_GUID,
- ASF_PADDING_OBJECT_GUID
- };
- return _guid_map[i];
-}
diff --git a/src/libaudtag/wma/guid.h b/src/libaudtag/wma/guid.h
deleted file mode 100644
index 8d68d49..0000000
--- a/src/libaudtag/wma/guid.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef _GUID_H
-#define _GUID_H
-
-#include <glib.h>
-#include <libaudcore/vfs.h>
-
-/* this stuff may be moved to ../util.h if needed by other formats */
-typedef struct _guid {
- guint32 le32;
- guint16 le16_1;
- guint16 le16_2;
- guint64 be64;
-}GUID_t;
-
-
-GUID_t *guid_read_from_file(VFSFile *);
-gboolean guid_write_to_file(VFSFile *, int);
-
-GUID_t *guid_convert_from_string(const gchar *);
-gchar *guid_convert_to_string(const GUID_t*);
-gboolean guid_equal(GUID_t *, GUID_t *);
-int get_guid_type(GUID_t *);
-const gchar *wma_guid_map(int);
-
-#endif /* _GUID_H */
diff --git a/src/libaudtag/wma/module.h b/src/libaudtag/wma/module.h
deleted file mode 100644
index 62670cb..0000000
--- a/src/libaudtag/wma/module.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef TAG_WMA_MODULE_H
-
-#define TAG_WMA_MODULE_H
-#include "../tag_module.h"
-#include "wma.h"
-
-extern tag_module_t wma;
-
-#endif
diff --git a/src/libaudtag/wma/wma.c b/src/libaudtag/wma/wma.c
deleted file mode 100644
index 94e181e..0000000
--- a/src/libaudtag/wma/wma.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#include <inttypes.h>
-#include <glib-2.0/glib/gstdio.h>
-#include <libaudcore/tuple.h>
-
-#include "guid.h"
-#include "wma.h"
-#include "wma_fmt.h"
-#include "module.h"
-#include "../util.h"
-
-/* static functions */
-static GenericHeader *read_generic_header(VFSFile * f, gboolean read_data)
-{
- TAGDBG("read top-level header object\n");
- g_return_val_if_fail((f != NULL), NULL);
- GenericHeader *header = g_new0(GenericHeader, 1);
- header->guid = guid_read_from_file(f);
- header->size = read_LEuint64(f);
- if (read_data)
- header->data = (gchar *) read_char_data(f, header->size);
- else
- header->data = NULL;
-
- gchar *s = guid_convert_to_string(header->guid);
- TAGDBG("read GUID: %s\n", s);
- g_free(s);
-
- return header;
-}
-
-static HeaderObj *read_top_header_object(VFSFile * f)
-{
- TAGDBG("read top-level header object\n");
- g_return_val_if_fail((f != NULL), NULL);
- HeaderObj *header = g_new0(HeaderObj, 1);
-
- //we have already read the GUID so we skip it (16 bytes)
- vfs_fseek(f, 16, SEEK_SET);
-
- header->size = read_LEuint64(f);
- header->objectsNr = read_LEuint32(f);
- TAGDBG("Number of child objects: %d\n", header->objectsNr);
-
- header->res1 = read_uint8(f);
- header->res2 = read_uint8(f);
-
- if ((header->size == -1) || (header->objectsNr == -1) || (header->res2 != 2))
- {
- g_free(header);
- return NULL;
- }
- return header;
-}
-
-static ContentDescrObj *read_content_descr_obj(VFSFile * f)
-{
- ContentDescrObj *cdo = g_new0(ContentDescrObj, 1);
- cdo->guid = guid_read_from_file(f);
- cdo->size = read_LEuint64(f);
- cdo->title_length = read_LEuint16(f);
- cdo->author_length = read_LEuint16(f);
- cdo->copyright_length = read_LEuint16(f);
- cdo->desc_length = read_LEuint16(f);
- cdo->rating_length = read_LEuint16(f);
- cdo->title = fread_utf16(f, cdo->title_length);
- cdo->author = fread_utf16(f, cdo->author_length);
- cdo->copyright = fread_utf16(f, cdo->copyright_length);
- cdo->description = fread_utf16(f, cdo->desc_length);
- cdo->rating = fread_utf16(f, cdo->rating_length);
- return cdo;
-}
-
-static ExtContentDescrObj *read_ext_content_descr_obj(VFSFile * f, Tuple * t, gboolean populate_tuple)
-{
- ExtContentDescrObj *ecdo = g_new0(ExtContentDescrObj, 1);
- ecdo->guid = guid_read_from_file(f);
- ecdo->size = read_LEuint64(f);
- ecdo->content_desc_count = read_LEuint16(f);
- ecdo->descriptors = read_descriptors(f, ecdo->content_desc_count, t, populate_tuple);
- return ecdo;
-}
-
-static guint find_descriptor_id(gchar * s)
-{
- TAGDBG("finding descriptor id for '%s'\n", s);
- g_return_val_if_fail(s != NULL, -1);
- gchar *l[DESC_LAST] = { DESC_ALBUM_STR, DESC_YEAR_STR, DESC_GENRE_STR, DESC_TRACK_STR };
- guint i;
- for (i = 0; i < DESC_LAST; i++)
- if (!strcmp(l[i], s))
- {
- TAGDBG("found descriptor %s\n", s);
- return i;
- }
- return -1;
-}
-
-static ContentDescriptor *read_descriptor(VFSFile * f, Tuple * t, gboolean populate_tuple)
-{
- ContentDescriptor *cd = g_new0(ContentDescriptor, 1);
- gchar *val = NULL, *name = NULL;
- guint32 intval = -1;
- gint dtype;
- TAGDBG("reading name_len\n");
- cd->name_len = read_LEuint16(f);
- TAGDBG("reading name\n");
- cd->name = fread_utf16(f, cd->name_len);
- TAGDBG("reading val_type\n");
- cd->val_type = read_LEuint16(f);
- TAGDBG("reading val_len\n");
- cd->val_len = read_LEuint16(f);
-
- name = utf8(cd->name);
- dtype = find_descriptor_id(name);
- g_free(name);
-
- TAGDBG("reading val\n");
-
- if (populate_tuple)
- {
- /*we only parse int's and UTF strings, everything else is handled as raw data */
- if (cd->val_type == 0)
- { /*UTF16 */
- cd->val = read_char_data(f, cd->val_len);
- val = utf8((gunichar2 *) cd->val);
- TAGDBG("val: '%s' dtype: %d\n", val, dtype);
- if (dtype == DESC_ALBUM)
- tuple_associate_string(t, FIELD_ALBUM, NULL, val);
- if (dtype == DESC_GENRE)
- tuple_associate_string(t, FIELD_GENRE, NULL, val);
- if (dtype == DESC_TRACK)
- tuple_associate_int(t, FIELD_TRACK_NUMBER, NULL, atoi(val));
- if (dtype == DESC_YEAR)
- tuple_associate_int(t, FIELD_YEAR, NULL, atoi(val));
- }
- else
- {
- if (cd->val_type == 3)
- {
- intval = read_LEuint32(f);
- TAGDBG("intval: %d, dtype: %d\n", intval, dtype);
- if (dtype == DESC_TRACK)
- tuple_associate_int(t, FIELD_TRACK_NUMBER, NULL, intval);
- }
- else
- cd->val = read_char_data(f, cd->val_len);
- }
- }
- else
- cd->val = read_char_data(f, cd->val_len);
- TAGDBG("read str_val: '%s', intval: %d\n", val, intval);
- TAGDBG("exiting read_descriptor \n\n");
- return cd;
-}
-
-static ContentDescriptor **read_descriptors(VFSFile * f, guint count, Tuple * t, gboolean populate_tuple)
-{
- if (count == 0)
- return NULL;
- ContentDescriptor **descs = g_new0(ContentDescriptor *, count);
- int i;
- for (i = 0; i < count; i++)
- descs[i] = read_descriptor(f, t, populate_tuple);
- return descs;
-}
-
-void free_content_descr_obj(ContentDescrObj * c)
-{
- g_free(c->guid);
- g_free(c->title);
- g_free(c->author);
- g_free(c->copyright);
- g_free(c->description);
- g_free(c->rating);
- g_free(c);
-}
-
-void free_content_descr(ContentDescriptor * cd)
-{
- g_free(cd->name);
- g_free(cd->val);
- g_free(cd);
-}
-
-void free_ext_content_descr_obj(ExtContentDescrObj * ecdo)
-{
- int i;
- g_free(ecdo->guid);
- for (i = 0; i < ecdo->content_desc_count; i++)
- free_content_descr(ecdo->descriptors[i]);
- g_free(ecdo);
-}
-
-/* returns the offset of the object in the file */
-static long ftell_object_by_guid(VFSFile * f, GUID_t * g)
-{
- TAGDBG("seeking object %s, with ID %d \n", guid_convert_to_string(g), get_guid_type(g));
- HeaderObj *h = read_top_header_object(f);
- g_return_val_if_fail((f != NULL) && (g != NULL) && (h != NULL), -1);
-
- gint i = 0;
- while (i < h->objectsNr)
- {
- GenericHeader *gen_hdr = read_generic_header(f, FALSE);
- TAGDBG("encountered GUID %s, with ID %d\n", guid_convert_to_string(gen_hdr->guid), get_guid_type(gen_hdr->guid));
- if (guid_equal(gen_hdr->guid, g))
- {
- g_free(h);
- g_free(gen_hdr);
- guint64 ret = vfs_ftell(f) - 24;
- TAGDBG("at offset %" PRIx64 "\n", ret);
- return ret;
- }
- vfs_fseek(f, gen_hdr->size - 24, SEEK_CUR); //most headers have a size as their second field"
- i++;
- }
- TAGDBG("The object was not found\n");
-
- g_free(h);
- return -1;
-}
-
-VFSFile *make_temp_file()
-{
- /* create a temporary file */
- const gchar *tmpdir = g_get_tmp_dir();
- gchar *tmp_path = g_strdup_printf("file://%s/%s", tmpdir, "wmatmp.wma");
- return vfs_fopen(tmp_path, "w+");
-}
-
-long ftell_object_by_str(VFSFile * f, gchar * s)
-{
- GUID_t *g = guid_convert_from_string(s);
- long res = ftell_object_by_guid(f, g);
- g_free(g);
- return res;
-}
-
-static void write_content_descr_obj_from_tuple(VFSFile * f, ContentDescrObj * cdo, Tuple * t)
-{
- glong size;
- gboolean free_cdo = FALSE;
- if (cdo == NULL)
- {
- cdo = g_new0(ContentDescrObj, 1);
- free_cdo = TRUE;
- }
-
- cdo->title = g_utf8_to_utf16(tuple_get_string(t, FIELD_TITLE, NULL), -1, NULL, &size, NULL);
- cdo->title_length = 2 * (size + 1);
- cdo->author = g_utf8_to_utf16(tuple_get_string(t, FIELD_ARTIST, NULL), -1, NULL, &size, NULL);
- cdo->author_length = 2 * (size + 1);
- cdo->copyright = g_utf8_to_utf16(tuple_get_string(t, FIELD_COPYRIGHT, NULL), -1, NULL, &size, NULL);
- cdo->copyright_length = 2 * (size + 1);
- cdo->description = g_utf8_to_utf16(tuple_get_string(t, FIELD_COMMENT, NULL), -1, NULL, &size, NULL);
- cdo->desc_length = 2 * (size + 1);
- cdo->size = 34 + cdo->title_length + cdo->author_length + cdo->copyright_length + cdo->desc_length;
- guid_write_to_file(f, ASF_CONTENT_DESCRIPTION_OBJECT);
- write_LEuint64(f, cdo->size);
- write_LEuint16(f, cdo->title_length);
- write_LEuint16(f, cdo->author_length);
- write_LEuint16(f, cdo->copyright_length);
- write_LEuint16(f, cdo->desc_length);
- write_LEuint16(f, 2); // rating_length = 2
- write_utf16(f, cdo->title, cdo->title_length);
- write_utf16(f, cdo->title, cdo->title_length);
- write_utf16(f, cdo->author, cdo->author_length);
- write_utf16(f, cdo->copyright, cdo->copyright_length);
- write_utf16(f, cdo->description, cdo->desc_length);
- write_utf16(f, NULL, 2); //rating == NULL
-
- if (free_cdo)
- free_content_descr_obj(cdo);
-}
-
-static void write_ext_content_descr_obj_from_tuple(VFSFile * f, ExtContentDescrObj * ecdo, Tuple * tuple)
-{
-}
-
-static gboolean write_generic_header(VFSFile * f, GenericHeader * gh)
-{
- TAGDBG("Writing generic header\n");
- guid_write_to_file(f, get_guid_type(gh->guid));
- return write_char_data(f, gh->data, gh->size);
-}
-
-static void free_generic_header(GenericHeader * gh)
-{
- g_free(gh->guid);
- g_free(gh->data);
- g_free(gh);
-}
-
-static gboolean write_top_header_object(VFSFile * f, HeaderObj * header)
-{
- TAGDBG("write header object\n");
- vfs_fseek(f, 0, SEEK_SET);
- return (guid_write_to_file(f, ASF_HEADER_OBJECT) && write_LEuint64(f, header->size) && write_LEuint32(f, header->objectsNr) && write_uint8(f, header->res1) && /* the reserved fields */
- write_uint8(f, header->res2));
-}
-
-/* interface functions */
-gboolean wma_can_handle_file(VFSFile * f)
-{
- GUID_t *guid1 = guid_read_from_file(f);
- GUID_t *guid2 = guid_convert_from_string(ASF_HEADER_OBJECT_GUID);
- gboolean equal = ((guid1 != NULL) && guid_equal(guid1, guid2));
-
- g_free(guid1);
- g_free(guid2);
-
- return equal;
-}
-
-gboolean wma_read_tag (Tuple * t, VFSFile * f)
-{
- gchar *artist = NULL, *title = NULL, *comment = NULL;
-
- print_tuple(t);
- gint seek_res = vfs_fseek(f, ftell_object_by_str(f, ASF_CONTENT_DESCRIPTION_OBJECT_GUID), SEEK_SET);
- if (seek_res == 0)
- { //if the CONTENT_DESCRIPTION_OBJECT was found
- ContentDescrObj *cdo = read_content_descr_obj(f);
- artist = utf8(cdo->author);
- title = utf8(cdo->title);
- comment = utf8(cdo->description);
- free_content_descr_obj(cdo);
- tuple_associate_string(t, FIELD_ARTIST, NULL, artist);
- tuple_associate_string(t, FIELD_TITLE, NULL, title);
- tuple_associate_string(t, FIELD_COMMENT, NULL, comment);
- }
- seek_res = vfs_fseek(f, ftell_object_by_str(f, ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID), SEEK_SET);
- /*this populates the tuple with the attributes stored as extended descriptors */
- ExtContentDescrObj *ecdo = read_ext_content_descr_obj(f, t, TRUE);
- free_ext_content_descr_obj(ecdo);
- print_tuple(t);
- return TRUE;
-}
-
-gboolean wma_write_tag (Tuple * tuple, VFSFile * f)
-{
-#if BROKEN
- return FALSE;
-#endif
-
- HeaderObj *top_ho = read_top_header_object(f);
- VFSFile *tmpfile = make_temp_file();
- gint i, cdo_pos, ecdo_pos;
- GUID_t *g;
- /*read all the headers and write them to the new file */
- /*the headers that contain tuple data will be overwritten */
- TAGDBG("Header Object size: %" PRId64 "\n", top_ho->size);
- //vfs_fseek(tmpfile, )
- for (i = 0; i < top_ho->objectsNr; i++)
- {
- GenericHeader *gh = read_generic_header(f, TRUE);
- g = guid_convert_from_string(ASF_CONTENT_DESCRIPTION_OBJECT_GUID);
- if (guid_equal(gh->guid, g))
- {
- write_content_descr_obj_from_tuple(tmpfile, (ContentDescrObj *) gh, tuple);
- g_free(g);
- }
- else
- {
- g = guid_convert_from_string(ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID);
- if (guid_equal(gh->guid, g))
- write_ext_content_descr_obj_from_tuple(tmpfile, (ExtContentDescrObj *) gh, tuple);
- else
- {
- write_generic_header(tmpfile, gh);
- g_free(g);
- }
- }
- free_generic_header(gh);
- }
- /*check wether these headers existed in the original file */
- cdo_pos = ftell_object_by_str(f, ASF_CONTENT_DESCRIPTION_OBJECT_GUID);
- ecdo_pos = ftell_object_by_str(f, ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID);
- if (cdo_pos == -1)
- {
- write_content_descr_obj_from_tuple(tmpfile, NULL, tuple);
- top_ho->objectsNr++;
- }
- if (ecdo_pos != -1)
- {
- write_ext_content_descr_obj_from_tuple(tmpfile, NULL, tuple);
- top_ho->objectsNr++;
- }
- write_top_header_object(tmpfile, top_ho);
-
- gchar *f1 = g_filename_from_uri(tmpfile->uri, NULL, NULL);
- gchar *f2 = g_filename_from_uri(f->uri, NULL, NULL);
- vfs_fclose(tmpfile);
- /*
- if (g_rename(f1, f2) == 0)
- {
- TAGDBG("the tag was updated successfully\n");
- }
- else
- {
- TAGDBG("an error has occured\n");
- }
- */
- g_free(f1);
- g_free(f2);
-
- return TRUE;
-}
-
-tag_module_t wma = {
- .name = "WMA",
- .can_handle_file = wma_can_handle_file,
- .read_tag = wma_read_tag,
- .write_tag = wma_write_tag,
-};
-
diff --git a/src/libaudtag/wma/wma.h b/src/libaudtag/wma/wma.h
deleted file mode 100644
index 2743a7b..0000000
--- a/src/libaudtag/wma/wma.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef _WMA_H
-
-#define _WMA_H
-
-#include "libaudcore/tuple.h"
-#include "libaudcore/vfs.h"
-#include "wma_fmt.h"
-
-/* TAG plugin API */
-gboolean wma_can_handle_file(VFSFile *f);
-gboolean wma_read_tag (Tuple * tuple, VFSFile * handle);
-gboolean wma_write_tag (Tuple * tuple, VFSFile * handle);
-
-#endif /* _WMA_H */
diff --git a/src/libaudtag/wma/wma_fmt.h b/src/libaudtag/wma/wma_fmt.h
deleted file mode 100644
index 17d859f..0000000
--- a/src/libaudtag/wma/wma_fmt.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious 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, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef _WMA_FMT_H
-#define _WMA_FMT_H
-
-#include "guid.h"
-
-
-#define ASF_HEADER_OBJECT_GUID "75B22630-668E-11CF-A6D900AA0062CE6C"
-#define ASF_FILE_PROPERTIES_OBJECT_GUID "8CABDCA1-A947-11CF-8EE400C00C205365"
-#define ASF_STREAM_PROPERTIES_OBJECT_GUID "B7DC0791-A9B7-11CF-8EE600C00C205365"
-#define ASF_HEADER_EXTENSION_OBJECT_GUID "5FBF03B5-A92E-11CF-8EE300C00C205365"
-#define ASF_CODEC_LIST_OBJECT_GUID "86D15240-311D-11D0-A3A400A0C90348F6"
-#define ASF_SCRIPT_COMMAND_OBJECT_GUID "1EFB1A30-0B62-11D0-A39B00A0C90348F6"
-#define ASF_MARKER_OBJECT_GUID "F487CD01-A951-11CF-8EE600C00C205365"
-#define ASF_BITRATE_MUTUAL_EXCLUSION_OBJECT_GUID "D6E229DC-35DA-11D1-903400A0C90349BE"
-#define ASF_ERROR_CORRECTION_OBJECT_GUID "75B22635-668E-11CF-A6D900AA0062CE6C"
-#define ASF_CONTENT_DESCRIPTION_OBJECT_GUID "75B22633-668E-11CF-A6D900AA0062CE6C"
-#define ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID "D2D0A440-E307-11D2-97F000A0C95EA850"
-#define ASF_CONTENT_BRANDING_OBJECT_GUID "2211B3FA-BD23-11D2-B4B700A0C955FC6E"
-#define ASF_STREAM_BITRATE_PROPERTIES_OBJECT_GUID "7BF875CE-468D-11D1-8D82006097C9A2B2"
-#define ASF_CONTENT_ENCRYPTION_OBJECT_GUID "2211B3FB-BD23-11D2-B4B700A0C955FC6E"
-#define ASF_EXTENDED_CONTENT_ENCRYPTION_OBJECT_GUID "298AE614-2622-4C17-B935DAE07EE9289C"
-#define ASF_DIGITAL_SIGNATURE_OBJECT_GUID "2211B3FC-BD23-11D2-B4B700A0C955FC6E"
-#define ASF_PADDING_OBJECT_GUID "1806D474-CADF-4509-A4BA9AABCB96AAE8"
-
-typedef enum {
- ASF_HEADER_OBJECT = 0,
- ASF_FILE_PROPERTIES_OBJECT, /* 1 */
- ASF_STREAM_PROPERTIES_OBJECT,
- ASF_HEADER_EXTENSION_OBJECT,
- ASF_CODEC_LIST_OBJECT,
- ASF_SCRIPT_COMMAND_OBJECT, /* 5 */
- ASF_MARKER_OBJECT,
- ASF_BITRATE_MUTUAL_EXCLUSION_OBJECT,
- ASF_ERROR_CORRECTION_OBJECT,
- ASF_CONTENT_DESCRIPTION_OBJECT,
- ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT, /* 10*/
- ASF_CONTENT_BRANDING_OBJECT,
- ASF_STREAM_BITRATE_PROPERTIES_OBJECT,
- ASF_CONTENT_ENCRYPTION_OBJECT,
- ASF_EXTENDED_CONTENT_ENCRYPTION_OBJECT,
- ASF_DIGITAL_SIGNATURE_OBJECT, /* 15 */
- ASF_PADDING_OBJECT,
- ASF_OBJECT_LAST /* dummy */
-} ObjectType;
-
-#define DESC_ALBUM_STR "WM/AlbumTitle"
-#define DESC_YEAR_STR "WM/Year"
-#define DESC_GENRE_STR "WM/Genre"
-#define DESC_TRACK_STR "WM/TrackNumber"
-
-typedef enum {
- DESC_ALBUM = 0,
- DESC_YEAR,
- DESC_GENRE,
- DESC_TRACK,
- DESC_LAST
-} DescrIndexes;
-
-/*
- * this should be fine for all headers whose content is irrelevant,
- * but the size is needed so that we can skip it
- */
-typedef struct _generic_header {
- GUID_t *guid;
- guint64 size;
- gchar *data;
-} GenericHeader;
-
-typedef struct _header_object {
- GUID_t *guid;
- guint64 size;
- guint32 objectsNr;
- guint8 res1;
- guint8 res2;
-} HeaderObj;
-
-/*
- * this is special, its size does not include the size of the ext_data
- */
-typedef struct _header_extension_object {
- GUID_t *guid;
- guint64 size;
- guint32 objects_count;
- guint8 res1;
- guint8 res2;
- guint32 ext_data_size;
- gchar *ext_data;
-} HeaderExtensionObject;
-
-typedef struct _file_properties_header {
- GUID_t *guid;
- guint64 size;
- gchar dontcare1[16];
- guint64 duration; //expressed as the count of 100ns intervals
- gchar dontcare2[32];
-} FilePropertiesHeader;
-
-typedef struct _content_description_object {
- GUID_t *guid;
- guint64 size;
- guint16 title_length;
- guint16 author_length;
- guint16 copyright_length; /* dontcare*/
- guint16 desc_length;
- guint16 rating_length; /* dontcare*/
- gunichar2 *title;
- gunichar2 *author;
- gunichar2 *copyright; /* dontcare*/
- gunichar2 *description;
- gunichar2 *rating; /* dontcare*/
-} ContentDescrObj;
-
-/* descr_val_type's meaning
- * Value Type length
- * 0x0000 Unicode string varies
- * 0x0001 BYTE array varies
- * 0x0002 BOOL 32
- * 0x0003 DWORD 32
- * 0x0004 QWORD 64
- * 0x0005 WORD 16
- */
-typedef struct _content_descriptor {
- guint16 name_len;
- gunichar2 *name;
- guint16 val_type;
- guint16 val_len;
- gchar * val;
-} ContentDescriptor;
-
-typedef struct _extended_content_description_object {
- GUID_t *guid;
- guint64 size;
- guint16 content_desc_count;
- ContentDescriptor **descriptors;
-} ExtContentDescrObj;
-
-typedef struct _content_field {
- guint16 size;
- gunichar2 *strValue;
-} ContentField;
-
-#endif /* _WMA_FMT_H */
diff --git a/src/libeggsmclient/ChangeLog b/src/libeggsmclient/ChangeLog
deleted file mode 100644
index da16c8d..0000000
--- a/src/libeggsmclient/ChangeLog
+++ /dev/null
@@ -1,167 +0,0 @@
-2008-03-23 Jussi Judin <jjudin+audacious at iki.fi>
-
- * eggdesktopfile.c (egg_desktop_file_new_from_key_file): do not
- leak the type.
-
-2008-03-15 Dan Winship <danw at gnome.org>
-
- * eggsmclient-xsmp.c: Reorganize; we have to call
- gdk_set_sm_client_id() before the application creates any windows
- (you're not allowed to change SM_CLIENT_ID while you have windows
- mapped), which means that to be safe, we have to do it at startup
- time, not after the main loop starts.
- (EggSMClientXSMP): add a waiting_to_set_initial_properties flag.
- (sm_client_xsmp_startup): Move the begining of the old
- sm_client_xsmp_connect to here. Set
- waiting_to_set_initial_properties and set up an idle handler to do
- that.
- (sm_client_xsmp_set_initial_properties): The rest of the old
- sm_client_xsmp_connect.
- (sm_client_xsmp_end_session): XSMP_STATE_START no longer exists,
- but we have to deal with waiting_to_set_initial_properties now.
- (xsmp_save_yourself): Likewise, if this arrives before we get a
- chance to set the initial properties, set them now.
-
- Based on a patch from Ivan N. Zlatev.
-
-2007-05-02 Dan Winship <danw at novell.com>
-
- * egglauncher.c:
- * eggdesktopfile.c: Replace EggLauncher with EggDesktopFile,
- which is more like GnomeDesktopItem, but with a nicer launching
- API.
-
- * eggsmclient.c (egg_sm_client_register): Gone; apps can use
- egg_set_desktop_file() to set the global desktop file, and
- egg_sm_client_set_mode() to indicate they don't want to be
- restarted.
- (egg_sm_client_set_mode): New, lets an app indicate that it wants
- to not connect to the SM, or that it wants to not be restarted.
- (The common case--wanting to be restarted if the session is
- resumed--is now automatic.)
- (egg_sm_client_get): Update docs and code for those changes.
-
- * eggsmclient-libgnomeui.c: add more stuff to make it possible to
- set desktop file and EggSMClientMode from gnome_program_new().
-
- * eggsmclient-win32.c: Remove unused untested "#ifdef VISTA" stuff
- involving state saving. It works in theory, someone else can
- implement it later if we actually end up wanting it to work.
-
- * eggsmclient-xsmp.c (sm_client_xsmp_connect, save_state): Use
- egg_get_desktop_file() to see if a desktop file has been set for
- the app, and that and egg_sm_client_get_mode() to see what
- restart_style to use.
-
- * egg-launch.c: update for EggDesktopFile
-
- * README:
- * gedit.diff: update
-
- * NEWS: add this to make it easier for people to see what has
- changed API-wise when they grab a new source snapshot.
-
-2007-04-02 Dan Winship <danw at novell.com>
-
- * eggsmclient.c (egg_sm_client_end_session): Remove the "client"
- argument; eventually this method will not be visibly attached to
- the rest of the sm client API.
- (EggSMClientPrivate, egg_sm_client_get_state_file): oops, fix bugs
- in previous commit
-
- * egg-session-end.c (main): update
-
-2007-04-02 Dan Winship <danw at novell.com>
-
- * eggsmclient.c (egg_sm_client_save_state): Change this signal to
- use a GKeyFile rather than a directory name (and return that to
- the caller).
- (egg_sm_client_get_state_file): replaces get_state_dir, and
- returns a GKeyFile
- (egg_sm_client_get_config_prefix): Kill for now. Maybe will be
- resurrected X11-only later.
-
- * eggsmclient-xsmp.c (sm_client_xsmp_connect): move some stuff
- here from other places; the caller has to call _register() and/or
- _set_restart_command() before the main loop starts, so they'll
- always have been run before sm_client_xsmp_connect is reached, so
- we can do everything from here.
- (save_state): update to use a GKeyFile for state rather than a
- directory. Merge the app's state into its .desktop file and update
- the Exec key in that combined file using %k to point to itself,
- thus creating a self-contained launcher/saved state.
-
- * README:
- * gedit.diff: update
-
-2007-03-16 Dan Winship <danw at novell.com>
-
- * egglauncher.c (egg_launcher_add_document): use
- g_filename_to_uri() and g_filename_from_uri() rather than rolling
- our own.
-
- * egglauncher.h: add two missing prototypes
-
-2007-03-04 Dan Winship <danw at novell.com>
-
- * eggsmclient-win32.c: Redo this to fix quit_requested handling,
- by listening for WM_QUERYENDSESSION messages in another thread
- that can then block waiting for the main thread to handle it. More
- of #399315.
- (sm_client_win32_end_session): EWX_FORCE means "don't allow
- clients to cancel", not "don't show a logout dialog" (which
- ExitWindowsEx never does), so don't use it to implement the
- request_confirmation flag.
-
- * Makefile.am: make this work on both unix and windows
-
- * README: Update. In particular, note that EggSMClientWin32
- requires "-mwindows" and g_thread_init().
-
- * egg-session-end.c (main): call g_thread_init
-
- * logout-test.c (main): call g_thread_init, fix window-closed
- handler
-
- * eggsmclient.c (egg_sm_client_save_state): don't try to compile
- this on Windows. (Temporary workaround)
-
-2007-02-10 Dan Winship <danw at novell.com>
-
- * egglauncher.c: New, replaces EggDesktopFile (as a replacement
- for GnomeDesktopItem...)
-
- * eggdesktopfile.c: gone
-
- * egg-launch.c: test program
-
- * eggsmclient-xsmp.c (set_restart_properties): use EggLauncher
-
-2007-02-10 Dan Winship <danw at novell.com>
-
- * eggsmclient-win32.c: Make this compile and at least partially
- work (quit_requested doesn't work and probably needs to be
- rewritten using a second thread as suggested in the comments in
- will_quit()). Patch from Yevgen Muntyan, #399315.
-
- * eggsmclient-xsmp.c: Use gdk_threads_enter/_leave around gtk
- calls and EggSMClient signal emissions. Based on a patch from
- Yevgen Muntyan.
-
- * Makefile.am:
- * eggsmclient.c (egg_sm_client_get): Change the #defines from
- HAVE_XSMP and HAVE_DBUS to EGG_SM_CLIENT_BACKEND_XSMP and
- EGG_SM_CLIENT_BACKEND_DBUS, to avoid being tricked by the app
- having its own HAVE_DBUS define. Needs to be fixed better though.
- Also change the win32 check from G_OS_WIN32 to
- GDK_WINDOWING_WIN32, since it assumes the win32 gdk backend.
-
- * logout-test.c: New test program to test logout
- notification/cancellation support (and demonstrate that it doesn't
- really work on Windows).
-
-2007-01-18 Dan Winship <danw at novell.com>
-
- * README: add more GnomeClient porting notes based on an email
- exchange with Jani Monoses
-
diff --git a/src/libeggsmclient/Makefile b/src/libeggsmclient/Makefile
index fbe40e7..bd5999b 100644
--- a/src/libeggsmclient/Makefile
+++ b/src/libeggsmclient/Makefile
@@ -1,21 +1,9 @@
-ifdef PLATFORM_WIN32
-platform_sources = eggsmclient-win32.c
-platform_defines =
-platform_libs =
-else
-platform_sources = eggsmclient-xsmp.c \
- eggdesktopfile.c
-platform_defines = -DEGG_SM_CLIENT_BACKEND_XSMP ${SM_CFLAGS}
-platform_libs = ${SM_LIBS}
-endif
-
STATIC_LIB_NOINST = libeggsmclient.a
-SRCS = eggsmclient.c \
- ${platform_sources}
+SRCS = eggdesktopfile.c eggsmclient.c eggsmclient-xsmp.c
include ../../buildsys.mk
include ../../extra.mk
-CPPFLAGS += ${INCLUDES} ${GLIB_CFLAGS} ${GTK_CFLAGS} -I../.. -I. -I../audacious/platform ${platform_defines}
-LIBS += ${GLIB_LIBS} ${GTK_LIBS} ${platform_libs}
+CPPFLAGS += ${GLIB_CFLAGS} ${GTK_CFLAGS} ${SM_CFLAGS} -I../.. -DEGG_SM_CLIENT_BACKEND_XSMP
+LIBS += ${GLIB_LIBS} ${GTK_LIBS} ${SM_LIBS}
diff --git a/src/libeggsmclient/NEWS b/src/libeggsmclient/NEWS
deleted file mode 100644
index 2a8a7da..0000000
--- a/src/libeggsmclient/NEWS
+++ /dev/null
@@ -1,22 +0,0 @@
-2007-05-02
-
- * EggLauncher is now replaced by EggDesktopFile
-
- * egg_sm_client_register() is now gone, replaced by
- egg_set_desktop_file() and egg_sm_client_set_mode(). See the
- beginning of the "Using EggSMClient" section of README for
- details of how these work.
-
-2007-04-02
-
- * The state-saving machinery has changed; it's all based on
- keyfiles now. See the "More notes" section of README for an
- explanation of why this is cool.
-
- * egg_sm_client_end_session() no longer takes an EggSMClient;
- eventually it could be put somewhere entirely
- non-EggSMClient-related in the public API.
-
-2007-03-04
-
- * The win32 backend works now.
diff --git a/src/libeggsmclient/README b/src/libeggsmclient/README
deleted file mode 100644
index 0d897e2..0000000
--- a/src/libeggsmclient/README
+++ /dev/null
@@ -1,245 +0,0 @@
-This is a draft of a replacement for GnomeClient. See also
-http://live.gnome.org/SessionManagement and
-http://bugzilla.gnome.org/show_bug.cgi?id=79285.
-
-The eventual target of this code is gtk, gdk, glib, or some
-combination of them. Having it entirely in gtk/gdk may not be the best
-option, because non-GUI apps like beagled want a chance to exit
-cleanly when the session ends too. OTOH, making glib depend on libSM
-would obviously suck. Using dlopen may be a good solution.
-
-EggDesktopItem is proposed gtk-level rewrite of GnomeDesktopItem. See
-http://bugzilla.gnome.org/show_bug.cgi?id=415070
-
-
-Building your app with EggSMClient
-----------------------------------
-
-If you are using libgnomeui:
-
- Link to libeggsmclient-gnome.la, #include
- "eggsmclient-libgnomeui.h" in your main .c file (and
- "eggsmclient.h" elsewhere).
-
-If you are using plain gtk:
-
- Link to libeggsmclient.la, and #include "eggsmclient.h".
-
-If you are building on Windows:
-
- You need to make sure to link your application as a Windows
- GUI binary. (If using GNU tools, use "-mwindows".) If you
- build it as a console binary, Windows won't send it the
- WM_QUERYENDSESSION (quit_requested) and WM_ENDSESSION (quit)
- messages.
-
- You need to call g_thread_null(NULL) to initialize threads.
-
-
-Using EggSMClient
------------------
-
-Initialization with libgnomeui and GnomeProgram:
-
- Change the gnome_program_new() invocation to use
- EGG_SM_CLIENT_LIBGNOMEUI_MODULE instead of LIBGNOMEUI_MODULE.
- If you haven't yet switched from popt to GOption for option
- parsing, you have to do that now.
-
- You should also add an EGG_SM_CLIENT_PARAM_DESKTOP_FILE
- parameter to the gnome_program_new() invocation, and pass it
- the path to your application's installed .desktop file. (This
- will be used for some SM-related purposes and will also be
- used to initialize your application's localized name and
- default window icon. If you are currently calling
- g_set_application_name(), gtk_window_set_default_icon(), or
- gtk_window_set_default_icon_name(), you can remove those
- calls.)
-
- If you only want to use the logout notification/cancellation
- API, and don't want to participate in session saving, you can
- pass the EGGSMCLIENT_PARAM_MODE parameter as well, with the
- value EGG_SM_CLIENT_MODE_NO_RESTART.
-
-Initialization with plain gtk:
-
- Add the GOptionGroup returned by
- egg_sm_client_get_option_group() to your GOptionContext when
- parsing command line arguments. (If you were previously just
- using gtk_init() or the like, you will have to create your own
- option context now and also add the group returned by
- gtk_get_option_group() to it. See egg-session-end.c for an
- example.)
-
- You should also call egg_set_desktop_file() (in
- "eggdesktopfile.h"), passing it the path to your application's
- installed .desktop file. (This will be used for some
- SM-related purposes and will also be used to initialize your
- application's localized name and default window icon. If you
- are currently calling g_set_application_name(),
- gtk_window_set_default_icon(), or
- gtk_window_set_default_icon_name(), you can remove those
- calls.)
-
- If you only want to use the logout notification/cancellation
- API, and don't want to participate in session saving, you can
- call egg_sm_client_set_mode(EGG_SM_CLIENT_MODE_NO_RESTART).
-
-After parsing the command-line arguments, call
-egg_sm_client_get() to get the EggSMClient object.
-
-Use egg_sm_client_is_resumed() on the EggSMClient to see if you need
-to resume a saved state, and egg_sm_client_get_state_file() to find
-that saved state.
-
-Connect to the client's "save_state" signal if you want to be able to
-save your state and be resumed in future sessions. Connect to
-"quit_requested" if you want to get a chance to save files before
-shutdown (and/or cancel shutting down).
-
-See the gtk-doc comments in eggsmclient.c for more details.
-
-
-Notes on porting from GnomeClient or raw libSM
-----------------------------------------------
-
-There's no way to manually set most of the XSMP properties using
-EggSMClient (and no need to). Program, ProcessID, and UserID are set
-automatically. RestartCommand and CloneCommand are set from the
-.desktop file (or from a call to egg_sm_client_set_restart_command),
-and DiscardCommand is set automatically as needed after save_state is
-emitted.
-
-RestartStyleHint is set automatically based on a few things:
-
- - SmRestartNever if you set the mode to
- EGG_SM_CLIENT_MODE_NO_RESTART
-
- - SmRestartImmediately if you initialize with a desktop file
- containing the entry "X-GNOME-AutoRestart=true"
-
- - SmRestartIfRunning if you initialize with no desktop_file,
- or with a desktop_file that doesn't set
- "X-GNOME-AutoRestart=true". (This is the normal case.)
-
-There's no way to set the restart style hint to SmRestartAnyway
-("restart the client in the resumed session even if it wasn't running
-in the saved session"). FDO Autostart is a much better solution for
-that class of program. If your program is configured to do autostart,
-you don't need to also register for XSMP restart (unless you want to
-have it save and resume its state as well).
-
-CurrentDirectory and Environment are never set. GnomeClient sets
-CurrentDirectory, but KDE doesn't restore either of those properties
-when resuming a saved session, so it's better for apps to not depend
-on them. (If the application must have its working directory restored,
-it can just save and restore it itself.)
-
-(There probably needs to be a way to set _GSM_Priority, for
-compatibility with the current gnome-session; this will probably be
-done via another .desktop key.)
-
-The "save_yourself" signal/callback is split into two signals in
-EggSMClient: save_state and quit_requested. Most GnomeClient-based
-apps only implement the state-saving functionality currently, so they
-would only connect to "save_state" in EggSMClient, not
-"quit_requested".
-
-When saving state, EggSMClient provides you with a GKeyFile to store
-data in. If you write any data to the key file, EggSMClient will save
-it to disk and set an XSMP DiscardCommand to make sure that the
-session manager deletes it when it is no longer needed. If you can
-record your entire state on the command line, you can use
-egg_sm_client_set_restart_command() instead, to set the command that
-will be used to restart the app.
-
-If you implement the "quit_requested" side of the functionality as
-well, you don't need to "request interaction" like in
-GnomeClient/libSM. You can just start interacting with the user right
-away when the signal is emitted. Note that the argument to
-egg_sm_client_will_quit() is TRUE if you're willing to quit, and FALSE
-if not, which is the opposite of gnome_interaction_key_return() /
-SmcInteractDone().
-
-quit_requested is only for saving user files and preparing to quit. DO
-NOT save the current state from the quit_requested signal. If the user
-chooses the "save current session" option when logging out,
-EggSMClient will emit quit_requested, let you deal with all of that,
-and *then* after you're done, it will emit save_state to give you a
-chance to deal with saving the state as well.
-
-There are a bunch of other bits of GnomeClient API with no analogs:
-
- - GNOME_CLIENT_IS_CONNECTED - Is this really ever needed?
-
- - gnome_client_request_phase_2 - This is only needed by window
- managers... if someone really wanted it, it could be added
- as an EggSMClientXSMP-specific call. (You'd just call it
- once, at startup time, to register the fact that you were a
- phase2 client, and then when EggSMClientXSMP got a
- SaveYourself, it would automatically respond with a
- SaveYourselfPhase2Request, and it wouldn't emit the
- quit_requested/save_state signals until phase 2.)
-
- - gnome_client_request_save - Shutdown saves are now done via
- egg_sm_client_end_session. There is no way to request a
- non-shutdown save, either for yourself, or for the whole
- session. (Requesting a local SaveYourself for yourself won't
- actually have any effect under most session managers, and
- requesting it for the whole session is something that only a
- program directly associated with the session manager ought
- to do, so there doesn't seem to be a need for a public API
- for this.)
-
- - gnome_client_flush - In most cases this is a no-op. Where
- it's not, EggSMClientXSMP should do it automatically
- whenever you change anything. (FIXME!)
-
- - gnome_client_get_id - Why would you need to know?
-
-
-More notes
-----------
-
-Assuming you provide a .desktop file to gnome_program_init() or
-egg_set_desktop_file(), the state file that gets saved when you save
-the application state will actually be a copy of that .desktop file,
-with the state information appended to the end, and the Exec key
-adjusted to include "--sm-client-state-file %k" (where "%k" means "the
-path to this .desktop file"). So if you want to, you can move the
-state file out of ~/.config/session-state/ and use it directly as a
-launcher to restart the application with that saved state.
-
-Set EGG_SM_CLIENT_DEBUG=1 to debug
-
-Example code:
-
- - egg-session-end.c: A replacement for gnome-session-save.
- (Well, actually only for "gnome-session-save --kill".)
- Yes, the --reboot and --shutdown arguments are only there to
- tease you.
-
- - logout-test.c: Sits around waiting for you to try to log
- out, and then asks "are you sure", to test
- quit_requested/will_quit handling.
-
- - gedit.diff: A patch to SVN gedit to make it use EggSMClient
- instead of GnomeClient.
-
-Non-functional backends:
-
- - OS X: eggsmclient-osx.c is not quite a proof-of-concept.
- It's more of a handwave-of-concept. I don't have a working
- OS X machine at the moment, so I can't test/finish this.
-
- See http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/BootProcess.html#//apple_ref/doc/uid/20002130-114618
- and other URLs linked from it for more info on the OS X
- logout process.
-
- - D-Bus: There are a few references in the code to a
- non-existent D-Bus session management client. The idea is
- that once we have a session manager that implements that,
- EggSMClient will pick between the (sane) D-Bus and (nasty)
- XSMP backends at runtime depending on what session manager
- is running. Or in special environments, it could be compiled
- with just XSMP or just D-Bus.
diff --git a/src/libeggsmclient/eggdesktopfile.c b/src/libeggsmclient/eggdesktopfile.c
index 9b12af5..443d5ec 100644
--- a/src/libeggsmclient/eggdesktopfile.c
+++ b/src/libeggsmclient/eggdesktopfile.c
@@ -185,6 +185,9 @@ egg_desktop_file_new_from_key_file (GKeyFile *key_file,
{
g_set_error (error, EGG_DESKTOP_FILE_ERROR,
EGG_DESKTOP_FILE_ERROR_INVALID,
+ /* translators: 'Version' is from a desktop file, and
+ * should not be translated. '%s' would probably be a
+ * version number. */
_("Unrecognized desktop file Version '%s'"), version);
g_free (version);
g_key_file_free (key_file);
@@ -201,8 +204,11 @@ egg_desktop_file_new_from_key_file (GKeyFile *key_file,
else
desktop_file->source = g_strdup (source);
- desktop_file->name = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_NAME, error);
+ desktop_file->name = g_key_file_get_locale_string (key_file,
+ EGG_DESKTOP_FILE_GROUP,
+ EGG_DESKTOP_FILE_KEY_NAME,
+ NULL,
+ error);
if (!desktop_file->name)
{
egg_desktop_file_free (desktop_file);
@@ -1380,6 +1386,8 @@ egg_desktop_file_launch (EggDesktopFile *desktop_file,
{
g_set_error (error, EGG_DESKTOP_FILE_ERROR,
EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
+ /* translators: The 'Type=Link' string is found in a
+ * desktop file, and should not be translated. */
_("Can't pass document URIs to a 'Type=Link' desktop entry"));
return FALSE;
}
diff --git a/src/libeggsmclient/eggsmclient-win32.c b/src/libeggsmclient/eggsmclient-win32.c
deleted file mode 100644
index 49e63ae..0000000
--- a/src/libeggsmclient/eggsmclient-win32.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * Copyright (C) 2007 Novell, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/* EggSMClientWin32
- *
- * For details on the Windows XP logout process, see:
- * http://msdn.microsoft.com/en-us/library/aa376876.aspx.
- *
- * Vista adds some new APIs which EggSMClient does not make use of; see
- * http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspx
- *
- * When shutting down, Windows sends every top-level window a
- * WM_QUERYENDSESSION event, which the application must respond to
- * synchronously, saying whether or not it will quit. To avoid main
- * loop re-entrancy problems (and to avoid having to muck about too
- * much with the guts of the gdk-win32 main loop), we watch for this
- * event in a separate thread, which then signals the main thread and
- * waits for the main thread to handle the event. Since we don't want
- * to require g_thread_init() to be called, we do this all using
- * Windows-specific thread methods.
- *
- * After the application handles the WM_QUERYENDSESSION event,
- * Windows then sends it a WM_ENDSESSION event with a TRUE or FALSE
- * parameter indicating whether the session is or is not actually
- * going to end now. We handle this from the other thread as well.
- *
- * As mentioned above, Vista introduces several additional new APIs
- * that don't fit into the (current) EggSMClient API. Windows also has
- * an entirely separate shutdown-notification scheme for non-GUI apps,
- * which we also don't handle here.
- */
-
-#include "config.h"
-
-#include "eggsmclient-private.h"
-#include <gdk/gdk.h>
-
-#define WIN32_LEAN_AND_MEAN
-#define UNICODE
-#include <windows.h>
-#include <process.h>
-
-#define EGG_TYPE_SM_CLIENT_WIN32 (egg_sm_client_win32_get_type ())
-#define EGG_SM_CLIENT_WIN32(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32))
-#define EGG_SM_CLIENT_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32Class))
-#define EGG_IS_SM_CLIENT_WIN32(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_WIN32))
-#define EGG_IS_SM_CLIENT_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_WIN32))
-#define EGG_SM_CLIENT_WIN32_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32Class))
-
-typedef struct _EggSMClientWin32 EggSMClientWin32;
-typedef struct _EggSMClientWin32Class EggSMClientWin32Class;
-
-struct _EggSMClientWin32 {
- EggSMClient parent;
-
- HANDLE message_event, response_event;
-
- volatile GSourceFunc event;
- volatile gboolean will_quit;
-};
-
-struct _EggSMClientWin32Class
-{
- EggSMClientClass parent_class;
-
-};
-
-static void sm_client_win32_startup (EggSMClient *client,
- const char *client_id);
-static void sm_client_win32_will_quit (EggSMClient *client,
- gboolean will_quit);
-static gboolean sm_client_win32_end_session (EggSMClient *client,
- EggSMClientEndStyle style,
- gboolean request_confirmation);
-
-static GSource *g_win32_handle_source_add (HANDLE handle, GSourceFunc callback,
- gpointer user_data);
-static gboolean got_message (gpointer user_data);
-static void sm_client_thread (gpointer data);
-
-G_DEFINE_TYPE (EggSMClientWin32, egg_sm_client_win32, EGG_TYPE_SM_CLIENT)
-
-static void
-egg_sm_client_win32_init (EggSMClientWin32 *win32)
-{
- ;
-}
-
-static void
-egg_sm_client_win32_class_init (EggSMClientWin32Class *klass)
-{
- EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass);
-
- sm_client_class->startup = sm_client_win32_startup;
- sm_client_class->will_quit = sm_client_win32_will_quit;
- sm_client_class->end_session = sm_client_win32_end_session;
-}
-
-EggSMClient *
-egg_sm_client_win32_new (void)
-{
- return g_object_new (EGG_TYPE_SM_CLIENT_WIN32, NULL);
-}
-
-static void
-sm_client_win32_startup (EggSMClient *client,
- const char *client_id)
-{
- EggSMClientWin32 *win32 = (EggSMClientWin32 *)client;
-
- win32->message_event = CreateEvent (NULL, FALSE, FALSE, NULL);
- win32->response_event = CreateEvent (NULL, FALSE, FALSE, NULL);
- g_win32_handle_source_add (win32->message_event, got_message, win32);
- _beginthread (sm_client_thread, 0, client);
-}
-
-static void
-sm_client_win32_will_quit (EggSMClient *client,
- gboolean will_quit)
-{
- EggSMClientWin32 *win32 = (EggSMClientWin32 *)client;
-
- win32->will_quit = will_quit;
- SetEvent (win32->response_event);
-}
-
-static gboolean
-sm_client_win32_end_session (EggSMClient *client,
- EggSMClientEndStyle style,
- gboolean request_confirmation)
-{
- UINT uFlags = EWX_LOGOFF;
-
- switch (style)
- {
- case EGG_SM_CLIENT_END_SESSION_DEFAULT:
- case EGG_SM_CLIENT_LOGOUT:
- uFlags = EWX_LOGOFF;
- break;
- case EGG_SM_CLIENT_REBOOT:
- uFlags = EWX_REBOOT;
- break;
- case EGG_SM_CLIENT_SHUTDOWN:
- uFlags = EWX_POWEROFF;
- break;
- }
-
- /* There's no way to make ExitWindowsEx() show a logout dialog, so
- * we ignore @request_confirmation.
- */
-
-#ifdef SHTDN_REASON_FLAG_PLANNED
- ExitWindowsEx (uFlags, SHTDN_REASON_FLAG_PLANNED);
-#else
- ExitWindowsEx (uFlags, 0);
-#endif
-
- return TRUE;
-}
-
-
-/* callbacks from logout-listener thread */
-
-static gboolean
-emit_quit_requested (gpointer smclient)
-{
- egg_sm_client_quit_requested (smclient);
-
- return FALSE;
-}
-
-static gboolean
-emit_quit (gpointer smclient)
-{
- EggSMClientWin32 *win32 = smclient;
-
- egg_sm_client_quit (smclient);
-
- SetEvent (win32->response_event);
- return FALSE;
-}
-
-static gboolean
-emit_quit_cancelled (gpointer smclient)
-{
- EggSMClientWin32 *win32 = smclient;
-
- egg_sm_client_quit_cancelled (smclient);
-
- SetEvent (win32->response_event);
- return FALSE;
-}
-
-static gboolean
-got_message (gpointer smclient)
-{
- EggSMClientWin32 *win32 = smclient;
-
- win32->event (win32);
- return TRUE;
-}
-
-/* Windows HANDLE GSource */
-
-typedef struct {
- GSource source;
- GPollFD pollfd;
-} GWin32HandleSource;
-
-static gboolean
-g_win32_handle_source_prepare (GSource *source, gint *timeout)
-{
- *timeout = -1;
- return FALSE;
-}
-
-static gboolean
-g_win32_handle_source_check (GSource *source)
-{
- GWin32HandleSource *hsource = (GWin32HandleSource *)source;
-
- return hsource->pollfd.revents;
-}
-
-static gboolean
-g_win32_handle_source_dispatch (GSource *source, GSourceFunc callback, gpointer user_data)
-{
- return (*callback) (user_data);
-}
-
-static void
-g_win32_handle_source_finalize (GSource *source)
-{
- ;
-}
-
-GSourceFuncs g_win32_handle_source_funcs = {
- g_win32_handle_source_prepare,
- g_win32_handle_source_check,
- g_win32_handle_source_dispatch,
- g_win32_handle_source_finalize
-};
-
-static GSource *
-g_win32_handle_source_add (HANDLE handle, GSourceFunc callback, gpointer user_data)
-{
- GWin32HandleSource *hsource;
- GSource *source;
-
- source = g_source_new (&g_win32_handle_source_funcs, sizeof (GWin32HandleSource));
- hsource = (GWin32HandleSource *)source;
- hsource->pollfd.fd = (int)handle;
- hsource->pollfd.events = G_IO_IN;
- hsource->pollfd.revents = 0;
- g_source_add_poll (source, &hsource->pollfd);
-
- g_source_set_callback (source, callback, user_data, NULL);
- g_source_attach (source, NULL);
- return source;
-}
-
-/* logout-listener thread */
-
-LRESULT CALLBACK
-sm_client_win32_window_procedure (HWND hwnd,
- UINT message,
- WPARAM wParam,
- LPARAM lParam)
-{
- EggSMClientWin32 *win32 =
- (EggSMClientWin32 *)GetWindowLongPtr (hwnd, GWLP_USERDATA);
-
- switch (message)
- {
- case WM_QUERYENDSESSION:
- win32->event = emit_quit_requested;
- SetEvent (win32->message_event);
-
- WaitForSingleObject (win32->response_event, INFINITE);
- return win32->will_quit;
-
- case WM_ENDSESSION:
- if (wParam)
- {
- /* The session is ending */
- win32->event = emit_quit;
- }
- else
- {
- /* Nope, the session *isn't* ending */
- win32->event = emit_quit_cancelled;
- }
-
- SetEvent (win32->message_event);
- WaitForSingleObject (win32->response_event, INFINITE);
-
- return 0;
-
- default:
- return DefWindowProc (hwnd, message, wParam, lParam);
- }
-}
-
-static void
-sm_client_thread (gpointer smclient)
-{
- HINSTANCE instance;
- WNDCLASSEXW wcl;
- ATOM klass;
- HWND window;
- MSG msg;
-
- instance = GetModuleHandle (NULL);
-
- memset (&wcl, 0, sizeof (WNDCLASSEX));
- wcl.cbSize = sizeof (WNDCLASSEX);
- wcl.lpfnWndProc = sm_client_win32_window_procedure;
- wcl.hInstance = instance;
- wcl.lpszClassName = L"EggSmClientWindow";
- klass = RegisterClassEx (&wcl);
-
- window = CreateWindowEx (0, MAKEINTRESOURCE (klass),
- L"EggSmClientWindow", 0,
- 10, 10, 50, 50, GetDesktopWindow (),
- NULL, instance, NULL);
- SetWindowLongPtr (window, GWLP_USERDATA, (LONG_PTR)smclient);
-
- /* main loop */
- while (GetMessage (&msg, NULL, 0, 0))
- DispatchMessage (&msg);
-}
diff --git a/src/libeggsmclient/eggsmclient-xsmp.c b/src/libeggsmclient/eggsmclient-xsmp.c
index 84a8eb8..d5cf3b5 100644
--- a/src/libeggsmclient/eggsmclient-xsmp.c
+++ b/src/libeggsmclient/eggsmclient-xsmp.c
@@ -193,6 +193,11 @@ egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass)
EggSMClient *
egg_sm_client_xsmp_new (void)
{
+#if GTK_CHECK_VERSION(3,0,0)
+ if (!GDK_IS_X11_DISPLAY_MANAGER (gdk_display_manager_get ()))
+ return NULL;
+#endif
+
if (!g_getenv ("SESSION_MANAGER"))
return NULL;
@@ -227,7 +232,7 @@ sm_client_xsmp_set_initial_properties (gpointer user_data)
if (xsmp->restart_style == SmRestartIfRunning)
{
- if (egg_desktop_file_get_boolean (desktop_file,
+ if (egg_desktop_file_get_boolean (desktop_file,
"X-GNOME-AutoRestart", NULL))
xsmp->restart_style = SmRestartImmediately;
}
@@ -367,11 +372,13 @@ sm_client_xsmp_startup (EggSMClient *client,
xsmp->client_id = g_strdup (ret_client_id);
free (ret_client_id);
-#if !GTK_CHECK_VERSION(2,91,7) && !GTK_CHECK_VERSION(3,0,0)
+ gdk_threads_enter ();
+#if !GTK_CHECK_VERSION(2,23,3) && !GTK_CHECK_VERSION(3,0,0)
gdk_set_sm_client_id (xsmp->client_id);
#else
gdk_x11_set_sm_client_id (xsmp->client_id);
#endif
+ gdk_threads_leave ();
g_debug ("Got client ID \"%s\"", xsmp->client_id);
}
@@ -539,6 +546,8 @@ idle_do_pending_events (gpointer data)
EggSMClientXSMP *xsmp = data;
EggSMClient *client = data;
+ gdk_threads_enter ();
+
xsmp->idle = 0;
if (xsmp->waiting_to_emit_quit)
@@ -562,6 +571,7 @@ idle_do_pending_events (gpointer data)
}
out:
+ gdk_threads_leave ();
return FALSE;
}
@@ -1131,7 +1141,7 @@ delete_properties (EggSMClientXSMP *xsmp, ...)
* until you're done with the SmProp.
*/
static SmProp *
-array_prop (const char *name, ...)
+array_prop (const char *name, ...)
{
SmProp *prop;
SmPropValue pv;
@@ -1282,7 +1292,9 @@ process_ice_messages (IceConn ice_conn)
{
IceProcessMessagesStatus status;
+ gdk_threads_enter ();
status = IceProcessMessages (ice_conn, NULL, NULL);
+ gdk_threads_leave ();
switch (status)
{
@@ -1347,13 +1359,13 @@ ice_error_handler (IceConn ice_conn,
IcePointer values)
{
/* Do nothing */
-}
+}
static void
ice_io_error_handler (IceConn ice_conn)
{
/* Do nothing */
-}
+}
static void
smc_error_handler (SmcConn smc_conn,
--
Small and fast audio player which supports lots of formats
More information about the pkg-multimedia-commits
mailing list