-q for quiet operation
-h shows usage information
 
clean up error messages, and write them to stderr instead of stdout



okay, if i want to implement "programmed" operation, i'll have to do as
follows:

cdp l 4 9 7 2 5 34 33 38 1 3
(l for list)

sees "l", makes sure all following parameters are cool, determines length
of first track on list, forks, parent exits, child tells driver to play
that track only, quits is this is the last track on list, else checks
status to see that drive is playing, sleeps for length of track already
decided (maybe 1 or 2 seconds less, we'll see how it goes), wakes up,
determines length of next track, loops while drive status is still "play",
tells driver to play track, etc.

just "cdp l" will be like just "cdp", except total tracks, total playing
time will be for the list, not the actual cd

"cdp li" will be like "cdp i", except, again, for list

most other command will have to be rewritten:

cdp f, cdp b go forward, backward through list
cdp ff, cdp bb, too

cdp s kills daemon process

cdp [track] will do what?
cdp [time] will do what?
cdp +/-time will probably seek forward/backward, but only within the same
track.  also must re-determine how long to sleep for.