* Problems with GNOMAD:

  OUTSTANDING BUGS:
  -----------------

  Build procedure doesn't work as it should (configure.in):

  * ID3lib not detected properly
  * libnjb not detected properly

  Folder names with accentuated characters are not
  transfered recursively, instead just copied. Fix!

  Trying to transfer protected files will end in misery.
  Warn and remove from transfer list.


  OLD BUGS:
  ---------

  GNOMAD sometimes does a lousy job on length detection
  don't you think? The code in Easytag does it much better.

  This has been improved by using ID3lib length detection
  in Gnomad 2.0.0 and forth.


  ENHANCEMENTS:
  -------------

  Add possibility to set time sync to host.

  Add possibility to send a bitmap.

  Remember last recently used directory and reuse on
  restart.

  Unicode tagging doesn't work with ID3lib right now.

  Switch to using libid3tag for ID3 tagging, as it is 
  used by GStreamer and supports Unicode better than
  id3lib. Perhaps support both?

  Synch of songs in a harddisk directory, w/checksums?
  Put jukebox ID in ID3 tag?

  Add some stuff to the playlist view sort playlist by 
  different criteria, remove playlist AND files, move files
  around by drag'n'drop etc. (Hard to do.)

  Add contents of a playlist to another playlist.

* Libnjb:

  NJB_Update_Playlist() should return the new playlist ID
   if it has changed, so that I don't have to rescan the
   playlist list everytime something is changed about a
   playlist.

* Problems with the USB protocol spec:

  The commands 0x29 and 0x2a are not documented.

  Request: C3
  Command: 29
  Name: Get time
  Description: Gets the time of the internal clock of
               the jukebox.

  Request: 43
  Command: 2a
  Name: Set time
  Description: Sets the time of the internal clock
               of the jukebox.

  Their datatypes can be documentet with a brief look at
  time.c

  (p 44)

  The data file tag size sent in the data phase includes
  the four padding zero bytes.

  --- Already sent to John: ---

  Status codes (p 15):

  Add for playback:
    0x40  NJB_ERR_QUEUE_ALREADY_EMPTY

  EAX block structure (p 13):

  The blocks named:
    number of spatializations, nspat
    active spatialization
    nspat x spatialization frames
  Is actually:
    number of headphone modes, nphone
    active headphone mode
    nphone x headphone frames

  Also it should be noted that effect, headphone,
  and rear frames are actually just a sequential 
  list of strings with the names of the mode at
  indexed position.

  Adjust sound (p 53):

  The table of effect bytes:
    0x01 -- Volume value is between 0 and 100
    0x08 -- Amount of current EAX effect a value between 0 
            and 100
            note that a change actually changes the
            amount of ALL effects, not just the current
            one. The EAX structure will hold the same
            value for all effects afterwards. (Atleast
            with Firmware 2.93.)
    0x0b, 0x0c -- these must have a meaning too, but I
            just cannot decipher it... Tried all kind of
            input I could think of.

* Problems with LIBNJB:

  These functions seem not to like if you (softwarewise) captures/opens and
  closes/releases the jukebox too much:

  * NJB_Delete_Track
  * NJB_Update_Playlist
  * NJB_Delete_Playlist

* Things that would be good in LIBNJB:

  If
  playlist_deltrack (playlist_t *pl, unsigned int pos);

  Took a track ID instead if a position, would be good:
  playlist_deltrack (playlist_t *pl, u_int32_t trackid);

* New stuff:

  * Keybindings to all menus (including popups)

  DAVE:

  * migrate to a better config situation
  * queue showing -- even w/o full queue
  * queueable
