General Information
-------------------

 cdcd takes a different approach from conventional console (or X)
 based CD players, in that it doesn't keep with the display-oriented
 paradigm.  Conventional computer-based CD players resemble
 traditional physical CD players.  This is fine, if your user
 interface consists of 10 buttons.  However, computers have keyboards,
 so why not use them?  Besides, it's certainly a waste of a console or
 an xterm to have a traditional CD player open anyway.

 cdcd works in two ways, accepting commands directly off the command
 line or in a query mode similar to other UNIX programs.  To pass a
 command to cdcd, simply run cdcd with the command as the arguement
 (e.g. cdcd play).  This is great for using cron and cdcd together to
 make a CD alarm clock.  Or, you can run cdcd without arguments and
 you will be given the cdcd command prompt.

 For information regarding cdcd and new releases, visit
 http://libcdaudio.sourceforge.net/ .

Installation
------------

 For help with installation, please see the file INSTALL.

Usage
-----

 Preliminary note: this file is less often updated than the source
 files, so you may see some changes between the outputs shown here and
 the outputs you get. 

 After cdcd is installed, type 'cdcd'.  You should receive a prompt
 like this:

 cdcd x.x.x, Copyright (C)1998-99 Tony Arcieri, 2001 Fabrice Bauzac
 Distributed under the GNU General Public License. See file COPYING
 for details.
 Using libcdaudio x.x.x
 Enter ? for help.
 cdcd>

 Enter a command, for example, help:

 cdcd> help
 Available commands: 
 !, ?, access, close, debug, device, edit, eject, exit, ext, ff,
 getvol, help, info, list, next, open, pause, play, prev, quit,
 refresh, resume, rew, rndplay, setvol, sites, slot, status, stop,
 submit, tracks, verbose, and version.
 For more specific help, type `help <command>'.
 cdcd> 

 As you can see, the command will perform its function, and then
 return you to the command prompt.

 You can receive help on specific items by passing an argument to the
 help function:

 cdcd> help play
 Usage: play [starttrackname/track #] [endtrackname/track #] [min:sec]
 By default, starts at the beginning of the CD.  You may specify
 tracks using either the number of the track or a section of the
 track's name.  The disc will play from where it starts to the end of
 the disc or a track you specify.  You may also specify a position
 within the first track to start.
 cdcd> 

 By default, play starts at the beginning of the CD.  You may specify
 tracks using either the number of the track or a section of the
 track's name.  The disc will play from where it starts to the end of
 the disc or a track you specify.  You may also specify a position
 within the first track to start.

 To play a CD, you can simply type 'play', or if you prefer, 'play
 <trackname>', or 'play track#.'  You may also specify a track at
 which to end play, and also a time within the track to start.  Here
 are a few examples:
 
 cdcd> play 5
	This would play track #5 and stop at the end of the disc.

 cdcd> play Time
 	This would play the first song on the disc with "Time" as a
	part of its name and stop at the end of the disc.

 cdcd> play Time 5
	This would play the first song on the disc with "Time" as part
	of its name and stop at track #5.

 cdcd> play Time 3:30
	This would play the first song on the disc with "Time" as part
	of its name and start 3 minutes and 30 seconds into the song
	and stop at the end of the disc.

 cdcd> play 3 5 3:30
	This would play from track 3 to track 5 and start 3:30 into
	track 3.

 cdcd> play 3 "Us and Them" 5:
	This would play from track 3 to the first song on the disc
	with "Us and Them" as part of its title and start 5:00 into
	track 3.

 cdcd> play 5 5
 	This would play track 5 and stop at the end of track 5; an
	easy way to play only a single track.

 cdcd> play 3:30
	This would set the postition within the current song to 3:30.

 Some commands put you into a cdcd subshell.  For example, type:

 cdcd> sites
 cdcd/sites>

 Then you can ask for some help to see the available commands:

 cdcd/sites> ?
 Available commands: 
 .., ?, add, del, display, exit, help, move, quit, and refresh.
 For more specific help, type `help <command>'.
 cdcd/sites>

 You can use the special command `..' to return one level up in the
 shells hierarchy.

 cdcd/sites> ..
 cdcd>

 If you are in interactive mode and are finished, simply type `quit'
 and RETURN, or C-d (^D, Control + D).  The CD will continue playing:
 
 cdcd> quit
 $

 You can also pass commands to cdcd right off the command line:

 $ cdcd info
 Album name:     The Dark Side Of The Moon
 Album artist:   Pink Floyd
 Total tracks:   9       Disc playing:   07:37 of 42:59
 Playing:        Time 03 00:01 of 07:05
 $

