Mercurial > audlegacy
changeset 3953:de76dbec8e1e
Automated merge with file:/home/ccr/audacious/core
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 16 Nov 2007 05:36:42 +0200 |
parents | 4f6c614aee5d (current diff) 57ff64831bec (diff) |
children | 7afbcd87cd65 |
files | Skins/Classic/.depend Skins/Classic/.depend-done Skins/Default/.depend Skins/Default/.depend-done Skins/Ivory/.depend Skins/Ivory/.depend-done Skins/Osmosis/.depend Skins/Osmosis/.depend-done Skins/TinyPlayer/.depend Skins/TinyPlayer/.depend-done pixmaps/.depend pixmaps/.depend-done po/ChangeLog src/audacious/memorypool.c src/audacious/memorypool.h |
diffstat | 237 files changed, 5239 insertions(+), 3458 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Wed Oct 24 10:41:53 2007 +0300 +++ b/.hgtags Fri Nov 16 05:36:42 2007 +0200 @@ -5,3 +5,4 @@ e00e1ab06ba63ac4122d2b122b072e299f2ab3f9 audacious-1.4.0-dr3 45f44e987b127ce4610d9b0c9c3a6463c496f67d audacious-1.4.0-dr3 2835f4f3f38801e11778570245ddddded73d3102 audacious-1.4.0-beta2 +2f0eaf15300baa2bb2267101fd35a6fc49f2bb3c audacious-1.4.0
--- a/AUTHORS Wed Oct 24 10:41:53 2007 +0300 +++ b/AUTHORS Fri Nov 16 05:36:42 2007 +0200 @@ -7,11 +7,13 @@ Kieran Clancy <clancy.kieran+audacious@gmail.com> Michael Färber <0102@gmx.at> Giacomo Lozito <james@develia.org> +Tomasz Moń <desowin@gmail.com> William Pitcock <nenolod@sacredspiral.co.uk> Derek Pomery <nemo@m8y.org> Mohammed Sameer <msameer@foolab.org> -Jonathan Schleifer <js@h3c.de> +Jonathan Schleifer <js-audacious@webkeks.org> Stephen Sokolow <deitarion@gmail.com> +Ben Tucker <ben@tucker.org> Tony Vroon <chainsaw@gentoo.org> Yoshiki Yazawa <yaz@cc.or.rim.jp>
--- a/ChangeLog Wed Oct 24 10:41:53 2007 +0300 +++ b/ChangeLog Fri Nov 16 05:36:42 2007 +0200 @@ -128,7 +128,7 @@ 1 file changed, 4 insertions(+), 4 deletions(-) -2007-06-01 23:02:59 +0000 Jonathan Schleifer <js@h3c.de> +2007-06-01 23:02:59 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [4660] FreeBSD make doesn't support -include. Revert until it's fixed. @@ -136,7 +136,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) -2007-06-01 22:45:56 +0000 Jonathan Schleifer <js@h3c.de> +2007-06-01 22:45:56 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [4658] - Fixed annoying ".depend: No such file or directory". - Removed /.depend. @@ -445,7 +445,7 @@ 0 files changed -2007-05-18 21:01:45 +0000 Jonathan Schleifer <js@h3c.de> +2007-05-18 21:01:45 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [4586] Moved migrate_config.sh to contrib. trunk/contrib/migrate_config.sh | 28 ++++++++++++++++++++++++++++ @@ -1698,7 +1698,7 @@ 1 file changed, 3 insertions(+), 4 deletions(-) -2007-03-26 16:21:40 +0000 Jonathan Schleifer <js@h3c.de> +2007-03-26 16:21:40 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [4312] Don't show a warning dialog when trying to add .{jpeg,jpg,txt} files. @@ -2522,7 +2522,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) -2007-02-20 12:54:56 +0000 Jonathan Schleifer <js@h3c.de> +2007-02-20 12:54:56 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [4118] Use VFS. trunk/src/libid3tag/file.c | 2 +- @@ -3274,21 +3274,21 @@ 1 file changed, 7 insertions(+), 1 deletion(-) -2007-02-07 18:06:49 +0000 Jonathan Schleifer <js@h3c.de> +2007-02-07 18:06:49 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3976] (I really hate my shell's escaping, ignore this) trunk/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -2007-02-07 18:05:19 +0000 Jonathan Schleifer <js@h3c.de> +2007-02-07 18:05:19 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3974] Too much was reverted here. Removing the " around %U would've been sufficient. trunk/src/audacious/audacious.desktop.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -2007-02-07 15:49:45 +0000 Jonathan Schleifer <js@h3c.de> +2007-02-07 15:49:45 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3972] Reverted rev 3958 - it breaks opening files with nautilus completely trunk/src/audacious/audacious.desktop.in | 2 +- @@ -4667,14 +4667,14 @@ 2 files changed, 21 insertions(+), 19 deletions(-) -2007-01-16 19:12:11 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-16 19:12:11 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3710] D'oh. I was really too tired when I wrote this. Fixed stupid bugs. trunk/migrate_config.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -2007-01-16 18:35:30 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-16 18:35:30 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3708] Replaced intricate part. trunk/migrate_config.sh | 8 ++++---- @@ -4850,14 +4850,14 @@ 1 file changed, 1 insertion(+) -2007-01-14 01:02:39 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-14 01:02:39 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3668] Fixed make install. trunk/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) -2007-01-14 00:41:21 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-14 00:41:21 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3666] - Added script for migration to XDG basedir. - Fixed tons of warnings. @@ -4877,14 +4877,14 @@ 12 files changed, 49 insertions(+), 28 deletions(-) -2007-01-14 00:09:38 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-14 00:09:38 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3664] Fixed: audtool.c:883: warning: implicit declaration of function 'strncmp' trunk/src/audtool/audtool.c | 1 + 1 file changed, 1 insertion(+) -2007-01-14 00:07:48 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-14 00:07:48 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3662] Fixed: configdb_rcfile.c:57: warning: suggest parentheses around assignment used as truth value trunk/src/libaudacious/configdb_rcfile.c | 2 +- @@ -4952,14 +4952,14 @@ 1 file changed, 25 insertions(+), 25 deletions(-) -2007-01-13 17:34:48 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-13 17:34:48 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3648] Fix missing s trunk/src/audacious/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -2007-01-13 17:33:35 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-13 17:33:35 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3646] Remove old shit. trunk/configure.ac | 3 +-- @@ -4967,7 +4967,7 @@ 2 files changed, 2 insertions(+), 17 deletions(-) -2007-01-13 17:19:52 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-13 17:19:52 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3644] Full support for XDG basedir added. The old config doesn't get automatically converted yet. trunk/src/audacious/main.c | 66 +++++++++++++++++++++++----------- @@ -4976,14 +4976,14 @@ 3 files changed, 48 insertions(+), 34 deletions(-) -2007-01-12 20:33:07 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-12 20:33:07 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3642] Same for -pipe. trunk/configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -2007-01-12 20:32:12 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-12 20:32:12 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3640] Add -Wall to CFLAGS by default if the CC is gcc trunk/configure.ac | 2 ++ @@ -5183,7 +5183,7 @@ 176 files changed, 52955 insertions(+), 52937 deletions(-) -2007-01-11 13:47:16 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-11 13:47:16 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3634] Added #ifdefs around $HOME/.audacious compatibility code trunk/configure.ac | 1 + @@ -5253,14 +5253,14 @@ 1 file changed, 1 insertion(+), 1 deletion(-) -2007-01-09 22:53:19 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-09 22:53:19 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3618] Fuck, I forgot to quote the $ in the commit msg, so my home was in the ChangeLog. trunk/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -2007-01-09 22:51:38 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-09 22:51:38 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3616] Initial XDG basedir support. trunk/libaudacious/configdb_rcfile.c | 23 ++++++++++++++++++++--- @@ -5274,7 +5274,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) -2007-01-09 15:45:01 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-09 15:45:01 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3612] Change $HOME/.audacious to $HOME/.config/audacious trunk/configure.ac | 2 +- @@ -5374,7 +5374,7 @@ 2 files changed, 3 insertions(+), 12 deletions(-) -2007-01-07 22:14:14 +0000 Jonathan Schleifer <js@h3c.de> +2007-01-07 22:14:14 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3594] WTF addr? ITYM ptr! trunk/audacious/memorypool.c | 2 +- @@ -8476,7 +8476,7 @@ 1 file changed, 17 insertions(+), 22 deletions(-) -2006-11-24 17:49:06 +0000 Jonathan Schleifer <js@h3c.de> +2006-11-24 17:49:06 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [3003] Fixed wrong help, it has to be --with-rc-path. Found by Benny Siegert <bsiegert@gmx.de> @@ -8654,7 +8654,7 @@ 1 file changed, 40 insertions(+), 2030 deletions(-) -2006-11-19 18:50:21 +0000 Jonathan Schleifer <js@h3c.de> +2006-11-19 18:50:21 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2963] Fixed broken Classic skin. @@ -9953,7 +9953,7 @@ 1 file changed, 8 insertions(+), 7 deletions(-) -2006-10-07 20:31:15 +0000 Jonathan Schleifer <js@h3c.de> +2006-10-07 20:31:15 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2641] - Replace ?= at CFLAGS, CPPFLAGS and CXXFLAGS with += - Replace ?= at CC, CPP and CXX with = @@ -10292,7 +10292,7 @@ 3 files changed, 301 insertions(+), 13 deletions(-) -2006-10-05 04:05:51 +0000 Jonathan Schleifer <js@h3c.de> +2006-10-05 04:05:51 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2563] WTF, and now even a typo in the ChangeLog! (Fixed.) @@ -10300,7 +10300,7 @@ 1 file changed, 1 insertion(+), 1 deletion(-) -2006-10-05 04:04:50 +0000 Jonathan Schleifer <js@h3c.de> +2006-10-05 04:04:50 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2561] Just saw that it's ordered by last name. Of course, I was too blind to see that and just added myself at the wrong place. oO @@ -10309,7 +10309,7 @@ 1 file changed, 2 insertions(+), 2 deletions(-) -2006-10-05 04:02:06 +0000 Jonathan Schleifer <js@h3c.de> +2006-10-05 04:02:06 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2559] Just saw that we have an AUTHORS file here as well, so I added myself here, too. @@ -10469,7 +10469,7 @@ 4 files changed, 25 insertions(+), 11 deletions(-) -2006-10-04 19:47:37 +0000 Jonathan Schleifer <js@h3c.de> +2006-10-04 19:47:37 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2523] The default values for old skins were wrong. But since changing from the new skin to an old doesn't work anyway, we can set these to 0 so @@ -10964,7 +10964,7 @@ +1 -1 trunk/configure.ac -2006-09-17 02:37:08 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 02:37:08 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2395] Fixed unused variable and missing type conversion @@ -10973,7 +10973,7 @@ +4 -2 trunk/Plugins/Visualization/paranormal/client.c -2006-09-17 02:21:06 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 02:21:06 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2393] Add #undef FSCALE, since it's already defined on OpenBSD @@ -10981,7 +10981,7 @@ +1 -0 trunk/Plugins/Input/timidity/libtimidity/options.h -2006-09-17 02:18:59 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 02:18:59 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2391] #undef TRUE and FALSE before inclusion of mpcdec.h since both, GTK and mpcdev, define this, which leads to a hard error on OpenBSD @@ -10989,7 +10989,7 @@ +2 -0 trunk/Plugins/Input/musepack/libmpc.h -2006-09-17 02:13:26 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 02:13:26 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2389] #undef ALIGN, since it's already defined on OpenBSD. @@ -10997,7 +10997,7 @@ +1 -0 trunk/Plugins/Input/wma/libffwma/utils.c -2006-09-17 02:10:07 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 02:10:07 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2387] Seems like someone did a fix for Linux' iconv like I did for BSD's in another file. Added an #ifdef here, too. @@ -11005,7 +11005,7 @@ +4 -0 trunk/Plugins/Input/flac/plugin_common/charset.c -2006-09-17 01:58:23 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 01:58:23 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2385] nenolod's fix for the soundcard.h check was incomplete, fixed @@ -11061,7 +11061,7 @@ +0 -58 trunk/Plugins/Input/wma/libffwma/mms.c -2006-09-17 00:17:22 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-17 00:17:22 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2373] Fixed a LOT of warnings showing up with -Wall. This is the first step towards making Audacious compile with -Wall -Werror, but it's still far @@ -11085,7 +11085,7 @@ +3 -3 trunk/Plugins/Input/wma/libffwma/futils.c -2006-09-16 23:26:54 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-16 23:26:54 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2371] Fixed a lot of warnings that only showed up on *BSD. @@ -11109,7 +11109,7 @@ +1 -1 trunk/configure.ac -2006-09-16 17:08:23 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-16 17:08:23 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2367] Fixed 3 warnings, 2 unused variables and 1 missing include @@ -11126,7 +11126,7 @@ +4 -3 trunk/Plugins/Input/cue/cuesheet.c -2006-09-16 14:33:28 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-16 14:33:28 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2363] More .cpp -> .cxx. Noticed by Chainsaw. Shame on me that I forgot some ;). @@ -11339,7 +11339,7 @@ +0 -1 trunk/audacious/Makefile -2006-09-15 15:01:40 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-15 15:01:40 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2331] This adds -lossaudio to the OSS and esd plugin on platforms having that libs. With this, Audacious finally build & runs perfectly on OpenBSD. @@ -11360,7 +11360,7 @@ +2 -2 trunk/audacious/mainwin.c -2006-09-15 13:36:26 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-15 13:36:26 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2327] - Removed .cpp.o target since we don't have any .cpp files anymore. - A test build then revealed that we still had two .cpp files in @@ -11391,7 +11391,7 @@ +2 -0 trunk/mk/init.mk -2006-09-14 20:56:35 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 20:56:35 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2323] * One more .cpp -> .cxx * Changed sinclude -> include for OpenBSD make compatibility @@ -11406,7 +11406,7 @@ +0 -5 trunk/mk/objective.mk -2006-09-14 20:38:05 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 20:38:05 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2321] Forgot to change .cpp -> .cxx in the Makefile.in. Shame on me... @@ -11415,7 +11415,7 @@ +35 -35 trunk/Plugins/Input/console/Makefile.in -2006-09-14 20:33:10 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 20:33:10 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2319] .cpp -> .cxx This has the nice side effect that we don't need to add .cpp to .SUFFIXES for OpenBSD. @@ -11467,7 +11467,7 @@ +4 -4 trunk/audacious/playlist.c -2006-09-14 15:46:01 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 15:46:01 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2315] Install audacious_player.xpm as well, so one can use it as a desktop icon. Requested by Jan Schummers <darkadmiral@onlinehome.de>. @@ -11477,7 +11477,7 @@ +1 -0 trunk/audacious/images/Makefile.in -2006-09-14 14:50:44 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 14:50:44 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2313] Made the content of the password field in the AudioScrobbler plugin invisible. @@ -11486,7 +11486,7 @@ +1 -0 trunk/Plugins/General/scrobbler/configure.c -2006-09-14 14:40:39 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 14:40:39 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2311] Just saw another bug in the same line. The if was always false. @@ -11495,7 +11495,7 @@ +1 -1 trunk/mk/objective.mk -2006-09-14 14:38:06 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-14 14:38:06 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2309] Fixed mk/objective.mk so that there won't be any [: ==: unexpected operator @@ -11536,7 +11536,7 @@ +12 -0 trunk/libaudacious/vfs_stdio.c -2006-09-13 21:01:54 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-13 21:01:54 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2301] Added BSD make to the recommended make versions since it's officially supported now. @@ -11554,7 +11554,7 @@ +1 -1 trunk/ChangeLog -2006-09-13 20:56:08 +0000 Jonathan Schleifer <js@h3c.de> +2006-09-13 20:56:08 +0000 Jonathan Schleifer <js-audacious@webkeks.org> revision [2297] Fixed some Makefiles to make it work with BSD make. I checked that it doesn't break gmake (compile & run works). @@ -11571,7 +11571,7 @@ 2006-09-13 18:03:25 +0000 Tony Vroon <chainsaw@gentoo.org> revision [2295] - Link C++ plugins correctly on *BSD, by Jonathan Schleifer <js@h3c.de>. + Link C++ plugins correctly on *BSD, by Jonathan Schleifer <js-audacious@webkeks.org>. Changes: Modified: +1 -1 trunk/Plugins/Input/modplug/gui/support.h @@ -11580,7 +11580,7 @@ 2006-09-13 16:40:07 +0000 Tony Vroon <chainsaw@gentoo.org> revision [2293] - Remove built-in soundcard.h silliness so OSS actually works on *BSD, by Jonathan Schleifer <js@h3c.de>. + Remove built-in soundcard.h silliness so OSS actually works on *BSD, by Jonathan Schleifer <js-audacious@webkeks.org>. Changes: Modified: +5 -1 trunk/Plugins/Input/cdaudio/cdaudio.h @@ -11598,7 +11598,7 @@ 2006-09-13 15:06:57 +0000 Tony Vroon <chainsaw@gentoo.org> revision [2289] - 4-way scroll support in the main window (volume & seek) by Jonathan Schleifer <js@h3c.de>. + 4-way scroll support in the main window (volume & seek) by Jonathan Schleifer <js-audacious@webkeks.org>. Changes: Modified: +20 -8 trunk/audacious/mainwin.c @@ -11606,7 +11606,7 @@ 2006-09-13 13:38:40 +0000 Tony Vroon <chainsaw@gentoo.org> revision [2287] - Fixes for NetBSD by Jonathan Schleifer <js@h3c.de> + Fixes for NetBSD by Jonathan Schleifer <js-audacious@webkeks.org> Changes: Modified: +2 -0 trunk/Plugins/Container/xspf/xspf.c
--- a/Makefile Wed Oct 24 10:41:53 2007 +0300 +++ b/Makefile Fri Nov 16 05:36:42 2007 +0200 @@ -17,7 +17,24 @@ Skins/Classic/titlebar.png \ Skins/Classic/viscolor.txt \ Skins/Classic/volume.png \ - Skins/Default/balance.png \ + Skins/Classic1.3/balance.png \ + Skins/Classic1.3/cbuttons.png \ + Skins/Classic1.3/eq_ex.png \ + Skins/Classic1.3/eqmain.png \ + Skins/Classic1.3/main.png \ + Skins/Classic1.3/monoster.png \ + Skins/Classic1.3/nums_ex.png \ + Skins/Classic1.3/playpaus.png \ + Skins/Classic1.3/pledit.png \ + Skins/Classic1.3/pledit.txt \ + Skins/Classic1.3/posbar.png \ + Skins/Classic1.3/shufrep.png \ + Skins/Classic1.3/skin-classic.hints \ + Skins/Classic1.3/skin.hints \ + Skins/Classic1.3/text.png \ + Skins/Classic1.3/titlebar.png \ + Skins/Classic1.3/viscolor.txt \ + Skins/Classic1.3/volume.png \ Skins/Default/cbuttons.png \ Skins/Default/eq_ex.png \ Skins/Default/eqmain.png \ @@ -29,12 +46,106 @@ Skins/Default/pledit.txt \ Skins/Default/posbar.png \ Skins/Default/shufrep.png \ - Skins/Default/skin-classic.hints \ Skins/Default/skin.hints \ Skins/Default/text.png \ Skins/Default/titlebar.png \ Skins/Default/viscolor.txt \ Skins/Default/volume.png \ + Skins/Default/gtk-2.0/Arrows/arrow-down.png \ + Skins/Default/gtk-2.0/Arrows/arrow-insens.png \ + Skins/Default/gtk-2.0/Arrows/arrow-left.png \ + Skins/Default/gtk-2.0/Arrows/arrow-right.png \ + Skins/Default/gtk-2.0/Arrows/arrow-up.png \ + Skins/Default/gtk-2.0/Buttons/button-insensitive.png \ + Skins/Default/gtk-2.0/Buttons/button-normal.png \ + Skins/Default/gtk-2.0/Buttons/button-prelight.png \ + Skins/Default/gtk-2.0/Check-Radio/check1.png \ + Skins/Default/gtk-2.0/Check-Radio/check2.png \ + Skins/Default/gtk-2.0/Check-Radio/check3.png \ + Skins/Default/gtk-2.0/Check-Radio/check4.png \ + Skins/Default/gtk-2.0/Check-Radio/check5.png \ + Skins/Default/gtk-2.0/Check-Radio/check6.png \ + Skins/Default/gtk-2.0/Check-Radio/option1.png \ + Skins/Default/gtk-2.0/Check-Radio/option2.png \ + Skins/Default/gtk-2.0/Check-Radio/option3.png \ + Skins/Default/gtk-2.0/Check-Radio/option4.png \ + Skins/Default/gtk-2.0/Check-Radio/option5.png \ + Skins/Default/gtk-2.0/Check-Radio/option6.png \ + Skins/Default/gtk-2.0/Frame-Gap/frame-gap-end.png \ + Skins/Default/gtk-2.0/Frame-Gap/frame-gap-start.png \ + Skins/Default/gtk-2.0/Frame-Gap/frame.png \ + Skins/Default/gtk-2.0/Handles/handle-h.png \ + Skins/Default/gtk-2.0/Handles/handle-v.png \ + Skins/Default/gtk-2.0/Lines/line-h.png \ + Skins/Default/gtk-2.0/Lines/line-v.png \ + Skins/Default/gtk-2.0/ListHeaders/list_header-insens.png \ + Skins/Default/gtk-2.0/ListHeaders/list_header-prelight.png \ + Skins/Default/gtk-2.0/ListHeaders/list_header-pressed.png \ + Skins/Default/gtk-2.0/ListHeaders/list_header.png \ + Skins/Default/gtk-2.0/Menu-Menubar/menu.png \ + Skins/Default/gtk-2.0/Menu-Menubar/menubar-item-active.png \ + Skins/Default/gtk-2.0/Menu-Menubar/menubar-item.png \ + Skins/Default/gtk-2.0/Menu-Menubar/menubar.png \ + Skins/Default/gtk-2.0/Others/null.png \ + Skins/Default/gtk-2.0/Others/ruler.png \ + Skins/Default/gtk-2.0/Panel/panel-bg.png \ + Skins/Default/gtk-2.0/ProgressBar/progressbar-horiz.png \ + Skins/Default/gtk-2.0/ProgressBar/trough-progressbar-horiz.png \ + Skins/Default/gtk-2.0/Range/slider-horiz-prelight.png \ + Skins/Default/gtk-2.0/Range/slider-horiz.png \ + Skins/Default/gtk-2.0/Range/slider-vert-prelight.png \ + Skins/Default/gtk-2.0/Range/slider-vert.png \ + Skins/Default/gtk-2.0/Range/trough-horizontal.png \ + Skins/Default/gtk-2.0/Range/trough-vertical.png \ + Skins/Default/gtk-2.0/Scrollbars/scroll-thumb-horiz-pre.png \ + Skins/Default/gtk-2.0/Scrollbars/scroll-thumb-horiz.png \ + Skins/Default/gtk-2.0/Scrollbars/scroll-thumb-vert-pre.png \ + Skins/Default/gtk-2.0/Scrollbars/scroll-thumb-vert.png \ + Skins/Default/gtk-2.0/Scrollbars/slider-horiz-pre.png \ + Skins/Default/gtk-2.0/Scrollbars/slider-horiz.png \ + Skins/Default/gtk-2.0/Scrollbars/slider-vert-pre.png \ + Skins/Default/gtk-2.0/Scrollbars/slider-vert.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-down-prelight.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-down.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-left-prelight.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-left.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-right-prelight.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-right.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-up-prelight.png \ + Skins/Default/gtk-2.0/Scrollbars/stepper-up.png \ + Skins/Default/gtk-2.0/Scrollbars/trough-scrollbar-horiz.png \ + Skins/Default/gtk-2.0/Scrollbars/trough-scrollbar-vert.png \ + Skins/Default/gtk-2.0/Shadows/shadow-in.png \ + Skins/Default/gtk-2.0/Shadows/shadow-out.png \ + Skins/Default/gtk-2.0/Shadows/text-.png \ + Skins/Default/gtk-2.0/Shadows/text-entry.png \ + Skins/Default/gtk-2.0/Spin/spin-down-disable.png \ + Skins/Default/gtk-2.0/Spin/spin-down-prelight.png \ + Skins/Default/gtk-2.0/Spin/spin-down.png \ + Skins/Default/gtk-2.0/Spin/spin-up-disable.png \ + Skins/Default/gtk-2.0/Spin/spin-up-prelight.png \ + Skins/Default/gtk-2.0/Spin/spin-up.png \ + Skins/Default/gtk-2.0/Tabs/gap-bottom-left.png \ + Skins/Default/gtk-2.0/Tabs/gap-bottom-right.png \ + Skins/Default/gtk-2.0/Tabs/gap-left-bottom.png \ + Skins/Default/gtk-2.0/Tabs/gap-left-top.png \ + Skins/Default/gtk-2.0/Tabs/gap-right-bottom.png \ + Skins/Default/gtk-2.0/Tabs/gap-right-top.png \ + Skins/Default/gtk-2.0/Tabs/gap-top-current.png \ + Skins/Default/gtk-2.0/Tabs/gap-top-left.png \ + Skins/Default/gtk-2.0/Tabs/gap-top-right.png \ + Skins/Default/gtk-2.0/Tabs/notebook.png \ + Skins/Default/gtk-2.0/Tabs/tab-bottom-active.png \ + Skins/Default/gtk-2.0/Tabs/tab-bottom.png \ + Skins/Default/gtk-2.0/Tabs/tab-left-active.png \ + Skins/Default/gtk-2.0/Tabs/tab-left.png \ + Skins/Default/gtk-2.0/Tabs/tab-right-active.png \ + Skins/Default/gtk-2.0/Tabs/tab-right.png \ + Skins/Default/gtk-2.0/Tabs/tab-top-active.png \ + Skins/Default/gtk-2.0/Tabs/tab-top.png \ + Skins/Default/gtk-2.0/Toolbar/toolbar.png \ + Skins/Default/gtk-2.0/gtkrc \ + Skins/Default/gtk-2.0/panel.rc \ Skins/Ivory/balance.png \ Skins/Ivory/cbuttons.png \ Skins/Ivory/eq_ex.png \ @@ -124,6 +235,9 @@ ${INSTALL_FAILED}; \ fi \ done + if [ -f ${DESTDIR}${datadir}/audacious/Skins/Default/balance.png ]; then \ + rm -f ${DESTDIR}${datadir}/audacious/Skins/Default/balance.png; \ + fi uninstall-extra: for i in audacious.pc audclient.pc; do \
--- a/NEWS Wed Oct 24 10:41:53 2007 +0300 +++ b/NEWS Fri Nov 16 05:36:42 2007 +0200 @@ -1,3 +1,30 @@ +Audacious 1.4.1 (2007-11-??) + +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 leve of sense. +* Add many new calls to libaudclient which were unimplemented after + DBus transition. + +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 (Fixed by Yoshiki Yazawa) +* audctrl.h was dependent on #ifdef __cplusplus being a valid macro, + now we use G_BEGIN_DECLS/G_END_DECLS to handle that. + +Audacious 1.4.0 (2007-11-01) + +* Everything ;) + Audacious 1.3.0 (2007-03-02) Enhancements
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Skins/Classic1.3/pledit.txt Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,6 @@ +[Text] +Normal=#a6c1df +Current=#eeeeee +NormalBG=#000000 +SelectedBG=#666666 +Font=Helvetica
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Skins/Classic1.3/skin-classic.hints Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,3 @@ +[skin] +skinDescription=The default skin for Audacious. (Classic variant) +mainwinOthertext=1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Skins/Classic1.3/skin.hints Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,28 @@ +[skin] +skinDescription=The default skin for Audacious. +mainwinOthertext=1 +mainwinVisX=19 +mainwinVisY=39 +mainwinTextX=19 +mainwinTextY=26 +mainwinTextWidth=246 +mainwinInfobarX=111 +mainwinInfobarY=42 +mainwinNumber0X=30 +mainwinNumber0Y=56 +mainwinNumber1X=42 +mainwinNumber1Y=56 +mainwinNumber2X=54 +mainwinNumber2Y=56 +mainwinNumber3X=72 +mainwinNumber3Y=56 +mainwinNumber4X=84 +mainwinNumber4Y=56 +mainwinPlayStatusX=19 +mainwinPlayStatusY=58 +mainwinMenurowVisible=1 +mainwinOthertextIsStatus=1 +mainwinOthertextVisible=1 +mainwinTextVisible=1 +mainwinVisVisible=1 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Skins/Classic1.3/viscolor.txt Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,24 @@ +0,0,0 // [background color 1] +0,0,0 // [background color 2] +9,13,15 +19,26,31 +29,39,47 +39,52,63 +49,65,79 +59,78,95 +69,91,111 +79,105,127 +88,118,143 +98,131,159 +108,144,175 +118,157,191 +128,170,207 +138,183,223 +148,196,239 +158,210,255 +240,240,240 // [osc 1] +220,220,220 // [osc 2] +170,170,170 // [osc 3] +100,100,100 // [osc 4] +20,20,20 // [osc 5] +200,200,220 // [peak color]
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Skins/Default/gtk-2.0/gtkrc Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,1534 @@ +include "panel.rc" + +gtk-menu-drop-shadow = 0 +gtk-menu-shadow-delay = 0 + +style "default" +{ +GtkWidget::interior_focus = 7 +GtkWidget::focus_padding = 1 +GtkButton::default_border = {0,0,0,0} +GtkButton::default_outside_border = {0,0,0,0} + +GtkRange::trough_border = 1 +GtkRange::slider_width = 14 +GtkRange::stepper_size = 14 + +GtkVScale::slider_length = 29 +GtkVScale::slider_width = 15 +GtkHScale::slider_length = 29 +GtkHScale::slider_width = 15 + +GtkPaned::handle_size = 6 +GtkScrollbar::min_slider_length = 50 +GtkCheckButton::indicator_size = 12 +GtkCheckButton::indicator_spacing = 3 +GtkMenuBar::internal_padding = 1 +#GtkOptionMenu::indicator_size = {15,8} +#GtkOptionMenu::indicator_spacing = {8,2,0,0} +GtkStatusbar::shadow_type = GTK_SHADOW_NONE +GtkSpinButton::shadow_type = GTK_SHADOW_NONE + +xthickness = 2 +ythickness = 2 + +GtkEntry::cursor_color = "#ffffff" +GtkTextView::cursor_color = "#ffffff" +GtkTextView::secondary_cursor_color = "#ffffff" +GtkWidget::cursor_color = "#ffffff" +GtkWidget::secondary_cursor_color = "#ffffff" + +fg[NORMAL] = "#ffffff" +fg[PRELIGHT] = "#ffffff" +fg[ACTIVE] = "#ffffff" +fg[SELECTED] = "#909090" +fg[INSENSITIVE] = "#909090" + +bg[NORMAL] = "#080808" +bg[PRELIGHT] = "#000000" +bg[ACTIVE] = "#000000" +bg[SELECTED] = "#080808" +bg[INSENSITIVE] = "#3f3f3f" + +base[NORMAL] = "#000000" +base[PRELIGHT] = "#313131" +base[ACTIVE] = "#071f46" +base[SELECTED] = "#0d377c" +base[INSENSITIVE] = "#000000" + +text[NORMAL] = "#ffffff" +text[PRELIGHT] = "#ffffff" +text[ACTIVE] = "#ffffff" +text[SELECTED] = "#ffffff" +text[INSENSITIVE] = "#606060" + +engine "pixmap" +{ +image +{ +function = HANDLE +overlay_file = "Handles/handle-h.png" +overlay_stretch = FALSE +orientation = HORIZONTAL +} +image +{ +function = HANDLE +overlay_file = "Handles/handle-v.png" +overlay_stretch = FALSE +orientation = VERTICAL +} + +image +{ +function = SHADOW +shadow = IN +file = "Shadows/shadow-in.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = SHADOW +shadow = OUT +file = "Shadows/shadow-out.png" +stretch = TRUE +} + +image +{ +function = SHADOW +shadow = ETCHED_IN +file = "Frame-Gap/frame.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = SHADOW +shadow = ETCHED_OUT +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +} +image +{ +function = SHADOW_GAP +file = "Frame-Gap/frame.png" +border = {2,2,2,2} +stretch = TRUE +gap_start_file = "Frame-Gap/frame-gap-start.png" +gap_start_border = {2,0,2,0} +gap_end_file = "Frame-Gap/frame-gap-end.png" +gap_end_border = {0,2,2,0} +gap_side = TOP +} +image +{ +function = VLINE +file = "Lines/line-v.png" +border = {0,0,0,0} +stretch = TRUE +} +image +{ +function = HLINE +file = "Lines/line-h.png" +border = {0,0,0,0} +stretch = TRUE +} + +image +{ +function = ARROW +overlay_file = "Arrows/arrow-up.png" +overlay_border = {0,0,0,0} +overlay_stretch = FALSE +arrow_direction = UP +} +image +{ +function = ARROW +overlay_file = "Arrows/arrow-down.png" +overlay_border = {0,0,0,0} +overlay_stretch = FALSE +arrow_direction = DOWN +} +image +{ +function = ARROW +overlay_file = "Arrows/arrow-left.png" +overlay_border = {0,0,0,0} +overlay_stretch = FALSE +arrow_direction = LEFT +} +image +{ +function = ARROW +overlay_file = "Arrows/arrow-right.png" +overlay_border = {0,0,0,0} +overlay_stretch = FALSE +arrow_direction = RIGHT +} +image +{ +function = BOX +file = "Toolbar/toolbar.png" +border = {2,2,2,2} +stretch = TRUE +} +} + +} + +gtk-font-name = "Sans 8" + +class "GtkWidget" style "default" + +style "button" = "default" +{ +engine "pixmap" +{ +image +{ +function = BOX +detail = "buttondefault" +file = "Buttons/button-normal.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = PRELIGHT +file = "Buttons/button-prelight.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = ACTIVE +file = "Buttons/button-prelight.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = INSENSITIVE +file = "Buttons/button-insensitive.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +file = "Buttons/button-normal.png" +border = {2,2,2,2} +stretch = TRUE +} +} +} + +style "checkradiobutton" { +engine "pixmap" { +image +{ +function = FLAT_BOX +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +} +} +} + +class "GtkRadioButton" style "checkradiobutton" +class "GtkCheckButton" style "checkradiobutton" + +style "optionmenu" = "default" +{ +engine "pixmap" +{ +image +{ +function = BOX +state = PRELIGHT +file = "Buttons/button-prelight.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +detail = "buttondefault" +state = NORMAL +file = "Buttons/button-normal.png" +border = {2,2,2,2} +stretch = TRUE +} + +image +{ +function = BOX +state = ACTIVE +file = "Buttons/button-prelight.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = INSENSITIVE +file = "Buttons/button-insensitive.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = TAB +state = INSENSITIVE +overlay_file = "Arrows/arrow-insens.png" +overlay_stretch = FALSE +} +image +{ +function = TAB +state = NORMAL +overlay_file = "Arrows/arrow-down.png" +overlay_border = {0,0,0,0} +overlay_stretch = FALSE +} +image +{ +function = TAB +state = PRELIGHT +overlay_file = "Arrows/arrow-down.png" +overlay_border = {0,0,0,0} +overlay_stretch = FALSE +} +} +} + +widget_class "*Combo*" style "optionmenu" + +style "radiobutton" = "default" +{ +engine "pixmap" +{ +image +{ +function = OPTION +state = NORMAL +shadow = OUT +overlay_file = "Check-Radio/option1.png" +overlay_stretch = FALSE +} +image +{ +function = OPTION +state = PRELIGHT +shadow = OUT +overlay_file = "Check-Radio/option3.png" +overlay_stretch = FALSE +} +image +{ +function = OPTION +state = ACTIVE +shadow = OUT +overlay_file = "Check-Radio/option1.png" +overlay_stretch = FALSE +} +image +{ +function = OPTION +state = INSENSITIVE +shadow = OUT +overlay_file = "Check-Radio/option5.png" +overlay_stretch = FALSE +} + +image +{ +function = OPTION +state = NORMAL +shadow = IN +overlay_file = "Check-Radio/option2.png" +overlay_stretch = FALSE +} +image +{ +function = OPTION +state = PRELIGHT +shadow = IN +overlay_file = "Check-Radio/option4.png" +overlay_stretch = FALSE +} +image +{ +function = OPTION +state = ACTIVE +shadow = IN +overlay_file = "Check-Radio/option2.png" +overlay_stretch = FALSE +} +image +{ +function = OPTION +state = INSENSITIVE +shadow = IN +overlay_file = "Check-Radio/option6.png" +overlay_stretch = FALSE +} + +image +{ +function = FLAT_BOX +stretch = TRUE +file = "Others/null.png" +border = {0,0,0,0} +} +} +} + +style "checkbutton" = "default" +{ +engine "pixmap" +{ +image +{ +function = CHECK +state = NORMAL +shadow = OUT +overlay_file = "Check-Radio/check1.png" +overlay_stretch = FALSE +} +image +{ +function = CHECK +state = PRELIGHT +shadow = OUT +overlay_file = "Check-Radio/check3.png" +overlay_stretch = FALSE +} +image +{ +function = CHECK +state = ACTIVE +shadow = OUT +overlay_file = "Check-Radio/check1.png" +overlay_stretch = FALSE +} +image +{ +function = CHECK +state = INSENSITIVE +shadow = OUT +overlay_file = "Check-Radio/check5.png" +overlay_stretch = FALSE +} + +image +{ +function = CHECK +state = NORMAL +shadow = IN +overlay_file = "Check-Radio/check2.png" +overlay_stretch = FALSE +} +image +{ +function = CHECK +state = PRELIGHT +shadow = IN +overlay_file = "Check-Radio/check4.png" +overlay_stretch = FALSE +} +image +{ +function = CHECK +state = ACTIVE +shadow = IN +overlay_file = "Check-Radio/check4.png" +overlay_stretch = FALSE +} +image +{ +function = CHECK +state = INSENSITIVE +shadow = IN +overlay_file = "Check-Radio/check6.png" +overlay_stretch = FALSE +} + +image +{ +function = FLAT_BOX +stretch = TRUE +file = "Others/null.png" +border = {2,2,2,2} +} +} +} + +style "entry" = "default" +{ + +xthickness = 3 +ythickness = 1 + +GtkWidget::interior_focus = 0 + +engine "pixmap" +{ +image +{ +function = FOCUS +file = "Shadows/text-entry.png" +border = {1,1,1,1} +stretch = TRUE +} +image +{ +function = BOX +shadow = IN +state = NORMAL +file = "Shadows/text-entry.png" +border = {1,1,1,1} +stretch = TRUE +} +image +{ +function = BOX +shadow = OUT +state = NORMAL +file = "Shadows/text-entry.png" +border = {1,1,1,1} +stretch = TRUE +} +image +{ +function = SHADOW +detail = "entry" +shadow = IN +file = "Shadows/text-entry.png" +border = {1,1,1,1} +stretch = TRUE +} +} +} + + +style "spinbutton" = "entry" +{ + + +engine "pixmap" +{ +image +{ +function = ARROW +} + +image +{ +function = BOX +state = NORMAL +detail = "spinbutton_up" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-up.png" +overlay_stretch = FALSE +} +image +{ +function = BOX +state = PRELIGHT +detail = "spinbutton_up" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-up-prelight.png" +overlay_stretch = FALSE +} +image +{ +function = BOX +state = INSENSITIVE +detail = "spinbutton_up" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-up-disable.png" +overlay_stretch = FALSE +} +image +{ +function = BOX +state = ACTIVE +detail = "spinbutton_up" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-up-prelight.png" +overlay_stretch = FALSE +} + +image +{ +function = BOX +state = NORMAL +detail = "spinbutton_down" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-down.png" +overlay_stretch = FALSE +} +image +{ +function = BOX +state = PRELIGHT +detail = "spinbutton_down" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-down-prelight.png" +overlay_stretch = FALSE +} +image +{ +function = BOX +state = INSENSITIVE +detail = "spinbutton_down" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-down-disable.png" +overlay_stretch = FALSE +} + +image +{ +function = BOX +state = ACTIVE +detail = "spinbutton_down" +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Spin/spin-down-prelight.png" +overlay_stretch = FALSE +} +} +} + +style "scrollbar" = "default" +{ +engine "pixmap" +{ + +image +{ +function = BOX +detail = "trough" +file = "Scrollbars/trough-scrollbar-horiz.png" +border = {16,16,2,2} +stretch = TRUE +orientation = HORIZONTAL +} +image +{ +function = BOX +detail = "trough" +file = "Scrollbars/trough-scrollbar-vert.png" +border = {2,2,16,16} +stretch = TRUE +orientation = VERTICAL +} + + +image +{ +function = SLIDER +state = NORMAL +file = "Scrollbars/slider-horiz.png" +border = {2,2,2,2} +stretch = TRUE +orientation = HORIZONTAL +} +image +{ +function = SLIDER +state = ACTIVE +shadow = IN +file = "Scrollbars/slider-horiz-pre.png" +border = {2,2,2,2} +stretch = TRUE +orientation = HORIZONTAL +} + +image +{ +function = SLIDER +state = PRELIGHT +file = "Scrollbars/slider-horiz-pre.png" +border = {2,2,2,2} +stretch = TRUE +orientation = HORIZONTAL +} +image +{ +function = SLIDER +state = INSENSITIVE +file = "Scrollbars/slider-horiz.png" +border = {2,2,2,2} +stretch = TRUE +orientation = HORIZONTAL +} + + +image +{ +function = SLIDER +state = NORMAL +file = "Scrollbars/slider-vert.png" +border = {2,2,2,2} +stretch = TRUE +orientation = VERTICAL +} +image +{ +function = SLIDER +state = ACTIVE +shadow = IN +file = "Scrollbars/slider-vert-pre.png" +border = {2,2,2,2} +stretch = TRUE +orientation = VERTICAL +} +image +{ +function = SLIDER +state = PRELIGHT +file = "Scrollbars/slider-vert-pre.png" +border = {2,2,2,2} +stretch = TRUE +orientation = VERTICAL +} +image +{ +function = SLIDER +state = INSENSITIVE +file = "Scrollbars/slider-vert.png" +border = {2,2,2,2} +stretch = TRUE +orientation = VERTICAL +} + +image +{ +function = STEPPER +state = NORMAL +file = "Scrollbars/stepper-up.png" +stretch = TRUE +arrow_direction = UP +} +image +{ +function = STEPPER +state = PRELIGHT +file = "Scrollbars/stepper-up-prelight.png" +stretch = TRUE +arrow_direction = UP +} +image +{ +function = STEPPER +state = ACTIVE +file = "Scrollbars/stepper-up-prelight.png" +stretch = TRUE +arrow_direction = UP +} +image +{ +function = STEPPER +state = INSENSITIVE +file = "Scrollbars/stepper-up.png" +stretch = TRUE +arrow_direction = UP +} + + +image +{ +function = STEPPER +state = NORMAL +file = "Scrollbars/stepper-down.png" +stretch = TRUE +arrow_direction = DOWN +} +image +{ +function = STEPPER +state = PRELIGHT +file = "Scrollbars/stepper-down-prelight.png" +stretch = TRUE +arrow_direction = DOWN +} +image +{ +function = STEPPER +state = ACTIVE +file = "Scrollbars/stepper-down-prelight.png" +stretch = TRUE +arrow_direction = DOWN +} +image +{ +function = STEPPER +state = INSENSITIVE +file = "Scrollbars/stepper-down.png" +stretch = TRUE +arrow_direction = DOWN +} + +image +{ +function = STEPPER +state = NORMAL +file = "Scrollbars/stepper-right.png" +stretch = TRUE +arrow_direction = RIGHT +} +image +{ +function = STEPPER +state = PRELIGHT +file = "Scrollbars/stepper-right-prelight.png" +stretch = TRUE +arrow_direction = RIGHT +} +image +{ +function = STEPPER +state = ACTIVE +file = "Scrollbars/stepper-right-prelight.png" +stretch = TRUE +arrow_direction = RIGHT +} +image +{ +function = STEPPER +state = INSENSITIVE +file = "Scrollbars/stepper-right.png" +stretch = TRUE +arrow_direction = RIGHT +} + +image +{ +function = STEPPER +state = NORMAL +file = "Scrollbars/stepper-left.png" +stretch = TRUE +arrow_direction = LEFT +} +image +{ +function = STEPPER +state = PRELIGHT +file = "Scrollbars/stepper-left-prelight.png" +stretch = TRUE +arrow_direction = LEFT +} +image +{ +function = STEPPER +state = ACTIVE +file = "Scrollbars/stepper-left-prelight.png" +stretch = TRUE +arrow_direction = LEFT +} +image +{ +function = STEPPER +state = INSENSITIVE +file = "Scrollbars/stepper-left.png" +stretch = TRUE +arrow_direction = LEFT +} +} +} + +style "progressbar" { +fg[PRELIGHT] = "#ffffff" +text[PRELIGHT] = "#ffffff" +xthickness = 2 +ythickness = 2 + +engine "pixmap" +{ +image +{ +function = BOX +detail = "trough" +file = "ProgressBar/trough-progressbar-horiz.png" +border = {1,1,1,1} +stretch = TRUE +} +image +{ +function = BOX +detail = "bar" +file = "ProgressBar/progressbar-horiz.png" +border = {1,1,1,1} +stretch = TRUE +} +} +} + +style "range" = "default" +{ +engine "pixmap" +{ +image +{ +function = BOX +detail = "trough" +file = "Range/trough-horizontal.png" +border = {2,2,8,7} +stretch = TRUE +orientation = HORIZONTAL +} +image +{ +function = BOX +detail = "trough" +file = "Range/trough-vertical.png" +border = {7,8,2,2} +stretch = TRUE +orientation = VERTICAL +} + +image +{ +function = SLIDER +state = NORMAL +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Range/slider-horiz.png" +overlay_stretch = FALSE +orientation = HORIZONTAL +} +image +{ +function = SLIDER +state = PRELIGHT +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Range/slider-horiz-prelight.png" +overlay_stretch = FALSE +orientation = HORIZONTAL +} +image +{ +function = SLIDER +state = INSENSITIVE +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Range/slider-horiz.png" +overlay_stretch = FALSE +orientation = HORIZONTAL +} + +image +{ +function = SLIDER +state = NORMAL +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Range/slider-vert.png" +overlay_stretch = FALSE +orientation = VERTICAL +} +image +{ +function = SLIDER +state = PRELIGHT +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Range/slider-vert-prelight.png" +overlay_stretch = FALSE +orientation = VERTICAL +} +image +{ +function = SLIDER +state = INSENSITIVE +file = "Others/null.png" +border = {0,0,0,0} +stretch = TRUE +overlay_file = "Range/slider-vert.png" +overlay_stretch = FALSE +orientation = VERTICAL +} +} +} + +style "toolbar" +{ + +engine "pixmap" +{ +image +{ +function = BOX +file = "Toolbar/toolbar.png" +border = {2,2,2,2} +stretch = TRUE +} +} +} +#widget_class "*BonoboDockItem" style "toolbar" +#class "*BonoboDockItem" style "toolbar" + +widget_class "*HandleBox" style "toolbar" +class "*HandleBox" style "toolbar" + +widget_class "*Toolbar" style "toolbar" +class "*Toolbar" style "toolbar" + +style "toolbuttons" = "default" +{ +xthickness = 1 +ythickness = 1 + +GtkWidget::focus_padding = 2 + +engine "pixmap" { + +image +{ +function = BOX +state = NORMAL +file = "Buttons/button-normal.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = PRELIGHT +file = "Buttons/button-prelight.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = ACTIVE +file = "Buttons/button-prelight.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = INSENSITIVE +file = "Buttons/button-normal.png" +border = {2,2,2,2} +stretch = TRUE +} +} +} +widget_class "*Tool*GtkToggleButton" style "toolbuttons" +widget_class "*Tool*GtkButton" style "toolbuttons" + +style "menu" = "default" +{ +#bg_pixmap[NORMAL] = "Menu-Menubar/menu-overlay.png" +xthickness = 1 +ythickness = 1 + +engine "pixmap" +{ +image +{ +function = BOX +detail = "menu" +file = "Menu-Menubar/menu.png" +border = {2,2,14,2} +stretch = TRUE +} +} +} + +style "menuitem" = "default" +{ +xthickness = 1 +fg[PRELIGHT] = "#ffffff" +text[PRELIGHT] = "#949494" + +engine "pixmap" +{ +image +{ +function = BOX +file = "Menu-Menubar/menubar-item-active.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = ARROW +state = NORMAL +overlay_file = "Arrows/arrow-right.png" +overlay_stretch = FALSE +arrow_direction = RIGHT +} +image +{ +function = ARROW +state = PRELIGHT +overlay_file = "Arrows/arrow-right.png" +overlay_stretch = FALSE +arrow_direction = RIGHT +} +} +} + +style "tearoffmenuitem" = "menuitem" +{ +engine "pixmap" +{ +image +{ +function = ARROW +file = "Arrows/arrow-left.png" +stretch = TRUE +arrow_direction = LEFT +} +} +} + +style "menubar" +{ +fg[NORMAL] = "#ffffff" +text[NORMAL] = "#ffffff" +fg[PRELIGHT] = "#ffffff" +fg[ACTIVE] = "#ffffff" +fg[INSENSITIVE] = "#909090" +bg[INSENSITIVE] = "#3f3f3f" +text[PRELIGHT] = "#ffffff" + +xthickness = 1 +ythickness = 1 +engine "pixmap" +{ +image +{ +function = BOX +state = NORMAL +file = "Menu-Menubar/menubar.png" +border = {2,2,2,2} +stretch = TRUE +} + +image +{ +function = BOX +state = ACTIVE +file = "Menu-Menubar/menubar.png" +border = {2,2,2,2} +stretch = TRUE +} + +image +{ +function = BOX +state = INSENSITIVE +file = "Menu-Menubar/menubar.png" +border = {2,2,2,2} +stretch = TRUE +} + +image +{ +function = BOX +state = PRELIGHT +file = "Menu-Menubar/menubar-item.png" +border = {2,2,14,1} +stretch = TRUE +} +} +} + +style "notebook" = "default" +{ + +xthickness = 2 +ythickness = 2 +engine "pixmap" +{ +image +{ +function = EXTENSION +state = ACTIVE +file = "Tabs/tab-bottom.png" +border = {3,3,1,4} +stretch = TRUE +gap_side = TOP +} +image +{ +function = EXTENSION +state = ACTIVE +file = "Tabs/tab-top.png" +border = {3,3,4,1} +stretch = TRUE +gap_side = BOTTOM +} +image +{ +function = EXTENSION +state = ACTIVE +file = "Tabs/tab-left.png" +border = {4,1,3,3} +stretch = TRUE +gap_side = RIGHT +} +image +{ +function = EXTENSION +state = ACTIVE +file = "Tabs/tab-right.png" +border = {1,4,3,3} +stretch = TRUE +gap_side = LEFT +} +image +{ +function = EXTENSION +file = "Tabs/tab-top-active.png" +border = {3,3,3,1} +stretch = TRUE +gap_side = BOTTOM +} +image +{ +function = EXTENSION +file = "Tabs/tab-bottom-active.png" +border = {3,3,1,3} +stretch = TRUE +gap_side = TOP +} +image +{ +function = EXTENSION +file = "Tabs/tab-left-active.png" +border = {3,1,3,3} +stretch = TRUE +gap_side = RIGHT +} +image +{ +function = EXTENSION +file = "Tabs/tab-right-active.png" +border = {1,3,3,3} +stretch = TRUE +gap_side = LEFT +} + +image +{ +function = BOX_GAP +file = "Tabs/notebook.png" +border = {1,1,1,1} +stretch = TRUE +gap_file = "Tabs/gap-top-current.png" +gap_border = {2,2,2,2} +gap_start_file = "Tabs/gap-top-left.png" +gap_start_border = {1,0,1,0} +gap_end_file = "Tabs/gap-top-right.png" +gap_end_border = {0,1,1,0} +gap_side = TOP +} +image +{ +function = BOX_GAP +file = "Tabs/notebook.png" +border = {1,1,1,1} +stretch = TRUE +gap_file = "Tabs/gap-top-current.png" +gap_border = {2,2,2,2} +gap_start_file = "Tabs/gap-bottom-left.png" +gap_start_border = {1,0,1,0} +gap_end_file = "Tabs/gap-bottom-right.png" +gap_end_border = {0,1,1,0} +gap_side = BOTTOM +} +image +{ +function = BOX_GAP +file = "Tabs/notebook.png" +border = {1,1,1,1} +stretch = TRUE +gap_file = "Tabs/gap-top-current.png" +gap_border = {2,2,2,2} +gap_start_file = "Tabs/gap-left-top.png" +gap_start_border = {1,0,1,0} +gap_end_file = "Tabs/gap-left-bottom.png" +gap_end_border = {1,0,0,1} +gap_side = LEFT +} +image +{ +function = BOX_GAP +file = "Tabs/notebook.png" +border = {1,1,1,1} +stretch = TRUE +gap_file = "Tabs/gap-top-current.png" +gap_border = {2,2,2,2} +gap_start_file = "Tabs/gap-right-top.png" +gap_start_border = {0,1,1,0} +gap_end_file = "Tabs/gap-right-bottom.png" +gap_end_border = {0,1,0,1} +gap_side = RIGHT +} + +# Notebook with no tabs +image +{ +function = BOX +file = "Tabs/notebook.png" +border = {1,1,1,1} +stretch = TRUE +} +} +} + +style "tooltips" = "default" +{ +bg[NORMAL] = "#070707" +} + +style "ruler" = "default" +{ +engine "pixmap" { +image +{ +function = BOX +detail = "vruler" +file = "Others/ruler.png" +border = {1,1,1,1} +stretch = TRUE +} +image +{ +function = BOX +detail = "hruler" +file = "Others/ruler.png" +border = {1,1,1,1} +stretch = TRUE +} +} +} + +style "handlebox" = "default" +{ +engine "pixmap" +{ +image +{ +} +image +{ +function = HANDLE +overlay_file = "Handles/handle-v.png" +overlay_stretch = FALSE +orientation = VERTICAL +} +image +{ +function = HANDLE +overlay_file = "Handles/handle-h.png" +overlay_stretch = FALSE +orientation = HORIZONTAL +} +} +} + +style "flat" = "default" +{ +engine "pixmap" +{ +image +{ +function = SHADOW +} +} +} + +style "layout" = "default" +{ +engine "pixmap" +{ +image +{ +function = SHADOW +detail = "entry" +shadow = IN +file = "Shadows/text-.png" +border = {1,1,1,1} +stretch = TRUE +} +image +{ +function = BOX +detail = "button" +state = NORMAL +file = "Buttons/button-normal.png" +border = {2,2,2,2} +stretch = TRUE +} +} +} + +style "list-header" +{ +ythickness = 3 +GtkTreeView::odd_row_color = "#171717" +GtkTreeView::even_row_color = "#000000" + +engine "pixmap" +{ +image +{ +function = BOX +state = NORMAL +file = "ListHeaders/list_header.png" +border = {1,2,1,2} +stretch = TRUE +} + +image +{ +function = BOX +state = PRELIGHT +file = "ListHeaders/list_header-prelight.png" +border = {1,2,5,2} +stretch = TRUE +} + +image +{ +function = BOX +state = ACTIVE +file = "ListHeaders/list_header-pressed.png" +border = {0,0,0,0} +stretch = TRUE +} +image +{ +function = BOX +state = SELECTED +file = "ListHeaders/list_header-prelight.png" +border = {4,5,2,2} +stretch = TRUE +} +image +{ +function = BOX +state = INSENSITIVE +file = "ListHeaders/list_header-insens.png" +border = {1,2,1,2} +stretch = TRUE +} +} +} + +widget_class "*List" style "list-header" +widget_class "*GtkTree*" style "list-header" +widget_class "*GtkCList*" style "list-header" +#widget_class "*Tree*" style "list-header" + +# Sodipodi bug +style "unstyle" +{ +engine "" +{ +} +} +class "SPColorSlider" style "unstyle" + +style "SPbutton" +{ +engine "pixmap" +{ +image +{ +function = BOX +shadow = IN +file = "Shadows/shadow-out.png" +border = {2,2,2,2} +stretch = TRUE +} +image +{ +function = BOX +} +} +} + +style "treecol" +{ +bg[NORMAL] = "#000000" +} + +class "GtkButton" style "button" +class "GtkRadioButton" style "radiobutton" +class "GtkRadioMenuItem" style "radiobutton" +class "GtkCheckButton" style "checkbutton" +class "GtkCheckMenuItem" style "checkbutton" +class "GtkOptionMenu" style "optionmenu" +class "GtkCombo*" style "optionmenu" +class "*Font*" style "optionmenu" +class "GtkEntry" style "entry" +class "GtkOldEditable" style "entry" +class "GtkSpinButton" style "spinbutton" +class "GtkRuler" style "ruler" +class "GtkScrollbar" style "scrollbar" +class "GtkProgressBar" style "progressbar" +class "GtkRange" style "range" +class "GtkMenu" style "menu" +class "GtkMenuBar*" style "menubar" +widget_class "*MenuBar.*" style "menubar" +class "GtkMenuItem" style "menuitem" +class "GtkTearoffMenuItem" style "menuitem" +class "GtkNotebook" style "notebook" +class "GtkToolbar" style "flat" +class "GtkHandleBox" style "handlebox" +class "GtkEventBox" style "flat" +class "GtkPaned" style "handlebox" +class "GtkLayout" style "layout" +class "SPButton" style "SPbutton" +widget "gtk-tooltips" style "tooltips" + +# colorize ugly white line at the top of the vertical scrollbar in Nautilus +style "searchbar" { +bg[NORMAL] = "#080808" +} +widget "*.nautilus-extra-view-widget" style:highest "searchbar" + +# separator in Nautilus sidebar +style "separator" { +bg[NORMAL] = "#191919" +} +widget "*nautilus*side*" style:highest "separator"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Skins/Default/gtk-2.0/panel.rc Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,50 @@ +style "tasklist-button" +{ +xthickness = 0 +ythickness = 0 +engine "pixmap" +{ +image +{ +function = BOX +state = NORMAL +file = "Buttons/button-normal.png" +border = {6,6,14,2} +stretch = TRUE +} +image +{ +function = BOX +state = ACTIVE +file = "Buttons/button-prelight.png" +border = {6,6,14,2} +stretch = TRUE +} +image +{ +function = BOX +state = PRELIGHT +file = "Buttons/button-prelight.png" +border = {6,6,14,2} +stretch = TRUE +} +} +} +widget "*.tasklist-button" style "tasklist-button" +style "panel-menubar" +{ +xthickness = 1 +ythickness = 0 +engine "pixmap" +{ +image +{ +function = BOX +state = NORMAL +file = "Panel/panel-bg.png" +border = {0,0,0,0} +stretch = FALSE +} +} +} +class "*Panel*" style "panel-menubar"
--- a/Skins/Default/pledit.txt Wed Oct 24 10:41:53 2007 +0300 +++ b/Skins/Default/pledit.txt Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ -[Text] -Normal=#a6c1df -Current=#eeeeee -NormalBG=#000000 -SelectedBG=#666666 -Font=Helvetica +[Text] +Normal=#2499FF +Current=#FFEEFF +NormalBG=#000000 +SelectedBG=#0A124A +
--- a/Skins/Default/skin.hints Wed Oct 24 10:41:53 2007 +0300 +++ b/Skins/Default/skin.hints Fri Nov 16 05:36:42 2007 +0200 @@ -1,28 +1,32 @@ +# Hints for "Starsidhe", the Audacious 1.4 Default Skin. + [skin] -skinDescription=The default skin for Audacious. +skinDescription=Starsidhe, the Audacious 1.4 default skin. mainwinOthertext=1 -mainwinVisX=19 -mainwinVisY=39 -mainwinTextX=19 -mainwinTextY=26 -mainwinTextWidth=246 -mainwinInfobarX=111 -mainwinInfobarY=42 -mainwinNumber0X=30 -mainwinNumber0Y=56 -mainwinNumber1X=42 -mainwinNumber1Y=56 -mainwinNumber2X=54 -mainwinNumber2Y=56 -mainwinNumber3X=72 -mainwinNumber3Y=56 -mainwinNumber4X=84 -mainwinNumber4Y=56 -mainwinPlayStatusX=19 -mainwinPlayStatusY=58 -mainwinMenurowVisible=1 -mainwinOthertextIsStatus=1 mainwinOthertextVisible=1 mainwinTextVisible=1 mainwinVisVisible=1 - +mainwinMenurowVisible=0 +mainwinNumber0X=28 +mainwinNumber0Y=26 +mainwinNumber1X=40 +mainwinNumber1Y=26 +mainwinNumber2X=52 +mainwinNumber2Y=26 +mainwinNumber3X=70 +mainwinNumber3Y=26 +mainwinNumber4X=82 +mainwinNumber4Y=26 +mainwinPlayStatusX=18 +mainwinPlayStatusY=28 +mainwinVisX=18 +mainwinVisY=49 +mainwinTextX=98 +mainwinTextY=27 +mainwinTextWidth=167 +mainwinInfobarX=98 +mainwinInfobarY=43 +mainwinVolumeX=98 +mainwinVolumeY=57 +mainwinBalanceX=174 +mainwinBalanceY=57
--- a/Skins/Default/viscolor.txt Wed Oct 24 10:41:53 2007 +0300 +++ b/Skins/Default/viscolor.txt Fri Nov 16 05:36:42 2007 +0200 @@ -1,24 +1,24 @@ -0,0,0 // [background color 1] -0,0,0 // [background color 2] -9,13,15 -19,26,31 -29,39,47 -39,52,63 -49,65,79 -59,78,95 -69,91,111 -79,105,127 -88,118,143 -98,131,159 -108,144,175 -118,157,191 -128,170,207 -138,183,223 -148,196,239 -158,210,255 -240,240,240 // [osc 1] -220,220,220 // [osc 2] -170,170,170 // [osc 3] -100,100,100 // [osc 4] -20,20,20 // [osc 5] -200,200,220 // [peak color] +8,8,8 // 0 = black (background color #1) +8,8,8 // 1 = grey (background color #2) +8,8,8 // 2 +8,58,116 // 3 +8,8,8 // 4 +8,66,132 // 5 +8,8,8 // 6 +8,74,148 // 7 +8,8,8 // 8 +8,82,164 // 9 +8,8,8 // 10 +8,92,184 // 11 +8,8,8 // 12 +8,104,208 // 13 +8,8,8 // 14 +8,116,232 // 15 +8,8,8 // 16 +8,128,255 // 17 = bottom of spec +0,128,255 // 18 = osc 1 (brightest) +0,104,208 // 19 = osc 2 +0,80,160 // 20 = osc 3 +0,56,112 // 21 = osc 4 +0,32,64 // 22 = osc 5 (dimmest) +200,200,200
--- a/buildsys.mk.in Wed Oct 24 10:41:53 2007 +0300 +++ b/buildsys.mk.in Fri Nov 16 05:36:42 2007 +0200 @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, Jonathan Schleifer <js@h3c.de> +# Copyright (c) 2007, Jonathan Schleifer <js-buildsys@webkeks.org> # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -43,6 +43,7 @@ LIB_LDFLAGS = @LIB_LDFLAGS@ LIB_PREFIX = @LIB_PREFIX@ LIB_SUFFIX = @LIB_SUFFIX@ +LIBDIR ?= ${libdir} PLUGIN_CPPFLAGS = @PLUGIN_CPPFLAGS@ PLUGIN_CFLAGS = @PLUGIN_CFLAGS@ PLUGIN_LDFLAGS = @PLUGIN_LDFLAGS@ @@ -203,7 +204,7 @@ 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}; \
--- a/configure.ac Wed Oct 24 10:41:53 2007 +0300 +++ b/configure.ac Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([audacious], [1.4.0], [bugs+audacious@atheme.org]) +AC_INIT([audacious], [1.4.1], [bugs+audacious@atheme.org]) AC_PREREQ([2.59]) AC_CANONICAL_HOST @@ -87,8 +87,8 @@ dnl Check for GTK/GLib/GThread/Pango -PKG_CHECK_MODULES(GTK, [glib-2.0 >= 2.10.0 gtk+-2.0 >= 2.6.0 gthread-2.0 pango], - [ADD_PC_REQUIRES([glib-2.0 >= 2.10.0, gtk+-2.0 >= 2.6.0])], +PKG_CHECK_MODULES(GTK, [glib-2.0 >= 2.10.0 gtk+-2.0 >= 2.10.0 gthread-2.0 pango], + [ADD_PC_REQUIRES([glib-2.0 >= 2.10.0, gtk+-2.0 >= 2.10.0])], [AC_MSG_ERROR([Cannot find glib2/gtk2/pango])] )
--- a/m4/buildsys.m4 Wed Oct 24 10:41:53 2007 +0300 +++ b/m4/buildsys.m4 Fri Nov 16 05:36:42 2007 +0200 @@ -1,5 +1,5 @@ dnl -dnl Copyright (c) 2007, Jonathan Schleifer <js@h3c.de> +dnl Copyright (c) 2007, Jonathan Schleifer <js-buildsys@webkeks.org> dnl dnl Permission to use, copy, modify, and/or distribute this software for any dnl purpose with or without fee is hereby granted, provided that the above @@ -106,8 +106,8 @@ PLUGIN_CFLAGS='-fPIC' PLUGIN_LDFLAGS='-shared -fPIC' 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
--- a/po/ChangeLog Wed Oct 24 10:41:53 2007 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1211 +0,0 @@ - -Wed Nov 26 09:20:47 SGT 2003 Chong Kai Xiong <descender@phreaker.net> - - * Makefile.in.in: New file, from gettext-0.12.1. - - * en@boldquot.header: New file, from gettext-0.12.1. - - * en@quot.header: New file, from gettext-0.12.1. - -Fri Aug 8 17:12:10 CEST 2003 Håvard Kvålen <havardk@xmms.org> - - * sl.po: New translation by Tadej Panjtar <panjtar@email.si> - - * LINGUAS: Add "sl" (Slovenian). - -Wed Jul 16 01:41:20 CEST 2003 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated. - -Mon Jul 14 00:34:06 CEST 2003 Håvard Kvålen <havardk@xmms.org> - - * en.po: New "translation". The only things that are translated - are non-ascii characters. - - * LINGUAS: Add "en". - -Sat Jul 5 02:18:03 CEST 2003 Håvard Kvålen <havardk@xmms.org> - - * LINGUAS: Add Belarusian (be) and Welsh (cy). - - * cy.po: New translation by: - Rhoslyn Prys <rhoslyn.prys@meddal.org.uk> - - * be.po: New translation by: Smaliakou Zmicer <damaviku@pisem.net> - - * pt.po: Updated translation by Jorge Costa <Jorgercosta@netc.pt> - - * uk.po: Updated translation by - Dmytro Koval'ov <kov@tokyo.email.ne.jp> - -Tue Jan 7 23:43:10 CET 2003 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by Hiroshi Takekawa <sian@big.or.jp>. - -Wed Dec 11 23:17:10 CET 2002 Håvard Kvålen <havardk@xmms.org> - - * zh_TW.po: Updated translation by - Chun-Chung Chen <cjj@u.washington.edu> - -Fri Nov 22 22:10:48 BRST 2002 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Sun Oct 27 20:17:45 CET 2002 Håvard Kvålen <havardk@xmms.org> - - * ca.po: Updated translation by - Albert Astals Cid <astals11@terra.es> - - * ro.po: Updated translation by Miºu Moldovan <dumol@go.ro> - - * no.po: Updated translation. - -Wed Sep 11 11:25:37 CEST 2002 Håvard Kvålen <havardk@xmms.org> - - * nl.po: Fixed two errors that new gettext's would abort on. - -Tue Jul 30 23:24:12 BRT 2002 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Some language names were missing the ':'. - -Tue Jul 30 23:04:05 BRT 2002 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Mon Jul 29 12:56:24 CEST 2002 Håvard Kvålen <havardk@xmms.org> - - * ru.po: Updated translation by - Alexandr P. Kovalenko <never@nevermind.kiev.ua> - - * nl.po: Updated translation by Bart Coppens <coppensbart@pi.be> - -Tue May 21 02:09:36 BRT 2002 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Sun May 12 17:41:35 CEST 2002 Håvard Kvålen <havardk@xmms.org> - - * mk.po: New translation by Stojcev Darko <atom1c@linux.net.mk> - -Mon May 6 16:50:28 CEST 2002 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated translation by - Terje Bjerkelia <terje@bjerkelia.com> - -Wed Apr 10 15:19:22 CEST 2002 Håvard Kvålen <havardk@xmms.org> - - * ru.po: Updated translation by - Alexandr P. Kovalenko <never@nevermind.kiev.ua> - -Tue Mar 26 15:20:20 CET 2002 Håvard Kvålen <havardk@xmms.org> - - * cs.po: One string updated. - Patch by Martin Macok <martin.macok@underground.cz> - -2002-03-14 Christian Rose <menthos@menthos.com> - - * sv.po: Changed Swedish translation. - -Tue Mar 5 15:47:41 CET 2002 Håvard Kvålen <havardk@xmms.org> - - * es.po: Updated translation by - Jordi Mallach <jordi@sindominio.net> - -2002-03-03 Christian Rose <menthos@menthos.com> - - * sv.po: Changed Swedish translation. - -2002-03-02 Christian Rose <menthos@menthos.com> - - * sv.po: Updated Swedish translation. - -Mon Feb 11 13:08:44 CET 2002 Thomas Nilsson <thomas@xmms.org> - - * *.po: Updated copyright year. - -Fri Jan 25 18:48:08 CET 2002 Håvard Kvålen <havardk@xmms.org> - - * ru.po: Updated translation by - Alexandr P. Kovalenko <never@nevermind.kiev.ua> - -Thu Jan 24 19:48:47 BRST 2002 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Sun Jan 20 21:35:24 CET 2002 Håvard Kvålen <havardk@xmms.org> - - * ru.po: Updated translation by - Alexandr P. Kovalenko <never@nevermind.kiev.ua> - -2002-01-04 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated. - -Sat Dec 29 19:36:18 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * fr.po: Updated translation by - Arnaud Boissinot <arnaud.boissinot@wanadoo.fr> - -2001-12-29 Christian Rose <menthos@menthos.com> - - * POTFILES.in: Sorted. - * sv.po: Updated Swedish translation. - -Fri Dec 14 22:36:08 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * ro.po: Updated translation by - Miºu Moldovan <dumol@go.ro> - - * az.po: Updated translation by - Vasif Cabbarli <azerb_linux@hotmail.com> - -Tue Dec 11 23:44:35 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * uk.po: Updated translation by Dmytro Koval'ov - - * de.po: Updated translation by - Colin Marquardt <colin@marquardt-home.de> - - * ro.po: Updated translation by - Miºu Moldovan <dumol@go.ro> - - * tr.po: Updated translation by - Ömer Fadýl USTA <omer_fad@hotmail.com> - - * cs.po: Updated translation by - Radek Vybiral <Radek.Vybiral@vsb.cz> - - * hu.po: Updated translation by Arpad Biro <biro_arpad@yahoo.com> - - * th.po: Updated translation by - Supphachoke Suntiwichaya <webmaster@mrchoke.f2s.com> - -Sat Dec 8 12:08:22 BRST 2001 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Fixed inconsistencies in menu translation. - -Sat Dec 8 12:11:58 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * zh_TW.po: Updated translation by - Chun-Chung Chen <cjj@u.washington.edu> - - * el.po: Updated translation by - Thanos Kyritsis <djart@hellug.gr> - - * pl.po: Updated translation by - GNOME PL Team <translators@gnome.pl> - - * de.po: Updated translation by - Colin Marquardt <colin@marquardt-home.de> - - * hr.po: Updated translation by - Vlatko Kosturjak <kost@iname.com> - - * es.po: Updated translation by - Jordi Mallach <jordi@sindominio.net> - - * fr.po: Updated translation by - Arnaud Boissinot <arnaud.boissinot@wanadoo.fr> - - * gl.po: Updated translation by - Alberto García <berto@gpul.org> - - * nn.po: Updated translation by - Roy-Magne Mo <rmo@sunnmore.net> - -2001-12-07 Christian Rose <menthos@menthos.com> - - * sv.po: Updated Swedish translation. - -Tue Dec 4 19:42:25 BRST 2001 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -2001-12-03 Christian Rose <menthos@menthos.com> - - * sv.po: Updated Swedish translation. - -2001-11-27 Christian Rose <menthos@menthos.com> - - * sv.po: Updated Swedish translation. - -Thu Nov 15 22:06:11 BRST 2001 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Wed Nov 14 00:02:51 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Mon Nov 12 22:44:20 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - -Sat Nov 10 22:11:37 BRST 2001 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Sat Nov 10 18:46:14 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - - * pl.po: Updated translation by - GNOME PL Team <translators@gnome.pl> - -Wed Nov 7 01:26:26 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * th.po: New translation by - Supphachoke Suntiwichaya <webmaster@mrchoke.f2s.com> - -Fri Sep 21 10:57:54 BRT 2001 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Tue Sep 18 21:03:21 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * es.po: Updated translation by - Jordi Mallach <jordi@sindominio.net> - - * tr.po: Updated translation by - Ömer Fadýl USTA <omer_fad@hotmail.com> - - * sk.po: Updated translation by Jan Matis <damned@hq.sk> - - * lv.po: Updated translation by Juris Kudiòð <cooker@inbox.lv> - - * ko.po: Updated translation by Jaegeum <baedaron@hananet.net> - - * ga.po: Updated translation by - Alastair McKinstry <mckinstry@computer.org> - - * es.po: Updated translation by - Juan Manuel García Molina <juanmagm@mail.com> - - * da.po: Updated translation by Keld Simonsen <keld@dkuug.dk> - - * eu.po: New translation by - Iñigo Salvador Azurmendi <xalba@euskalnet.net> - - * tg.po: New translation by - Dilshod Marupov <abdula@khujandcomptech.dyn.tj> and - Roger Kovacs <rkovacs@khujandcomptech.dyn.tj> - - * vi.po: New translation by Trinh Minh Thanh <tmthanh@yahoo.com> - - * nn.po: Fixed one error. - -Tue Sep 18 00:28:00 BRT 2001 Juan Carlos C. y Castro <jcastro@vialink.com.br> - - * pt_BR.po: Updated translation. - -Sun Aug 26 19:20:02 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * nn.po: New translation by Roy-Magne Mo <rmo@sunnmore.net>. - -Sun Aug 19 19:07:04 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * sk.po: Updated translation by - Pavol Cvengros <orpheus@hq.alert.sk> - - * hu.po: Updated translation by - Arpad Biro <biro_arpad@yahoo.com> - - * es.po: Updated translation by - Juan Manuel García Molina <juanmagm@mail.com> - - * eo.po: Updated translation by - D. Dale Gulledge <dsplat@rochester.rr.com> - - * no.po: Updated translation by - Andreas Bergstrøm <abergstr@halden.net> - -Thu Jun 21 01:23:37 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * *.po: Update the bugreport url for all translations. - Patch by Thomas Nilsson <thomas@xmms.org>. - -Mon Jun 18 18:50:37 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - -Wed Jun 13 16:59:34 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * az.po, es.po, fr.po, ko.po, no.po, sk.po: Fixed some typos in - menus. - -Sun Jun 10 23:20:21 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * pl.po: Updated translation by - Grzegorz Kowal <g_kowal@poczta.onet.pl> - - * az.po, da.po, es.po, fr.po, ga.po, hr.po, ro.po, uk.po: Fixed - errors with menus. - - * no.po: Updated. - -Thu Jun 7 18:31:40 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * de.po: Updated translation by - Colin Marquardt <colin@marquardt-home.de> - -Wed Jun 6 14:15:09 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * hu.po: Commit the right version this time. Update by - Arpad Biro <biro_arpad@yahoo.com> - -Tue Jun 5 15:44:08 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated. - - * da.po: Updated translation by - Nikolaj Berg Amodsen <mr_nba@rapanden.dk> - - * zh_TW.po: File renamed from "zh_TW.Big5.po" and updated by - Chun-Chung Chen <cjj@u.washington.edu> and - Jouston Huang <jouston@housediy.com> - -Sun Jun 3 22:35:40 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * es.po: Updated translation by - Jordi Mallach <jordi@sindominio.net> - - * uk.po: Dmytro Kovalov <dmytro.kovalov@nssmb.com> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * hu.po: Updated translation by - Arpad Biro <biro_arpad@yahoo.com> - - * az.po: Updated translation by - Vasif Ismailoglu <azerb_linux@hotmail.com> - - * lt.po: Updated translation by - Gediminas Paulauskas <menesis@delfi.lt> - - * cs.po: Updated translation by - Radek Vybiral <Radek.Vybiral@vsb.cz> - - * hr.po: Updated translation by - Vlatko Kosturjak <kost@iname.com> - - * tr.po: Updated translation by - Ömer Fadýl USTA <omer_fad@hotmail.com> - - * ru.po: Updated translation by - Maxim Koshelev <chuchelo@krasu.ru> - - * gl.po: Updated translation by - Alberto García <berto@gpul.org> - - * ro.po: Updated translation by Misu Moldovan <dumol@go.ro> - - * sk.po: Updated translation by - Pavol Cvengros <orpheus@hq.alert.sk> - - * fr.po: Updated translation by - Arnaud Boissinot <arnaud.boissinot@wanadoo.fr> - - * ko.po: Updated translation by - Jaegeum Choe <baedaron@hananet.net> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - - * el.po: Updated translation by - Kyritsis Athanasios <djart@linux.gr> - -Wed May 9 00:52:48 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * *.po: Ran 'make update-po'. - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - -Tue Apr 10 17:29:14 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * bg.po: Updated translation by - Yovko D. Lambrev <yovko@sdf.lonestar.org> - - * az.po: Updated translation by - Vasif Ismailoglu <azerb_linux@hotmail.com> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - -Mon Mar 26 03:36:41 CEST 2001 Håvard Kvålen <havardk@xmms.org> - - * sr.po: New translation by Tomislav Jankovic_<tomaja@net.yu> - - * wa.po: Updated translation by - Pablo Saratxaga <pablo@mandrakesoft.com> - - * tr.po: Updated translation by - Ömer Fadýl USTA <omer_fad@hotmail.com> - - * ko.po: Updated translation by - Jaegeum Choe <baedaron@hananet.net> - - * id.po: Updated translation by Budi Rachmanto <rac@techie.com> - - * hr.po: Updated translation by Vlatko Kosturjak <kost@iname.com> - - * de.po: Updated translation by - Colin Marquardt <colin@marquardt-home.de> - - * az.po: Updated translation by - Vasif Ismailoglu <azerb_linux@hotmail.com> - -Tue Mar 20 17:08:41 EST 2001 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated translation. - -Tue Mar 20 01:22:44 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Tue Mar 13 22:00:03 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * pt.po: New translation by Jorge Costa <Jorgercosta@netc.pt> - -Fri Mar 9 01:47:22 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by - Fuad Sabanovic <manijak@telia.com> - - * sk.po: Updated translation by - Pavol Cvengros <orpheus@hq.alert.sk> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * lt.po: Updated translation by - Gediminas Paulauskas <menesis@delfi.lt> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * bg.po: Updated translation by - Yovko D. Lambrev <yovko@sdf.lonestar.org> - -Fri Mar 2 18:32:16 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * tr.po: Updated translation by - Ömer Fadýl USTA <omer_fad@hotmail.com> - - * ru.po: Updated translation by Valek Filippov <frob@df.ru> - - * pl.po: Updated translation by - Grzegorz Kowal <g_kowal@poczta.onet.pl> - - * id.po: New translation by Budi Rachmanto <rac@techie.com> - -Fri Feb 16 23:21:53 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * gl.po: Updated translation by Alberto García <berto@gpul.org> - - * wa.po: Updated translation by - Pablo Saratxaga <pablo@mandrakesoft.com> - - * tr.po: Updated translation by Nazmi Savga <savga@catlover.com> - - * no.po: Updated translation by - Terje Bjerkelia <terje@bjerkelia.com> - - * hr.po: Updated translation by Vlatko Kosturjak <kost@iname.com> - - * az.po: Updated traslation by - Vasif Ismailoglu <azerb_linux@hotmail.com> - -Wed Feb 7 20:34:54 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * hr.po: Updated translation by Vlatko Kosturjak <kost@iname.com> - - * de.po: Updated translation by - Colin Marquardt <colin@marquardt-home.de> - - * da.po: Updated translation by Keld Simonsen <keld@dkuug.dk> - - * cs.po: Updated translation by - Radek Vybiral <Radek.Vybiral@vsb.cz> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Thu Jan 4 21:54:46 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Tue Jan 2 00:19:16 CET 2001 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * ru.po: Updated translation by - Alexandr P. Kovalenko <never@nevermind.kiev.ua> - -Tue Dec 19 18:36:10 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ru.po: Updated translation by - Alexandr P. Kovalenko <never@nevermind.kiev.ua> - -Sun Dec 10 23:44:00 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * wa.po: Updated translation by - Pablo Saratxaga <pablo@mandrakesoft.com> - - * ru.po: Updated translation by - Aleksey Smirnov <smi@logic.ru> - - * ga.po: The charset was slightly wrong. - Fix by Pablo Saratxaga <pablo@mandrakesoft.com>. - - * es.po: Updated translation by - Fabian Mandelbaum <fabman@einstein.com.ar> - - * az.po: Converted to UTF-8. Supposed to work better. Thanks to - Pablo Saratxaga <pablo@mandrakesoft.com> - - * no.po: Updated translation by - Andreas Bergstrøm <abergstr(at)halden.net> - - * it.po: Fixed a couple of errors. One of them caused segfaults - with XMMS 1.2.4. - -Wed Nov 29 12:46:20 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * gl.po: New translation by Alberto García <berto@gpul.org> - -Mon Nov 27 15:17:08 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * es.po: Fixed a typo. - -Mon Nov 27 14:52:43 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ro.po: Updated translation by - Miºu Moldovan <dumol@go.ro> - - * sk.po: Updated translation by - Pavol Cvengros <orpheus@hq.alert.sk> - - * pl.po: Updated translation by - Grzegorz Kowal <g_kowal@poczta.onet.pl> - - * no.po: Updated translation by - Terje Bjerkelia <terje@bjerkelia.com> - - * lv.po: Updated translation by Vitauts Stochka <vit@dpu.lv> - - * cs.po: Updated translation by - Vladimír Marek <vlmarek@volny.cz> - - * ca.po: Updated translation by - Quico Llach <tradgnome@softcatala.org> - - * da.po: Some corrections by - Kenneth Christiansen <kenneth@gnu.org> and - Keld Simonsen <keld@dkuug.dk> - - * az.po: Updated translation by - Vasif Ismailoglu <azerb_linux@hotmail.com> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - - * it.po: Updated translation by Paolo Lorenzin <pasusu@tin.it> - -Tue Nov 21 23:22:02 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * uk.po: Updated translation by - Dmytro Koval'ov <kov@tokyo.email.ne.jp> - - * it.po: Updated translation by Paolo Lorenzin <pasusu@tin.it> - - * zh_TW.Big5.po: One correction. - -Tue Nov 21 01:34:15 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * zh_TW.Big5.po: Updated translation by - Chun-Chung Chen <cjj@u.washington.edu> - - * hu.po: Updated translation by - Arpad BIRO <biro_arpad@hotmail.com> - - * de.po: Updated translation by - Colin Marquardt <colin@marquardt-home.de> - - * da.po: Updated translation by - Nikolaj Berg Amondsen <mr_nba@get2net.dk> - -Sun Nov 19 17:08:16 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * lt.po: Updated translation by - Gediminas Paulauskas <menesis@delfi.lt> - -Fri Nov 17 14:39:39 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ko.po: Updated translation by - Man-Yong Lee <yong@linuxkorea.co.kr> - - * bg.po: Updated translation by - Yovko D. Lambrev <yovko@sdf.lonestar.org> - - * sv.po: Updated translation by - Christian Rose <menthos@menthos.com> - -Fri Nov 17 00:20:08 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * el.po: Updated translation by - Kyritsis Athanasios <djart@linux.gr> - -Wed Nov 8 22:07:11 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * tr.po: Updated translation by - Nazmi Savga <savga@catlover.com> - - * sv.po: Updated translations by - Christian Rose <menthos@menthos.com> - - * pl.po: Updated translation by - Grzegorz Kowal <g_kowal@poczta.onet.pl> - - * es.po: Updated translation by - Fabian Mandelbaum <fabman@einstein.com.ar> - - * az.po: Updated translation by - Vasif Ismailoglu <azerb_linux@hotmail.com> - - * zh_CN.GB2312.po: A missing slash was causing crashes on start. - -Wed Oct 25 18:41:51 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * uk.po: Updated translation by - Dmytro Koval'ov <kov@tokyo.email.ne.jp> - - * ja.po: Updated translation by - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Wed Oct 18 13:35:48 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * tr.po: New translation by Nazmi Savga <savga@catlover.com> - -Mon Oct 2 11:37:24 2000 Espen Skoglund <esk@ira.uka.de> - - * ja.po: Update strings for 3DNow! patch: - Osamu Kayasono <kayasono@mb.infoweb.ne.jp> - -Sun Oct 1 19:45:07 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * da.po: Updated translation by: - Nikolaj Berg Amondsen <mr_nba@get2net.dk> - - * ga.po: Updated translation by: - Alastair McKinstry <mckinstry@computer.org> - -Tue Sep 26 23:03:21 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * it.po: New translation by: Paolo Lorenzin <pasusu@tin.it> - - * az.po: New translation by: - Vasif Ismailoglu <azerb_linux@hotmail.com> - - * eo.po: Updated translation by: - D. Dale Gulledge <dsplat@rochester.rr.com> - - * sk.po: Updated translation by: - Pavol Cvengros <orpheus@hq.alert.sk> - -Tue Sep 26 00:40:31 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * ko.po: Updated translation by: - Byeong-Chan Kim <redhands@linux.sarang.net> - -Tue Sep 19 17:11:41 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * cs.po: Update by Vladimír Marek <vlmarek@volny.cz>. - -Mon Sep 18 02:03:32 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * lv.po: New translation by: Vitauts Stochka <vit@dpu.lv> - - * af.po: Updated translation by: - Schalk W. Cronjé <schalkc@ntaba.co.za> - - * nl.po: Updated translation by: - Tom Laermans <sidewinder@linuxfreak.com> - - * ga.po: Updated translaion by: - Alastair McKinstry <mckinstry@computer.org> - - * pl.po: Updated translation by: - Grzegorz Kowal <g_kowal@poczta.onet.pl> - - * ca.po: Updated translation by: - Quico Llach <tradgnome@softcatala.org> - - * zh_TW.Big5.po: Fixed two duplicate strings. - -Mon Sep 11 23:18:20 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * ga.po: New translation by: - Alastair McKinstry <mckinstry@computer.org> - - * zh_TW.Big5.po: Updated translation by: - Jouston Huang <jouston@housediy.com> and others. - - * zh_CN.GB2312.po: Updated translation by: - Danny Zeng <danny@zeng.com.cn> - - * wa.po: Updated translation by: - Pablo Saratxaga <pablo@mandrakesoft.com> - - * uk.po: Updated translation by: - Dmytro Kovalov <kov@tokyo.email.ne.jp> - - * ru.po: Updated translation by: - Maxim Koshelev <mdem@chat.ru> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - - * pl.po: Updated translation by: - Grzegorz Kowal <g_kowal@poczta.onet.pl> - - * no.po: Updated translation by: - Terje Bjerkelia <terje@bjerkelia.com> - - * lt.po: Updated translation by: - Gediminas Paulauskas <menesis@delfi.lt> - - * ja.po: Updated translation by: - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - - * hu.po: Updated translation by: - Arpad BIRO <biro_arpad@hotmail.com> - - * fr.po: Updated translation by: - Eric Fernandez-Bellot <fernandez@cgm.cnrs-gif.fr> - - * es.po: Updated translation by: - Fabian Mandelbaum <fabman@einstein.com.ar> - - * el.po: el_GR.po renamed to el.po. Also updated by: - Kyritsis Athanasios <djart@linux.gr> - - * de.po: Updated translation by: - Colin Marquardt <colin@marquardt-home.de> - - * cs.po: Updated translation by: - Radek Vybiral <Radek.Vybiral@vsb.cz> - - * bg.po: Updated translation by: - Yovko D. Lambrev <yovko@sdf.lonestar.org> - -Sun Sep 3 22:24:28 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by: - Christian Rose <menthos@menthos.com> - - * *.po: Ran 'make update-po'. - -Fri Aug 11 20:20:27 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by: - Christian Rose <menthos@menthos.com> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Wed Aug 9 23:54:22 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Wed Aug 9 16:47:33 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by: Thomas Nilsson <thomas@xmms.org> - -Mon Aug 7 17:38:26 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by: - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Fri Jul 28 18:39:18 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Fri Jul 14 01:24:03 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by: - Christian Rose <menthos@menthos.com> - -Tue Jul 4 19:21:59 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * bg.po: Updated translation by: - Yovko D. Lambrev <yovko@sdf.lonestar.org> - - * cs.po: Updated translation by: - Radek Vybiral <Radek.Vybiral@vsb.cz> - -Tue Jun 27 16:07:18 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * el_GR.po: New translation by: - Kyritsis Athanasios <djart@linux.gr> - - * pl.po: New translation by: - Grzegorz Kowal <g_kowal@poczta.onet.pl> - -Sat Jun 17 19:54:49 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sv.po: Updated translation by: Thomas Nilsson <thomas@xmms.org> - -Sat Jun 17 18:38:14 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * eo.po: New translation by: - D. Dale Gulledge <dsplat@rochester.rr.com> - - * hr.po, ja.po, ko.po, ru.po, sv.po, uk.po, wa.po, zh_TW.Big5.po, - zh_CN.GB2312.po: Various small fixes by Pablo Saratxaga - <pablo@mandrakesoft.com> - - * no.po: Updated translation by: - Terje Bjerkelia <terje@bjerkelia.com>. A couple of strings altered - by me. - -Tue Jun 13 23:40:15 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by: - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Mon Jun 12 16:56:55 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: One string added by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Mon Jun 12 15:39:23 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * *.po: Ran 'make update-po' and updated the copyright string from - about.c for all translations. - -Fri Jun 9 10:40:42 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * zh_CN.GB2312.po: Updated translation by: - Danny Zeng <danny@zeng.com.cn> - - * fr.po: Update which fixes a incorrect string (again). - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Wed May 31 00:58:34 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * cs.po: New translation by: Radek Vybiral <Radek.Vybiral@vsb.cz> - - * fr.po: Updated translation by: - Eric Fernandez-Bellot <fernandez@cgm.cnrs-gif.fr> - - * da.po: Updated translation by: - Nikolaj Berg Amondsen <mr_nba@get2net.dk> - - * ro.po: Updated translation by: - Florin Grad <florin@mandrakesoft.com> - - * es.po: Updated translation by: - Fabian Mandelbaum <fabman@einstein.com.ar> - - * sk.po: Updated translation by: - Jan Matis <damned@hq.alert.sk> - - * lt.po: Updated translation by: - Gediminas Paulauskas <menesis@delfi.lt> - - * hu.po: Updated tranlation by: - Arpad BIRO <biro_arpad@hotmail.com> - - * ca.po: Updated translation by: - Quico Llach <quico@softcatala.org> - - * af.po: Update translation by: - Schalk W. Cronjé <schalkc@ntaba.co.za> - -Tue May 30 01:50:32 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * de.po: Updated translation by: - Colin Marquardt <colin@marquardt-home.de> - -Mon May 22 22:10:54 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * fr.po: Updated translation by: - Eric Fernandez-Bellot <fernandez@cgm.cnrs-gif.fr> - - * wa.po: Updated translation by: - Pablo Saratxaga <pablo@mandrakesoft.com>, - Lucyin Mahin - - * bg.po: Updated translation by: - Yovko D. Lambrev <yovko@sdf.lonestar.org> - - * ca.po: Updated translation by: - Quico Llach <quico@softcatala.org> - - * uk.po: Updated translation by: - Dmytro Koval'ov <kov@tokyo.email.ne.jp> - - * hu.po: New translation by: Arpad BIRO <biro_arpad@hotmail.com> - - * af.po: New translation by: - Schalk W. Cronjé <schalkc@ntaba.co.za> - - * es.po: Updated translation by: - Fabian Mandelbaum <fabman@einstein.com.ar> - -Fri May 19 13:36:02 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sk.po: Updated translation by: Jan Matis <damned@hq.alert.sk> - - * lt.po: Updated translation by: - Gediminas Paulauskas <menesis@delfi.lt> - - * hr.po: Updated translation by: Vladimir Vuksan <vuksan@veus.hr> - -Tue May 9 00:05:04 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * uk.po: Updated translation by: - Dmytro Kovalov <kov@tokyo.email.ne.jp> - -Wed May 3 14:21:47 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * ro.po: New translation by: Florin Grad <florin@mandrakesoft.com> - - * hr.po: New translation by: Vladimir Vuksan <vuksan@veus.hr> - - * es.po: New translation by: - Fabian Mandelbaum <fabman@einstein.com.ar> - - * no.po: Fixed a typo that affected the Visualization menu. - -Wed Apr 12 13:55:01 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * da.po: Updated translation by: - Nikolaj Berg Amondsen <mr_nba@get2net.dk>, - Kenneth Christiansen, - Troels Liebe Bentsen <tlb@iname.com> - -Mon Apr 3 00:54:10 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * lt.po: New translation by: - Gediminas Paulauskas <menesis@delfi.lt> - - * sk.po: Updated translation by: Jan Matis <damned@hq.alert.sk> - -Thu Mar 30 00:42:05 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * zh_TW.Big5.po: Updated translation by: - Jouston Huang <jouston@housediy.com> - -Tue Mar 28 11:26:57 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * sk.po: New translation by: - TOMAS HORNICEK <dumber@hq.alert.sk>, - Jan Matis <damned@hq.alert.sk> - -Mon Mar 27 02:26:29 CEST 2000 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated translation by: - Terje Bjerkelia <terje@bjerkelia.com> - -Fri Mar 24 17:37:10 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * bg.po: Updated translation by: - Yovko D. Lambrev <yovko@sdf.lonestar.org> - - * ru.po: Updated translation by: Maxim Koshelev <mdem@chat.ru> - -Thu Mar 23 13:21:17 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * fr.po: One string corrected. Thanks to: - Guillaume Cottenceau <gc@mandrakesoft.com> - -Tue Mar 21 23:05:19 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * de.po: Updated translation by: - Colin Marquardt <colin@marquardt-home.de> - - * ja.po: Updated translation by: - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Mon Mar 20 23:27:51 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * bg.po: Updated translation by: - Yovko D. Lambrev <yovko@sdf.lonestar.org> - -Mon Mar 20 18:50:23 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ca.po: Updated translation by: - Quico Llach <quico@softcatala.org> - - * da.po: Updated translation by: - Nikolaj Berg Amondsen <mr_nba@get2net.dk> - - * zh_CN.GB2312.po: Updated translation by: - Danny Zeng <danny@zeng.com.cn> - -Sun Mar 19 01:36:19 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * wa.po: Updated translation by: - Pablo Saratxaga <pablo@mandrakesoft.com> - - * nl.po: New translation by: - Tom Laermans <sidewinder@linuxfreak.com> - - * da.po: New translation by: - Nikolaj Berg Amondsen <mr_nba@get2net.dk> - -Thu Mar 9 15:41:20 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ko.po: Updated translation by: - Byeong-Chan Kim <redhands@linux.sarang.net> - -Tue Mar 7 23:17:24 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ja.po: Updated translation by: - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Mon Mar 6 15:57:58 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated translation. - - * fr.po: Updated translation by: - Eric Fernandez-Bellot <fernandez@cgm.cnrs-gif.fr> - - * ca.po: Updated translation by: - Quico Llach <quico@softcatala.org> - -Sun Mar 5 00:20:11 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * uk.po: Updated translation by: - Dmytro Koval'ov <kov@tokyo.email.ne.jp> - - * de.po: Updated translation by: - Colin Marquardt <colin@marquardt-home.de> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Sat Feb 26 00:35:44 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ca.po: New translation by: Quico Llach <quico@softcatala.org> - - * bg.po: New translation by: - Yovko D. Lambrev <yovko@plov.omega.bg> - - * sv.po: New translation by: Olle Hällnäs <olle@xmms.org> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Thu Feb 17 10:50:41 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ko.po: Updated translation by: - Byeong-Chan Kim <redhands@linux.sarang.net> - -Wed Feb 16 22:19:51 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: Updated translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Wed Feb 16 02:09:22 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * no.po: Updated translation. - -Wed Feb 16 00:00:20 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * pt_BR.po: New translation by: - Juan Carlos Castro y Castro <jcastro@appi.com.br> - -Tue Feb 15 21:13:03 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ko.po: Updated translation by: - Byeong-Chan Kim <redhands@linux.sarang.net> - -Thu Feb 10 22:15:00 CET 2000 Håvard Kvålen <havardk@xmms.org> - - * ko.po: New translation by: - Sang-Jin Hwang <accel@accellinux.org>, - Updated by: Byeong-Chan Kim <redhands@linux.sarang.net> - -Thu Feb 10 14:14:48 CET 2000 Håvard Kvålen <havardk@sol.no> - - * ru.po: New translation by: Koshelev Maxim <mdem@chat.ru> - -Mon Feb 7 22:48:26 CET 2000 Håvard Kvålen <havardk@sol.no> - - * de.po: Updated translation by: - Colin Marquardt <colin@marquardt-home.de> - -Mon Feb 7 14:15:42 CET 2000 Håvard Kvålen <havardk@sol.no> - - * ja.po: New translation by: - Hiroshi Takekawa <takekawa@sr3.t.u-tokyo.ac.jp> - -Sun Feb 6 13:33:35 CET 2000 Håvard Kvålen <havardk@sol.no> - - * zh_CN.GB2312.po: Added translation by: - Jouston Huang <jouston@linuxfab.cx>, - Andrew Lee <andrew@cle.linux.org.tw>, - Chih-Wei Huang <cwhuang@linux.org.tw>. - - * zh_TW.Big5.po: Added translation by: - Jouston Huang <http://Linuxfab.cx> <jouston@linuxfab.cx>, - Andrew Lee <andrew@cle.linux.org.tw>, - Chih-Wei Huang <cwhuang@linux.org.tw>. - - * wa.po: Added translation by: - Pablo Saratxaga <srtxg@chanae.alphanet.ch> - - * uk.po: Added translation by: - "Dmytro Koval'ov" <kov@tokyo.email.ne.jp> - - * fr.po: Added translation by: - Eric Fernandez-Bellot <fernandez@cgm.cnrs-gif.fr> - - * de.po: Added translation by: - Colin Marquardt <colin@marquardt-home.de> -
--- a/po/bg.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/bg.po Fri Nov 16 05:36:42 2007 +0200 @@ -531,6 +531,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/br.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/br.po Fri Nov 16 05:36:42 2007 +0200 @@ -498,6 +498,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/ca.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/ca.po Fri Nov 16 05:36:42 2007 +0200 @@ -534,6 +534,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/cs.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/cs.po Fri Nov 16 05:36:42 2007 +0200 @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: audacious svn-4131\n" +"Project-Id-Version: audacious hg-3877\n" "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2007-10-13 14:15+0200\n" -"PO-Revision-Date: 2007-02-26 13:41+0100\n" +"POT-Creation-Date: 2007-11-01 16:25+0100\n" +"PO-Revision-Date: 2007-11-01 17:59+0100\n" "Last-Translator: Petr PÃsaÅ™ <petr.pisar@atlas.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "MIME-Version: 1.0\n" @@ -125,12 +125,11 @@ #: src/audacious/glade/prefswin.glade:1050 msgid "Select main player window font:" -msgstr "Font v hlavnÃm oknÄ› pÅ™ehrávaÄe:" +msgstr "Vyberte font pro hlavnà okno pÅ™ehrávaÄe:" #: src/audacious/glade/prefswin.glade:1072 -#, fuzzy msgid "Select playlist font:" -msgstr "Font v hlavnÃm oknÄ› pÅ™ehrávaÄe:" +msgstr "Vyberte font pro seznam skladeb:" #: src/audacious/glade/prefswin.glade:1112 msgid "" @@ -188,10 +187,12 @@ "If selected, the file information text in the main window will scroll back " "and forth. If not selected, the text will only scroll in one direction." msgstr "" +"Bude-li vybráno, text s informacemi o souboru v hlavnÃm oknÄ› bude bÄ›hat tam " +"a zpÄ›t. Nebude-li vybráno, text se bude pohybovat jen jednÃm smÄ›rem." #: src/audacious/glade/prefswin.glade:1380 msgid "Use two-way text scroller" -msgstr "" +msgstr "Pohybovat textem v obou smÄ›rech" #: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111 msgid "Appearance" @@ -429,7 +430,6 @@ msgstr "Velikost vyrovnávacà pamÄ›ti:" #: src/audacious/glade/prefswin.glade:3593 -#, fuzzy msgid "" "<span size=\"small\">This is the amount of time to prebuffer audio streams " "by, in milliseconds.\n" @@ -440,7 +440,7 @@ "<span size=\"small\">UrÄuje délku zvukového proudu v milisekundách, který " "bude pÅ™edpoÄÃtán do vyrovnávacà pamÄ›ti.\n" "Pokud máte problémy s pÅ™eskakovánÃm zvuku, zvyÅ¡te tuto hodnotu.\n" -"ProsÃm, vezmÄ›te na vÄ›domÃ, že pÅ™ÃliÅ¡ vysoké hodnoty mohou vézt ke zhorÅ¡enà " +"ProsÃm, vezmÄ›te na vÄ›domÃ, že pÅ™ÃliÅ¡ vysoké hodnoty mohou vést ke zhorÅ¡enà " "výkonu Audacious.</span>" #: src/audacious/glade/prefswin.glade:3663 @@ -465,7 +465,7 @@ "in a messier playlist, but delivers a major speed benefit." msgstr "" "Je-li zatrhnuto, Audacious bude rozpoznávat formát souboru, až bude potÅ™eba. " -"Toto může vézt k oÅ¡klivému seznamu skladeb, ale znaÄnÄ› urychluje jeho " +"Toto může vést k oÅ¡klivému seznamu skladeb, ale znaÄnÄ› urychluje jeho " "zpracovánÃ." #: src/audacious/glade/prefswin.glade:3937 @@ -480,7 +480,7 @@ msgstr "" "Je-li zatrhnuto, Audacious bude rozpoznávat formát souboru podle pÅ™Ãpony. " "Tento způsob je o nÄ›co pomalejÅ¡Ã než rozpoznávánà na požádánÃ, ale poskytuje " -"alespoň základnà úrověň rozpoznánà formátu. " +"alespoň základnà úroveň rozpoznánà formátu. " #: src/audacious/glade/prefswin.glade:3973 msgid "Detect file formats by extension." @@ -522,18 +522,30 @@ msgstr "s" #: src/audacious/glade/prefswin.glade:4249 -#, fuzzy msgid "<b>Sampling Rate Converter</b>" -msgstr "Vzorkovacà kmitoÄet" +msgstr "<b>Konvertor vzorkovacÃho kmitoÄtu</b>" #: src/audacious/glade/prefswin.glade:4289 -#, fuzzy msgid "Enable Sampling Rate Converter" -msgstr "Vzorkovacà kmitoÄet" +msgstr "Zapnout konvertor vzorkovacÃho kmitoÄtu" + +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" +"NejlepÅ¡Ã sinová interpolace\n" +"StÅ™ednà sinová interpolace\n" +"NejrychlejÅ¡Ã sinová interpolace\n" +"ZOH interpolace\n" +"Lineárnà interpolace" #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" -msgstr "" +msgstr "Způsob interpolace:" #: src/audacious/glade/prefswin.glade:4389 msgid "" @@ -541,31 +553,34 @@ "This should be the max supported sampling rate of\n" "the sound card or output plugin.</span>" msgstr "" +"<span size=\"small\">VÅ¡echny proudy budou pÅ™evedeny na tento vzorkovacà " +"kmitoÄet.\n" +"Ten by mÄ›l pÅ™edstavovat maximálnà vzorkovacà kmitoÄet zvukové karty " +"nebo výstupnÃho modulu.</span>" #: src/audacious/glade/prefswin.glade:4461 -#, fuzzy msgid "Sampling Rate [Hz]:" -msgstr "Vzorkovacà kmitoÄet" +msgstr "Vzorkovacà kmitoÄet [Hz]:" #: src/audacious/glade/prefswin.glade:4517 -#, fuzzy msgid "<b>Volume Control</b>" -msgstr "Ovládánà hlasitosti:" +msgstr "<b>Ovládánà hlasitosti</b>" #: src/audacious/glade/prefswin.glade:4556 msgid "" "Use software volume control. This may be useful for situations where your " "audio system does not support controlling the playback volume." msgstr "" +"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/glade/prefswin.glade:4558 msgid "Use software volume control" msgstr "Hlasitost nastavit softwarovÄ›" #: src/audacious/glade/prefswin.glade:4746 -#, fuzzy msgid "Reload Plugins" -msgstr "Moduly" +msgstr "Znovu naÄÃst moduly" #: src/audacious/glade/prefswin.glade:4807 msgid "Popup Information Settings" @@ -625,7 +640,7 @@ "Audacious allows you to alter the color balance of the skinned UI. The " "sliders below will allow you to do this." msgstr "" -"Audacious umožňuje zmÄ›nit zabarvenà oskinovaného uživatelského rozhranà " +"Audacious umožňuje zmÄ›nit zabarvenà vzhledu uživatelského rozhranà " "pomocà následujÃcÃch jezdců." #: src/audacious/glade/prefswin.glade:5359 @@ -661,7 +676,7 @@ #: src/audacious/logger.c:125 #, c-format msgid "Unable to create log file (%s)!\n" -msgstr "NepodaÅ™ilo se vytvoÅ™it prokolovacà soubor (%s)!\n" +msgstr "NepodaÅ™ilo se vytvoÅ™it protokolovacà soubor (%s)!\n" #: src/audacious/main.c:90 src/audacious/main.c:92 src/audacious/ui_main.c:491 #: src/audacious/ui_main.c:2466 @@ -808,6 +823,18 @@ "report:\n" "\n" msgstr "" +"\n" +"Audacious zachytil signál Ä. 11 (SIGSEGV).\n" +"\n" +"Omlouváme se za potÞe, ale Audacious zhavaroval.\n" +"Toto je chyba programu a za běžbých okolnostà by k nà nikdy nemÄ›lo dojÃt.\n" +"VaÅ¡e souÄasná konfigurace byla uložena a nemÄ›la by být poÅ¡kozena.\n" +"\n" +"I vy můžete pomoci zlepÅ¡it Audacious tÃm, že vyplnÃte chybové hlášenà na " +"http://bugs-meta.atheme.org\n" +"ProsÃm, zahrňte celý text této hlášky a popis toho, co jste dÄ›lali, když\n" +"doÅ¡lo k pádu. Pomůžete tÃm k rychlejÅ¡Ãmu odbavenà vaÅ¡ho chybového hlášenÃ:\n" +"\n" #: src/audacious/signals.c:80 msgid "" @@ -815,12 +842,17 @@ "Bugs can be reported at http://bugs-meta.atheme.org against the Audacious " "product.\n" msgstr "" +"\n" +"Chyby mohou být hlášeny na http://bugs-meta.atheme.org pod položkou\n" +"„Audacious product“.\n" #: src/audacious/signals.c:266 msgid "" "Your signaling implementation is broken.\n" "Expect unusable crash reports.\n" msgstr "" +"VaÅ¡e implementace signálů je rozbitá.\n" +"OÄekávejte nepoužitelné hlášenà o pádu.\n" #: src/audacious/strings.c:170 msgid " (invalid UTF-8)" @@ -837,17 +869,17 @@ "\n" "Copyright © 2005–2007 vývojový tým Audacious" -#: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:357 +#: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:358 #: src/audacious/ui_manager.c:391 src/audacious/ui_manager.c:392 msgid "About Audacious" msgstr "O Audacious" -#: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:400 +#: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:401 msgid "Credits" msgstr "Zásluhy" #: src/audacious/ui_credits.c:47 -#, fuzzy, c-format +#, c-format msgid "" "<big><b>Audacious %s</b></big>\n" "A skinned multimedia player for many platforms.\n" @@ -855,7 +887,7 @@ "Copyright (C) 2005-2007 Audacious Development Team\n" msgstr "" "<big><b>Audacious %s</b></big>\n" -"Budoucnost multimédià v UNIXu\n" +"PÅ™ehrávaÄ multimédià s mÄ›nitelným vzhledem a pro různé platformy\n" "\n" "Copyright © 2005–2007 vývojový tým Audacious\n" @@ -871,152 +903,151 @@ msgid "Default skin:" msgstr "Standardnà skin:" -#: src/audacious/ui_credits.c:81 +#: src/audacious/ui_credits.c:82 msgid "Plugin development:" msgstr "Vývoj zásuvných modulů:" -#: src/audacious/ui_credits.c:97 +#: src/audacious/ui_credits.c:98 msgid "Patch authors:" msgstr "AutoÅ™i záplat:" -#: src/audacious/ui_credits.c:117 +#: src/audacious/ui_credits.c:118 msgid "0.1.x developers:" msgstr "Vývojáři v. 0.1.x:" -#: src/audacious/ui_credits.c:123 +#: src/audacious/ui_credits.c:124 msgid "BMP Developers:" msgstr "Vývojáři Audacious:" -#: src/audacious/ui_credits.c:155 +#: src/audacious/ui_credits.c:156 msgid "Brazilian Portuguese:" msgstr "Brazilská portugalÅ¡tina:" -#: src/audacious/ui_credits.c:159 +#: src/audacious/ui_credits.c:160 msgid "Breton:" msgstr "BretonÅ¡tina:" -#: src/audacious/ui_credits.c:162 +#: src/audacious/ui_credits.c:163 msgid "Bulgarian:" msgstr "BulharÅ¡tina:" -#: src/audacious/ui_credits.c:165 -#, fuzzy +#: src/audacious/ui_credits.c:166 msgid "Catalan:" -msgstr "ItalÅ¡tina:" - -#: src/audacious/ui_credits.c:168 +msgstr "KatalánÅ¡tina:" + +#: src/audacious/ui_credits.c:169 msgid "Croatian:" msgstr "ChorvatÅ¡tina:" -#: src/audacious/ui_credits.c:171 +#: src/audacious/ui_credits.c:172 msgid "Czech:" msgstr "ÄŒeÅ¡tina:" -#: src/audacious/ui_credits.c:174 +#: src/audacious/ui_credits.c:175 msgid "Dutch:" msgstr "HolandÅ¡tina:" -#: src/audacious/ui_credits.c:178 +#: src/audacious/ui_credits.c:179 msgid "Finnish:" msgstr "FinÅ¡tina:" -#: src/audacious/ui_credits.c:181 +#: src/audacious/ui_credits.c:182 msgid "French:" msgstr "FrancouzÅ¡tina:" -#: src/audacious/ui_credits.c:185 +#: src/audacious/ui_credits.c:186 msgid "German:" msgstr "NÄ›mÄina:" -#: src/audacious/ui_credits.c:190 +#: src/audacious/ui_credits.c:191 msgid "Georgian:" msgstr "GruzÃnÅ¡tina:" -#: src/audacious/ui_credits.c:193 +#: src/audacious/ui_credits.c:194 msgid "Greek:" msgstr "ŘeÄtina:" -#: src/audacious/ui_credits.c:198 +#: src/audacious/ui_credits.c:199 msgid "Hindi:" msgstr "HindÅ¡tina:" -#: src/audacious/ui_credits.c:201 +#: src/audacious/ui_credits.c:202 msgid "Hungarian:" msgstr "MaÄarÅ¡tina:" -#: src/audacious/ui_credits.c:204 +#: src/audacious/ui_credits.c:205 msgid "Italian:" msgstr "ItalÅ¡tina:" -#: src/audacious/ui_credits.c:208 +#: src/audacious/ui_credits.c:209 msgid "Japanese:" msgstr "JaponÅ¡tina:" -#: src/audacious/ui_credits.c:211 +#: src/audacious/ui_credits.c:212 msgid "Korean:" msgstr "KorejÅ¡tina:" -#: src/audacious/ui_credits.c:214 +#: src/audacious/ui_credits.c:215 msgid "Lithuanian:" msgstr "LitevÅ¡tina:" -#: src/audacious/ui_credits.c:217 +#: src/audacious/ui_credits.c:218 msgid "Macedonian:" msgstr "MakedonÅ¡tina:" -#: src/audacious/ui_credits.c:220 +#: src/audacious/ui_credits.c:221 msgid "Polish:" msgstr "PolÅ¡tina:" -#: src/audacious/ui_credits.c:223 +#: src/audacious/ui_credits.c:224 msgid "Romanian:" msgstr "RumunÅ¡tina:" -#: src/audacious/ui_credits.c:227 +#: src/audacious/ui_credits.c:228 msgid "Russian:" msgstr "RuÅ¡tina:" -#: src/audacious/ui_credits.c:230 +#: src/audacious/ui_credits.c:231 msgid "Serbian (Latin):" msgstr "SrbÅ¡tina (latinka):" -#: src/audacious/ui_credits.c:233 +#: src/audacious/ui_credits.c:234 msgid "Serbian (Cyrillic):" msgstr "SrbÅ¡tina (cyrilice):" -#: src/audacious/ui_credits.c:236 +#: src/audacious/ui_credits.c:237 msgid "Simplified Chinese:" msgstr "ZjednoduÅ¡ená ÄÃnÅ¡tina:" -#: src/audacious/ui_credits.c:239 +#: src/audacious/ui_credits.c:240 msgid "Slovak:" msgstr "SlovenÅ¡tina:" -#: src/audacious/ui_credits.c:242 +#: src/audacious/ui_credits.c:243 msgid "Spanish:" msgstr "Å panÄ›lÅ¡tina:" -#: src/audacious/ui_credits.c:245 +#: src/audacious/ui_credits.c:246 msgid "Swedish:" msgstr "Å védÅ¡tina:" -#: src/audacious/ui_credits.c:248 +#: src/audacious/ui_credits.c:249 msgid "Traditional Chinese:" msgstr "TradiÄnà ÄÃnÅ¡tina:" -#: src/audacious/ui_credits.c:251 +#: src/audacious/ui_credits.c:252 msgid "Turkish:" msgstr "TureÄtina:" -#: src/audacious/ui_credits.c:255 +#: src/audacious/ui_credits.c:256 msgid "Ukrainian:" msgstr "UkrajinÅ¡tina:" -#: src/audacious/ui_credits.c:258 +#: src/audacious/ui_credits.c:259 msgid "Welsh:" msgstr "WelÅ¡tina:" -#: src/audacious/ui_credits.c:404 +#: src/audacious/ui_credits.c:405 msgid "Translators" msgstr "PÅ™ekladatelé" @@ -1111,9 +1142,8 @@ msgstr "_Filtr:" #: src/audacious/ui_jumptotrack.c:594 -#, fuzzy msgid "Close on Jump" -msgstr "ZavÅ™Ãt dialog pÅ™i otevÅ™enÃ" +msgstr "ZavÅ™Ãt pÅ™i skoku" #: src/audacious/ui_main.c:489 #, c-format @@ -1147,17 +1177,15 @@ #: src/audacious/ui_main.c:1228 msgid "Audacious - visibility warning" -msgstr "" +msgstr "Audacious – viditelnost varovánÃ" #: src/audacious/ui_main.c:1230 -#, fuzzy msgid "Show main player window" -msgstr "Font v hlavnÃm oknÄ› pÅ™ehrávaÄe:" +msgstr "Ukázat hlavnà okno pÅ™ehrávaÄe:" #: src/audacious/ui_main.c:1231 -#, fuzzy msgid "Ignore" -msgstr "žádný" +msgstr "Ignorovat" #: src/audacious/ui_main.c:1235 msgid "" @@ -1166,73 +1194,70 @@ "otherwise, you'll have to control it remotely via audtool or enabled plugins " "(such as the statusicon plugin)." msgstr "" +"Audacious byl spuÅ¡tÄ›n se vÅ¡emi okny skrytými.\n" +"Možná budete chtÃt kvůli ovládánà okno pÅ™ehrávaÄe opÄ›t zobrazit. V opaÄném " +"pÅ™ÃpadÄ› budete muset pÅ™ehrávaÄ ovládat vzdálenÄ› pomocà audtool nebo pomocà " +"zapnutého modulu (napÅ™. modulu statusicon [stavová ikona])." #: src/audacious/ui_main.c:1241 msgid "Always ignore, show/hide is controlled remotely" -msgstr "" +msgstr "Vždy ignorovat, ukázat/skrýt je ovládáno vzdálenÄ›" #: src/audacious/ui_main.c:1259 msgid "Enter location to play:" msgstr "Zadejte adresu, z které se má hrát:" #: src/audacious/ui_main.c:1504 -#, fuzzy, c-format +#, c-format msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" -msgstr "PŘEJÃT NA %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "PÅ™ejÃt na: %d:%-2.2d/%d:%-2.2d (%d %%)" #: src/audacious/ui_main.c:1536 -#, fuzzy, c-format +#, c-format msgid "Volume: %d%%" -msgstr "Hlasitost" +msgstr "Hlasitost %d %%" #: src/audacious/ui_main.c:1566 #, c-format msgid "Balance: %d%% left" -msgstr "" +msgstr "VyváženÃ: %d %% vlevo" #: src/audacious/ui_main.c:1570 msgid "Balance: center" -msgstr "" +msgstr "VyváženÃ: stÅ™ed" #: src/audacious/ui_main.c:1574 #, c-format msgid "Balance: %d%% right" -msgstr "" +msgstr "VyváženÃ: %d %% vpravo" #: src/audacious/ui_main.c:1916 -#, fuzzy msgid "Options Menu" -msgstr "NastavenÃ" +msgstr "NabÃdka s nastavenÃm" #: src/audacious/ui_main.c:1920 -#, fuzzy msgid "Disable 'Always On Top'" -msgstr "Vždy na vrchu" +msgstr "Vypnout „Vždy na vrchu“" #: src/audacious/ui_main.c:1922 -#, fuzzy msgid "Enable 'Always On Top'" -msgstr "Vždy na vrchu" +msgstr "Zapnout „Vždy na vrchu“" #: src/audacious/ui_main.c:1925 -#, fuzzy msgid "File Info Box" msgstr "Informace o souboru" #: src/audacious/ui_main.c:1929 -#, fuzzy msgid "Disable 'Doublesize'" -msgstr "Dvojitá velikost" +msgstr "Vypnout „Dvojitou velikost“" #: src/audacious/ui_main.c:1931 -#, fuzzy msgid "Enable 'Doublesize'" -msgstr "Dvojitá velikost" +msgstr "Zapnout „Dvojitou velikost“" #: src/audacious/ui_main.c:1934 -#, fuzzy msgid "Visualization Menu" -msgstr "Typ znázornÄ›nÃ" +msgstr "NabÃdka s typem znázornÄ›nÃ" #: src/audacious/ui_main.c:1982 msgid "" @@ -1485,7 +1510,7 @@ #: src/audacious/ui_manager.c:208 src/audacious/ui_manager.c:209 msgid "Select Next Playlist" -msgstr "Vybrat následujicà seznam skladeb" +msgstr "Vybrat následujÃcà seznam skladeb" #: src/audacious/ui_manager.c:211 src/audacious/ui_manager.c:212 msgid "Select Previous Playlist" @@ -1643,7 +1668,7 @@ #: src/audacious/ui_manager.c:293 msgid "Removes all entries from the playlist." -msgstr "Ze seznamu odstranà vÄ›echny skladby." +msgstr "Ze seznamu odstranà vÅ¡echny skladby." #: src/audacious/ui_manager.c:296 msgid "Remove Unselected" @@ -1699,7 +1724,7 @@ #: src/audacious/ui_manager.c:329 src/audacious/ui_manager.c:359 msgid "Sorts the list by full pathname." -msgstr "Skladby v seznmu seÅ™adà podle celé cesty." +msgstr "Skladby v seznamu seÅ™adà podle celé cesty." #: src/audacious/ui_manager.c:332 src/audacious/ui_manager.c:362 msgid "By Date" @@ -1730,18 +1755,16 @@ msgstr "SeÅ™adit vybrané" #: src/audacious/ui_manager.c:380 -#, fuzzy msgid "File" -msgstr "Oheň" +msgstr "Soubor" #: src/audacious/ui_manager.c:381 msgid "Help" msgstr "NápovÄ›da" #: src/audacious/ui_manager.c:383 -#, fuzzy msgid "Plugin Services" -msgstr "Moduly" +msgstr "Služby modulu" #: src/audacious/ui_manager.c:385 src/audacious/ui_manager.c:388 msgid "View Track Details" @@ -1768,9 +1791,8 @@ msgstr "PÅ™ehrát média z vybrané adresy" #: src/audacious/ui_manager.c:400 -#, fuzzy msgid "Plugin services" -msgstr "Moduly" +msgstr "Služby modulu" #: src/audacious/ui_manager.c:402 msgid "Preferences" @@ -1860,7 +1882,7 @@ #: src/audacious/ui_manager.c:446 msgid "Set equalizer preset levels to zero" -msgstr "Vynulovat pÅ™edovolby ekvalizéru" +msgstr "Vynulovat pÅ™edvolby ekvalizéru" #: src/audacious/ui_manager.c:448 msgid "From file" @@ -1939,14 +1961,12 @@ "vyhledat." #: src/audacious/ui_playlist.c:493 -#, fuzzy msgid "Title: " -msgstr "Název:" +msgstr "Název: " #: src/audacious/ui_playlist.c:500 -#, fuzzy msgid "Album: " -msgstr "Album:" +msgstr "Album: " #: src/audacious/ui_playlist.c:507 msgid "Artist: " @@ -1990,13 +2010,12 @@ "Neznámý typ souboru %s.\n" #: src/audacious/ui_playlist.c:911 -#, fuzzy msgid "Save as Static Playlist" -msgstr "Uložit seznam skladeb" +msgstr "Uložit statický seznam skladeb" #: src/audacious/ui_playlist.c:918 msgid "Use Relative Path" -msgstr "" +msgstr "PoužÃt relativnà cesty" #: src/audacious/ui_playlist.c:940 msgid "Load Playlist" @@ -2047,9 +2066,8 @@ msgstr "Komentář" #: src/audacious/ui_preferences.c:133 -#, fuzzy msgid "Codec" -msgstr "ZavÅ™Ãt" +msgstr "Kodek" #: src/audacious/ui_preferences.c:134 msgid "Quality" @@ -2071,7 +2089,7 @@ msgid "Category" msgstr "Kategorie" -#: src/audacious/ui_preferences.c:1963 +#: src/audacious/ui_preferences.c:1931 msgid "Preferences Window" msgstr "Okno nastavenÃ" @@ -2131,40 +2149,46 @@ msgid "Add/Open URL Dialog" msgstr "Dialog PÅ™idat/otevÅ™Ãt URL" -#~ msgid "Show window manager decorations" -#~ msgstr "Zobrazovat dekorace podle správce oken" - -#, fuzzy -#~ msgid "<b>Artist:</b> %s" -#~ msgstr "<i>UmÄ›lec</i>" - -#, fuzzy -#~ msgid "<b>Title:</b> %s" -#~ msgstr "<i>Název</i>" - -#, fuzzy -#~ msgid "<b>Album:</b> %s" -#~ msgstr "<i>Album</i>" - -#, fuzzy -#~ msgid "Audacious last.fm radio tuner" -#~ msgstr "Zobrazit editor seznamu skladeb" - -#, fuzzy -#~ msgid "Station:" -#~ msgstr "UmÃstÄ›nÃ:" - -#, fuzzy -#~ msgid "<b>Artist:</b>" -#~ msgstr "<i>UmÄ›lec</i>" - -#, fuzzy -#~ msgid "<b>Title:</b>" -#~ msgstr "<i>Název</i>" - -#, fuzzy -#~ msgid "<b>Album:</b>" -#~ msgstr "<i>Album</i>" +#~ 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>Soubory nelze pÅ™ehrát</big></b>\n" +#~ "\n" +#~ "NásledujÃcà soubory nelze pÅ™ehrát. Zkontrolujte zda:\n" +#~ "1. jsou pÅ™Ãstupné,\n" +#~ "2. máte povolené pÅ™ÃsluÅ¡né moduly." + +#~ msgid "Don't show this warning anymore" +#~ msgstr "PÅ™ÃÅ¡tÄ› již nevarovat" + +#~ msgid "Show more _details" +#~ msgstr "Ukaž podrobné _informace" + +#~ msgid "" +#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n" +#~ "Please use GTK+ %s or newer.\n" +#~ msgstr "" +#~ "Verze knihovny GTK+ (%d.%d.%d) nenà kompatibilnà s Audacious.\n" +#~ "Použijte GTK+ %s nebo novÄ›jÅ¡Ã.\n" + +#~ msgid "" +#~ "\n" +#~ "Received SIGSEGV\n" +#~ "\n" +#~ "This could be a bug in Audacious. If you don't know why this happened, " +#~ "file a bug at http://bugs-meta.atheme.org/\n" +#~ "\n" +#~ msgstr "" +#~ "\n" +#~ "Zachycen SIGSEGV\n" +#~ "\n" +#~ "Asi jste narazili na chybu v programu Audacious. Pokud netuÅ¡Ãte proÄ, " +#~ "nahlaste chybu (anglicky) na http://bugs-meta.atheme.org/\n" +#~ "\n" #~ msgid "VOLUME: %d%%" #~ msgstr "Hlasitost: %d%%" @@ -2178,17 +2202,26 @@ #~ msgid "BALANCE: %d%% RIGHT" #~ msgstr "VYROVNÃNÃ: %d%% VPRAVO" -#, fuzzy -#~ msgid "Last.fm radio" -#~ msgstr "Hrát z adresy" - -#, fuzzy -#~ msgid "Play Last.fm radio" -#~ msgstr "Hrát z adresy" - -#, fuzzy -#~ msgid "Converter Type:" -#~ msgstr "ZmÄ›nit znakovou sadu" +#~ msgid "OPTIONS MENU" +#~ msgstr "NASTAVENÃ" + +#~ msgid "DISABLE ALWAYS ON TOP" +#~ msgstr "ZAKÃZAT FCI „VŽDY NA VRCHU“" + +#~ msgid "ENABLE ALWAYS ON TOP" +#~ msgstr "POVOLIT FCI „VŽDY NA VRCHU“" + +#~ msgid "FILE INFO BOX" +#~ msgstr "INFORMACE O SOUBORU" + +#~ msgid "DISABLE DOUBLESIZE" +#~ msgstr "ZAKÃZAT DVOJITOU VELIKOST" + +#~ msgid "ENABLE DOUBLESIZE" +#~ msgstr "POVOLIT DVOJITOU VELIKOST" + +#~ msgid "VISUALIZATION MENU" +#~ msgstr "NASTAVENà ZOBRAZENÃ" #~ msgid "" #~ "<b><big>No playable CD found.</big></b>\n" @@ -2199,14 +2232,20 @@ #~ "\n" #~ "Nenà vloženo CD, nebo vložené CD nenà typu Audio CD.\n" +#~ msgid "Play CD" +#~ msgstr "PÅ™ehrát CD" + #~ msgid "Add CD..." #~ msgstr "PÅ™idat CD…" #~ msgid "Adds a CD to the playlist." #~ msgstr "PÅ™idá CD do seznamu skladeb" -#~ msgid "Play CD" -#~ msgstr "PÅ™ehrát CD" +#~ msgid "Track name: " +#~ msgstr "Název skladby: " + +#~ msgid "Album name: " +#~ msgstr "Název alba: " #~ msgid "Performer/Artist" #~ msgstr "Interpret/umÄ›lec" @@ -2229,73 +2268,8 @@ #~ msgid "%{n:...%}: Display \"...\" only if element %n is present" #~ msgstr "%{n:…%}: Zobraz „…“ pouze pokud %n nechybÃ" -#~ msgid "" -#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n" -#~ "Please use GTK+ %s or newer.\n" -#~ msgstr "" -#~ "Verze knihovny GTK+ (%d.%d.%d) nenà kompatibilnà s Audacious.\n" -#~ "Použijte GTK+ %s nebo novÄ›jÅ¡Ã.\n" - -#~ msgid "OPTIONS MENU" -#~ msgstr "NASTAVENÃ" - -#~ msgid "DISABLE ALWAYS ON TOP" -#~ msgstr "ZAKÃZAT FCI „VŽDY NA VRCHU“" - -#~ msgid "ENABLE ALWAYS ON TOP" -#~ msgstr "POVOLIT FCI „VŽDY NA VRCHU“" - -#~ msgid "FILE INFO BOX" -#~ msgstr "INFORMACE O SOUBORU" - -#~ msgid "DISABLE DOUBLESIZE" -#~ msgstr "ZAKÃZAT DVOJITOU VELIKOST" - -#~ msgid "ENABLE DOUBLESIZE" -#~ msgstr "POVOLIT DVOJITOU VELIKOST" - -#~ msgid "VISUALIZATION MENU" -#~ msgstr "NASTAVENà ZOBRAZENÃ" - -#~ msgid "Track name: " -#~ msgstr "Název skladby: " - -#~ msgid "Album name: " -#~ msgstr "Název alba: " - -#~ 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>Soubory nelze pÅ™ehrát</big></b>\n" -#~ "\n" -#~ "NásledujÃcà soubory nelze pÅ™ehrát. Zkontrolujte zda:\n" -#~ "1. jsou pÅ™Ãstupné,\n" -#~ "2. máte povolené pÅ™ÃsluÅ¡né moduly." - -#~ msgid "Don't show this warning anymore" -#~ msgstr "PÅ™ÃÅ¡tÄ› již nevarovat" - -#~ msgid "Show more _details" -#~ msgstr "Ukaž podrobné _informace" - -#~ 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" -#~ "Zachycen SIGSEGV\n" -#~ "\n" -#~ "Asi jste narazili na chybu v programu Audacious. Pokud netuÅ¡Ãte proÄ, " -#~ "nahlaste chybu (anglicky) na http://bugs-meta.atheme.org/\n" -#~ "\n" +#~ msgid "Show window manager decorations" +#~ msgstr "Zobrazovat dekorace podle správce oken" #~ msgid "Chinese:" #~ msgstr "ÄŒÃnský:" @@ -2533,6 +2507,15 @@ #~ msgid "Artist Popup" #~ msgstr "Vyskakovacà okno o umÄ›lci" +#~ msgid "<i>Title</i>" +#~ msgstr "<i>Název</i>" + +#~ msgid "<i>Artist</i>" +#~ msgstr "<i>UmÄ›lec</i>" + +#~ msgid "<i>Album</i>" +#~ msgstr "<i>Album</i>" + #~ msgid "<i>Genre</i>" #~ msgstr "<i>Žánr</i>" @@ -3025,6 +3008,9 @@ #~ msgid "Tag Handling" #~ msgstr "Zpracovánà tagů" +#~ msgid "Convert Character Set" +#~ msgstr "ZmÄ›nit znakovou sadu" + #~ msgid "Convert character set from :" #~ msgstr "ZmÄ›nit znakovou sadu z :" @@ -3918,6 +3904,9 @@ #~ msgid "Description:" #~ msgstr "Popis:" +#~ msgid "Location:" +#~ msgstr "UmÃstÄ›nÃ:" + #~ msgid "Version:" #~ msgstr "Verze:"
--- a/po/cy.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/cy.po Fri Nov 16 05:36:42 2007 +0200 @@ -513,6 +513,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Galluogi Dychweliad Graddfa Samplo" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/de.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/de.po Fri Nov 16 05:36:42 2007 +0200 @@ -4,7 +4,7 @@ "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" "POT-Creation-Date: 2007-10-13 14:15+0200\n" -"PO-Revision-Date: 2007-10-13 14:27+0100\n" +"PO-Revision-Date: 2007-10-27 13:29+0100\n" "Last-Translator: Michael Färber <0102@gmx.at>\n" "Language-Team: german <psic4t@netbands.de>\n" "MIME-Version: 1.0\n" @@ -21,8 +21,7 @@ msgstr "" "<b><big>Konnte %s nicht erstellen.</big></b>\n" "\n" -"Konnte die Glade-Datei nicht öffnen (%s). Bitte die Installation " -"überprüfen.\n" +"Konnte die Glade-Datei nicht öffnen (%s). Bitte die Installation überprüfen.\n" #: src/audacious/glade/fileinfo.glade:8 msgid "Track Information" @@ -96,7 +95,8 @@ msgid "<b>Effects</b>" msgstr "<b>Effekte</b>" -#: src/audacious/glade/prefswin.glade:693 src/audacious/ui_preferences.c:117 +#: src/audacious/glade/prefswin.glade:693 +#: src/audacious/ui_preferences.c:117 msgid "Plugins" msgstr "Plugins" @@ -129,12 +129,8 @@ msgstr "Schriftart für Playlist wählen:" #: src/audacious/glade/prefswin.glade:1112 -msgid "" -"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " -"strings." -msgstr "" -"Bitmap-Schriftarten benutzen, sofern vorhanden. Bitmap-Schriften " -"unterstützen kein Unicode." +msgid "Use bitmap fonts if they are available. Bitmap fonts do not support Unicode strings." +msgstr "Bitmap-Schriftarten benutzen, sofern vorhanden. Bitmap-Schriften unterstützen kein Unicode." #: src/audacious/glade/prefswin.glade:1114 msgid "Use Bitmap fonts if available" @@ -165,33 +161,23 @@ msgstr "Window-Manager-Dekoration anzeigen" #: src/audacious/glade/prefswin.glade:1342 -msgid "" -"This enables the XMMS/GTK1-style file selection dialogs. This selector is " -"provided by Audacious itself and is faster than the default GTK2 selector " -"(but sadly not as user-friendly)." -msgstr "" -"XMMS/GTK1-artigen Dateiauswahldialog aktivieren. Dieser wird von Audacious " -"zur Verfügung gestellt und ist schneller als derjenige von GTK2, dafür aber " -"nicht so benutzerfreundlich." +msgid "This enables the XMMS/GTK1-style file selection dialogs. This selector is provided by Audacious itself and is faster than the default GTK2 selector (but sadly not as user-friendly)." +msgstr "XMMS/GTK1-artigen Dateiauswahldialog aktivieren. Dieser wird von Audacious zur Verfügung gestellt und ist schneller als derjenige von GTK2, dafür aber nicht so benutzerfreundlich." #: src/audacious/glade/prefswin.glade:1344 msgid "Use XMMS-style file selector instead of the default selector" msgstr "Benutze XMMS-mäßige Dateiauswahl statt der standardmäßigen" #: src/audacious/glade/prefswin.glade:1378 -msgid "" -"If selected, the file information text in the main window will scroll back " -"and forth. If not selected, the text will only scroll in one direction." -msgstr "" -"Wenn aktiviert, wird der Dateiinformationstext im Hauptfenster vor und " -"zurück scrollen. Wenn deaktiviert, wird der Text nur in eine Richtung " -"scrollen." +msgid "If selected, the file information text in the main window will scroll back and forth. If not selected, the text will only scroll in one direction." +msgstr "Wenn aktiviert, wird der Dateiinformationstext im Hauptfenster vor und zurück scrollen. Wenn deaktiviert, wird der Text nur in eine Richtung scrollen." #: src/audacious/glade/prefswin.glade:1380 msgid "Use two-way text scroller" msgstr "Benutze Zweiweg-Textscroller" -#: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111 +#: src/audacious/glade/prefswin.glade:1422 +#: src/audacious/ui_preferences.c:111 msgid "Appearance" msgstr "Aussehen" @@ -215,7 +201,8 @@ msgid "Changes volume by" msgstr "Lautstärke verändern um" -#: src/audacious/glade/prefswin.glade:1701 src/audacious/ui_preferences.c:115 +#: src/audacious/glade/prefswin.glade:1701 +#: src/audacious/ui_preferences.c:115 msgid "Mouse" msgstr "Maus" @@ -249,9 +236,7 @@ #: src/audacious/glade/prefswin.glade:1971 msgid "Load metadata when adding the file to the playlist or opening it" -msgstr "" -"Metadaten laden, wenn eine Datei zur Wiedergabeliste hinzugefügt oder " -"geöffnet wird" +msgstr "Metadaten laden, wenn eine Datei zur Wiedergabeliste hinzugefügt oder geöffnet wird" #: src/audacious/glade/prefswin.glade:1973 msgid "On load" @@ -270,16 +255,8 @@ msgstr "Automatische Zeichensatzerkennung für:" #: src/audacious/glade/prefswin.glade:2070 -msgid "" -"List of character encodings used for fall back conversion of metadata. If " -"automatic character encoding detector failed or has been disabled, encodings " -"in this list would be treated as candidates of the encoding of metadata, and " -"fall back conversion from these encodings to UTF-8 would be attempted." -msgstr "" -"Alternativ für Metadaten verwendete Zeichensätze. Wenn die automatische " -"Erkennung des Zeichensatzes fehlgeschlagen oder deaktiviert ist, werden die " -"nachfolgend aufgelisteten Zeichensätze ausprobiert. Nach diesen wird dann " -"noch einmal probiert, von diesen Zeichensätzen nach UTF-8 zu dekodieren." +msgid "List of character encodings used for fall back conversion of metadata. If automatic character encoding detector failed or has been disabled, encodings in this list would be treated as candidates of the encoding of metadata, and fall back conversion from these encodings to UTF-8 would be attempted." +msgstr "Alternativ für Metadaten verwendete Zeichensätze. Wenn die automatische Erkennung des Zeichensatzes fehlgeschlagen oder deaktiviert ist, werden die nachfolgend aufgelisteten Zeichensätze ausprobiert. Nach diesen wird dann noch einmal probiert, von diesen Zeichensätzen nach UTF-8 zu dekodieren." #: src/audacious/glade/prefswin.glade:2094 msgid "Fallback character encodings:" @@ -290,12 +267,8 @@ msgstr "<b>Datei-Dialog</b>" #: src/audacious/glade/prefswin.glade:2189 -msgid "" -"Always refresh the file dialog (this will slow opening the dialog on large " -"directories, and Gnome VFS should handle automatically)." -msgstr "" -"Dateidialog immer aktualisieren (dies wird das Öffnen des Dialogs mit großen " -"Verzeichnissen langsamer machen, und Gnome VFS sollte das automatisch machen)" +msgid "Always refresh the file dialog (this will slow opening the dialog on large directories, and Gnome VFS should handle automatically)." +msgstr "Dateidialog immer aktualisieren (dies wird das Öffnen des Dialogs mit großen Verzeichnissen langsamer machen, und Gnome VFS sollte das automatisch machen)" #: src/audacious/glade/prefswin.glade:2191 msgid "Always refresh directory when opening file dialog" @@ -340,15 +313,8 @@ msgstr "<b>Popup-Information</b>" #: src/audacious/glade/prefswin.glade:2475 -msgid "" -"Toggles popup information window for the pointed entry in the playlist. The " -"window shows title of song, name of album, genre, year of publish, track " -"number, track length, and artwork." -msgstr "" -"Schaltet die Popup-Informationen ein und aus. Diese werden angezeigt, wenn " -"mit der Maus über einen Wiedergabelisteneintrag gefahren wird. Gezeigt " -"werden Titel, Album, Genre, Publikationsjahr, Titelnummer, Titellänge und " -"Cover-Bild." +msgid "Toggles popup information window for the pointed entry in the playlist. The window shows title of song, name of album, genre, year of publish, track number, track length, and artwork." +msgstr "Schaltet die Popup-Informationen ein und aus. Diese werden angezeigt, wenn mit der Maus über einen Wiedergabelisteneintrag gefahren wird. Gezeigt werden Titel, Album, Genre, Publikationsjahr, Titelnummer, Titellänge und Cover-Bild." #: src/audacious/glade/prefswin.glade:2477 msgid "Show popup information for playlist entries" @@ -358,8 +324,10 @@ msgid "Edit settings for popup information" msgstr "Einstellungen für Popup-Informationen bearbeiten" -#: src/audacious/glade/prefswin.glade:2553 src/audacious/ui_manager.c:203 -#: src/audacious/ui_playlist_manager.c:402 src/audacious/ui_preferences.c:116 +#: src/audacious/glade/prefswin.glade:2553 +#: src/audacious/ui_manager.c:203 +#: src/audacious/ui_playlist_manager.c:402 +#: src/audacious/ui_preferences.c:116 msgid "Playlist" msgstr "Wiedergabeliste" @@ -379,7 +347,8 @@ msgid "Available _Presets:" msgstr "Verfügbare Equalizer-_Voreinstellungen:" -#: src/audacious/glade/prefswin.glade:2921 src/audacious/ui_preferences.c:114 +#: src/audacious/glade/prefswin.glade:2921 +#: src/audacious/ui_preferences.c:114 msgid "Equalizer" msgstr "Equalizer" @@ -412,12 +381,8 @@ msgstr "Benutzername für Proxy:" #: src/audacious/glade/prefswin.glade:3354 -msgid "" -"<span size=\"small\">Changing these settings will require a restart of " -"Audacious.</span>" -msgstr "" -"<span size=\"small\">Das Ändern dieser Einstellungen benötigt einen Neustart " -"von Audacious.</span>" +msgid "<span size=\"small\">Changing these settings will require a restart of Audacious.</span>" +msgstr "<span size=\"small\">Das Ändern dieser Einstellungen benötigt einen Neustart von Audacious.</span>" #: src/audacious/glade/prefswin.glade:3493 msgid "<b>Audio System</b>" @@ -429,16 +394,12 @@ #: src/audacious/glade/prefswin.glade:3593 msgid "" -"<span size=\"small\">This is the amount of time to prebuffer audio streams " -"by, in milliseconds.\n" +"<span size=\"small\">This is the amount of time to prebuffer audio streams by, in milliseconds.\n" "Increase this value if you are experiencing audio skipping.\n" -"Please note however, that high values will result in Audacious performing " -"poorly.</span>" +"Please note however, that high values will result in Audacious performing poorly.</span>" msgstr "" -"<span size=\"small\">Dies ist die Grösse des Puffers für Audio-Streams, " -"angegeben in Millisekunden.\n" -"Dieser Wert sollte erhöht werden, wenn Unterbrechungen im Ton festgestellt " -"werden.\n" +"<span size=\"small\">Dies ist die Grösse des Puffers für Audio-Streams, angegeben in Millisekunden.\n" +"Dieser Wert sollte erhöht werden, wenn Unterbrechungen im Ton festgestellt werden.\n" "Hohe Werte können jedoch dazu führen, dass Audacious langsamer läuft.</span>" #: src/audacious/glade/prefswin.glade:3663 @@ -458,27 +419,16 @@ msgstr "<b>Formaterkennung</b>" #: src/audacious/glade/prefswin.glade:3935 -msgid "" -"When checked, Audacious will detect file formats on demand. This can result " -"in a messier playlist, but delivers a major speed benefit." -msgstr "" -"Falls aktiviert, wird Audacious Dateiformate nur bei Bedarf ermitteln. Dies " -"kann zu einer unordentlichen Wiedergabeliste führen, bringt gleichzeitig " -"aber eine beträchtliche Geschwindigkeitserhöhung." +msgid "When checked, Audacious will detect file formats on demand. This can result in a messier playlist, but delivers a major speed benefit." +msgstr "Falls aktiviert, wird Audacious Dateiformate nur bei Bedarf ermitteln. Dies kann zu einer unordentlichen Wiedergabeliste führen, bringt gleichzeitig aber eine beträchtliche Geschwindigkeitserhöhung." #: src/audacious/glade/prefswin.glade:3937 msgid "Detect file formats on demand, instead of immediately." msgstr "Dateiformate nicht sofort ermitteln, sondern nur bei Bedarf." #: src/audacious/glade/prefswin.glade:3971 -msgid "" -"When checked, Audacious will detect file formats based by extension. This is " -"slightly slower than detection on demand, but still provides a minimal level " -"of format detection." -msgstr "" -"Falls aktiviert, wird Audacious das Dateiformat anhand der Dateierweiterung " -"erkennen. Dies ist etwas langsamer als die Erkennung bei Bedarf, garantiert " -"aber trotzdem einen minimalen Grad an Format-Erkennung." +msgid "When checked, Audacious will detect file formats based by extension. This is slightly slower than detection on demand, but still provides a minimal level of format detection." +msgstr "Falls aktiviert, wird Audacious das Dateiformat anhand der Dateierweiterung erkennen. Dies ist etwas langsamer als die Erkennung bei Bedarf, garantiert aber trotzdem einen minimalen Grad an Format-Erkennung." #: src/audacious/glade/prefswin.glade:3973 msgid "Detect file formats by extension." @@ -489,11 +439,8 @@ msgstr "<b>Wiedergabe</b>" #: src/audacious/glade/prefswin.glade:4046 -msgid "" -"When Audacious starts, automatically begin playing from the point where we " -"stopped before." -msgstr "" -"Mit der Wiedergabe am letzten Ort starten, wenn Audacious gestartet wird." +msgid "When Audacious starts, automatically begin playing from the point where we stopped before." +msgstr "Mit der Wiedergabe am letzten Ort starten, wenn Audacious gestartet wird." #: src/audacious/glade/prefswin.glade:4048 msgid "Continue playback on startup" @@ -501,9 +448,7 @@ #: src/audacious/glade/prefswin.glade:4082 msgid "When finished playing a song, don't automatically advance to the next." -msgstr "" -"Nicht automatisch mit dem nächsten Titel fortfahren, wenn ein Titel zuende " -"gespielt wurde." +msgstr "Nicht automatisch mit dem nächsten Titel fortfahren, wenn ein Titel zuende gespielt wurde." #: src/audacious/glade/prefswin.glade:4084 msgid "Don't advance in the playlist" @@ -529,6 +474,20 @@ msgid "Enable Sampling Rate Converter" msgstr "Aktiviere Abtastfrequenz-Umwandler" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" +"Beste Sinc-Interpolation\n" +"Mittlere Sinc-Interpolation\n" +"Schnellste Sinc-Interpolation\n" +"ZOH-Interpolation\n" +"Lineare Interpolation" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr "Interpolations-Engine:" @@ -539,8 +498,7 @@ "This should be the max supported sampling rate of\n" "the sound card or output plugin.</span>" msgstr "" -"<span size=\"small\">Alle Streams werden in diese Abtastfrequenz " -"umgewandelt.\n" +"<span size=\"small\">Alle Streams werden in diese Abtastfrequenz umgewandelt.\n" "Sie sollte die maximal unterstützte Abtastfrequenz der\n" "Soundkarte oder des Ausgabe-Plugins sein.</span>" @@ -553,13 +511,8 @@ msgstr "<b>Lautstärkeregelung</b>" #: src/audacious/glade/prefswin.glade:4556 -msgid "" -"Use software volume control. This may be useful for situations where your " -"audio system does not support controlling the playback volume." -msgstr "" -"Benutze Software-Lautstärkeregelung. Das kann nützlich sein für den Fall, " -"dass das gewählte Audio-System die Kontrolle der Wiedergabelautstärke nicht " -"unterstützt." +msgid "Use software volume control. This may be useful for situations where your audio system does not support controlling the playback volume." +msgstr "Benutze Software-Lautstärkeregelung. Das kann nützlich sein für den Fall, dass das gewählte Audio-System die Kontrolle der Wiedergabelautstärke nicht unterstützt." #: src/audacious/glade/prefswin.glade:4558 msgid "Use software volume control" @@ -578,14 +531,8 @@ msgstr "<b>Cover-Bild finden</b>" #: src/audacious/glade/prefswin.glade:4856 -msgid "" -"While searching for the album's cover, Audacious looks for certain words in " -"the filename. You can specify those words in the lists below, separated " -"using commas." -msgstr "" -"Wenn Audacious das Titelbild sucht, sucht es nach bestimmten Worten im " -"Dateinamen. Diese können nachfolgend eingegeben werden, jeweils durch " -"Beistriche getrennt." +msgid "While searching for the album's cover, Audacious looks for certain words in the filename. You can specify those words in the lists below, separated using commas." +msgstr "Wenn Audacious das Titelbild sucht, sucht es nach bestimmten Worten im Dateinamen. Diese können nachfolgend eingegeben werden, jeweils durch Beistriche getrennt." #: src/audacious/glade/prefswin.glade:4911 msgid "Exclude:" @@ -624,12 +571,8 @@ msgstr "Farbanpassung" #: src/audacious/glade/prefswin.glade:5325 -msgid "" -"Audacious allows you to alter the color balance of the skinned UI. The " -"sliders below will allow you to do this." -msgstr "" -"Audacious erlaubt es, die Farbe der Oberfläche mit der Schiebeleiste unten " -"zu ändern." +msgid "Audacious allows you to alter the color balance of the skinned UI. The sliders below will allow you to do this." +msgstr "Audacious erlaubt es, die Farbe der Oberfläche mit der Schiebeleiste unten zu ändern." #: src/audacious/glade/prefswin.glade:5359 msgid "Blue" @@ -666,7 +609,9 @@ msgid "Unable to create log file (%s)!\n" msgstr "Konnte Logdatei nicht erstellen (%s)!\n" -#: src/audacious/main.c:90 src/audacious/main.c:92 src/audacious/ui_main.c:491 +#: src/audacious/main.c:90 +#: src/audacious/main.c:92 +#: src/audacious/ui_main.c:491 #: src/audacious/ui_main.c:2466 msgid "Audacious" msgstr "Audacious" @@ -756,27 +701,22 @@ msgid "" "<b><big>Unable to load skin.</big></b>\n" "\n" -"Check that skin at '%s' is usable and default skin is properly installed at " -"'%s'\n" +"Check that skin at '%s' is usable and default skin is properly installed at '%s'\n" msgstr "" "<b><big>Konnte Skin nicht laden.</big></b>\n" "\n" -"Bitte überprüfen, dass der Skin in '%s' benutzbar ist und der Standard-Skin " -"ordnungsgemäß in '%s' installiert wurde.\n" +"Bitte überprüfen, dass der Skin in '%s' benutzbar ist und der Standard-Skin ordnungsgemäß in '%s' installiert wurde.\n" #: src/audacious/main.c:1320 msgid "" "Sorry, threads isn't supported on your platform.\n" "\n" -"If you're on a libc5 based linux system and installed Glib & GTK+ before " -"you\n" +"If you're on a libc5 based linux system and installed Glib & GTK+ before you\n" "installed LinuxThreads you need to recompile Glib & GTK+.\n" msgstr "" "Tut uns Leid, aber Threads werden auf dieser Plattform nicht unterstützt.\n" "\n" -"Wenn dies ein libc5-basiertes Linux-System ist und Glib & GTK+ vor " -"LinuxThreads installiert wurden, müssen Glib und GTK+ erneut kompiliert " -"werden.\n" +"Wenn dies ein libc5-basiertes Linux-System ist und Glib & GTK+ vor LinuxThreads installiert wurden, müssen Glib und GTK+ erneut kompiliert werden.\n" #: src/audacious/main.c:1351 msgid "- play multimedia files" @@ -810,16 +750,12 @@ "Audacious has caught signal 11 (SIGSEGV).\n" "\n" "We apologize for the inconvenience, but Audacious has crashed.\n" -"This is a bug in the program, and should never happen under normal " -"circumstances.\n" +"This is a bug in the program, and should never happen under normal circumstances.\n" "Your current configuration has been saved and should not be damaged.\n" "\n" -"You can help improve the quality of Audacious by filing a bug at http://bugs-" -"meta.atheme.org\n" -"Please include the entire text of this message and a description of what you " -"were doing when\n" -"this crash occured in order to quickly expedite the handling of your bug " -"report:\n" +"You can help improve the quality of Audacious by filing a bug at http://bugs-meta.atheme.org\n" +"Please include the entire text of this message and a description of what you were doing when\n" +"this crash occured in order to quickly expedite the handling of your bug report:\n" "\n" msgstr "" "\n" @@ -840,8 +776,7 @@ #: src/audacious/signals.c:80 msgid "" "\n" -"Bugs can be reported at http://bugs-meta.atheme.org against the Audacious " -"product.\n" +"Bugs can be reported at http://bugs-meta.atheme.org against the Audacious product.\n" msgstr "" "\n" "Fehler in Audacious können bei http://bugs-meta.atheme.org gemeldet werden.\n" @@ -869,12 +804,15 @@ "\n" "Copyright (C) 2005-2007 Audacious-Enwicklerteam" -#: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:357 -#: src/audacious/ui_manager.c:391 src/audacious/ui_manager.c:392 +#: src/audacious/ui_about.c:125 +#: src/audacious/ui_credits.c:357 +#: src/audacious/ui_manager.c:391 +#: src/audacious/ui_manager.c:392 msgid "About Audacious" msgstr "Über Audacious" -#: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:400 +#: src/audacious/ui_about.c:174 +#: src/audacious/ui_credits.c:400 msgid "Credits" msgstr "Credits" @@ -1063,24 +1001,29 @@ msgid "Track Information Window" msgstr "Titel-Informationsfenster" -#: src/audacious/ui_fileinfopopup.c:252 src/audacious/ui_fileinfopopup.c:364 +#: src/audacious/ui_fileinfopopup.c:252 +#: src/audacious/ui_fileinfopopup.c:364 #: src/audacious/ui_preferences.c:125 msgid "Title" msgstr "Titel" -#: src/audacious/ui_fileinfopopup.c:255 src/audacious/ui_preferences.c:123 +#: src/audacious/ui_fileinfopopup.c:255 +#: src/audacious/ui_preferences.c:123 msgid "Artist" msgstr "Künstler" -#: src/audacious/ui_fileinfopopup.c:258 src/audacious/ui_preferences.c:124 +#: src/audacious/ui_fileinfopopup.c:258 +#: src/audacious/ui_preferences.c:124 msgid "Album" msgstr "Album" -#: src/audacious/ui_fileinfopopup.c:261 src/audacious/ui_preferences.c:127 +#: src/audacious/ui_fileinfopopup.c:261 +#: src/audacious/ui_preferences.c:127 msgid "Genre" msgstr "Genre" -#: src/audacious/ui_fileinfopopup.c:264 src/audacious/ui_preferences.c:131 +#: src/audacious/ui_fileinfopopup.c:264 +#: src/audacious/ui_preferences.c:131 msgid "Year" msgstr "Jahr" @@ -1092,7 +1035,8 @@ msgid "Track Length" msgstr "Titellänge:" -#: src/audacious/ui_fileinfopopup.c:373 src/audacious/ui_preferences.c:128 +#: src/audacious/ui_fileinfopopup.c:373 +#: src/audacious/ui_preferences.c:128 #: src/audacious/ui_preferences.c:420 msgid "Filename" msgstr "Dateiname" @@ -1125,7 +1069,8 @@ msgid "Un_queue" msgstr "Aus _Queue entfernen" -#: src/audacious/ui_jumptotrack.c:140 src/audacious/ui_jumptotrack.c:603 +#: src/audacious/ui_jumptotrack.c:140 +#: src/audacious/ui_jumptotrack.c:603 msgid "_Queue" msgstr "Zu _Queue hinzufügen" @@ -1154,15 +1099,18 @@ msgid "VBR" msgstr "VBR" -#: src/audacious/ui_main.c:761 src/audacious/ui_main.c:765 +#: src/audacious/ui_main.c:761 +#: src/audacious/ui_main.c:765 msgid "stereo" msgstr "stereo" -#: src/audacious/ui_main.c:761 src/audacious/ui_main.c:765 +#: src/audacious/ui_main.c:761 +#: src/audacious/ui_main.c:765 msgid "mono" msgstr "mono" -#: src/audacious/ui_main.c:1060 src/audacious/ui_manager.c:420 +#: src/audacious/ui_main.c:1060 +#: src/audacious/ui_manager.c:420 #: src/audacious/ui_manager.c:421 msgid "Jump to Time" msgstr "Zu Zeitpunkt springen" @@ -1190,14 +1138,10 @@ #: src/audacious/ui_main.c:1235 msgid "" "Audacious has been started with all of its windows hidden.\n" -"You may want to show the player window again to control Audacious; " -"otherwise, you'll have to control it remotely via audtool or enabled plugins " -"(such as the statusicon plugin)." +"You may want to show the player window again to control Audacious; otherwise, you'll have to control it remotely via audtool or enabled plugins (such as the statusicon plugin)." msgstr "" "Audacious wurde ohne sichtbare Fenster gestartet.\n" -"Wenn das Hauptfenster nicht wieder geöffnet wird, muss Audacious via audtool " -"oder durch aktivierte Plugins (wie das statusicon-Plugin) ferngesteuert " -"werden." +"Wenn das Hauptfenster nicht wieder geöffnet wird, muss Audacious via audtool oder durch aktivierte Plugins (wie das statusicon-Plugin) ferngesteuert werden." #: src/audacious/ui_main.c:1241 msgid "Always ignore, show/hide is controlled remotely" @@ -1279,68 +1223,84 @@ msgid "Error in Audacious." msgstr "Fehler in Audacious." -#: src/audacious/ui_manager.c:48 src/audacious/ui_manager.c:49 +#: src/audacious/ui_manager.c:48 +#: src/audacious/ui_manager.c:49 msgid "Autoscroll Songname" msgstr "Songname automatisch scrollen" # -s, --stop switch -#: src/audacious/ui_manager.c:51 src/audacious/ui_manager.c:52 +#: src/audacious/ui_manager.c:51 +#: src/audacious/ui_manager.c:52 msgid "Stop after Current Song" msgstr "Nach aktuellem Song stoppen" -#: src/audacious/ui_manager.c:54 src/audacious/ui_manager.c:55 +#: src/audacious/ui_manager.c:54 +#: src/audacious/ui_manager.c:55 msgid "Peaks" msgstr "Spitzen" -#: src/audacious/ui_manager.c:57 src/audacious/ui_manager.c:58 +#: src/audacious/ui_manager.c:57 +#: src/audacious/ui_manager.c:58 msgid "Repeat" msgstr "Wiederholen" -#: src/audacious/ui_manager.c:60 src/audacious/ui_manager.c:61 +#: src/audacious/ui_manager.c:60 +#: src/audacious/ui_manager.c:61 msgid "Shuffle" msgstr "Zufällige Wiedergabe" -#: src/audacious/ui_manager.c:63 src/audacious/ui_manager.c:64 +#: src/audacious/ui_manager.c:63 +#: src/audacious/ui_manager.c:64 msgid "No Playlist Advance" msgstr "In der Wiedergabeliste nicht weiterspringen" -#: src/audacious/ui_manager.c:66 src/audacious/ui_manager.c:67 +#: src/audacious/ui_manager.c:66 +#: src/audacious/ui_manager.c:67 msgid "Show Player" msgstr "Player zeigen" -#: src/audacious/ui_manager.c:69 src/audacious/ui_manager.c:70 +#: src/audacious/ui_manager.c:69 +#: src/audacious/ui_manager.c:70 msgid "Show Playlist Editor" msgstr "Wiedergabeliste zeigen" -#: src/audacious/ui_manager.c:72 src/audacious/ui_manager.c:73 +#: src/audacious/ui_manager.c:72 +#: src/audacious/ui_manager.c:73 msgid "Show Equalizer" msgstr "Equalizer zeigen" -#: src/audacious/ui_manager.c:75 src/audacious/ui_manager.c:76 +#: src/audacious/ui_manager.c:75 +#: src/audacious/ui_manager.c:76 msgid "Always on Top" msgstr "Immer im Vordergrund" -#: src/audacious/ui_manager.c:78 src/audacious/ui_manager.c:79 +#: src/audacious/ui_manager.c:78 +#: src/audacious/ui_manager.c:79 msgid "Put on All Workspaces" msgstr "Auf allen Arbeitsflächen anzeigen" -#: src/audacious/ui_manager.c:81 src/audacious/ui_manager.c:82 +#: src/audacious/ui_manager.c:81 +#: src/audacious/ui_manager.c:82 msgid "Roll up Player" msgstr "Player aufrollen" -#: src/audacious/ui_manager.c:84 src/audacious/ui_manager.c:85 +#: src/audacious/ui_manager.c:84 +#: src/audacious/ui_manager.c:85 msgid "Roll up Playlist Editor" msgstr "Wiedergabeliste aufrollen" -#: src/audacious/ui_manager.c:87 src/audacious/ui_manager.c:88 +#: src/audacious/ui_manager.c:87 +#: src/audacious/ui_manager.c:88 msgid "Roll up Equalizer" msgstr "Equalizer aufrollen" -#: src/audacious/ui_manager.c:90 src/audacious/ui_manager.c:91 +#: src/audacious/ui_manager.c:90 +#: src/audacious/ui_manager.c:91 msgid "DoubleSize" msgstr "Doppelte Grösse" -#: src/audacious/ui_manager.c:93 src/audacious/ui_manager.c:94 +#: src/audacious/ui_manager.c:93 +#: src/audacious/ui_manager.c:94 msgid "Easy Move" msgstr "Vereinfachtes Verschieben" @@ -1360,12 +1320,14 @@ msgid "Off" msgstr "Aus" -#: src/audacious/ui_manager.c:109 src/audacious/ui_manager.c:126 +#: src/audacious/ui_manager.c:109 +#: src/audacious/ui_manager.c:126 #: src/audacious/ui_manager.c:132 msgid "Normal" msgstr "Normal" -#: src/audacious/ui_manager.c:110 src/audacious/ui_manager.c:127 +#: src/audacious/ui_manager.c:110 +#: src/audacious/ui_manager.c:127 msgid "Fire" msgstr "Feuer" @@ -1417,23 +1379,28 @@ msgid "Eighth (~6 fps)" msgstr "Achtel (~6 fps)" -#: src/audacious/ui_manager.c:144 src/audacious/ui_manager.c:152 +#: src/audacious/ui_manager.c:144 +#: src/audacious/ui_manager.c:152 msgid "Slowest" msgstr "Am langsamsten" -#: src/audacious/ui_manager.c:145 src/audacious/ui_manager.c:153 +#: src/audacious/ui_manager.c:145 +#: src/audacious/ui_manager.c:153 msgid "Slow" msgstr "Langsam" -#: src/audacious/ui_manager.c:146 src/audacious/ui_manager.c:154 +#: src/audacious/ui_manager.c:146 +#: src/audacious/ui_manager.c:154 msgid "Medium" msgstr "Mittel" -#: src/audacious/ui_manager.c:147 src/audacious/ui_manager.c:155 +#: src/audacious/ui_manager.c:147 +#: src/audacious/ui_manager.c:155 msgid "Fast" msgstr "Schnell" -#: src/audacious/ui_manager.c:148 src/audacious/ui_manager.c:156 +#: src/audacious/ui_manager.c:148 +#: src/audacious/ui_manager.c:156 msgid "Fastest" msgstr "Am schnellsten" @@ -1449,23 +1416,28 @@ msgid "Playback" msgstr "Wiedergabe" -#: src/audacious/ui_manager.c:172 src/audacious/ui_manager.c:173 +#: src/audacious/ui_manager.c:172 +#: src/audacious/ui_manager.c:173 msgid "Play" msgstr "Wiedergeben" -#: src/audacious/ui_manager.c:175 src/audacious/ui_manager.c:176 +#: src/audacious/ui_manager.c:175 +#: src/audacious/ui_manager.c:176 msgid "Pause" msgstr "Pause" -#: src/audacious/ui_manager.c:178 src/audacious/ui_manager.c:179 +#: src/audacious/ui_manager.c:178 +#: src/audacious/ui_manager.c:179 msgid "Stop" msgstr "Stop" -#: src/audacious/ui_manager.c:181 src/audacious/ui_manager.c:182 +#: src/audacious/ui_manager.c:181 +#: src/audacious/ui_manager.c:182 msgid "Previous" msgstr "Zurück" -#: src/audacious/ui_manager.c:184 src/audacious/ui_manager.c:185 +#: src/audacious/ui_manager.c:184 +#: src/audacious/ui_manager.c:185 msgid "Next" msgstr "Vorwärts" @@ -1505,19 +1477,23 @@ msgid "Peaks Falloff" msgstr "Spitzen-Falloff" -#: src/audacious/ui_manager.c:205 src/audacious/ui_manager.c:206 +#: src/audacious/ui_manager.c:205 +#: src/audacious/ui_manager.c:206 msgid "New Playlist" msgstr "Neue Wiedergabeliste" -#: src/audacious/ui_manager.c:208 src/audacious/ui_manager.c:209 +#: src/audacious/ui_manager.c:208 +#: src/audacious/ui_manager.c:209 msgid "Select Next Playlist" msgstr "Nächste Wiedergabeliste wählen" -#: src/audacious/ui_manager.c:211 src/audacious/ui_manager.c:212 +#: src/audacious/ui_manager.c:211 +#: src/audacious/ui_manager.c:212 msgid "Select Previous Playlist" msgstr "Vorherige Wiedergabeliste wählen" -#: src/audacious/ui_manager.c:214 src/audacious/ui_manager.c:215 +#: src/audacious/ui_manager.c:214 +#: src/audacious/ui_manager.c:215 msgid "Delete Playlist" msgstr "Wiedergabeliste löschen" @@ -1588,12 +1564,8 @@ msgstr "Suchen und auswählen" #: src/audacious/ui_manager.c:253 -msgid "" -"Searches the playlist and selects playlist entries based on specific " -"criteria." -msgstr "" -"Durchsucht die Wiedergabeliste und selektiert Einträge anhand verschiedener " -"Kriterien" +msgid "Searches the playlist and selects playlist entries based on specific criteria." +msgstr "Durchsucht die Wiedergabeliste und selektiert Einträge anhand verschiedener Kriterien" #: src/audacious/ui_manager.c:256 msgid "Invert Selection" @@ -1639,7 +1611,8 @@ msgid "Remove Duplicates" msgstr "Duplikate entfernen" -#: src/audacious/ui_manager.c:280 src/audacious/ui_manager.c:316 +#: src/audacious/ui_manager.c:280 +#: src/audacious/ui_manager.c:316 #: src/audacious/ui_manager.c:346 msgid "By Title" msgstr "Nach Titel" @@ -1648,26 +1621,25 @@ msgid "Removes duplicate entries from the playlist by title." msgstr "Anhand des Titels doppelte Einträge aus der Wiedergabeliste löschen" -#: src/audacious/ui_manager.c:284 src/audacious/ui_manager.c:324 +#: src/audacious/ui_manager.c:284 +#: src/audacious/ui_manager.c:324 #: src/audacious/ui_manager.c:354 msgid "By Filename" msgstr "Nach Dateiname" #: src/audacious/ui_manager.c:285 msgid "Removes duplicate entries from the playlist by filename." -msgstr "" -"Anhand des Dateinamens doppelte Einträge aus der Wiedergabeliste entfernen" - -#: src/audacious/ui_manager.c:288 src/audacious/ui_manager.c:328 +msgstr "Anhand des Dateinamens doppelte Einträge aus der Wiedergabeliste entfernen" + +#: src/audacious/ui_manager.c:288 +#: src/audacious/ui_manager.c:328 #: src/audacious/ui_manager.c:358 msgid "By Path + Filename" msgstr "Nach Pfad & Dateinamen" #: src/audacious/ui_manager.c:289 msgid "Removes duplicate entries from the playlist by their full path." -msgstr "" -"Anhand des vollen Dateipfads doppelte Einträge aus der Wiedergabeliste " -"löschen" +msgstr "Anhand des vollen Dateipfads doppelte Einträge aus der Wiedergabeliste löschen" #: src/audacious/ui_manager.c:292 msgid "Remove All" @@ -1714,47 +1686,58 @@ msgid "Sort List" msgstr "Wiedergabeliste sortieren" -#: src/audacious/ui_manager.c:317 src/audacious/ui_manager.c:347 +#: src/audacious/ui_manager.c:317 +#: src/audacious/ui_manager.c:347 msgid "Sorts the list by title." msgstr "Wiedergabeliste nach dem Titel sortieren" -#: src/audacious/ui_manager.c:320 src/audacious/ui_manager.c:350 +#: src/audacious/ui_manager.c:320 +#: src/audacious/ui_manager.c:350 msgid "By Artist" msgstr "Nach Künstler" -#: src/audacious/ui_manager.c:321 src/audacious/ui_manager.c:351 +#: src/audacious/ui_manager.c:321 +#: src/audacious/ui_manager.c:351 msgid "Sorts the list by artist." msgstr "Wiedergabeliste nach Künstler sortieren" -#: src/audacious/ui_manager.c:325 src/audacious/ui_manager.c:355 +#: src/audacious/ui_manager.c:325 +#: src/audacious/ui_manager.c:355 msgid "Sorts the list by filename." msgstr "Wiedergabeliste nach Dateinamen sortieren" -#: src/audacious/ui_manager.c:329 src/audacious/ui_manager.c:359 +#: src/audacious/ui_manager.c:329 +#: src/audacious/ui_manager.c:359 msgid "Sorts the list by full pathname." msgstr "Wiedergabeliste nach vollem Pfadnamen sortieren" -#: src/audacious/ui_manager.c:332 src/audacious/ui_manager.c:362 +#: src/audacious/ui_manager.c:332 +#: src/audacious/ui_manager.c:362 msgid "By Date" msgstr "Nach Datum" -#: src/audacious/ui_manager.c:333 src/audacious/ui_manager.c:363 +#: src/audacious/ui_manager.c:333 +#: src/audacious/ui_manager.c:363 msgid "Sorts the list by modification time." msgstr "Wiedergabeliste nach Modifikationsdatum sortieren" -#: src/audacious/ui_manager.c:336 src/audacious/ui_manager.c:366 +#: src/audacious/ui_manager.c:336 +#: src/audacious/ui_manager.c:366 msgid "By Track Number" msgstr "Nach Titelnummer" -#: src/audacious/ui_manager.c:337 src/audacious/ui_manager.c:367 +#: src/audacious/ui_manager.c:337 +#: src/audacious/ui_manager.c:367 msgid "Sorts the list by track number." msgstr "Wiedergabeliste nach Titelnummer sortieren" -#: src/audacious/ui_manager.c:340 src/audacious/ui_manager.c:370 +#: src/audacious/ui_manager.c:340 +#: src/audacious/ui_manager.c:370 msgid "By Playlist Entry" msgstr "Nach Wiedergabelisteneintrag" -#: src/audacious/ui_manager.c:341 src/audacious/ui_manager.c:371 +#: src/audacious/ui_manager.c:341 +#: src/audacious/ui_manager.c:371 msgid "Sorts the list by playlist entry." msgstr "Wiedergabeliste nach Wiedergabelisteneintrag sortieren" @@ -1774,11 +1757,13 @@ msgid "Plugin Services" msgstr "Plugin-Dienste" -#: src/audacious/ui_manager.c:385 src/audacious/ui_manager.c:388 +#: src/audacious/ui_manager.c:385 +#: src/audacious/ui_manager.c:388 msgid "View Track Details" msgstr "Titel-Details anzeigen" -#: src/audacious/ui_manager.c:386 src/audacious/ui_manager.c:389 +#: src/audacious/ui_manager.c:386 +#: src/audacious/ui_manager.c:389 msgid "View track details" msgstr "Titel-Details anzeigen" @@ -1819,19 +1804,23 @@ msgid "Quit Audacious" msgstr "Audacious beenden" -#: src/audacious/ui_manager.c:408 src/audacious/ui_manager.c:409 +#: src/audacious/ui_manager.c:408 +#: src/audacious/ui_manager.c:409 msgid "Set A-B" msgstr "A-B setzen" -#: src/audacious/ui_manager.c:411 src/audacious/ui_manager.c:412 +#: src/audacious/ui_manager.c:411 +#: src/audacious/ui_manager.c:412 msgid "Clear A-B" msgstr "A-B löschen" -#: src/audacious/ui_manager.c:414 src/audacious/ui_manager.c:415 +#: src/audacious/ui_manager.c:414 +#: src/audacious/ui_manager.c:415 msgid "Jump to Playlist Start" msgstr "Zum Anfang der Wiedergabeliste springen" -#: src/audacious/ui_manager.c:417 src/audacious/ui_manager.c:418 +#: src/audacious/ui_manager.c:417 +#: src/audacious/ui_manager.c:418 msgid "Jump to File" msgstr "Zu Datei springen" @@ -1859,7 +1848,8 @@ msgid "Delete" msgstr "Löschen" -#: src/audacious/ui_manager.c:436 src/audacious/ui_manager.c:457 +#: src/audacious/ui_manager.c:436 +#: src/audacious/ui_manager.c:457 #: src/audacious/ui_manager.c:472 msgid "Preset" msgstr "Equalizer-Voreinstellung" @@ -1868,7 +1858,8 @@ msgid "Load preset" msgstr "Equalizer-Voreinstellung laden" -#: src/audacious/ui_manager.c:439 src/audacious/ui_manager.c:460 +#: src/audacious/ui_manager.c:439 +#: src/audacious/ui_manager.c:460 #: src/audacious/ui_manager.c:475 msgid "Auto-load preset" msgstr "Automatisch geladene Equalizer-Voreinstellung" @@ -1877,7 +1868,8 @@ msgid "Load auto-load preset" msgstr "Automatisch geladene Equalizer-Voreinstellung laden" -#: src/audacious/ui_manager.c:442 src/audacious/ui_manager.c:463 +#: src/audacious/ui_manager.c:442 +#: src/audacious/ui_manager.c:463 msgid "Default" msgstr "Standard" @@ -1958,17 +1950,8 @@ msgstr "Einträge in der aktiven Wiedergabeliste suchen" #: src/audacious/ui_playlist.c:485 -msgid "" -"Select entries in playlist by filling one or more fields. Fields use regular " -"expressions syntax, case-insensitive. If you don't know how regular " -"expressions work, simply insert a literal portion of what you're searching " -"for." -msgstr "" -"Wiedergabelisteneinträge können durch Ausfüllen von einem oder mehreren " -"Feldern auswählt werden. Die Felder benutzen reguläre Ausdrücke ohne " -"Beachtung der Gross- und Kleinschreibung. Falls der Umgang mit regulären " -"Ausdrücken nicht vertraut ist, kann auch einfach ein Suchbegriff eingegeben " -"werden." +msgid "Select entries in playlist by filling one or more fields. Fields use regular expressions syntax, case-insensitive. If you don't know how regular expressions work, simply insert a literal portion of what you're searching for." +msgstr "Wiedergabelisteneinträge können durch Ausfüllen von einem oder mehreren Feldern auswählt werden. Die Felder benutzen reguläre Ausdrücke ohne Beachtung der Gross- und Kleinschreibung. Falls der Umgang mit regulären Ausdrücken nicht vertraut ist, kann auch einfach ein Suchbegriff eingegeben werden." #: src/audacious/ui_playlist.c:493 msgid "Title: " @@ -2159,3 +2142,4 @@ #: src/audacious/ui_urlopener.c:88 msgid "Add/Open URL Dialog" msgstr "«URL hinzufügen/öffnen»-Fenster" +
--- a/po/el.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/el.po Fri Nov 16 05:36:42 2007 +0200 @@ -538,6 +538,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Ρυθμός δειγματοληψίας" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/es.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/es.po Fri Nov 16 05:36:42 2007 +0200 @@ -551,6 +551,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Tasa de muestreo" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/fi.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/fi.po Fri Nov 16 05:36:42 2007 +0200 @@ -529,6 +529,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Näytetaajuus:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/fr.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/fr.po Fri Nov 16 05:36:42 2007 +0200 @@ -10,7 +10,7 @@ "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" "POT-Creation-Date: 2007-10-13 14:15+0200\n" -"PO-Revision-Date: 2007-10-17 03:45+0100\n" +"PO-Revision-Date: 2007-10-27 10:18+0100\n" "Last-Translator: Stany Henry <StrassBoy@gmail.com>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -1120,7 +1120,7 @@ #: src/audacious/ui_main.c:1228 msgid "Audacious - visibility warning" -msgstr "Audacious - avertissement quant à la visibilité" +msgstr "Audacious - avertissement" #: src/audacious/ui_main.c:1230 msgid "Show main player window" @@ -1136,14 +1136,16 @@ "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 a démarré, mais toutes les fenêtres de l'interface sont cachées.\n" -"Peut-être voulez-vous voir à nouveau la fenêtre principale, afin de pouvoir\n" -"contrôler Audacious. Dans le cas contraire, vous devrez utiliser les commandes\n" -"distantes, par l'intermédiaire de 'audtool' ou des extensions activées\n" -"('statusicon', par exemple)." +"\n" +"Peut-être voulez-vous voir à nouveau la fenêtre principale, afin de pouvoir contrôler Audacious.\n" +"Dans le cas contraire, vous devrez utiliser les commandes distantes, par l'intermédiaire de 'audtool' ou des extensions activées (le module 'statusicon', par exemple).\n" +" " #: src/audacious/ui_main.c:1241 msgid "Always ignore, show/hide is controlled remotely" -msgstr "Toujours ignorer : la fonction 'montrer'/'cacher' est contrôlée de manière distante." +msgstr "" +"Toujours ignorer : la fonction 'montrer/cacher'\n" +"est contrôlée de manière distante." #: src/audacious/ui_main.c:1259 msgid "Enter location to play:" @@ -2071,6 +2073,7 @@ msgid "Description" msgstr "Description" +#: src/audacious/ui_preferences.c:1395 msgid "Category" msgstr "Catégorie" @@ -2133,4 +2136,3 @@ #: src/audacious/ui_urlopener.c:88 msgid "Add/Open URL Dialog" msgstr "Ouvrir/Ajouter un flux" -
--- a/po/hi.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/hi.po Fri Nov 16 05:36:42 2007 +0200 @@ -531,6 +531,15 @@ msgid "Enable Sampling Rate Converter" msgstr "सैमà¥à¤ªà¤² की दर:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/hr.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/hr.po Fri Nov 16 05:36:42 2007 +0200 @@ -532,6 +532,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/hu.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/hu.po Fri Nov 16 05:36:42 2007 +0200 @@ -530,6 +530,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/it.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/it.po Fri Nov 16 05:36:42 2007 +0200 @@ -541,6 +541,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/ja.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/ja.po Fri Nov 16 05:36:42 2007 +0200 @@ -533,6 +533,15 @@ msgid "Enable Sampling Rate Converter" msgstr "サンプリングレートコンãƒãƒ¼ã‚¿ã‚’有効ã«ã™ã‚‹" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr "インターãƒãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚¨ãƒ³ã‚¸ãƒ³:"
--- a/po/ka.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/ka.po Fri Nov 16 05:36:42 2007 +0200 @@ -529,6 +529,15 @@ msgid "Enable Sampling Rate Converter" msgstr "სემპლირების სიხშირე:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/ko.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/ko.po Fri Nov 16 05:36:42 2007 +0200 @@ -528,6 +528,15 @@ msgid "Enable Sampling Rate Converter" msgstr "샘플ë§ìœ¨:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/lt.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/lt.po Fri Nov 16 05:36:42 2007 +0200 @@ -527,6 +527,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Semplų dažnis:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/mk.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/mk.po Fri Nov 16 05:36:42 2007 +0200 @@ -533,6 +533,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/nl.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/nl.po Fri Nov 16 05:36:42 2007 +0200 @@ -538,6 +538,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/pl.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/pl.po Fri Nov 16 05:36:42 2007 +0200 @@ -539,6 +539,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Włącz konwersję częstotliwości próbkowania" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/pt_BR.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/pt_BR.po Fri Nov 16 05:36:42 2007 +0200 @@ -524,6 +524,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Ativar Conversor de Taxa de Amostragem" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr "Motor de interpolação:"
--- a/po/ro.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/ro.po Fri Nov 16 05:36:42 2007 +0200 @@ -528,6 +528,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Activează conversia ratei de eșantionare" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/ru.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/ru.po Fri Nov 16 05:36:42 2007 +0200 @@ -1,22 +1,26 @@ # Russian translation for Audacious. # Copyright (C) 2006,2007 Alexander Orlov <alxorlov@pochta.ru> # This file is distributed under the same license as the Audacious package. -# Alexander Orlov <alxorlov@pochta.ru>, 2007. # # За оÑнову взÑÑ‚ перевод Ð’Ð¸Ñ‚Ð°Ð»Ð¸Ñ Ð›Ð¸Ð¿Ð°Ñ‚Ð¾Ð²Ð° Ð´Ð»Ñ BMP. # Ð£Ð»ÑƒÑ‡ÑˆÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ²Ð¾Ð´Ð° приветÑтвуютÑÑ :) # +# Alexander Orlov <alxorlov@pochta.ru>, 2007. +# Vitaly Lipatov <lav@etersoft.ru>, 2007. +# msgid "" msgstr "" -"Project-Id-Version: audacious 1.3\n" +"Project-Id-Version: audacious 1.4\n" "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" "POT-Creation-Date: 2007-10-13 14:15+0200\n" -"PO-Revision-Date: 2007-04-12 21:52+0300\n" -"Last-Translator: Alexander Orlov <alxorlov@pochta.ru>\n" +"PO-Revision-Date: 2007-11-02 02:05+0300\n" +"Last-Translator: Vitaly Lipatov <lav@etersoft.ru>\n" "Language-Team: none\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" #: src/audacious/glade.c:45 #, c-format @@ -47,7 +51,7 @@ #: src/audacious/glade/fileinfo.glade:255 msgid "<span size=\"small\">Comment</span>" -msgstr "<span size=\"small\"><b>Коментарии</b></span>" +msgstr "<span size=\"small\"><b>Комментарии</b></span>" #: src/audacious/glade/fileinfo.glade:313 msgid "<span size=\"small\">Genre</span>" @@ -130,9 +134,8 @@ msgstr "Выбор шрифта Ð´Ð»Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ окна" #: src/audacious/glade/prefswin.glade:1072 -#, fuzzy msgid "Select playlist font:" -msgstr "Выбор шрифта Ð´Ð»Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ окна" +msgstr "Выбор шрифта Ð´Ð»Ñ ÑпиÑка воÑпроизведениÑ" #: src/audacious/glade/prefswin.glade:1112 msgid "" @@ -189,10 +192,12 @@ "If selected, the file information text in the main window will scroll back " "and forth. If not selected, the text will only scroll in one direction." msgstr "" +"ЕÑли выбрано, текÑÑ‚Ð¾Ð²Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ файле в главном окне будет прокручиватьÑÑ Ð²Ð·Ð°Ð´ и вперёд. " +"ЕÑли не выбрано, текÑÑ‚ прокручиваетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ в одном направлении." #: src/audacious/glade/prefswin.glade:1380 msgid "Use two-way text scroller" -msgstr "" +msgstr "Ð”Ð²ÑƒÐ½Ð°Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‚ÐºÐ° текÑта" #: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111 msgid "Appearance" @@ -306,7 +311,7 @@ #: src/audacious/glade/prefswin.glade:2191 msgid "Always refresh directory when opening file dialog" -msgstr "Ð’Ñевгда обновлÑÑ‚ÑŒ каталог при открытии окна выбора файлов" +msgstr "Ð’Ñегда обновлÑÑ‚ÑŒ каталог при открытии окна выбора файлов" #: src/audacious/glade/prefswin.glade:2225 msgid "<b>Song Display</b>" @@ -434,7 +439,6 @@ msgstr "Размер буфера:" #: src/audacious/glade/prefswin.glade:3593 -#, fuzzy msgid "" "<span size=\"small\">This is the amount of time to prebuffer audio streams " "by, in milliseconds.\n" @@ -445,7 +449,7 @@ "<span size=\"small\">Ðто Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ буферизации звуковых потоков, " "в миллиÑекундах.\n" "Увеличьте Ñто значение, еÑли при проигрывании звук прерываетÑÑ. \n" -"Учтите, что при Ñлишком больших значениÑÑ… Audacious будет работать медленно." +"Учтите, что при Ñлишком больших значениÑÑ… Audacious будет работать замедленно." "</span>" #: src/audacious/glade/prefswin.glade:3663 @@ -531,15 +535,24 @@ #: src/audacious/glade/prefswin.glade:4249 msgid "<b>Sampling Rate Converter</b>" -msgstr "" +msgstr "<b>Преобразование чаÑтоты диÑкретизации</b>" #: src/audacious/glade/prefswin.glade:4289 msgid "Enable Sampling Rate Converter" +msgstr "Включить преобразование чаÑтоты диÑкретизации" + +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" msgstr "" #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" -msgstr "" +msgstr "Ðлгоритм интерполÑции:" #: src/audacious/glade/prefswin.glade:4389 msgid "" @@ -547,30 +560,34 @@ "This should be the max supported sampling rate of\n" "the sound card or output plugin.</span>" msgstr "" +"<span size=\"small\">Ð’Ñе потоки будут преобразованы к Ñтой чаÑтоте\n" +"диÑкретизации, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° быть макÑимальной поддерживаемой\n" +"чаÑтотой звуковой карты или выходного модулÑ.</span>" #: src/audacious/glade/prefswin.glade:4461 msgid "Sampling Rate [Hz]:" -msgstr "" +msgstr "ЧаÑтота диÑкретизации [Гц]:" #: src/audacious/glade/prefswin.glade:4517 -#, fuzzy msgid "<b>Volume Control</b>" -msgstr "<b>КолеÑо мыши</b>" +msgstr "<b>Регулировка громкоÑти</b>" #: src/audacious/glade/prefswin.glade:4556 msgid "" "Use software volume control. This may be useful for situations where your " "audio system does not support controlling the playback volume." msgstr "" +"ИÑпользовать программное управление громкоÑтью. " +"Ðто может быть полезно, еÑли ваша Ð·Ð²ÑƒÐºÐ¾Ð²Ð°Ñ ÑиÑтема не поддерживает " +"управление громкоÑтью воÑпроизведениÑ." #: src/audacious/glade/prefswin.glade:4558 msgid "Use software volume control" -msgstr "" +msgstr "ÐŸÑ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð°Ñ Ñ€ÐµÐ³ÑƒÐ»Ð¸Ñ€Ð¾Ð²ÐºÐ° громкоÑти" #: src/audacious/glade/prefswin.glade:4746 -#, fuzzy msgid "Reload Plugins" -msgstr "Модули" +msgstr "Перезагрузить модули" #: src/audacious/glade/prefswin.glade:4807 msgid "Popup Information Settings" @@ -684,7 +701,7 @@ #: src/audacious/main.c:1066 msgid "Skip backwards in playlist" -msgstr "Перейти к предыдущей пеÑне в ÑпиÑке пеÑен" +msgstr "Перейти к предыдущей пеÑне в ÑпиÑке воÑпроизведениÑ" #: src/audacious/main.c:1067 msgid "Start playing current playlist" @@ -732,7 +749,7 @@ #: src/audacious/main.c:1078 msgid "Print all errors and warnings to stdout" -msgstr "Выводить вÑе ошибки и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñтандартный вывод" +msgstr "Выводить вÑе ошибки и Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² Ñтандартный вывод" #: src/audacious/main.c:1079 msgid "Show version and builtin features" @@ -813,6 +830,19 @@ "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" +"\n" #: src/audacious/signals.c:80 msgid "" @@ -820,12 +850,16 @@ "Bugs can be reported at http://bugs-meta.atheme.org against the Audacious " "product.\n" msgstr "" +"\n" +"Об ошибках в Audacious можно Ñообщить на http://bugs-meta.atheme.org .\n" #: src/audacious/signals.c:266 msgid "" "Your signaling implementation is broken.\n" "Expect unusable crash reports.\n" msgstr "" +"Ð ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÑиÑтемы Ñигналов некорректна.\n" +"Возможны беÑполезные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾ падении программы.\n" #: src/audacious/strings.c:170 msgid " (invalid UTF-8)" @@ -852,7 +886,7 @@ msgstr "Ðвторы" #: src/audacious/ui_credits.c:47 -#, fuzzy, c-format +#, c-format msgid "" "<big><b>Audacious %s</b></big>\n" "A skinned multimedia player for many platforms.\n" @@ -860,7 +894,7 @@ "Copyright (C) 2005-2007 Audacious Development Team\n" msgstr "" "<big><b>Audacious %s</b></big>\n" -"Мультимедийный проигрыватель будущего Ð´Ð»Ñ UNIX.\n" +"Многофункциональный мультимедийный проигрыватель Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… платформ.\n" "\n" "Copyright (C) 2005-2007 Команда разработчиков Audacious\n" @@ -905,9 +939,8 @@ msgstr "БолгарÑкий:" #: src/audacious/ui_credits.c:165 -#, fuzzy msgid "Catalan:" -msgstr "ИтальÑнÑкий:" +msgstr "КаталанÑкий:" #: src/audacious/ui_credits.c:168 msgid "Croatian:" @@ -1116,9 +1149,8 @@ msgstr "_Фильтр:" #: src/audacious/ui_jumptotrack.c:594 -#, fuzzy msgid "Close on Jump" -msgstr "Закрыть окно при Открытии" +msgstr "Закрыть поÑле" #: src/audacious/ui_main.c:489 #, c-format @@ -1152,16 +1184,15 @@ #: src/audacious/ui_main.c:1228 msgid "Audacious - visibility warning" -msgstr "" +msgstr "Audacious - предупреждение видимоÑти" #: src/audacious/ui_main.c:1230 -#, fuzzy msgid "Show main player window" -msgstr "Выбор шрифта Ð´Ð»Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ окна" +msgstr "Показывать главное окно проигрывателÑ" #: src/audacious/ui_main.c:1231 msgid "Ignore" -msgstr "" +msgstr "Игнорировать" #: src/audacious/ui_main.c:1235 msgid "" @@ -1170,71 +1201,70 @@ "otherwise, you'll have to control it remotely via audtool or enabled plugins " "(such as the statusicon plugin)." msgstr "" +"Audacious был запущен, но вÑе окна ÑпрÑтаны.\n" +"Ð”Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Audacious вам возможно потребуетÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ окно " +"Ð¿Ñ€Ð¾Ð¸Ð³Ñ€Ñ‹Ð²Ð°Ñ‚ÐµÐ»Ñ Ð²Ð½Ð¾Ð²ÑŒ; в противном Ñлучае вы можете управлÑÑ‚ÑŒ " +"им удалённо через audtool или дополнительный модуль (такой как statusicon). " #: src/audacious/ui_main.c:1241 msgid "Always ignore, show/hide is controlled remotely" -msgstr "" +msgstr "Ð’Ñегда игнорировать, показывать/прÑтать управлÑетÑÑ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ð¾" #: src/audacious/ui_main.c:1259 msgid "Enter location to play:" msgstr "Введите Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð²Ð¾ÑпроизведениÑ:" #: src/audacious/ui_main.c:1504 -#, fuzzy, c-format +#, c-format msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" -msgstr "ПЕРЕМЕЩЕÐИЕ: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "Перемещение: %d:%-2.2d/%d:%-2.2d (%d%%)" #: src/audacious/ui_main.c:1536 #, c-format msgid "Volume: %d%%" -msgstr "" +msgstr "ГромкоÑÑ‚ÑŒ: %d%%" #: src/audacious/ui_main.c:1566 #, c-format msgid "Balance: %d%% left" -msgstr "" +msgstr "БаланÑ: %d%% влево" #: src/audacious/ui_main.c:1570 msgid "Balance: center" -msgstr "" +msgstr "БаланÑ: центр" #: src/audacious/ui_main.c:1574 #, c-format msgid "Balance: %d%% right" -msgstr "" +msgstr "БаланÑ: %d%% вправо" #: src/audacious/ui_main.c:1916 msgid "Options Menu" -msgstr "" +msgstr "Меню параметров" #: src/audacious/ui_main.c:1920 -#, fuzzy msgid "Disable 'Always On Top'" -msgstr "ПоднÑÑ‚ÑŒ на передний план" +msgstr "Выключить \"Ð’Ñегда на переднем плане\"" #: src/audacious/ui_main.c:1922 -#, fuzzy msgid "Enable 'Always On Top'" -msgstr "ПоднÑÑ‚ÑŒ на передний план" +msgstr "Включить \"Ð’Ñегда на переднем плане\"" #: src/audacious/ui_main.c:1925 msgid "File Info Box" -msgstr "" +msgstr "Окно информации о файле" #: src/audacious/ui_main.c:1929 -#, fuzzy msgid "Disable 'Doublesize'" -msgstr "Двойной размер" +msgstr "Выключить \"Двойной размер\"" #: src/audacious/ui_main.c:1931 -#, fuzzy msgid "Enable 'Doublesize'" -msgstr "Двойной размер" +msgstr "Включить \"Двойной размер\"" #: src/audacious/ui_main.c:1934 -#, fuzzy msgid "Visualization Menu" -msgstr "Режим визуализации" +msgstr "Меню визуализации" #: src/audacious/ui_main.c:1982 msgid "" @@ -1427,7 +1457,7 @@ #: src/audacious/ui_manager.c:172 src/audacious/ui_manager.c:173 msgid "Play" -msgstr "ВоÑпроизведение" +msgstr "ВоÑпроизвеÑти" #: src/audacious/ui_manager.c:175 src/audacious/ui_manager.c:176 msgid "Pause" @@ -1733,18 +1763,16 @@ msgstr "Сортировать выбранные" #: src/audacious/ui_manager.c:380 -#, fuzzy msgid "File" -msgstr "ПламÑ" +msgstr "Файл" #: src/audacious/ui_manager.c:381 msgid "Help" -msgstr "" +msgstr "Справка" #: src/audacious/ui_manager.c:383 -#, fuzzy msgid "Plugin Services" -msgstr "Модули" +msgstr "Ð’Ñпомогательные модули" #: src/audacious/ui_manager.c:385 src/audacious/ui_manager.c:388 msgid "View Track Details" @@ -1771,9 +1799,8 @@ msgstr "ВоÑпроизвеÑти запиÑÑŒ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ адреÑа" #: src/audacious/ui_manager.c:400 -#, fuzzy msgid "Plugin services" -msgstr "Модули" +msgstr "Ð’Ñпомогательные модули" #: src/audacious/ui_manager.c:402 msgid "Preferences" @@ -1793,7 +1820,7 @@ #: src/audacious/ui_manager.c:408 src/audacious/ui_manager.c:409 msgid "Set A-B" -msgstr "ПоÑтавить метку A-B" +msgstr "ПоÑтавить метки A-B" #: src/audacious/ui_manager.c:411 src/audacious/ui_manager.c:412 msgid "Clear A-B" @@ -1942,14 +1969,12 @@ "чаÑÑ‚ÑŒ того, что вы ищете." #: src/audacious/ui_playlist.c:493 -#, fuzzy msgid "Title: " -msgstr "Ðазвание" +msgstr "Ðазвание: " #: src/audacious/ui_playlist.c:500 -#, fuzzy msgid "Album: " -msgstr "Ðльбом" +msgstr "Ðльбом: " #: src/audacious/ui_playlist.c:507 msgid "Artist: " @@ -1993,13 +2018,12 @@ "ÐеизвеÑтный формат файла '%s'.\n" #: src/audacious/ui_playlist.c:911 -#, fuzzy msgid "Save as Static Playlist" -msgstr "Сохранение ÑпиÑка воÑпроизведениÑ" +msgstr "Сохранить ÑтатичеÑкий ÑпиÑок воÑпроизведениÑ" #: src/audacious/ui_playlist.c:918 msgid "Use Relative Path" -msgstr "" +msgstr "ИÑпользовать отноÑительный путь" #: src/audacious/ui_playlist.c:940 msgid "Load Playlist" @@ -2051,12 +2075,11 @@ #: src/audacious/ui_preferences.c:133 msgid "Codec" -msgstr "" +msgstr "Кодек" #: src/audacious/ui_preferences.c:134 -#, fuzzy msgid "Quality" -msgstr "_Выход" +msgstr "КачеÑтво" #: src/audacious/ui_preferences.c:155 msgid "localhost" @@ -2133,178 +2156,3 @@ #: src/audacious/ui_urlopener.c:88 msgid "Add/Open URL Dialog" msgstr "Добавить/Открыть URL" - -#~ msgid "Show window manager decorations" -#~ msgstr "Показывать заголовки менеджера окон" - -#, fuzzy -#~ msgid "<b>Artist:</b> %s" -#~ msgstr "<b>ПредуÑтановки</b>" - -#, fuzzy -#~ msgid "<b>Title:</b> %s" -#~ msgstr "<b>Ðазвание файла</b>" - -#, fuzzy -#~ msgid "<b>Album:</b> %s" -#~ msgstr "Ðльбом" - -#, fuzzy -#~ msgid "Audacious last.fm radio tuner" -#~ msgstr "СпиÑок воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Audacious" - -#, fuzzy -#~ msgid "Station:" -#~ msgstr "ИтальÑнÑкий:" - -#, fuzzy -#~ msgid "<b>Artist:</b>" -#~ msgstr "<b>ПредуÑтановки</b>" - -#, 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 "Открыть адреÑ" - -#~ 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" - -#~ msgid "Add CD..." -#~ msgstr "Добавить CD..." - -#~ msgid "Adds a CD to the playlist." -#~ msgstr "ДобавлÑет запиÑи Ñ ÐºÐ¾Ð¼Ð¿Ð°ÐºÑ‚-диÑка в ÑпиÑок воÑпроизведениÑ." - -#~ 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 "Album 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 "Don't show this warning anymore" -#~ msgstr "Больше не показывать Ñто предупреждение" - -#~ msgid "Show more _details" -#~ msgstr "_Подробнее" - -#~ 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 "" -#~ "Включает прозрачноÑÑ‚ÑŒ ÑпиÑка воÑпроизведениÑ. Ðе рекомендуетÑÑ Ð´Ð»Ñ " -#~ "медленных машин потому что Ñто требует дополнительное процеÑÑорное Ð²Ñ€ÐµÐ¼Ñ " -#~ "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ кÑÑˆÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ð¹ необходимых Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð·Ñ€Ð°Ñ‡Ð½Ð¾Ñти." - -#~ msgid "Enable playlist transparency" -#~ msgstr "Прозрачный ÑпиÑок воÑпроизведениÑ"
--- a/po/sk.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/sk.po Fri Nov 16 05:36:42 2007 +0200 @@ -530,6 +530,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/sr.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/sr.po Fri Nov 16 05:36:42 2007 +0200 @@ -525,6 +525,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Укључи претварач учеÑталоÑти одабирања узорака" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/sr@Latn.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/sr@Latn.po Fri Nov 16 05:36:42 2007 +0200 @@ -526,6 +526,15 @@ msgid "Enable Sampling Rate Converter" msgstr "UkljuÄi pretvaraÄ uÄestalosti odabiranja uzoraka" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/sv.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/sv.po Fri Nov 16 05:36:42 2007 +0200 @@ -545,6 +545,15 @@ msgid "Enable Sampling Rate Converter" msgstr "Uppsamlingstakt:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/tr.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/tr.po Fri Nov 16 05:36:42 2007 +0200 @@ -530,6 +530,15 @@ msgid "Enable Sampling Rate Converter" msgstr "" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/po/uk.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/uk.po Fri Nov 16 05:36:42 2007 +0200 @@ -531,6 +531,15 @@ msgid "Enable Sampling Rate Converter" msgstr "ЧаÑтота:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 #, fuzzy msgid "Interpolation Engine:"
--- a/po/zh_CN.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/zh_CN.po Fri Nov 16 05:36:42 2007 +0200 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: Audacious\n" "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2007-10-13 14:15+0200\n" +"POT-Creation-Date: 2007-09-05 19:18+0200\n" "PO-Revision-Date: 2007-04-18 20:00+0700\n" "Last-Translator: Yang Zhang <zyangmath@gmail.com>\n" "Language-Team: Chinese/Simplified\n" @@ -93,191 +93,187 @@ msgid "<b>Effects</b>" msgstr "<b>效果</b>" -#: src/audacious/glade/prefswin.glade:693 src/audacious/ui_preferences.c:117 +#: src/audacious/glade/prefswin.glade:693 src/audacious/ui_manager.c:403 +#: src/audacious/ui_preferences.c:116 msgid "Plugins" msgstr "æ’件" -#: src/audacious/glade/prefswin.glade:758 +#: src/audacious/glade/prefswin.glade:746 msgid "<b>_Skin</b>" msgstr "<b>皮肤(_S)</b>" -#: src/audacious/glade/prefswin.glade:811 +#: src/audacious/glade/prefswin.glade:799 msgid "Refresh skin list" msgstr "刷新皮肤列表" -#: src/audacious/glade/prefswin.glade:926 +#: src/audacious/glade/prefswin.glade:893 msgid "<b>_Fonts</b>" msgstr "<b>å—体(_F)</b>" -#: src/audacious/glade/prefswin.glade:975 +#: src/audacious/glade/prefswin.glade:948 msgid "_Player:" msgstr "æ’放器(_P):" -#: src/audacious/glade/prefswin.glade:1018 +#: src/audacious/glade/prefswin.glade:991 msgid "_Playlist:" msgstr "æ’放列表(_P):" -#: src/audacious/glade/prefswin.glade:1050 +#: src/audacious/glade/prefswin.glade:1023 msgid "Select main player window font:" -msgstr "选择主窗å£å—体:" - -#: src/audacious/glade/prefswin.glade:1072 +msgstr "选择æ’放窗å£å—体:" + +#: src/audacious/glade/prefswin.glade:1045 #, fuzzy msgid "Select playlist font:" -msgstr "选择主窗å£å—体:" - -#: src/audacious/glade/prefswin.glade:1112 +msgstr "选择æ’放列表å—体:" + +#: src/audacious/glade/prefswin.glade:1091 msgid "" "Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " "strings." msgstr "如果å¯èƒ½ï¼Œåˆ™ä½¿ç”¨ç‚¹é˜µå—体。点阵å—体ä¸æ”¯æŒ Unicode å—符串。" -#: src/audacious/glade/prefswin.glade:1114 +#: src/audacious/glade/prefswin.glade:1093 msgid "Use Bitmap fonts if available" msgstr "如果å¯èƒ½åˆ™ä½¿ç”¨ç‚¹é˜µå—体" -#: src/audacious/glade/prefswin.glade:1161 +#: src/audacious/glade/prefswin.glade:1127 msgid "<b>_Miscellaneous</b>" msgstr "<b>æ‚项(_M)</b>" -#: src/audacious/glade/prefswin.glade:1202 +#: src/audacious/glade/prefswin.glade:1175 msgid "Show track numbers in playlist" msgstr "在æ’放列表ä¸æ˜¾ç¤ºç¼–å·" -#: src/audacious/glade/prefswin.glade:1237 +#: src/audacious/glade/prefswin.glade:1210 msgid "Show separators in playlist" msgstr "在æ’放列表ä¸æ˜¾ç¤ºåˆ†éš”符" -#: src/audacious/glade/prefswin.glade:1272 +#: src/audacious/glade/prefswin.glade:1245 msgid "Use custom cursors" -msgstr "ä½¿ç”¨è‡ªå®šå…‰æ ‡" - -#: src/audacious/glade/prefswin.glade:1306 +msgstr "ä½¿ç”¨è‡ªå®šä¹‰å…‰æ ‡" + +#: src/audacious/glade/prefswin.glade:1279 +#: src/audacious/glade/prefswin.glade:1290 msgid "This enables the window manager to show decorations for windows." msgstr "这个选项å¯ç”¨çª—å£ç®¡ç†å™¨æ˜¾ç¤ºçª—å£è£…饰。" -#: src/audacious/glade/prefswin.glade:1308 +#: src/audacious/glade/prefswin.glade:1281 msgid "Show window manager decoration" msgstr "显示窗å£ç®¡ç†å™¨è£…饰" -#: src/audacious/glade/prefswin.glade:1342 +#: src/audacious/glade/prefswin.glade:1289 +msgid "Show window manager decorations" +msgstr "显示窗å£ç®¡ç†å™¨è£…饰" + +#: src/audacious/glade/prefswin.glade:1319 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/GTK-1 æ ·å¼çš„文件选择对è¯æ¡†ã€‚该选择是 Audadious 自身æ供的,比默" -"认的 GTK2 选择器快(但å¯æƒœä¸å¦‚它对用户å‹å¥½)。" - -#: src/audacious/glade/prefswin.glade:1344 +"认的 GTK2 选择器快(但å¯æƒœå¯¹ç”¨æˆ·ä¸å¤ªå‹å¥½)。" + +#: src/audacious/glade/prefswin.glade:1321 msgid "Use XMMS-style file selector instead of the default selector" msgstr "使用 XMMS æ ·å¼çš„文件选择器" -#: src/audacious/glade/prefswin.glade:1378 -msgid "" -"If selected, the file information text in the main window will scroll back " -"and forth. If not selected, the text will only scroll in one direction." -msgstr "" - -#: src/audacious/glade/prefswin.glade:1380 -msgid "Use two-way text scroller" -msgstr "" - -#: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111 +#: src/audacious/glade/prefswin.glade:1363 src/audacious/ui_preferences.c:110 msgid "Appearance" msgstr "外观" -#: src/audacious/glade/prefswin.glade:1469 +#: src/audacious/glade/prefswin.glade:1410 msgid "<b>Mouse wheel</b>" msgstr "<b>é¼ æ ‡æ»šè½®</b>" -#: src/audacious/glade/prefswin.glade:1542 -msgid "lines" -msgstr "è¡Œ" - -#: src/audacious/glade/prefswin.glade:1595 -msgid "Scrolls playlist by" -msgstr "列表滑动" - -#: src/audacious/glade/prefswin.glade:1623 +#: src/audacious/glade/prefswin.glade:1458 +msgid "Changes volume by" +msgstr "调节音é‡" + +#: src/audacious/glade/prefswin.glade:1486 msgid "percent" msgstr "%" -#: src/audacious/glade/prefswin.glade:1651 -msgid "Changes volume by" -msgstr "调节音é‡" - -#: src/audacious/glade/prefswin.glade:1701 src/audacious/ui_preferences.c:115 +#: src/audacious/glade/prefswin.glade:1514 +msgid "Scrolls playlist by" +msgstr "列表滑动" + +#: src/audacious/glade/prefswin.glade:1567 +msgid "lines" +msgstr "è¡Œ" + +#: src/audacious/glade/prefswin.glade:1642 src/audacious/ui_preferences.c:114 msgid "Mouse" msgstr "é¼ æ ‡" -#: src/audacious/glade/prefswin.glade:1748 +#: src/audacious/glade/prefswin.glade:1689 msgid "<b>Filename</b>" msgstr "<b>文件å</b>" -#: src/audacious/glade/prefswin.glade:1788 +#: src/audacious/glade/prefswin.glade:1729 msgid "Convert underscores to blanks" msgstr "将下划线转æ¢æˆç©ºæ ¼" -#: src/audacious/glade/prefswin.glade:1823 +#: src/audacious/glade/prefswin.glade:1764 msgid "Convert %20 to blanks" msgstr "å°† %20 转æ¢æˆç©ºæ ¼" -#: src/audacious/glade/prefswin.glade:1858 +#: src/audacious/glade/prefswin.glade:1799 msgid "Convert backslash '\\' to forward slash '/'" msgstr "转æ¢åæ–œæ “\\â€ä¸ºæ£æ–œæ “/â€" -#: src/audacious/glade/prefswin.glade:1892 +#: src/audacious/glade/prefswin.glade:1833 msgid "<b>Metadata</b>" msgstr "<b>元数æ®</b>" -#: src/audacious/glade/prefswin.glade:1931 +#: src/audacious/glade/prefswin.glade:1872 msgid "Load metadata (tag information) from music files." msgstr "从文件ä¸èŽ·å–元数æ®(æ ‡ç¾ä¿¡æ¯)。" -#: src/audacious/glade/prefswin.glade:1933 +#: src/audacious/glade/prefswin.glade:1874 msgid "Load metadata from playlists and files" -msgstr "使用æ’放列表ä¸çš„元数æ®" - -#: src/audacious/glade/prefswin.glade:1971 +msgstr "从æ’放列表和文件ä¸è½½å…¥å…ƒæ•°æ®" + +#: src/audacious/glade/prefswin.glade:1912 msgid "Load metadata when adding the file to the playlist or opening it" -msgstr "æ‰“å¼€æ–‡ä»¶æˆ–è€…æŠŠæ–‡ä»¶åŠ å…¥åˆ—è¡¨æ—¶åŠ è½½åŽŸæ•°æ®" - -#: src/audacious/glade/prefswin.glade:1973 +msgstr "æ‰“å¼€æ–‡ä»¶æˆ–è€…æŠŠæ–‡ä»¶åŠ å…¥åˆ—è¡¨æ—¶è½½å…¥å…ƒæ•°æ®" + +#: src/audacious/glade/prefswin.glade:1914 msgid "On load" msgstr "装入时" -#: src/audacious/glade/prefswin.glade:1993 +#: src/audacious/glade/prefswin.glade:1934 msgid "Load metadata on demand when displaying the file in the playlist" -msgstr "当文件在列表ä¸æ˜¾ç¤ºæ—¶æ ¹æ®éœ€è¦åŠ 载原数æ®" - -#: src/audacious/glade/prefswin.glade:1995 +msgstr "当文件在列表ä¸æ˜¾ç¤ºæ—¶æ ¹æ®éœ€è¦åŠ 载元数æ®" + +#: src/audacious/glade/prefswin.glade:1936 msgid "On display" msgstr "显示时" -#: src/audacious/glade/prefswin.glade:2025 -msgid "Auto character encoding detector for:" -msgstr "使用自动编ç 检测器:" - -#: src/audacious/glade/prefswin.glade:2070 +#: src/audacious/glade/prefswin.glade:1966 +msgid "Fallback character encodings:" +msgstr "备用å—符编ç :" + +#: src/audacious/glade/prefswin.glade:1994 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/glade/prefswin.glade:2094 -msgid "Fallback character encodings:" -msgstr "缺çœå—符编ç :" - -#: src/audacious/glade/prefswin.glade:2150 +"元数æ®è½¬æ¢ä½¿ç”¨çš„备用å—符编ç 列表。如果自动编ç 转æ¢æ£€æµ‹å™¨å¤±è´¥æˆ–被ç¦ç”¨ï¼Œ" +"列表ä¸çš„ç¼–ç 将被作为元数æ®ç¼–ç 的候选,并将试图由æ¤è½¬æ¢åˆ° UTF-8。" + +#: src/audacious/glade/prefswin.glade:2035 +msgid "Auto character encoding detector for:" +msgstr "使用自动编ç 检测器:" + +#: src/audacious/glade/prefswin.glade:2091 msgid "<b>File Dialog</b>" msgstr "<b>文件对è¯æ¡†</b>" -#: src/audacious/glade/prefswin.glade:2189 +#: src/audacious/glade/prefswin.glade:2130 msgid "" "Always refresh the file dialog (this will slow opening the dialog on large " "directories, and Gnome VFS should handle automatically)." @@ -285,19 +281,23 @@ "总是自动刷新文件对è¯æ¡† (这将使在大目录打开时文件打开对è¯æ¡†å˜æ…¢ï¼Œå¹¶ä¸” Gnome " "VFS 应该能够自动处ç†ã€‚)。" -#: src/audacious/glade/prefswin.glade:2191 +#: src/audacious/glade/prefswin.glade:2132 msgid "Always refresh directory when opening file dialog" msgstr "当打开文件对è¯æ¡†æ—¶æ€»æ˜¯è‡ªåŠ¨åˆ·æ–°ç›®å½•" -#: src/audacious/glade/prefswin.glade:2225 +#: src/audacious/glade/prefswin.glade:2166 msgid "<b>Song Display</b>" msgstr "<b> æŒæ›²æ˜¾ç¤º</b>" -#: src/audacious/glade/prefswin.glade:2273 -msgid "Show information about titlestring format" -msgstr "æ˜¾ç¤ºæ ‡é¢˜æ ¼å¼ä¿¡æ¯" - -#: src/audacious/glade/prefswin.glade:2302 +#: src/audacious/glade/prefswin.glade:2214 +msgid "Title format:" +msgstr "æ ‡é¢˜æ ¼å¼ï¼š" + +#: src/audacious/glade/prefswin.glade:2242 +msgid "Custom string:" +msgstr "自定å—符串:" + +#: src/audacious/glade/prefswin.glade:2293 msgid "" "TITLE\n" "ARTIST - TITLE\n" @@ -313,21 +313,17 @@ "艺术家 ï¼ å”±ç‰‡ ï¼ éŸ³è½¨. æ ‡é¢˜\n" "艺术家 [唱片] ï¼ éŸ³è½¨. æ ‡é¢˜\n" "唱片 ï¼ æ ‡é¢˜\n" -"自定" - -#: src/audacious/glade/prefswin.glade:2347 -msgid "Custom string:" -msgstr "è‡ªå®šæ ¼å¼ï¼š" - -#: src/audacious/glade/prefswin.glade:2375 -msgid "Title format:" -msgstr "æ ‡é¢˜æ ¼å¼ï¼š" - -#: src/audacious/glade/prefswin.glade:2424 +"自定义" + +#: src/audacious/glade/prefswin.glade:2315 +msgid "Show information about titlestring format" +msgstr "æ˜¾ç¤ºæ ‡é¢˜æ ¼å¼ä¿¡æ¯" + +#: src/audacious/glade/prefswin.glade:2365 msgid "<b>Popup Information</b>" msgstr "<b>弹出信æ¯</b>" -#: src/audacious/glade/prefswin.glade:2475 +#: src/audacious/glade/prefswin.glade:2416 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 " @@ -336,82 +332,82 @@ "切æ¢æ’放列表ä¸é¼ æ ‡æŒ‡å‘的项的弹出信æ¯çª—å£ã€‚该窗å£æ˜¾ç¤ºæŒæ›²æ ‡é¢˜ã€ä¸“辑åã€æµæ´¾ä¿¡" "æ¯ã€å‘布年份,音轨编å·ï¼ŒéŸ³è½¨é•¿åº¦å’Œè‰ºæœ¯å“(专辑å°é¢)。" -#: src/audacious/glade/prefswin.glade:2477 +#: src/audacious/glade/prefswin.glade:2418 msgid "Show popup information for playlist entries" -msgstr "为æ’放列表项显示弹出信æ¯" - -#: src/audacious/glade/prefswin.glade:2504 +msgstr "显示æ’放列表项弹出信æ¯" + +#: src/audacious/glade/prefswin.glade:2445 msgid "Edit settings for popup information" -msgstr "编辑弹出信æ¯è®¾ç½®" - -#: src/audacious/glade/prefswin.glade:2553 src/audacious/ui_manager.c:203 -#: src/audacious/ui_playlist_manager.c:402 src/audacious/ui_preferences.c:116 +msgstr "编辑弹出信æ¯çš„设置" + +#: src/audacious/glade/prefswin.glade:2494 src/audacious/ui_manager.c:203 +#: src/audacious/ui_playlist_manager.c:290 src/audacious/ui_preferences.c:115 msgid "Playlist" msgstr "æ’放列表" -#: src/audacious/glade/prefswin.glade:2612 +#: src/audacious/glade/prefswin.glade:2553 msgid "<b>Presets</b>" msgstr "<b>预设</b>" -#: src/audacious/glade/prefswin.glade:2666 -msgid "File preset extension:" -msgstr "文件预设扩展å:" - -#: src/audacious/glade/prefswin.glade:2694 +#: src/audacious/glade/prefswin.glade:2653 msgid "Directory preset file:" msgstr "目录预设文件:" -#: src/audacious/glade/prefswin.glade:2788 +#: src/audacious/glade/prefswin.glade:2681 +msgid "File preset extension:" +msgstr "文件预设扩展å:" + +#: src/audacious/glade/prefswin.glade:2729 msgid "Available _Presets:" -msgstr "å¯ç”¨é¢„设:" - -#: src/audacious/glade/prefswin.glade:2921 src/audacious/ui_preferences.c:114 +msgstr "å¯ç”¨é¢„设(_P):" + +#: src/audacious/glade/prefswin.glade:2862 src/audacious/ui_preferences.c:113 msgid "Equalizer" msgstr "å‡è¡¡å™¨" -#: src/audacious/glade/prefswin.glade:2968 +#: src/audacious/glade/prefswin.glade:2909 msgid "<b>Proxy Configuration</b>" -msgstr "<b>代ç†æœåŠ¡å™¨è®¾ç½®</b>" - -#: src/audacious/glade/prefswin.glade:3026 +msgstr "<b>代ç†æœåŠ¡å™¨é…ç½®</b>" + +#: src/audacious/glade/prefswin.glade:2967 msgid "Enable proxy usage" msgstr "å¯ç”¨ä»£ç†æœåŠ¡å™¨" -#: src/audacious/glade/prefswin.glade:3103 +#: src/audacious/glade/prefswin.glade:2998 +msgid "Proxy hostname:" +msgstr "代ç†ä¸»æœºå:" + +#: src/audacious/glade/prefswin.glade:3026 msgid "Proxy port:" -msgstr "端å£ï¼š" - -#: src/audacious/glade/prefswin.glade:3131 -msgid "Proxy hostname:" -msgstr "主机å:" +msgstr "代ç†ç«¯å£ï¼š" + +#: src/audacious/glade/prefswin.glade:3120 +msgid "Use authentication with proxy" +msgstr "使用代ç†èº«ä»½éªŒè¯" + +#: src/audacious/glade/prefswin.glade:3151 +msgid "Proxy username:" +msgstr "代ç†ç”¨æˆ·å:" #: src/audacious/glade/prefswin.glade:3179 -msgid "Use authentication with proxy" -msgstr "使用身份验è¯" - -#: src/audacious/glade/prefswin.glade:3256 msgid "Proxy password:" -msgstr "密ç :" - -#: src/audacious/glade/prefswin.glade:3284 -msgid "Proxy username:" -msgstr "用户å:" - -#: src/audacious/glade/prefswin.glade:3354 +msgstr "代ç†å¯†ç :" + +#: src/audacious/glade/prefswin.glade:3295 msgid "" "<span size=\"small\">Changing these settings will require a restart of " "Audacious.</span>" msgstr "<span size=\"small\">这些设置将在é‡å¯ Audacious åŽç”Ÿæ•ˆã€‚</span>" -#: src/audacious/glade/prefswin.glade:3493 +#: src/audacious/glade/prefswin.glade:3419 msgid "<b>Audio System</b>" msgstr "<b>音频系统</b>" -#: src/audacious/glade/prefswin.glade:3566 -msgid "Buffer size:" -msgstr "缓冲区大å°ï¼š" - -#: src/audacious/glade/prefswin.glade:3593 +#: src/audacious/glade/prefswin.glade:3473 +msgid "Current output plugin:" +msgstr "当å‰è¾“出æ’件:" + +#: src/audacious/glade/prefswin.glade:3541 #, fuzzy msgid "" "<span size=\"small\">This is the amount of time to prebuffer audio streams " @@ -424,94 +420,94 @@ "å¦‚æžœæ‚¨ç¢°åˆ°è·³éŸ³ï¼Œè¯·å¢žåŠ è¿™ä¸ªå€¼ã€‚\n" "但需è¦æ³¨æ„的是:增大这个值å¯èƒ½ä¼šä½¿ Audacious 表现很糟糕。</span>" -#: src/audacious/glade/prefswin.glade:3663 -msgid "Current output plugin:" -msgstr "当å‰è¾“出æ’件:" - -#: src/audacious/glade/prefswin.glade:3769 +#: src/audacious/glade/prefswin.glade:3571 +msgid "Buffer size:" +msgstr "缓冲区大å°ï¼š" + +#: src/audacious/glade/prefswin.glade:3695 msgid "Output Plugin Preferences" msgstr "输出æ’件首选项" -#: src/audacious/glade/prefswin.glade:3844 +#: src/audacious/glade/prefswin.glade:3770 msgid "Output Plugin Information" msgstr "输出æ’件信æ¯" -#: src/audacious/glade/prefswin.glade:3896 +#: src/audacious/glade/prefswin.glade:3822 msgid "<b>Format Detection</b>" msgstr "<b>æ ¼å¼æ£€æµ‹</b>" -#: src/audacious/glade/prefswin.glade:3935 +#: src/audacious/glade/prefswin.glade:3861 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 将在需è¦æ—¶æ‰æ£€æµ‹æ–‡ä»¶æ ¼å¼ã€‚这会使æ’放列表有些混乱,但会使" -"速度大大æ高。" - -#: src/audacious/glade/prefswin.glade:3937 +"当选ä¸æ—¶ï¼ŒAudacious 将在需è¦æ—¶æ‰æ£€æµ‹æ–‡ä»¶æ ¼å¼ã€‚这会使æ’放列表有些混乱,但速度" +"有很大æ高。" + +#: src/audacious/glade/prefswin.glade:3863 msgid "Detect file formats on demand, instead of immediately." msgstr "在需è¦æ—¶è€Œä¸æ˜¯ç«‹å³æ£€æµ‹æ–‡ä»¶æ ¼å¼" -#: src/audacious/glade/prefswin.glade:3971 +#: src/audacious/glade/prefswin.glade:3897 msgid "" "When checked, Audacious will detect file formats based by extension. This is " "slightly slower than detection on demand, but still provides a minimal level " "of format detection." msgstr "" -"当选ä¸æ—¶ï¼ŒAudacious å°†ä¼šæ ¹æ®æ‰©å±•åæ¥æ£€æµ‹æ–‡ä»¶æ ¼å¼ã€‚è¿™æ ·ä¼šè½»å¾®çš„æ…¢äºŽæ ¹æ®éœ€è¦æ£€" -"æµ‹æ ¼å¼ã€‚但是å´èƒ½æ供一个最简å•çš„æ–‡ä»¶æ ¼å¼æ£€æµ‹ã€‚" - -#: src/audacious/glade/prefswin.glade:3973 +"选ä¸æ—¶ï¼ŒAudacious å°†ä¼šæ ¹æ®æ‰©å±•åæ¥æ£€æµ‹æ–‡ä»¶æ ¼å¼ã€‚è¿™æ ·ä¼šç•¥å¾®æ…¢äºŽæ ¹æ®éœ€è¦æ£€" +"æµ‹æ ¼å¼ã€‚但是ä»ç„¶æ供了一个最简å•çš„æ–‡ä»¶æ ¼å¼æ£€æµ‹ã€‚" + +#: src/audacious/glade/prefswin.glade:3899 msgid "Detect file formats by extension." msgstr "æ ¹æ®æ‰©å±•åæ£€æµ‹æ–‡ä»¶æ ¼å¼" -#: src/audacious/glade/prefswin.glade:4007 +#: src/audacious/glade/prefswin.glade:3933 msgid "<b>Playback</b>" msgstr "<b>æ’放</b>" -#: src/audacious/glade/prefswin.glade:4046 +#: src/audacious/glade/prefswin.glade:3972 msgid "" "When Audacious starts, automatically begin playing from the point where we " "stopped before." msgstr "当 Audacious å¯åŠ¨æ—¶ï¼Œè‡ªåŠ¨ä»Žä¸Šæ¬¡åœæ¢çš„地方开始æ’放。" -#: src/audacious/glade/prefswin.glade:4048 +#: src/audacious/glade/prefswin.glade:3974 msgid "Continue playback on startup" -msgstr "在å¯åŠ¨æ—¶æ¢å¤å›žæ”¾" - -#: src/audacious/glade/prefswin.glade:4082 +msgstr "在å¯åŠ¨æ—¶æ¢å¤æ’放" + +#: src/audacious/glade/prefswin.glade:4008 msgid "When finished playing a song, don't automatically advance to the next." -msgstr "æŒæ›²æ’完åŽï¼Œä¸è¦è‡ªåŠ¨å¿«è¿›åˆ°ä¸‹ä¸€æ›²ã€‚" - -#: src/audacious/glade/prefswin.glade:4084 +msgstr "æŒæ›²æ’完åŽï¼Œä¸è¦è‡ªåŠ¨æ’放下一曲。" + +#: src/audacious/glade/prefswin.glade:4010 msgid "Don't advance in the playlist" -msgstr "ä¸å…许列表快进" - -#: src/audacious/glade/prefswin.glade:4119 +msgstr "ä¸å…许在列表å‰è¿›" + +#: src/audacious/glade/prefswin.glade:4045 msgid "Pause between songs" msgstr "在æŒæ›²ä¹‹é—´æš‚åœ" -#: src/audacious/glade/prefswin.glade:4157 +#: src/audacious/glade/prefswin.glade:4083 msgid "Pause for" msgstr "æš‚åœ" -#: src/audacious/glade/prefswin.glade:4203 +#: src/audacious/glade/prefswin.glade:4129 msgid "seconds" msgstr "秒" -#: src/audacious/glade/prefswin.glade:4249 +#: src/audacious/glade/prefswin.glade:4175 msgid "<b>Sampling Rate Converter</b>" msgstr "<b>é‡‡æ ·çŽ‡è½¬æ¢å™¨</b>" -#: src/audacious/glade/prefswin.glade:4289 +#: src/audacious/glade/prefswin.glade:4215 msgid "Enable Sampling Rate Converter" msgstr "å¯ç”¨é‡‡æ ·çŽ‡è½¬æ¢å™¨" -#: src/audacious/glade/prefswin.glade:4361 -msgid "Interpolation Engine:" -msgstr "" - -#: src/audacious/glade/prefswin.glade:4389 +#: src/audacious/glade/prefswin.glade:4264 +msgid "Sampling Rate [Hz]:" +msgstr "é‡‡æ ·çŽ‡ [Hz]:" + +#: src/audacious/glade/prefswin.glade:4334 #, fuzzy msgid "" "<span size=\"small\">All streams will be converted to this sampling rate.\n" @@ -521,38 +517,23 @@ "<span size=\"small\">所有音频æµå°†è¢«è½¬æ¢åˆ°æ¤é‡‡æ ·çŽ‡ã€‚\n" "这应当是您的声å¡æˆ–输出æ’件支æŒçš„æœ€å¤§é‡‡æ ·çŽ‡ã€‚</span>" -#: src/audacious/glade/prefswin.glade:4461 -msgid "Sampling Rate [Hz]:" -msgstr "é‡‡æ ·çŽ‡ [Hz]:" - -#: src/audacious/glade/prefswin.glade:4517 -#, fuzzy -msgid "<b>Volume Control</b>" -msgstr "<b>é¼ æ ‡æ»šè½®</b>" - -#: src/audacious/glade/prefswin.glade:4556 -msgid "" -"Use software volume control. This may be useful for situations where your " -"audio system does not support controlling the playback volume." -msgstr "" - -#: src/audacious/glade/prefswin.glade:4558 -msgid "Use software volume control" -msgstr "" - -#: src/audacious/glade/prefswin.glade:4746 +#: src/audacious/glade/prefswin.glade:4364 +msgid "Interpolation Engine:" +msgstr "æ’值引擎" + +#: src/audacious/glade/prefswin.glade:4593 msgid "Reload Plugins" msgstr "é‡æ–°åŠ è½½æ’件" -#: src/audacious/glade/prefswin.glade:4807 +#: src/audacious/glade/prefswin.glade:4654 msgid "Popup Information Settings" msgstr "弹出信æ¯è®¾ç½®" -#: src/audacious/glade/prefswin.glade:4831 +#: src/audacious/glade/prefswin.glade:4678 msgid "<b>Cover image retrieve</b>" msgstr "<b>专辑å°é¢æ£€ç´¢</b>" -#: src/audacious/glade/prefswin.glade:4856 +#: src/audacious/glade/prefswin.glade:4703 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 " @@ -561,158 +542,158 @@ "当æœç´¢ä¸“辑å°é¢æ—¶ï¼ŒAudacious æœç´¢æ–‡ä»¶åä¸çš„关键å—。您å¯ä»¥åœ¨ä¸‹é¢åˆ—表ä¸æŒ‡å®šå®ƒ" "们,用逗å·éš”开。" -#: src/audacious/glade/prefswin.glade:4911 -msgid "Exclude:" -msgstr "排除:" - -#: src/audacious/glade/prefswin.glade:4939 +#: src/audacious/glade/prefswin.glade:4758 msgid "Include:" msgstr "包括:" -#: src/audacious/glade/prefswin.glade:5008 +#: src/audacious/glade/prefswin.glade:4786 +msgid "Exclude:" +msgstr "排除:" + +#: src/audacious/glade/prefswin.glade:4855 msgid "Recursively search for cover" msgstr "递归æœç´¢å°é¢" -#: src/audacious/glade/prefswin.glade:5046 +#: src/audacious/glade/prefswin.glade:4893 msgid "Search depth: " msgstr "æœç´¢æ·±åº¦ï¼š" -#: src/audacious/glade/prefswin.glade:5112 +#: src/audacious/glade/prefswin.glade:4959 msgid "Use per-file cover" msgstr "为æ¯ä¸ªæ–‡ä»¶ä½¿ç”¨å•ç‹¬å°é¢" -#: src/audacious/glade/prefswin.glade:5132 +#: src/audacious/glade/prefswin.glade:4979 msgid "<b>Miscellaneous</b>" msgstr "<b>æ‚项</b>" -#: src/audacious/glade/prefswin.glade:5170 +#: src/audacious/glade/prefswin.glade:5017 msgid "Show Progress bar for the current track" msgstr "为当å‰éŸ³è½¨æ˜¾ç¤ºè¿›åº¦æ¡" -#: src/audacious/glade/prefswin.glade:5208 +#: src/audacious/glade/prefswin.glade:5055 msgid "Delay until filepopup comes up: " msgstr "延迟直到文件弹出信æ¯æ˜¾ç¤ºï¼š" -#: src/audacious/glade/prefswin.glade:5302 +#: src/audacious/glade/prefswin.glade:5149 msgid "Color Adjustment" msgstr "颜色调节" -#: src/audacious/glade/prefswin.glade:5325 +#: src/audacious/glade/prefswin.glade:5172 msgid "" "Audacious allows you to alter the color balance of the skinned UI. The " "sliders below will allow you to do this." msgstr "Audacious å…è®¸ä½ ä¿®æ”¹ä½¿ç”¨çš®è‚¤çš„ç•Œé¢è‰²è°ƒã€‚下é¢çš„滑动æ¡å…è®¸ä½ ä½œè¿™ä¸ªè°ƒæ•´ã€‚" -#: src/audacious/glade/prefswin.glade:5359 -msgid "Blue" -msgstr "è“" - -#: src/audacious/glade/prefswin.glade:5387 +#: src/audacious/glade/prefswin.glade:5268 +msgid "Red" +msgstr "红" + +#: src/audacious/glade/prefswin.glade:5296 msgid "Green" msgstr "绿" -#: src/audacious/glade/prefswin.glade:5415 -msgid "Red" -msgstr "红" - -#: src/audacious/input.c:627 +#: src/audacious/glade/prefswin.glade:5324 +msgid "Blue" +msgstr "è“" + +#: src/audacious/input.c:657 #, c-format msgid "audacious: %s" msgstr "audacious: %s" -#: src/audacious/input.c:643 +#: src/audacious/input.c:673 msgid "Filename:" msgstr "文件å:" -#: src/audacious/input.c:662 +#: src/audacious/input.c:692 msgid "No input plugin recognized this file" msgstr "没有输入æ’件å¯è¯†åˆ«æ¤æ–‡ä»¶" -#: src/audacious/input.c:664 +#: src/audacious/input.c:694 #, c-format msgid "Input plugin: %s" msgstr "输入æ’件:%s" -#: src/audacious/logger.c:125 +#: src/audacious/logger.c:124 #, c-format msgid "Unable to create log file (%s)!\n" msgstr "æ— æ³•åˆ›å»ºæ—¥å¿—æ–‡ä»¶ (%s)ï¼\n" -#: src/audacious/main.c:90 src/audacious/main.c:92 src/audacious/ui_main.c:491 -#: src/audacious/ui_main.c:2466 +#: src/audacious/main.c:90 src/audacious/main.c:92 src/audacious/ui_main.c:502 +#: src/audacious/ui_main.c:2514 msgid "Audacious" msgstr "Audacious" -#: src/audacious/main.c:477 +#: src/audacious/main.c:475 #, c-format msgid "Could not create directory (%s): %s\n" msgstr "新建目录 %s 失败,错误:%s\n" -#: src/audacious/main.c:1065 +#: src/audacious/main.c:891 msgid "Select which Audacious session ID to use" msgstr "选择 Audacious ä¼šè¯ ID" -#: src/audacious/main.c:1066 +#: src/audacious/main.c:892 msgid "Skip backwards in playlist" msgstr "在æ’放列表ä¸å‘åŽè·³" -#: src/audacious/main.c:1067 +#: src/audacious/main.c:893 msgid "Start playing current playlist" -msgstr "开始æ’放现有列表" - -#: src/audacious/main.c:1068 +msgstr "开始æ’放当å‰åˆ—表" + +#: src/audacious/main.c:894 msgid "Pause current song" msgstr "æš‚åœå½“å‰æŒæ›²" -#: src/audacious/main.c:1069 +#: src/audacious/main.c:895 msgid "Stop current song" msgstr "åœæ¢å½“å‰æŒæ›²" -#: src/audacious/main.c:1070 +#: src/audacious/main.c:896 msgid "Pause if playing, play otherwise" msgstr "如æ£æ’放则暂åœï¼Œå¦åˆ™æ’放" -#: src/audacious/main.c:1071 +#: src/audacious/main.c:897 msgid "Skip forward in playlist" msgstr "在æ’放列表ä¸å‘å‰è·³" -#: src/audacious/main.c:1072 +#: src/audacious/main.c:898 msgid "Display Jump to File dialog" msgstr "显示 “跳到文件†对è¯æ¡†" -#: src/audacious/main.c:1073 +#: src/audacious/main.c:899 msgid "Don't clear the playlist" msgstr "ä¸è¦æ¸…除æ’放列表" -#: src/audacious/main.c:1074 +#: src/audacious/main.c:900 msgid "Add new files to a temporary playlist" msgstr "æ·»åŠ æ–°æ–‡ä»¶åˆ°ä¸´æ—¶åˆ—è¡¨" -#: src/audacious/main.c:1075 +#: src/audacious/main.c:901 msgid "Display the main window" msgstr "显示主窗å£" -#: src/audacious/main.c:1076 +#: src/audacious/main.c:902 msgid "Display all open Audacious windows" msgstr "显示全部开打的 Audacious 窗å£" -#: src/audacious/main.c:1077 +#: src/audacious/main.c:903 msgid "Enable headless operation" msgstr "å¯åŠ¨æ— ç•Œé¢æ“作" -#: src/audacious/main.c:1078 +#: src/audacious/main.c:904 msgid "Print all errors and warnings to stdout" msgstr "打å°æ‰€æœ‰é”™è¯¯å’Œè¦å‘Šåˆ°æ ‡å‡†è¾“出" -#: src/audacious/main.c:1079 +#: src/audacious/main.c:905 msgid "Show version and builtin features" msgstr "显示版本和内建特性" -#: src/audacious/main.c:1080 +#: src/audacious/main.c:906 msgid "FILE..." msgstr "文件..." -#: src/audacious/main.c:1239 +#: src/audacious/main.c:1065 #, c-format msgid "" "<b><big>Unable to load skin.</big></b>\n" @@ -724,7 +705,7 @@ "\n" "请检查设在'%s'的皮肤是å¯ç”¨çš„,并且确ä¿é»˜è®¤çš®è‚¤ä¹Ÿå·²æ£ç¡®å®‰è£…到'%s'。\n" -#: src/audacious/main.c:1320 +#: src/audacious/main.c:1123 msgid "" "Sorry, threads isn't supported on your platform.\n" "\n" @@ -737,11 +718,11 @@ "å¦‚æžœä½ åŽŸæœ¬ä½¿ç”¨ libc5 çš„ Linux 并且装了 GLIB & GTK+ \n" "之åŽåˆå®‰è£…了 LinuxThreads,请é‡æ–°ç¼–译 GLIB & GTK+。\n" -#: src/audacious/main.c:1351 +#: src/audacious/main.c:1154 msgid "- play multimedia files" msgstr "- æ’放多媒体文件" -#: src/audacious/main.c:1358 +#: src/audacious/main.c:1161 #, c-format msgid "" "%s: %s\n" @@ -750,12 +731,12 @@ "%s: %s\n" "å°è¯• `%s --help' æ¥èŽ·å¾—更多信æ¯.\n" -#: src/audacious/main.c:1368 +#: src/audacious/main.c:1171 #, c-format msgid "%s: Unable to open display, exiting.\n" msgstr "%s: æ— æ³•æ‰“å¼€æ˜¾ç¤ºï¼Œå³å°†é€€å‡ºã€‚\n" -#: src/audacious/playback.c:343 +#: src/audacious/playback.c:274 msgid "" "<b><big>No output plugin selected.</big></b>\n" "You have not selected an output plugin." @@ -807,7 +788,7 @@ "Your signaling implementation is broken.\n" "Expect unusable crash reports.\n" msgstr "" -"您的信å·çš„实现已æŸå。\n" +"您信å·çš„实现已æŸå。\n" "崩溃报告将会ä¸èƒ½ä½¿ç”¨ã€‚\n" #: src/audacious/strings.c:170 @@ -825,25 +806,25 @@ "\n" "Copyright (C) 2005-2006 Audacious å¼€å‘å°ç»„" -#: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:357 +#: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:355 #: src/audacious/ui_manager.c:391 src/audacious/ui_manager.c:392 msgid "About Audacious" msgstr "关于 Audacious" -#: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:400 +#: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:398 msgid "Credits" msgstr "致谢" #: src/audacious/ui_credits.c:47 -#, fuzzy, c-format +#, c-format msgid "" "<big><b>Audacious %s</b></big>\n" -"A skinned multimedia player for many platforms.\n" +"The future of UNIX multimedia.\n" "\n" "Copyright (C) 2005-2007 Audacious Development Team\n" msgstr "" "<big><b>Audacious %s</b></big>\n" -"The future of UNIX multimedia.\n" +"UNIX 多媒体的未æ¥ã€‚\n" "\n" "Copyright (C) 2005-2006 Audacious å¼€å‘å°ç»„\n" @@ -863,147 +844,147 @@ msgid "Plugin development:" msgstr "æ’件开å‘:" -#: src/audacious/ui_credits.c:97 +#: src/audacious/ui_credits.c:96 msgid "Patch authors:" msgstr "è¡¥ä¸ä½œè€…:" -#: src/audacious/ui_credits.c:117 +#: src/audacious/ui_credits.c:116 msgid "0.1.x developers:" msgstr "0.1.x å¼€å‘者:" -#: src/audacious/ui_credits.c:123 +#: src/audacious/ui_credits.c:122 msgid "BMP Developers:" msgstr "BMP å¼€å‘者:" -#: src/audacious/ui_credits.c:155 +#: src/audacious/ui_credits.c:154 msgid "Brazilian Portuguese:" msgstr "巴西葡è„牙è¯ï¼š" -#: src/audacious/ui_credits.c:159 +#: src/audacious/ui_credits.c:158 msgid "Breton:" msgstr "布列塔尼è¯ï¼š" -#: src/audacious/ui_credits.c:162 +#: src/audacious/ui_credits.c:161 msgid "Bulgarian:" msgstr "匈牙利è¯ï¼š" -#: src/audacious/ui_credits.c:165 +#: src/audacious/ui_credits.c:164 msgid "Catalan:" msgstr "åŠ æ³°ç½—å°¼äºšè¯ï¼š" -#: src/audacious/ui_credits.c:168 +#: src/audacious/ui_credits.c:167 msgid "Croatian:" msgstr "罗马尼亚è¯ï¼š" -#: src/audacious/ui_credits.c:171 +#: src/audacious/ui_credits.c:170 msgid "Czech:" msgstr "æ·å…‹è¯ï¼š" -#: src/audacious/ui_credits.c:174 +#: src/audacious/ui_credits.c:173 msgid "Dutch:" msgstr "è·å…°è¯ï¼š" -#: src/audacious/ui_credits.c:178 +#: src/audacious/ui_credits.c:177 msgid "Finnish:" msgstr "芬兰è¯ï¼š" -#: src/audacious/ui_credits.c:181 +#: src/audacious/ui_credits.c:180 msgid "French:" msgstr "法è¯ï¼š" -#: src/audacious/ui_credits.c:185 +#: src/audacious/ui_credits.c:183 msgid "German:" msgstr "å¾·è¯ï¼š" -#: src/audacious/ui_credits.c:190 +#: src/audacious/ui_credits.c:188 msgid "Georgian:" msgstr "乔治亚è¯ï¼š" -#: src/audacious/ui_credits.c:193 +#: src/audacious/ui_credits.c:191 msgid "Greek:" msgstr "希腊è¯ï¼š" -#: src/audacious/ui_credits.c:198 +#: src/audacious/ui_credits.c:196 msgid "Hindi:" msgstr "北å°åº¦è¯:" -#: src/audacious/ui_credits.c:201 +#: src/audacious/ui_credits.c:199 msgid "Hungarian:" msgstr "匈牙利è¯ï¼š" -#: src/audacious/ui_credits.c:204 +#: src/audacious/ui_credits.c:202 msgid "Italian:" msgstr "æ„大利è¯ï¼š" -#: src/audacious/ui_credits.c:208 +#: src/audacious/ui_credits.c:206 msgid "Japanese:" msgstr "æ—¥è¯ï¼š" -#: src/audacious/ui_credits.c:211 +#: src/audacious/ui_credits.c:209 msgid "Korean:" msgstr "æœè¯ï¼š" -#: src/audacious/ui_credits.c:214 +#: src/audacious/ui_credits.c:212 msgid "Lithuanian:" msgstr "立陶宛è¯ï¼š" -#: src/audacious/ui_credits.c:217 +#: src/audacious/ui_credits.c:215 msgid "Macedonian:" msgstr "马其顿è¯ï¼š" -#: src/audacious/ui_credits.c:220 +#: src/audacious/ui_credits.c:218 msgid "Polish:" msgstr "波兰è¯ï¼š" -#: src/audacious/ui_credits.c:223 +#: src/audacious/ui_credits.c:221 msgid "Romanian:" msgstr "罗马尼亚è¯ï¼š" -#: src/audacious/ui_credits.c:227 +#: src/audacious/ui_credits.c:225 msgid "Russian:" msgstr "ä¿„è¯ï¼š" -#: src/audacious/ui_credits.c:230 +#: src/audacious/ui_credits.c:228 msgid "Serbian (Latin):" msgstr "塞尔维亚è¯(拉ä¸æ–‡)" -#: src/audacious/ui_credits.c:233 +#: src/audacious/ui_credits.c:231 msgid "Serbian (Cyrillic):" msgstr "塞尔维亚è¯(斯拉夫文)" -#: src/audacious/ui_credits.c:236 +#: src/audacious/ui_credits.c:234 msgid "Simplified Chinese:" msgstr "简体ä¸æ–‡ï¼š" -#: src/audacious/ui_credits.c:239 +#: src/audacious/ui_credits.c:237 msgid "Slovak:" msgstr "斯洛ä¼å…‹è¯ï¼š" -#: src/audacious/ui_credits.c:242 +#: src/audacious/ui_credits.c:240 msgid "Spanish:" msgstr "西ç牙è¯ï¼š" -#: src/audacious/ui_credits.c:245 +#: src/audacious/ui_credits.c:243 msgid "Swedish:" msgstr "ç‘žå…¸è¯ï¼š" -#: src/audacious/ui_credits.c:248 +#: src/audacious/ui_credits.c:246 msgid "Traditional Chinese:" msgstr "ç¹ä½“ä¸æ–‡ï¼š" -#: src/audacious/ui_credits.c:251 +#: src/audacious/ui_credits.c:249 msgid "Turkish:" msgstr "土耳其è¯ï¼š" -#: src/audacious/ui_credits.c:255 +#: src/audacious/ui_credits.c:253 msgid "Ukrainian:" msgstr "乌克兰è¯ï¼š" -#: src/audacious/ui_credits.c:258 +#: src/audacious/ui_credits.c:256 msgid "Welsh:" msgstr "å¨å°”æ–¯è¯ï¼š" -#: src/audacious/ui_credits.c:404 +#: src/audacious/ui_credits.c:402 msgid "Translators" msgstr "翻译者" @@ -1020,23 +1001,23 @@ msgstr "音轨信æ¯çª—å£" #: src/audacious/ui_fileinfopopup.c:252 src/audacious/ui_fileinfopopup.c:364 -#: src/audacious/ui_preferences.c:125 +#: src/audacious/ui_preferences.c:124 msgid "Title" msgstr "æ ‡é¢˜" -#: src/audacious/ui_fileinfopopup.c:255 src/audacious/ui_preferences.c:123 +#: src/audacious/ui_fileinfopopup.c:255 src/audacious/ui_preferences.c:122 msgid "Artist" msgstr "艺术家" -#: src/audacious/ui_fileinfopopup.c:258 src/audacious/ui_preferences.c:124 +#: src/audacious/ui_fileinfopopup.c:258 src/audacious/ui_preferences.c:123 msgid "Album" msgstr "专辑" -#: src/audacious/ui_fileinfopopup.c:261 src/audacious/ui_preferences.c:127 +#: src/audacious/ui_fileinfopopup.c:261 src/audacious/ui_preferences.c:126 msgid "Genre" msgstr "é£Žæ ¼" -#: src/audacious/ui_fileinfopopup.c:264 src/audacious/ui_preferences.c:131 +#: src/audacious/ui_fileinfopopup.c:264 src/audacious/ui_preferences.c:130 msgid "Year" msgstr "年份" @@ -1048,103 +1029,186 @@ msgid "Track Length" msgstr "音轨长度" -#: src/audacious/ui_fileinfopopup.c:373 src/audacious/ui_preferences.c:128 -#: src/audacious/ui_preferences.c:420 +#: src/audacious/ui_fileinfopopup.c:373 src/audacious/ui_preferences.c:127 +#: src/audacious/ui_preferences.c:426 src/audacious/ui_preferences.c:514 +#: src/audacious/ui_preferences.c:603 src/audacious/ui_preferences.c:699 msgid "Filename" msgstr "文件å" -#: src/audacious/ui_fileopener.c:127 +#: src/audacious/ui_fileopener.c:128 msgid "Open Files" msgstr "打开文件" -#: src/audacious/ui_fileopener.c:127 +#: src/audacious/ui_fileopener.c:128 msgid "Add Files" msgstr "æ·»åŠ æ–‡ä»¶" -#: src/audacious/ui_fileopener.c:129 +#: src/audacious/ui_fileopener.c:130 msgid "Close dialog on Open" msgstr "打开åŽå…³é—对è¯æ¡†" -#: src/audacious/ui_fileopener.c:129 +#: src/audacious/ui_fileopener.c:130 msgid "Close dialog on Add" msgstr "æ·»åŠ åŽå…³é—对è¯æ¡†" -#: src/audacious/ui_fileopener.c:356 +#: src/audacious/ui_fileopener.c:357 msgid "Play files" msgstr "æ’放文件" -#: src/audacious/ui_fileopener.c:358 +#: src/audacious/ui_fileopener.c:359 msgid "Load files" msgstr "装入文件" -#: src/audacious/ui_jumptotrack.c:138 +#: src/audacious/ui_jumptotrack.c:140 msgid "Un_queue" msgstr "ä¸æŽ’队(_q)" -#: src/audacious/ui_jumptotrack.c:140 src/audacious/ui_jumptotrack.c:603 +#: src/audacious/ui_jumptotrack.c:142 src/audacious/ui_jumptotrack.c:605 msgid "_Queue" msgstr "排队(_Q)" -#: src/audacious/ui_jumptotrack.c:518 +#: src/audacious/ui_jumptotrack.c:520 msgid "Jump to Track" msgstr "跳到音轨" -#: src/audacious/ui_jumptotrack.c:559 +#: src/audacious/ui_jumptotrack.c:561 msgid "Filter: " msgstr "过滤: " -#: src/audacious/ui_jumptotrack.c:560 +#: src/audacious/ui_jumptotrack.c:562 msgid "_Filter:" msgstr "过滤(_F): " -#: src/audacious/ui_jumptotrack.c:594 +#: src/audacious/ui_jumptotrack.c:596 #, fuzzy msgid "Close on Jump" msgstr "打开åŽå…³é—对è¯æ¡†" -#: src/audacious/ui_main.c:489 +#: src/audacious/ui_lastfm.c:65 +msgid "Not last.fm stream" +msgstr "ä¸æ˜¯ last.fm æµ" + +#: src/audacious/ui_lastfm.c:90 +#, fuzzy, c-format +msgid "<b>Artist:</b> %s" +msgstr "<i>艺术家</i>" + +#: src/audacious/ui_lastfm.c:98 +#, fuzzy, c-format +msgid "<b>Title:</b> %s" +msgstr "<i>æ ‡é¢˜</i>" + +#: src/audacious/ui_lastfm.c:102 +#, fuzzy, c-format +msgid "<b>Album:</b> %s" +msgstr "<i>唱片</i>" + +#: src/audacious/ui_lastfm.c:117 +msgid "" +"<b><big>Couldn't find your lastfm login data.</big></b>\n" +"\n" +"Check if your Scrobbler's plugin login settings are configured properly.\n" +msgstr "" + +#: src/audacious/ui_lastfm.c:238 +#, fuzzy +msgid "Audacious last.fm radio tuner" +msgstr "Audacious last.fm 广æ’è°ƒè°å™¨" + +#: src/audacious/ui_lastfm.c:239 +#, fuzzy +msgid "Station:" +msgstr "广æ’站:" + +#: src/audacious/ui_lastfm.c:245 +#, fuzzy +msgid "<b>Artist:</b>" +msgstr "<i>艺术家</i>" + +#: src/audacious/ui_lastfm.c:249 +#, fuzzy +msgid "<b>Title:</b>" +msgstr "<i>æ ‡é¢˜</i>" + +#: src/audacious/ui_lastfm.c:253 +#, fuzzy +msgid "<b>Album:</b>" +msgstr "<i>唱片</i>" + +#: src/audacious/ui_lastfm.c:257 +msgid "Love" +msgstr "" + +#: src/audacious/ui_lastfm.c:258 +msgid "Ban" +msgstr "å±è”½" + +#: src/audacious/ui_lastfm.c:259 +msgid "Skip" +msgstr "跳过" + +#: src/audacious/ui_lastfm.c:260 +msgid "Tune in" +msgstr "" + +#: src/audacious/ui_lastfm.c:262 +msgid "Neighbours' radio" +msgstr "邻居的广æ’" + +#: src/audacious/ui_lastfm.c:263 +msgid "Personal radio" +msgstr "个人广æ’" + +#: src/audacious/ui_lastfm.c:337 +msgid "" +"<b><big>The lastfm radio plugin could not be found.</big></b>\n" +"\n" +"Check if the AudioScrobbler plugin was compiled in\n" +msgstr "" + +#: src/audacious/ui_main.c:500 #, c-format msgid "%s - Audacious" msgstr "%s - Audacious" -#: src/audacious/ui_main.c:744 +#: src/audacious/ui_main.c:755 msgid "VBR" msgstr "å¯å˜ä½æ•°çŽ‡" -#: src/audacious/ui_main.c:761 src/audacious/ui_main.c:765 +#: src/audacious/ui_main.c:772 src/audacious/ui_main.c:776 msgid "stereo" msgstr "立体声" -#: src/audacious/ui_main.c:761 src/audacious/ui_main.c:765 +#: src/audacious/ui_main.c:772 src/audacious/ui_main.c:776 msgid "mono" msgstr "å•å£°é“" -#: src/audacious/ui_main.c:1060 src/audacious/ui_manager.c:420 -#: src/audacious/ui_manager.c:421 +#: src/audacious/ui_main.c:1032 src/audacious/ui_manager.c:423 +#: src/audacious/ui_manager.c:424 msgid "Jump to Time" msgstr "跳到特定时间" -#: src/audacious/ui_main.c:1081 +#: src/audacious/ui_main.c:1053 msgid "minutes:seconds" msgstr "分:秒" -#: src/audacious/ui_main.c:1091 +#: src/audacious/ui_main.c:1063 msgid "Track length:" msgstr "音轨长度:" -#: src/audacious/ui_main.c:1228 +#: src/audacious/ui_main.c:1200 msgid "Audacious - visibility warning" msgstr "Audacious - å¯è§æ€§è¦å‘Š" -#: src/audacious/ui_main.c:1230 +#: src/audacious/ui_main.c:1202 msgid "Show main player window" msgstr "显示æ’放器主窗å£" -#: src/audacious/ui_main.c:1231 +#: src/audacious/ui_main.c:1203 msgid "Ignore" msgstr "忽略" -#: src/audacious/ui_main.c:1235 +#: src/audacious/ui_main.c:1207 msgid "" "Audacious has been started with all of its windows hidden.\n" "You may want to show the player window again to control Audacious; " @@ -1155,72 +1219,72 @@ "您或许想è¦æ˜¾ç¤ºæ’放器窗å£ä»¥æŽ§åˆ¶ Audaciousï¼›å¦åˆ™æ‚¨å°†ä¸å¾—ä¸é€šè¿‡ audtool 远程控制" "或通过å¯ç”¨çš„æ’件(如 statusicon æ’件)æ¥æŽ§åˆ¶ã€‚" -#: src/audacious/ui_main.c:1241 +#: src/audacious/ui_main.c:1213 msgid "Always ignore, show/hide is controlled remotely" msgstr "总是忽略,并远程控制 显示/éšè—" -#: src/audacious/ui_main.c:1259 +#: src/audacious/ui_main.c:1231 msgid "Enter location to play:" msgstr "输入è¦æ’放的ä½ç½®ï¼š" -#: src/audacious/ui_main.c:1504 +#: src/audacious/ui_main.c:1465 #, fuzzy, c-format msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" msgstr "æœå¯»ï¼š%d:%-2.2d/%d:%-2.2d (%d%%)" +#: src/audacious/ui_main.c:1497 +#, c-format +msgid "Volume: %d%%" +msgstr "音é‡: %d%%" + +#: src/audacious/ui_main.c:1528 +#, c-format +msgid "Balance: %d%% left" +msgstr "平衡: %d%% å·¦" + +#: src/audacious/ui_main.c:1532 +msgid "Balance: center" +msgstr "平衡: ä¸é—´" + #: src/audacious/ui_main.c:1536 #, c-format -msgid "Volume: %d%%" -msgstr "" - -#: src/audacious/ui_main.c:1566 -#, c-format -msgid "Balance: %d%% left" -msgstr "" - -#: src/audacious/ui_main.c:1570 -msgid "Balance: center" -msgstr "" - -#: src/audacious/ui_main.c:1574 -#, c-format msgid "Balance: %d%% right" -msgstr "" - -#: src/audacious/ui_main.c:1916 +msgstr "平衡: %d%% å³" + +#: src/audacious/ui_main.c:1879 msgid "Options Menu" -msgstr "" - -#: src/audacious/ui_main.c:1920 +msgstr "选项èœå•" + +#: src/audacious/ui_main.c:1883 #, fuzzy msgid "Disable 'Always On Top'" -msgstr "永远在上层" - -#: src/audacious/ui_main.c:1922 +msgstr "ç¦ç”¨æ°¸è¿œåœ¨ä¸Šå±‚" + +#: src/audacious/ui_main.c:1885 #, fuzzy msgid "Enable 'Always On Top'" -msgstr "永远在上层" - -#: src/audacious/ui_main.c:1925 +msgstr "å¯ç”¨æ°¸è¿œåœ¨ä¸Šå±‚" + +#: src/audacious/ui_main.c:1888 msgid "File Info Box" -msgstr "" - -#: src/audacious/ui_main.c:1929 +msgstr "文件信æ¯æ¡†" + +#: src/audacious/ui_main.c:1892 #, fuzzy msgid "Disable 'Doublesize'" -msgstr "两å€æ”¾å¤§" - -#: src/audacious/ui_main.c:1931 +msgstr "ç¦ç”¨ä¸¤å€æ”¾å¤§" + +#: src/audacious/ui_main.c:1894 #, fuzzy msgid "Enable 'Doublesize'" -msgstr "两å€æ”¾å¤§" - -#: src/audacious/ui_main.c:1934 +msgstr "å¯ç”¨ä¸¤å€æ”¾å¤§" + +#: src/audacious/ui_main.c:1897 #, fuzzy msgid "Visualization Menu" -msgstr "视觉化模å¼" - -#: src/audacious/ui_main.c:1982 +msgstr "视觉化èœå•" + +#: src/audacious/ui_main.c:1945 msgid "" "<b><big>Couldn't open audio.</big></b>\n" "\n" @@ -1229,13 +1293,32 @@ "2. No other programs is blocking the soundcard.\n" "3. Your soundcard is configured properly.\n" msgstr "" -"<b><big>æ— æ³•ä½¿ç”¨éŸ³é¢‘è®¾å¤‡ã€‚</big></b>\n" +"<b><big>æ— æ³•æ‰“å¼€éŸ³é¢‘ã€‚</big></b>\n" "请确定:\n" "1. 您是å¦é€‰æ‹©äº†æ£ç¡®çš„输出æ’件。\n" -"2. 没有其他的程å¼æ£åœ¨ä½¿ç”¨éŸ³æ•ˆå¡ã€‚\n" -"3. 您的音效å¡æœ‰æ£å¸¸é©±åŠ¨ã€‚\n" - -#: src/audacious/ui_main.c:2446 +"2. 没有其他的程åºé˜»å¡žäº†å£°å¡ã€‚\n" +"3. 您声å¡çš„é…置是å¦æ£ç¡®ã€‚\n" + +#: src/audacious/ui_main.c:2025 +#, c-format +msgid "VOLUME: %d%%" +msgstr "音é‡ï¼š%d%%" + +#: src/audacious/ui_main.c:2028 +#, c-format +msgid "BALANCE: %d%% LEFT" +msgstr "平衡:%d%% å·¦" + +#: src/audacious/ui_main.c:2031 +msgid "BALANCE: CENTER" +msgstr "平衡:ä¸å¿ƒ" + +#: src/audacious/ui_main.c:2033 +#, c-format +msgid "BALANCE: %d%% RIGHT" +msgstr "平衡:%d%% å³" + +#: src/audacious/ui_main.c:2496 msgid "Error in Audacious." msgstr "Audacious 错误" @@ -1261,7 +1344,7 @@ #: src/audacious/ui_manager.c:63 src/audacious/ui_manager.c:64 msgid "No Playlist Advance" -msgstr "æ— é¢„è®¾æ’放列表" +msgstr "æ’放列表ä¸å‰è¿›" #: src/audacious/ui_manager.c:66 src/audacious/ui_manager.c:67 msgid "Show Player" @@ -1269,7 +1352,7 @@ #: src/audacious/ui_manager.c:69 src/audacious/ui_manager.c:70 msgid "Show Playlist Editor" -msgstr "显示æ’放列表" +msgstr "显示æ’放列表编辑器" #: src/audacious/ui_manager.c:72 src/audacious/ui_manager.c:73 msgid "Show Equalizer" @@ -1289,7 +1372,7 @@ #: src/audacious/ui_manager.c:84 src/audacious/ui_manager.c:85 msgid "Roll up Playlist Editor" -msgstr "å·èµ·æ’放列表" +msgstr "å·èµ·æ’放列表编辑器" #: src/audacious/ui_manager.c:87 src/audacious/ui_manager.c:88 msgid "Roll up Equalizer" @@ -1301,11 +1384,11 @@ #: src/audacious/ui_manager.c:93 src/audacious/ui_manager.c:94 msgid "Easy Move" -msgstr "如æ„移动" +msgstr "简å•ç§»åŠ¨" #: src/audacious/ui_manager.c:102 msgid "Analyzer" -msgstr "分æžå™¨æ¨¡å¼" +msgstr "分æžå™¨" #: src/audacious/ui_manager.c:103 msgid "Scope" @@ -1406,7 +1489,7 @@ #: src/audacious/ui_manager.c:170 msgid "Playback" -msgstr "回放" +msgstr "é‡æ”¾" #: src/audacious/ui_manager.c:172 src/audacious/ui_manager.c:173 msgid "Play" @@ -1486,7 +1569,7 @@ #: src/audacious/ui_manager.c:218 msgid "Loads a playlist file into the selected playlist." -msgstr "åŠ å…¥ä¸€ä¸ªåˆ—è¡¨åˆ°å½“å‰åˆ—表" +msgstr "å°†ä¸€ä¸ªåˆ—è¡¨æ–‡ä»¶åŠ å…¥åˆ°å½“å‰æ’放列表" #: src/audacious/ui_manager.c:220 msgid "Save List" @@ -1498,7 +1581,7 @@ #: src/audacious/ui_manager.c:223 msgid "Save Default List" -msgstr "ä¿å˜ä¸ºé»˜è®¤åˆ—表" +msgstr "ä¿å˜é»˜è®¤åˆ—表" #: src/audacious/ui_manager.c:224 msgid "Saves the selected playlist to the default location." @@ -1510,7 +1593,7 @@ #: src/audacious/ui_manager.c:228 msgid "Refreshes metadata associated with a playlist entry." -msgstr "刷新媒体è”åˆä¿¡æ¯åˆ°åˆ—表æ¡ç›®ã€‚" +msgstr "刷新媒体元信æ¯åˆ°åˆ—表æ¡ç›®ã€‚" #: src/audacious/ui_manager.c:231 msgid "List Manager" @@ -1530,7 +1613,7 @@ #: src/audacious/ui_manager.c:243 msgid "Adds a remote track to the playlist." -msgstr "æ·»åŠ éŸ³è½¨åˆ°åˆ—è¡¨" +msgstr "æ·»åŠ è¿œç¨‹éŸ³è½¨åˆ°åˆ—è¡¨" #: src/audacious/ui_manager.c:246 msgid "Add Files..." @@ -1542,7 +1625,7 @@ #: src/audacious/ui_manager.c:252 msgid "Search and Select" -msgstr "æœç´¢å¹¶ä¸”选定" +msgstr "æœç´¢å¹¶é€‰æ‹©" #: src/audacious/ui_manager.c:253 msgid "" @@ -1592,12 +1675,12 @@ #: src/audacious/ui_manager.c:278 msgid "Remove Duplicates" -msgstr "移除é‡å¤" +msgstr "移除é‡å¤é¡¹" #: src/audacious/ui_manager.c:280 src/audacious/ui_manager.c:316 #: src/audacious/ui_manager.c:346 msgid "By Title" -msgstr "åŸºäºŽæ ‡é¢˜" +msgstr "æ ¹æ®æ ‡é¢˜" #: src/audacious/ui_manager.c:281 msgid "Removes duplicate entries from the playlist by title." @@ -1606,7 +1689,7 @@ #: src/audacious/ui_manager.c:284 src/audacious/ui_manager.c:324 #: src/audacious/ui_manager.c:354 msgid "By Filename" -msgstr "基于文件å" +msgstr "æ ¹æ®æ–‡ä»¶å" #: src/audacious/ui_manager.c:285 msgid "Removes duplicate entries from the playlist by filename." @@ -1615,7 +1698,7 @@ #: src/audacious/ui_manager.c:288 src/audacious/ui_manager.c:328 #: src/audacious/ui_manager.c:358 msgid "By Path + Filename" -msgstr "按路径+文件å" +msgstr "æ ¹æ®è·¯å¾„+文件å" #: src/audacious/ui_manager.c:289 msgid "Removes duplicate entries from the playlist by their full path." @@ -1623,7 +1706,7 @@ #: src/audacious/ui_manager.c:292 msgid "Remove All" -msgstr "åˆ é™¤å…¨éƒ¨" +msgstr "å…¨éƒ¨åˆ é™¤" #: src/audacious/ui_manager.c:293 msgid "Removes all entries from the playlist." @@ -1639,7 +1722,7 @@ #: src/audacious/ui_manager.c:300 msgid "Remove Selected" -msgstr "åˆ é™¤é€‰ä¸" +msgstr "åˆ é™¤é€‰ä¸çš„" #: src/audacious/ui_manager.c:301 msgid "Remove selected entries from the playlist." @@ -1711,29 +1794,29 @@ #: src/audacious/ui_manager.c:344 msgid "Sort Selected" -msgstr "排åºé€‰æ‹©" +msgstr "排åºé€‰æ‹©çš„项" #: src/audacious/ui_manager.c:380 #, fuzzy msgid "File" -msgstr "ç«ç„°" +msgstr "文件" #: src/audacious/ui_manager.c:381 msgid "Help" -msgstr "" +msgstr "帮助" #: src/audacious/ui_manager.c:383 #, fuzzy msgid "Plugin Services" -msgstr "æ’件" +msgstr "æ’件æœåŠ¡" #: src/audacious/ui_manager.c:385 src/audacious/ui_manager.c:388 msgid "View Track Details" -msgstr "查看音轨信æ¯" +msgstr "查看音轨详细信æ¯" #: src/audacious/ui_manager.c:386 src/audacious/ui_manager.c:389 msgid "View track details" -msgstr "查看音轨信æ¯" +msgstr "查看音轨详细信æ¯" #: src/audacious/ui_manager.c:394 msgid "Play File" @@ -1753,164 +1836,169 @@ #: src/audacious/ui_manager.c:400 #, fuzzy -msgid "Plugin services" -msgstr "æ’件" - -#: src/audacious/ui_manager.c:402 +msgid "Last.fm radio" +msgstr "Last.fm 广æ’" + +#: src/audacious/ui_manager.c:401 +#, fuzzy +msgid "Play Last.fm radio" +msgstr "Last.fm 广æ’" + +#: src/audacious/ui_manager.c:405 msgid "Preferences" msgstr "首选项" -#: src/audacious/ui_manager.c:403 -msgid "Open preferences window" -msgstr "打开首选项窗å£" - -#: src/audacious/ui_manager.c:405 -msgid "_Quit" -msgstr "退出(_Q)" - #: src/audacious/ui_manager.c:406 +msgid "Open preferences window" +msgstr "打开首选项窗å£" + +#: src/audacious/ui_manager.c:408 +msgid "_Quit" +msgstr "退出(_Q)" + +#: src/audacious/ui_manager.c:409 msgid "Quit Audacious" msgstr "退出 Audacious" -#: src/audacious/ui_manager.c:408 src/audacious/ui_manager.c:409 -msgid "Set A-B" -msgstr "设置 A-B" - #: src/audacious/ui_manager.c:411 src/audacious/ui_manager.c:412 -msgid "Clear A-B" -msgstr "清除 A-B" +msgid "Set A-B" +msgstr "设置 A-B" #: src/audacious/ui_manager.c:414 src/audacious/ui_manager.c:415 -msgid "Jump to Playlist Start" -msgstr "跳到列表最å‰" +msgid "Clear A-B" +msgstr "清除 A-B" #: src/audacious/ui_manager.c:417 src/audacious/ui_manager.c:418 +msgid "Jump to Playlist Start" +msgstr "跳到列表开始处" + +#: src/audacious/ui_manager.c:420 src/audacious/ui_manager.c:421 msgid "Jump to File" msgstr "跳到文件" -#: src/audacious/ui_manager.c:423 +#: src/audacious/ui_manager.c:426 msgid "Queue Toggle" msgstr "队列切æ¢" -#: src/audacious/ui_manager.c:424 +#: src/audacious/ui_manager.c:427 msgid "Enables/disables the entry in the playlist's queue." msgstr "打开/å…³é—列表队列项目" -#: src/audacious/ui_manager.c:431 +#: src/audacious/ui_manager.c:434 msgid "Load" msgstr "装入" -#: src/audacious/ui_manager.c:432 +#: src/audacious/ui_manager.c:435 msgid "Import" msgstr "导入" -#: src/audacious/ui_manager.c:433 +#: src/audacious/ui_manager.c:436 msgid "Save" msgstr "ä¿å˜" -#: src/audacious/ui_manager.c:434 +#: src/audacious/ui_manager.c:437 msgid "Delete" msgstr "åˆ é™¤" -#: src/audacious/ui_manager.c:436 src/audacious/ui_manager.c:457 -#: src/audacious/ui_manager.c:472 -msgid "Preset" -msgstr "å‡è¡¡è®¾ç½®" - -#: src/audacious/ui_manager.c:437 -msgid "Load preset" -msgstr "读å–å‡è¡¡è®¾ç½®" - #: src/audacious/ui_manager.c:439 src/audacious/ui_manager.c:460 #: src/audacious/ui_manager.c:475 -msgid "Auto-load preset" -msgstr "自动装入å‡è¡¡è®¾ç½®" +msgid "Preset" +msgstr "å‡è¡¡è®¾ç½®" #: src/audacious/ui_manager.c:440 -msgid "Load auto-load preset" -msgstr "读å–自动装入å‡è¡¡è®¾ç½®" +msgid "Load preset" +msgstr "读å–å‡è¡¡è®¾ç½®" #: src/audacious/ui_manager.c:442 src/audacious/ui_manager.c:463 -msgid "Default" -msgstr "默认" +#: src/audacious/ui_manager.c:478 +msgid "Auto-load preset" +msgstr "自动载入å‡è¡¡è®¾ç½®" #: src/audacious/ui_manager.c:443 -msgid "Load default preset into equalizer" -msgstr "读å–默认å‡è¡¡è®¾ç½®åˆ°å‡è¡¡å™¨" - -#: src/audacious/ui_manager.c:445 -msgid "Zero" -msgstr "æ— å¢žç›Šè°ƒèŠ‚" +msgid "Load auto-load preset" +msgstr "载入自动装载的å‡è¡¡è®¾ç½®" + +#: src/audacious/ui_manager.c:445 src/audacious/ui_manager.c:466 +msgid "Default" +msgstr "默认" #: src/audacious/ui_manager.c:446 -msgid "Set equalizer preset levels to zero" -msgstr "设置å‡è¡¡å™¨å‡è¡¡è®¾ç½®ä¸ºæ— 增益调节" +msgid "Load default preset into equalizer" +msgstr "读å–默认å‡è¡¡è®¾ç½®åˆ°å‡è¡¡å™¨" #: src/audacious/ui_manager.c:448 +msgid "Zero" +msgstr "æ— å¢žç›Šè°ƒèŠ‚" + +#: src/audacious/ui_manager.c:449 +msgid "Set equalizer preset levels to zero" +msgstr "设置å‡è¡¡å™¨å‡è¡¡è®¾ç½®ä¸ºæ— 增益调节" + +#: src/audacious/ui_manager.c:451 msgid "From file" msgstr "从文件" -#: src/audacious/ui_manager.c:449 +#: src/audacious/ui_manager.c:452 msgid "Load preset from file" msgstr "从文件读å–å‡è¡¡è®¾ç½®" -#: src/audacious/ui_manager.c:451 +#: src/audacious/ui_manager.c:454 msgid "From WinAMP EQF file" msgstr "从 WinAMP EQF 文件" -#: src/audacious/ui_manager.c:452 -msgid "Load preset from WinAMP EQF file" -msgstr "从 WinAMP EQF 文件读å–å‡è¡¡è®¾ç½®" - -#: src/audacious/ui_manager.c:454 -msgid "WinAMP Presets" -msgstr "WinAMP å‡è¡¡è®¾ç½®" - #: src/audacious/ui_manager.c:455 -msgid "Import WinAMP presets" -msgstr "导入 WinAMP 预设å‡è¡¡è®¾ç½®" +msgid "Load preset from WinAMP EQF file" +msgstr "从 WinAMP EQF 文件读å–å‡è¡¡è®¾ç½®" + +#: src/audacious/ui_manager.c:457 +msgid "WinAMP Presets" +msgstr "WinAMP å‡è¡¡è®¾ç½®" #: src/audacious/ui_manager.c:458 +msgid "Import WinAMP presets" +msgstr "导入 WinAMP 预设å‡è¡¡è®¾ç½®" + +#: src/audacious/ui_manager.c:461 msgid "Save preset" msgstr "ä¿å˜å‡è¡¡è®¾ç½®" -#: src/audacious/ui_manager.c:461 +#: src/audacious/ui_manager.c:464 msgid "Save auto-load preset" msgstr "ä¿å˜è‡ªåŠ¨è¯»å–å‡è¡¡è®¾ç½®" -#: src/audacious/ui_manager.c:464 +#: src/audacious/ui_manager.c:467 msgid "Save default preset" msgstr "ä¿å˜é»˜è®¤å‡è¡¡è®¾ç½®" -#: src/audacious/ui_manager.c:466 +#: src/audacious/ui_manager.c:469 msgid "To file" msgstr "到文件" -#: src/audacious/ui_manager.c:467 +#: src/audacious/ui_manager.c:470 msgid "Save preset to file" msgstr "ä¿å˜å‡è¡¡è®¾ç½®åˆ°æ–‡ä»¶" -#: src/audacious/ui_manager.c:469 +#: src/audacious/ui_manager.c:472 msgid "To WinAMP EQF file" msgstr "到 WinAMP EQF 文件" -#: src/audacious/ui_manager.c:470 +#: src/audacious/ui_manager.c:473 msgid "Save preset to WinAMP EQF file" msgstr "ä¿å˜å‡è¡¡è®¾ç½®åˆ° WinAMP EQF 文件" -#: src/audacious/ui_manager.c:473 +#: src/audacious/ui_manager.c:476 msgid "Delete preset" msgstr "åˆ é™¤å‡è¡¡è®¾ç½®" -#: src/audacious/ui_manager.c:476 +#: src/audacious/ui_manager.c:479 msgid "Delete auto-load preset" msgstr "åˆ é™¤è‡ªåŠ¨è¯»å–å‡è¡¡è®¾ç½®" -#: src/audacious/ui_playlist.c:477 +#: src/audacious/ui_playlist.c:476 msgid "Search entries in active playlist" msgstr "在当å‰åˆ—表ä¸æœç´¢æ¡ç›®" -#: src/audacious/ui_playlist.c:485 +#: src/audacious/ui_playlist.c:484 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 " @@ -1920,47 +2008,47 @@ "填写一个或多个域æ¥åœ¨åˆ—表ä¸é€‰æ‹©é¡¹ç›®ã€‚ 域ä¸å¯ä»¥ä½¿ç”¨æ£è§„表达å¼ã€‚å¦‚æžœä½ ä¸çŸ¥é“如何" "使用æ£è§„表达å¼ã€‚åªè¦è¾“å…¥ä½ æƒ³æœç´¢çš„æ–‡å—一部分就å¯ä»¥äº†ã€‚" -#: src/audacious/ui_playlist.c:493 +#: src/audacious/ui_playlist.c:492 #, fuzzy msgid "Title: " msgstr "æ ‡é¢˜" -#: src/audacious/ui_playlist.c:500 +#: src/audacious/ui_playlist.c:499 #, fuzzy msgid "Album: " msgstr "专辑" -#: src/audacious/ui_playlist.c:507 +#: src/audacious/ui_playlist.c:506 msgid "Artist: " msgstr "艺术家:" -#: src/audacious/ui_playlist.c:514 +#: src/audacious/ui_playlist.c:513 msgid "Filename: " msgstr "文件å:" -#: src/audacious/ui_playlist.c:522 +#: src/audacious/ui_playlist.c:521 msgid "Clear previous selection before searching" msgstr "在æœç´¢å‰æ¸…除以å‰çš„选择" -#: src/audacious/ui_playlist.c:525 +#: src/audacious/ui_playlist.c:524 msgid "Automatically toggle queue for matching entries" msgstr "æœç´¢ç»“果自动排åº" -#: src/audacious/ui_playlist.c:528 +#: src/audacious/ui_playlist.c:527 msgid "Create a new playlist with matching entries" msgstr "å°†æœç´¢ç»“果建立为新的æ’放列表" -#: src/audacious/ui_playlist.c:748 +#: src/audacious/ui_playlist.c:747 #, c-format msgid "Error writing playlist \"%s\": %s" msgstr "写入æ’放列表“%sâ€ï¼š%s 出错" -#: src/audacious/ui_playlist.c:770 +#: src/audacious/ui_playlist.c:769 #, c-format msgid "%s already exist. Continue?" msgstr "%s å·²ç»å˜åœ¨ã€‚继ç»å—?" -#: src/audacious/ui_playlist.c:785 +#: src/audacious/ui_playlist.c:784 #, c-format msgid "" "<b><big>Unable to save playlist.</big></b>\n" @@ -1970,89 +2058,82 @@ "<b><big>æ— æ³•ä¿å˜æ’放列表ï¼</big></b>\n" "未知文件类型 %s\n" -#: src/audacious/ui_playlist.c:911 +#: src/audacious/ui_playlist.c:907 #, fuzzy msgid "Save as Static Playlist" -msgstr "ä¿å˜æ’放列表" - -#: src/audacious/ui_playlist.c:918 +msgstr "ä¿å˜ä¸ºé™æ€æ’放列表" + +#: src/audacious/ui_playlist.c:914 msgid "Use Relative Path" -msgstr "" - -#: src/audacious/ui_playlist.c:940 +msgstr "使用相对路径" + +#: src/audacious/ui_playlist.c:936 msgid "Load Playlist" -msgstr "装入æ’放列表" - -#: src/audacious/ui_playlist.c:953 +msgstr "载入æ’放列表" + +#: src/audacious/ui_playlist.c:949 msgid "Save Playlist" msgstr "ä¿å˜æ’放列表" -#: src/audacious/ui_playlist.c:1508 +#: src/audacious/ui_playlist.c:1500 msgid "Audacious Playlist Editor" msgstr "Audacious æ’放列表编辑器" -#: src/audacious/ui_playlist_manager.c:363 +#: src/audacious/ui_playlist_manager.c:255 msgid "Playlist Manager" msgstr "列表管ç†å™¨" -#: src/audacious/ui_playlist_manager.c:409 +#: src/audacious/ui_playlist_manager.c:294 msgid "Entries" msgstr "æ¡ç›®" -#: src/audacious/ui_playlist_manager.c:424 +#: src/audacious/ui_playlist_manager.c:306 msgid "_Rename" -msgstr "文件å(_R)" +msgstr "é‡å‘½å(_R)" + +#: src/audacious/ui_preferences.c:111 +msgid "Audio" +msgstr "音频" #: src/audacious/ui_preferences.c:112 -msgid "Audio" -msgstr "音频" - -#: src/audacious/ui_preferences.c:113 msgid "Connectivity" msgstr "连接" -#: src/audacious/ui_preferences.c:126 +#: src/audacious/ui_preferences.c:125 msgid "Tracknumber" msgstr "音轨编å·" -#: src/audacious/ui_preferences.c:129 +#: src/audacious/ui_preferences.c:128 msgid "Filepath" msgstr "文件路径" -#: src/audacious/ui_preferences.c:130 +#: src/audacious/ui_preferences.c:129 msgid "Date" msgstr "日期" -#: src/audacious/ui_preferences.c:132 +#: src/audacious/ui_preferences.c:131 msgid "Comment" msgstr "备注" -#: src/audacious/ui_preferences.c:133 -msgid "Codec" -msgstr "" - -#: src/audacious/ui_preferences.c:134 -#, fuzzy -msgid "Quality" -msgstr "退出(_Q)" - -#: src/audacious/ui_preferences.c:155 +#: src/audacious/ui_preferences.c:152 msgid "localhost" -msgstr "本地 (localhost)" - -#: src/audacious/ui_preferences.c:390 +msgstr "本地主机 (localhost)" + +#: src/audacious/ui_preferences.c:396 src/audacious/ui_preferences.c:483 +#: src/audacious/ui_preferences.c:572 src/audacious/ui_preferences.c:668 msgid "Enabled" msgstr "å¯ç”¨" -#: src/audacious/ui_preferences.c:406 +#: src/audacious/ui_preferences.c:412 src/audacious/ui_preferences.c:499 +#: src/audacious/ui_preferences.c:588 src/audacious/ui_preferences.c:684 msgid "Description" msgstr "æè¿°" -#: src/audacious/ui_preferences.c:1395 +#: src/audacious/ui_preferences.c:1684 msgid "Category" -msgstr "项目" - -#: src/audacious/ui_preferences.c:1963 +msgstr "ç§ç±»" + +#: src/audacious/ui_preferences.c:2231 msgid "Preferences Window" msgstr "首选项窗å£" @@ -2112,61 +2193,6 @@ msgid "Add/Open URL Dialog" msgstr "打开/æ·»åŠ URL 对è¯æ¡†" -#~ msgid "Show window manager decorations" -#~ 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 "Station:" -#~ msgstr "æ„大利è¯ï¼š" - -#, 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 "Converter Type:" #~ msgstr "转æ¢å™¨ç±»åž‹ï¼š"
--- a/po/zh_TW.po Wed Oct 24 10:41:53 2007 +0300 +++ b/po/zh_TW.po Fri Nov 16 05:36:42 2007 +0200 @@ -518,6 +518,15 @@ msgid "Enable Sampling Rate Converter" msgstr "å–樣率:" +#: src/audacious/glade/prefswin.glade:4338 +msgid "" +"Best Sinc Interpolation\n" +"Medium Sinc Interpolation\n" +"Fastest Sinc Interpolation\n" +"ZOH Interpolation\n" +"Linear Interpolation" +msgstr "" + #: src/audacious/glade/prefswin.glade:4361 msgid "Interpolation Engine:" msgstr ""
--- a/src/audacious/Makefile Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/Makefile Fri Nov 16 05:36:42 2007 +0200 @@ -25,7 +25,6 @@ input.c \ logger.c \ main.c \ - memorypool.c \ mime.c \ output.c \ pixbuf_effects.c \
--- a/src/audacious/dbus-service.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/dbus-service.h Fri Nov 16 05:36:42 2007 +0200 @@ -111,8 +111,7 @@ /* Legacy API */ // Audacious General Information -gboolean audacious_rc_version(RemoteObject *obj, gchar **version, - GError **error); +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, @@ -183,4 +182,36 @@ gboolean audacious_rc_shuffle(RemoteObject *obj, gboolean *is_shuffle, GError **error); gboolean 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_skin(RemoteObject *obj, gchar **skin, GError **error); +gboolean audacious_rc_set_skin(RemoteObject *obj, gchar *skin, 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); + +/* 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); + #endif // !_DBUS_SERVICE_H
--- a/src/audacious/dbus.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/dbus.c Fri Nov 16 05:36:42 2007 +0200 @@ -23,7 +23,10 @@ #endif #include <glib.h> +#include <dbus/dbus.h> +#include <dbus/dbus-glib.h> #include <dbus/dbus-glib-bindings.h> +#include <dbus/dbus-glib-lowlevel.h> #include "dbus.h" #include "dbus-service.h" #include "dbus-server-bindings.h" @@ -37,10 +40,12 @@ #include "playlist.h" #include "ui_playlist.h" #include "ui_preferences.h" -#include "memorypool.h" #include "tuple.h" #include "ui_jumptotrack.h" #include "strings.h" +#include "ui_credits.h" +#include "skin.h" +#include "ui_fileopener.h" static DBusGConnection *dbus_conn = NULL; static guint signals[LAST_SIG] = { 0 }; @@ -159,6 +164,7 @@ void init_dbus() { GError *error = NULL; + DBusConnection *local_conn; // Initialize the DBus connection dbus_conn = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (dbus_conn == NULL) { @@ -173,6 +179,9 @@ mpris = g_object_new(mpris_player_get_type(), NULL); g_object_new(mpris_tracklist_get_type(), NULL); g_message("D-Bus support has been activated"); + + local_conn = dbus_g_connection_get_connection(dbus_conn); + dbus_connection_set_exit_on_disconnect(local_conn, FALSE); } GValue *tuple_value_to_gvalue(Tuple *tuple, const gchar *key) { @@ -484,8 +493,7 @@ } // Audacious General Information -gboolean audacious_rc_version(RemoteObject *obj, gchar **version, - GError **error) { +gboolean audacious_rc_version(RemoteObject *obj, gchar **version, GError **error) { *version = g_strdup(VERSION); return TRUE; } @@ -792,6 +800,229 @@ return TRUE; } +/* New on Oct 5 */ +gboolean audacious_rc_show_prefs_box(RemoteObject *obj, gboolean show, GError **error) { + if (has_x11_connection) { + if (show) + show_prefs_window(); + else + hide_prefs_window(); + } + return TRUE; +} +gboolean audacious_rc_show_about_box(RemoteObject *obj, gboolean show, GError **error) { + if (has_x11_connection) { + if (show) + show_about_window(); + else + hide_about_window(); + } + return TRUE; +} + +gboolean audacious_rc_show_jtf_box(RemoteObject *obj, gboolean show, GError **error) { + if (has_x11_connection) { + if (show) + ui_jump_to_track(); + else + ui_jump_to_track_hide(); + } + return TRUE; +} + +gboolean audacious_rc_show_filebrowser(RemoteObject *obj, gboolean show, GError **error) +{ + if (has_x11_connection) { + if (show) + run_filebrowser(FALSE); + else + hide_filebrowser(); + } + return TRUE; +} + +gboolean audacious_rc_play_pause(RemoteObject *obj, GError **error) { + if (playback_get_playing()) + playback_pause(); + else + playback_initiate(); + return TRUE; +} + +gboolean audacious_rc_activate(RemoteObject *obj, GError **error) { + gtk_window_present(GTK_WINDOW(mainwin)); + return TRUE; +} + +gboolean audacious_rc_get_skin(RemoteObject *obj, gchar **skin, GError **error) { + *skin = g_strdup(bmp_active_skin->path); + return TRUE; +} + +gboolean audacious_rc_set_skin(RemoteObject *obj, gchar *skin, GError **error) { + if (has_x11_connection == TRUE) + bmp_active_skin_load(skin); + return TRUE; +} + +gboolean audacious_rc_get_info(RemoteObject *obj, gint *rate, gint *freq, gint *nch, GError **error) { + playback_get_sample_params(rate, freq, nch); + return TRUE; +} + +gboolean audacious_rc_toggle_aot(RemoteObject *obj, gboolean ontop, GError **error) { + if (has_x11_connection) { + mainwin_set_always_on_top(ontop); + } + return TRUE; +} + +/* New on Oct 9: Queue */ +gboolean audacious_rc_playqueue_add(RemoteObject *obj, gint pos, GError **error) { + if (pos < (guint)playlist_get_length(playlist_get_active())) + playlist_queue_position(playlist_get_active(), pos); + return TRUE; +} + +gboolean audacious_rc_playqueue_remove(RemoteObject *obj, gint pos, GError **error) { + if (pos < (guint)playlist_get_length(playlist_get_active())) + playlist_queue_remove(playlist_get_active(), pos); + return TRUE; +} + +gboolean audacious_rc_playqueue_clear(RemoteObject *obj, GError **error) { + playlist_clear_queue(playlist_get_active()); + return TRUE; +} + +gboolean audacious_rc_get_playqueue_length(RemoteObject *obj, gint *length, GError **error) { + *length = playlist_queue_get_length(playlist_get_active()); + return TRUE; +} + +gboolean audacious_rc_queue_get_list_pos(RemoteObject *obj, gint qpos, gint *pos, GError **error) { + if (playback_get_playing()) + *pos = playlist_get_queue_qposition_number(playlist_get_active(), qpos); + + return TRUE; +} + +gboolean audacious_rc_queue_get_queue_pos(RemoteObject *obj, gint pos, gint *qpos, GError **error) { + if (playback_get_playing()) + *qpos = playlist_get_queue_position_number(playlist_get_active(), pos); + + return TRUE; +} + +gboolean audacious_rc_playqueue_is_queued(RemoteObject *obj, gint pos, gboolean *is_queued, GError **error) { + *is_queued = playlist_is_position_queued(playlist_get_active(), pos); + return TRUE; +} + +gboolean audacious_rc_playlist_ins_url_string(RemoteObject *obj, gchar *url, gint pos, GError **error) { + if (pos >= 0 && url && strlen(url)) { + playlist_ins_url(playlist_get_active(), url, pos); + } + return TRUE; +} + +static void call_playlist_add_url(GList *list, gpointer *data) { + playlist_add_url(playlist_get_active(), list->data); +} + +gboolean audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error) { + g_list_foreach((GList *)list, (GFunc)call_playlist_add_url, NULL); + return TRUE; +} + +gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error) { + GList *playlists = NULL; + Playlist *new_pl = playlist_new(); + gchar *pl_name = NULL; + + pl_name = (gchar*)playlist_get_current_name(new_pl); + if(!pl_name) + pl_name = g_strdup("New Playlist"); + playlist_set_current_name(new_pl, pl_name); + g_free(pl_name); + + playlists = playlist_get_playlists(); + playlist_add_playlist(new_pl); + +// DISABLE_MANAGER_UPDATE(); + playlist_select_playlist(new_pl); +// ENABLE_MANAGER_UPDATE(); + + playlist_add_url(new_pl, url); + + return TRUE; +} + +/* New on Nov 7: Equalizer */ +gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error) +{ + int i; + + *preamp = (gdouble)equalizerwin_get_preamp(); + *bands = g_array_sized_new(FALSE, FALSE, sizeof(gdouble), 10); + + for(i=0; i<10; i++){ + gdouble val = (gdouble)equalizerwin_get_band(i); + g_array_append_val(*bands, val); + } + + return TRUE; +} + +gboolean audacious_rc_get_eq_preamp(RemoteObject *obj, gdouble *preamp, GError **error) +{ + *preamp = (gdouble)equalizerwin_get_preamp(); + return TRUE; +} + +gboolean audacious_rc_get_eq_band(RemoteObject *obj, gint band, gdouble *value, GError **error) +{ + *value = (gdouble)equalizerwin_get_band(band); + return TRUE; +} + +gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error) +{ + gdouble element; + int i; + + equalizerwin_set_preamp((gfloat)preamp); + + for (i = 0; i < 10; i++) { + element = g_array_index(bands, gdouble, i); + equalizerwin_set_band(i, (gfloat)element); + } + equalizerwin_eq_changed(); + + return TRUE; +} + +gboolean audacious_rc_set_eq_preamp(RemoteObject *obj, gdouble preamp, GError **error) +{ + equalizerwin_set_preamp((gfloat)preamp); + equalizerwin_eq_changed(); + return TRUE; +} + +gboolean audacious_rc_set_eq_band(RemoteObject *obj, gint band, gdouble value, GError **error) +{ + equalizerwin_set_band(band, (gfloat)value); + equalizerwin_eq_changed(); + return TRUE; +} + +gboolean audacious_rc_equalizer_activate(RemoteObject *obj, gboolean active, GError **error) +{ + equalizer_activate(active); + return TRUE; +} + + DBusGProxy *audacious_get_dbus_proxy(void) { DBusGConnection *connection = NULL;
--- a/src/audacious/glade/prefswin.glade Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/glade/prefswin.glade Fri Nov 16 05:36:42 2007 +0200 @@ -4698,7 +4698,6 @@ <child> <widget class="GtkButton" id="reload_plugins"> - <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> <property name="relief">GTK_RELIEF_NORMAL</property>
--- a/src/audacious/main.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/main.c Fri Nov 16 05:36:42 2007 +0200 @@ -1081,6 +1081,13 @@ {NULL}, }; +static gboolean +aud_start_playback(gpointer unused) +{ + drct_play(); + return FALSE; +} + static void handle_cmd_line_options(BmpCmdLineOpt * options, gboolean remote) @@ -1088,6 +1095,9 @@ gchar **filenames = options->filenames; #ifdef USE_DBUS DBusGProxy *session = audacious_get_dbus_proxy(); + gboolean is_running = audacious_remote_is_running(session); +#else + gboolean is_running = FALSE; #endif if (options->version) @@ -1097,65 +1107,74 @@ } #ifdef USE_DBUS - if (filenames != NULL) + if (is_running) { - gint pos = 0; - gint i = 0; - GList *fns = NULL; - - for (i = 0; filenames[i] != NULL; i++) + if (filenames != NULL) { - gchar *filename; - gchar *current_dir = g_get_current_dir(); + gint pos = 0; + gint i = 0; + GList *fns = NULL; - if (filenames[i][0] == '/' || strstr(filenames[i], "://")) - filename = g_strdup(filenames[i]); - else - filename = g_build_filename(current_dir, filenames[i], NULL); - - fns = g_list_prepend(fns, filename); + for (i = 0; filenames[i] != NULL; i++) + { + gchar *filename; + gchar *current_dir = g_get_current_dir(); - g_free(current_dir); - } - - fns = g_list_reverse(fns); + if (!strstr(filenames[i], "://")) + { + if (filenames[i][0] == '/') + filename = g_strdup_printf("file:///%s", filenames[i]); + else + filename = g_strdup_printf("file:///%s/%s", current_dir, filenames[i]); + } + else + filename = g_strdup(filenames[i]); - if (options->load_skins) - { - audacious_remote_set_skin(session, filenames[0]); - skin_install_skin(filenames[0]); - } - else - { - if (options->enqueue_to_temp) - audacious_remote_playlist_enqueue_to_temp(session, filenames[0]); + fns = g_list_prepend(fns, filename); - if (options->enqueue && options->play) - pos = audacious_remote_get_playlist_length(session); - - if (!options->enqueue) - { - audacious_remote_playlist_clear(session); - audacious_remote_stop(session); + g_free(current_dir); } - audacious_remote_playlist_add(session, fns); + fns = g_list_reverse(fns); - if (options->enqueue && options->play && - audacious_remote_get_playlist_length(session) > pos) - audacious_remote_set_playlist_pos(session, pos); + if (options->load_skins) + { + audacious_remote_set_skin(session, filenames[0]); + skin_install_skin(filenames[0]); + } + else + { + GList *i; + + if (options->enqueue_to_temp) + audacious_remote_playlist_enqueue_to_temp(session, filenames[0]); + + if (options->enqueue && options->play) + pos = audacious_remote_get_playlist_length(session); - if (!options->enqueue) - audacious_remote_play(session); - } + if (!options->enqueue) + { + audacious_remote_playlist_clear(session); + audacious_remote_stop(session); + } + + for (i = fns; i != NULL; i = i->next) + audacious_remote_playlist_add_url_string(session, i->data); - g_list_foreach(fns, (GFunc) g_free, NULL); - g_list_free(fns); + if (options->enqueue && options->play && + audacious_remote_get_playlist_length(session) > pos) + audacious_remote_set_playlist_pos(session, pos); - g_strfreev(filenames); - } /* filename */ + if (!options->enqueue) + audacious_remote_play(session); + } - if (remote) { + g_list_foreach(fns, (GFunc) g_free, NULL); + g_list_free(fns); + + g_strfreev(filenames); + } /* filename */ + if (options->rew) audacious_remote_playlist_prev(session); @@ -1182,7 +1201,69 @@ if (options->activate) audacious_remote_activate(session); - } else { + + exit(EXIT_SUCCESS); + } + else +#endif + { + if (filenames != NULL) + { + gint pos = 0; + gint i = 0; + GList *fns = NULL; + + for (i = 0; filenames[i] != NULL; i++) + { + gchar *filename; + gchar *current_dir = g_get_current_dir(); + + if (!strstr(filenames[i], "://")) + { + if (filenames[i][0] == '/') + filename = g_strdup_printf("file:///%s", filenames[i]); + else + filename = g_strdup_printf("file:///%s/%s", current_dir, filenames[i]); + } + else + filename = g_strdup(filenames[i]); + + fns = g_list_prepend(fns, filename); + + g_free(current_dir); + } + + fns = g_list_reverse(fns); + + { + if (options->enqueue_to_temp) + drct_pl_enqueue_to_temp(filenames[0]); + + if (options->enqueue && options->play) + pos = drct_pl_get_length(); + + if (!options->enqueue) + { + drct_pl_clear(); + drct_stop(); + } + + drct_pl_add(fns); + + if (options->enqueue && options->play && + drct_pl_get_length() > pos) + drct_pl_set_pos(pos); + + if (!options->enqueue) + g_idle_add(aud_start_playback, NULL); + } + + g_list_foreach(fns, (GFunc) g_free, NULL); + g_list_free(fns); + + g_strfreev(filenames); + } /* filename */ + if (options->rew) drct_pl_prev(); @@ -1214,13 +1295,6 @@ if (options->activate) drct_activate(); } - - if(remote) { - gboolean is_running = audacious_remote_is_running(session); - if (is_running) - exit(EXIT_SUCCESS); - } -#endif } static void @@ -1385,11 +1459,6 @@ bmp_config_load(); - handle_cmd_line_options(&options, TRUE); - -#ifdef USE_DBUS - init_dbus(); -#endif mowgli_init(); if (options.headless != 1) @@ -1405,6 +1474,15 @@ /* Initialize the playlist system. */ playlist_init(); + playlist = playlist_get_active(); + playlist_load(playlist, bmp_paths[BMP_PATH_PLAYLIST_FILE]); + playlist_set_position(playlist, cfg.playlist_position); + + handle_cmd_line_options(&options, TRUE); + +#ifdef USE_DBUS + init_dbus(); +#endif if (options.headless != 1) { @@ -1426,11 +1504,6 @@ GDK_THREADS_ENTER(); } - /* Load the default playlist in. */ - playlist = playlist_get_active(); - playlist_load(playlist, bmp_paths[BMP_PATH_PLAYLIST_FILE]); - playlist_set_position(playlist, cfg.playlist_position); - /* Load extra playlists */ if(!dir_foreach(bmp_paths[BMP_PATH_PLAYLISTS_DIR], load_extra_playlist, playlist, NULL)) {
--- a/src/audacious/memorypool.c Wed Oct 24 10:41:53 2007 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -/* Audacious - * Copyright (c) 2007 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. - */ - -#include <glib.h> -#include <stdlib.h> -#include <string.h> - -#include "util.h" -#include "memorypool.h" - -/* visibility of this object is not available to the outside */ -struct _MemoryPool { - GList *stack; - GDestroyNotify notify; - GMutex *mutex; -}; - -MemoryPool * -memory_pool_new(void) -{ - MemoryPool *pool; - - pool = g_new0(MemoryPool, 1); - pool->notify = g_free; - pool->mutex = g_mutex_new(); - - return pool; -} - -MemoryPool * -memory_pool_with_custom_destructor(GDestroyNotify notify) -{ - MemoryPool *pool; - - pool = g_new0(MemoryPool, 1); - pool->notify = notify; - pool->mutex = g_mutex_new(); - - return pool; -} - -gpointer -memory_pool_add(MemoryPool * pool, gpointer ptr) -{ - g_mutex_lock(pool->mutex); - pool->stack = g_list_append(pool->stack, ptr); - g_mutex_unlock(pool->mutex); - - return ptr; -} - -gpointer -memory_pool_allocate(MemoryPool * pool, gsize sz) -{ - gpointer addr; - - g_mutex_lock(pool->mutex); - addr = g_malloc0(sz); - pool->stack = g_list_append(pool->stack, addr); - g_mutex_unlock(pool->mutex); - - return addr; -} - -void -memory_pool_release(MemoryPool * pool, gpointer addr) -{ - g_mutex_lock(pool->mutex); - - pool->stack = g_list_remove(pool->stack, addr); - pool->notify(addr); - - g_mutex_unlock(pool->mutex); -} - -static void -memory_pool_cleanup_nolock(MemoryPool * pool) -{ - GList *iter; - - for (iter = pool->stack; iter != NULL; iter = g_list_next(iter)) - { - pool->stack = g_list_delete_link(pool->stack, iter); - g_warning("MemoryPool<%p> element at %p was not released until cleanup!", pool, iter->data); - pool->notify(iter->data); - } -} - -void -memory_pool_cleanup(MemoryPool * pool) -{ - g_mutex_lock(pool->mutex); - memory_pool_cleanup_nolock(pool); - g_mutex_unlock(pool->mutex); -} - -void -memory_pool_destroy(MemoryPool * pool) -{ - g_mutex_lock(pool->mutex); - memory_pool_cleanup_nolock(pool); - g_mutex_unlock(pool->mutex); - - g_mutex_free(pool->mutex); - g_free(pool); -} - -gchar * -memory_pool_strdup(MemoryPool * pool, gchar * src) -{ - gchar *out; - gsize sz = strlen(src) + 1; - - out = memory_pool_allocate(pool, sz); - g_strlcpy(out, src, sz); - - return out; -}
--- a/src/audacious/memorypool.h Wed Oct 24 10:41:53 2007 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* Audacious - * Copyright (c) 2007 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. - */ - -#ifndef AUDACIOUS_MEMORYPOOL_H -#define AUDACIOUS_MEMORYPOOL_H - -typedef struct _MemoryPool MemoryPool; - -MemoryPool * memory_pool_new(void); -MemoryPool * memory_pool_with_custom_destructor(GDestroyNotify notify); - -gpointer memory_pool_add(MemoryPool * pool, gpointer ptr); -gpointer memory_pool_allocate(MemoryPool * pool, gsize sz); -void memory_pool_release(MemoryPool * pool, gpointer addr); - -void memory_pool_cleanup(MemoryPool * pool); - -void memory_pool_destroy(MemoryPool * pool); - -gchar * memory_pool_strdup(MemoryPool * pool, gchar * src); - -#define memory_pool_alloc_object(pool, obj) \ - memory_pool_allocate(pool, sizeof(obj)) - -#endif
--- a/src/audacious/objects.xml Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/objects.xml Fri Nov 16 05:36:42 2007 +0200 @@ -19,7 +19,7 @@ <!-- Defined: - CMD_GET_VERSION + CMD_GET_VERSION //CHANGED: now it returns audacious version instead of protocol version. CMD_PLAY CMD_PAUSE CMD_STOP @@ -56,37 +56,39 @@ CMD_PLAYLIST_GET_TUPLE_DATA CMD_IS_ADVANCE CMD_TOGGLE_ADVANCE - + CMD_SHOW_PREFS_BOX + CMD_SHOW_ABOUT_BOX + CMD_SHOW_JTF_BOX - Remaining: - CMD_PLAYLIST_ADD + Newly defined: + CMD_PLAY_PAUSE + CMD_ACTIVATE CMD_GET_SKIN CMD_SET_SKIN CMD_GET_INFO - CMD_GET_EQ_DATA - CMD_SET_EQ_DATA - CMD_SHOW_PREFS_BOX CMD_TOGGLE_AOT - CMD_SHOW_ABOUT_BOX - CMD_GET_EQ + CMD_GET_PLAYQUEUE_LENGTH + CMD_PLAYQUEUE_ADD + CMD_PLAYQUEUE_REMOVE + CMD_PLAYQUEUE_CLEAR + CMD_PLAYQUEUE_GET_LIST_POS //CHANGED: get list position by queue position + CMD_PLAYQUEUE_GET_QUEUE_POS //CHANGED: get queue position by list postion + CMD_PLAYQUEUE_IS_QUEUED + CMD_PLAYLIST_INS_URL_STRING + CMD_PLAYLIST_ENQUEUE_TO_TEMP + CMD_PLAYLIST_ADD + CMD_GET_EQ //CHANGED: now these functions use double due to dbus-glib restriction CMD_GET_EQ_PREAMP - CMD_GET_EQ_BAND + CMD_GET_EQ_BAND //NOTE: GArray is used for bands CMD_SET_EQ CMD_SET_EQ_PREAMP CMD_SET_EQ_BAND - CMD_PLAYLIST_INS_URL_STRING - CMD_PLAYLIST_INS - CMD_PLAY_PAUSE - CMD_PLAYQUEUE_ADD - CMD_GET_PLAYQUEUE_LENGTH - CMD_PLAYQUEUE_REMOVE - CMD_ACTIVATE - CMD_SHOW_JTF_BOX - CMD_PLAYQUEUE_CLEAR - CMD_PLAYQUEUE_IS_QUEUED - CMD_PLAYQUEUE_GET_POS - CMD_PLAYQUEUE_GET_QPOS - CMD_PLAYLIST_ENQUEUE_TO_TEMP + + Obsolete: + CMD_PLAYLIST_INS //unnecessary? + CMD_GET_EQ_DATA //obsolete + CMD_SET_EQ_DATA //obsolete + --> <node name="/"> @@ -358,5 +360,155 @@ <method name="ToggleShuffle"> <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> </method> + + <!-- Show preferences window --> + <method name="ShowPrefsBox"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="b" name="show"/> + </method> + + <!-- Show about window --> + <method name="ShowAboutBox"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="b" name="show"/> + </method> + + <!-- Show jump to file window --> + <method name="ShowJtfBox"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="b" name="show"/> + </method> + + <!-- Show filebrowser --> + <method name="ShowFilebrowser"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="b" name="show"/> + </method> + + <!-- Either play or pause --> + <method name="PlayPause"> + <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"/> + <arg type="u" direction="out" name="pos"/> + </method> + + <!-- Playqueue get playqueue pos --> + <method name="QueueGetQueuePos"> + <arg type="u" name="pos"/> + <arg type="u" direction="out" name="qpos"/> + </method> + + <!-- Get skin --> + <method name="GetSkin"> + <!-- Return filename of desired song --> + <arg type="s" direction="out" name="skin"/> + </method> + + <!-- Set skin --> + <method name="SetSkin"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <!-- Return filename of desired song --> + <arg type="s" name="skin"/> + </method> + + <!-- Get Info --> + <method name="GetInfo"> + <arg type="i" direction="out" name="rate"/> + <arg type="i" direction="out" name="freq"/> + <arg type="i" direction="out" name="nch"/> + </method> + + <method name="ToggleAot"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="b" name="ontop"/> + </method> + + <method name="GetPlayqueueLength"> + <arg type="i" direction="out" name="length"/> + </method> + + <method name="PlaylistInsUrlString"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="s" name="url"/> + <arg type="i" name="pos"/> + </method> + + <method name="PlaylistAdd"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="s" name="list"/> + </method> + + <method name="PlayqueueAdd"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="i" name="pos"/> + </method> + + <method name="PlayqueueRemove"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="i" name="pos"/> + </method> + + <method name="PlayqueueClear"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + </method> + + <method name="PlayqueueIsQueued"> + <arg type="i" name="pos"/> + <arg type="b" direction="out" name="is_queued"/> + </method> + + <method name="PlaylistEnqueueToTemp"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="s" name="url"/> + </method> + + <!-- equalizer --> + <method name="GetEq"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="d" direction="out" name="preamp"/> + <arg type="ad" direction="out" name="bands"/> + </method> + + <method name="GetEqPreamp"> + <arg type="d" direction="out" name="preamp"/> + </method> + + <method name="GetEqBand"> + <arg type="i" name="band"/> + <arg type="d" direction="out" name="value"/> + </method> + + <method name="SetEq"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="d" name="preamp"/> + <arg type="ad" name="bands"/> + </method> + + <method name="SetEqPreamp"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="d" name="preamp"/> + </method> + + <method name="SetEqBand"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="i" name="band"/> + <arg type="d" name="value"/> + </method> + + <!-- Activate/Deactivate Equalizer --> + <method name="EqualizerActivate"> + <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/> + <arg type="b" name="active"/> + </method> + </interface> </node>
--- a/src/audacious/playback.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/playback.c Fri Nov 16 05:36:42 2007 +0200 @@ -168,7 +168,7 @@ if (playback && playback->plugin->get_song_tuple) { Tuple *tuple = playback->plugin->get_song_tuple(playback->filename); if (tuple_get_value_type(tuple, FIELD_LENGTH, NULL) == TUPLE_INT) - return tuple_get_value_type(tuple, FIELD_LENGTH, NULL); + return tuple_get_int(tuple, FIELD_LENGTH, NULL); } return -1;
--- a/src/audacious/playlist.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/playlist.c Fri Nov 16 05:36:42 2007 +0200 @@ -110,6 +110,8 @@ static gboolean playlist_get_info_going = FALSE; static GThread *playlist_get_info_thread; +extern GHashTable *ext_hash; + static gint path_compare(const gchar * a, const gchar * b); static gint playlist_compare_path(PlaylistEntry * a, PlaylistEntry * b); static gint playlist_compare_filename(PlaylistEntry * a, PlaylistEntry * b); @@ -143,6 +145,8 @@ static void playlist_recalc_total_time(Playlist *); static gboolean playlist_entry_get_info(PlaylistEntry * entry); +static gboolean filter_by_extension(const gchar *filename); + static mowgli_heap_t *playlist_entry_heap = NULL; /* *********************** playlist entry code ********************** */ @@ -451,6 +455,7 @@ playlist->entries = NULL; playlist->tail = NULL; playlist->attribute = PLAYLIST_PLAIN; + playlist->serial = 0; PLAYLIST_UNLOCK(playlist); } @@ -465,6 +470,7 @@ playlist_generate_shuffle_list(playlist); playlistwin_update_list(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); playlist_manager_update(); } @@ -524,6 +530,7 @@ g_list_free_1(node); playlist_recalc_total_time_nolock(playlist); + PLAYLIST_INCR_SERIAL(playlist); } void @@ -549,6 +556,7 @@ PLAYLIST_UNLOCK(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); playlistwin_update_list(playlist); if (restart_playing) { @@ -586,6 +594,7 @@ PLAYLIST_UNLOCK(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); playlistwin_update_list(playlist); if (restart_playing) { @@ -626,6 +635,7 @@ PLAYLIST_UNLOCK(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); if (restart_playing) { if (playlist->position) @@ -658,6 +668,7 @@ playlist_get_info_scan_active = TRUE; g_mutex_unlock(mutex_scan); g_cond_signal(cond_scan); + PLAYLIST_INCR_SERIAL(playlist); } static void @@ -743,13 +754,14 @@ if (parent_tuple) tuple_free(parent_tuple); - if (tuple != NULL && tuple_get_int(tuple, FIELD_MTIME, NULL) == -1) { - // kick the scanner thread only if mtime = -1 (uninitialized) + if (!tuple || (tuple && tuple_get_int(tuple, FIELD_MTIME, NULL) == -1)) { + // kick the scanner thread when tuple == NULL or mtime = -1 (uninitialized) g_mutex_lock(mutex_scan); playlist_get_info_scan_active = TRUE; g_mutex_unlock(mutex_scan); g_cond_signal(cond_scan); } + PLAYLIST_INCR_SERIAL(playlist); } gboolean @@ -772,10 +784,13 @@ return TRUE; } - if (playlist->loading_playlist == TRUE || cfg.playlist_detect == TRUE) - dec = NULL; + if (playlist->loading_playlist == TRUE || cfg.playlist_detect == TRUE) { + dec = NULL; + if(!filter_by_extension(filename)) + return FALSE; + } else if (!str_has_prefix_nocase(filename, "http://") && - !str_has_prefix_nocase(filename, "https://")) { + !str_has_prefix_nocase(filename, "https://")) { pr = input_check_file(filename, TRUE); if (pr) { @@ -788,7 +803,9 @@ if (cfg.playlist_detect == TRUE || playlist->loading_playlist == TRUE || (playlist->loading_playlist == FALSE && dec != NULL) || (playlist->loading_playlist == FALSE && !is_playlist_name(filename) && - str_has_prefix_nocase(filename, "http"))) { + str_has_prefix_nocase(filename, "http"))) { + if(!filter_by_extension(filename)) + return FALSE; __playlist_ins_with_info_tuple(playlist, filename, pos, tuple, dec); playlist_generate_shuffle_list(playlist); playlistwin_update_list(playlist); @@ -948,8 +965,11 @@ g_free(filename); list = g_list_concat(list, sub); } - else if (cfg.playlist_detect == TRUE) - list = g_list_prepend(list, filename); + else if (cfg.playlist_detect == TRUE) { + if(filter_by_extension(filename)) { + list = g_list_prepend(list, filename); + } + } else if ((pr = input_check_file(filename, TRUE)) != NULL) { list = g_list_prepend(list, filename); @@ -985,7 +1005,6 @@ { guint entries; entries = playlist_ins_url(playlist, url, -1); -// printf("playlist_add_url: entries = %d\n", entries); return entries; } @@ -1038,8 +1057,6 @@ g_return_val_if_fail(playlist != NULL, 0); g_return_val_if_fail(string != NULL, 0); -// playlistwin_update_list(playlist); // is this necessary? --yaz - while (*string) { GList *node; guint i = 0; @@ -1081,6 +1098,7 @@ } playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); //probably necessary because there is no underlying __playlist_ins --yaz playlist_generate_shuffle_list(playlist); playlistwin_update_list(playlist); @@ -1145,6 +1163,7 @@ } playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); //tentative --yaz mainwin_set_song_info(rate, freq, nch); @@ -1368,7 +1387,7 @@ playlist_is_position_queued(Playlist *playlist, guint pos) { PlaylistEntry *entry; - GList *tmp; + GList *tmp = NULL; PLAYLIST_LOCK(playlist); entry = g_list_nth_data(playlist->entries, pos); @@ -1683,7 +1702,7 @@ void playlist_load_ins_file(Playlist *playlist, - const gchar * filename_p, + const gchar * filename_p, const gchar * playlist_name, gint pos, const gchar * title, gint len) { @@ -1707,22 +1726,27 @@ *tmp = '\0'; else { if ((playlist->loading_playlist == TRUE || - cfg.playlist_detect == TRUE)) + cfg.playlist_detect == TRUE)) { pr = NULL; + if(!filter_by_extension(filename)) + return; + } else if (!str_has_prefix_nocase(filename, "http://") && !str_has_prefix_nocase(filename, "https://")) pr = input_check_file(filename, FALSE); __playlist_ins_with_info(playlist, filename, pos, title, len, pr ? pr->ip : NULL); - g_free(pr); return; } tmp = g_build_filename(path, filename, NULL); - if (playlist->loading_playlist == TRUE && cfg.playlist_detect == TRUE) - pr = NULL; - else if (!str_has_prefix_nocase(tmp, "http://") && + if (playlist->loading_playlist == TRUE && cfg.playlist_detect == TRUE) { + pr = NULL; + if(!filter_by_extension(filename)) + return; + } + else if (!str_has_prefix_nocase(tmp, "http://") && !str_has_prefix_nocase(tmp, "https://")) pr = input_check_file(tmp, FALSE); @@ -1734,14 +1758,16 @@ else { if ((playlist->loading_playlist == TRUE || - cfg.playlist_detect == TRUE)) + cfg.playlist_detect == TRUE)) { pr = NULL; + if(!filter_by_extension(filename)) + return; + } else if (!str_has_prefix_nocase(filename, "http://") && !str_has_prefix_nocase(filename, "https://")) pr = input_check_file(filename, FALSE); __playlist_ins_with_info(playlist, filename, pos, title, len, pr ? pr->ip : NULL); - g_free(pr); } @@ -1775,25 +1801,30 @@ *tmp = '\0'; else { if ((playlist->loading_playlist == TRUE || - cfg.playlist_detect == TRUE)) + cfg.playlist_detect == TRUE)) { pr = NULL; + if(!filter_by_extension(filename)) + return; + } else if (!str_has_prefix_nocase(filename, "http://") && !str_has_prefix_nocase(filename, "https://")) pr = input_check_file(filename, FALSE); __playlist_ins_with_info_tuple(playlist, filename, pos, tuple, pr ? pr->ip : NULL); - g_free(pr); return; } tmp = g_build_filename(path, filename, NULL); if ((playlist->loading_playlist == TRUE || - cfg.playlist_detect == TRUE)) + cfg.playlist_detect == TRUE)) { pr = NULL; + if(!filter_by_extension(filename)) + return; + } else if (!str_has_prefix_nocase(filename, "http://") && !str_has_prefix_nocase(filename, "https://")) - pr = input_check_file(filename, FALSE); + pr = input_check_file(filename, FALSE); //here! --yaz __playlist_ins_with_info_tuple(playlist, tmp, pos, tuple, pr ? pr->ip : NULL); g_free(tmp); @@ -1803,8 +1834,11 @@ else { if ((playlist->loading_playlist == TRUE || - cfg.playlist_detect == TRUE)) + cfg.playlist_detect == TRUE)) { pr = NULL; + if(!filter_by_extension(filename)) + return; + } else if (!str_has_prefix_nocase(filename, "http://") && !str_has_prefix_nocase(filename, "https://")) pr = input_check_file(filename, FALSE); @@ -1850,6 +1884,9 @@ playlistwin_update_list(playlist); playlist_manager_update(); + playlist_recalc_total_time(playlist); //tentative --yaz + PLAYLIST_INCR_SERIAL(playlist); + return new_len - old_len; } @@ -2613,7 +2650,7 @@ for (node = playlist->entries; node; node = g_list_next(node)) { entry = node->data; - if(playlist->attribute & PLAYLIST_STATIC || + if(playlist->attribute & PLAYLIST_STATIC || // live lock fix (entry->tuple && tuple_get_int(entry->tuple, FIELD_LENGTH, NULL) > -1 && tuple_get_int(entry->tuple, FIELD_MTIME, NULL) != -1)) { update_playlistwin = TRUE; @@ -2658,7 +2695,7 @@ entry = node->data; - if(playlist->attribute & PLAYLIST_STATIC || + if(playlist->attribute & PLAYLIST_STATIC || // live lock fix (entry->tuple && tuple_get_int(entry->tuple, FIELD_LENGTH, NULL) > -1 && tuple_get_int(entry->tuple, FIELD_MTIME, NULL) != -1)) { update_playlistwin = TRUE; @@ -2710,6 +2747,8 @@ g_cond_wait(cond_scan, mutex_scan); g_mutex_unlock(mutex_scan); +// g_print("scanner invoked\n"); + } // while g_thread_exit(NULL); @@ -2793,6 +2832,7 @@ playlist_generate_shuffle_list(playlist); playlistwin_update_list(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); playlist_manager_update(); } @@ -2912,6 +2952,7 @@ playlistwin_update_list(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); playlist_manager_update(); } @@ -2931,7 +2972,6 @@ PLAYLIST_UNLOCK(playlist); } - static void playlist_recalc_total_time_nolock(Playlist *playlist) { @@ -2977,10 +3017,10 @@ gboolean is_first_search = TRUE; gint num_of_entries_found = 0; const gchar *regex_pattern; - const gchar *track_name = tuple_get_string( tuple, FIELD_TITLE, NULL ); - const gchar *album_name = tuple_get_string( tuple, FIELD_ALBUM, NULL ); - const gchar *performer = tuple_get_string( tuple, FIELD_PERFORMER, NULL ); - const gchar *file_name = tuple_get_string( tuple, FIELD_FILE_NAME, NULL ); + const gchar *track_name; + const gchar *album_name; + const gchar *performer; + const gchar *file_name; #if defined(USE_REGEX_ONIGURUMA) /* set encoding for Oniguruma regex to UTF-8 */ @@ -2990,7 +3030,8 @@ PLAYLIST_LOCK(playlist); - if ( (regex_pattern = tuple_get_string(tuple, FIELD_TITLE, NULL)) != NULL ) + if ( (regex_pattern = tuple_get_string(tuple, FIELD_TITLE, NULL)) != NULL && + (*regex_pattern != '\0') ) { /* match by track_name */ regex_t regex; @@ -3006,10 +3047,14 @@ for ( ; entry_list ; entry_list = g_list_next(entry_list) ) { PlaylistEntry *entry = entry_list->data; - if ( ( entry->tuple != NULL ) && ( track_name != NULL ) && - ( regexec( ®ex , track_name , 0 , NULL , 0 ) == 0 ) ) + if ( entry->tuple != NULL ) { - tfound_list = g_list_append( tfound_list , entry ); + track_name = tuple_get_string( entry->tuple, FIELD_TITLE, NULL ); + if (( track_name != NULL ) && + ( regexec( ®ex , track_name , 0 , NULL , 0 ) == 0 ) ) + { + tfound_list = g_list_append( tfound_list , entry ); + } } } g_list_free( found_list ); /* wipe old found_list */ @@ -3019,7 +3064,8 @@ is_first_search = FALSE; } - if ( (regex_pattern = tuple_get_string(tuple, FIELD_ALBUM, NULL)) != NULL ) + if ( (regex_pattern = tuple_get_string(tuple, FIELD_ALBUM, NULL)) != NULL && + (*regex_pattern != '\0') ) { /* match by album_name */ regex_t regex; @@ -3035,10 +3081,14 @@ for ( ; entry_list ; entry_list = g_list_next(entry_list) ) { PlaylistEntry *entry = entry_list->data; - if ( ( entry->tuple != NULL ) && ( album_name != NULL ) && - ( regexec( ®ex , album_name , 0 , NULL , 0 ) == 0 ) ) + if ( entry->tuple != NULL ) { - tfound_list = g_list_append( tfound_list , entry ); + album_name = tuple_get_string( entry->tuple, FIELD_ALBUM, NULL ); + if ( ( album_name != NULL ) && + ( regexec( ®ex , album_name , 0 , NULL , 0 ) == 0 ) ) + { + tfound_list = g_list_append( tfound_list , entry ); + } } } g_list_free( found_list ); /* wipe old found_list */ @@ -3048,7 +3098,8 @@ is_first_search = FALSE; } - if ( (regex_pattern = tuple_get_string(tuple, FIELD_ARTIST, NULL)) != NULL ) + if ( (regex_pattern = tuple_get_string(tuple, FIELD_ARTIST, NULL)) != NULL && + (*regex_pattern != '\0') ) { /* match by performer */ regex_t regex; @@ -3064,10 +3115,14 @@ for ( ; entry_list ; entry_list = g_list_next(entry_list) ) { PlaylistEntry *entry = entry_list->data; - if ( ( entry->tuple != NULL ) && ( performer != NULL ) && - ( regexec( ®ex , performer , 0 , NULL , 0 ) == 0 ) ) + if ( entry->tuple != NULL ) { - tfound_list = g_list_append( tfound_list , entry ); + performer = tuple_get_string( entry->tuple, FIELD_ARTIST, NULL ); + if ( ( entry->tuple != NULL ) && ( performer != NULL ) && + ( regexec( ®ex , performer , 0 , NULL , 0 ) == 0 ) ) + { + tfound_list = g_list_append( tfound_list , entry ); + } } } g_list_free( found_list ); /* wipe old found_list */ @@ -3077,7 +3132,8 @@ is_first_search = FALSE; } - if ( (regex_pattern = tuple_get_string(tuple, FIELD_FILE_NAME, NULL)) != NULL ) + if ( (regex_pattern = tuple_get_string(tuple, FIELD_FILE_NAME, NULL)) != NULL && + (*regex_pattern != '\0') ) { /* match by file_name */ regex_t regex; @@ -3093,10 +3149,14 @@ for ( ; entry_list ; entry_list = g_list_next(entry_list) ) { PlaylistEntry *entry = entry_list->data; - if ( ( entry->tuple != NULL ) && ( file_name != NULL ) && - ( regexec( ®ex , file_name , 0 , NULL , 0 ) == 0 ) ) + if ( entry->tuple != NULL ) { - tfound_list = g_list_append( tfound_list , entry ); + file_name = tuple_get_string( entry->tuple, FIELD_FILE_NAME, NULL ); + if ( ( file_name != NULL ) && + ( regexec( ®ex , file_name , 0 , NULL , 0 ) == 0 ) ) + { + tfound_list = g_list_append( tfound_list , entry ); + } } } g_list_free( found_list ); /* wipe old found_list */ @@ -3120,6 +3180,7 @@ PLAYLIST_UNLOCK(playlist); playlist_recalc_total_time(playlist); +// PLAYLIST_INCR_SERIAL(playlist); //unnecessary? --yaz return num_of_entries_found; } @@ -3233,6 +3294,7 @@ playlistwin_update_list(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); //tentative --yaz return retval; } @@ -3255,6 +3317,7 @@ playlistwin_update_list(playlist); playlist_recalc_total_time(playlist); + PLAYLIST_INCR_SERIAL(playlist); //tentative --yaz } Playlist * @@ -3295,6 +3358,9 @@ playlist->title = NULL; playlist->filename = NULL; playlist_clear(playlist); + playlist->tail = NULL; + playlist->attribute = PLAYLIST_PLAIN; + playlist->serial = 0; return playlist; } @@ -3307,6 +3373,7 @@ g_mutex_free( playlist->mutex ); g_free( playlist ); + playlist = NULL; //XXX lead to crash? --yaz } Playlist * @@ -3400,3 +3467,33 @@ } while(1); return TRUE; } + +static gboolean +filter_by_extension(const gchar *uri) +{ + gchar *base, *ext, *lext, *filename; + gchar *tmp = g_filename_from_uri(uri, NULL, NULL); + gboolean rv; + + filename = g_strdup(tmp ? tmp : uri); + g_free(tmp); + + base = g_path_get_basename(filename); + ext = g_strrstr(base, "."); + + if(!ext) { + g_free(base); + return FALSE; + } + + lext = g_utf8_strdown(ext+1, -1); + + if(g_hash_table_lookup(ext_hash, lext)) + rv = TRUE; + else + rv = FALSE; + + g_free(lext); + g_free(base); + return rv; +}
--- a/src/audacious/playlist.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/playlist.h Fri Nov 16 05:36:42 2007 +0200 @@ -77,7 +77,7 @@ typedef enum { PLAYLIST_PLAIN = 0, PLAYLIST_STATIC = 1, - PLAYLIST_USE_RELATIVE = 1 << 1, + PLAYLIST_USE_RELATIVE = 1 << 1 } PlaylistAttribute; struct _Playlist { @@ -94,8 +94,9 @@ gboolean pl_selection_more; gboolean loading_playlist; GMutex *mutex; /* this is required for multiple playlist */ - GList *tail; /* marker for the last element in playlist->entries */ + GList *tail; /* marker for the last element in playlist->entries */ gint attribute; /* PlaylistAttribute */ + gulong serial; /* serial number */ }; typedef enum { @@ -223,8 +224,9 @@ gboolean is_playlist_name(const gchar * filename); -#define PLAYLIST_LOCK(pl) g_mutex_lock(pl->mutex) -#define PLAYLIST_UNLOCK(pl) g_mutex_unlock(pl->mutex) +#define PLAYLIST_LOCK(pl) g_mutex_lock((pl)->mutex) +#define PLAYLIST_UNLOCK(pl) g_mutex_unlock((pl)->mutex) +#define PLAYLIST_INCR_SERIAL(pl) (pl)->serial++ G_LOCK_EXTERN(playlists);
--- a/src/audacious/plugin.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/plugin.h Fri Nov 16 05:36:42 2007 +0200 @@ -926,7 +926,9 @@ #include "audacious/auddrct.h" /* for multi-file plugins :( */ +G_BEGIN_DECLS extern struct _AudaciousFuncTableV1 *_audvt; +G_END_DECLS #define DECLARE_PLUGIN(name, init, fini, ...) \ G_BEGIN_DECLS \
--- a/src/audacious/pluginenum.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/pluginenum.c Fri Nov 16 05:36:42 2007 +0200 @@ -68,6 +68,8 @@ NULL }; +GHashTable *ext_hash = NULL; + /*****************************************************************/ static struct _AudaciousFuncTableV1 _aud_papi_v1 = { @@ -517,6 +519,14 @@ /* XXX: we need something better than p->filename if plugins will eventually provide multiple plugins --nenolod */ mowgli_dictionary_add(plugin_dict, g_basename(p->filename), p); + + /* build the extension hash table */ + gint i; + if(p->vfs_extensions) { + for(i = 0; p->vfs_extensions[i] != NULL; i++) { + g_hash_table_replace(ext_hash, g_strdup(p->vfs_extensions[i]), g_strdup(p->description)); + } + } } static void @@ -752,6 +762,9 @@ plugin_dict = mowgli_dictionary_create(g_ascii_strcasecmp); + /* make extension hash */ + ext_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); + #ifndef DISABLE_USER_PLUGIN_DIR scan_plugins(bmp_paths[BMP_PATH_USER_PLUGIN_DIR]); /* @@ -1030,4 +1043,5 @@ } mowgli_dictionary_destroy(plugin_dict, NULL, NULL); + g_hash_table_remove_all(ext_hash); }
--- a/src/audacious/skin.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/skin.c Fri Nov 16 05:36:42 2007 +0200 @@ -48,6 +48,10 @@ #include "vfs.h" #include "ui_skinned_window.h" +#include "ui_skinned_button.h" +#include "ui_skinned_number.h" +#include "ui_skinned_horizontal_slider.h" +#include "ui_skinned_playstatus.h" #define EXTENSION_TARGETS 7 @@ -1348,7 +1352,6 @@ vfs_fclose(file); } -#if 0 static void skin_numbers_generate_dash(Skin * skin) { @@ -1362,22 +1365,22 @@ if (!numbers->pixmap || numbers->current_width < 99) return; - gc = gdk_gc_new(numbers->pixmap); - pixmap = gdk_pixmap_new(mainwin->window, 108, + pixmap = gdk_pixmap_new(NULL, 108, numbers->current_height, - -1); + gdk_rgb_get_visual()->depth); + gc = gdk_gc_new(pixmap); - skin_draw_pixmap(skin, pixmap, gc, SKIN_NUMBERS, 0, 0, 0, 0, 99, 13); - skin_draw_pixmap(skin, pixmap, gc, SKIN_NUMBERS, 90, 0, 99, 0, 9, 13); - skin_draw_pixmap(skin, pixmap, gc, SKIN_NUMBERS, 20, 6, 101, 6, 5, 1); + skin_draw_pixmap(NULL, skin, pixmap, gc, SKIN_NUMBERS, 0, 0, 0, 0, 99, numbers->current_height); + skin_draw_pixmap(NULL, skin, pixmap, gc, SKIN_NUMBERS, 90, 0, 99, 0, 9, numbers->current_height); + skin_draw_pixmap(NULL, skin, pixmap, gc, SKIN_NUMBERS, 20, 6, 101, 6, 5, 1); g_object_unref(numbers->pixmap); g_object_unref(gc); numbers->pixmap = pixmap; numbers->current_width = 108; + numbers->width = 108; } -#endif static void skin_load_cursor(Skin * skin, const gchar * dirname) @@ -1428,10 +1431,9 @@ if (text_pm) skin_get_textcolors(text_pm, skin->textbg, skin->textfg); -#if 0 - if (skin->pixmaps[SKIN_NUMBERS].pixmap) + if (skin->pixmaps[SKIN_NUMBERS].pixmap && + skin->pixmaps[SKIN_NUMBERS].width < 108 ) skin_numbers_generate_dash(skin); -#endif filename = find_file_recursively(path, "pledit.txt"); inifile = open_ini_file(filename); @@ -1464,11 +1466,13 @@ } static void -skin_set_gtk_theme(GtkSettings * settings, Skin * skin, gboolean tmp_clean) +skin_set_gtk_theme(GtkSettings * settings, Skin * skin) { if (original_gtk_theme == NULL) g_object_get(settings, "gtk-theme-name", &original_gtk_theme, NULL); + /* the way GTK does things can be very broken. --nenolod */ + gchar *tmp = g_strdup_printf("%s/.themes/aud-%s", g_get_home_dir(), basename(skin->path)); @@ -1479,14 +1483,7 @@ symlink(skin->path, tmp); gtk_settings_set_string_property(settings, "gtk-theme-name", basename(tmp), "audacious"); - -#if 0 - if (tmp_clean) - { - unlink(tmp); - g_free(tmp); - } -#endif + g_free(tmp); } static gboolean @@ -1532,12 +1529,8 @@ #ifndef _WIN32 gtkrcpath = find_path_recursively(skin->path, "gtkrc"); - - /* the way GTK does things can be very broken. --nenolod */ - if (gtkrcpath != NULL) { - skin_set_gtk_theme(settings, skin, FALSE); - } - + if (gtkrcpath != NULL) + skin_set_gtk_theme(settings, skin); g_free(gtkrcpath); #endif @@ -1563,12 +1556,8 @@ #ifndef _WIN32 gtkrcpath = find_path_recursively(skin->path, "gtkrc"); - - /* the way GTK does things can be very broken. --nenolod */ - if (gtkrcpath != NULL) { - skin_set_gtk_theme(settings, skin, TRUE); - } - + if (gtkrcpath != NULL) + skin_set_gtk_theme(settings, skin); g_free(gtkrcpath); #endif @@ -1594,6 +1583,14 @@ g_free(command); } +static SkinPixmap * +skin_get_pixmap(Skin * skin, SkinPixmapId map_id) +{ + g_return_val_if_fail(skin != NULL, NULL); + g_return_val_if_fail(map_id < SKIN_PIXMAP_COUNT, NULL); + + return &skin->pixmaps[map_id]; +} gboolean skin_load(Skin * skin, const gchar * path) @@ -1608,7 +1605,29 @@ skin_lock(skin); error = skin_load_nolock(skin, path, FALSE); skin_unlock(skin); - + + SkinPixmap *pixmap = NULL; + pixmap = skin_get_pixmap(skin, SKIN_NUMBERS); + if (pixmap) { + ui_skinned_number_set_size(mainwin_minus_num, 9, pixmap->height); + ui_skinned_number_set_size(mainwin_10min_num, 9, pixmap->height); + ui_skinned_number_set_size(mainwin_min_num, 9, pixmap->height); + ui_skinned_number_set_size(mainwin_10sec_num, 9, pixmap->height); + ui_skinned_number_set_size(mainwin_sec_num, 9, pixmap->height); + } + + pixmap = skin_get_pixmap(skin, SKIN_MAIN); + if (pixmap && skin->properties.mainwin_height > pixmap->height) + skin->properties.mainwin_height = pixmap->height; + + pixmap = skin_get_pixmap(skin, SKIN_PLAYPAUSE); + if (pixmap) + ui_skinned_playstatus_set_size(mainwin_playstatus, 11, pixmap->height); + + pixmap = skin_get_pixmap(skin, SKIN_EQMAIN); + if (pixmap->height >= 313) + gtk_widget_show(equalizerwin_graph); + return error; } @@ -1631,16 +1650,6 @@ skin_load_nolock(skin, skin->path, TRUE); } - -static SkinPixmap * -skin_get_pixmap(Skin * skin, SkinPixmapId map_id) -{ - g_return_val_if_fail(skin != NULL, NULL); - g_return_val_if_fail(map_id < SKIN_PIXMAP_COUNT, NULL); - - return &skin->pixmaps[map_id]; -} - GdkBitmap * skin_get_mask(Skin * skin, SkinMaskId mi) { @@ -1702,7 +1711,7 @@ } void -skin_draw_pixmap(Skin * skin, GdkDrawable * drawable, GdkGC * gc, +skin_draw_pixmap(GtkWidget *widget, Skin * skin, GdkDrawable * drawable, GdkGC * gc, SkinPixmapId pixmap_id, gint xsrc, gint ysrc, gint xdest, gint ydest, gint width, gint height) @@ -1715,20 +1724,51 @@ g_return_if_fail(pixmap != NULL); g_return_if_fail(pixmap->pixmap != NULL); + /* perhaps we should use transparency or resize widget? */ if (xsrc+width > pixmap->width || ysrc+height > pixmap->height) { - if (pixmap_id == SKIN_NUMBERS) - xsrc = 90; - else if (pixmap_id == SKIN_VOLUME) { - /* some winamp skins have too strait SKIN_VOLUME, so let's copy what's remain from SKIN_MAIN */ - gdk_draw_drawable(drawable, gc, skin_get_pixmap(bmp_active_skin, SKIN_MAIN)->pixmap, - skin->properties.mainwin_volume_x, skin->properties.mainwin_volume_y, - pixmap->width, ydest, width - pixmap->width, height); - width = pixmap->width; - } else if (pixmap_id == SKIN_MONOSTEREO) { - /* XMMS skins seems to have SKIN_MONOSTEREO with size 58x20 instead of 58x24 */ - gdk_draw_drawable(drawable, gc, skin_get_pixmap(bmp_active_skin, SKIN_MAIN)->pixmap, - 212 + xdest, 41, xdest, ydest, width, height); - height = pixmap->height/2; + if (widget) { + /* it's better to hide widget using SKIN_PLAYPAUSE/SKIN_POSBAR than display mess */ + if ((pixmap_id == SKIN_PLAYPAUSE && pixmap->width != 42) || pixmap_id == SKIN_POSBAR) { + gtk_widget_hide(widget); + return; + } + gint x, y; + x = -1; + y = -1; + + if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->fixed) { + GList *iter; + for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->fixed)->children; iter; iter = g_list_next (iter)) { + GtkFixedChild *child_data = (GtkFixedChild *) iter->data; + if (child_data->widget == widget) { + x = child_data->x; + y = child_data->y; + break; + } + } + + if (x != -1 && y != -1) { + /* Some skins include SKIN_VOLUME and/or SKIN_BALANCE + without knobs */ + if (pixmap_id == SKIN_VOLUME || pixmap_id == SKIN_BALANCE) { + if (ysrc+height > 421 && xsrc+width <= pixmap->width) + return; + } + /* let's copy what's under widget */ + gdk_draw_drawable(drawable, gc, skin_get_pixmap(bmp_active_skin, SKIN_MAIN)->pixmap, + x, y, xdest, ydest, width, height); + + /* XMMS skins seems to have SKIN_MONOSTEREO with size 58x20 instead of 58x24 */ + if (pixmap_id == SKIN_MONOSTEREO) + height = pixmap->height/2; + } + } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->fixed) { + if (!(pixmap_id == SKIN_EQMAIN && ysrc == 314)) /* equalizer preamp on equalizer graph */ + gtk_widget_hide(widget); + } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->fixed) { + /* I haven't seen any skin with substandard playlist */ + gtk_widget_hide(widget); + } } else return; } @@ -1796,14 +1836,14 @@ y = 21; /* left corner */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 0, y, 0, 0, 25, 20); + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 0, y, 0, 0, 25, 20); /* titlebar title */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 26, y, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 26, y, (width - 100) / 2, 0, 100, 20); /* titlebar right corner */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 153, y, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 153, y, width - 25, 0, 25, 20); /* tile draw the remaining frame */ @@ -1813,20 +1853,20 @@ for (i = 0; i < c / 2; i++) { /* left of title */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 127, y, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 127, y, 25 + i * 25, 0, 25, 20); /* right of title */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 127, y, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 127, y, (width + 100) / 2 + i * 25, 0, 25, 20); } if (c & 1) { /* Odd tile count, so one remaining to draw. Here we split * it into two and draw half on either side of the title */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 127, y, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 127, y, ((c / 2) * 25) + 25, 0, 12, 20); - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 127, y, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 127, y, (width / 2) + ((c / 2) * 25) + 50, 0, 13, 20); } } @@ -1851,7 +1891,7 @@ gint i, c; /* bottom left corner (menu buttons) */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 0, 72, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 0, 72, 0, height - 38, 125, 38); c = (width - 275) / 25; @@ -1859,17 +1899,17 @@ /* draw visualization window, if width allows */ if (c >= 3) { c -= 3; - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 205, 0, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 205, 0, width - (150 + 75), height - 38, 75, 38); } /* Bottom right corner (playbuttons etc) */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 126, 72, width - 150, height - 38, 150, 38); /* Tile draw the remaining undrawn portions */ for (i = 0; i < c; i++) - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 179, 0, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 179, 0, 125 + i * 25, height - 38, 25, 38); } @@ -1890,11 +1930,11 @@ /* frame sides */ for (i = 0; i < (height - (20 + 38)) / 29; i++) { /* left */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 0, 42, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 0, 42, 0, 20 + i * 29, 12, 29); /* right */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 32, 42, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 32, 42, width - 19, 20 + i * 29, 19, 29); } } @@ -1928,15 +1968,15 @@ gint i; /* left corner */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 72, 42, 0, 0, 25, 14); + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 72, 42, 0, 0, 25, 14); /* bar tile */ for (i = 0; i < (width - 75) / 25; i++) - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 72, 57, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 72, 57, (i * 25) + 25, 0, 25, 14); /* right corner */ - skin_draw_pixmap(skin, drawable, gc, SKIN_PLEDIT, 99, focus ? 42 : 57, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_PLEDIT, 99, focus ? 42 : 57, width - 50, 0, 50, 14); } @@ -1972,7 +2012,7 @@ y_offset = 15; } - skin_draw_pixmap(skin, drawable, gc, SKIN_TITLEBAR, 27, y_offset, + skin_draw_pixmap(NULL, skin, drawable, gc, SKIN_TITLEBAR, 27, y_offset, 0, 0, bmp_active_skin->properties.mainwin_width, MAINWIN_TITLEBAR_HEIGHT); }
--- a/src/audacious/skin.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/skin.h Fri Nov 16 05:36:42 2007 +0200 @@ -29,7 +29,7 @@ #include <glib.h> #include <gdk/gdk.h> - +#include <gtk/gtk.h> #define BMP_DEFAULT_SKIN_PATH \ DATA_DIR G_DIR_SEPARATOR_S "Skins" G_DIR_SEPARATOR_S "Default" @@ -219,7 +219,7 @@ void skin_get_viscolor(Skin * skin, guchar vis_color[24][3]); gint skin_get_id(void); -void skin_draw_pixmap(Skin * skin, GdkDrawable * drawable, GdkGC * gc, +void skin_draw_pixmap(GtkWidget * widget, Skin * skin, GdkDrawable * drawable, GdkGC * gc, SkinPixmapId pixmap_id, gint xsrc, gint ysrc, gint xdest, gint ydest, gint width, gint height);
--- a/src/audacious/tuple_formatter.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/tuple_formatter.c Fri Nov 16 05:36:42 2007 +0200 @@ -24,6 +24,7 @@ #include "config.h" #include "tuple.h" #include "tuple_formatter.h" +#include "strings.h" /* * TUPLE_USE_COMPILER: @@ -528,6 +529,7 @@ #ifdef TUPLE_USE_COMPILER static TupleEvalContext *last_ctx = NULL; static TupleEvalNode *last_ev = NULL; + gchar *result = NULL; #endif if (initialized == FALSE) @@ -556,6 +558,12 @@ last_ctx = tuple_evalctx_new(); last_string = g_strdup(string); last_ev = tuple_formatter_compile(last_ctx, last_string); + if (last_ctx->iserror) { + fprintf(stderr, "[TuplezCC]: %s", last_ctx->errmsg); + } + if (!last_ev) { + fprintf(stderr, "[TuplezCC]: Compilation failed!\n"); + } } #ifdef TUPLE_COMPILER_DEBUG @@ -567,7 +575,11 @@ #endif tuple_evalctx_reset(last_ctx); - return tuple_formatter_eval(last_ctx, last_ev, tuple); + result = tuple_formatter_eval(last_ctx, last_ev, tuple); + if (last_ctx->iserror) { + fprintf(stderr, "[TuplezEV]: %s", last_ctx->errmsg); + } + return result; #else return tuple_formatter_process_construct(tuple, string); #endif @@ -585,8 +597,12 @@ rv = tuple_formatter_process_string(tuple, string); if(!rv || !strcmp(rv, "")) { + const gchar *file_name = tuple_get_string(tuple, FIELD_FILE_NAME, NULL); + gchar *realfn = g_filename_from_uri(file_name, NULL, NULL); + g_free(rv); - rv = g_strdup(tuple_get_string(tuple, FIELD_FILE_NAME, NULL)); + rv = str_to_utf8(realfn ? realfn : file_name); + g_free(realfn); } return rv;
--- a/src/audacious/ui_about.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_about.c Fri Nov 16 05:36:42 2007 +0200 @@ -203,3 +203,10 @@ gtk_widget_show_all(about_window); gtk_window_present(GTK_WINDOW(about_window)); } + +void +hide_about_window(void) +{ + g_return_if_fail(about_window); + gtk_widget_hide(GTK_WIDGET(about_window)); +}
--- a/src/audacious/ui_credits.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_credits.c Fri Nov 16 05:36:42 2007 +0200 @@ -75,6 +75,7 @@ N_("Default skin:"), "George Averill", + "Michael Färber", "William Pitcock", NULL,
--- a/src/audacious/ui_credits.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_credits.h Fri Nov 16 05:36:42 2007 +0200 @@ -3,6 +3,7 @@ #define ABOUT_H void show_about_window(void); +void hide_about_window(void); void show_credits_window(void); #endif
--- a/src/audacious/ui_equalizer.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_equalizer.c Fri Nov 16 05:36:42 2007 +0200 @@ -74,6 +74,7 @@ GtkWidget *equalizerwin; +GtkWidget *equalizerwin_graph; static GtkWidget *equalizerwin_load_window = NULL; static GtkWidget *equalizerwin_load_auto_window = NULL; @@ -87,7 +88,6 @@ static GtkWidget *equalizerwin_on, *equalizerwin_auto; static GtkWidget *equalizerwin_close, *equalizerwin_presets, *equalizerwin_shade; -static GtkWidget *equalizerwin_graph; static GtkWidget *equalizerwin_preamp,*equalizerwin_bands[10]; static GtkWidget *equalizerwin_volume, *equalizerwin_balance; @@ -1282,7 +1282,7 @@ gfloat equalizerwin_get_band(gint band) { - g_return_val_if_fail(band >= 0 && band < 10, 0); + g_return_val_if_fail(band >= 0 && band < 10, 0.0); return ui_skinned_equalizer_slider_get_position(equalizerwin_bands[band]); } @@ -1515,3 +1515,13 @@ G_CALLBACK(equalizerwin_delete_auto_delete), NULL); } + +void +equalizer_activate(gboolean active) +{ + cfg.equalizer_active = active; + UI_SKINNED_BUTTON(equalizerwin_on)->inside = active; + gtk_widget_queue_draw(equalizerwin_on); + + equalizerwin_eq_changed(); +}
--- a/src/audacious/ui_equalizer.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_equalizer.h Fri Nov 16 05:36:42 2007 +0200 @@ -58,6 +58,9 @@ gboolean equalizerwin_has_focus(void); extern GtkWidget *equalizerwin; +extern GtkWidget *equalizerwin_graph; extern gboolean equalizerwin_focus; +void equalizer_activate(gboolean active); + #endif
--- a/src/audacious/ui_fileinfopopup.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_fileinfopopup.c Fri Nov 16 05:36:42 2007 +0200 @@ -220,6 +220,8 @@ GtkWidget *filepopup_progress; filepopup_win = gtk_window_new(GTK_WINDOW_POPUP); + gtk_window_set_type_hint(GTK_WINDOW(filepopup_win), + GDK_WINDOW_TYPE_HINT_TOOLTIP); gtk_window_set_decorated(GTK_WINDOW(filepopup_win), FALSE); gtk_container_set_border_width(GTK_CONTAINER(filepopup_win), 6); gtk_window_set_transient_for(GTK_WINDOW(filepopup_win),
--- a/src/audacious/ui_fileopener.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_fileopener.c Fri Nov 16 05:36:42 2007 +0200 @@ -108,8 +108,8 @@ return FALSE; } -void -util_run_filebrowser_gtk2style(gboolean play_button) +static void +util_run_filebrowser_gtk2style(gboolean play_button, gboolean show) { static GtkWidget *window = NULL; GtkWidget *vbox, *hbox, *bbox; @@ -119,9 +119,19 @@ gchar *window_title, *toggle_text; gpointer action_stock, storage; - if(window) { - gtk_window_present(GTK_WINDOW(window)); /* raise filebrowser */ - return; + if(!show) { + if(window){ + gtk_widget_hide(window); + return; + } + else + return; + } + else { + if(window) { + gtk_window_present(GTK_WINDOW(window)); /* raise filebrowser */ + return; + } } window_title = play_button ? _("Open Files") : _("Add Files"); @@ -339,17 +349,27 @@ gtk_entry_set_text(GTK_ENTRY(filesel->selection_entry), ""); } -void -util_run_filebrowser_classic(gboolean play_button) +static void +util_run_filebrowser_classic(gboolean play_button, gboolean show) { static GtkWidget *dialog; GtkWidget *button_add_selected, *button_add_all, *button_close, *button_add; char *title; - if (dialog != NULL) { - gtk_window_present(GTK_WINDOW(dialog)); - return; + if (!show) { + if(dialog) { + gtk_widget_hide(dialog); + return; + } + else + return; + } + else { + if (dialog) { + gtk_window_present(GTK_WINDOW(dialog)); + return; + } } if (play_button) @@ -450,7 +470,16 @@ run_filebrowser(gboolean play_button) { if (!cfg.use_xmms_style_fileselector) - util_run_filebrowser_gtk2style(play_button); + util_run_filebrowser_gtk2style(play_button, TRUE); else - util_run_filebrowser_classic(play_button); + util_run_filebrowser_classic(play_button, TRUE); } + +void +hide_filebrowser(void) +{ + if (!cfg.use_xmms_style_fileselector) + util_run_filebrowser_gtk2style(FALSE, FALSE); + else + util_run_filebrowser_classic(FALSE, FALSE); +}
--- a/src/audacious/ui_fileopener.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_fileopener.h Fri Nov 16 05:36:42 2007 +0200 @@ -26,5 +26,6 @@ #define PLAY_BUTTON TRUE void run_filebrowser(gboolean clear_pl_on_ok); +void hide_filebrowser(void); #endif
--- a/src/audacious/ui_jumptotrack.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_jumptotrack.c Fri Nov 16 05:36:42 2007 +0200 @@ -80,6 +80,7 @@ #include "ui_skinned_window.h" static GtkWidget *jump_to_track_win = NULL; +static gulong serial = 0; static void change_song(guint pos) @@ -91,6 +92,13 @@ playback_initiate(); } +void +ui_jump_to_track_hide(void) +{ + g_return_if_fail(jump_to_track_win); + gtk_widget_hide(jump_to_track_win); +} + static void ui_jump_to_track_jump(GtkTreeView * treeview) { @@ -109,11 +117,8 @@ change_song(pos - 1); - /* FIXME: should only hide window */ - if(cfg.close_jtf_dialog){ - gtk_widget_destroy(jump_to_track_win); - jump_to_track_win = NULL; - } + if(cfg.close_jtf_dialog) + ui_jump_to_track_hide(); } static void @@ -212,9 +217,7 @@ { switch (event->keyval) { case GDK_Escape: - /* FIXME: show only hide window */ - gtk_widget_destroy(jump_to_track_win); - jump_to_track_win = NULL; + ui_jump_to_track_hide(); return TRUE; case GDK_KP_Enter: ui_jump_to_track_queue_cb(NULL, data); @@ -247,12 +250,9 @@ return rv; } -/* FIXME: Clear the entry when the list gets updated */ void ui_jump_to_track_update(GtkWidget * widget, gpointer user_data) { - /* FIXME: Is not in sync with playlist due to delayed extinfo - * reading */ guint row; GList *playlist_glist; gchar *desc_buf = NULL; @@ -262,10 +262,18 @@ GtkTreeModel *store; + GtkTreeView *tree = GTK_TREE_VIEW(g_object_get_data(user_data, "treeview")); + GtkEntry *edit = g_object_get_data(user_data, "edit"); + if (!jump_to_track_win) return; - store = gtk_tree_view_get_model(GTK_TREE_VIEW(user_data)); + /* clear edit widget */ + if(edit){ + gtk_entry_set_text(edit, "\0"); + } + + store = gtk_tree_view_get_model(tree); gtk_list_store_clear(GTK_LIST_STORE(store)); row = 1; @@ -296,8 +304,9 @@ } gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &iter); - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(user_data)); + selection = gtk_tree_view_get_selection(tree); gtk_tree_selection_select_iter(selection, &iter); + serial = playlist->serial; // important. --yaz } static void @@ -443,11 +452,9 @@ gtk_list_store_clear(jtf_store); row = 1; - playlist = playlist_get_active(); PLAYLIST_LOCK(playlist); - for (playlist_glist = playlist->entries; playlist_glist; playlist_glist = g_list_next(playlist_glist)) { @@ -470,36 +477,50 @@ 0, row, 1, desc_buf, -1); row++; - if (desc_buf) { - g_free(desc_buf); - desc_buf = NULL; - } + g_free(desc_buf); + desc_buf = NULL; } - PLAYLIST_UNLOCK(playlist); /* attach liststore to treeview */ gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(jtf_store)); g_object_unref(jtf_store); + serial = playlist->serial; return FALSE; } +static gboolean +watchdog(gpointer storage) +{ + GtkWidget *widget; + Playlist *playlist = playlist_get_active(); + + if(serial == playlist->serial) + return TRUE; + + widget = g_object_get_data(storage, "widget"); + ui_jump_to_track_update(widget, storage); + return TRUE; +} + void ui_jump_to_track(void) { GtkWidget *scrollwin; GtkWidget *vbox, *bbox, *sep; GtkWidget *toggle; - GtkWidget *jump, *queue, *cancel; + GtkWidget *jump, *queue, *close; GtkWidget *rescan, *edit; GtkWidget *search_label, *hbox; - GtkWidget *treeview; + GtkWidget *treeview = NULL; GtkListStore *jtf_store; GtkCellRenderer *renderer; GtkTreeViewColumn *column; + gpointer storage; + if (jump_to_track_win) { gtk_window_present(GTK_WINDOW(jump_to_track_win)); return; @@ -612,8 +633,16 @@ rescan = gtk_button_new_from_stock(GTK_STOCK_REFRESH); gtk_box_pack_start(GTK_BOX(bbox), rescan, FALSE, FALSE, 0); + + /* 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", - G_CALLBACK(ui_jump_to_track_update), treeview); + G_CALLBACK(ui_jump_to_track_update), storage); + GTK_WIDGET_SET_FLAGS(rescan, GTK_CAN_DEFAULT); gtk_widget_grab_default(rescan); @@ -627,14 +656,18 @@ GTK_WIDGET_SET_FLAGS(jump, GTK_CAN_DEFAULT); gtk_widget_grab_default(jump); - cancel = gtk_button_new_from_stock(GTK_STOCK_CLOSE); - gtk_box_pack_start(GTK_BOX(bbox), cancel, FALSE, FALSE, 0); - g_signal_connect_swapped(cancel, "clicked", - G_CALLBACK(gtk_widget_destroy), - jump_to_track_win); - GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT); + close = gtk_button_new_from_stock(GTK_STOCK_CLOSE); + gtk_box_pack_start(GTK_BOX(bbox), close, FALSE, FALSE, 0); +/* g_signal_connect_swapped(close, "clicked", */ +/* G_CALLBACK(gtk_widget_destroy), */ +/* jump_to_track_win); */ + g_signal_connect_swapped(close, "clicked", + G_CALLBACK(gtk_widget_hide), + jump_to_track_win); // just hide --yaz + GTK_WIDGET_SET_FLAGS(close, GTK_CAN_DEFAULT); g_timeout_add(100, (GSourceFunc)ui_jump_to_track_fill, treeview); + g_timeout_add(500, (GSourceFunc)watchdog, storage); gtk_widget_show_all(jump_to_track_win); gtk_widget_grab_focus(edit);
--- a/src/audacious/ui_jumptotrack.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_jumptotrack.h Fri Nov 16 05:36:42 2007 +0200 @@ -28,5 +28,6 @@ extern void ui_jump_to_track_update(GtkWidget * widget, gpointer user_data); extern void ui_jump_to_track(void); +extern void ui_jump_to_track_hide(void); #endif
--- a/src/audacious/ui_main.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_main.c Fri Nov 16 05:36:42 2007 +0200 @@ -694,23 +694,16 @@ cfg.player_shaded ? 3 : bmp_active_skin->properties.mainwin_close_y); mainwin_refresh_visible(); + /* window size, mainwinWidth && mainwinHeight properties */ if (bmp_active_skin->properties.mainwin_height && bmp_active_skin->properties.mainwin_width) { - gint width, height; - - gdk_window_get_size(mainwin->window, &width, &height); - - if (width == bmp_active_skin->properties.mainwin_width * (cfg.doublesize + 1) && - height == bmp_active_skin->properties.mainwin_height * (cfg.doublesize + 1)) - return; - dock_window_resize(GTK_WINDOW(mainwin), cfg.player_shaded ? MAINWIN_SHADED_WIDTH * (cfg.doublesize + 1) : bmp_active_skin->properties.mainwin_width * (cfg.doublesize + 1), - cfg.player_shaded ? MAINWIN_SHADED_HEIGHT * (cfg.doublesize + 1) : bmp_active_skin->properties.mainwin_height * (cfg.doublesize + 1), - bmp_active_skin->properties.mainwin_width * (cfg.doublesize + 1), - bmp_active_skin->properties.mainwin_height * (cfg.doublesize + 1)); - - gdk_flush(); + cfg.player_shaded ? MAINWIN_SHADED_HEIGHT * (cfg.doublesize + 1) : bmp_active_skin->properties.mainwin_height * (cfg.doublesize + 1), + bmp_active_skin->properties.mainwin_width * (cfg.doublesize + 1), + bmp_active_skin->properties.mainwin_height * (cfg.doublesize + 1)); + + gdk_flush(); } } @@ -1697,17 +1690,11 @@ nullmask = NULL; } - gtk_window_resize(GTK_WINDOW(mainwin), - !bmp_active_skin->properties.mainwin_width ? PLAYER_WIDTH : - bmp_active_skin->properties.mainwin_width, - !bmp_active_skin->properties.mainwin_height ? PLAYER_HEIGHT : - bmp_active_skin->properties.mainwin_height); - if (cfg.player_x != -1 && cfg.save_window_position) gtk_window_move(GTK_WINDOW(mainwin), cfg.player_x, cfg.player_y); + mainwin_refresh_hints(); gtk_window_present(GTK_WINDOW(mainwin)); - mainwin_refresh_hints(); } void
--- a/src/audacious/ui_main_evlisteners.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_main_evlisteners.c Fri Nov 16 05:36:42 2007 +0200 @@ -19,6 +19,8 @@ */ #include <glib.h> +#include <math.h> + #include "hook.h" #include "playback.h" #include "playlist.h" @@ -26,6 +28,7 @@ #include "playlist_evlisteners.h" #include "ui_main.h" +#include "ui_equalizer.h" #include "ui_skinned_textbox.h" #include "ui_playlist.h" @@ -45,9 +48,33 @@ mainwin_disable_seekbar(); } +static void +ui_main_evlistener_volume_change(gpointer hook_data, gpointer user_data) +{ + gint *h_vol = (gint *) hook_data; + gint vl, vr, b, v; + + vl = CLAMP(h_vol[0], 0, 100); + vr = CLAMP(h_vol[1], 0, 100); + v = MAX(vl, vr); + if (vl > vr) + b = (gint) rint(((gdouble) vr / vl) * 100) - 100; + else if (vl < vr) + b = 100 - (gint) rint(((gdouble) vl / vr) * 100); + else + b = 0; + + mainwin_set_volume_slider(v); + equalizerwin_set_volume_slider(v); + mainwin_set_balance_slider(b); + equalizerwin_set_balance_slider(b); +} + void ui_main_evlistener_init(void) { hook_associate("title change", ui_main_evlistener_title_change, NULL); hook_associate("hide seekbar", ui_main_evlistener_hide_seekbar, NULL); + hook_associate("volume set", ui_main_evlistener_volume_change, NULL); } +
--- a/src/audacious/ui_preferences.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_preferences.c Fri Nov 16 05:36:42 2007 +0200 @@ -1634,66 +1634,34 @@ } static void +reload_skin() +{ + /* reload the skin to apply the change */ + skin_reload_forced(); + ui_skinned_window_draw_all(mainwin); + ui_skinned_window_draw_all(equalizerwin); + ui_skinned_window_draw_all(playlistwin); +} + +static void on_red_scale_value_changed(GtkHScale *scale, gpointer data) { - //GladeXML *xml = prefswin_get_xml(); - //GtkWidget *widget; - gint value; - - value = gtk_range_get_value(GTK_RANGE(scale)); - - if (value != cfg.colorize_r) - { - cfg.colorize_r = value; - - /* reload the skin to apply the change */ - skin_reload_forced(); - ui_skinned_window_draw_all(mainwin); - ui_skinned_window_draw_all(equalizerwin); - ui_skinned_window_draw_all(playlistwin); - } + cfg.colorize_r = gtk_range_get_value(GTK_RANGE(scale)); + reload_skin(); } static void on_green_scale_value_changed(GtkHScale *scale, gpointer data) { - //GladeXML *xml = prefswin_get_xml(); - //GtkWidget *widget; - gint value; - - value = gtk_range_get_value(GTK_RANGE(scale)); - - if (value != cfg.colorize_r) - { - cfg.colorize_g = value; - - /* reload the skin to apply the change */ - skin_reload_forced(); - ui_skinned_window_draw_all(mainwin); - ui_skinned_window_draw_all(equalizerwin); - ui_skinned_window_draw_all(playlistwin); - } + cfg.colorize_g = gtk_range_get_value(GTK_RANGE(scale)); + reload_skin(); } static void on_blue_scale_value_changed(GtkHScale *scale, gpointer data) { - //GladeXML *xml = prefswin_get_xml(); - //GtkWidget *widget; - gint value; - - value = gtk_range_get_value(GTK_RANGE(scale)); - - if (value != cfg.colorize_r) - { - cfg.colorize_b = value; - - /* reload the skin to apply the change */ - skin_reload_forced(); - ui_skinned_window_draw_all(mainwin); - ui_skinned_window_draw_all(equalizerwin); - ui_skinned_window_draw_all(playlistwin); - } + cfg.colorize_b = gtk_range_get_value(GTK_RANGE(scale)); + reload_skin(); } static void @@ -2214,6 +2182,13 @@ } } +void +hide_prefs_window(void) +{ + g_return_if_fail(prefswin); + gtk_widget_hide(GTK_WIDGET(prefswin)); +} + static void prefswin_page_queue_new(GtkWidget *container, gchar *name, gchar *imgurl) {
--- a/src/audacious/ui_preferences.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_preferences.h Fri Nov 16 05:36:42 2007 +0200 @@ -22,6 +22,7 @@ void create_prefs_window(void); void show_prefs_window(void); +void hide_prefs_window(void); gint prefswin_page_new(GtkWidget *container, gchar *name, gchar *imgurl); void prefswin_page_destroy(GtkWidget *container);
--- a/src/audacious/ui_skinned_button.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_button.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 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 @@ -40,7 +40,6 @@ gint h; SkinPixmapId skin_index1; SkinPixmapId skin_index2; - GtkWidget *fixed; gboolean double_size; gint move_x, move_y; @@ -307,7 +306,7 @@ switch (button->type) { case TYPE_PUSH: - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, button->pressed ? priv->skin_index2 : priv->skin_index1, button->pressed ? priv->px : priv->nx, button->pressed ? priv->py : priv->ny, @@ -315,13 +314,13 @@ break; case TYPE_TOGGLE: if (button->inside) - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, button->pressed ? priv->skin_index2 : priv->skin_index1, button->pressed ? priv->ppx : priv->pnx, button->pressed ? priv->ppy : priv->pny, 0, 0, priv->w, priv->h); else - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, button->pressed ? priv->skin_index2 : priv->skin_index1, button->pressed ? priv->px : priv->nx, button->pressed ? priv->py : priv->ny, @@ -372,10 +371,9 @@ sbutton->type = TYPE_PUSH; priv->skin_index1 = si; priv->skin_index2 = si; - priv->fixed = fixed; priv->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(priv->fixed),GTK_WIDGET(button), sbutton->x, sbutton->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(button), sbutton->x, sbutton->y); } void ui_skinned_toggle_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h, gint nx, gint ny, gint px, gint py, gint pnx, gint pny, gint ppx, gint ppy, SkinPixmapId si) { @@ -397,10 +395,9 @@ sbutton->type = TYPE_TOGGLE; priv->skin_index1 = si; priv->skin_index2 = si; - priv->fixed = fixed; priv->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(priv->fixed),GTK_WIDGET(button), sbutton->x, sbutton->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(button), sbutton->x, sbutton->y); } void ui_skinned_small_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h) { @@ -412,10 +409,9 @@ sbutton->x = x; sbutton->y = y; sbutton->type = TYPE_SMALL; - priv->fixed = fixed; priv->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(priv->fixed),GTK_WIDGET(button), sbutton->x, sbutton->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(button), sbutton->x, sbutton->y); } static void button_pressed(UiSkinnedButton *button) { @@ -516,7 +512,8 @@ static void ui_skinned_button_redraw(UiSkinnedButton *button) { UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button); if (priv->move_x || priv->move_y) - gtk_fixed_move(GTK_FIXED(priv->fixed), GTK_WIDGET(button), button->x+priv->move_x, button->y+priv->move_y); + gtk_fixed_move(GTK_FIXED(gtk_widget_get_parent(GTK_WIDGET(button))), GTK_WIDGET(button), + button->x+priv->move_x, button->y+priv->move_y); gtk_widget_queue_draw(GTK_WIDGET(button)); }
--- a/src/audacious/ui_skinned_button.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_button.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 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
--- a/src/audacious/ui_skinned_equalizer_graph.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_equalizer_graph.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -101,10 +101,9 @@ equalizer_graph->x = x; equalizer_graph->y = y; equalizer_graph->skin_index = SKIN_EQMAIN; - equalizer_graph->fixed = fixed; equalizer_graph->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(equalizer_graph->fixed), GTK_WIDGET(equalizer_graph), equalizer_graph->x, equalizer_graph->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(equalizer_graph), equalizer_graph->x, equalizer_graph->y); return GTK_WIDGET(equalizer_graph); } @@ -246,9 +245,9 @@ */ void (*__init_spline) (gfloat *, gfloat *, gint, gfloat *) = init_spline; - skin_draw_pixmap(bmp_active_skin, obj, gc, equalizer_graph->skin_index, 0, 294, 0, 0, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, equalizer_graph->skin_index, 0, 294, 0, 0, equalizer_graph->width, equalizer_graph->height); - skin_draw_pixmap(bmp_active_skin, obj, gc, equalizer_graph->skin_index, 0, 314, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, equalizer_graph->skin_index, 0, 314, 0, 9 + ((cfg.equalizer_preamp * 9) / 20), equalizer_graph->width, 1);
--- a/src/audacious/ui_skinned_equalizer_graph.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_equalizer_graph.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -46,7 +46,6 @@ gint x, y, width, height; SkinPixmapId skin_index; - GtkWidget *fixed; gboolean double_size; };
--- a/src/audacious/ui_skinned_equalizer_slider.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_equalizer_slider.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -38,7 +38,6 @@ }; struct _UiSkinnedEqualizerSliderPrivate { - GtkWidget *fixed; SkinPixmapId skin_index; gboolean double_size; gint position; @@ -129,9 +128,8 @@ priv->width = 14; priv->height = 63; priv->skin_index = SKIN_EQMAIN; - priv->fixed = fixed; - gtk_fixed_put(GTK_FIXED(priv->fixed), GTK_WIDGET(es), es->x, es->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(es), es->x, es->y); return GTK_WIDGET(es); } @@ -216,14 +214,14 @@ gint frame; frame = 27 - ((priv->position * 27) / 50); if (frame < 14) - skin_draw_pixmap(bmp_active_skin, obj, gc, priv->skin_index, (frame * 15) + 13, 164, 0, 0, priv->width, priv->height); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, (frame * 15) + 13, 164, 0, 0, priv->width, priv->height); else - skin_draw_pixmap(bmp_active_skin, obj, gc, priv->skin_index, ((frame - 14) * 15) + 13, 229, 0, 0, priv->width, priv->height); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, ((frame - 14) * 15) + 13, 229, 0, 0, priv->width, priv->height); if (priv->pressed) - skin_draw_pixmap(bmp_active_skin, obj, gc, priv->skin_index, 0, 176, 1, priv->position, 11, 11); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, 0, 176, 1, priv->position, 11, 11); else - skin_draw_pixmap(bmp_active_skin, obj, gc, priv->skin_index, 0, 164, 1, priv->position, 11, 11); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, 0, 164, 1, priv->position, 11, 11); GdkPixmap *image = NULL;
--- a/src/audacious/ui_skinned_equalizer_slider.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_equalizer_slider.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player
--- a/src/audacious/ui_skinned_horizontal_slider.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_horizontal_slider.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -39,7 +39,6 @@ }; struct _UiSkinnedHorizontalSliderPrivate { - GtkWidget *fixed; SkinPixmapId skin_index; gboolean double_size; gint frame, frame_offset, frame_height, min, max; @@ -141,7 +140,6 @@ hs->y = y; priv->width = w; priv->height = h; - priv->fixed = fixed; hs->knob_nx = knx; hs->knob_ny = kny; hs->knob_px = kpx; @@ -158,7 +156,7 @@ priv->frame = priv->frame_cb(0); priv->skin_index = si; - gtk_fixed_put(GTK_FIXED(priv->fixed), GTK_WIDGET(hs), hs->x, hs->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(hs), hs->x, hs->y); return GTK_WIDGET(hs); } @@ -249,18 +247,18 @@ obj = gdk_pixmap_new(NULL, priv->width, priv->height, gdk_rgb_get_visual()->depth); gc = gdk_gc_new(obj); - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, priv->frame_offset, priv->frame * priv->frame_height, 0, 0, priv->width, priv->height); if (hs->pressed) - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, hs->knob_px, hs->knob_py, priv->position, ((priv->height - priv->knob_height) / 2), priv->knob_width, priv->knob_height); else - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, hs->knob_nx, hs->knob_ny, priv->position, ((priv->height - priv->knob_height) / 2),
--- a/src/audacious/ui_skinned_horizontal_slider.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_horizontal_slider.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player
--- a/src/audacious/ui_skinned_menurow.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_menurow.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -133,10 +133,9 @@ menurow->skin_index = si; - menurow->fixed = fixed; menurow->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(menurow->fixed), GTK_WIDGET(menurow), menurow->x, menurow->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(menurow), menurow->x, menurow->y); return GTK_WIDGET(menurow); } @@ -219,23 +218,23 @@ if (menurow->selected == MENUROW_NONE) { if (cfg.always_show_cb || menurow->pushed) - skin_draw_pixmap(bmp_active_skin, obj, gc, menurow->skin_index, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, menurow->skin_index, menurow->nx, menurow->ny, 0, 0, 8, 43); else - skin_draw_pixmap(bmp_active_skin, obj, gc, menurow->skin_index, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, menurow->skin_index, menurow->nx + 8, menurow->ny, 0, 0, 8, 43); } else { - skin_draw_pixmap(bmp_active_skin, obj, gc, menurow->skin_index, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, menurow->skin_index, menurow->sx + ((menurow->selected - 1) * 8), menurow->sy, 0, 0, 8, 43); } if (cfg.always_show_cb || menurow->pushed) { if (menurow->always_selected) - skin_draw_pixmap(bmp_active_skin, obj, gc, menurow->skin_index, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, menurow->skin_index, menurow->sx + 8, menurow->sy + 10, 0, 10, 8, 8); if (menurow->doublesize_selected) - skin_draw_pixmap(bmp_active_skin, obj, gc, menurow->skin_index, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, menurow->skin_index, menurow->sx + 24, menurow->sy + 26, 0, 26, 8, 8); }
--- a/src/audacious/ui_skinned_menurow.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_menurow.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -50,7 +50,6 @@ GtkWidget widget; gint x, y, width, height; - GtkWidget *fixed; gboolean double_size; gint nx, ny; gint sx, sy;
--- a/src/audacious/ui_skinned_monostereo.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_monostereo.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -102,10 +102,9 @@ monostereo->x = x; monostereo->y = y; monostereo->skin_index = si; - monostereo->fixed = fixed; monostereo->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(monostereo->fixed), GTK_WIDGET(monostereo), monostereo->x, monostereo->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(monostereo), monostereo->x, monostereo->y); return GTK_WIDGET(monostereo); } @@ -187,17 +186,17 @@ switch (monostereo->num_channels) { case 1: - skin_draw_pixmap(bmp_active_skin, obj, gc, monostereo->skin_index, 29, 0, 0, 0, 27, 12); - skin_draw_pixmap(bmp_active_skin, obj, gc, monostereo->skin_index, 0, 12, 27, 0, 29, 12); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, monostereo->skin_index, 29, 0, 0, 0, 27, 12); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, monostereo->skin_index, 0, 12, 27, 0, 29, 12); break; case 2: - skin_draw_pixmap(bmp_active_skin, obj, gc, monostereo->skin_index, 29, 12, 0, 0, 27, 12); - skin_draw_pixmap(bmp_active_skin, obj, gc, monostereo->skin_index, 0, 0, 27, 0, 29, 12); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, monostereo->skin_index, 29, 12, 0, 0, 27, 12); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, monostereo->skin_index, 0, 0, 27, 0, 29, 12); break; default: case 0: - skin_draw_pixmap(bmp_active_skin, obj, gc, monostereo->skin_index, 29, 12, 0, 0, 27, 12); - skin_draw_pixmap(bmp_active_skin, obj, gc, monostereo->skin_index, 0, 12, 27, 0, 29, 12); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, monostereo->skin_index, 29, 12, 0, 0, 27, 12); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, monostereo->skin_index, 0, 12, 27, 0, 29, 12); break; }
--- a/src/audacious/ui_skinned_monostereo.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_monostereo.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -47,7 +47,6 @@ gint x, y, width, height; gint num_channels; SkinPixmapId skin_index; - GtkWidget *fixed; gboolean double_size; };
--- a/src/audacious/ui_skinned_number.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_number.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -108,10 +108,9 @@ number->num = 0; number->skin_index = si; - number->fixed = fixed; number->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(number->fixed), GTK_WIDGET(number), number->x, number->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(number), number->x, number->y); return GTK_WIDGET(number); } @@ -193,7 +192,7 @@ if (number->num > 11 || number->num < 0) number->num = 10; - skin_draw_pixmap(bmp_active_skin, obj, gc, + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, number->skin_index, number->num * 9, 0, 0, 0, number->width, number->height); @@ -227,6 +226,7 @@ } void ui_skinned_number_set_number(GtkWidget *widget, gint num) { + g_return_if_fail(UI_SKINNED_IS_NUMBER(widget)); UiSkinnedNumber *number = UI_SKINNED_NUMBER (widget); if (number->num == num) @@ -235,3 +235,13 @@ number->num = num; gtk_widget_queue_draw(GTK_WIDGET(number)); } + +void ui_skinned_number_set_size(GtkWidget *widget, gint width, gint height) { + g_return_if_fail(UI_SKINNED_IS_NUMBER(widget)); + UiSkinnedNumber *number = UI_SKINNED_NUMBER (widget); + + number->width = width; + number->height = height; + + gtk_widget_set_size_request(widget, width*(1+number->double_size), height*(1+number->double_size)); +}
--- a/src/audacious/ui_skinned_number.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_number.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 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 @@ -42,7 +42,6 @@ gint num; gboolean double_size; SkinPixmapId skin_index; - GtkWidget *fixed; }; struct _UiSkinnedNumberClass { @@ -53,6 +52,7 @@ GtkWidget* ui_skinned_number_new (GtkWidget *fixed, gint x, gint y, SkinPixmapId si); GtkType ui_skinned_number_get_type(void); void ui_skinned_number_set_number(GtkWidget *widget, gint num); +void ui_skinned_number_set_size(GtkWidget *widget, gint width, gint height); #ifdef __cplusplus }
--- a/src/audacious/ui_skinned_playlist.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_playlist.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -72,7 +72,6 @@ }; struct _UiSkinnedPlaylistPrivate { - GtkWidget *fixed; SkinPixmapId skin_index; gint width, height; gint resize_width, resize_height; @@ -179,10 +178,9 @@ hs->y = y; priv->width = w; priv->height = h; - priv->fixed = fixed; priv->skin_index = SKIN_PLEDIT; - gtk_fixed_put(GTK_FIXED(priv->fixed), GTK_WIDGET(hs), hs->x, hs->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(hs), hs->x, hs->y); return GTK_WIDGET(hs); }
--- a/src/audacious/ui_skinned_playlist.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_playlist.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player
--- a/src/audacious/ui_skinned_playlist_slider.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_playlist_slider.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -39,7 +39,6 @@ }; struct _UiSkinnedPlaylistSliderPrivate { - GtkWidget *fixed; SkinPixmapId skin_index; gint width, height; @@ -133,10 +132,9 @@ hs->y = y; priv->width = 8; priv->height = h; - priv->fixed = fixed; priv->skin_index = SKIN_PLEDIT; - gtk_fixed_put(GTK_FIXED(priv->fixed), GTK_WIDGET(hs), hs->x, hs->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(hs), hs->x, hs->y); return GTK_WIDGET(hs); } @@ -251,7 +249,7 @@ } /* drawing knob */ - skin_draw_pixmap(bmp_active_skin, obj, gc, priv->skin_index, ps->pressed ? 61 : 52, 53, 0, y, priv->width, 18); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, priv->skin_index, ps->pressed ? 61 : 52, 53, 0, y, priv->width, 18); gdk_draw_drawable(widget->window, gc, obj, 0, 0, 0, 0, priv->width, priv->height); g_object_unref(obj); @@ -326,7 +324,8 @@ if (priv->resize_height) gtk_widget_set_size_request(GTK_WIDGET(playlist_slider), priv->width, priv->height+priv->resize_height); if (priv->move_x) - gtk_fixed_move(GTK_FIXED(priv->fixed), GTK_WIDGET(playlist_slider), playlist_slider->x+priv->move_x, playlist_slider->y); + gtk_fixed_move(GTK_FIXED(gtk_widget_get_parent(GTK_WIDGET(playlist_slider))), GTK_WIDGET(playlist_slider), + playlist_slider->x+priv->move_x, playlist_slider->y); gtk_widget_queue_draw(GTK_WIDGET(playlist_slider)); }
--- a/src/audacious/ui_skinned_playlist_slider.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_playlist_slider.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player
--- a/src/audacious/ui_skinned_playstatus.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_playstatus.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -104,10 +104,9 @@ playstatus->x = x; playstatus->y = y; - playstatus->fixed = fixed; playstatus->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(playstatus->fixed), GTK_WIDGET(playstatus), playstatus->x, playstatus->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(playstatus), playstatus->x, playstatus->y); return GTK_WIDGET(playstatus); } @@ -190,20 +189,20 @@ if (playstatus->status == STATUS_STOP && playstatus->buffering == TRUE) playstatus->buffering = FALSE; if (playstatus->status == STATUS_PLAY && playstatus->buffering == TRUE) - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 39, 0, 0, 0, 3, 9); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 39, 0, 0, 0, 3, playstatus->height); else if (playstatus->status == STATUS_PLAY) - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 36, 0, 0, 0, 3, 9); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 36, 0, 0, 0, 3, playstatus->height); else - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 27, 0, 0, 0, 2, 9); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 27, 0, 0, 0, 2, playstatus->height); switch (playstatus->status) { case STATUS_STOP: - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 18, 0, 2, 0, 9, 9); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 18, 0, 2, 0, 9, playstatus->height); break; case STATUS_PAUSE: - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 9, 0, 2, 0, 9, 9); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 9, 0, 2, 0, 9, playstatus->height); break; case STATUS_PLAY: - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 1, 0, 3, 0, 8, 9); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_PLAYPAUSE, 1, 0, 3, 0, 8, playstatus->height); break; } @@ -250,3 +249,13 @@ playstatus->buffering = status; gtk_widget_queue_draw(widget); } + +void ui_skinned_playstatus_set_size(GtkWidget *widget, gint width, gint height) { + g_return_if_fail (UI_SKINNED_IS_PLAYSTATUS (widget)); + UiSkinnedPlaystatus *playstatus = UI_SKINNED_PLAYSTATUS (widget); + + playstatus->width = width; + playstatus->height = height; + + gtk_widget_set_size_request(widget, width*(1+playstatus->double_size), height*(1+playstatus->double_size)); +}
--- a/src/audacious/ui_skinned_playstatus.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_playstatus.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -48,7 +48,6 @@ GtkWidget widget; gint x, y, width, height; - GtkWidget *fixed; gboolean double_size; PStatus status; gboolean buffering; @@ -63,6 +62,7 @@ GtkType ui_skinned_playstatus_get_type(void); void ui_skinned_playstatus_set_status(GtkWidget *widget, PStatus status); void ui_skinned_playstatus_set_buffering(GtkWidget *widget, gboolean status); +void ui_skinned_playstatus_set_size(GtkWidget *widget, gint width, gint height); #ifdef __cplusplus }
--- a/src/audacious/ui_skinned_textbox.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_textbox.c Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player @@ -47,7 +47,6 @@ struct _UiSkinnedTextboxPrivate { SkinPixmapId skin_index; - GtkWidget *fixed; gboolean double_size; gboolean scroll_back; gint nominal_y, nominal_height; @@ -184,10 +183,9 @@ priv->scroll_timeout = 0; priv->scroll_dummy = 0; - priv->fixed = fixed; priv->double_size = FALSE; - gtk_fixed_put(GTK_FIXED(priv->fixed), GTK_WIDGET(textbox), textbox->x, textbox->y); + gtk_fixed_put(GTK_FIXED(fixed), GTK_WIDGET(textbox), textbox->x, textbox->y); return GTK_WIDGET(textbox); } @@ -431,7 +429,8 @@ UiSkinnedTextboxPrivate *priv = UI_SKINNED_TEXTBOX_GET_PRIVATE(textbox); if (priv->move_x || priv->move_y) - gtk_fixed_move(GTK_FIXED(priv->fixed), GTK_WIDGET(textbox), textbox->x+priv->move_x, textbox->y+priv->move_y); + gtk_fixed_move(GTK_FIXED(gtk_widget_get_parent(GTK_WIDGET(textbox))), GTK_WIDGET(textbox), + textbox->x+priv->move_x, textbox->y+priv->move_y); gtk_widget_queue_draw(GTK_WIDGET(textbox)); } @@ -707,7 +706,7 @@ else textbox_handle_special_char(tmp, &x, &y); - skin_draw_pixmap(bmp_active_skin, + skin_draw_pixmap(GTK_WIDGET(textbox), bmp_active_skin, priv->pixmap, gc, priv->skin_index, x, y, i * bmp_active_skin->properties.textbox_bitmap_font_width, 0, bmp_active_skin->properties.textbox_bitmap_font_width,
--- a/src/audacious/ui_skinned_textbox.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_textbox.h Fri Nov 16 05:36:42 2007 +0200 @@ -1,6 +1,6 @@ /* * Audacious - a cross-platform multimedia player - * Copyright (c) 2007 Audacious development team. + * Copyright (c) 2007 Tomasz Moń * * Based on: * BMP - Cross-platform multimedia player
--- a/src/audacious/ui_skinned_window.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/ui_skinned_window.c Fri Nov 16 05:36:42 2007 +0200 @@ -102,6 +102,8 @@ window->x = event->x; window->y = event->y; + gtk_window_set_keep_above(GTK_WINDOW(widget), cfg.always_on_top); + return FALSE; } @@ -164,21 +166,21 @@ switch (window->type) { case WINDOW_MAIN: - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_MAIN, 0, 0, 0, 0, width, height); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_MAIN, 0, 0, 0, 0, width, height); skin_draw_mainwin_titlebar(bmp_active_skin, obj, gc, cfg.player_shaded, focus || !cfg.dim_titlebar); break; case WINDOW_EQ: - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_EQMAIN, 0, 0, 0, 0, width, height); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_EQMAIN, 0, 0, 0, 0, width, height); if (focus || !cfg.dim_titlebar) { if (!cfg.equalizer_shaded) - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_EQMAIN, 0, 134, 0, 0, width, 14); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_EQMAIN, 0, 134, 0, 0, width, 14); else - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_EQ_EX, 0, 0, 0, 0, width, 14); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_EQ_EX, 0, 0, 0, 0, width, 14); } else { if (!cfg.equalizer_shaded) - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_EQMAIN, 0, 149, 0, 0, width, 14); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_EQMAIN, 0, 149, 0, 0, width, 14); else - skin_draw_pixmap(bmp_active_skin, obj, gc, SKIN_EQ_EX, 0, 15, 0, 0, width, 14); + skin_draw_pixmap(widget, bmp_active_skin, obj, gc, SKIN_EQ_EX, 0, 15, 0, 0, width, 14); } break; case WINDOW_PLAYLIST:
--- a/src/audacious/vfs.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/vfs.c Fri Nov 16 05:36:42 2007 +0200 @@ -470,14 +470,11 @@ vfs_is_streaming(VFSFile *file) { off_t size = 0; - glong curpos; if(!file) return FALSE; - curpos = file->base->vfs_ftell_impl(file); size = file->base->vfs_fsize_impl(file); - file->base->vfs_fseek_impl(file, curpos, SEEK_SET); if(size == -1) return TRUE;
--- a/src/audacious/vfs_buffered_file.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audacious/vfs_buffered_file.c Fri Nov 16 05:36:42 2007 +0200 @@ -221,7 +221,7 @@ handle = g_new0(VFSFile, 1); fd = g_new0(VFSBufferedFile, 1); - fd->mem = g_malloc0(40000); + fd->mem = g_malloc0(128000); fd->fd = vfs_fopen(uri, "rb"); if (fd->fd == NULL) @@ -233,11 +233,12 @@ return NULL; } - sz = vfs_fread(fd->mem, 1, 40000, fd->fd); + 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);
--- a/src/audtool/Makefile Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/Makefile Fri Nov 16 05:36:42 2007 +0200 @@ -5,6 +5,7 @@ audtool_handlers_playlist.c \ audtool_handlers_playqueue.c \ audtool_handlers_vitals.c \ + audtool_handlers_test.c \ audtool_report.c include ../../buildsys.mk
--- a/src/audtool/audtool.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool.h Fri Nov 16 05:36:42 2007 +0200 @@ -87,8 +87,8 @@ extern void playqueue_add(gint, gchar **); extern void playqueue_remove(gint, gchar **); extern void playqueue_is_queued(gint, gchar **); -extern void playqueue_get_position(gint, gchar **); -extern void playqueue_get_qposition(gint, gchar **); +extern void playqueue_get_queue_position(gint, gchar **); +extern void playqueue_get_list_position(gint, gchar **); extern void playqueue_display(gint, gchar **); extern void playqueue_length(gint, gchar **); extern void playqueue_clear(gint, gchar **); @@ -107,9 +107,29 @@ extern void equalizer_show(gint, gchar **); extern void show_preferences_window(gint, gchar **); extern void show_jtf_window(gint, gchar **); +extern void show_filebrowser(gint, gchar **); extern void shutdown_audacious_server(gint, gchar **); +extern void show_about_window(gint, gchar **); extern void audtool_report(const gchar *str, ...); extern void audtool_whine(const gchar *str, ...); +/* test suite */ +extern void test_activate(gint argc, gchar **argv); +extern void test_enqueue_to_temp(gint argc, gchar **argv); +extern void test_toggle_aot(gint argc, gchar **argv); +extern void test_get_skin(gint argc, gchar **argv); +extern void test_set_skin(gint argc, gchar **argv); +extern void test_get_info(gint argc, gchar **argv); +extern void test_ins_url_string(gint argc, gchar **argv); +extern void test_get_version(gint argc, gchar **argv); + +extern void test_get_eq(gint argc, gchar **argv); +extern void test_get_eq_preamp(gint argc, gchar **argv); +extern void test_get_eq_band(gint argc, gchar **argv); +extern void test_set_eq(gint argc, gchar **argv); +extern void test_set_eq_preamp(gint argc, gchar **argv); +extern void test_set_eq_band(gint argc, gchar **argv); +void test_equalizer_active(gint argc, gchar **argv); + #endif
--- a/src/audtool/audtool_handlers_general.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool_handlers_general.c Fri Nov 16 05:36:42 2007 +0200 @@ -54,7 +54,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <level>", argv[0]); - return; + exit(1); } current_volume = audacious_remote_get_main_volume(dbus_proxy); @@ -74,63 +74,167 @@ void mainwin_show(gint argc, gchar **argv) { - if (argc > 1) - { - if (!g_ascii_strcasecmp(argv[1], "on")) { - audacious_remote_main_win_toggle(dbus_proxy, TRUE); - return; - } - else if (!g_ascii_strcasecmp(argv[1], "off")) { - audacious_remote_main_win_toggle(dbus_proxy, FALSE); - return; - } - } - audtool_whine("invalid parameter for %s.", argv[0]); - audtool_whine("syntax: %s <on/off>", argv[0]); + if (argc < 2) { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); + } + + if (!g_ascii_strcasecmp(argv[1], "on")) { + audacious_remote_main_win_toggle(dbus_proxy, TRUE); + return; + } + else if (!g_ascii_strcasecmp(argv[1], "off")) { + audacious_remote_main_win_toggle(dbus_proxy, FALSE); + return; + } } void playlist_show(gint argc, gchar **argv) { - if (argc > 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; - } - } - audtool_whine("invalid parameter for %s.", argv[0]); - audtool_whine("syntax: %s <on/off>", argv[0]); + if (argc < 2) { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + 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 > 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; - } - } - audtool_whine("invalid parameter for %s.", argv[0]); - audtool_whine("syntax: %s <on/off>", argv[0]); + if (argc < 2) { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + 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) { - audacious_remote_show_prefs_box(dbus_proxy); + gboolean show = TRUE; + + if (argc < 2) { +#if 0 + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); +#else + audacious_remote_toggle_prefs_box(dbus_proxy, show); + return; +#endif + } + + if (!g_ascii_strcasecmp(argv[1], "on")) + show = TRUE; + else if (!g_ascii_strcasecmp(argv[1], "off")) + show = FALSE; + else { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit (1); + } + + audacious_remote_toggle_prefs_box(dbus_proxy, show); +} + +void show_about_window(gint argc, gchar **argv) +{ + gboolean show = TRUE; + + if (argc < 2) { +#if 0 + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); +#else + audacious_remote_toggle_about_box(dbus_proxy, show); + return; +#endif + } + + if (!g_ascii_strcasecmp(argv[1], "on")) + show = TRUE; + else if (!g_ascii_strcasecmp(argv[1], "off")) + show = FALSE; + else { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit (1); + } + + audacious_remote_toggle_about_box(dbus_proxy, show); } void show_jtf_window(gint argc, gchar **argv) { - audacious_remote_show_jtf_box(dbus_proxy); + gboolean show = TRUE; + + if (argc < 2) { +#if 0 + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); +#else + audacious_remote_toggle_jtf_box(dbus_proxy, show); + return; +#endif + } + if (!g_ascii_strcasecmp(argv[1], "on")) + show = TRUE; + else if (!g_ascii_strcasecmp(argv[1], "off")) + show = FALSE; + else { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit (1); + } + + audacious_remote_toggle_jtf_box(dbus_proxy, show); +} + +void show_filebrowser(gint argc, gchar **argv) +{ + gboolean show = TRUE; + + if (argc < 2) { +#if 0 + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); +#else + audacious_remote_toggle_filebrowser(dbus_proxy, show); + return; +#endif + } + + if (!g_ascii_strcasecmp(argv[1], "on")) + show = TRUE; + else if (!g_ascii_strcasecmp(argv[1], "off")) + show = FALSE; + else { + audtool_whine("invalid parameter for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit (1); + } + + audacious_remote_toggle_filebrowser(dbus_proxy, show); } void shutdown_audacious_server(gint argc, gchar **argv) @@ -150,6 +254,7 @@ audtool_report(" %-34s - %s", handlers[i].name, handlers[i].desc); } + audtool_report(""); audtool_report("Handlers may be prefixed with `--' (GNU-style long-options) or not, your choice."); audtool_report("Report bugs to http://bugs-meta.atheme.org/"); }
--- a/src/audtool/audtool_handlers_playback.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool_handlers_playback.c Fri Nov 16 05:36:42 2007 +0200 @@ -118,7 +118,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } audacious_remote_jump_to_time(dbus_proxy, atoi(argv[1]) * 1000); @@ -132,7 +132,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } oldtime = audacious_remote_get_output_time(dbus_proxy);
--- a/src/audtool/audtool_handlers_playlist.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool_handlers_playlist.c Fri Nov 16 05:36:42 2007 +0200 @@ -53,7 +53,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <url>", argv[0]); - return; + exit(1); } audacious_remote_playlist_add_url_string(dbus_proxy, argv[1]); @@ -67,7 +67,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } playpos = atoi(argv[1]); @@ -99,7 +99,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } playpos = atoi(argv[1]); @@ -107,7 +107,7 @@ if (playpos < 1 || playpos > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", playpos); - return; + exit(1); } song = audacious_remote_get_playlist_title(dbus_proxy, playpos - 1); @@ -124,7 +124,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } playpos = atoi(argv[1]); @@ -132,7 +132,7 @@ if (playpos < 1 || playpos > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", playpos); - return; + exit(1); } frames = audacious_remote_get_playlist_time(dbus_proxy, playpos - 1); @@ -149,7 +149,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } playpos = atoi(argv[1]); @@ -157,7 +157,7 @@ if (playpos < 1 || playpos > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", playpos); - return; + exit(1); } frames = audacious_remote_get_playlist_time(dbus_proxy, playpos - 1); @@ -174,7 +174,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } playpos = atoi(argv[1]); @@ -182,7 +182,7 @@ if (playpos < 1 || playpos > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", playpos); - return; + exit(1); } frames = audacious_remote_get_playlist_time(dbus_proxy, playpos - 1); @@ -257,7 +257,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } i = atoi(argv[1]); @@ -265,7 +265,7 @@ if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); } audtool_report("%s", audacious_remote_get_playlist_file(dbus_proxy, i - 1)); @@ -279,7 +279,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } i = atoi(argv[1]); @@ -287,7 +287,7 @@ if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); } audacious_remote_set_playlist_pos(dbus_proxy, i - 1); @@ -295,6 +295,7 @@ void playlist_clear(gint argc, gchar **argv) { + audacious_remote_stop(dbus_proxy); audacious_remote_playlist_clear(dbus_proxy); } @@ -339,17 +340,17 @@ void playlist_tuple_field_data(gint argc, gchar **argv) { gint i; - gpointer data; + gchar *data; if (argc < 3) { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <fieldname> <position>", argv[0]); - audtool_whine(" - fieldname example choices: performer, album_name,"); - audtool_whine(" track_name, track_number, year, date, genre, comment,"); - audtool_whine(" file_name, file_ext, file_path, length, formatter,"); - audtool_whine(" custom, mtime"); - return; + audtool_whine(" - fieldname example choices include but are not limited to:"); + audtool_whine(" artist, album, title, track_number, year, date,"); + audtool_whine(" genre, comment, file_name, file_ext, file_path,"); + audtool_whine(" length, formatter, custom, mtime"); + exit(1); } i = atoi(argv[2]); @@ -357,7 +358,7 @@ if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); } if (!(data = audacious_get_tuple_field_data(dbus_proxy, argv[1], i - 1))) @@ -365,14 +366,7 @@ return; } - if (!g_ascii_strcasecmp(argv[1], "track_number") || !g_ascii_strcasecmp(argv[1], "year") || !g_ascii_strcasecmp(argv[1], "length") || !g_ascii_strcasecmp(argv[1], "mtime")) - { - if (*(gint *)data > 0) - { - audtool_report("%d", *(gint *)data); - } - return; - } + audtool_report("%s", data); - audtool_report("%s", (gchar *)data); + g_free(data); }
--- a/src/audtool/audtool_handlers_playqueue.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool_handlers_playqueue.c Fri Nov 16 05:36:42 2007 +0200 @@ -45,7 +45,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } i = atoi(argv[1]); @@ -53,7 +53,7 @@ if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); } if (!(audacious_remote_playqueue_is_queued(dbus_proxy, i - 1))) @@ -68,7 +68,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } i = atoi(argv[1]); @@ -76,7 +76,7 @@ if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); } if (audacious_remote_playqueue_is_queued(dbus_proxy, i - 1)) @@ -91,29 +91,7 @@ { audtool_whine("invalid parameters for playqueue-is-queued.", argv[0]); audtool_whine("syntax: %s playqueue-is-queued <position>", argv[0]); - return; - } - - i = atoi(argv[1]); - - if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) - { - audtool_whine("invalid playlist position %d", i); - return; - } - - exit(!(audacious_remote_playqueue_is_queued(dbus_proxy, i - 1))); -} - -void playqueue_get_position(gint argc, gchar **argv) -{ - gint i, pos; - - if (argc < 2) - { - audtool_whine("invalid parameters for %s.", argv[0]); - audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } i = atoi(argv[1]); @@ -121,10 +99,36 @@ if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); + } + if(audacious_remote_playqueue_is_queued(dbus_proxy, i - 1)) { + audtool_report("OK"); + exit(0); + } + else + exit(1); +} + +void playqueue_get_queue_position(gint argc, gchar **argv) +{ + gint i, pos; + + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <position>", argv[0]); + exit(1); } - pos = audacious_remote_get_playqueue_position(dbus_proxy, i - 1) + 1; + i = atoi(argv[1]); + + if (i < 1 || i > audacious_remote_get_playlist_length(dbus_proxy)) + { + audtool_whine("invalid playlist position %d", i); + exit(1); + } + + pos = audacious_remote_get_playqueue_queue_position(dbus_proxy, i - 1) + 1; if (pos < 1) return; @@ -132,7 +136,7 @@ audtool_report("%d", pos); } -void playqueue_get_qposition(gint argc, gchar **argv) +void playqueue_get_list_position(gint argc, gchar **argv) { gint i, pos; @@ -140,7 +144,7 @@ { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <position>", argv[0]); - return; + exit(1); } i = atoi(argv[1]); @@ -148,10 +152,10 @@ if (i < 1 || i > audacious_remote_get_playqueue_length(dbus_proxy)) { audtool_whine("invalid playlist position %d", i); - return; + exit(1); } - pos = audacious_remote_get_playqueue_queue_position(dbus_proxy, i - 1) + 1; + pos = audacious_remote_get_playqueue_list_position(dbus_proxy, i - 1) + 1; if (pos < 1) return; @@ -174,7 +178,7 @@ for (ii = 0; ii < i; ii++) { - position = audacious_remote_get_playqueue_queue_position(dbus_proxy, ii); + position = audacious_remote_get_playqueue_list_position(dbus_proxy, ii); songname = audacious_remote_get_playlist_title(dbus_proxy, position); frames = audacious_remote_get_playlist_time(dbus_proxy, position); length = frames / 1000;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/audtool/audtool_handlers_test.c Fri Nov 16 05:36:42 2007 +0200 @@ -0,0 +1,250 @@ +/* + * Audtool2 + * Copyright (c) 2007 Audacious development team + * + * 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 and/or other materials provided with the distribution. + * + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdlib.h> +#include <string.h> +#include <glib.h> +#include <mowgli.h> +#include <locale.h> +#include "libaudclient/audctrl.h" +#include "audtool.h" + +void test_activate(gint argc, gchar **argv) +{ + audacious_remote_activate(dbus_proxy); +} + +void test_enqueue_to_temp(gint argc, gchar **argv) +{ + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <url>", argv[0]); + exit(1); + } + + audacious_remote_playlist_enqueue_to_temp(dbus_proxy, argv[1]); +} + +void test_toggle_aot(gint argc, gchar **argv) +{ + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); + } + + if (!g_ascii_strcasecmp(argv[1], "on")) { + audacious_remote_toggle_aot(dbus_proxy, TRUE); + return; + } + else if (!g_ascii_strcasecmp(argv[1], "off")) { + audacious_remote_toggle_aot(dbus_proxy, FALSE); + return; + } +} + +void test_get_skin(gint argc, gchar **argv) +{ + gchar *skin = NULL; + skin = audacious_remote_get_skin(dbus_proxy); + audtool_report("%s", skin); + g_free(skin); +} + +void test_set_skin(gint argc, gchar **argv) +{ + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <skin>", argv[0]); + exit(1); + } + + if(!argv[1] || !strcmp(argv[1], "")) + return; + + audacious_remote_set_skin(dbus_proxy, argv[1]); +} + +void test_get_info(gint argc, gchar **argv) +{ + gint rate, freq, nch; + + audacious_remote_get_info(dbus_proxy, &rate, &freq, &nch); + audtool_report("rate = %d freq = %d nch = %d", rate, freq, nch); +} + +void test_ins_url_string(gint argc, gchar **argv) +{ + gint pos = -1; + + if (argc < 3) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <url> <position>", argv[0]); + exit(1); + } + + pos = atoi(argv[2]) - 1; + if(pos >= 0) + audacious_remote_playlist_ins_url_string(dbus_proxy, argv[1], pos); +} + +void test_get_version(gint argc, gchar **argv) +{ + gchar *version = NULL; + version = audacious_remote_get_version(dbus_proxy); + if(version) + audtool_report("Audacious %s", version); + g_free(version); +} + +void test_get_eq(gint argc, gchar **argv) +{ + double preamp; + GArray *bands; + int i; + + audacious_remote_get_eq(dbus_proxy, &preamp, &bands); + + audtool_report("preamp = %.2f", preamp); + for(i=0; i<10; i++){ + printf("%.2f ", g_array_index(bands, gdouble, i)); + } + printf("\n"); + g_array_free(bands, TRUE); +} + +void test_get_eq_preamp(gint argc, gchar **argv) +{ + audtool_report("preamp = %.2f", audacious_remote_get_eq_preamp(dbus_proxy)); +} + +void test_get_eq_band(gint argc, gchar **argv) +{ + int band; + + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <band>", argv[0]); + exit(1); + } + + band = atoi(argv[1]); + + if (band < 0 || band > 9) + { + audtool_whine("band number out of range"); + exit(1); + } + + audtool_report("band %d = %.2f", band, audacious_remote_get_eq_band(dbus_proxy, band)); + +} + +void test_set_eq(gint argc, gchar **argv) +{ + gdouble preamp; + GArray *bands = g_array_sized_new(FALSE, FALSE, sizeof(gdouble), 10); + int i; + + if (argc < 12) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <preamp> <band0> <band1> <band2> <band3> <band4> <band5> <band6> <band7> <band8> <band9>", argv[0]); + exit(1); + } + + 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); +} + +void test_set_eq_preamp(gint argc, gchar **argv) +{ + gdouble preamp; + + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <preamp>", argv[0]); + exit(1); + } + + preamp = atof(argv[1]); + + audacious_remote_set_eq_preamp(dbus_proxy, preamp); +} + +void test_set_eq_band(gint argc, gchar **argv) +{ + int band; + gdouble preamp; + + if (argc < 3) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <band> <value>", argv[0]); + exit(1); + } + + band = atoi(argv[1]); + preamp = atof(argv[2]); + + audacious_remote_set_eq_band(dbus_proxy, band, preamp); +} + +void test_equalizer_active(gint argc, gchar **argv) +{ + if (argc < 2) + { + audtool_whine("invalid parameters for %s.", argv[0]); + audtool_whine("syntax: %s <on/off>", argv[0]); + exit(1); + } + + if (!g_ascii_strcasecmp(argv[1], "on")) { + audacious_remote_eq_activate(dbus_proxy, TRUE); + return; + } + else if (!g_ascii_strcasecmp(argv[1], "off")) { + audacious_remote_eq_activate(dbus_proxy, FALSE); + return; + } +}
--- a/src/audtool/audtool_handlers_vitals.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool_handlers_vitals.c Fri Nov 16 05:36:42 2007 +0200 @@ -161,17 +161,17 @@ void get_current_song_tuple_field_data(gint argc, gchar **argv) { - gpointer data; + gchar *data; if (argc < 2) { audtool_whine("invalid parameters for %s.", argv[0]); audtool_whine("syntax: %s <fieldname>", argv[0]); - audtool_whine(" - fieldname example choices: performer, album_name,"); - audtool_whine(" track_name, track_number, year, date, genre, comment,"); - audtool_whine(" file_name, file_ext, file_path, length, formatter,"); - audtool_whine(" custom, mtime"); - return; + audtool_whine(" - fieldname example choices include but are not limited to:"); + audtool_whine(" artist, album, title, track_number, year, date,"); + audtool_whine(" genre, comment, file_name, file_ext, file_path,"); + audtool_whine(" length, formatter, custom, mtime"); + exit(1); } if (!(data = audacious_get_tuple_field_data(dbus_proxy, argv[1], audacious_remote_get_playlist_pos(dbus_proxy)))) @@ -179,14 +179,7 @@ return; } - if (!g_ascii_strcasecmp(argv[1], "track_number") || !g_ascii_strcasecmp(argv[1], "year") || !g_ascii_strcasecmp(argv[1], "length") || !g_ascii_strcasecmp(argv[1], "mtime")) - { - if (*(gint *)data > 0) - { - audtool_report("%d", *(gint *)data); - } - return; - } + audtool_report("%s", data); - audtool_report("%s", (gchar *)data); + g_free(data); }
--- a/src/audtool/audtool_main.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/audtool/audtool_main.c Fri Nov 16 05:36:42 2007 +0200 @@ -77,8 +77,8 @@ {"playqueue-add", playqueue_add, "adds a song to the playqueue", 1}, {"playqueue-remove", playqueue_remove, "removes a song from the playqueue", 1}, {"playqueue-is-queued", playqueue_is_queued, "returns OK if a song is queued", 1}, - {"playqueue-get-position", playqueue_get_position, "returns the queue position of a song in the playlist", 1}, - {"playqueue-get-qposition", playqueue_get_qposition, "returns the playlist position of a song in the queue", 1}, + {"playqueue-get-queue-position", playqueue_get_queue_position, "returns the playqueue position of a song in the given poition in the playlist", 1}, + {"playqueue-get-list-position", playqueue_get_list_position, "returns the playlist position of a song in the given position in the playqueue", 1}, {"playqueue-length", playqueue_length, "returns the length of the playqueue", 0}, {"playqueue-display", playqueue_display, "returns a list of currently-queued songs", 0}, {"playqueue-clear", playqueue_clear, "clears the playqueue", 0}, @@ -100,12 +100,37 @@ {"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}, - {"preferences", show_preferences_window, "shows/hides the preferences window", 0}, - {"jumptofile", show_jtf_window, "shows the jump to file window", 0}, + + {"preferences-show", show_preferences_window, "shows/hides the preferences window", 1}, + {"about-show", show_about_window, "shows/hides the about window", 1}, + {"jumptofile-show", show_jtf_window, "shows/hides the jump to file window", 1}, + {"filebrowser-show", show_filebrowser, "shows/hides the filebrowser", 1}, + {"shutdown", shutdown_audacious_server, "shuts down audacious", 0}, {"<sep>", NULL, "Help system", 0}, {"list-handlers", get_handlers_list, "shows handlers list", 0}, {"help", get_handlers_list, "shows handlers list", 0}, + + /* test suite */ + {"<sep>", NULL, "Test suite", 0}, + {"activate", test_activate, "activate audacious", 0}, + {"always-on-top", test_toggle_aot, "on/off always on top", 1}, + {"get-version", test_get_version, "get the version string of audacious", 0}, + {"get-info", test_get_info, "get info", 0}, + {"get-skin", test_get_skin, "get skin", 0}, + {"set-skin", test_set_skin, "set skin", 1}, + {"playlist-addurl-to-new-playlist", test_enqueue_to_temp, "adds a url to the newly created playlist", 1}, + {"playlist-insurl", test_ins_url_string, "inserts a url at specified position in the playlist", 2}, + + /* test suite for equalizer */ + {"equalizer-get", test_get_eq, "get the equalizer settings", 0}, + {"equalizer-get-preamp", test_get_eq_preamp, "get the equalizer pre-amplification", 0}, + {"equalizer-get-band", test_get_eq_band, "get the equalizer value in specified band", 1}, + {"equalizer-set", test_set_eq, "set the equalizer settings", 11}, + {"equalizer-set-preamp", test_set_eq_preamp, "set the equalizer pre-amplification", 1}, + {"equalizer-set-band", test_set_eq_band, "set the equalizer value in the specified band", 2}, + {"equalizer-activate", test_equalizer_active, "activate/deactivate the equalizer", 1}, + {NULL, NULL, NULL, 0} }; @@ -146,7 +171,7 @@ 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."); + mowgli_error_context_display_with_error(e, ":\n * ", "not enough parameters, use \'audtool help\' for more information."); for (j = 1; j < argc; j++) { @@ -156,15 +181,18 @@ !g_ascii_strcasecmp(g_strconcat("--", handlers[i].name, NULL), argv[j])) && g_ascii_strcasecmp("<sep>", handlers[i].name)) { - handlers[i].handler(handlers[i].args + 1, &argv[j]); + int numargs = handlers[i].args + 1 < argc - 1 ? handlers[i].args + 1 : argc - 1; + handlers[i].handler(numargs, &argv[j]); j += handlers[i].args; k++; + if(j >= argc) + break; } } } 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])); + mowgli_error_context_display_with_error(e, ":\n * ", g_strdup_printf("Unknown command '%s' encountered, use \'audtool help\' for a command list.", argv[1])); return 0; }
--- a/src/libaudclient/audctrl.c Wed Oct 24 10:41:53 2007 +0300 +++ b/src/libaudclient/audctrl.c Fri Nov 16 05:36:42 2007 +0200 @@ -21,6 +21,7 @@ #include <stdlib.h> #include <glib.h> +#include <string.h> #include <dbus/dbus-glib.h> #include "audacious/dbus.h" #include "audacious/dbus-client-bindings.h" @@ -37,21 +38,45 @@ * * Sends a playlist to audacious. **/ -void audacious_remote_playlist(DBusGProxy *proxy, gchar **list, gint num, - gboolean enqueue) { -//XXX +void audacious_remote_playlist(DBusGProxy *proxy, gchar **list, gint num, gboolean enqueue) { + GList *glist = NULL; + gchar **data = list; + + g_return_if_fail(list != NULL); + g_return_if_fail(num > 0); + + if (!enqueue) + audacious_remote_playlist_clear(proxy); + + // construct a GList + while(data) { + glist = g_list_append(glist, (gpointer)data); + data++; + } + + org_atheme_audacious_playlist_add(proxy, (gpointer)glist, &error); + + g_list_free(glist); + glist = NULL; + + if (!enqueue) + audacious_remote_play(proxy); } /** * audacious_remote_get_version: * @proxy: DBus proxy for audacious * - * Queries audacious for it's protocol version. + * Queries audacious for it's version. * - * Return value: The protocol version used by Audacious. + * Return value: The version of Audacious. **/ -gint audacious_remote_get_version(DBusGProxy *proxy) { - return 0x09a3; // XXX should do actual dbus call. +gchar *audacious_remote_get_version(DBusGProxy *proxy) { + char *string = NULL; + org_atheme_audacious_version(proxy, &string, &error); + g_clear_error(&error); + + return (string ? string : NULL); } /** @@ -64,7 +89,7 @@ void audacious_remote_playlist_add(DBusGProxy *proxy, GList *list) { GList *iter; for (iter = list; iter != NULL; iter = g_list_next(iter)) - org_atheme_audacious_add(proxy, iter->data, &error); + org_atheme_audacious_playlist_add(proxy, iter->data, &error); g_clear_error(&error); } @@ -76,7 +101,8 @@ * Deletes a playlist entry. **/ void audacious_remote_playlist_delete(DBusGProxy *proxy, guint pos) { -//XXX + org_atheme_audacious_delete(proxy, pos, &error); + g_clear_error(&error); } /** @@ -340,8 +366,10 @@ * Return value: A path to the currently selected skin. **/ gchar *audacious_remote_get_skin(DBusGProxy *proxy) { -//XXX - return NULL; + gchar *skin = NULL; + org_atheme_audacious_get_skin (proxy, &skin, &error); + g_clear_error(&error); + return skin; } /** @@ -352,7 +380,8 @@ * Tells audacious to start using the skinfile provided. **/ void audacious_remote_set_skin(DBusGProxy *proxy, gchar *skinfile) { -//XXX + org_atheme_audacious_set_skin(proxy, skinfile, &error); + g_clear_error(&error); } /** @@ -506,7 +535,41 @@ * Tells audacious to show the preferences pane. **/ void audacious_remote_show_prefs_box(DBusGProxy *proxy) { -//XXX + audacious_remote_toggle_prefs_box(proxy, TRUE); +} + +/** + * audacious_remote_toggle_prefs_box: + * @proxy: DBus proxy for audacious + * @show: shows/hides + * + * Tells audacious to show/hide the preferences pane. + **/ +void audacious_remote_toggle_prefs_box(DBusGProxy *proxy, gboolean show) { + org_atheme_audacious_show_prefs_box(proxy, show, &error); + g_clear_error(&error); +} + +/** + * audacious_remote_show_about_box: + * @proxy: DBus proxy for audacious + * + * Tells audacious to show the about box. + **/ +void audacious_remote_show_about_box(DBusGProxy *proxy) { + audacious_remote_toggle_about_box(proxy, TRUE); +} + +/** + * audacious_remote_toggle_about_box: + * @proxy: DBus proxy for audacious + * @show: shows/hides + * + * Tells audacious to show/hide the about box. + **/ +void audacious_remote_toggle_about_box(DBusGProxy *proxy, gboolean show) { + org_atheme_audacious_show_about_box(proxy, show, &error); + g_clear_error(&error); } /** @@ -517,7 +580,8 @@ * Tells audacious to toggle the always-on-top feature. **/ void audacious_remote_toggle_aot(DBusGProxy *proxy, gboolean ontop) { -//XXX + org_atheme_audacious_toggle_aot(proxy, ontop, &error); + g_clear_error(&error); } /** @@ -646,9 +710,9 @@ * * Queries audacious about the equalizer settings. **/ -void audacious_remote_get_eq(DBusGProxy *proxy, gfloat *preamp, - gfloat **bands) { -//XXX +void audacious_remote_get_eq(DBusGProxy *proxy, gdouble *preamp, GArray **bands) { + org_atheme_audacious_get_eq(proxy, preamp, bands, &error); + g_clear_error(&error); } /** @@ -659,9 +723,13 @@ * * Return value: The equalizer preamp's setting. **/ -gfloat audacious_remote_get_eq_preamp(DBusGProxy *proxy) { -//XXX - return 0.0; +gdouble audacious_remote_get_eq_preamp(DBusGProxy *proxy) { + gdouble preamp = 0.0; + + org_atheme_audacious_get_eq_preamp(proxy, &preamp, &error); + g_clear_error(&error); + + return preamp; } /** @@ -673,9 +741,13 @@ * * Return value: The equalizer band's value. **/ -gfloat audacious_remote_get_eq_band(DBusGProxy *proxy, gint band) { -//XXX - return 0.0; +gdouble audacious_remote_get_eq_band(DBusGProxy *proxy, gint band) { + gdouble value = 0.0; + + org_atheme_audacious_get_eq_band(proxy, band, &value, &error); + g_clear_error(&error); + + return value; } /** @@ -686,9 +758,9 @@ * * Tells audacious to set the equalizer up using the provided values. **/ -void audacious_remote_set_eq(DBusGProxy *proxy, gfloat preamp, - gfloat *bands) { -//XXX +void audacious_remote_set_eq(DBusGProxy *proxy, gdouble preamp, GArray *bands) { + org_atheme_audacious_set_eq(proxy, preamp, bands, &error); + g_clear_error(&error); } /** @@ -698,8 +770,9 @@ * * Tells audacious to set the equalizer's preamp setting. **/ -void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gfloat preamp) { -//XXX +void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gdouble preamp) { + org_atheme_audacious_set_eq_preamp(proxy, preamp, &error); + g_clear_error(&error); } /** @@ -710,9 +783,9 @@ * * Tells audacious to set an equalizer band's setting. **/ -void audacious_remote_set_eq_band(DBusGProxy *proxy, gint band, - gfloat value) { -//XXX +void audacious_remote_set_eq_band(DBusGProxy *proxy, gint band, gdouble value) { + org_atheme_audacious_set_eq_band(proxy, band, value, &error); + g_clear_error(&error); } /** @@ -733,7 +806,7 @@ * Tells audacious to either play or pause. **/ void audacious_remote_play_pause(DBusGProxy *proxy) { -//XXX + org_atheme_audacious_play_pause(proxy, &error); } /** @@ -746,7 +819,8 @@ **/ void audacious_remote_playlist_ins_url_string(DBusGProxy *proxy, gchar *string, guint pos) { -//XXX + org_atheme_audacious_playlist_ins_url_string (proxy, string, pos, &error); + g_clear_error(&error); } /** @@ -757,7 +831,8 @@ * Tells audacious to add a playlist entry to the playqueue. **/ void audacious_remote_playqueue_add(DBusGProxy *proxy, guint pos) { -//XXX + org_atheme_audacious_playqueue_add (proxy, pos, &error); + g_clear_error(&error); } /** @@ -768,7 +843,8 @@ * Tells audacious to remove a playlist entry from the playqueue. **/ void audacious_remote_playqueue_remove(DBusGProxy *proxy, guint pos) { -//XXX + org_atheme_audacious_playqueue_remove (proxy, pos, &error); + g_clear_error(&error); } /** @@ -820,7 +896,8 @@ * Tells audacious to display the main window and become the selected window. **/ void audacious_remote_activate(DBusGProxy *proxy) { -//XXX + org_atheme_audacious_activate(proxy, &error); + g_clear_error(&error); } /** @@ -830,7 +907,31 @@ * Tells audacious to show the Jump-to-File pane. **/ void audacious_remote_show_jtf_box(DBusGProxy *proxy) { -//XXX + audacious_remote_toggle_jtf_box(proxy, TRUE); +} + +/** + * audacious_remote_toggle_jtf_box: + * @proxy: DBus proxy for audacious + * @show: shows/hides jtf pane + * + * Tells audacious to show/hide the Jump-to-File pane. + **/ +void audacious_remote_toggle_jtf_box(DBusGProxy *proxy, gboolean show) { + org_atheme_audacious_show_jtf_box(proxy, show, &error); + g_clear_error(&error); +} + +/** + * audacious_remote_toggle_filebrowser: + * @proxy: DBus proxy for audacious + * @show: shows/hides filebrowser + * + * Tells audacious to show the filebrowser dialog. + **/ +void audacious_remote_toggle_filebrowser(DBusGProxy *proxy, gboolean show) { + org_atheme_audacious_show_filebrowser(proxy, show, &error); + g_clear_error(&error); } /** @@ -840,7 +941,8 @@ * Tells audacious to clear the playqueue. **/ void audacious_remote_playqueue_clear(DBusGProxy *proxy) { -//XXX + org_atheme_audacious_playqueue_clear(proxy, &error); + g_clear_error(&error); } /** @@ -853,22 +955,10 @@ * Return value: TRUE if yes, FALSE otherwise. **/ gboolean audacious_remote_playqueue_is_queued(DBusGProxy *proxy, guint pos) { -//XXX - return FALSE; -} - -/** - * audacious_remote_get_playqueue_position: - * @proxy: DBus proxy for audacious - * @pos: Position to check queue for. - * - * Queries audacious about what the playqueue position is for a playlist entry. - * - * Return value: TRUE if yes, FALSE otherwise. - **/ -gint audacious_remote_get_playqueue_position(DBusGProxy *proxy, guint pos) { -//XXX - return 0; + gboolean is_queued; + org_atheme_audacious_playqueue_is_queued (proxy, pos, &is_queued, &error); + g_clear_error(&error); + return is_queued; } /** @@ -876,14 +966,31 @@ * @proxy: DBus proxy for audacious * @pos: Position to check queue for. * + * Queries audacious about what the playqueue position is for a playlist entry. + * + * Return value: the playqueue position for a playlist entry + **/ +gint audacious_remote_get_playqueue_queue_position(DBusGProxy *proxy, guint pos) { + guint qpos = 0; + org_atheme_audacious_queue_get_queue_pos (proxy, pos, &qpos, &error); + g_clear_error(&error); + return qpos; +} + +/** + * audacious_remote_get_playqueue_list_position: + * @proxy: DBus proxy for audacious + * @pos: Position to check queue for. + * * Queries audacious about what the playlist position is for a playqueue entry. * - * Return value: TRUE if yes, FALSE otherwise. + * Return value: the playlist position for a playqueue entry **/ -gint audacious_remote_get_playqueue_queue_position(DBusGProxy *proxy, - guint pos) { -//XXX - return 0; +gint audacious_remote_get_playqueue_list_position(DBusGProxy *proxy, guint qpos) { + guint pos = 0; + org_atheme_audacious_queue_get_list_pos (proxy, qpos, &pos, &error); + g_clear_error(&error); + return pos; } /** @@ -895,7 +1002,8 @@ **/ void audacious_remote_playlist_enqueue_to_temp(DBusGProxy *proxy, gchar *string) { -//XXX + org_atheme_audacious_playlist_enqueue_to_temp(proxy, string, &error); + g_clear_error(&error); } /** @@ -910,6 +1018,44 @@ **/ gchar *audacious_get_tuple_field_data(DBusGProxy *proxy, gchar *field, guint pos) { -//XXX - return NULL; + GValue value = {}; + gchar *s = NULL; + + org_atheme_audacious_song_tuple(proxy, pos, field, &value, &error); + + g_clear_error(&error); + + if (G_IS_VALUE(&value) == FALSE) + return NULL; + + if (G_VALUE_HOLDS_STRING(&value)) + s = g_strescape(g_value_get_string(&value), NULL); + else if (g_value_type_transformable(G_VALUE_TYPE(&value), G_TYPE_STRING)) + { + GValue tmp_value = { 0, }; + + g_value_init(&tmp_value, G_TYPE_STRING); + g_value_transform(&value, &tmp_value); + + s = g_strescape(g_value_get_string(&tmp_value), NULL); + + g_value_unset(&tmp_value); + } + else + s = g_strdup("<unknown type>"); + + g_value_unset(&value); + return s; } + +/** + * audacious_remote_eq_activate: + * @proxy: DBus proxy for audacious + * @active: Whether or not to activate the equalizer. + * + * Toggles the equalizer. + **/ +void audacious_remote_eq_activate(DBusGProxy *proxy, gboolean active) { + org_atheme_audacious_equalizer_activate (proxy, active, &error); + g_clear_error(&error); +}
--- a/src/libaudclient/audctrl.h Wed Oct 24 10:41:53 2007 +0300 +++ b/src/libaudclient/audctrl.h Fri Nov 16 05:36:42 2007 +0200 @@ -23,13 +23,11 @@ #include <glib.h> #include <dbus/dbus-glib.h> -#ifdef __cplusplus -extern "C" { -#endif +G_BEGIN_DECLS void audacious_remote_playlist(DBusGProxy *proxy, gchar **list, gint num, gboolean enqueue); - gint audacious_remote_get_version(DBusGProxy *proxy); + gchar *audacious_remote_get_version(DBusGProxy *proxy); void audacious_remote_playlist_add(DBusGProxy *proxy, GList *list); void audacious_remote_playlist_delete(DBusGProxy *proxy, guint pos); void audacious_remote_play(DBusGProxy *proxy); @@ -74,15 +72,15 @@ void audacious_remote_toggle_shuffle(DBusGProxy *proxy); gboolean audacious_remote_is_repeat(DBusGProxy *proxy); gboolean audacious_remote_is_shuffle(DBusGProxy *proxy); - void audacious_remote_get_eq(DBusGProxy *proxy, gfloat *preamp, - gfloat **bands); - gfloat audacious_remote_get_eq_preamp(DBusGProxy *proxy); - gfloat audacious_remote_get_eq_band(DBusGProxy *proxy, gint band); - void audacious_remote_set_eq(DBusGProxy *proxy, gfloat preamp, - gfloat *bands); - void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gfloat preamp); + void audacious_remote_get_eq(DBusGProxy *proxy, gdouble *preamp, + GArray **bands); + gdouble audacious_remote_get_eq_preamp(DBusGProxy *proxy); + gdouble audacious_remote_get_eq_band(DBusGProxy *proxy, gint band); + void audacious_remote_set_eq(DBusGProxy *proxy, gdouble preamp, + GArray *bands); + void audacious_remote_set_eq_preamp(DBusGProxy *proxy, gdouble preamp); void audacious_remote_set_eq_band(DBusGProxy *proxy, gint band, - gfloat value); + gdouble value); /* Added in XMMS 1.2.1 */ void audacious_remote_quit(DBusGProxy *proxy); @@ -106,9 +104,8 @@ void audacious_remote_show_jtf_box(DBusGProxy *proxy); void audacious_remote_playqueue_clear(DBusGProxy *proxy); gboolean audacious_remote_playqueue_is_queued(DBusGProxy *proxy, guint pos); - gint audacious_remote_get_playqueue_position(DBusGProxy *proxy, guint pos); - gint audacious_remote_get_playqueue_queue_position(DBusGProxy *proxy, - guint pos); + gint audacious_remote_get_playqueue_list_position(DBusGProxy *proxy, guint qpos); + gint audacious_remote_get_playqueue_queue_position(DBusGProxy *proxy, guint pos); /* Added in Audacious 1.2 */ void audacious_set_session_uri(DBusGProxy *proxy, gchar *uri); @@ -120,9 +117,14 @@ gchar *string); gchar *audacious_get_tuple_field_data(DBusGProxy *proxy, gchar *field, guint pos); +/* Added in Audacious 1.4 */ + void audacious_remote_show_about_box(DBusGProxy *proxy); + void audacious_remote_toggle_about_box(DBusGProxy *proxy, gboolean show); + void audacious_remote_toggle_jtf_box(DBusGProxy *proxy, gboolean show); + void audacious_remote_toggle_prefs_box(DBusGProxy *proxy, gboolean show); + void audacious_remote_toggle_filebrowser(DBusGProxy *proxy, gboolean show); + void audacious_remote_eq_activate(DBusGProxy *proxy, gboolean active); -#ifdef __cplusplus -}; -#endif +G_END_DECLS #endif