home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-12-19 | 75.1 KB | 1,994 lines |
- Newsgroups: comp.sources.x
- From: ti@bazooka.amb.org (Ti Kan)
- Subject: v21i063: xmcd - X11/Motif CD audio player, Part01/13
- Message-ID: <csx-v21i063=xmcd.133730@sparky.Sterling.COM>
- X-Md4-Signature: 861e4f642f85068092c7e95ca846a99e
- Sender: chris@sparky.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Sun, 19 Dec 1993 19:37:43 GMT
- Approved: chris@sterling.com
-
- Submitted-by: ti@bazooka.amb.org (Ti Kan)
- Posting-number: Volume 21, Issue 63
- Archive-name: xmcd/part01
- Environment: X11, OSF/Motif
-
-
-
- This is xmcd version 1.0, a X11/Motif Compact Disc Digital Audio Player
- utility for your CD-ROM drive. This software represents many months
- of development and fine-tuning, as well as a beta test program involving
- some 60+ dedicated individuals around the world.
-
- The source code of this version of xmcd supports the following operating
- systems environments:
-
- 1. UNIX System V Release 3.2 (on Intel x86)
- - SCO Open Desktop Version 2.x (X11R4 or X11R5 server)
- - SCO Open Desktop Version 3.x
- - SCO UNIX 3.2v4.x with XFree86 + Motif 1.2
-
- 2. UNIX System V Release 4.0 (on Intel x86)
- (Note: 4.0.3 or later recommended)
- - AT&T
- - Consensys
- - Dell
- - ESIX
- - ISC
- - Microport
- - Micro Station Technology
- - UHC
- - USL
-
- 3. UNIX System V Release 4.2 (on Intel x86)
- - Consensys
- - Information Foundation
- - Onsite
- - Univel/Novell UnixWare
- - USL
-
- 4. UNIX System V Release 4.2MP (on Intel x86)
- - USL (ES/MP TLP4/EA5 or later)
-
- 5. UNIX System V Release 4.0 (on Motorola 88k)
- - Motorola
-
- 6. HP-UX (on HP Series 700)
- - HP-UX Release 9.0 (see README file)
-
- 7. SunOS (on Sun Sparc)
- - SunOS 4.x / Solaris 1.x
-
- 8. SunOS (on Sun Sparc)
- - SunOS 5.x / Solaris 2.x (see README file)
-
- 9. SunOS (on Intel x86)
- - SunOS 5.x / Solaris 2.x (see README file)
-
-
- This release of xmcd features the following:
-
- - Standard functions: Stop, Play, Pause, Next/Previous Track,
- Next/Previous Index, Fast forward/rewind with audio sample,
- Eject and On/off.
- - Direct track access keypad.
- - Volume control.
- - Shuffle (random) play function.
- - Repeat function.
- - Sample function: Play a few seconds of each track.
- - A->B function: Repeat from selectable point A and B.
- - Eject inhibit function: To prevent someone from ejecting the
- disc by pressing the button on the drive.
- - Track Program function: Play tracks in custom order.
- - CD database function: Allows you to store CD title/track titles
- in database, and associate each disc with a play program.
- Displays the current playing disc title/track information.
- In addition, you can enter and display arbitrary text associated
- with the disc or each track, such as band information, lyrics,
- etc.
- - Track/Index/Time display: Selectable to display elapsed time,
- remaining track time, or remaining disc time.
- - Status display: for current play status, A->B mode, program
- mode, CD database.
- - Main window button face labels can be configured to display
- pictorial symbols, or text with hotkey mnemonics.
- - The complete application can be operated via the keyboard with
- full support for keyboard traversal and hotkeys.
- - All labels and messages can be customized to non-English
- languages via X resources in the .Xdefaults file.
- - All colors and many other functionality are user-customizable
- using X resource settings.
- - On-line help information.
-
-
- This release of xmcd will work with the following CD-ROM drives.
- See notes below for specific information:
-
- Apple CD-300
- Compaq CDU-561
- Compaq CR-503BCQ
- Hitachi CDR-1650S
- Hitachi CDR-1750S
- Hitachi CDR-3650
- Hitachi CDR-3750
- NEC CDR-72
- NEC CDR-74
- NEC CDR-77
- NEC CDR-80
- NEC CDR-82
- NEC CDR-84
- NEC CDR-38
- NEC CDR-74-1
- NEC CDR-84-1
- Pioneer DRM-600
- Pioneer DRM-600A
- Pioneer DRM-610
- Pioneer DRM-604X
- Sony CDU-541
- Sony CDU-561
- Sony CDU-6211
- Sony CDU-7211
- Sony CDU-8003
- Sony CDU-8012
- Sun CD-ROM
- Texel DM-3024
- Texel DM-5024
- Texel DM-3028
- Texel DM-5028
- Toshiba XM-3101
- Toshiba XM-3201
- Toshiba XM-3301
- Toshiba XM-3401
- Toshiba XM-8100
- Other SCSI-2 compliant CD-ROM drives
-
- Please read the README and INSTALL files in the package for specific
- information.
-
- --
- /// Ti Kan vorsprung durch technik
- /// AMB Research Laboratories, Sunnyvale, CA. USA
- /// ti@amb.org
- ////// ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
- /// ...!uunet!bazooka!ti
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 13)."
- # Contents: Imakefile BUGS COPYING INSTALL PORTING README demo.cddb
- # xmcd.man
- # Wrapped by ti@bazooka on Mon Nov 8 10:35:16 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'Imakefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Imakefile'\"
- else
- echo shar: Extracting \"'Imakefile'\" \(3910 characters\)
- sed "s/^X//" >'Imakefile' <<'END_OF_FILE'
- X/*
- X * @(#)Imakefile 1.52 93/09/30
- X *
- X * Imakefile for xmcd
- X *
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X
- X
- X/*
- X * If your local X configuration is broken, you may need to muck with
- X * the following RANLIB= lines.
- X * On most System V platforms RANLIB should be set to /bin/true.
- X * On BSD-derived systems RANLIB should be set to ranlib.
- X */
- X#if defined(DoRanlibCmd) && (DoRanlibCmd == NO)
- XRANLIB= /bin/true
- X#endif
- X
- X
- X/*
- X * If your local X configuration supports Motif correctly, the
- X * following LOCAL_LIBRARIES= declaration should work just fine.
- X * If it fails, try uncommenting the #include lines below. If that
- X * still fails, then substitute the LOCAL_LIBRARIES= line with
- X * one of the these:
- X *
- X * LOCAL_LIBRARIES= $(XMLIB) $(XTOOLLIB) $(XLIB)
- X *
- X * or,
- X *
- X * LOCAL_LIBRARIES= -lXm -lXt -lXext -lX11
- X *
- X */
- X
- X/*
- X * #include "Motif.tmpl"
- X * #include "Motif.rules"
- X */
- XLOCAL_LIBRARIES= XmClientLibs
- X
- X
- X/*
- X * Optional defines: Change as you see fit.
- X *
- X * -DBSDCOMPAT (Compiling under BSD-derived or BSD-like OS)
- X * -DNO_STDLIB_H (The system does not support <stdlib.h>)
- X * -DUSE_SYMLINK (Use symbolic links instead of hard links)
- X * -DDEMO_ONLY (Build a simulated, demo-only version of xmcd)
- X * -DHITACHI (Include Hitachi vendor-unique command support)
- X * -DNEC (Include NEC vendor-unique command support)
- X * -DPIONEER (Include Pioneer vendor-unique command support)
- X * -DTOSHIBA (Include Toshiba vendor-unique command support)
- X *
- X */
- X#if defined(SYSTYPE_BSD43) || defined(BSD43) || defined(BSD) || \
- X defined(OsfArchitecture) || \
- X (defined(SunArchitecture) && OSMajorVersion == 4)
- XDEFINES= -DBSDCOMPAT -DHITACHI -DNEC -DPIONEER -DTOSHIBA
- X#else
- XDEFINES= -DHITACHI -DNEC -DPIONEER -DTOSHIBA
- X#endif
- X
- X
- X/*
- X * Target directory definitions
- X *
- X * Uncomment BINDIR and LIBDIR and modify if you want to use non-default
- X * values.
- X */
- X
- X/*
- X * BINDIR= /usr/bin/X11
- X * LIBDIR= /usr/lib/X11
- X */
- X
- X
- X/*
- X * Redefine InstallProgram because we want to use our own install script
- X */
- X#ifdef InstallProgram
- X#undef InstallProgram
- X#define InstallProgram(program, dest) @@\
- Xinstall:: program @@\
- X @BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) MANFILE=ManDir/program.ManSuffix \
- X /bin/sh ./install.sh -n
- X#endif
- X
- X
- X/*
- X * C Source files
- X */
- XSRCS= cdfunc.c \
- X dbprog.c \
- X geometry.c \
- X help.c \
- X hotkey.c \
- X lib_scsipt.c \
- X lib_sim.c \
- X lib_hita.c \
- X lib_nec.c \
- X lib_pion.c \
- X lib_tosh.c \
- X lib_demo.c \
- X lib_hpux.c \
- X lib_odt.c \
- X lib_sun.c \
- X lib_svr4.c \
- X main.c \
- X util.c \
- X widget.c
- X
- X/*
- X * Main module objects
- X */
- XOBJS= cdfunc.o \
- X dbprog.o \
- X geometry.o \
- X help.o \
- X hotkey.o \
- X main.o \
- X util.o \
- X widget.o \
- X cdlib.a
- X
- X/*
- X * DIS module objects
- X */
- XLOBJS= lib_scsipt.o \
- X lib_sim.o \
- X lib_hita.o \
- X lib_nec.o \
- X lib_pion.o \
- X lib_tosh.o \
- X lib_demo.o \
- X lib_hpux.o \
- X lib_odt.o \
- X lib_sun.o \
- X lib_svr4.o
- X
- X
- X/*
- X * Build rules for the main module
- X */
- XComplexProgramTarget(xmcd)
- X
- X
- X/*
- X * Build rules for the DIS module library
- X */
- Xcdlib.a: $(LOBJS)
- X rm -f cdlib.a; $(AR) cdlib.a $(LOBJS)
- X $(RANLIB) cdlib.a
- X
- X$(LOBJS):
- X $(CC) $(CFLAGS) -c $*.c
- X
- X
- X/*
- X * Source subdirectory management
- X */
- X#define IHaveSubdirs
- XSUBDIRS=bitmaps helpfiles
- X
- X
- END_OF_FILE
- if test 3910 -ne `wc -c <'Imakefile'`; then
- echo shar: \"'Imakefile'\" unpacked with wrong size!
- fi
- # end of 'Imakefile'
- fi
- if test -f 'BUGS' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'BUGS'\"
- else
- echo shar: Extracting \"'BUGS'\" \(1048 characters\)
- sed "s/^X//" >'BUGS' <<'END_OF_FILE'
- X#
- X# @(#)BUGS 1.4 93/07/17
- X#
- XXmcd (Motif(tm) CD Audio Player) by Ti Kan
- X------------------------------------------
- X
- XKnown bugs/limitations
- X----------------------
- X
- X1. Description:
- X Clicking the mouse button #3 on the volume control slider thumb
- X will not bring up the help window. One must click on the numeric
- X label area instead.
- X
- X Severity/Analysis:
- X Low severity. This is a limitation of the Motif scale widget.
- X
- X Solution/Workaround:
- X Use the numeric label area to bring up the help window for the volume
- X control.
- X
- X2. Description:
- X When clicking mouse button #3 on the volume control numeric label
- X area, sometimes the help window does not appear.
- X
- X Severity/Analysis:
- X Low severity. The problem occurs when the current keyboard input
- X focus is on the volume control slider. This is a limitation of
- X the Motif scale widget.
- X
- X Solution/Workaround:
- X Set the keyboard input focus on some other widget first (such as by
- X operating another control or button) before invoking the volume
- X control help window.
- X
- END_OF_FILE
- if test 1048 -ne `wc -c <'BUGS'`; then
- echo shar: \"'BUGS'\" unpacked with wrong size!
- fi
- # end of 'BUGS'
- fi
- if test -f 'COPYING' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'COPYING'\"
- else
- echo shar: Extracting \"'COPYING'\" \(17982 characters\)
- sed "s/^X//" >'COPYING' <<'END_OF_FILE'
- X GNU GENERAL PUBLIC LICENSE
- X Version 2, June 1991
- X
- X Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- X 675 Mass Ave, Cambridge, MA 02139, USA
- X Everyone is permitted to copy and distribute verbatim copies
- X of this license document, but changing it is not allowed.
- X
- X Preamble
- X
- X The licenses for most software are designed to take away your
- Xfreedom to share and change it. By contrast, the GNU General Public
- XLicense is intended to guarantee your freedom to share and change free
- Xsoftware--to make sure the software is free for all its users. This
- XGeneral Public License applies to most of the Free Software
- XFoundation's software and to any other program whose authors commit to
- Xusing it. (Some other Free Software Foundation software is covered by
- Xthe GNU Library General Public License instead.) You can apply it to
- Xyour programs, too.
- X
- X When we speak of free software, we are referring to freedom, not
- Xprice. Our General Public Licenses are designed to make sure that you
- Xhave the freedom to distribute copies of free software (and charge for
- Xthis service if you wish), that you receive source code or can get it
- Xif you want it, that you can change the software or use pieces of it
- Xin new free programs; and that you know you can do these things.
- X
- X To protect your rights, we need to make restrictions that forbid
- Xanyone to deny you these rights or to ask you to surrender the rights.
- XThese restrictions translate to certain responsibilities for you if you
- Xdistribute copies of the software, or if you modify it.
- X
- X For example, if you distribute copies of such a program, whether
- Xgratis or for a fee, you must give the recipients all the rights that
- Xyou have. You must make sure that they, too, receive or can get the
- Xsource code. And you must show them these terms so they know their
- Xrights.
- X
- X We protect your rights with two steps: (1) copyright the software, and
- X(2) offer you this license which gives you legal permission to copy,
- Xdistribute and/or modify the software.
- X
- X Also, for each author's protection and ours, we want to make certain
- Xthat everyone understands that there is no warranty for this free
- Xsoftware. If the software is modified by someone else and passed on, we
- Xwant its recipients to know that what they have is not the original, so
- Xthat any problems introduced by others will not reflect on the original
- Xauthors' reputations.
- X
- X Finally, any free program is threatened constantly by software
- Xpatents. We wish to avoid the danger that redistributors of a free
- Xprogram will individually obtain patent licenses, in effect making the
- Xprogram proprietary. To prevent this, we have made it clear that any
- Xpatent must be licensed for everyone's free use or not licensed at all.
- X
- X The precise terms and conditions for copying, distribution and
- Xmodification follow.
- X
- X GNU GENERAL PUBLIC LICENSE
- X TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- X
- X 0. This License applies to any program or other work which contains
- Xa notice placed by the copyright holder saying it may be distributed
- Xunder the terms of this General Public License. The "Program", below,
- Xrefers to any such program or work, and a "work based on the Program"
- Xmeans either the Program or any derivative work under copyright law:
- Xthat is to say, a work containing the Program or a portion of it,
- Xeither verbatim or with modifications and/or translated into another
- Xlanguage. (Hereinafter, translation is included without limitation in
- Xthe term "modification".) Each licensee is addressed as "you".
- X
- XActivities other than copying, distribution and modification are not
- Xcovered by this License; they are outside its scope. The act of
- Xrunning the Program is not restricted, and the output from the Program
- Xis covered only if its contents constitute a work based on the
- XProgram (independent of having been made by running the Program).
- XWhether that is true depends on what the Program does.
- X
- X 1. You may copy and distribute verbatim copies of the Program's
- Xsource code as you receive it, in any medium, provided that you
- Xconspicuously and appropriately publish on each copy an appropriate
- Xcopyright notice and disclaimer of warranty; keep intact all the
- Xnotices that refer to this License and to the absence of any warranty;
- Xand give any other recipients of the Program a copy of this License
- Xalong with the Program.
- X
- XYou may charge a fee for the physical act of transferring a copy, and
- Xyou may at your option offer warranty protection in exchange for a fee.
- X
- X 2. You may modify your copy or copies of the Program or any portion
- Xof it, thus forming a work based on the Program, and copy and
- Xdistribute such modifications or work under the terms of Section 1
- Xabove, provided that you also meet all of these conditions:
- X
- X a) You must cause the modified files to carry prominent notices
- X stating that you changed the files and the date of any change.
- X
- X b) You must cause any work that you distribute or publish, that in
- X whole or in part contains or is derived from the Program or any
- X part thereof, to be licensed as a whole at no charge to all third
- X parties under the terms of this License.
- X
- X c) If the modified program normally reads commands interactively
- X when run, you must cause it, when started running for such
- X interactive use in the most ordinary way, to print or display an
- X announcement including an appropriate copyright notice and a
- X notice that there is no warranty (or else, saying that you provide
- X a warranty) and that users may redistribute the program under
- X these conditions, and telling the user how to view a copy of this
- X License. (Exception: if the Program itself is interactive but
- X does not normally print such an announcement, your work based on
- X the Program is not required to print an announcement.)
- X
- XThese requirements apply to the modified work as a whole. If
- Xidentifiable sections of that work are not derived from the Program,
- Xand can be reasonably considered independent and separate works in
- Xthemselves, then this License, and its terms, do not apply to those
- Xsections when you distribute them as separate works. But when you
- Xdistribute the same sections as part of a whole which is a work based
- Xon the Program, the distribution of the whole must be on the terms of
- Xthis License, whose permissions for other licensees extend to the
- Xentire whole, and thus to each and every part regardless of who wrote it.
- X
- XThus, it is not the intent of this section to claim rights or contest
- Xyour rights to work written entirely by you; rather, the intent is to
- Xexercise the right to control the distribution of derivative or
- Xcollective works based on the Program.
- X
- XIn addition, mere aggregation of another work not based on the Program
- Xwith the Program (or with a work based on the Program) on a volume of
- Xa storage or distribution medium does not bring the other work under
- Xthe scope of this License.
- X
- X 3. You may copy and distribute the Program (or a work based on it,
- Xunder Section 2) in object code or executable form under the terms of
- XSections 1 and 2 above provided that you also do one of the following:
- X
- X a) Accompany it with the complete corresponding machine-readable
- X source code, which must be distributed under the terms of Sections
- X 1 and 2 above on a medium customarily used for software interchange; or,
- X
- X b) Accompany it with a written offer, valid for at least three
- X years, to give any third party, for a charge no more than your
- X cost of physically performing source distribution, a complete
- X machine-readable copy of the corresponding source code, to be
- X distributed under the terms of Sections 1 and 2 above on a medium
- X customarily used for software interchange; or,
- X
- X c) Accompany it with the information you received as to the offer
- X to distribute corresponding source code. (This alternative is
- X allowed only for noncommercial distribution and only if you
- X received the program in object code or executable form with such
- X an offer, in accord with Subsection b above.)
- X
- XThe source code for a work means the preferred form of the work for
- Xmaking modifications to it. For an executable work, complete source
- Xcode means all the source code for all modules it contains, plus any
- Xassociated interface definition files, plus the scripts used to
- Xcontrol compilation and installation of the executable. However, as a
- Xspecial exception, the source code distributed need not include
- Xanything that is normally distributed (in either source or binary
- Xform) with the major components (compiler, kernel, and so on) of the
- Xoperating system on which the executable runs, unless that component
- Xitself accompanies the executable.
- X
- XIf distribution of executable or object code is made by offering
- Xaccess to copy from a designated place, then offering equivalent
- Xaccess to copy the source code from the same place counts as
- Xdistribution of the source code, even though third parties are not
- Xcompelled to copy the source along with the object code.
- X
- X 4. You may not copy, modify, sublicense, or distribute the Program
- Xexcept as expressly provided under this License. Any attempt
- Xotherwise to copy, modify, sublicense or distribute the Program is
- Xvoid, and will automatically terminate your rights under this License.
- XHowever, parties who have received copies, or rights, from you under
- Xthis License will not have their licenses terminated so long as such
- Xparties remain in full compliance.
- X
- X 5. You are not required to accept this License, since you have not
- Xsigned it. However, nothing else grants you permission to modify or
- Xdistribute the Program or its derivative works. These actions are
- Xprohibited by law if you do not accept this License. Therefore, by
- Xmodifying or distributing the Program (or any work based on the
- XProgram), you indicate your acceptance of this License to do so, and
- Xall its terms and conditions for copying, distributing or modifying
- Xthe Program or works based on it.
- X
- X 6. Each time you redistribute the Program (or any work based on the
- XProgram), the recipient automatically receives a license from the
- Xoriginal licensor to copy, distribute or modify the Program subject to
- Xthese terms and conditions. You may not impose any further
- Xrestrictions on the recipients' exercise of the rights granted herein.
- XYou are not responsible for enforcing compliance by third parties to
- Xthis License.
- X
- X 7. If, as a consequence of a court judgment or allegation of patent
- Xinfringement or for any other reason (not limited to patent issues),
- Xconditions are imposed on you (whether by court order, agreement or
- Xotherwise) that contradict the conditions of this License, they do not
- Xexcuse you from the conditions of this License. If you cannot
- Xdistribute so as to satisfy simultaneously your obligations under this
- XLicense and any other pertinent obligations, then as a consequence you
- Xmay not distribute the Program at all. For example, if a patent
- Xlicense would not permit royalty-free redistribution of the Program by
- Xall those who receive copies directly or indirectly through you, then
- Xthe only way you could satisfy both it and this License would be to
- Xrefrain entirely from distribution of the Program.
- X
- XIf any portion of this section is held invalid or unenforceable under
- Xany particular circumstance, the balance of the section is intended to
- Xapply and the section as a whole is intended to apply in other
- Xcircumstances.
- X
- XIt is not the purpose of this section to induce you to infringe any
- Xpatents or other property right claims or to contest validity of any
- Xsuch claims; this section has the sole purpose of protecting the
- Xintegrity of the free software distribution system, which is
- Ximplemented by public license practices. Many people have made
- Xgenerous contributions to the wide range of software distributed
- Xthrough that system in reliance on consistent application of that
- Xsystem; it is up to the author/donor to decide if he or she is willing
- Xto distribute software through any other system and a licensee cannot
- Ximpose that choice.
- X
- XThis section is intended to make thoroughly clear what is believed to
- Xbe a consequence of the rest of this License.
- X
- X 8. If the distribution and/or use of the Program is restricted in
- Xcertain countries either by patents or by copyrighted interfaces, the
- Xoriginal copyright holder who places the Program under this License
- Xmay add an explicit geographical distribution limitation excluding
- Xthose countries, so that distribution is permitted only in or among
- Xcountries not thus excluded. In such case, this License incorporates
- Xthe limitation as if written in the body of this License.
- X
- X 9. The Free Software Foundation may publish revised and/or new versions
- Xof the General Public License from time to time. Such new versions will
- Xbe similar in spirit to the present version, but may differ in detail to
- Xaddress new problems or concerns.
- X
- XEach version is given a distinguishing version number. If the Program
- Xspecifies a version number of this License which applies to it and "any
- Xlater version", you have the option of following the terms and conditions
- Xeither of that version or of any later version published by the Free
- XSoftware Foundation. If the Program does not specify a version number of
- Xthis License, you may choose any version ever published by the Free Software
- XFoundation.
- X
- X 10. If you wish to incorporate parts of the Program into other free
- Xprograms whose distribution conditions are different, write to the author
- Xto ask for permission. For software which is copyrighted by the Free
- XSoftware Foundation, write to the Free Software Foundation; we sometimes
- Xmake exceptions for this. Our decision will be guided by the two goals
- Xof preserving the free status of all derivatives of our free software and
- Xof promoting the sharing and reuse of software generally.
- X
- X NO WARRANTY
- X
- X 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
- XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
- XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
- XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
- XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
- XREPAIR OR CORRECTION.
- X
- X 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
- XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
- XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
- XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
- XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
- XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
- XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- XPOSSIBILITY OF SUCH DAMAGES.
- X
- X END OF TERMS AND CONDITIONS
- X
- X Appendix: How to Apply These Terms to Your New Programs
- X
- X If you develop a new program, and you want it to be of the greatest
- Xpossible use to the public, the best way to achieve this is to make it
- Xfree software which everyone can redistribute and change under these terms.
- X
- X To do so, attach the following notices to the program. It is safest
- Xto attach them to the start of each source file to most effectively
- Xconvey the exclusion of warranty; and each file should have at least
- Xthe "copyright" line and a pointer to where the full notice is found.
- X
- X <one line to give the program's name and a brief idea of what it does.>
- X Copyright (C) 19yy <name of author>
- X
- X This program is free software; you can redistribute it and/or modify
- X it under the terms of the GNU General Public License as published by
- X the Free Software Foundation; either version 2 of the License, or
- X (at your option) any later version.
- X
- X This program is distributed in the hope that it will be useful,
- X but WITHOUT ANY WARRANTY; without even the implied warranty of
- X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X GNU General Public License for more details.
- X
- X You should have received a copy of the GNU General Public License
- X along with this program; if not, write to the Free Software
- X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X
- XAlso add information on how to contact you by electronic and paper mail.
- X
- XIf the program is interactive, make it output a short notice like this
- Xwhen it starts in an interactive mode:
- X
- X Gnomovision version 69, Copyright (C) 19yy name of author
- X Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- X This is free software, and you are welcome to redistribute it
- X under certain conditions; type `show c' for details.
- X
- XThe hypothetical commands `show w' and `show c' should show the appropriate
- Xparts of the General Public License. Of course, the commands you use may
- Xbe called something other than `show w' and `show c'; they could even be
- Xmouse-clicks or menu items--whatever suits your program.
- X
- XYou should also get your employer (if you work as a programmer) or your
- Xschool, if any, to sign a "copyright disclaimer" for the program, if
- Xnecessary. Here is a sample; alter the names:
- X
- X Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- X `Gnomovision' (which makes passes at compilers) written by James Hacker.
- X
- X <signature of Ty Coon>, 1 April 1989
- X Ty Coon, President of Vice
- X
- XThis General Public License does not permit incorporating your program into
- Xproprietary programs. If your program is a subroutine library, you may
- Xconsider it more useful to permit linking proprietary applications with the
- Xlibrary. If this is what you want to do, use the GNU Library General
- XPublic License instead of this License.
- END_OF_FILE
- if test 17982 -ne `wc -c <'COPYING'`; then
- echo shar: \"'COPYING'\" unpacked with wrong size!
- fi
- # end of 'COPYING'
- fi
- if test -f 'INSTALL' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'INSTALL'\"
- else
- echo shar: Extracting \"'INSTALL'\" \(4661 characters\)
- sed "s/^X//" >'INSTALL' <<'END_OF_FILE'
- X#
- X# @(#)INSTALL 1.22 93/10/06
- X#
- XXmcd (Motif(tm) CD Audio Player) by Ti Kan
- X------------------------------------------
- X
- XYou must have X11R4/Motif 1.1 or later to build xmcd. Xmcd has been
- Xsuccessfully built under both X11R4 + Motif 1.1 and X11R5 + Motif 1.2.
- XIf you are running Motif 1.1, I recommend version 1.1.4 or later.
- XAlso, you must have an ANSI C compatible compilation environment.
- X
- XXmcd can be built using the native X libraries that are supplied with
- Xyour OS release. If you have XFree86 installed, you can also build
- Xxmcd using the libraries from the XFree86 distribution. Make sure
- Xyou use the right set of X include files to match! Motif is not a
- Xpart of the XFree86 package, so you will need to get it separately.
- X
- XIf you are running SCO UNIX or ODT, xmcd requires the C pre-processor
- Xflag "-Dsco" (lower-case) to be set. This is done by default on systems
- Xrunning the ODT Development System. If you are using XFree86, you must
- Xmodify the appropriate "OsDefines" line in your
- X/usr/X386/lib/X11/config/x386.cf file to include -Dsco.
- X
- XIf you are building xmcd on a SunOS 4.1.x platform, you must use the
- XGNU C compiler (gcc) instead of the cc compiler. This is because cc
- Xunder SunOS 4.1.x is not ANSI compliant.
- X
- XOn all platforms, if you use gcc, you must add the following to
- Xyour CFLAGS:
- X
- X -fpcc-struct-return -fwritable-strings
- X
- XYou must compile on one of the supported UNIX OS flavors (See the
- XREADME file for a list of the supported OS environments) to get a
- Xreal functional xmcd. You can compile on other platforms, but you
- Xwill end up with a "demo" version of xmcd.
- X
- XYou can also force the build of the "demo" version by specifying
- X-DDEMO_ONLY. See the comments in Imakefile. The "demo-only" version
- Xhas been successfully compiled and run on the following OS platforms:
- X
- X OSF/1 1.0 on HP-9000 Series 700 PA-RISC
- X SCO ODT 2.0 on x86
- X SCO ODT 3.0 on x86
- X Stratus SVR4.0 FTX 2.1
- X Stratus SVR4.0 FTX 2.2
- X SunOS 4.1.2 on Sun Sparc
- X UNIX SVR4.0 on x86
- X UNIX SVR4.2 on x86
- X
- XThe "demo" version does not actually control or respond to a real
- XCD-ROM device. Instead, a built-in CD-ROM simulater is used,
- Xwhich allows you to play with the look-and-feel of xmcd and try
- Xthe behavior of all the controls and functions.
- X
- XIn order to use the non-demo xmcd, your system must be set up
- Xproperly to use a CD-ROM drive. A good test is to see if you can
- Xmount ISO-9660/High Sierra CD-ROM filesystems. If your system does
- Xnot support ISO-9660 but otherwise supports a raw CD-ROM device,
- Xyou can try typing this command while logged in as the super-user:
- X
- X dd if=DEVICE of=/dev/null bs=2k count=10
- X
- Xwhere DEVICE is the raw CD-ROM device, such as /dev/rcd0 (SCO ODT),
- X/dev/rcdrom/cd0 (SVR4.0) or /dev/rcdrom/cdrom1 (SVR4.2).
- X
- XIf the dd command fails, then either your hardware is not set up
- Xproperly, or your OS is not configured to support the CD-ROM device.
- XYou should fix the problem first before attempting to run xmcd.
- X
- X
- XBuild instructions:
- X-------------------
- X
- X1. Take a look at Imakefile, read the comments, and make changes as
- X appropriate.
- X2. Type "xmkmf" (or "imake -DUseInstalled")
- X3. Type "make Makefiles"
- X4. Type "make depend"
- X5. Type "make"
- X
- X
- XInstall instructions:
- X---------------------
- X
- X1. Log in as the super-user and change to the xmcd source directory.
- X2. Type "make install". Answer all questions to configure xmcd.
- X3. Edit LIBDIR/app-defaults/XMcd and make sure that the "XMcd.device:"
- X path matches the default raw CD-ROM device on your system.
- X
- X
- XTo make a binary release:
- X-------------------------
- X
- X1. Follow the Build Instructions as above.
- X2. Make sure the binary you build has the proper mix of static vs.
- X shared library components for your target system. In particular,
- X if your target system does not have Motif installed, then you
- X will want to statically link libXm.a. The same consideration
- X should be given to libXt, libXext, libX11, libnsl, libsocket,
- X libc, and others where applicable. The more libraries you link
- X statically, the less platform-dependent the binary is, but the
- X larger it becomes. In some cases, even a fully static xmcd binary
- X will still have problem running if the target system has different
- X kernel-to-library interfaces than the compiling system.
- X2. Run the "makerel.sh" script. The script generates a file
- X "xmcdbin.uue", which is a compressed and uuencoded tar format
- X file containing all files necessary for a xmcd binary distribution.
- X
- X
- XTo make a source release:
- X-------------------------
- X1. Run the "makesrc.sh" script. The script generates a file
- X "xmcdsrc.uue", which is a compressed and uuencoded tar format
- X file containing all xmcd source files.
- X
- END_OF_FILE
- if test 4661 -ne `wc -c <'INSTALL'`; then
- echo shar: \"'INSTALL'\" unpacked with wrong size!
- fi
- # end of 'INSTALL'
- fi
- if test -f 'PORTING' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'PORTING'\"
- else
- echo shar: Extracting \"'PORTING'\" \(14311 characters\)
- sed "s/^X//" >'PORTING' <<'END_OF_FILE'
- X#
- X# @(#)PORTING 1.17 93/09/20
- X#
- XXmcd (Motif(tm) CD Audio Player) by Ti Kan
- X------------------------------------------
- X
- XPorting Information
- X-------------------
- X
- X
- XINTRODUCTION
- X
- XA truly portable program should compile and run without modification
- Xon different OS and hardware platforms. Any CD Audio player software,
- Xespecially under UNIX, is typically not very portable. This is because
- Xof the two following reasons:
- X
- X 1. Different OS implementations provide different means
- X of operating the CD-ROM drives.
- X 2. Although there is an increasing number of CD-ROM drives
- X that implement and are conformant to the audio-related
- X commands as documented in the SCSI-2 specifications,
- X many non-SCSI-2 conformant CD-ROM drives exist, and
- X support audio operations only via incompatible vendor-
- X unique commands
- X
- XXmcd strives to be as portable as possible by taking the following
- Xdesign approach:
- X
- X 1. Harness the inherent portability advantages of the X Window
- X System, and the increasing popularity of the OSF/Motif GUI.
- X The X Window System gives us device-independent graphics
- X and network-extensibility, and Motif is rapidly becoming
- X the de facto standard UNIX GUI, and will soon be supported
- X on virtually every vendor's port of UNIX as well as UNIX-like
- X operating systems.
- X 2. Strict adherence to ANSI C standards.
- X 3. Modularize the internals of xmcd, such that the user interface
- X portion, the OS-interface portion, and the CD-ROM vendor-unique
- X support portions are each a separate and replaceable entity.
- X 4. The OS-specific and device-specific portions are made as small
- X and self-contained as possible, so that changes to support
- X a new OS or new CD-ROM drive are not scattered about.
- X
- XCurrently xmcd already supports a wide array of SCSI CD-ROM drives
- Xand several OS environments. However, the more devices xmcd
- Xsupports, and the more OS environments it runs under, the better.
- XTo that end, I encourage you to contribute to xmcd and make it
- Xa better program. If you would like to add support of additional
- XCD-ROM devices, port xmcd to run on another OS, or to add other
- Xenhancements to xmcd, the xmcd internal architecture overview below
- Xshould prove to be beneficial.
- X
- XXmcd currently contains code that assumes a POSIX-compliant UNIX
- XC library and headers, and certain System V characteristics.
- XExamples of these are:
- X
- X - Uses "struct dirent" rather than "struct direct"
- X - Assumes existence of types such as "uid_t"
- X - etc...
- X
- XAlthough xmcd has been ported to run on SunOS (The SunOS 4.x kernel
- Xis BSD-based), you may need to make certain modifications to port
- Xxmcd to other BSD-derived or BSD-like environments.
- X
- XPlease note that xmcd is released as free software under the GNU
- XGeneral License Agreement, which guarantees your right to modify
- Xxmcd for yourself and others (please see the COPYING file for
- Xdetails). I do ask, however, that if you add new functionality
- Xto xmcd or port xmcd to a new platform, please send all changes to
- Xme so I can merge it into the main source code and include it in
- Xthe next release. All proper credit will be given, of course,
- Xin the form of Copyright notices in the source file banners and
- Xthe "About..." pop-up window. This avoids diverging versions
- Xand makes your enhancements accessible to more people.
- X
- X
- X
- XXMCD ARCHITECTURE
- X
- XXmcd is divided into two main subsystems, the Application Code
- XSubsystem and the Device Interface Subsystem (These are hereafter
- Xreferred to as ACS and DIS, respectively).
- X
- XThe diagram below shows the general xmcd architecture, and
- Xidentifies where the various libraries (Motif, Xt, X11, socket,
- Xand the C library) interface with the main xmcd bodies of code.
- X
- X
- X User Interface
- X +-------------------------------------------------------------------------+
- X | |
- X | Motif |
- X | |
- X | +----------------+----------------------------------------------------+
- X | | | |
- X | | Xt | Xmcd Application Code Subsystem (ACS) |
- X | | Intrinsics | |
- X | | | +--------------------------------------+
- X | | | | |
- X | | +------------+ | |
- X | | | | | |
- X | | | X11 | | Xmcd Device Interface Subsystem |
- X | | | | | (DIS) |
- X | | | +--------+ | |
- X | | | | | | |
- X | | | | socket | | |
- X | | | | | | |
- X +---+---+---+--------+-------------+--------------------------------------+
- X | |
- X | C Library / System Calls |
- X | |
- X +-------------------------------------------------------------------------+
- X OS Kernel
- X
- X
- X
- XThe ACS is the layer that deals with the user interface and mostly
- Xuses Motif for that purpose. It provides the look-and-feel of the
- Xapplication and manages all user events. The ACS also provides a set
- Xof general service functions for the DIS to call. There are two
- Xgeneral classes of these functions. The first of these are functions
- Xthat cause changes on the user interface (display popup messages,
- Xchange widget state, etc.), and the second are general service routines
- X(perform byte-swapping, BCD to interger conversion, etc). This layer
- Xis hardware platform and OS independent and should require virtually
- Xno modifications to port to other environments.
- X
- XThe DIS can be hardware and OS dependent. The interface from the
- XACS layer to the DIS is very high-level, consisting of function
- Xcalls like cdlib_playpause(), cdlib_stop(), cdlib_rew(), cdlib_ff(),
- Xand so on (see cdlib.h for the full list). This gives the DIS a lot
- Xof flexibility in how to implement the actual functionalities.
- XFurthermore, the DIS physically resides in a library archive.
- XAlthough it is currently linked into xmcd statically, if the need
- Xarises it can be modified to be dynamically bound.
- X
- XThe DIS supplied with the current xmcd source code is a conglomerate
- Xof the SCSI Passthrough module, an OS Interface module, and several
- XVendor-unique modules (see diagram below). This DIS implements all
- Xthe non-user-interface aspects of CD audio functionality and operates
- Xthe CD-ROM drive by delivering SCSI commands directly to the CD-ROM
- Xdrive via a kernel-supported SCSI passthrough interface.
- X
- XXmcd currently supplies three OS Interface Modules, one for most
- Xflavors of SVR4 on the x86 platform, another for SCO ODT, and a
- Xthird "demo" module that provides a demo environment, but does not
- Xactually operate a real CD-ROM drive (a CD-ROM simulator is invoked
- Xinstead, mimicking the behavior of a CD-ROM drive). Xmcd also supplies
- Xseveral vendor-unique modules for Toshiba, Pioneer, NEC, and Hitachi
- XCD-ROM drives. Only one OS Interface module can be compiled in at a
- Xtime (controlled by pre-processor directives), but multiple vendor-
- Xunique modules can coexist.
- X
- X
- X User Interface
- X +-------------------------------------------------------------------------+
- X | |
- X | Motif |
- X | |
- X | +----------------+----------------------------------------------------+
- X | | | |
- X | | Xt | Xmcd Application Code Subsystem (ACS) |
- X | | Intrinsics | |
- X | | | +-----------------------------------------+
- X | | | | |
- X | | +------------+ | SCSI Passthrough |
- X | | | | | Library Module |
- X | | | X11 | | |
- X | | | | | +-----------------+------------------+
- X | | | +--------+ | | | Vendor-unique |
- X | | | | | | | OS Interface | Library Modules |
- X | | | | socket | | | Library Modules +------------------+
- X | | | | | | | |
- X +---+---+---+--------+----------+----+------------------------------------+
- X | |
- X | C Library / System Calls |
- X | |
- X +-------------------------------------------------------------------------+
- X OS Kernel
- X
- X
- XThe following is a list of the files in the xmcd source code
- Xdistribution and the category they fall under:
- X
- XGeneral files:
- X
- X BUGS
- X COPYING
- X INSTALL
- X PORTING
- X README
- X Imakefile
- X XMcd.ad
- X dev.config
- X install.sh
- X configure.sh
- X makerel.sh
- X makesrc.sh
- X xmcd.man
- X
- XACS files:
- X
- X cdlib.h
- X patchlevel.h
- X resource.h
- X xmcd.h
- X main.c
- X cdfunc.[ch]
- X dbprog.[ch]
- X geometry.[ch]
- X help.[ch]
- X hotkey.[ch]
- X util.[ch]
- X widget.[ch]
- X bitmaps/*.xbm
- X helpfiles/*
- X
- XDIS files:
- X
- X SCSI Passthrough module:
- X
- X lib_scsipt.[ch]
- X
- X OS Interface modules:
- X
- X lib_demo.[ch] and lib_sim.[ch]
- X lib_hpux.[ch]
- X lib_odt.[ch]
- X lib_sun.[ch]
- X lib_svr4.[ch]
- X
- X Vendor-unique support modules:
- X
- X lib_hita.[ch]
- X lib_nec.[ch]
- X lib_pion.[ch]
- X lib_tosh.[ch]
- X
- X
- XOn a kernel that does not supports SCSI-passthrough, but otherwise
- Ximplements a different interface to the CD-ROM drive, another
- XDIS can be developed to replace the standard DIS. Another example
- Xis if xmcd were to be expanded to support non-SCSI CD-ROM drives,
- Xa different DIS can be written to interface with the appropriate
- Xdevice driver.
- X
- XIn the supplied DIS, the SCSI Passthrough module portion contains
- Xall the basic non-OS-dependent portion of the code that implements
- Xdelivering SCSI commands to a CD-ROM drive. It relies on the next
- Xlayer, the OS Interface layer, to actually perform the SCSI command
- Xdelivery. The SCSI Passthrough module "knows" about the SCSI-2
- Xset of audio-related commands, and sends these down to the OS
- XInterface layer. Which SCSI-2 commands to send are user-configurable
- Xvia device-dependent configuration files. This is important because
- Xmany CD-ROM drives support some, but not all of the SCSI-2 audio
- Xcommands. Alternatively, if so configured, the SCSI Passthrough
- Xmodule can call the Vendor-unique module to deliver non-SCSI-2
- Xvendor-unique commands to the CD-ROM drive.
- X
- XAll entry points to the OS Interface module are named in the
- Xform of pthru_xxx(). See lib_svr4.h, lib_odt.h and lib_demo.h
- Xfor a full list.
- X
- XThe most important OS Interface module entry point is pthru_send(),
- Xwhich is used by the SCSI Passthrough and Vendor-unique modules
- Xto deliver SCSI commands to the drive. pthru_send() takes
- Xa number of arguments that are used to contruct a SCSI CDB,
- Xamong other things. The SCSI CDB is actually allocated and
- Xfilled in the OS Interface module, and delivered using the
- Xappropriate SCSI-passthrough mechanism.
- X
- X
- X
- XPORTING HINTS
- X
- XTo port xmcd to a different OS, two alternatives can be
- Xconsidered:
- X
- X1. Use the existing DIS, but write a new OS Interface module.
- X2. Write a whole new DIS.
- X
- XThe first choice is the obvious answer if the target OS supports
- XSCSI Passthrough. This choice is also quite easy to implement,
- Xas the OS Interface module is typically fairly small and self-
- Xcontained. The existing OS Interface modules can be used as
- Xa reference when writing a new one.
- X
- XThe second choice is feasible if the OS does not supply a SCSI
- XPassthrough mechanism, or if non-SCSI drives are to be used.
- XIf this is the approach taken, the SCSI Passthrough module
- Xsource can be used as a reference, and much of its code can be
- Xcopied, modified and re-used.
- X
- XIf you are writing an OS Interface module, keep in mind that you
- Xwill need to deal with any special DMA address alignment limitations
- Xpresent in your OS and/or hardware. The data buffers allocated
- Xwithin the existing SCSI-passthrough DIS are not guarateed to be
- X32-bit word-aligned or page-aligned.
- X
- XRemember the issue of big vs. small endian? Please use the
- Xbswapxx() and lswapxx() routines provided in util.c (#include "util.h")
- Xto perform byte swapping. This is necessary because multi-byte
- Xquantities in SCSI commands and data is in general big-endian,
- Xbut xmcd is designed to run on host CPUs that are big-endian or
- Xlittle-endian. The swap routines should be used regarless of
- Xwhether your main CPU endianess matches that of the SCSI device.
- XWhether swapping actually takes place is controlled via the
- XBYTE_ORDER #define (see xmcd.h).
- X
- XThere are also some minor OS-specific code you need to add in
- Xconfigure.sh. This is mainly to set up the correct default device
- Xnode path name.
- X
- XTo support additional non-SCSI-2 CD-ROM drives via vendor-unique
- Xpassthrough commands, you will need to add a vendor-unique module
- Xto xmcd. In addition to writing the new vendor-unique module, you
- Xwill also need to make a few additions to lib_scsipt.c and lib_scsipt.h.
- XLook for #ifdef TOSHIBA, #ifdef NEC, etc., in these files for examples.
- X
- X
- X
- XQUESTIONS?
- X
- XIf you are working on enhancing xmcd and need information, help
- Xor advice, please send e-mail to me at "ti@amb.org". Likewise,
- Xsuggestions are also very welcome.
- X
- X
- END_OF_FILE
- if test 14311 -ne `wc -c <'PORTING'`; then
- echo shar: \"'PORTING'\" unpacked with wrong size!
- fi
- # end of 'PORTING'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(9586 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X#
- X# @(#)README 1.40 93/11/05
- X#
- XXmcd (Motif(tm) CD Audio Player) by Ti Kan
- X------------------------------------------
- X
- XINTRODUCTION
- X------------
- X
- XThis is the release notes for xmcd. Please read through this file
- Xbefore building, installing, or using xmcd.
- X
- X
- X
- XSOURCE CODE RELEASE NOTES
- X-------------------------
- X
- XThe source code of this version of xmcd supports the following operating
- Xsystems environments:
- X
- X 1. UNIX System V Release 3.2 (on Intel x86)
- X - SCO Open Desktop Version 2.x (X11R4 or X11R5 server)
- X - SCO Open Desktop Version 3.x
- X - SCO UNIX 3.2v4.x with XFree86 + Motif 1.2
- X
- X 2. UNIX System V Release 4.0 (on Intel x86)
- X (Note: 4.0.3 or later recommended)
- X - AT&T
- X - Consensys
- X - Dell
- X - ESIX
- X - ISC
- X - Microport
- X - Micro Station Technology
- X - UHC
- X - USL
- X
- X 3. UNIX System V Release 4.2 (on Intel x86)
- X - Consensys
- X - Information Foundation
- X - Onsite
- X - Univel/Novell UnixWare
- X - USL
- X
- X 4. UNIX System V Release 4.2MP (on Intel x86)
- X - USL (ES/MP TLP4/EA5 or later)
- X
- X 5. UNIX System V Release 4.0 (on Motorola 88k)
- X - Motorola
- X
- X 6. HP-UX (on HP Series 700)
- X - HP-UX Release 9.0 (see notes below)
- X
- X 7. SunOS (on Sun Sparc)
- X - SunOS 4.x / Solaris 1.x (see notes below)
- X
- X 8. SunOS (on Sun Sparc)
- X - SunOS 5.x / Solaris 2.x (see notes below)
- X
- X 9. SunOS (on Intel x86)
- X - SunOS 5.x / Solaris 2.x (see notes below)
- X
- X
- XIn general, binaries compiled on one OS can run on another OS under
- Xthe same group. Thus, xmcd compiled on Consensys SVR4.0 should run
- Xon ESIX SVR4.0, but not on Univel UnixWare or SCO ODT. There are some
- Xissues with shared library compatibility amongst the different SVR4.0
- Xvendors, so it is best to run xmcd on the same OS that it's compiled
- Xon.
- X
- XXmcd's current SunOS 4.x run-time support is limited to systems
- Xrunning the sun4c and sun4m kernels. To find out which kernel you
- Xhave, use the "arch -k" command.
- X
- XThe Motorola 88K support was contributed by Mark Scott.
- X
- XThe HP-UX and Solaris 2.x support is present in the xmcd source code,
- Xbut is untested as of this writing. You may need to make minor changes
- Xto the xmcd sources and compile to make things work on these systems.
- XA binary release is not currently available from the author for these
- Xplatforms. If you have success in bringing up xmcd on HP-UX and/or
- XSolaris 2.x, please send all source changes to the author so the
- Xmods can be integrated into a future xmcd release to be shared by all.
- X
- XSee the INSTALL file for information about the required X11 and Motif
- Xlibrary versions and configurations, and build/install instructions.
- X
- XFor Copyright information, read the COPYING file.
- X
- XThe modular design of xmcd is such that support for other UNIX
- Xenvironments can be easily added by implementing a new OS-interface
- Xlibrary module for xmcd. Moreover, support for other non SCSI-2
- Xcompliant CD-ROM drives can also be added via new vendor-unique
- Xlibrary modules. See the "PORTING" file for details if you are
- Xinterested in contributing to the development effort to make xmcd
- Xrun under more environments and support more CD-ROM drives.
- X
- X
- XGENERAL SOFTWARE NOTES
- X----------------------
- X
- XThis release of xmcd features the following:
- X
- X - Standard functions: Stop, Play, Pause, Next/Previous Track,
- X Next/Previous Index, Fast forward/rewind with audio sample,
- X Eject and On/off.
- X - Direct track access keypad.
- X - Volume control.
- X - Shuffle (random) play function.
- X - Repeat function.
- X - Sample function: Play a few seconds of each track.
- X - A->B function: Repeat from selectable point A and B.
- X - Eject inhibit function: To prevent someone from ejecting the
- X disc by pressing the button on the drive.
- X - Track Program function: Play tracks in custom order.
- X - CD database function: Allows you to store CD title/track titles
- X in database, and associate each disc with a play program.
- X Displays the current playing disc title/track information.
- X In addition, you can enter and display arbitrary text associated
- X with the disc or each track, such as band information, lyrics,
- X etc.
- X - Track/Index/Time display: Selectable to display elapsed time,
- X remaining track time, or remaining disc time.
- X - Status display: for current play status, A->B mode, program
- X mode, CD database.
- X - Main window button face labels can be configured to display
- X pictorial symbols, or text with hotkey mnemonics.
- X - The complete application can be operated via the keyboard with
- X full support for keyboard traversal and hotkeys.
- X - All labels and messages can be customized to non-English
- X languages via X resources in the .Xdefaults file.
- X - All colors and many other functionality are user-customizable
- X using X resource settings.
- X - On-line help information.
- X
- X
- XXmcd uses the Motif toolkit to achieve a pleasing appearance, such that
- Xit actually looks and feels like a real CD player for all basic
- Xfunctions, yet takes advantage of the GUI and window system to make
- Xprogramming and CD database functions easy.
- X
- XYour xmcd binary should only be run on the same OS platform group
- Xthat it was compiled on. For example, UNIX SVR4.0 binaries must
- Xnot be run on a UNIX SVR4.2 system. Likewise, a binary compiled
- Xon a SunOS 4.x platform cannot be used on a SunOS 5.x system.
- X
- XDo not use xmcd if the CD-ROM drive contains a mounted filesystem
- Xdata disc (ISO9660, High Sierra, Rockridge or other formats). Always
- Xuse the "df" or "mount" command to check if such a filesystem is mounted
- Xbefore invoking xmcd.
- X
- X
- XCD-ROM NOTES
- X------------
- X
- XThis release of xmcd will work with the following CD-ROM drives.
- XSee notes below for specific information:
- X
- X Apple CD-300 (+)
- X Compaq CDU-561
- X Compaq CR-503BCQ
- X Hitachi CDR-1650S (+)
- X Hitachi CDR-1750S
- X Hitachi CDR-3650 (+)
- X Hitachi CDR-3750 (+)
- X NEC CDR-72
- X NEC CDR-74
- X NEC CDR-77
- X NEC CDR-80
- X NEC CDR-82
- X NEC CDR-84
- X NEC CDR-38 (*)(+)
- X NEC CDR-74-1 (*)
- X NEC CDR-84-1 (*)
- X Pioneer DRM-600 (+)
- X Pioneer DRM-600A (+)
- X Pioneer DRM-610 (+)
- X Pioneer DRM-604X (*)(+)
- X Sony CDU-541
- X Sony CDU-561
- X Sony CDU-6211 (+)
- X Sony CDU-7211 (+)
- X Sony CDU-8003 (+)
- X Sony CDU-8012 (+)
- X Sun CD-ROM (+)
- X Texel DM-3024
- X Texel DM-5024
- X Texel DM-3028 (+)
- X Texel DM-5028 (+)
- X Toshiba XM-3101
- X Toshiba XM-3201
- X Toshiba XM-3301
- X Toshiba XM-3401
- X Toshiba XM-8100 (+)
- X Other SCSI-2 compliant CD-ROM drives (+)
- X
- XUnits denoted with a plus sign (+) are believed to work with xmcd, but
- Xhave not been extensively tested yet. If you have one of these drives
- XI would like to hear from you.
- X
- XUnits denoted with an asterisk (*) can be configured to operate in the
- XSCSI-1 or SCSI-2 mode (via jumpers or DIP switch). You must configure
- Xthe xmcd software accordingly (with the LIBDIR/xmcd/config/configure.sh
- Xprogram). Depending upon the specific model, you may find that xmcd
- Xsupports more features while operating in SCSI-2 mode. See the CD-ROM
- Xdrive owner's manual for details about setting the mode.
- X
- XThis release of xmcd supports operating only the first disc on the
- XPioneer multi-disc CD-ROM changers. Pioneer DRM-604X units with
- Xolder revisions of the firmware must be configured to operate in
- Xthe SCSI-1 mode (DRM-600A emulation, via back panel DIP switches),
- Xand xmcd must be configured as if it's operating a DRM-600A. Newer
- XDRM-604X units (and those that have their firmware upgraded) can be
- Xset up to run in SCSI-2 mode, and xmcd must be set up to operate
- Xa DRM-604X.
- X
- XTo avoid possible SCSI bus lock-up, never eject the disc using the
- Xeject button on the front panel of the Hitachi CD-ROM drives while
- Xthe unit is playing audio. Use xmcd's software eject button instead.
- XAlso, you may wish to adjust the XMcd.searchSkipBlocks and
- XXMcd.searchPauseInterval resources to achieve the best audio
- Xsampling effect during REW and FF search operations.
- X
- XThe Texel units implements only a subset of the SCSI-2 audio commands.
- XXmcd will work on these but with somewhat reduced functionality. Also,
- Xthe Texel drive firmware should be version 1.10 or later to avoid
- Xsystem lockups.
- X
- XNote that even if a CD-ROM drive is marketed as SCSI-2 compliant, it
- Xstill may not implement the full set of audio-related commands that
- Xxmcd requires.
- X
- XIf you have a CD-ROM drive not listed above, I would appreciate a note
- Xfrom you regarding whether it works with xmcd or not. If it works,
- Xplease send me your xmcd device-specific configuration file for this
- Xdrive (usually /usr/lib/X11/xmcd/config/NAME, where NAME is the name
- Xof the character device of the CD-ROM drive). I will then add your
- Xdrive to the supported list.
- X
- XSome CD-ROM drives do not function well when the SCSI host adapter
- Xboard is configured to "synchronous negotiation" mode. Examples
- Xof these include certain NEC and Hitachi units. If you experience
- Xmalfunctions with xmcd, check the host adapter board configuration
- Xand try disabling the synchronous mode. On the Adaptec AHA-1542B,
- Xthere is a single jumper that controls whether synchronous negotiation
- Xis enabled for all devices on the SCSI bus. On the AHA-1542C,
- Xsynchronous negotiation is configurable via the on-board setup program,
- Xand is settable on a per-ID basis. Please consult your SCSI host
- Xadapter board owner's manual for information.
- X
- X
- XACKNOWLEGEMENTS
- X---------------
- X
- XCompanies names and product names appearing in this file are each
- Xtrademarks of the respective company. The names are for identification
- Xpurposes only. Xmcd and its author are not affiliated with any of
- Xthese companies.
- X
- XI wish to express my appreciation for all the people who participated
- Xin the extensive xmcd beta test program, who have contributed a great
- Xdeal to the user-friendliness, robustness and device support of xmcd.
- X
- END_OF_FILE
- if test 9586 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'demo.cddb' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'demo.cddb'\"
- else
- echo shar: Extracting \"'demo.cddb'\" \(1289 characters\)
- sed "s/^X//" >'demo.cddb' <<'END_OF_FILE'
- X# xmcd 1.0 CD database file
- X# Copyright (C) 1993 Ti Kan
- X# @(#)demo.cddb 1.2 93/09/13
- X#
- X# Track frame offsets:
- X# 150
- X# 4500
- X# 9000
- X# 13500
- X# 18000
- X# 22500
- X# 27000
- X# 31500
- X# 36000
- X# 40500
- X#
- X# Disc length: 600 seconds
- X#
- XDISCID=4102560a
- XDTITLE=The XMCD Orchestra / Is It Live or Is It Mesmerize?
- XTTITLE0=Virtual Reality
- XTTITLE1=Woodgrain On Your Country Squire
- XTTITLE2=Here Comes The Imposter
- XTTITLE3=Let's Pretend
- XTTITLE4=Going Through The Song And Dance
- XTTITLE5=I Love Imitation Crab Meat
- XTTITLE6=The Cubic Zirconia Of The Nile
- XTTITLE7=Fake It Good
- XTTITLE8=The Parrot Sings
- XTTITLE9=Onomatopoeia
- XEXTD=1993 XMCD Version 1.0\n\nProduced by AMB Research Labs\n\nThis is th
- XEXTD=e internal "Test CD" of the CD-ROM Simulator,\nused in the demo-o
- XEXTD=nly version of Xmcd. There are 10\ntracks on this simulated disc
- XEXTD=, each track is 1 minute\nlong, and has 4 indices of 15 seconds e
- XEXTD=ach.
- XEXTT0=Background vocals by The Silent Screams
- XEXTT1=Courtesy of Formica Records
- XEXTT2=Is Elvis Really Alive?
- XEXTT3=... And Play Video Games Instead
- XEXTT4=And The Motions of Love...
- XEXTT5=Eat it! Courtesy of Weird Al Yankovich
- XEXTT6=Do You Know The Way To Fry's Electronics in\nCampbell, CA?
- XEXTT7=Courtesy of Devo
- XEXTT8=Mirror, Mirror, On The Wall...
- XEXTT9=Say What?
- XPLAYORDER=2,4,6,8,10,1,3,5,7,9
- END_OF_FILE
- if test 1289 -ne `wc -c <'demo.cddb'`; then
- echo shar: \"'demo.cddb'\" unpacked with wrong size!
- fi
- # end of 'demo.cddb'
- fi
- if test -f 'xmcd.man' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xmcd.man'\"
- else
- echo shar: Extracting \"'xmcd.man'\" \(13633 characters\)
- sed "s/^X//" >'xmcd.man' <<'END_OF_FILE'
- X.\"
- X.\" @(#)xmcd.man 1.5 93/11/05
- X.\"
- X.\" xmcd - Motif(tm) CD Audio Player
- X.\"
- X.\" Copyright (C) 1993 Ti Kan
- X.\" E-mail: ti@amb.org
- X.\"
- X.\" This program is free software; you can redistribute it and/or modify
- X.\" it under the terms of the GNU General Public License as published by
- X.\" the Free Software Foundation; either version 2 of the License, or
- X.\" (at your option) any later version.
- X.\"
- X.\" This program is distributed in the hope that it will be useful,
- X.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
- X.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X.\" GNU General Public License for more details.
- X.\"
- X.\" You should have received a copy of the GNU General Public License
- X.\" along with this program; if not, write to the Free Software
- X.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X.\"
- X.TH XMCD 1 "30 Oct 1993" "v1.0"
- X
- X.SH "NAME"
- Xxmcd \- CD digital audio player utility for X11/Motif
- X
- X.SH "SYNOPSIS"
- X.B xmcd
- X.nh
- X[\fItoolkitoption ...] [-\fIdev\fP device] [-\fIdbdir\fP path]
- X
- X.SH "DESCRIPTION"
- X.I Xmcd
- Xis a program that allows the use of the CD-ROM drive as
- Xa full-featured stereo compact-disc player for the X window system.
- X.PP
- XMost of the features found on real CD players are available in
- X.I xmcd,
- Xsuch as shuffle and repeat, track programming functions, and
- Xa numeric keypad for direct track access. Additional functions
- Xinclude sample play, A to B segment play, volume control, etc.
- X.PP
- XA built-in CD database feature allows the CD artist/title and
- Xtrack titles, and other associated general purpose text to be
- Xmaintained and loaded as the program is started or when a
- XCD is inserted.
- X.PP
- XFull feature-specific pop-up help is available for
- Xall controls, indicators, text input fields, and lists.
- X.PP
- XOn systems with more than one CD-ROM drive, multiple invokations of
- X.I xmcd
- Xcan be used to operate each drive independently.
- X.PP
- X.I Xmcd
- Xis designed to be easy to use, as the main window is
- Xpurposely made to resemble a real CD player front panel.
- XAll other pop-up windows are also designed to be as
- Xintuitive as possible. Moreover, while the use of a mouse
- Xis natural with
- X.I xmcd,
- Xall functionality can also be operated via the keyboard.
- XThis is in conformance to the guidelines published in the
- X.I OSF/Motif Style Guide
- Xfrom the Open Software Foundation.
- X.PP
- XThe internal architecture of
- X.I xmcd
- Xis designed from the start to be easily portable to
- Xmany operating system platforms, and adaptible to the myriad of
- XCD-ROM drives available.
- X
- X.SH "OPTIONS"
- XAll standard \fIXt Intrinsics\fR toolkit options are supported.
- XIn addition,
- X.I xmcd
- Xsupports the following options:
- X.TP
- X.I \-dev\ device
- XSpecifies the path name to the raw CD-ROM device. If this option is
- Xnot used, the default device to be used is the first
- Xdrive set up with the
- X.I xmcd
- Xconfiguration program (See below).
- X.TP
- X.I \-dbdir\ list
- XSpecifies a colon-separated list of category directories where
- Xthe CD database files are to be kept. See the description for
- X\fBXMCD_DBPATH\fR in the ENVIRONMENT section below.
- X
- X.SH "X RESOURCES"
- X.I Xmcd
- Xhas many adjustable X resources to customize its look and feel, as well
- Xas its behavior. Notably, the colors of virtually every feature on
- X\fIxmcd\fP's windows can be changed, as well as the text fonts. All
- Xtext labels can also be changed (for example, to another language).
- X.PP
- XThere are too many resources to list here, but the resource names
- Xand their defaults (plus descriptive comments) can be found in the
- X\fBLIBDIR\fI/app-defaults/XMcd\fR
- Xfile (where LIBDIR is typically \fI/usr/lib/X11\fP).
- XIt is not recommended
- Xthat you change values in the \fBLIBDIR\fI/app-defaults/XMcd\fR file,
- Xunless you want the changes to be forced upon all users of
- X.I xmcd
- Xon the system. Instead, make a copy of this file, change the copy as you
- Xsee fit, then place it in your home directory. Your custom resource
- Xsettings will then override the defaults when
- X.I xmcd
- Xis subsequently started. Alternatively, you may also place specific
- Xresources you wish to override in the
- X.I .Xdefaults
- Xfile in your home directory.
- X
- X.SH "DEVICE CONFIGURATION"
- XThe X resources described in the previous section affect the
- Xgeneral appearance and behavior of
- X.I xmcd.
- XThere are additional configurable parameters that must vary on a
- Xper-drive basis. For example, in some cases
- X.I xmcd
- Xmust operate the drive differently depending upon the brand
- Xand model of the drive. Thus, there must be a separate
- Xconfiguration file for these parameters \fIper-device\fP.
- XThe default file is \fBXMCDLIB\fI/config/\fBDEVICE\fR
- X(where XMCDLIB is typically \fI/usr/lib/X11/xmcd\fP and DEVICE is
- Xthe base name of the raw device special file for the CD-ROM drive
- X; e.g., \fI/usr/lib/X11/xmcd/config/rcd0\fP).
- XA configuration program \fBXMCDLIB\fI/config/configure.sh\fR
- Xis provided to make maintaining the device-specific configuration
- Xfile easy (Note: on SCO systems the configuration program can
- Xalso be invoked as "\fImkdev xmcd\fP").
- X.PP
- XYou should always use the configuration program to set the
- Xdevice-specific parameters when installing
- X.I xmcd
- Xfor the first time, or when the CD-ROM hardware configuration has
- Xchanged. If this is not done then
- X.I xmcd
- Xwill probably not operate correctly with your CD-ROM drive.
- X.PP
- X.B WARNING:
- XIf
- X.I xmcd
- Xis not correctly configured, you may cause
- X.I xmcd
- Xto deliver commands that are not supported by your CD-ROM drive.
- XUnder some environments this may lead to system hang or crash.
- X.PP
- XYou can override some of the device-specific configuration parameters
- Xby adding your own configuration files.
- X.I Xmcd
- Xwill also look in \fBHOME\fI/.xmcdcfg/\fBDEVICE\fR file for
- Xdevice-specific parameters (where HOME is your home directory
- Xand DEVICE is as specified above). Parameters found in this file
- Xwill override the system defaults (except those parameters that
- Xcannot be overidden; see the comments in the
- X\fBXMCDLIB\fI/config/dev.config\fR for details).
- X
- X.SH "USING XMCD"
- XThe basic functions of
- X.I xmcd
- Xare designed to operate the same way as on a real stereo CD player.
- XThe pictorial symbols used on the main window buttons are intended
- Xto illustrate the function in a non-language-specific manner. You
- Xcan also change all main window buttons to display a text label
- Xinstead of the pictorial symbols, but clicking the \fBdisplay\fP
- Xcheck-box button (the "A" symbol enclosed in a box) located at the
- Xupper left hand corner of the main window.
- X.PP
- XThe CD database and track programming functions are operated
- Xvia the CD Database/Track Program Editor pop-up subwindow.
- XYou activate the subwindow by pressing the \fBcddb/prog\fP button
- X(file cabinet symbol) on the main window (See "CD DATABASE" below).
- X.PP
- XThere will not be a per-item description of all the features,
- Xbecause full on-line help is available (See "ONLINE HELP" below).
- X
- X.SH "ONLINE HELP"
- XFor general information about
- X.I xmcd,
- Xclick the \fBhelp\fP (question mark symbol) button on the
- X.I xmcd
- Xmain window. You can also get specific help information
- Xabout each button, control, indicator, text entry area,
- Xselection list by positioning the mouse cursor over the
- Xdesired item, then clicking the third mouse button.
- XA pop-up window will appear, containing the relevant
- Xhelp text.
- X
- X.SH "TRACK PROGRAMMING"
- XYou can program
- X.I xmcd
- Xto play only certain tracks, in a custom sequence.
- XTo do so, invoke the CD Database window (by pressing the
- X.B cddb/prog
- Xbutton on the main window). Select the desired track by clicking on
- Xthe entry in the
- X.B Track list,
- Xand click the
- X.B Add
- Xbutton to add to the play sequence. Notice that the track number
- Xappears in the
- X.B Play sequence
- Xtext field. You can also type the track numbers, separated with
- Xcommas, directly in the
- X.B Play sequence
- Xfield. Repeat until all desired tracks have been entered,
- Xthen press the Track Program
- X.B Play
- Xbutton in the CD Database window (not the
- X.B Play/Pause
- Xbutton on the main window) to start the program play.
- X.PP
- XDuring program play, the
- X.B prog
- Xindicator in the main window display area "illuminates".
- X
- X.SH "CD DATABASE"
- XThe CD Database feature of
- X.I xmcd
- Xallows you to enter the CD artist/title, track titles, other
- Xfree-form text (such as band information, lyrics, etc.) associated
- Xwith the disc and tracks, and a track play program. After this
- Xinformation is typed in and saved to a database file, it will
- Xautomatically appear on the
- X.I xmcd
- XCD Database window when the same CD is inserted again.
- X.PP
- XYou must perform a "save" operation (press the
- X.B Save
- Xbutton) after typing in the database information before ejecting
- Xthe CD or exiting, or the information will be lost. If this is
- Xthe first time this CD database entry is being stored, you will
- Xbe asked to select a category (rock, classical, jazz, etc.) under
- Xwhich to classify the CD. The category is used by
- X.I xmcd
- Xto determine the actual directory in the filesystem to write
- Xthe database file.
- X.PP
- XOnce the database information has been saved, the
- X.B cddb
- Xindicator on the
- X.I xmcd
- Xmain window display area "illuminates".
- X.PP
- XYou must type the CD information into the database because the
- XCD's table of contents (TOC) contains only the number of tracks and
- Xthe starting address of each track, but not the actual disc
- Xand track titles.
- X.PP
- XThe CD database window should prove to be intuitive to use.
- XYou may use the on-line help system to obtain specific help
- Xinformation about the various buttons and items.
- X.PP
- XThe CD database information is stored in text files, one per CD,
- Xin a designated directory (category). The path of this
- Xdirectory is \fBXMCDLIB\fI/cddb/\fBCATEGORY\fR, where XMCDLIB
- Xis the directory specified by the XMcd.libdir resource, and
- XCATEGORY is the category name selected when
- X.B Save
- Xis performed. The list of categories used is specified by the
- XXMcd.dbdir resource. In addition, if the XMcd.dbdir resource
- Xcontains full directory path names, then these will be used
- Xwithout prefixing the \fBXMCDLIB\fI/cddb\fR.
- X.PP
- XYou may view the list of directories that
- X.I xmcd
- Xwill search for CD database files by pressing the
- X.B About...
- Xbutton and viewing the pop-up information window.
- X.PP
- XThe file name of each CD database entry is a hexadecimal representation
- Xof a special "magic" number computed by
- X.I xmcd
- Xbased on the number of tracks, track timings, and other available
- Xinformation about this CD. This method is used because there is
- Xno reliable unique CD identifier to be found on the CD
- Xitself (the CD standard allows for a readable IPC/barcode but
- Xvery few CDs actually contain such information).
- X.PP
- XSince different pressings of the same CD may sometimes contain slightly
- Xdifferent track timings, the resultant magic number computed by
- X.I xmcd
- Xon these CDs will be different. Thus, if you load a CD that is not
- Xthe same one that a CD database entry was created with (but is
- Xactually the same CD title),
- X.I xmcd
- Xmay not recognize it and display the database information
- Xautomatically when you insert the CD. In this event, you can
- Xsearch the CD database and find the appropriate entry, and establish
- Xa "link" to it. To do so, press the
- X.B Link
- Xbutton, and select the appropriate category on the popup window.
- X.I Xmcd
- Xwill then present another pop-up window containing a list of all
- XCD database entries in the specified category (that has the same
- Xnumber of tracks as the currently inserted disc). Select the
- Xappropriate entry and a link will be made in the CD database.
- X.PP
- XThe
- X.B Link
- Xfeature alleviates the need to type in CD database information again
- Xand avoids duplicate CD database entries.
- X.PP
- XIn very rare occasions it is possible that the magic number of a CD
- Xconflicts with that of another. This is a problem that will be addressed
- Xin a future release of
- X.I xmcd.
- X
- X.SH "ENVIRONMENT"
- XSeveral environment variables are currently recognized by
- X.I xmcd,
- Xand are described as follows:
- X.IP \fBXMCD_LIBDIR\fR
- XThis is used to override the XMcd.libdir resource. This parameter
- Xis the directory path under which
- X.I xmcd's
- Xconfiguration files, help files, and CD database files are located.
- XThe default value of XMCD_LIBDIR on most systems
- Xis \fI/usr/lib/X11/xmcd\fR.
- X.IP \fBXMCD_DBPATH\fR
- XThis is used to override the XMcd.dbdir resource, which is a
- Xlist of CD database category directories to be used under
- X\fBXMCDLIB\fI/cddb\fR (where XMCDLIB is the directory root
- Xspecified by the XMcd.libdir resource or the XMCD_LIBDIR
- Xenvironment variable). You may also use
- Xthe \fB-dbdir\fR command line option, which has the highest
- Xprecedence. An example of a XMCD_DBPATH string is as follows
- X(note the colon separators):
- X.sp
- X.in +4
- X\fBrock:classical:jazz:newage:soundtrack:misc\fR
- X.in -4
- X.sp
- XThis string will cause
- X.I xmcd
- Xto search the following directories for CD database files:
- X.sp
- X.in +4
- X\fBXMCDLIB\fI/cddb/rock\fR
- X.br
- X\fBXMCDLIB\fI/cddb/classical\fR
- X.br
- X\fBXMCDLIB\fI/cddb/jazz\fR
- X.br
- Xetc.
- X.in -4
- X.sp
- XYou may also specify absolute path names in the XMCD_DBPATH
- Xentries. Example:
- X.sp
- X.in +4
- X\fBrock:classical:/usr/john/industrial:/usr/john/techno\fR
- X.in -4
- X.IP \fBHOME\fR
- XThis is used to determine your home directory. If HOME is not
- Xdefined, then
- X.I xmcd
- Xtries to obtain it from the \fI/etc/passwd\fR file. The home
- Xdirectory path is used by
- X.I xmcd
- Xto locate the \fI.xmcdcfg\fR directory.
- X
- X.SH "FILES"
- X$HOME/.xmcdcfg/\(**
- X.br
- XXMCDLIB/cddb/\(**
- X.br
- XXMCDLIB/config/configure.sh
- X.br
- XXMCDLIB/config/dev.config
- X.br
- XXMCDLIB/config/\(**
- X.br
- XXMCDLIB/help/\(**
- X.br
- XLIBDIR/app-defaults/XMcd
- X.br
- XBINDIR/xmcd
- X.br
- XMANDIR/xmcd.1
- X
- X.SH "SEE ALSO"
- XX(1).
- X
- X.SH "AUTHOR"
- XTi Kan (\fIti@amb.org\fR)
- X.br
- XAMB Research Laboratories, Sunnyvale, CA, U.S.A.
- X.PP
- XComments, suggestions, and bug reports are always welcome.
- END_OF_FILE
- if test 13633 -ne `wc -c <'xmcd.man'`; then
- echo shar: \"'xmcd.man'\" unpacked with wrong size!
- fi
- # end of 'xmcd.man'
- fi
- echo shar: End of archive 1 \(of 13\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 13 archives.
- echo "Now read the README and INSTALL files for further instructions."
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
- --
- /// Ti Kan vorsprung durch technik
- /// AMB Research Laboratories, Sunnyvale, CA. USA
- /// ti@amb.org
- ////// ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
- /// ...!uunet!bazooka!ti
-
-
-
- exit 0 # Just in case...
- --
- // chris@Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga: The only way to fly! | sources-x@sterling.com
- "It's intuitively obvious to the most casual observer..."
- GCS d++(--) -p+ c++ !l u++ e+ m+(-) s++/++ n h--- f+ g+++ w+ t++ r+ y+
-