mymusic version 1.0.6

Sorry about the development lag.  I haven't had much time lately. (Being a high school senior is a lot of
work. : )
But, not anymore, as I graduate May 25. : )  

1.0.6 fixes several bugs from 1.0.5, and adds some features.
   o --daemon option added
   o fixed a mistake in the usage output
   o fixed error in the database creation SQL statements
   o fixed the "now playing:" bug.
   o add volume control
   o fixed album queueing troubles

1.0.5 has everything from 1.0.4, plus a few improvements...
  o several html improvements  (more standard-ish)
  o changed playlist implementation (sql doesn't give you errors when you move the playlist around.
  o changed default email address
  o history actually works now.  (for real this time.) : )
    this time it was missing quotes that caused a reference to be used as a 
    hash key, so the keyname became SCALAR(0xXXXXXX). grrr...

Anyway.  New in 1.0.4 (besides an almost complete rewrite of the daemon code : ) are a couple 
features that mymusic really needed (IMHO).

 o start/stop/next functionality is now controlled via the database.
        this seems trivial, but is actually quite an improvement.  This means that now any user can control
        mymusic-- it doesn't have to run as 'nobody.'  A user simply starts up the daemon from the
        console, and then can control from the gui, without starting another mymusic process.  For
        instance, when a user hits 'next', the database table 'control' is updated.  The mymusicd process
        notices this, kills it's child player, and then starts another.  When a user clicks stop, mymusicd
        stops the player, but doesn't exit.  So mymusic notices when play is clicked again.
 o mymusicd forks to play the music files
        again, this seems trivial, but allows for much better control over the player.  instead of system()'ing
         the player, mymusic can keep checking the database, while the player plays.  when the player
         dies, mymusic knows, and continues.  It also makes killing the player (during 'next') easier,
         becauser we can do it with perl inside mymusic, instead of trying to do it externally.  So the 
         player is owned byt he same user as mymusic, so mymusic can kill it without permissions errors.

   o Last, but certainly not least, the history table actually works now. ; )
    (Sorry, this one's hard to catch with a large MP3 collection).  Instead
    of using an INT AUTO_INCREMENT as the PRIMARY KEY for the history table,
    mymusic now uses DATETIME as the PRIMARY KEY. Now, we dont' have to renumber
    the queue at all.  When the size of the history gets too large you just 
    delete (actual_size-want_size) of the oldest entries.  That should take care
    of things for now.

 


ideas?  email caffiend@dioxin.com.
