wmcdplay - A cd player designed for WindowMaker Copyright (C) 1998 Sam Hawker This software comes with ABSOLUTELY NO WARRANTY This software is free software, and you are welcome to redistribute it under certain conditions See the COPYING file for details. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. THE AUTHOR: =========== Sam Hawker shawkie@geocities.com http://www.geocities.com/SiliconValley/Vista/2471/ INSTALLING: =========== xmkmf make strip wmcdplay make install mkdir /usr/X11R6/lib/X11/wmcdplay cp XPM/*.art /usr/X11R6/lib/X11/wmcdplay TRACK SELECTION: ================ Release 0.6 introduced track selection. Actually, track selection is a slightly more logical version of the random/repeat functions found in Creative Labs' SB16 software suite for win95. The major change is that the previous releases just played from current position to the end of the cd. Now we play a single track, and when you set the track selection mode, you just tell the cd player what to do at the end of the track. Here are the options: 0 None - just stop 1 Next - play next (audio) track (stop if end of cd) 2 Repeat - play this track again 3 RepeatCD - play next (audio) track (start from first track if end of cd) 4 Random - select an audio track at random and play it The led display symbols for the modes are now part of the artwork file. The mode defaults to Next, but can be changed with the "-t track_selection" command line argument, or by clicking on the track selection mode led display. The main consequence of this approach is that when using Random, you will probably here a track twice before every track on the cd has been played once. (Most cd players have a playlist listing all tracks in a randomized order) Also, wmcdplay will always begin with track 1. Furthermore, the Next and Prev buttons will always move through track numbers on the cd (rather than, for instance, selecting random tracks). AFTERSTEP USERS: ================ (thanks to tygris@erols.com) This release includes in a new command line option (actually, its "-a" and artwork files are now loaded with "-f artwork_file"). The effect this has is to enable shape support (it implies "-s"), and to reduce the size of the window to 56x56 pixels. The "-position position" option has also been added, so you can push wmcdplay off the edge of the screen while it gets swallowed. To put wmmount in your Wharf, add the following line in the appropriate part of your .steprc *Wharf wmmount nil MaxSwallow "wmmount" wmmount -a -position -0-0 & It is also possible (by editing and recompiling the afterstep sources), to make Wharf handle the new 56x56 pixel window properly - yes, I add an option to use a 56x56 pixel window, even though the AfterStep Wharf really wants 55x57 pixel ones. I am told (by tygris@erols.com): "Locate Wharf.c (or is it Wharf.cc?) Should be in AfterStep-1.0/modules/Wharf. Locate this: if (Buttons[button].maxsize) { Buttons[button].icons[0].w = 55; Buttons[button].icons[0].h = 57; } and change the 55 and 57 to 56's. Save and compile." BUILD PROBLEMS: =============== You may have trouble linking wmmount with the compiler supplied on some recent distributions (eg. Debian 2.0 & RedHat 5.1). It can be made to build by adding the following line to the top of the Imakefile, before executing xmkmf: CC = c++ I am not sure of the effect this has on memory usage, etc. RELEASE HISTORY: ================ Release 0.1 22/01/98 Poor window repaint technique. Incorrect display if paused on startup. Does not show Tray Open if opened by button on drive, (I think this can only be done if the drive is empty). Release 0.2 23/01/98 Improved window repaints. Correct display even if paused on startup. Improved interface on 'other' window managers. Release 0.3 07/02/98 Handles multisession CD properly. Now free's ALL pixmaps on exit (i hope). And GCs :-). Major re-write and interface alterations. Option for led display color. Smaller and better written. Release 0.4 12/02/98 Highly customizable user interface. You chose: Basic pixmap, How many buttons, Size, shape, position of buttons (polygons), Actions for each button in each state: (Stop, Stop Data, Play, Pause, Ejected), Led and symbol pixmaps, Position of displays. Release 0.5 24/02/98 Fixed bug relating to manual window positioning. Fixed error in grey.art. Release 0.6 04/03/98 Rewritten cdctl engine. Some more changes to artwork: Different states, Different actions. Random/Repeat track selection. Reduced CPU load (thanks to aseltine@cd.umass.edu), It wasn't high on my K6 233MHz box :-). Release 0.7 12/03/98 Better track selection. Command line option to set track selection mode. Yet more changes to artwork: Hiding of do-NOTHING buttons now optional, Symbols can be drawn onto non-solid background. New name (wmcdplay). Now works on 8bpp displays with full colormaps. (thanks to devernay@istar.fr on the mailing-list) Release 0.8 07/05/98 Now GPL. Added "-v volume" command line argument. Added "-b back_color" command line argument, ("-b darkslategrey -l cyan" gives a nice backlit look). Reduced cpu load. Relative or absolute time display, (click time display to switch). More changes to artwork: Led pixmaps now part of artwork, Symbolic color names can now be used in all pixmaps: led_color_high, led_color_med, led_color_low, color_back. All pixmaps now use standard names: cdplayer.xpm = cdplayer_xpm, symbols.xpm = symbols_xpm, led.xpm = led_xpm, ledsym.xpm = ledsym_xpm, ledtsel.xpm = ledtsel_xpm. Entries specifying symbol dimensions no longer needed, "symbols.xpm" now includes a symbol for NOTHING, New piece of artwork, "newstyle.art", New directory structure and scripts. Track selection should be more reliable now. Release 1.0 05/09/98 Added some error checking. Beta1 "-a artwork_file" is now "-f artwork_file", sorry ;-). Added "-a" command line argument for AfterStep users. Added "-position position" command line argument. Command line arguments, "-a", "-w" and "-s" are now toggle, so if you enable one at compile-time, you can override it at run-time. Track selection actually works now?? (anyone notice a recurring theme here??) Seperate update interval for when drive is empty. (thanks to .....) Fixed problem with (some?) SCSI devices refusing to give LBA values. Thanks to the linux ide-scsi-emulator. Now looks in some known directories for artwork files as a last resort. Improved artwork loading (it was very brain-dead). Formatting changes in artwork files (ARTWORK documentation is now up-to-date).