Requirements composed

Ralf Engels <[email protected]> Sun, 26 Oct 2003 21:44:35 +0100
Newsgroups gmane.comp.audio.zinf.devel
Message-ID <[email protected]>
Hi,
I have written all the requirements together and added technical 
requirements where usefull.
Sadly there where much discussions about "how to do it" when the "what 
to do" was not fixed.
So, I would say that we should agree first on the requirement list and 
then someone can propose a design (based on the current design).

So, here goes the list:

Requirements for Playlist handling in zinf.
Sub-requirements are denoted with a point e.g. 3.1
Technical requirements are with two point 3.3.3


r1. there shall be a list with songs
*** Big question: should this be a tree of songs? please vote
r2. it shall be possible to add songs to the list.
r3. it shall be possible to remove songs in the list.
r4. the list shall be independent of the ui
r5. the ui shall be informed about changes in the list
r5.1.1  the list shall send events to registered listeners
r5.1.2  the list shall not transmit pointers with the events
r6  It shall be possible to select the next song in different ways
r6.1 It shall be possible to set this way
r6.2 it shall be possible to set way by filename
r6.3  by path
r6.4  by songname
r6.5  by artist
r6.6  by album
r6.7  by year
r6.8  by random
r7. the player shall use the list to determine the next song to be played.
r8. it shall be possible to save the list
r9. it shall be possible to load the list
r10. different formats for the playlist shall be supported
r11. It shall be possible to dynamically generate lists (how?)
r13. The base-code shall support the ui when it want's to display a list 
of songs
r13.1.1  There shall be different views on the playlist, e.g. by album, 
sorted, ...



Playlist item requirements
r101. the URI shall be the unique identifier of an item. URI is full 
qualifyer like file://hallo.mp3
r102. the meta data of the item shall be determined on demand
r102.1 No data shall be duplicated.
r102.1 (logical extension) meta data of items with the same URL shall 
not be doublicated
r102.1.1 We shall have a meta-database
r102.1.2 The meta-database shall have a function getMeta( string URI )
r102.1.3 The meta-database shall have a function setMeta( string URI )
r102.1.4 The meta-database shall have a reference count so that unused 
metas can be deleted
r102.1.5 The meta-database shall have a function refereMeta( string URI )
r102.1.6 The meta-database shall have a function unrefereMeta( string URI )
r102.1.7 All operations on the meta-database should be faster or equal 
then O(n)
r102.1.8 A map shall be used for meta-database O(log n)
r103.  Playlist items should be able to reference other playlists 
inline.  (i.edynamic playlists)


To be clarified
r104. It should be possible to read metadata from various sources
(what sources are meant)
r105. Metadata should only be read from an external source on demand
(why, what is an external source?)
r106. It should be possible to do searchs on cached metadata
(search for what, what for?)




-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/