CD Player GUI for cdplayer			by hamilton@wcc.govt.nz
--------------------------			   michael@actrix.gen.nz
						   (Michael Hamilton)

Copyright

 Copyright (c) 1994 Michael Hamilton (michael@actrix.gen.nz).
 All rights reserved.

 Permission is hereby granted, without written agreement and without
 license or royalty fees, to use, copy, modify, and distribute this
 software and its documentation for any purpose, provided that the
 above copyright notice and the following two paragraphs appear in
 all copies of this software.
 
 IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR
 DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
 OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE AUTHOR
 HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 ON AN "AS IS" BASIS, AND THE AUTHOR HAS NO OBLIGATION TO
 PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.


Installing and Using TkCD


What is TkCD? TkCD is a simple GUI interface for CDplayer 2.0 by Mark Buckaway
(mark@datasoft.com). You will require tk/tcl and cdplayer for this program to
beuseful. TkCD uses a home-brew forms widget that is embedded in TkCD.  

TkCD allows you to use all the features of CDplayer while retaining a X
interface. With this type of setup, you have a choice of using either TkCD
within X or CDplayer from the command line. Both programs are small and consume
very little resources.

TkCD obtains track and status information from CDplayer. Due to excessive
overhead TkCD does not continuously track the cd status during play.  Status is
updated when the track is due to complete or when a button is pressed.

TkCD is a standalone program (well...it does require Tk/tcl). TkCD can be
tested it by running it out of the install directory (CDplayer must be
installed and must also be in your path).  To run it just enter ./tkcd

The CDplayer configuration script tries to determine the information needed by TkCD by looking on the hard drive or by asking the user. Manually modifying TkCD should not be necessary. If changes to the defaults are necessary, please update the tkcdrc file and not TkCD itself. The man page documents the variables available in the tkcdrc file.

Please read the man page on TkCD.

W A R N I N G ! ! !

       The CD-ROM device driver for Kotobuki/Matsushita/Panasonic
       CR-5xx drives for Sound-Blaster ("Pro" or "16 ASP" or com-
       patible) cards has problems for  me  under  Linux  1.1.29.
       Here  is  a summary of the problems and the work-arounds I
       have applied:


       Eject  Issuing a cdplayer request will cause an open  tray
              to  retract.   Normally TkCD uses "cdplayer status"
              to detect the status of the drive.  When  the  Mat-
              sushita  fixes are enabled TkCD will save the state
              of the tray.  If TkCD believes the tray to be  open
              it  will  not issue any cdplayer requests until you
              press another button.  This fix works fine so  long
              as  you  refrain  from fooling TkCD by using the CD
              drives eject button.

              Another eject related problem is  that  eject  will
              only work if the drive is actually playing a track.
              The fixes work around this problem by always  issu-
              ing a play track 1 request before issuing an eject.


       Play   Issuing a play request while the drive  is  in  the
              playing  state  has  no  effect.   With  the  fixes
              enabled, pressing play will issue  a  stop  request
              followed by a play request for the new track.


       Skip   Skip  doesn't work, so TkCD simulates skip by doing
              a stop and then a play on the appropriate track.


       End of CD
              After the end of the CD is  reached,  an  incorrect
              status  of  playing instead of stopped is returned.
              TkCD is sometimes fooled by this (but not often).


       Addtionally, under linux  1.1.50  (and  possibly  other
              versions greater
              that 1.1.29) I've had to set the #define EJECT 1 in
              the           kernel           source          file
              .../linux/drivers/block/sbpcd.c to #define EJECT  0
              (zero)  and  rebuild  the  kernel.   Otherwise both
              cdplayer and workman will open the drive  at  inap-
              propriate  moments - eg. whenever you run cdplayer.

Contacting the Author

Michael Hamilton can be contacted email by email at hamilton@wcc.govt.nz.
Please do not bug the author of CDplayer with concerns regarding TkCD.

  
Things To Do (Feel free to do this) 
  
  - Implement fuzzy logic identification of CD's based on track times.
  - Use ID's to expand the index to use a database of CD titles.
