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