Features
- Multiple browse trees
- User definable trees?
- See UPnP server root and pre-defined menus for
example
- Song Queue
- Ability to add individual tracks to end of queue
- Ability to add container full of tracks to end of
queue
- Ability to delete tracks from queue
- Ability to delete container from queue
- Ability to move items in queue up or down
- Shuffle play from queue (how does this work with ability to
move up/down?)
- Repeat or loop over items in queue
- Ability to save current queue as named
playlist
- UI features
- 4 modes/displays
- Now Playing
- Displays information about current playing track
- Displays next up track title (artist/album?)
- Display how many items in current queue
- Display cover art
- Button for browse
- Button for edit queue
- Button for options
- Screen saver mode after xx time of
inactivity
- Browse
- Shows tree view of all items
- Move in/out of hierarchy
- Select adds item to queue
- Display cover art (needs to be defined)
- Button to switch to "Now Playing" or "Main"
- Button to switch to edit queue
- Button for options
- Edit
- Show current queue
- Tree view with containers
- Check box for random/shuffle play (or have an options
screen?)
- Check box for repeat/loop (or have an options
screen?)
- Selecting item brings up menu with:
- Move to front
- Move to back
- Delete
- Button to switch to "Now Playing" or "Main"
- Button to switch to browse
- Button for options
- Options
- Shuffle mode
- Repeat mode
- Screen saver timeout
- Open Issues
- How do we scan for music?
- Use a client/server arrangement where the server scans
and the client queries similar to UPnP
- Scan on startup
- How fast can this
be? Don't want to wait minutes (even 1 minute would be
long)
- Scan on startup but save in file so subsequent scans can
happen in the background
- How big would the saved file be?
- Reading the file in should be much faster than
scanning
- Could have two programs; a scanner and the
jukebox
- Scanner is command line only and scans
directories and build database
- Jukebox read
database
- Data structures
- object_t
- int id; /* Might not need this */
- int parentid; /* Might not
need this */
- char *title;
- into_t
*info
- int num_children;
- object_t *children;
- object_t
*next;
- info_t
- int id; /* build array of these so that they can
be shared? */
- char *album;
- char *artist;
- char *genre;
- char *location;
- char
*artwork_location;