Re: metadatabase

"Kristian G. Kvilekval" <[email protected]>
Newsgroups gmane.comp.audio.zinf.devel
Message-ID <[email protected]>
On Tue, 2003-10-14 at 11:34, David Hough wrote:
> On Mon, 13 Oct 2003 01:24:32 -0400, Ed Sweetman <[email protected]> 
> wrote:
> 

> Gutting a lot of the old code and starting a new branch would indeed make 
> a lot of sense. There appears to be large amounts of code that isn't used 
> at all, or is replicated somewhere else. It would also allow large changes 
> to be made without having to ensure compatability with old code.

Please make sure nothing uses the code..   Cleanup is a good thing,
we've managed to not have win32 buildable for over a year after
the last "cleanup".  We are still trying to recover.

> >
> > So yea, lets see some definitions and specifications on what a playlist 
> > should be, why does it have to be different from a metadata manager and 
> >   under what method should the UI be hooked into the whole thing and 
> > anything else relating to it.
> >
> > to me :
> >
> > Playlist: human readable text list of streams playable to the the player
> > Playlist Manager: container that creates a list in the player consisting 
> > of translated playlist entries such that a UI can correctly display the 
> > entries.
> > metadata manager: container that retrieves, accesses, removes, and 
> > possibly writes metadata related to lists of streams given to it.
> >
> >
> > Playlist would be an object or array of objects private to Playlist 
> > Manager.  Metadata manager would be inherited by Playlist Manager. Such 
> > that say to get the current track to be played you'd have a call to the 
> > Playlist manager like 
> > playlistManager->getStream("file:///home/mysong.ogg"); Retrieving 
> > metadata if available is taken care of implicitly by getStream by simply 
> > calling this->metaManager->getStream("file:///home/mysong.ogg"); which 
> > only accesses the database.  A separate update method can be used in 
> > metadata Manager to update entries in the database as opposed to 
> > researching directories for files and such and adding them to the 
> > database.  These should be done explicitly by the user and not used when 
> > simply reading the db for displaying a playlist.   etc etc.  Some 
> > feedback would be cool.
> 
> Personally, I don't reckon the playlist manager should be concerned with 
> metadata at all. The playlist manager should be concerned with providing a 
> way to move about in a playlist (next, prev, set index, etc...) and 
> providing the player with a url for the current track.  The playlist 
> manager should also provide an interface for manipulating a playlist (add, 
> remove, move, etc...) that will be accessed by the playist editing UI.
> 
> There is no reason why the playlist manager should ever need to know 
> metadata about any url as far as I can see, so it dosn't make sense (to me 
> at least) that metadata should be read through the playlist manager. As 
> far as I know the player itself never needs to know any metadata about a 
> track, it just plays it. The only place metadata becomes relevant is in 
> the ui plugins, so why mix the metadata in with basic player 
> functionallity (i.e. playling a playlist)?

I certainly agree.  I prefer the playlist to manipulate a list
of URLs and nothing else.   Both the player and UI can retrieve 
needed metadata on demand.  However, There are a few utility functions
that don't seem fit elsewhere (i.e. total playlist time).
I certainly don't want the playlist to cache metadata.

However, we should still discuss the concept of recursive playlists
as I alluded to in my previous posts.
Here the base playlist type should simply be a list of URLs.   The
player and the UI should be responsible for sensibly
expanding recursive playlists.


> I reckon the metadata manager should be completey seperate from the other 
> base functionality of zinf as all it is doing is providing data to 
> possible UIs, it is never actually used to play tracks. This is also part 
> of the argument for not loading the entire metadata database at startup in 
> the base section of zinf as there is no guarentee that it will be actually 
> needed by the UIs, although it is highly likely.

Yes!  I hope eventually to completely disassociate the music/metadata
browser from the player as they accomplish different goals. I think they
should communicate through some sort of messages rather than direct
calls.

The metadata systems could then be used independently by each. 


> Anyway, thats just my opinion, feel free to pick holes in my reasoning if 
> there are any.
> 
> David
-- 
email:[email protected] office:(805)893-4276 http://www.cs.ucsb.edu/~kris



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
SourceForge.net hosts over 70,000 Open Source Projects.
See the people who have HELPED US provide better services:
Click here: http://sourceforge.net/supporters.php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.