3
<!-- @(#)to-do.html 1.4 16 Jun 1995 -->
4
<title>WorkMan bugs and plans</title>
8
<h1>Known problems and plans</h1>
12
<li> <a href="#bugs">Known bugs</a>
13
<li> <a href="#plans">Future plans</a>
21
The PID file is mode 666.
24
-ee shouldn't check for CD presence even once.
27
Split doesn't continue to the next track in shuffle mode.
30
WorkMan should handle errors in a more elegant way. Most of the time, if
31
a system call fails unexpectedly, the program will print an error and exit.
32
It should pop up a notice and let the user figure out what to do. (For
33
example, the return value of save() is never examined.)
36
WorkMan should grab info from the CD Info popup when it's unpinned.
39
WorkMan shouldn't make assumptions about the sizes of characters in its
40
font. Right now, digits are assumed to all be the same width, twice as
41
wide as spaces and periods. That's true for the Sun-supplied XView fonts,
42
but isn't very flexible.
45
Volume control is kind of funky on the Toshiba 3401 -- unfortunately, it has
46
a bizarre volume scale, much more sensitive on the low end than the high.
47
But there are a couple things I can do to improve the situation.
50
The -background option should silently set the OpenWindows.windowColor
51
resource so it does what users expect; currently -background basically
57
<h2><a name="plans">Plans</a></h2>
60
Here are the major things people have asked for or I have thought of.
61
The first section lists what you can expect to find in the next release;
62
after that the entries are in no particular order.
64
<h3>Planned for 1.4</h3>
66
Digital audio over SCSI. This will initially be supported on Solaris only;
67
in fact, Sun motivated me to do it by giving me a machine to work on! This
68
will be the major feature of the next release -- it's a big enough nut to
71
<h3>Planned for 1.5</h3>
74
The build process needs to be a lot more automatic. For instance, there
75
should really be just one Makefile for all the systems that don't use imake,
76
and ideally there should be a script to configure and build everything
80
Change default play mode in CD Info popup so it selects Normal or Shuffle,
81
and also selects a playlist, with "All" as the default. Change the main
82
window so you select normal/shuffle and a playlist -- that is, you can say,
83
"Shuffle through just these few tracks."
86
There should be an option to output the current track name to stdout when
87
the program switches tracks. (Requested by C.C.Boucher@southampton.ac.uk)
88
And other info, too, maybe with a printf-style format string. A similar
89
option should determine which info is placed in the icon title.
92
Support for near matches in the database file, as described in the FAQ.
95
The buttons on the bottom of the main window shouldn't overlap when the
99
The first WorkMan invoked on a device should be a master; subsequent ones
100
should talk to it, rather than directly to the drive, and when it changes
101
a setting (either on its own or because of a slave's request) it should
102
notify all the slaves.
104
<h3>Eventually...</h3>
107
A way to read track titles from an external file so people who don't have
108
the jewel box handy can read the titles from the CD while it's out of the
112
A resource to turn on use of the SoundBlaster mixer on BSD/386 systems.
115
There should be a workman.geometry resource.
118
The track-selection popup menu should have a dismiss button. Or better
119
still, playlists should be built with a less kludgy interface (maybe as
120
simple as selecting tracks on the main window or the CD Info popup.)
123
The default volume for unknown CDs should be settable on the command line.
126
The database access functions should do the appropriate uid twiddling to
127
allow the program to be run setuid root on systems that require root access
128
to fiddle with the CD drive, or that (like Solaris 2.2) automatically start
132
You should be able to default to shuffle mode for unknown CDs.
135
The user should be able to attach arbitrary data to a CD or track. The
136
simple stuff, like text fields (publisher, recording date, etc.) and
137
larger pieces of text (liner notes) can be input and displayed internally
138
by WorkMan. For more complex data (GIF pictures, music videos) the user
139
will tell WorkMan the data type; WorkMan will have a separate database of
140
display methods, so it will know "run 'xv' with the filename as an argument
141
to display images of types X, Y, and Z". The user, naturally, will be
142
able to add data types and display methods.
145
Check for changes in the play mode or the current playlist (if a playlist is
146
being used) as each track finishes. The user should be able to play half
147
the disc in Normal mode, then switch to Shuffle and get the remaining tracks
151
The HPUX version should use notify_set_input_func() to wait for a response
152
from the drive; that way the program won't freeze up when there's no CD.
155
Hidden/private sections. A user should be able to split a track but ask that
156
the split not be saved to the main database.
159
The program should be able to collapse to a tiny base frame with just the
160
mode selector. Or better still, with whatever controls the user wants.
163
Check the user's tty; if the idle time is more than X minutes, pause the
164
CD (and stop it eventually as above.)
167
Allow the main window to be resized.
170
Show the total running time of a playlist as it's being built.
173
Use gettext() for all labels and messages so the program can easily be
177
Optionally display the current CD or artist name in window title bar, to save
181
If the user changes the volume and there's a default volume, the program
182
should interpret the change as a percentage volume change -- e.g. if the
183
volume is cut in half, other tracks should play at half their default
184
volumes. Perhaps this should be selectable from Goodies, as it might
188
A "mute" tool or hot-key. This can already be built with the signal
189
interface, so it's pretty low-priority.
192
Optionally lose the track selection buttons in favor of a scrolling list.
193
This will allow the window to remain a constant size no matter how many
197
Optionally spawn off a background process when the user quits the tool; this
198
process will continue playing the CD according to the playlist, stopping
199
or ejecting the CD when it's done.
202
You should be able to double-click on track title to select that track
206
There needs to be a better indication of tracks played already and tracks
207
remaining to play. A Possibility might be crossing out already-played
208
tracks' buttons with Xs (which would mean replacing the button labels with
209
dynamically-generated images.)
212
We need a database broswing tool. This should probably be separate from
213
WorkMan, though WorkMan might be able to invoke it.
216
An interface to Radio Free Ethernet or even the MBONE would be neat.
219
WorkMan should accept keyboard focus, and you should be able to hit keys
220
to pause/play/stop/eject the CD.
223
Holding down the mouse button to the left or right of the track-position
224
slider should cause WorkMan to simulate the fast-forward and reverse modes
225
found on standalone CD players.