Browse Source
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/amarok@1072335 283d02a7-25f6-0310-bc7c-ecb5cbfe19dav3.5.13-sru
commit
3ce9174229
1839 changed files with 1368989 additions and 0 deletions
@ -0,0 +1,15 @@
|
||||
Alexandre Oliveira <aleprj@gmail.com> |
||||
Christian Muehlhaeuser <chris@chris.de> |
||||
Frederik Holljen <fh@ez.no> |
||||
Gábor Lehel <illissius@gmail.com> |
||||
Ian Monroe <ian@monroe.nu> |
||||
Jeff Mitchell <kde-dev@emailgoeshere.com> |
||||
Mark Kretschmann <kretschmann@kde.org> |
||||
Martin Aumueller <aumuell@reserv.at> |
||||
Max Howell <max.howell@methylblue.com> |
||||
Mike Diehl <madpenguin8@yahoo.com> |
||||
Paul Cifarelli <paul@cifarelli.net> |
||||
Pierpaolo Di Panfilo <pippo_dp@libero.it> |
||||
Roman Becker <roman@formmorf.de> |
||||
Seb Ruiz <ruiz@kde.org> |
||||
Stanislav Karchebny <berk@inbox.ru> |
@ -0,0 +1,51 @@
|
||||
project(extragear-multimedia) |
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules ) |
||||
|
||||
# search packages used by KDE |
||||
find_package(KDE4 REQUIRED) |
||||
include (KDE4Defaults) |
||||
include (MacroLibrary) |
||||
include(MacroOptionalAddSubdirectory) |
||||
find_package(RUBY) |
||||
find_package(KdeMultimedia) |
||||
find_package(OpenGL) |
||||
find_package(Xine) |
||||
# are these two really required ? |
||||
if (APPLE) |
||||
find_package(Carbon REQUIRED) |
||||
endif (APPLE) |
||||
set(TAGLIB_MIN_VERSION "1.5") |
||||
find_package(Taglib) |
||||
|
||||
#amarok needs to be before add_definitions, since it builds |
||||
#some qt-only software |
||||
if(TAGLIB_FOUND AND RUBY_EXECUTABLE AND RUBY_INCLUDE_PATH) |
||||
macro_optional_add_subdirectory(amarok) |
||||
endif(TAGLIB_FOUND AND RUBY_EXECUTABLE AND RUBY_INCLUDE_PATH) |
||||
|
||||
|
||||
add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) |
||||
|
||||
include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES}) |
||||
|
||||
include (ConfigureChecks.cmake) |
||||
|
||||
if(TAGLIB_FOUND) |
||||
include_directories (${TAGLIB_INCLUDES}) |
||||
endif(TAGLIB_FOUND) |
||||
|
||||
if(KDEMULTIMEDIA_FOUND) |
||||
macro_optional_add_subdirectory(k3b) |
||||
macro_optional_add_subdirectory(kaudiocreator) |
||||
endif(KDEMULTIMEDIA_FOUND) |
||||
macro_optional_add_subdirectory(kaffeine) |
||||
macro_optional_add_subdirectory(kmid) |
||||
macro_optional_add_subdirectory(kplayer) |
||||
macro_optional_add_subdirectory(kmplayer) |
||||
macro_optional_add_subdirectory(doc) |
||||
|
||||
if(QT_QTOPENGL_FOUND AND OPENGL_FOUND AND XINE_FOUND) |
||||
macro_optional_add_subdirectory(kaffeinegl) |
||||
endif(QT_QTOPENGL_FOUND AND OPENGL_FOUND AND XINE_FOUND) |
||||
|
@ -0,0 +1,34 @@
|
||||
include(CheckIncludeFile) |
||||
include(CheckIncludeFiles) |
||||
include(CheckSymbolExists) |
||||
include(CheckFunctionExists) |
||||
include(CheckLibraryExists) |
||||
include(CheckPrototypeExists) |
||||
include(CheckTypeSize) |
||||
include(MacroBoolTo01) |
||||
|
||||
# The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with |
||||
# definitions like _GNU_SOURCE that are needed on each platform. |
||||
set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS}) |
||||
|
||||
#check for libz using the cmake supplied FindZLIB.cmake |
||||
macro_bool_to_01(ZLIB_FOUND HAVE_LIBZ) |
||||
macro_bool_to_01(JPEG_FOUND HAVE_LIBJPEG) |
||||
macro_bool_to_01(PNG_FOUND HAVE_LIBPNG) |
||||
macro_bool_to_01(CARBON_FOUND HAVE_CARBON) |
||||
macro_bool_to_01(NJB_FOUND HAVE_LIBNJB) |
||||
macro_bool_to_01(IFP_FOUND HAVE_IFP) |
||||
macro_bool_to_01(LIBVISUAL_FOUND HAVE_LIBVISUAL) |
||||
macro_bool_to_01(MTP_FOUND HAVE_MTP) |
||||
|
||||
#now check for dlfcn.h using the cmake supplied CHECK_include_FILE() macro |
||||
# If definitions like -D_GNU_SOURCE are needed for these checks they |
||||
# should be added to _KDE4_PLATFORM_DEFINITIONS when it is originally |
||||
# defined outside this file. Here we include these definitions in |
||||
# CMAKE_REQUIRED_DEFINITIONS so they will be included in the build of |
||||
# checks below. |
||||
set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS}) |
||||
if (WIN32) |
||||
set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN32_LIBRARIES} ) |
||||
set(CMAKE_REQUIRED_INCLUDES ${KDEWIN32_INCLUDES} ) |
||||
endif (WIN32) |
@ -0,0 +1,185 @@
|
||||
Installing Amarok |
||||
================= |
||||
|
||||
In order to compile and install Amarok on your system, type the following in the |
||||
base directory of the Amarok distribution: |
||||
|
||||
|
||||
% ./configure --prefix=`kde-config --prefix` |
||||
% make |
||||
% make install |
||||
|
||||
|
||||
Note: --enable-final is not supported. |
||||
|
||||
|
||||
The GNU installation instructions follow. |
||||
|
||||
|
||||
Basic Installation |
||||
================== |
||||
|
||||
These are generic installation instructions. |
||||
|
||||
The `configure' shell script attempts to guess correct values for |
||||
various system-dependent variables used during compilation. It uses |
||||
those values to create a `Makefile' in each directory of the package. |
||||
It may also create one or more `.h' files containing system-dependent |
||||
definitions. Finally, it creates a shell script `config.status' that |
||||
you can run in the future to recreate the current configuration, a file |
||||
`config.cache' that saves the results of its tests to speed up |
||||
reconfiguring, and a file `config.log' containing compiler output |
||||
(useful mainly for debugging `configure'). |
||||
|
||||
If you need to do unusual things to compile the package, please try |
||||
to figure out how `configure' could check whether to do them, and mail |
||||
diffs or instructions to the address given in the `README' so they can |
||||
be considered for the next release. If at some point `config.cache' |
||||
contains results you don't want to keep, you may remove or edit it. |
||||
|
||||
The file `configure.in' is used to create `configure' by a program |
||||
called `autoconf'. You only need `configure.in' if you want to change |
||||
it or regenerate `configure' using a newer version of `autoconf'. |
||||
|
||||
The simplest way to compile this package is: |
||||
|
||||
1. `cd' to the directory containing the package's source code and type |
||||
`./configure' to configure the package for your system. If you're |
||||
using `csh' on an old version of System V, you might need to type |
||||
`sh ./configure' instead to prevent `csh' from trying to execute |
||||
`configure' itself. |
||||
|
||||
Running `configure' takes a while. While running, it prints some |
||||
messages telling which features it is checking for. |
||||
|
||||
2. Type `make' to compile the package. |
||||
|
||||
3. Type `make install' to install the programs and any data files and |
||||
documentation. |
||||
|
||||
4. You can remove the program binaries and object files from the |
||||
source code directory by typing `make clean'. |
||||
|
||||
Compilers and Options |
||||
===================== |
||||
|
||||
Some systems require unusual options for compilation or linking that |
||||
the `configure' script does not know about. You can give `configure' |
||||
initial values for variables by setting them in the environment. Using |
||||
a Bourne-compatible shell, you can do that on the command line like |
||||
this: |
||||
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure |
||||
|
||||
Or on systems that have the `env' program, you can do it like this: |
||||
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure |
||||
|
||||
Compiling For Multiple Architectures |
||||
==================================== |
||||
|
||||
You can compile the package for more than one kind of computer at the |
||||
same time, by placing the object files for each architecture in their |
||||
own directory. To do this, you must use a version of `make' that |
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the |
||||
directory where you want the object files and executables to go and run |
||||
the `configure' script. `configure' automatically checks for the |
||||
source code in the directory that `configure' is in and in `..'. |
||||
|
||||
If you have to use a `make' that does not supports the `VPATH' |
||||
variable, you have to compile the package for one architecture at a time |
||||
in the source code directory. After you have installed the package for |
||||
one architecture, use `make distclean' before reconfiguring for another |
||||
architecture. |
||||
|
||||
Installation Names |
||||
================== |
||||
|
||||
By default, `make install' will install the package's files in |
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an |
||||
installation prefix other than `/usr/local' by giving `configure' the |
||||
option `--prefix=PATH'. |
||||
|
||||
You can specify separate installation prefixes for |
||||
architecture-specific files and architecture-independent files. If you |
||||
give `configure' the option `--exec-prefix=PATH', the package will use |
||||
PATH as the prefix for installing programs and libraries. |
||||
Documentation and other data files will still use the regular prefix. |
||||
|
||||
If the package supports it, you can cause programs to be installed |
||||
with an extra prefix or suffix on their names by giving `configure' the |
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. |
||||
|
||||
Optional Features |
||||
================= |
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to |
||||
`configure', where FEATURE indicates an optional part of the package. |
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE |
||||
is something like `gnu-as' or `x' (for the X Window System). The |
||||
`README' should mention any `--enable-' and `--with-' options that the |
||||
package recognizes. |
||||
|
||||
For packages that use the X Window System, `configure' can usually |
||||
find the X include and library files automatically, but if it doesn't, |
||||
you can use the `configure' options `--x-includes=DIR' and |
||||
`--x-libraries=DIR' to specify their locations. |
||||
|
||||
Specifying the System Type |
||||
========================== |
||||
|
||||
There may be some features `configure' can not figure out |
||||
automatically, but needs to determine by the type of host the package |
||||
will run on. Usually `configure' can figure that out, but if it prints |
||||
a message saying it can not guess the host type, give it the |
||||
`--host=TYPE' option. TYPE can either be a short name for the system |
||||
type, such as `sun4', or a canonical name with three fields: |
||||
CPU-COMPANY-SYSTEM |
||||
|
||||
See the file `config.sub' for the possible values of each field. If |
||||
`config.sub' isn't included in this package, then this package doesn't |
||||
need to know the host type. |
||||
|
||||
If you are building compiler tools for cross-compiling, you can also |
||||
use the `--target=TYPE' option to select the type of system they will |
||||
produce code for and the `--build=TYPE' option to select the type of |
||||
system on which you are compiling the package. |
||||
|
||||
Sharing Defaults |
||||
================ |
||||
|
||||
If you want to set default values for `configure' scripts to share, |
||||
you can create a site shell script called `config.site' that gives |
||||
default values for variables like `CC', `cache_file', and `prefix'. |
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then |
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the |
||||
`CONFIG_SITE' environment variable to the location of the site script. |
||||
A warning: not all `configure' scripts look for a site script. |
||||
|
||||
Operation Controls |
||||
================== |
||||
|
||||
`configure' recognizes the following options to control how it |
||||
operates. |
||||
|
||||
`--cache-file=FILE' |
||||
Use and save the results of the tests in FILE instead of |
||||
`./config.cache'. Set FILE to `/dev/null' to disable caching, for |
||||
debugging `configure'. |
||||
|
||||
`--help' |
||||
Print a summary of the options to `configure', and exit. |
||||
|
||||
`--quiet' |
||||
`--silent' |
||||
`-q' |
||||
Do not print messages saying which checks are being made. |
||||
|
||||
`--srcdir=DIR' |
||||
Look for the package's source code in directory DIR. Usually |
||||
`configure' can determine that directory automatically. |
||||
|
||||
`--version' |
||||
Print the version of Autoconf used to generate the `configure' |
||||
script, and exit. |
||||
|
||||
`configure' also accepts some other, not widely useful, options. |
||||
|
@ -0,0 +1,5 @@
|
||||
AUTOMAKE_OPTIONS = foreign 1.5
|
||||
|
||||
include admin/deps.am |
||||
include admin/Doxyfile.am |
||||
SUBDIRS=$(TOPSUBDIRS)
|
@ -0,0 +1,4 @@
|
||||
AUTOMAKE_OPTIONS = foreign 1.5
|
||||
|
||||
include admin/deps.am |
||||
include admin/Doxyfile.am |
@ -0,0 +1,14 @@
|
||||
all: |
||||
@echo "This Makefile is only for the CVS repository"
|
||||
@echo "This will be deleted before making the distribution"
|
||||
@echo ""
|
||||
@if test ! -d admin; then \
|
||||
echo "Please recheckout this module!" ;\
|
||||
echo "for cvs: use checkout once and after that update again" ;\
|
||||
echo "for cvsup: checkout kde-common from cvsup and" ;\
|
||||
echo " link kde-common/admin to ./admin" ;\
|
||||
exit 1 ;\
|
||||
fi
|
||||
$(MAKE) -f admin/Makefile.common cvs
|
||||
|
||||
.SILENT: |
@ -0,0 +1,223 @@
|
||||
|
||||
Amarok - the audio player for KDE |
||||
=================================== |
||||
|
||||
There are many media players around these days, true. What's missing from most |
||||
players is a user interface that doesn't get in the way of the user. How many |
||||
buttons do you have to press for simply adding some new tracks to the playlist? |
||||
Amarok tries to be a little different, providing a simple drag and drop |
||||
interface that really makes playlist handling easy. |
||||
|
||||
|
||||
FEATURES |
||||
========== |
||||
|
||||
* Quick and simple drag and drop playlist creation |
||||
* Music library (built-in SQLite, MySQL, or PostgreSQL) |
||||
* Multiple backends supported (xine, Helix, and NMM) |
||||
* Plays all audio formats known to man |
||||
* 10 band equalizer |
||||
* Automatic cover art download using Amazon services |
||||
* The unique and powerful stylable context browser |
||||
* Automatic play-statistics generation (iRate style) |
||||
* Full lyrics download |
||||
* Learn about your music with integrated Wikipedia |
||||
* Full last.fm support |
||||
* Visualisations with libvisual |
||||
* Crossfading and gapless playback |
||||
* Fully configurable OSD for track changes |
||||
* K3B (CD-burning) integration |
||||
* Podcast support |
||||
* Access to iPod, iRiver IFP, USB Mass Storage and many other devices |
||||
* Powerful scripting interface |
||||
* Complete DCOP Access |
||||
* KDE integration |
||||
* Preview and buy albums from the Magnatune.com music store |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
DEPENDENCIES |
||||
============== |
||||
|
||||
Required |
||||
* KDE-Libs 3.3 (or newer) |
||||
http://www.kde.org |
||||
|
||||
* TagLib 1.4 (or newer) |
||||
(metadata tagging library) |
||||
http://freshmeat.net/projects/taglib |
||||
|
||||
* Ruby 1.8 |
||||
(programming language, used for scoring, lyrics, last.fm streams) |
||||
http://www.ruby-lang.org |
||||
|
||||
* One of the multimedia frameworks listed below: |
||||
|
||||
Recommended |
||||
* xine-lib 1.0.2 (or newer) |
||||
Note: xine-lib 1.1.1 is required for gapless playback. |
||||
(multimedia framework) |
||||
http://xinehq.de/ |
||||
|
||||
Optional |
||||
* RealPlayer 10 or HelixPlayer 1.0 |
||||
(multimedia framework) |
||||
http://www.real.com |
||||
(Note: only HelixPlayer is exactly RealPlayer without MP3 support) |
||||
|
||||
* KDE-Base 3.3 (or newer) |
||||
(needed for Konqueror Sidebar) |
||||
http://www.kde.org |
||||
|
||||
* MySQL 4 or 5 |
||||
(faster database support) |
||||
http://www.mysql.com |
||||
|
||||
* PostgreSQL 7.4 |
||||
(faster database support) |
||||
http://www.postgresql.org |
||||
|
||||
* OpenGL accelerated X-Server |
||||
(visualization rendering) |
||||
|
||||
* Libvisual 0.4.0 + SDL 1.2 |
||||
(visualization framework) |
||||
http://localhost.nl/~synap/libvisual/ |
||||
http://www.libsdl.org |
||||
|
||||
* ProjectM 0.96 (or newer) |
||||
(visualization plugins for Libvisual or XMMS) |
||||
http://xmms-projectm.sourceforge.net/ |
||||
|
||||
* libtunepimp 0.3 (or newer) |
||||
(automatic tagging support) |
||||
http://www.musicbrainz.org/ |
||||
|
||||
* K3B 0.11 (or newer) |
||||
(CD burning support) |
||||
http://www.k3b.org |
||||
|
||||
* libgpod 0.4.2 (or newer) |
||||
(iPod support) |
||||
Note: libgpod 0.6.0 is required for the newest Apple iPods. |
||||
http://www.gtkpod.org/libgpod.html |
||||
|
||||
* libifp 1.0.0.2 |
||||
(iRiver iFP support) |
||||
http://ifp-driver.sourceforge.net/libifp/ |
||||
|
||||
* libmp4v2 (mpeg4ip 1.5 is recommended, faad2 is less reliable) |
||||
(MP4/AAC tag reading & writing) |
||||
http://www.sf.net/projects/mpeg4ip |
||||
http://www.audiocoding.com |
||||
|
||||
* libnjb 2.2.4 (older versions may work) |
||||
(NJB mediadevice (Creative Nomad/Zen family, Dell DJ devices) |
||||
http://www.sf.net/projects/libnjb |
||||
|
||||
* libmtp 0.1.1 (or newer) |
||||
(MTP media device support AKA PlaysForSure) |
||||
http://libmtp.sourceforge.net/ |
||||
|
||||
* libkarma 0.0.5 && OMFS 0.6.1 |
||||
(Rio Karma support via USB) |
||||
http://freakysoft.de/html/libkarma/ && http://linux-karma.sf.net/ |
||||
|
||||
Please note, if compiling from source you must also install the devel versions |
||||
of these packages. |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
IMPORTANT INSTALL INSTRUCTIONS |
||||
================================ |
||||
|
||||
In order to compile and install Amarok on your system, type the following in the |
||||
base directory of the Amarok distribution: |
||||
|
||||
|
||||
% ./configure --prefix=`kde-config --prefix` |
||||
% make |
||||
% make install |
||||
|
||||
|
||||
Note: --enable-final is not guaranteed to work |
||||
|
||||
|
||||
Packages for popular distributions are available at http://amarok.kde.org |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
INSTALLATION-FAQ |
||||
================== |
||||
|
||||
Q: Can I improve Amarok's startup time? |
||||
A: Prelinking Amarok has spectacular results; however if you have binary openGL |
||||
drivers (eg Nvidia drivers), you will need to compile Amarok --without-opengl |
||||
in order to get the amarokapp binary to prelink (the amarok binary is not |
||||
important here). |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
OTHER-FAQS |
||||
============ |
||||
|
||||
For answers to problems like "Amarok won't play any MP3s!" and "My MP3s skip |
||||
and stutter!" please visit: |
||||
|
||||
http://amarok.kde.org/ |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
INFORMATION FOR PACKAGERS |
||||
=========================== |
||||
|
||||
For Amarok packages we suggest you build: |
||||
|
||||
% ./configure --disable-debug |
||||
|
||||
It is possible to build Amarok to use MySQL as the database backend. Using |
||||
MySQL makes the Amarok collection faster. |
||||
|
||||
We suggest compiling Os, there is no particular part of Amarok that would |
||||
benefit from optimisation, so the smallest binary is probably the best route. |
||||
|
||||
In order to limit the dependencies the Amarok package demands we suggest |
||||
splitting Amarok into the following packages: |
||||
|
||||
1. Amarok + one backend |
||||
2. xine-engine |
||||
3. Helix-engine |
||||
4. amarok_libvisual |
||||
5. ipod media device |
||||
6. ifp media device |
||||
7. njb media device |
||||
8. mtp media device |
||||
9. rio karma media device |
||||
|
||||
Amarok is modular and will be fully functional as long as one of 2 or 3 is |
||||
also installed. Hence we suggest Amarok + one backend. Feel free to include the |
||||
helix, MAS and NMM engines if you can satisfy their dependencies. |
||||
|
||||
Amarok ships with two binaries: amarok and amarokapp. The amarok binary is a |
||||
wrapper designed to speed up command line argument passing. amarokapp is the |
||||
real Amarok. |
||||
|
||||
If you make packages for Amarok please let us know and we'll link to you on the |
||||
homepage (as long as you don't object). |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
CONTRIBUTING |
||||
============== |
||||
|
||||
If you wish to contribute to Amarok, you should build it from SVN and subscribe |
||||
to the amarok-devel mailing list. The IRC channel is also a place where |
||||
it's nice to be, since you can talk to other developers much easier, and |
||||
get instant notification of commits to the SVN. For instant email notification |
||||
of commits, visit http://commitfilter.kde.org/. |
||||
-------------------------------------------------------------------------------- |
||||
|
||||
|
||||
WWW : http://amarok.kde.org |
||||
MAIL: amarok@kde.org |
||||
IRC : irc.freenode.net - #amarok, #amarok.de, #amarok.es |
@ -0,0 +1,297 @@
|
||||
TODO-list for Amarok |
||||
====================== |
||||
<nick> == reported by |
||||
-->nick == assigned to |
||||
|
||||
|
||||
SHORT-TERM (URGENT): |
||||
<sebr> When using "Copy files to collection" in the filebrowser, tags wont get recognised from |
||||
urls which are organised from media:/ locations. |
||||
|
||||
<jeff> When playing a stream from e.g. Ampache, even if an Artist is detected, Wikipedia |
||||
will pull up "Artist - Song" instead of just Artist. |
||||
|
||||
<sebr> PlaylistBrowser::slotDoubleClicked() and PlaylistBrowser::addSelectedToPlaylist() |
||||
should be merged for better code reusage. They are practically the same. |
||||
|
||||
<markey> I just deleted a tag by accident: Clicked on a file in the playlist, pressed |
||||
delete to remove the track from the playlist. I had not noticed that it |
||||
went into edit mode, though. So I clicked somewhere else, and BAM, the new |
||||
empty tag was written. My tag was gone :S IMHO we should require confirmation |
||||
before writing, e.g. only write the tag after pressing enter. |
||||
|
||||
<markey> When you start a lastfm stream, the old metadata from the last stream is |
||||
shown before the new stream starts. Doesn't look nice. |
||||
|
||||
<shanachie> update podcast-tuples when the feed get's corrected after a mistake by the podcaster/publisher. eg. pubdate, url, title. |
||||
|
||||
<sebr> We need to check for pkg-config when configuring, otherwise we can't check for things |
||||
like libgpod. Currently its a silent error, and its very difficult to debug without |
||||
trawling through configure.in.in |
||||
|
||||
<sebr> Don't reload media device plugins when saving config settings. Its annoying, slow |
||||
and all around unnecessary. It also crashes if the device is connected/loaded. |
||||
<aumuell> Cannot reproduce anything of this with ipods - i think i fixed that already. |
||||
|
||||
<markey> After doing "Delete downloaded podcast", the icon still indicates downloaded. |
||||
|
||||
<sebr> LastFm: |
||||
- determine how hard it would be to tag songs |
||||
<eean> - display history in the playlist somehow <markey> I'm against this. |
||||
-subitems? |
||||
-just disabled? |
||||
- 'stop after current track' should work |
||||
<markey> - when you've never listenend to lastfm before, all stream links on the |
||||
website are disabled ("Download the player"). we need to do a handshake on |
||||
startup once, and then set a config item, e.g. handshaked=true. |
||||
|
||||
<markey> xine-engine: when "xine could not init any audio driver" happens, always retry |
||||
with Autodetect. This seems to be an issue with leftover amarokrc's from 1.3. |
||||
|
||||
<sebr> Adding an m3u with non existant items has filesize = 16,777,216.0 TB! |
||||
|
||||
<sebr> Refactor code for PlaylistBrowser::removeSelectedItems(). I can see pathological cases |
||||
where it won't work. |
||||
|
||||
<illiss.> Is using the score for the number, but the rating for the vis. in the context browser |
||||
confusing? (I think it is, but that might be becuase my theme doesn't use stars but a |
||||
partially-filled bar). If so it should be reverted for beta 1, I have a better solution |
||||
already planned but that won't be in time. |
||||
|
||||
<illiss.> The various UI and behaviour refactorings for Dynamic Mode should be finished up and |
||||
polished. Among them, add a button to turn it off in the bar-above-the-playlist, fix |
||||
drag-and-dropping of dynamic playlists, and when loading a dynamic playlist, clear the |
||||
existing playlist first, instead of making it dynamic (which has all sorts of nasty side |
||||
effects). |
||||
|
||||
<sebr> Podcast Fixme's: |
||||
* Have i listened to podcast streamed? |
||||
|
||||
<illiss.> Loading normal (M3U) playlists from the playlist browser doesn't block the UI per se, |
||||
but it does nothing for really long time, until suddenly the whole playlist shows up, |
||||
which is strange and confusing. |
||||
|
||||
<markey> Tooltips don't work for 3rd level items in the Playlist Browser. They do how |
||||
however work (for me) for 2nd level items. Very bad, cause you can't read the |
||||
text! |
||||
|
||||
<sebr> When starting a drag in the collection browser, we can block the gui if the user makes a |
||||
selection which is sql intensive (eg, select all). Instead of calculating the items |
||||
in each of those nodes, we should add the sql to the drag and allow the playlist loader |
||||
to do the work for us (which is threaded). |
||||
<muesli> See SqlLoader class in playlistloader. We do the very same stuff for |
||||
Smart-Playlists already. |
||||
|
||||
<sebr> The unknown album should ALWAYS be shown last. Year has a higher weighting than album |
||||
name. We should special case the Unknown album. |
||||
|
||||
<markey> When all 5 browser tabs are activated, the current tab button is drawn a few |
||||
pixels below the normal position. This has the side effect that the separator line |
||||
at the bottom of the bottom becomes invisible. |
||||
You can see the problem easily when you hide the current browser by clicking twice |
||||
the button twice. This problem AFAIK also affects 1.3-branch. |
||||
|
||||
<markey> Add DCOP functions for showing dialogs, similar to kdialog. |
||||
|
||||
<sebr> More consistent playlistbrowser drag and drop actions; No dropping of default streams, set |
||||
e->accept( false ) if dropping one type onto another. |
||||
|
||||
<sebr> Use KIO queues for podcast download queues. Should simplify the lot. Problems atm included |
||||
selecting multiple downloads individually, and automatic downloads occuring for more that one |
||||
podcast item. |
||||
|
||||
<markey> In EngineController::play(), add a sanity check when querying the track length |
||||
from the engine. Apparently AAC can deliver ridiculous values with GST and Helix, |
||||
like 1192479:38:49. If length is too extreme, default to the TagLib provided |
||||
value. |
||||
|
||||
<eean> Currently custom dynamic playlist selection is simply based on the titles. So its less then |
||||
ideal. Via some method, each playlist should be assigned iteratively a number paired with its |
||||
type.. Dynamic playlists and static playlists should probably have seperate numbering so |
||||
that the "next" number can be determined by looking at one XML file. |
||||
Remembering which PartyEntry was used on close should be remembered with the same method. |
||||
|
||||
<eean> Smart playlists bypass checks on whether the media is playable or not. |
||||
Or perhaps such media shouldn't be in the collection at all? This is the sort of |
||||
thing we're going to have to worry about now that we have m4a and wma tag support. |
||||
|
||||
<markey> Consider moving the GHNS provider list to a different server than amarok.kde.org, |
||||
possibly download.kde.org or similar. (When our site is down, the GHNS feature fails |
||||
to work entirely) |
||||
|
||||
<markey> Amarok fails to download any stream playlist from http://dir.xiph.org. Part of the problem is |
||||
PlaylistLoader::isPlaylistFile(const KURL&), which only looks at the filename's extension. This |
||||
fails for URLs like http://dir.xiph.org/listen.php?pid=669641&file=listen.m3u, because the filename |
||||
is "listen.php". So it must look at the whole url instead. |
||||
|
||||
<mxcl> On first-ever-run, if Amarok crashes building the sqlite collection, it is impossible to _ever_ |
||||
build a collection unless the user's amarokrc file is deleted! This MUST be fixed before 1.2! |
||||
::muesli:: We could just _always_ try to create the sql tables on startup. This would fail on |
||||
::muesli:: systems which already got the tables, but would fix the situation where tables are |
||||
::muesli:: missing, as in this situation. Just pump the debug of these calls to /dev/null. |
||||
|
||||
<mxcl> Just before we load any engine plugin, write to a file, and it we don't succeed the next time |
||||
Amarok starts show a big warning saying "Gah!" and load a different one. |
||||
|
||||
<mxcl> If you inline set the title tag to "", prettyTitle gets inserted as the title tag. |
||||
|
||||
<markey> When the KDE color scheme is changed while Amarok is running, all toolbar buttons (those with text) |
||||
lose their texts. |
||||
|
||||
<shakes> The scrobbler code should report some sort of error message rather than just saying that the |
||||
submit failed. That way when last.fm goes down we wouldn't get so many people asking why they |
||||
can't submit. It'd also be nice to be able to tell people they've got their password wrong. |
||||
|
||||
<jefferai> When hovering the mouse over the Repeat/Random icons in the bottom taskbar, the popups that appear |
||||
not only have inconsistent icons with the ones shown in the taskbar, but they're pixellated and ugly |
||||
as sin. Should probably be redone as SVGs. |
||||
|
||||
<jefferai> Xine proxy value is not saved across sessions. Problem exists in Xine-UI as well, at least for me. |
||||
Maybe an upstream bug and nothing we can fix. |
||||
|
||||
MID-TERM: |
||||
<eean> Implement a "Find My Music" button in the first-run wizard. Just a basic |
||||
thing that will look at file extensions and try to figure out where the users |
||||
music is located. Ignore /opt/, /usr etc. to avoid adding sound effects. Prompt |
||||
user with the directories at the end of the scan, allowing them to exclude some. |
||||
|
||||
<eean> The FileBrowser doesn't check for recursive symlinks. This is a KDirOperator (or the |
||||
classes it depends on) problem. |
||||
|
||||
<eean> Basically need to re-add some of the functionality I removed in re-doing dynamic |
||||
--><eean> custom playlist creation. |
||||
1) the default dynamic playlists need to be more insistent, the same way the |
||||
the default smart playlists are. |
||||
<eean> Implement leinir's mockup: |
||||
www.leinir.dk/temp/gallery/?image=pictures/amarok-playlist-bar-dynamic-mode.png |
||||
<leinir> The idea with the look of the top is, as you can probably see from the colours |
||||
otherwise present, that it's the active window titlebar/colour/font, with the name of the |
||||
playlist being un-bolded (if the window title is bold)... |
||||
<leinir> eean: Some people will identify the active window by titlebar colour alone :) |
||||
|
||||
<mp8> Album covers as icons from filebrowser. |
||||
|
||||
<eean> When the player window shades, it should lose its title bar and be replaced with something more |
||||
compactish. This would probably have to be created manually. |
||||
|
||||
<sebr> Make the player window scroll the text in the opposite direction if using right-2-left text |
||||
(eg hebrew or arabic) |
||||
|
||||
<sebr> Use Metabar's box retraction animation to the context browser. More iCandy. Any Javascript experts around? |
||||
|
||||
<mxcl> Should be able to open collection browser by right clicking on stuff in contextB, so show the |
||||
artist or album that is right clicked. |
||||
|
||||
<markey> AudioCD support for gst engine (cdparanoia ! *sink). -->markey |
||||
|
||||
<markey> We should cut down on unnecessary/redundant debug output/warnings (noise). |
||||
|
||||
<mxcl> Perhaps a nice idea: when you drag playlistItems to a branch in the collection browser |
||||
it prompts to change the track's tags, so drag a track to the "moolaaa" album and that |
||||
track get's it's album tag changed to "moolaaa" and is inserted into the branch, so the user |
||||
know's what has happened. |
||||
|
||||
<mxcl> User asked for a CTRL-J itty-bitty dialog that allows you to jump to a specific part |
||||
of a track. I'll see if I can do it with tiny amount of code -->mxcl |
||||
|
||||
<muesli> Don't rely on KDE timeouts to see whether a file is accessible or not, |
||||
since this really sucks for disconnected network shares. XMMS handles |
||||
this way better and it really is a problem in userland. maybe a thread |
||||
helps, which simply tries to fopen() the file. if this task hasn't been |
||||
finished in (let's say) 3 seconds, jump to the next song. XMMS even |
||||
remembers such files and their folders, so that it's not going to open |
||||
another file from that folder for the next few minutes. what about hdd |
||||
sleep-timeouts? opinions? |
||||
|
||||
<mxcl> Determine some behavior for the clear/shuffle/etc. buttons when a search is in action |
||||
clear -> only clear the stuff that was searched for? |
||||
shuffle -> stop the search and do normal shuffle? |
||||
ADDitionally what to do when user rearranges a set of items that are the search result? |
||||
<larson> No big deal to me as long as the behaviour is consistent. I.e. if shuffle shuffles |
||||
the search, then clear should clear the search only, and visa versa. |
||||
|
||||
<larson> Make playlist toolbar buttons toggle like the playerwidget buttons. |
||||
|
||||
Toolbar button in FileBrowser for switching recursive directory reading. |
||||
|
||||
<mxcl> Can't resize newly displayed columns if they are hidden at beginning of session -->mxcl |
||||
|
||||
<muesli> Add an option "clean up playlist on startup". |
||||
<mxcl> Do you mean remove duplicates or dead entries etc. ? Cool. |
||||
|
||||
<mxcl> Option: don't crossfade for sequential tracks on same album. Comments? -->mxcl |
||||
Of course, there would still be the up to 150ms gap, but we can fix that some other time.. |
||||
<markey> Please clarify: is this the same as BR #75388 ? |
||||
<mxcl> No, this is just to make crossfading not ruin album transitions |
||||
|
||||
Add dirs to combo history when user adds a track from that dir to the playlist. |
||||
|
||||
"Show playlist" to the right click menu, redundant but necessary. |
||||
|
||||
More KTips, better KTips, somehow use the "Did you know" tip dialog (eg kmail, gideon, etc.) -->mxcl |
||||
|
||||
Option to automatically adjust column widths. |
||||
|
||||
Option to implicitly sort playlist by { track, album } (on drop only) -->mxcl |
||||
|
||||
<berkus> Playmode indication button in main widget (repeat track/pl/shuffle), clickable. |
||||
|
||||
|
||||
LONG-TERM: |
||||
|
||||
<sebr> Support multiple collections. This could be really powerful, and could be handled |
||||
with the collection browser. We could support non-local collections, audio cd/dvds, |
||||
NFS/Samba etc. This would also allow us to retrieve tracks from other networked pcs. |
||||
Auto-polling of added collections for a 'hot-sync' style detection of collections. |
||||
|
||||
<markey> Use more accurate interpolation for analyzers (cubic or spline) |
||||
|
||||
Tabbed playlists. |
||||
Pro: it's convenient to have several playlists |
||||
Contra: the playlist is getting cluttered enough as it is! |
||||
<illissius> I already added a comment wrt this to the b.k.o bug, but here's the idea: |
||||
switch between playlists with the playlist browser -- that's what it's there for. |
||||
This avoids the clutter. The way it'd work is the currently playing playlist would |
||||
have the same fancy fading thing the current track has. The context menu for playlists |
||||
would have two seperate items, one for showing and one for playing. When just showing, |
||||
the previous playlist would continue playing while you view/edit the other one. |
||||
(If you doubleclick a song in the new playlist, it would naturally start playing that |
||||
one instead). What to do when the user doubleclicks a playlist -- show, play, or both |
||||
-- is TBD. |
||||
|
||||
Make windows magnetic / sticking together (difficult). |
||||
|
||||
<mxcl> Implement beat detection (thread?), interface should glow/move to |
||||
the beat, visualisations have access to beat/bpm info. |
||||
|
||||
Audio system info widget, showing all available codecs and similar info. |
||||
|
||||
Resizable playerwidget, like in Winamp3. |
||||
|
||||
IDEAS: |
||||
|
||||
Bookmarks inside of tracks (good for very long tracks), and nifty bookmark browser |
||||
|
||||
Using filelight (as a kpart maybe) for a graphical representation of the playlist. so |
||||
you could see at first glance how the altogether playing time is divided into different |
||||
albums, tunes and so on. |
||||
|
||||
|
||||
DO-NOT-IMPLEMENT (stuff that was rejected): |
||||
|
||||
<markey> Allow removing of playlist items by dragging back into browser. |
||||
<larson> I think this is really weird. When I drag something I expect that someting to be |
||||
ADDed or opened in the target. Not removed from the sender. |
||||
(RFC: is this still appropriate or would it be misleading?) |
||||
<muesli> imho, it's misleading and not hid-compatible. i would rather |
||||
expect that file to be copied to the browser's current directory. |
||||
|
||||
"Hide playlist when main widget is not active" option (?? comments please: ) |
||||
<berkus> Noo, we have it hiding into tray, thats enough (imagine how much flashing will be |
||||
if i drag mouse around with "focus follows mouse" on - this is the one i use all the time) |
||||
<mxcl> Hence it's an option, you'd not use it with focus follows mouse. But it was just an idea |
||||
anyway.. dunno if I like the sound of it anymore either. |
||||
|
||||
|
||||
BACKTRACES/DEBUG/VALGRIND: |
||||
|
@ -0,0 +1,881 @@
|
||||
# generated automatically by aclocal 1.10.1 -*- Autoconf -*- |
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
||||
# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
||||
# This file is free software; the Free Software Foundation |
||||
# gives unlimited permission to copy and/or distribute it, |
||||
# with or without modifications, as long as this notice is preserved. |
||||
|
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without |
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
||||
# PARTICULAR PURPOSE. |
||||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION], |
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
||||
m4_if(AC_AUTOCONF_VERSION, [2.61],, |
||||
[m4_warning([this file was generated for autoconf 2.61. |
||||
You have another version of autoconf. It may work, but is not guaranteed to. |
||||
If you have problems, you may need to regenerate the build system entirely. |
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])]) |
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. |
||||
# |
||||
# This file is free software; the Free Software Foundation |
||||
# gives unlimited permission to copy and/or distribute it, |
||||
# with or without modifications, as long as this notice is preserved. |
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION) |
||||
# ---------------------------- |
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been |
||||
# generated from the m4 files accompanying Automake X.Y. |
||||
# (This private macro should not be called outside this file.) |
||||
AC_DEFUN([AM_AUTOMAKE_VERSION], |
||||
[am__api_version='1.10' |
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
||||
dnl require some minimum version. Point them to the right macro. |
||||
m4_if([$1], [1.10.1], [], |
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
||||
]) |
||||
|
||||
# _AM_AUTOCONF_VERSION(VERSION) |
||||
# ----------------------------- |
||||
# aclocal traces this macro to find the Autoconf version. |
||||
# This is a private macro too. Using m4_define simplifies |
||||
# the logic in aclocal, which can simply ignore this definition. |
||||
m4_define([_AM_AUTOCONF_VERSION], []) |
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION |
||||
# ------------------------------- |
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
||||
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. |
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
||||
[AM_AUTOMAKE_VERSION([1.10.1])dnl |
||||
m4_ifndef([AC_AUTOCONF_VERSION], |
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl |
||||
_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) |
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*- |
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. |
||||
# |
||||
# This file is free software; the Free Software Foundation |
||||
# gives unlimited permission to copy and/or distribute it, |
||||
# with or without modifications, as long as this notice is preserved. |
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets |
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to |
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'. |
||||
# |
||||
# Of course, Automake must honor this variable whenever it calls a |
||||
# tool from the auxiliary directory. The problem is that $srcdir (and |
||||
# therefore $ac_aux_dir as well) can be either absolute or relative, |
||||
# depending on how configure is run. This is pretty annoying, since |
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top |
||||
# source directory, any form will work fine, but in subdirectories a |
||||
# relative path needs to be adjusted first. |
||||
# |
||||
# $ac_aux_dir/missing |
||||
# fails when called from a subdirectory if $ac_aux_dir is relative |
||||
# $top_srcdir/$ac_aux_dir/missing |
||||