On 2009/02/09 20:31, Jochen Keil <jochen.k...@gmail.com> wrote:
> If someone could give me some hints on where
> (files/functions/structures) to look at i'd be really grateful.

Hi Jochen,

MPD's playlist code is still the most complicated part of the MPD
source, although I have worked a lot on simplifying it.  That's
however not how we should integrate it.

Let's talk about how MPD should see those "tracks within a file".

How about: let a CUE file appear as a "virtual" directory, and each
sub-song is a "virtual" file within it.  This way, you don't have to
touch the playlist code at all.  The CUE file support could be
implemented with somewhat hybrid between the archive API (for
enumerating sub-songs) and the decoder API (for decoding the
sub-song).  That's difficult because such a hybrid API doesn't exist
currently.

When updating the database, MPD calls the tag_dup() method of the
decoder plugin.  This API is limited to one song per file, because it
returns one single "struct tag" object.  We could extend the decoder
API, e.g.:

 struct directory *(*scan_directory)(const char *path_fs);

This method would scan a song file as a directory of songs (or
sub-directories), and returns the "base" directory on success, or NULL
if there is no CUE information in this file.  This would be an
optional method, and you implement it only for the FLAC decoder.

Max

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to