
                           Known problems and plans
                                       
   _Contents:_
    1. [1]Known bugs
    2. [2]Future plans
       
     _________________________________________________________________
                                      
Bugs

   The PID file is mode 666.
   
   -ee shouldn't check for CD presence even once.
   
   Split doesn't continue to the next track in shuffle mode.
   
   WorkMan should handle errors in a more elegant way. Most of the time,
   if a system call fails unexpectedly, the program will print an error
   and exit. It should pop up a notice and let the user figure out what
   to do. (For example, the return value of save() is never examined.)
   
   WorkMan should grab info from the CD Info popup when it's unpinned.
   
   WorkMan shouldn't make assumptions about the sizes of characters in
   its font. Right now, digits are assumed to all be the same width,
   twice as wide as spaces and periods. That's true for the Sun-supplied
   XView fonts, but isn't very flexible.
   
   Volume control is kind of funky on the Toshiba 3401 -- unfortunately,
   it has a bizarre volume scale, much more sensitive on the low end than
   the high. But there are a couple things I can do to improve the
   situation.
   
   The -background option should silently set the OpenWindows.windowColor
   resource so it does what users expect; currently -background basically
   does nothing at all.
   
     _________________________________________________________________
                                      
Plans

   Here are the major things people have asked for or I have thought of.
   The first section lists what you can expect to find in the next
   release; after that the entries are in no particular order.
   
  Planned for 1.4
  
   Digital audio over SCSI. This will initially be supported on Solaris
   only; in fact, Sun motivated me to do it by giving me a machine to
   work on! This will be the major feature of the next release -- it's a
   big enough nut to crack, to be sure.
   
  Planned for 1.5
  
   The build process needs to be a lot more automatic. For instance,
   there should really be just one Makefile for all the systems that
   don't use imake, and ideally there should be a script to configure and
   build everything for you.
   
   Change default play mode in CD Info popup so it selects Normal or
   Shuffle, and also selects a playlist, with "All" as the default.
   Change the main window so you select normal/shuffle and a playlist --
   that is, you can say, "Shuffle through just these few tracks."
   
   There should be an option to output the current track name to stdout
   when the program switches tracks. (Requested by
   C.C.Boucher@southampton.ac.uk) And other info, too, maybe with a
   printf-style format string. A similar option should determine which
   info is placed in the icon title.
   
   Support for near matches in the database file, as described in the
   FAQ.
   
   The buttons on the bottom of the main window shouldn't overlap when
   the -b flag is used.
   
   The first WorkMan invoked on a device should be a master; subsequent
   ones should talk to it, rather than directly to the drive, and when it
   changes a setting (either on its own or because of a slave's request)
   it should notify all the slaves.
   
  Eventually...
  
   A way to read track titles from an external file so people who don't
   have the jewel box handy can read the titles from the CD while it's
   out of the drive.
   
   A resource to turn on use of the SoundBlaster mixer on BSD/386
   systems.
   
   There should be a workman.geometry resource.
   
   The track-selection popup menu should have a dismiss button. Or better
   still, playlists should be built with a less kludgy interface (maybe
   as simple as selecting tracks on the main window or the CD Info
   popup.)
   
   The default volume for unknown CDs should be settable on the command
   line.
   
   The database access functions should do the appropriate uid twiddling
   to allow the program to be run setuid root on systems that require
   root access to fiddle with the CD drive, or that (like Solaris 2.2)
   automatically start the program as root.
   
   You should be able to default to shuffle mode for unknown CDs.
   
   The user should be able to attach arbitrary data to a CD or track. The
   simple stuff, like text fields (publisher, recording date, etc.) and
   larger pieces of text (liner notes) can be input and displayed
   internally by WorkMan. For more complex data (GIF pictures, music
   videos) the user will tell WorkMan the data type; WorkMan will have a
   separate database of display methods, so it will know "run 'xv' with
   the filename as an argument to display images of types X, Y, and Z".
   The user, naturally, will be able to add data types and display
   methods.
   
   Check for changes in the play mode or the current playlist (if a
   playlist is being used) as each track finishes. The user should be
   able to play half the disc in Normal mode, then switch to Shuffle and
   get the remaining tracks in random order.
   
   The HPUX version should use notify_set_input_func() to wait for a
   response from the drive; that way the program won't freeze up when
   there's no CD.
   
   Hidden/private sections. A user should be able to split a track but
   ask that the split not be saved to the main database.
   
   The program should be able to collapse to a tiny base frame with just
   the mode selector. Or better still, with whatever controls the user
   wants.
   
   Check the user's tty; if the idle time is more than X minutes, pause
   the CD (and stop it eventually as above.)
   
   Allow the main window to be resized.
   
   Show the total running time of a playlist as it's being built.
   
   Use gettext() for all labels and messages so the program can easily be
   localized.
   
   Optionally display the current CD or artist name in window title bar,
   to save screen space.
   
   If the user changes the volume and there's a default volume, the
   program should interpret the change as a percentage volume change --
   e.g. if the volume is cut in half, other tracks should play at half
   their default volumes. Perhaps this should be selectable from Goodies,
   as it might surprise people.
   
   A "mute" tool or hot-key. This can already be built with the signal
   interface, so it's pretty low-priority.
   
   Optionally lose the track selection buttons in favor of a scrolling
   list. This will allow the window to remain a constant size no matter
   how many tracks there are.
   
   Optionally spawn off a background process when the user quits the
   tool; this process will continue playing the CD according to the
   playlist, stopping or ejecting the CD when it's done.
   
   You should be able to double-click on track title to select that track
   for playing.
   
   There needs to be a better indication of tracks played already and
   tracks remaining to play. A Possibility might be crossing out
   already-played tracks' buttons with Xs (which would mean replacing the
   button labels with dynamically-generated images.)
   
   We need a database broswing tool. This should probably be separate
   from WorkMan, though WorkMan might be able to invoke it.
   
   An interface to Radio Free Ethernet or even the MBONE would be neat.
   
   WorkMan should accept keyboard focus, and you should be able to hit
   keys to pause/play/stop/eject the CD.
   
   Holding down the mouse button to the left or right of the
   track-position slider should cause WorkMan to simulate the
   fast-forward and reverse modes found on standalone CD players.

References

   1. file://localhost/home/woodstock/koreth/wm/workman/HTML/to-do.html#bugs
   2. file://localhost/home/woodstock/koreth/wm/workman/HTML/to-do.html#plans
