
  XfreeCD v0.7.8 (c) 1998 by Brian C. Lane	   http://www.tatoosh.com/nexus
===============================================================================


  Hello!

  Thanks for trying out XfreeCD. The first thing is that you need to have a
copy of GTK+ v1.0.2 or later installed. This is the Gimp Toolkit, so if you
have a recent version of Gimp installed you are ready to compile XfreeCD by
typing make. If you don't have GTK+ then you need to download and install it.
It is available from http://www.gimp.org/gtk/ and the install is pretty easy.
Sorry about this (I know I hate having to install other stuff just to run
a program), but GTK+ is well worth it (as is Gimp) -- you will be seeing
many more programs using GTK+ in the future.

  Ok, so if you have GTK+ installed you can type make in the xfreecd directory
to build xfreecd. Then copy the xfreecd binary it to your favorite location and
run it. The standard place is in /usr/local/bin

  The program initially uses /dev/cdrom to access the CD device. This can be
changed in the setup dialog box (click on the question mark). It does not
work with SCSI devices yet, but that's on ly list of things to find other
people to do <G>.

  You also have to make sure you have read permission for the CD device. You
can do this by executing chmod ugo+r /dev/sbpcd (or whatever your device
is). Make sure you change the device itself, not a symlink like /dev/cdrom
since that won't work.

  Please read over the rest of this document!




  What is xfreecd?
  ----------------

  XfreeCD is a X windows program that looks like the frontpanel of a cd
player. I stole the images from the win95 freeCD program. My thanks to Nate
Smith for making his code freely available.

  You can play CDs, move between tracks, adjust volume -- clicking the left
button on the speaker icon increases the volume. Clicking the right button
will decrease the volume. You can display 4 different times on the display:

  1. Time elapsed on the track (icon has a plus and a 1/4 cdrom on it)
  2. Time remaining on the track (icon has a minus and 1/4 cdrom on it)
  3. Time elapsed on cdrom (icon has a plus and a full cdrom)
  4. Time remaining on cdrom (icon has a minus and a full cdrom)

  The repeat key causes the cdrom to keep playing when it reaches the end of
the cdrom. The question mark key opens a setup dialog box with 3 tabs for
the different setup screens. The 'Setup' tab allows you to set the CD device
to use and 3 other buttons:

  1. AutoPlay            When this is selected XfreeCD will start playing
                         the CD if there is one in the drive. If a CD is
                         already playing it doesn't disturb it.

  2. Eject when done     When selected this will eject the CD when it is done
                         playing it if the repeat button on the front panel
                         is not selected.

  4. Eject on exit       When this is selected and you exit XfreeCD with
                         the CD stopped or paused it will eject the CD.


  A new feature for this version is support for the internet CD database CDDB
created by Ti Kan and Steve Scherf (Thanks Guys!). Select the CDDB tab from
the setup menu to setup this option. The Local CDDB path is where it will
store the CD info when it is downloaded from the internet or entered locally.
A number of directories are created under this directory for the different
categories of CDs (this is handles automatically, you don't need to create
any directories yourself, just make sure you have the right permissions for
the location you select).

  The CDDB server is the internet site that you want to use to retrieve CD
track names from. This should probably be geographicly near you for the
best performance. Initially only cddb.cddb.com is selected. A list of the
current sites can be downloaded by pressing the Refresh Servers button.

  The CDDB Submit email address is the email address of the CDDB server to
submit new CDs to. The default is xmcd-cddb@amb.org and the test address
is test-cddb@cddb.cddb.com -- The test address will tell you if the submission
would have been accepted or not. You can submit CD info from the Track Edit
window by pressing the 'Send to Server' button. This uses the 'cat' and 'mail'
programs, and they should be in your current PATH for it to work.

  As of version 0.7.6 XfreeCD submissions to the cddb database are accepted!
Now you can add that obscure CD of yours to the worldwide database.

  If the CDDB support button is selected XfreeCD will first search the local
database (it does this even if CDDB is not selected) for the current CD's
unique discid. If that fails then it will attempt to connect to the CDDB
server that you have selected and download the CD info. It will then store
that data locally. CDDB submission is available even when CDDB download
support is turned off.

  To use the CDDB download feature you will need to have your internet
connection online or be using a program like diald to automatically connect
to the internet.

  The track names are displayed by doing a left click in the main display