CDDB Interface
--------------

 As of libcdaudio-0.4.2 (and cdcd-0.3.2), cdcd supports the CD
 Database system, which allows retrieval of CD information off of the
 Internet.  The CDDB interface is on by default.  Whenever a command
 is invoked that uses CD database information (e.g. play, ext, info,
 infoall) libcdaudio will search in the local cache (located under
 ~/.cddb) first, and if it is unable to locate information for the
 current CD, it will connect to a CDDB server and attempt to retrieve
 it.  If this is the first time you've used a particular CD with cdcd,
 you may notice a 5-10 second delay with the previously mentioned
 commands.  This is because cdcd is connecting to the CDDB server and
 retrieving disc information.  As soon as this has been completed, the
 command will no longer block, and you will be given the shell prompt
 or cdcd command prompt again.

 Perhaps you don't like automated CDDB operation.  You can enable or
 disable verbose, manual CDDB operation using the verbose command:

 cdcd> verbose on
 cdcd>

 From now on, any command that uses the CDDB code will tell you
 exactly what it is doing:

 cdcd> info
 Trying cddbp://www.cddb.com:8880/
 Connection established.
 Retrieving information on 770f0d19.
 Inexact match for 770f0d19.
 Please choose from the following inexact matches:
 1: The Beach Boys / Made In U.S.A.
 2: None of the above.
 > 1
 Downloading data...
 Album name:     Made In U.S.A.
 Album artist:   The Beach Boys
 Total tracks:   25      Disc length:    64:15
 Stopped
 cdcd>
 
 Of course, all of that will only happen the first time you use the
 disc with cdcd.  Normally the CDDB information will simply stay
 cached in ~/.cddb.

 As of libcdaudio-0.4.3, a caching system compatible with XFreeCD and
 other CD players is used.  This allows you to read CD information
 from discs played using these other players.

 As of libcdaudio-0.4.4, extended information is supported.  In cdcd,
 you can display extended information (if it is available) using the
 ext command.
 
CD-ROM Changer Support
----------------------

 Linux 2.1 and 2.2 users with CD-ROM changers may take advantage of
 the CD-ROM changer functions within cdcd.

 To use your CD-ROM changer with cdcd, there are only two functions
 you must know, list and seldisc:

 cdcd> list
 Disc 1:	42:59 Pink Floyd / The Dark Side of the Moon
 Disc 2:	44:28 Pink Floyd / Wish You Were Here
 Disc 3:	42:39 Led Zeppelin / IV
 cdcd>

 The list command displays the contents of your CD-ROM changer.  To
 choose a particular disc from the CD-ROM changer, use the slot
 command:

 cdcd> slot 1

Controlling CDDB Operation
--------------------------

 As of libcdaudio 0.6.1, cdcd uses a radically different CDDB
 interface.  If you previously generated a ~/.cddbrc you should delete
 it.

 All CDDB operations use specific URLs for the server.  To use the
 CDDB server cddb.cddb.com that operates on port 8880, you should use
 the following URL:

 cddbp://cddb.cddb.com:8880

 If instead, you wished to use the HTTP server www.cddb.com port 80,
 use:

 http://www.cddb.com:80/~cddb/cddb.cgi

 Notice /~cddb/cddb.cgi on the end.  This is the path to the actual
 CDDB CGI, and must be used with any HTTP URL.

 To automatically update the CDDB server list, use the 'sites/refresh'
 command.  Any further CDDB operations will pull entries from this
 list.  If the first server fails, it will automatically go on to the
 next one, until it has exhausted the whole list.

Tuning Readline
---------------

 You can easily add shortcuts for usual commands, by tweaking your
 ~/.inputrc file.  Here is an example:

 ~/.inputrc: -----
  $if cdcd
  "\e[[A": "open\n"    # F1 will open the CD tray
  "\e[[B": "close\n"
  "\e[[C": "play\n"
  "\e[[D": "prev\n"
  "\e[[E": "next\n"
  "\C-xw": "prev\n"    # C-x w will select the previous track
  "\C-xx": "play\n"
  "\C-xc": "pause\n"
  "\C-xC": "resume\n"
  "\C-xv": "stop\n"
  "\C-xb": "next\n"
  $endif
  -----

  Remember: to type C-x w, hold down Control, then type x once, then
  release the Control key, and type w once.

Bugs
----

 All bug reports should be sent to noon@users.sourceforge.net.
  
 cdcd has been tested under many versions of Linux, and FreeBSD 3.0.
 If you do experience problems either compiling or while operating
 cdcd, please send the following:
 
 * The version of cdcd you are using.

 * The version of libcdaudio you are using.

 * Your platform type and release.

 * A complete list of errors that occurred either during the compile
   (make >& errors) or a detailed description of what happened while
   cdcd was in operation.

 * Any other information you believe is relevant.

Patches
-------

 If you think you can do something better than the existing code, by
 all means, send me the patch!  Send all patches to
 noon@users.sourceforge.net.  Be sure to include your name so I can
 credit your code.  If the patch fixes a bug, it would be nice if you
 send the patch along with the bug report.

A few final words
-----------------

 cdcd is distributed under the GNU General Public License, included in
 this package under the top level directory in the file COPYING.

 libcdaudio is distributed under the GNU Library General Public
 License, either included in this package as libcdaudio/COPYING.LIB or
 if obtained seperately, under the top level directory of libcdaudio
 in the file COPYING.LIB.