window (the one showing the time and track #). Doing a right click in
this window allows you to drag the XfreeCD window anywhere on your desktop.


  At the bottom of the track list window is a button labeled 'edit tracks'
Click on it and another window similar to the first will be opened. Here
you can edit the track names and save the changes to the local database.
You don't need to have the internet CDDB support enabled.
  

  Version 0.7 is a complete rewrite of the code. The old code didn't run
as well as I liked, the user interface was sometimes slow because it was
waiting for a response from the low-level CD routines which can sometimes
take a noticeable amount of time. And I wanted to add CDDB support without
the 'freezing' of alot of X programs.

  Some people requested track seeking (skipping forward a few seconds
within the track). I tried to implement this, but it seems that the
low level CD device drivers don't implement this function very well and
I removed the option (It would crash often and leave the cd_control
process with no way to kill it since it was frozen waiting for a kernel
call to finish). I have tested other players and none of them implement
this feature any better. If you want to add it yourself and can get it
to work, I'd be happy to integrate it into the next release of XfreeCD.

  If you do a 'ps' while running xfreecd you will notice 3 processes
running. This is perfectly normal. One process handles the GTK+ user
interface, another handles the low-level CD control and the third is the
cddb internet interface.

  In version 0.7.5 I have reduced the amount of static memory storage used
for strings, so you should notice a slightly smaller memory foorprint. On
my system a 'ps xm | grep xfreecd' shows:


v0.7.4
  PID TTY MAJFLT MINFLT   TRS   DRS  SIZE  SWAP   RSS  SHRD   LIB  DT COMMAND
 3183  p3      0      3    44   532   576     0   576   552     0  50 xfreecd 
 3182  p3     14      7    48   588   636     0   636   592     0  52 xfreecd 
 3181  p3    389    198    76  1500  1576     0  1576  1184     0 119 xfreecd 

v0.7.5
  PID TTY MAJFLT MINFLT   TRS   DRS  SIZE  SWAP   RSS  SHRD   LIB  DT COMMAND
 3189  p3      0      3    40   500   540     0   540   516     0  43 ./xfreecd
 3188  p3     14      5    48   532   580     0   580   556     0  43 ./xfreecd
 3187  p3    408    169    80  1404  1484     0  1484  1184     0  96 ./xfreecd


  Not a huge difference, but an improvement.


  -geometry
  ---------

  XfreeCD now recognizes the -geometry command for x/y placement on the
screen. Use the standard X geometry placement parameters. Width and Height
are ignored. I use 'xfreecd -geometry +580-80' to place it at the end of my
AfterStep Wharf bar.

  The only small glitch with this is if you have titlebars on and use geometry
the placement will be relative to the main XfreeCD window, without respect to
the size of the titlebars.

  Title Bars
  ----------

  If you want to modify the way the XfreeCD windows look (I like the main
window to have no title bar and no resize bars) you can tell your window
manager to remove them. This depends on what manager you are running. There
are 5 types of windows associated with XfreeCD, but usually you will only be
concerned with the main window.

  XfreeCD is the main window.
  XfreeCDt is the Track List window.
  XfreeCDet is the Edit Track list window.
  XfreeCDp is the progress window while connecting to the internet CDDB server.
  XfreeCDs is the setup window.

  I run AfterStep, and to setup the main window without title bar or resize
handles you add a line like this to the database file:

  Style   "XfreeCD"       NoTitle, NoHandles


SCSI Support:

  I don't have a SCSI CD drive, so it would be difficult for me to test
any code I wrote. But it is possible for someone to modify the cd_control
module to support SCSI drives, preferably through a user selectable
button in the setup menu, not via compile time (I'm trying to make it
easy to distribute this as a binary for those who don't have gcc
installed on their system).

  This is beta software and it may have memory leaks and other problems.
Please report any problems or ideas to me for inclusion in future versions.

  Brian Lane
  Nexus Computing
  nexus@tatoosh.com
  http://www.tatoosh.com/nexus


Hall of Thanks
--------------

I would like to thank all of the beta testers for their help, bug reports,
and suggestions. If I have forgotten anyone, please let me know and I'll add
you to the list.

Vincent Cautaerts (vincent@comf5.comm.eng.osaka-u.ac.jp) did the
RPM package for RedHat users for v0.7.5 (I have taken over the rpm
generation as of v0.7.6, so send any errors to me).

The guys at www.cddb.com for their strict requirements for submission to
the database. They revealed several bug that have now been squashed.

Users of v0.7.6 for reporting the error 500 problem and forcing me to
look over the code once again. I found the bug and squashed it!

Users of v0.7.7 who kept insisting that it was sigsegving after a cddb
retrieval. I believed you! Really!
