home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume21 / xmcd / part01 < prev    next >
Encoding:
Text File  |  1993-12-19  |  75.1 KB  |  1,994 lines

  1. Newsgroups: comp.sources.x
  2. From: ti@bazooka.amb.org (Ti Kan)
  3. Subject: v21i063:  xmcd - X11/Motif CD audio player, Part01/13
  4. Message-ID: <csx-v21i063=xmcd.133730@sparky.Sterling.COM>
  5. X-Md4-Signature: 861e4f642f85068092c7e95ca846a99e
  6. Sender: chris@sparky.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Sun, 19 Dec 1993 19:37:43 GMT
  9. Approved: chris@sterling.com
  10.  
  11. Submitted-by: ti@bazooka.amb.org (Ti Kan)
  12. Posting-number: Volume 21, Issue 63
  13. Archive-name: xmcd/part01
  14. Environment: X11, OSF/Motif
  15.  
  16.  
  17.  
  18. This is xmcd version 1.0, a X11/Motif Compact Disc Digital Audio Player
  19. utility for your CD-ROM drive.  This software represents many months
  20. of development and fine-tuning, as well as a beta test program involving
  21. some 60+ dedicated individuals around the world.
  22.  
  23. The source code of this version of xmcd supports the following operating
  24. systems environments:
  25.  
  26.     1. UNIX System V Release 3.2 (on Intel x86)
  27.        - SCO Open Desktop Version 2.x (X11R4 or X11R5 server)
  28.        - SCO Open Desktop Version 3.x
  29.        - SCO UNIX 3.2v4.x with XFree86 + Motif 1.2
  30.  
  31.     2. UNIX System V Release 4.0 (on Intel x86)
  32.        (Note: 4.0.3 or later recommended)
  33.        - AT&T
  34.        - Consensys
  35.        - Dell
  36.        - ESIX
  37.        - ISC
  38.        - Microport
  39.        - Micro Station Technology
  40.        - UHC
  41.        - USL
  42.  
  43.     3. UNIX System V Release 4.2 (on Intel x86)
  44.        - Consensys
  45.        - Information Foundation
  46.        - Onsite
  47.        - Univel/Novell UnixWare
  48.        - USL
  49.  
  50.     4. UNIX System V Release 4.2MP (on Intel x86)
  51.        - USL (ES/MP TLP4/EA5 or later)
  52.  
  53.     5. UNIX System V Release 4.0 (on Motorola 88k)
  54.        - Motorola
  55.  
  56.     6. HP-UX (on HP Series 700)
  57.        - HP-UX Release 9.0 (see README file)
  58.  
  59.     7. SunOS (on Sun Sparc)
  60.        - SunOS 4.x / Solaris 1.x
  61.  
  62.     8. SunOS (on Sun Sparc)
  63.        - SunOS 5.x / Solaris 2.x (see README file)
  64.  
  65.     9. SunOS (on Intel x86)
  66.        - SunOS 5.x / Solaris 2.x (see README file)
  67.  
  68.  
  69. This release of xmcd features the following:
  70.  
  71.     - Standard functions: Stop, Play, Pause, Next/Previous Track,
  72.       Next/Previous Index, Fast forward/rewind with audio sample,
  73.       Eject and On/off.
  74.     - Direct track access keypad.
  75.     - Volume control.
  76.     - Shuffle (random) play function.
  77.     - Repeat function.
  78.     - Sample function: Play a few seconds of each track.
  79.     - A->B function: Repeat from selectable point A and B.
  80.     - Eject inhibit function: To prevent someone from ejecting the
  81.       disc by pressing the button on the drive.
  82.     - Track Program function: Play tracks in custom order.
  83.     - CD database function: Allows you to store CD title/track titles
  84.       in database, and associate each disc with a play program.
  85.       Displays the current playing disc title/track information.
  86.       In addition, you can enter and display arbitrary text associated
  87.       with the disc or each track, such as band information, lyrics,
  88.       etc.
  89.     - Track/Index/Time display: Selectable to display elapsed time,
  90.       remaining track time, or remaining disc time.
  91.     - Status display: for current play status, A->B mode, program
  92.       mode, CD database.
  93.     - Main window button face labels can be configured to display
  94.       pictorial symbols, or text with hotkey mnemonics.
  95.     - The complete application can be operated via the keyboard with
  96.       full support for keyboard traversal and hotkeys.
  97.     - All labels and messages can be customized to non-English
  98.       languages via X resources in the .Xdefaults file.
  99.     - All colors and many other functionality are user-customizable
  100.       using X resource settings.
  101.     - On-line help information.
  102.  
  103.  
  104. This release of xmcd will work with the following CD-ROM drives.
  105. See notes below for specific information:
  106.  
  107.     Apple CD-300
  108.     Compaq CDU-561
  109.     Compaq CR-503BCQ
  110.     Hitachi CDR-1650S
  111.     Hitachi CDR-1750S
  112.     Hitachi CDR-3650
  113.     Hitachi CDR-3750
  114.     NEC CDR-72
  115.     NEC CDR-74
  116.     NEC CDR-77
  117.     NEC CDR-80
  118.     NEC CDR-82
  119.     NEC CDR-84
  120.     NEC CDR-38
  121.     NEC CDR-74-1
  122.     NEC CDR-84-1
  123.     Pioneer DRM-600
  124.     Pioneer DRM-600A
  125.     Pioneer DRM-610
  126.     Pioneer DRM-604X
  127.     Sony CDU-541
  128.     Sony CDU-561
  129.     Sony CDU-6211
  130.     Sony CDU-7211
  131.     Sony CDU-8003
  132.     Sony CDU-8012
  133.     Sun CD-ROM
  134.     Texel DM-3024
  135.     Texel DM-5024
  136.     Texel DM-3028
  137.     Texel DM-5028
  138.     Toshiba XM-3101
  139.     Toshiba XM-3201
  140.     Toshiba XM-3301
  141.     Toshiba XM-3401
  142.     Toshiba XM-8100
  143.     Other SCSI-2 compliant CD-ROM drives
  144.  
  145. Please read the README and INSTALL files in the package for specific
  146. information.
  147.  
  148. -- 
  149.     ///  Ti Kan                vorsprung durch technik
  150.    ///   AMB Research Laboratories, Sunnyvale, CA. USA
  151.   ///    ti@amb.org
  152.  //////  ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
  153. ///      ...!uunet!bazooka!ti
  154.  
  155.  
  156.  
  157. #! /bin/sh
  158. # This is a shell archive.  Remove anything before this line, then unpack
  159. # it by saving it into a file and typing "sh file".  To overwrite existing
  160. # files, type "sh file -c".  You can also feed this as standard input via
  161. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  162. # will see the following message at the end:
  163. #        "End of archive 1 (of 13)."
  164. # Contents:  Imakefile BUGS COPYING INSTALL PORTING README demo.cddb
  165. #   xmcd.man
  166. # Wrapped by ti@bazooka on Mon Nov  8 10:35:16 1993
  167. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  168. if test -f 'Imakefile' -a "${1}" != "-c" ; then 
  169.   echo shar: Will not clobber existing file \"'Imakefile'\"
  170. else
  171. echo shar: Extracting \"'Imakefile'\" \(3910 characters\)
  172. sed "s/^X//" >'Imakefile' <<'END_OF_FILE'
  173. X/*
  174. X * @(#)Imakefile    1.52 93/09/30
  175. X *
  176. X * Imakefile for xmcd
  177. X *
  178. X *   xmcd - Motif(tm) CD Audio Player
  179. X *
  180. X *   Copyright (C) 1993  Ti Kan
  181. X *   E-mail: ti@amb.org
  182. X *
  183. X *   This program is free software; you can redistribute it and/or modify
  184. X *   it under the terms of the GNU General Public License as published by
  185. X *   the Free Software Foundation; either version 2 of the License, or
  186. X *   (at your option) any later version.
  187. X *
  188. X *   This program is distributed in the hope that it will be useful,
  189. X *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  190. X *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  191. X *   GNU General Public License for more details.
  192. X *
  193. X *   You should have received a copy of the GNU General Public License
  194. X *   along with this program; if not, write to the Free Software
  195. X *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  196. X *
  197. X */
  198. X
  199. X
  200. X/*
  201. X * If your local X configuration is broken, you may need to muck with
  202. X * the following RANLIB= lines.
  203. X * On most System V platforms RANLIB should be set to /bin/true.
  204. X * On BSD-derived systems RANLIB should be set to ranlib.
  205. X */
  206. X#if defined(DoRanlibCmd) && (DoRanlibCmd == NO)
  207. XRANLIB= /bin/true
  208. X#endif
  209. X
  210. X
  211. X/*
  212. X * If your local X configuration supports Motif correctly, the
  213. X * following LOCAL_LIBRARIES= declaration should work just fine.
  214. X * If it fails, try uncommenting the #include lines below.  If that
  215. X * still fails, then substitute the LOCAL_LIBRARIES= line with
  216. X * one of the these:
  217. X *
  218. X * LOCAL_LIBRARIES= $(XMLIB) $(XTOOLLIB) $(XLIB)
  219. X *
  220. X * or,
  221. X *
  222. X * LOCAL_LIBRARIES= -lXm -lXt -lXext -lX11
  223. X *
  224. X */
  225. X
  226. X/*
  227. X * #include "Motif.tmpl"
  228. X * #include "Motif.rules"
  229. X */
  230. XLOCAL_LIBRARIES= XmClientLibs
  231. X
  232. X
  233. X/*
  234. X * Optional defines:  Change as you see fit.
  235. X *
  236. X * -DBSDCOMPAT        (Compiling under BSD-derived or BSD-like OS)
  237. X * -DNO_STDLIB_H    (The system does not support <stdlib.h>)
  238. X * -DUSE_SYMLINK    (Use symbolic links instead of hard links)
  239. X * -DDEMO_ONLY        (Build a simulated, demo-only version of xmcd)
  240. X * -DHITACHI        (Include Hitachi vendor-unique command support)
  241. X * -DNEC        (Include NEC vendor-unique command support)
  242. X * -DPIONEER        (Include Pioneer vendor-unique command support)
  243. X * -DTOSHIBA        (Include Toshiba vendor-unique command support)
  244. X *
  245. X */
  246. X#if defined(SYSTYPE_BSD43) || defined(BSD43) || defined(BSD) || \
  247. X    defined(OsfArchitecture) || \
  248. X    (defined(SunArchitecture) && OSMajorVersion == 4)
  249. XDEFINES= -DBSDCOMPAT -DHITACHI -DNEC -DPIONEER -DTOSHIBA
  250. X#else
  251. XDEFINES= -DHITACHI -DNEC -DPIONEER -DTOSHIBA
  252. X#endif
  253. X
  254. X
  255. X/*
  256. X * Target directory definitions
  257. X *
  258. X * Uncomment BINDIR and LIBDIR and modify if you want to use non-default
  259. X * values.
  260. X */
  261. X
  262. X/*
  263. X * BINDIR=   /usr/bin/X11
  264. X * LIBDIR=   /usr/lib/X11
  265. X */
  266. X
  267. X
  268. X/*
  269. X * Redefine InstallProgram because we want to use our own install script
  270. X */
  271. X#ifdef InstallProgram
  272. X#undef InstallProgram
  273. X#define InstallProgram(program, dest)                    @@\
  274. Xinstall:: program                            @@\
  275. X    @BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) MANFILE=ManDir/program.ManSuffix \
  276. X        /bin/sh ./install.sh -n
  277. X#endif
  278. X
  279. X
  280. X/*
  281. X * C Source files
  282. X */
  283. XSRCS=    cdfunc.c \
  284. X    dbprog.c \
  285. X    geometry.c \
  286. X    help.c \
  287. X    hotkey.c \
  288. X    lib_scsipt.c \
  289. X    lib_sim.c \
  290. X    lib_hita.c \
  291. X    lib_nec.c \
  292. X    lib_pion.c \
  293. X    lib_tosh.c \
  294. X    lib_demo.c \
  295. X    lib_hpux.c \
  296. X    lib_odt.c \
  297. X    lib_sun.c \
  298. X    lib_svr4.c \
  299. X    main.c \
  300. X    util.c \
  301. X    widget.c
  302. X
  303. X/*
  304. X * Main module objects
  305. X */
  306. XOBJS=    cdfunc.o \
  307. X    dbprog.o \
  308. X    geometry.o \
  309. X    help.o \
  310. X    hotkey.o \
  311. X    main.o \
  312. X    util.o \
  313. X    widget.o \
  314. X    cdlib.a
  315. X
  316. X/*
  317. X * DIS module objects
  318. X */
  319. XLOBJS=    lib_scsipt.o \
  320. X    lib_sim.o \
  321. X    lib_hita.o \
  322. X    lib_nec.o \
  323. X    lib_pion.o \
  324. X    lib_tosh.o \
  325. X    lib_demo.o \
  326. X    lib_hpux.o \
  327. X    lib_odt.o \
  328. X    lib_sun.o \
  329. X    lib_svr4.o
  330. X
  331. X
  332. X/*
  333. X * Build rules for the main module
  334. X */
  335. XComplexProgramTarget(xmcd)
  336. X
  337. X
  338. X/*
  339. X * Build rules for the DIS module library
  340. X */
  341. Xcdlib.a:    $(LOBJS)
  342. X    rm -f cdlib.a; $(AR) cdlib.a $(LOBJS)
  343. X    $(RANLIB) cdlib.a
  344. X
  345. X$(LOBJS):
  346. X    $(CC) $(CFLAGS) -c $*.c
  347. X
  348. X
  349. X/*
  350. X * Source subdirectory management
  351. X */
  352. X#define IHaveSubdirs
  353. XSUBDIRS=bitmaps helpfiles
  354. X
  355. X
  356. END_OF_FILE
  357. if test 3910 -ne `wc -c <'Imakefile'`; then
  358.     echo shar: \"'Imakefile'\" unpacked with wrong size!
  359. fi
  360. # end of 'Imakefile'
  361. fi
  362. if test -f 'BUGS' -a "${1}" != "-c" ; then 
  363.   echo shar: Will not clobber existing file \"'BUGS'\"
  364. else
  365. echo shar: Extracting \"'BUGS'\" \(1048 characters\)
  366. sed "s/^X//" >'BUGS' <<'END_OF_FILE'
  367. X#
  368. X# @(#)BUGS    1.4 93/07/17
  369. X#
  370. XXmcd (Motif(tm) CD Audio Player) by Ti Kan
  371. X------------------------------------------
  372. X
  373. XKnown bugs/limitations
  374. X----------------------
  375. X
  376. X1. Description:
  377. X   Clicking the mouse button #3 on the volume control slider thumb
  378. X   will not bring up the help window.  One must click on the numeric
  379. X   label area instead.
  380. X
  381. X   Severity/Analysis:
  382. X   Low severity.  This is a limitation of the Motif scale widget.
  383. X
  384. X   Solution/Workaround:
  385. X   Use the numeric label area to bring up the help window for the volume
  386. X   control.
  387. X
  388. X2. Description:
  389. X   When clicking mouse button #3 on the volume control numeric label
  390. X   area, sometimes the help window does not appear.
  391. X
  392. X   Severity/Analysis:
  393. X   Low severity.  The problem occurs when the current keyboard input
  394. X   focus is on the volume control slider.  This is a limitation of
  395. X   the Motif scale widget.
  396. X
  397. X   Solution/Workaround:
  398. X   Set the keyboard input focus on some other widget first (such as by
  399. X   operating another control or button) before invoking the volume
  400. X   control help window.
  401. X
  402. END_OF_FILE
  403. if test 1048 -ne `wc -c <'BUGS'`; then
  404.     echo shar: \"'BUGS'\" unpacked with wrong size!
  405. fi
  406. # end of 'BUGS'
  407. fi
  408. if test -f 'COPYING' -a "${1}" != "-c" ; then 
  409.   echo shar: Will not clobber existing file \"'COPYING'\"
  410. else
  411. echo shar: Extracting \"'COPYING'\" \(17982 characters\)
  412. sed "s/^X//" >'COPYING' <<'END_OF_FILE'
  413. X            GNU GENERAL PUBLIC LICENSE
  414. X               Version 2, June 1991
  415. X
  416. X Copyright (C) 1989, 1991 Free Software Foundation, Inc.
  417. X                          675 Mass Ave, Cambridge, MA 02139, USA
  418. X Everyone is permitted to copy and distribute verbatim copies
  419. X of this license document, but changing it is not allowed.
  420. X
  421. X                Preamble
  422. X
  423. X  The licenses for most software are designed to take away your
  424. Xfreedom to share and change it.  By contrast, the GNU General Public
  425. XLicense is intended to guarantee your freedom to share and change free
  426. Xsoftware--to make sure the software is free for all its users.  This
  427. XGeneral Public License applies to most of the Free Software
  428. XFoundation's software and to any other program whose authors commit to
  429. Xusing it.  (Some other Free Software Foundation software is covered by
  430. Xthe GNU Library General Public License instead.)  You can apply it to
  431. Xyour programs, too.
  432. X
  433. X  When we speak of free software, we are referring to freedom, not
  434. Xprice.  Our General Public Licenses are designed to make sure that you
  435. Xhave the freedom to distribute copies of free software (and charge for
  436. Xthis service if you wish), that you receive source code or can get it
  437. Xif you want it, that you can change the software or use pieces of it
  438. Xin new free programs; and that you know you can do these things.
  439. X
  440. X  To protect your rights, we need to make restrictions that forbid
  441. Xanyone to deny you these rights or to ask you to surrender the rights.
  442. XThese restrictions translate to certain responsibilities for you if you
  443. Xdistribute copies of the software, or if you modify it.
  444. X
  445. X  For example, if you distribute copies of such a program, whether
  446. Xgratis or for a fee, you must give the recipients all the rights that
  447. Xyou have.  You must make sure that they, too, receive or can get the
  448. Xsource code.  And you must show them these terms so they know their
  449. Xrights.
  450. X
  451. X  We protect your rights with two steps: (1) copyright the software, and
  452. X(2) offer you this license which gives you legal permission to copy,
  453. Xdistribute and/or modify the software.
  454. X
  455. X  Also, for each author's protection and ours, we want to make certain
  456. Xthat everyone understands that there is no warranty for this free
  457. Xsoftware.  If the software is modified by someone else and passed on, we
  458. Xwant its recipients to know that what they have is not the original, so
  459. Xthat any problems introduced by others will not reflect on the original
  460. Xauthors' reputations.
  461. X
  462. X  Finally, any free program is threatened constantly by software
  463. Xpatents.  We wish to avoid the danger that redistributors of a free
  464. Xprogram will individually obtain patent licenses, in effect making the
  465. Xprogram proprietary.  To prevent this, we have made it clear that any
  466. Xpatent must be licensed for everyone's free use or not licensed at all.
  467. X
  468. X  The precise terms and conditions for copying, distribution and
  469. Xmodification follow.
  470. X
  471. X            GNU GENERAL PUBLIC LICENSE
  472. X   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
  473. X
  474. X  0. This License applies to any program or other work which contains
  475. Xa notice placed by the copyright holder saying it may be distributed
  476. Xunder the terms of this General Public License.  The "Program", below,
  477. Xrefers to any such program or work, and a "work based on the Program"
  478. Xmeans either the Program or any derivative work under copyright law:
  479. Xthat is to say, a work containing the Program or a portion of it,
  480. Xeither verbatim or with modifications and/or translated into another
  481. Xlanguage.  (Hereinafter, translation is included without limitation in
  482. Xthe term "modification".)  Each licensee is addressed as "you".
  483. X
  484. XActivities other than copying, distribution and modification are not
  485. Xcovered by this License; they are outside its scope.  The act of
  486. Xrunning the Program is not restricted, and the output from the Program
  487. Xis covered only if its contents constitute a work based on the
  488. XProgram (independent of having been made by running the Program).
  489. XWhether that is true depends on what the Program does.
  490. X
  491. X  1. You may copy and distribute verbatim copies of the Program's
  492. Xsource code as you receive it, in any medium, provided that you
  493. Xconspicuously and appropriately publish on each copy an appropriate
  494. Xcopyright notice and disclaimer of warranty; keep intact all the
  495. Xnotices that refer to this License and to the absence of any warranty;
  496. Xand give any other recipients of the Program a copy of this License
  497. Xalong with the Program.
  498. X
  499. XYou may charge a fee for the physical act of transferring a copy, and
  500. Xyou may at your option offer warranty protection in exchange for a fee.
  501. X
  502. X  2. You may modify your copy or copies of the Program or any portion
  503. Xof it, thus forming a work based on the Program, and copy and
  504. Xdistribute such modifications or work under the terms of Section 1
  505. Xabove, provided that you also meet all of these conditions:
  506. X
  507. X    a) You must cause the modified files to carry prominent notices
  508. X    stating that you changed the files and the date of any change.
  509. X
  510. X    b) You must cause any work that you distribute or publish, that in
  511. X    whole or in part contains or is derived from the Program or any
  512. X    part thereof, to be licensed as a whole at no charge to all third
  513. X    parties under the terms of this License.
  514. X
  515. X    c) If the modified program normally reads commands interactively
  516. X    when run, you must cause it, when started running for such
  517. X    interactive use in the most ordinary way, to print or display an
  518. X    announcement including an appropriate copyright notice and a
  519. X    notice that there is no warranty (or else, saying that you provide
  520. X    a warranty) and that users may redistribute the program under
  521. X    these conditions, and telling the user how to view a copy of this
  522. X    License.  (Exception: if the Program itself is interactive but
  523. X    does not normally print such an announcement, your work based on
  524. X    the Program is not required to print an announcement.)
  525. X
  526. XThese requirements apply to the modified work as a whole.  If
  527. Xidentifiable sections of that work are not derived from the Program,
  528. Xand can be reasonably considered independent and separate works in
  529. Xthemselves, then this License, and its terms, do not apply to those
  530. Xsections when you distribute them as separate works.  But when you
  531. Xdistribute the same sections as part of a whole which is a work based
  532. Xon the Program, the distribution of the whole must be on the terms of
  533. Xthis License, whose permissions for other licensees extend to the
  534. Xentire whole, and thus to each and every part regardless of who wrote it.
  535. X
  536. XThus, it is not the intent of this section to claim rights or contest
  537. Xyour rights to work written entirely by you; rather, the intent is to
  538. Xexercise the right to control the distribution of derivative or
  539. Xcollective works based on the Program.
  540. X
  541. XIn addition, mere aggregation of another work not based on the Program
  542. Xwith the Program (or with a work based on the Program) on a volume of
  543. Xa storage or distribution medium does not bring the other work under
  544. Xthe scope of this License.
  545. X
  546. X  3. You may copy and distribute the Program (or a work based on it,
  547. Xunder Section 2) in object code or executable form under the terms of
  548. XSections 1 and 2 above provided that you also do one of the following:
  549. X
  550. X    a) Accompany it with the complete corresponding machine-readable
  551. X    source code, which must be distributed under the terms of Sections
  552. X    1 and 2 above on a medium customarily used for software interchange; or,
  553. X
  554. X    b) Accompany it with a written offer, valid for at least three
  555. X    years, to give any third party, for a charge no more than your
  556. X    cost of physically performing source distribution, a complete
  557. X    machine-readable copy of the corresponding source code, to be
  558. X    distributed under the terms of Sections 1 and 2 above on a medium
  559. X    customarily used for software interchange; or,
  560. X
  561. X    c) Accompany it with the information you received as to the offer
  562. X    to distribute corresponding source code.  (This alternative is
  563. X    allowed only for noncommercial distribution and only if you
  564. X    received the program in object code or executable form with such
  565. X    an offer, in accord with Subsection b above.)
  566. X
  567. XThe source code for a work means the preferred form of the work for
  568. Xmaking modifications to it.  For an executable work, complete source
  569. Xcode means all the source code for all modules it contains, plus any
  570. Xassociated interface definition files, plus the scripts used to
  571. Xcontrol compilation and installation of the executable.  However, as a
  572. Xspecial exception, the source code distributed need not include
  573. Xanything that is normally distributed (in either source or binary
  574. Xform) with the major components (compiler, kernel, and so on) of the
  575. Xoperating system on which the executable runs, unless that component
  576. Xitself accompanies the executable.
  577. X
  578. XIf distribution of executable or object code is made by offering
  579. Xaccess to copy from a designated place, then offering equivalent
  580. Xaccess to copy the source code from the same place counts as
  581. Xdistribution of the source code, even though third parties are not
  582. Xcompelled to copy the source along with the object code.
  583. X
  584. X  4. You may not copy, modify, sublicense, or distribute the Program
  585. Xexcept as expressly provided under this License.  Any attempt
  586. Xotherwise to copy, modify, sublicense or distribute the Program is
  587. Xvoid, and will automatically terminate your rights under this License.
  588. XHowever, parties who have received copies, or rights, from you under
  589. Xthis License will not have their licenses terminated so long as such
  590. Xparties remain in full compliance.
  591. X
  592. X  5. You are not required to accept this License, since you have not
  593. Xsigned it.  However, nothing else grants you permission to modify or
  594. Xdistribute the Program or its derivative works.  These actions are
  595. Xprohibited by law if you do not accept this License.  Therefore, by
  596. Xmodifying or distributing the Program (or any work based on the
  597. XProgram), you indicate your acceptance of this License to do so, and
  598. Xall its terms and conditions for copying, distributing or modifying
  599. Xthe Program or works based on it.
  600. X
  601. X  6. Each time you redistribute the Program (or any work based on the
  602. XProgram), the recipient automatically receives a license from the
  603. Xoriginal licensor to copy, distribute or modify the Program subject to
  604. Xthese terms and conditions.  You may not impose any further
  605. Xrestrictions on the recipients' exercise of the rights granted herein.
  606. XYou are not responsible for enforcing compliance by third parties to
  607. Xthis License.
  608. X
  609. X  7. If, as a consequence of a court judgment or allegation of patent
  610. Xinfringement or for any other reason (not limited to patent issues),
  611. Xconditions are imposed on you (whether by court order, agreement or
  612. Xotherwise) that contradict the conditions of this License, they do not
  613. Xexcuse you from the conditions of this License.  If you cannot
  614. Xdistribute so as to satisfy simultaneously your obligations under this
  615. XLicense and any other pertinent obligations, then as a consequence you
  616. Xmay not distribute the Program at all.  For example, if a patent
  617. Xlicense would not permit royalty-free redistribution of the Program by
  618. Xall those who receive copies directly or indirectly through you, then
  619. Xthe only way you could satisfy both it and this License would be to
  620. Xrefrain entirely from distribution of the Program.
  621. X
  622. XIf any portion of this section is held invalid or unenforceable under
  623. Xany particular circumstance, the balance of the section is intended to
  624. Xapply and the section as a whole is intended to apply in other
  625. Xcircumstances.
  626. X
  627. XIt is not the purpose of this section to induce you to infringe any
  628. Xpatents or other property right claims or to contest validity of any
  629. Xsuch claims; this section has the sole purpose of protecting the
  630. Xintegrity of the free software distribution system, which is
  631. Ximplemented by public license practices.  Many people have made
  632. Xgenerous contributions to the wide range of software distributed
  633. Xthrough that system in reliance on consistent application of that
  634. Xsystem; it is up to the author/donor to decide if he or she is willing
  635. Xto distribute software through any other system and a licensee cannot
  636. Ximpose that choice.
  637. X
  638. XThis section is intended to make thoroughly clear what is believed to
  639. Xbe a consequence of the rest of this License.
  640. X
  641. X  8. If the distribution and/or use of the Program is restricted in
  642. Xcertain countries either by patents or by copyrighted interfaces, the
  643. Xoriginal copyright holder who places the Program under this License
  644. Xmay add an explicit geographical distribution limitation excluding
  645. Xthose countries, so that distribution is permitted only in or among
  646. Xcountries not thus excluded.  In such case, this License incorporates
  647. Xthe limitation as if written in the body of this License.
  648. X
  649. X  9. The Free Software Foundation may publish revised and/or new versions
  650. Xof the General Public License from time to time.  Such new versions will
  651. Xbe similar in spirit to the present version, but may differ in detail to
  652. Xaddress new problems or concerns.
  653. X
  654. XEach version is given a distinguishing version number.  If the Program
  655. Xspecifies a version number of this License which applies to it and "any
  656. Xlater version", you have the option of following the terms and conditions
  657. Xeither of that version or of any later version published by the Free
  658. XSoftware Foundation.  If the Program does not specify a version number of
  659. Xthis License, you may choose any version ever published by the Free Software
  660. XFoundation.
  661. X
  662. X  10. If you wish to incorporate parts of the Program into other free
  663. Xprograms whose distribution conditions are different, write to the author
  664. Xto ask for permission.  For software which is copyrighted by the Free
  665. XSoftware Foundation, write to the Free Software Foundation; we sometimes
  666. Xmake exceptions for this.  Our decision will be guided by the two goals
  667. Xof preserving the free status of all derivatives of our free software and
  668. Xof promoting the sharing and reuse of software generally.
  669. X
  670. X                NO WARRANTY
  671. X
  672. X  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
  673. XFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
  674. XOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
  675. XPROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
  676. XOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  677. XMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
  678. XTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
  679. XPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
  680. XREPAIR OR CORRECTION.
  681. X
  682. X  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
  683. XWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
  684. XREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
  685. XINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
  686. XOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
  687. XTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
  688. XYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
  689. XPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
  690. XPOSSIBILITY OF SUCH DAMAGES.
  691. X
  692. X             END OF TERMS AND CONDITIONS
  693. X
  694. X    Appendix: How to Apply These Terms to Your New Programs
  695. X
  696. X  If you develop a new program, and you want it to be of the greatest
  697. Xpossible use to the public, the best way to achieve this is to make it
  698. Xfree software which everyone can redistribute and change under these terms.
  699. X
  700. X  To do so, attach the following notices to the program.  It is safest
  701. Xto attach them to the start of each source file to most effectively
  702. Xconvey the exclusion of warranty; and each file should have at least
  703. Xthe "copyright" line and a pointer to where the full notice is found.
  704. X
  705. X    <one line to give the program's name and a brief idea of what it does.>
  706. X    Copyright (C) 19yy  <name of author>
  707. X
  708. X    This program is free software; you can redistribute it and/or modify
  709. X    it under the terms of the GNU General Public License as published by
  710. X    the Free Software Foundation; either version 2 of the License, or
  711. X    (at your option) any later version.
  712. X
  713. X    This program is distributed in the hope that it will be useful,
  714. X    but WITHOUT ANY WARRANTY; without even the implied warranty of
  715. X    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  716. X    GNU General Public License for more details.
  717. X
  718. X    You should have received a copy of the GNU General Public License
  719. X    along with this program; if not, write to the Free Software
  720. X    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  721. X
  722. XAlso add information on how to contact you by electronic and paper mail.
  723. X
  724. XIf the program is interactive, make it output a short notice like this
  725. Xwhen it starts in an interactive mode:
  726. X
  727. X    Gnomovision version 69, Copyright (C) 19yy name of author
  728. X    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
  729. X    This is free software, and you are welcome to redistribute it
  730. X    under certain conditions; type `show c' for details.
  731. X
  732. XThe hypothetical commands `show w' and `show c' should show the appropriate
  733. Xparts of the General Public License.  Of course, the commands you use may
  734. Xbe called something other than `show w' and `show c'; they could even be
  735. Xmouse-clicks or menu items--whatever suits your program.
  736. X
  737. XYou should also get your employer (if you work as a programmer) or your
  738. Xschool, if any, to sign a "copyright disclaimer" for the program, if
  739. Xnecessary.  Here is a sample; alter the names:
  740. X
  741. X  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  742. X  `Gnomovision' (which makes passes at compilers) written by James Hacker.
  743. X
  744. X  <signature of Ty Coon>, 1 April 1989
  745. X  Ty Coon, President of Vice
  746. X
  747. XThis General Public License does not permit incorporating your program into
  748. Xproprietary programs.  If your program is a subroutine library, you may
  749. Xconsider it more useful to permit linking proprietary applications with the
  750. Xlibrary.  If this is what you want to do, use the GNU Library General
  751. XPublic License instead of this License.
  752. END_OF_FILE
  753. if test 17982 -ne `wc -c <'COPYING'`; then
  754.     echo shar: \"'COPYING'\" unpacked with wrong size!
  755. fi
  756. # end of 'COPYING'
  757. fi
  758. if test -f 'INSTALL' -a "${1}" != "-c" ; then 
  759.   echo shar: Will not clobber existing file \"'INSTALL'\"
  760. else
  761. echo shar: Extracting \"'INSTALL'\" \(4661 characters\)
  762. sed "s/^X//" >'INSTALL' <<'END_OF_FILE'
  763. X#
  764. X# @(#)INSTALL    1.22 93/10/06
  765. X#
  766. XXmcd (Motif(tm) CD Audio Player) by Ti Kan
  767. X------------------------------------------
  768. X
  769. XYou must have X11R4/Motif 1.1 or later to build xmcd.  Xmcd has been
  770. Xsuccessfully built under both X11R4 + Motif 1.1 and X11R5 + Motif 1.2.
  771. XIf you are running Motif 1.1, I recommend version 1.1.4 or later.
  772. XAlso, you must have an ANSI C compatible compilation environment.
  773. X
  774. XXmcd can be built using the native X libraries that are supplied with
  775. Xyour OS release.  If you have XFree86 installed, you can also build
  776. Xxmcd using the libraries from the XFree86 distribution.  Make sure
  777. Xyou use the right set of X include files to match!  Motif is not a
  778. Xpart of the XFree86 package, so you will need to get it separately.
  779. X
  780. XIf you are running SCO UNIX or ODT, xmcd requires the C pre-processor
  781. Xflag "-Dsco" (lower-case) to be set.  This is done by default on systems
  782. Xrunning the ODT Development System.  If you are using XFree86, you must
  783. Xmodify the appropriate "OsDefines" line in your
  784. X/usr/X386/lib/X11/config/x386.cf file to include -Dsco.
  785. X
  786. XIf you are building xmcd on a SunOS 4.1.x platform, you must use the
  787. XGNU C compiler (gcc) instead of the cc compiler.  This is because cc
  788. Xunder SunOS 4.1.x is not ANSI compliant.
  789. X
  790. XOn all platforms, if you use gcc, you must add the following to
  791. Xyour CFLAGS:
  792. X
  793. X    -fpcc-struct-return -fwritable-strings
  794. X
  795. XYou must compile on one of the supported UNIX OS flavors (See the
  796. XREADME file for a list of the supported OS environments) to get a
  797. Xreal functional xmcd.  You can compile on other platforms, but you
  798. Xwill end up with a "demo" version of xmcd.
  799. X
  800. XYou can also force the build of the "demo" version by specifying
  801. X-DDEMO_ONLY.  See the comments in Imakefile.  The "demo-only" version
  802. Xhas been successfully compiled and run on the following OS platforms:
  803. X
  804. X    OSF/1 1.0 on HP-9000 Series 700 PA-RISC
  805. X    SCO ODT 2.0 on x86
  806. X    SCO ODT 3.0 on x86
  807. X    Stratus SVR4.0 FTX 2.1
  808. X    Stratus SVR4.0 FTX 2.2
  809. X    SunOS 4.1.2 on Sun Sparc
  810. X    UNIX SVR4.0 on x86
  811. X    UNIX SVR4.2 on x86
  812. X
  813. XThe "demo" version does not actually control or respond to a real
  814. XCD-ROM device.  Instead, a built-in CD-ROM simulater is used,
  815. Xwhich allows you to play with the look-and-feel of xmcd and try
  816. Xthe behavior of all the controls and functions.
  817. X
  818. XIn order to use the non-demo xmcd, your system must be set up
  819. Xproperly to use a CD-ROM drive.  A good test is to see if you can
  820. Xmount ISO-9660/High Sierra CD-ROM filesystems.  If your system does
  821. Xnot support ISO-9660 but otherwise supports a raw CD-ROM device,
  822. Xyou can try typing this command while logged in as the super-user:
  823. X
  824. X    dd if=DEVICE of=/dev/null bs=2k count=10
  825. X
  826. Xwhere DEVICE is the raw CD-ROM device, such as /dev/rcd0 (SCO ODT),
  827. X/dev/rcdrom/cd0 (SVR4.0) or /dev/rcdrom/cdrom1 (SVR4.2).
  828. X
  829. XIf the dd command fails, then either your hardware is not set up
  830. Xproperly, or your OS is not configured to support the CD-ROM device.
  831. XYou should fix the problem first before attempting to run xmcd.
  832. X
  833. X
  834. XBuild instructions:
  835. X-------------------
  836. X
  837. X1. Take a look at Imakefile, read the comments, and make changes as
  838. X   appropriate.
  839. X2. Type "xmkmf" (or "imake -DUseInstalled")
  840. X3. Type "make Makefiles"
  841. X4. Type "make depend"
  842. X5. Type "make"
  843. X
  844. X
  845. XInstall instructions:
  846. X---------------------
  847. X
  848. X1. Log in as the super-user and change to the xmcd source directory.
  849. X2. Type "make install".  Answer all questions to configure xmcd.
  850. X3. Edit LIBDIR/app-defaults/XMcd and make sure that the "XMcd.device:"
  851. X   path matches the default raw CD-ROM device on your system.
  852. X
  853. X
  854. XTo make a binary release:
  855. X-------------------------
  856. X
  857. X1. Follow the Build Instructions as above.
  858. X2. Make sure the binary you build has the proper mix of static vs.
  859. X   shared library components for your target system. In particular,
  860. X   if your target system does not have Motif installed, then you
  861. X   will want to statically link libXm.a.  The same consideration
  862. X   should be given to libXt, libXext, libX11, libnsl, libsocket,
  863. X   libc, and others where applicable.  The more libraries you link
  864. X   statically, the less platform-dependent the binary is, but the
  865. X   larger it becomes.  In some cases, even a fully static xmcd binary
  866. X   will still have problem running if the target system has different
  867. X   kernel-to-library interfaces than the compiling system.
  868. X2. Run the "makerel.sh" script.  The script generates a file
  869. X   "xmcdbin.uue", which is a compressed and uuencoded tar format
  870. X   file containing all files necessary for a xmcd binary distribution.
  871. X
  872. X
  873. XTo make a source release:
  874. X-------------------------
  875. X1. Run the "makesrc.sh" script.  The script generates a file
  876. X   "xmcdsrc.uue", which is a compressed and uuencoded tar format
  877. X   file containing all xmcd source files.
  878. X
  879. END_OF_FILE
  880. if test 4661 -ne `wc -c <'INSTALL'`; then
  881.     echo shar: \"'INSTALL'\" unpacked with wrong size!
  882. fi
  883. # end of 'INSTALL'
  884. fi
  885. if test -f 'PORTING' -a "${1}" != "-c" ; then 
  886.   echo shar: Will not clobber existing file \"'PORTING'\"
  887. else
  888. echo shar: Extracting \"'PORTING'\" \(14311 characters\)
  889. sed "s/^X//" >'PORTING' <<'END_OF_FILE'
  890. X#
  891. X# @(#)PORTING    1.17 93/09/20
  892. X#
  893. XXmcd (Motif(tm) CD Audio Player) by Ti Kan
  894. X------------------------------------------
  895. X
  896. XPorting Information
  897. X-------------------
  898. X
  899. X
  900. XINTRODUCTION
  901. X
  902. XA truly portable program should compile and run without modification
  903. Xon different OS and hardware platforms.  Any CD Audio player software,
  904. Xespecially under UNIX, is typically not very portable.  This is because
  905. Xof the two following reasons:
  906. X
  907. X    1. Different OS implementations provide different means
  908. X       of operating the CD-ROM drives.
  909. X    2. Although there is an increasing number of CD-ROM drives
  910. X       that implement and are conformant to the audio-related
  911. X       commands as documented in the SCSI-2 specifications,
  912. X       many non-SCSI-2 conformant CD-ROM drives exist, and
  913. X       support audio operations only via incompatible vendor-
  914. X       unique commands 
  915. X
  916. XXmcd strives to be as portable as possible by taking the following
  917. Xdesign approach:
  918. X
  919. X    1. Harness the inherent portability advantages of the X Window
  920. X       System, and the increasing popularity of the OSF/Motif GUI.
  921. X       The X Window System gives us device-independent graphics
  922. X       and network-extensibility, and Motif is rapidly becoming
  923. X       the de facto standard UNIX GUI, and will soon be supported
  924. X       on virtually every vendor's port of UNIX as well as UNIX-like
  925. X       operating systems.
  926. X    2. Strict adherence to ANSI C standards.
  927. X    3. Modularize the internals of xmcd, such that the user interface
  928. X       portion, the OS-interface portion, and the CD-ROM vendor-unique
  929. X       support portions are each a separate and replaceable entity.
  930. X    4. The OS-specific and device-specific portions are made as small
  931. X       and self-contained as possible, so that changes to support
  932. X       a new OS or new CD-ROM drive are not scattered about.
  933. X
  934. XCurrently xmcd already supports a wide array of SCSI CD-ROM drives
  935. Xand several OS environments.  However, the more devices xmcd
  936. Xsupports, and the more OS environments it runs under, the better.
  937. XTo that end, I encourage you to contribute to xmcd and make it
  938. Xa better program.  If you would like to add support of additional
  939. XCD-ROM devices, port xmcd to run on another OS, or to add other
  940. Xenhancements to xmcd, the xmcd internal architecture overview below
  941. Xshould prove to be beneficial.
  942. X
  943. XXmcd currently contains code that assumes a POSIX-compliant UNIX
  944. XC library and headers, and certain System V characteristics.
  945. XExamples of these are:
  946. X
  947. X    - Uses "struct dirent" rather than "struct direct"
  948. X    - Assumes existence of types such as "uid_t"
  949. X    - etc...
  950. X
  951. XAlthough xmcd has been ported to run on SunOS (The SunOS 4.x kernel
  952. Xis BSD-based), you may need to make certain modifications to port
  953. Xxmcd to other BSD-derived or BSD-like environments.
  954. X
  955. XPlease note that xmcd is released as free software under the GNU
  956. XGeneral License Agreement, which guarantees your right to modify
  957. Xxmcd for yourself and others (please see the COPYING file for
  958. Xdetails).  I do ask, however, that if you add new functionality
  959. Xto xmcd or port xmcd to a new platform, please send all changes to
  960. Xme so I can merge it into the main source code and include it in
  961. Xthe next release.  All proper credit will be given, of course,
  962. Xin the form of Copyright notices in the source file banners and
  963. Xthe "About..." pop-up window.  This avoids diverging versions
  964. Xand makes your enhancements accessible to more people.
  965. X
  966. X
  967. X
  968. XXMCD ARCHITECTURE
  969. X
  970. XXmcd is divided into two main subsystems, the Application Code
  971. XSubsystem and the Device Interface Subsystem (These are hereafter
  972. Xreferred to as ACS and DIS, respectively).
  973. X
  974. XThe diagram below shows the general xmcd architecture, and
  975. Xidentifies where the various libraries (Motif, Xt, X11, socket,
  976. Xand the C library) interface with the main xmcd bodies of code.
  977. X
  978. X
  979. X                              User Interface
  980. X  +-------------------------------------------------------------------------+
  981. X  |                                                                         |
  982. X  |                          Motif                                          |
  983. X  |                                                                         |
  984. X  |   +----------------+----------------------------------------------------+
  985. X  |   |                |                                                    |
  986. X  |   |  Xt            |       Xmcd Application Code Subsystem (ACS)        |
  987. X  |   |  Intrinsics    |                                                    |
  988. X  |   |                |             +--------------------------------------+
  989. X  |   |                |             |                                      |
  990. X  |   |   +------------+             |                                      |
  991. X  |   |   |            |             |                                      |
  992. X  |   |   |  X11       |             |   Xmcd Device Interface Subsystem    |
  993. X  |   |   |            |             |   (DIS)                              |
  994. X  |   |   |   +--------+             |                                      |
  995. X  |   |   |   |        |             |                                      |
  996. X  |   |   |   | socket |             |                                      |
  997. X  |   |   |   |        |             |                                      |
  998. X  +---+---+---+--------+-------------+--------------------------------------+
  999. X  |                                                                         |
  1000. X  |                  C Library / System Calls                               |
  1001. X  |                                                                         |
  1002. X  +-------------------------------------------------------------------------+
  1003. X                                OS Kernel
  1004. X
  1005. X
  1006. X
  1007. XThe ACS is the layer that deals with the user interface and mostly
  1008. Xuses Motif for that purpose.  It provides the look-and-feel of the
  1009. Xapplication and manages all user events.  The ACS also provides a set
  1010. Xof general service functions for the DIS to call.  There are two
  1011. Xgeneral classes of these functions.  The first of these are functions
  1012. Xthat cause changes on the user interface (display popup messages,
  1013. Xchange widget state, etc.), and the second are general service routines
  1014. X(perform byte-swapping, BCD to interger conversion, etc).  This layer
  1015. Xis hardware platform and OS independent and should require virtually
  1016. Xno modifications to port to other environments.
  1017. X
  1018. XThe DIS can be hardware and OS dependent.  The interface from the
  1019. XACS layer to the DIS is very high-level, consisting of function
  1020. Xcalls like cdlib_playpause(), cdlib_stop(), cdlib_rew(), cdlib_ff(),
  1021. Xand so on (see cdlib.h for the full list).  This gives the DIS a lot
  1022. Xof flexibility in how to implement the actual functionalities.
  1023. XFurthermore, the DIS physically resides in a library archive.
  1024. XAlthough it is currently linked into xmcd statically, if the need
  1025. Xarises it can be modified to be dynamically bound.
  1026. X
  1027. XThe DIS supplied with the current xmcd source code is a conglomerate
  1028. Xof the SCSI Passthrough module, an OS Interface module, and several
  1029. XVendor-unique modules (see diagram below).  This DIS implements all
  1030. Xthe non-user-interface aspects of CD audio functionality and operates
  1031. Xthe CD-ROM drive by delivering SCSI commands directly to the CD-ROM
  1032. Xdrive via a kernel-supported SCSI passthrough interface.
  1033. X
  1034. XXmcd currently supplies three OS Interface Modules, one for most
  1035. Xflavors of SVR4 on the x86 platform, another for SCO ODT, and a
  1036. Xthird "demo" module that provides a demo environment, but does not
  1037. Xactually operate a real CD-ROM drive (a CD-ROM simulator is invoked
  1038. Xinstead, mimicking the behavior of a CD-ROM drive).  Xmcd also supplies
  1039. Xseveral vendor-unique modules for Toshiba, Pioneer, NEC, and Hitachi
  1040. XCD-ROM drives.  Only one OS Interface module can be compiled in at a
  1041. Xtime (controlled by pre-processor directives), but multiple vendor-
  1042. Xunique modules can coexist.
  1043. X
  1044. X
  1045. X                              User Interface
  1046. X  +-------------------------------------------------------------------------+
  1047. X  |                                                                         |
  1048. X  |                          Motif                                          |
  1049. X  |                                                                         |
  1050. X  |   +----------------+----------------------------------------------------+
  1051. X  |   |                |                                                    |
  1052. X  |   |  Xt            |       Xmcd Application Code Subsystem (ACS)        |
  1053. X  |   |  Intrinsics    |                                                    |
  1054. X  |   |                |          +-----------------------------------------+
  1055. X  |   |                |          |                                         |
  1056. X  |   |   +------------+          |     SCSI Passthrough                    |
  1057. X  |   |   |            |          |     Library Module                      |
  1058. X  |   |   |  X11       |          |                                         |
  1059. X  |   |   |            |          |    +-----------------+------------------+
  1060. X  |   |   |   +--------+          |    |                 | Vendor-unique    |
  1061. X  |   |   |   |        |          |    | OS Interface    | Library Modules  |
  1062. X  |   |   |   | socket |          |    | Library Modules +------------------+
  1063. X  |   |   |   |        |          |    |                                    |
  1064. X  +---+---+---+--------+----------+----+------------------------------------+
  1065. X  |                                                                         |
  1066. X  |                  C Library / System Calls                               |
  1067. X  |                                                                         |
  1068. X  +-------------------------------------------------------------------------+
  1069. X                                OS Kernel
  1070. X
  1071. X
  1072. XThe following is a list of the files in the xmcd source code
  1073. Xdistribution and the category they fall under:
  1074. X
  1075. XGeneral files:
  1076. X
  1077. X    BUGS
  1078. X    COPYING
  1079. X    INSTALL
  1080. X    PORTING
  1081. X    README
  1082. X    Imakefile
  1083. X    XMcd.ad
  1084. X    dev.config
  1085. X    install.sh
  1086. X    configure.sh
  1087. X    makerel.sh
  1088. X    makesrc.sh
  1089. X    xmcd.man
  1090. X
  1091. XACS files:
  1092. X
  1093. X    cdlib.h
  1094. X    patchlevel.h
  1095. X    resource.h
  1096. X    xmcd.h
  1097. X    main.c
  1098. X    cdfunc.[ch]
  1099. X    dbprog.[ch]
  1100. X    geometry.[ch]
  1101. X    help.[ch]
  1102. X    hotkey.[ch]
  1103. X    util.[ch]
  1104. X    widget.[ch]
  1105. X    bitmaps/*.xbm
  1106. X    helpfiles/*
  1107. X
  1108. XDIS files:
  1109. X
  1110. X    SCSI Passthrough module:
  1111. X
  1112. X    lib_scsipt.[ch]
  1113. X
  1114. X    OS Interface modules:
  1115. X
  1116. X    lib_demo.[ch] and lib_sim.[ch]
  1117. X    lib_hpux.[ch]
  1118. X    lib_odt.[ch]
  1119. X    lib_sun.[ch]
  1120. X    lib_svr4.[ch]
  1121. X
  1122. X    Vendor-unique support modules:
  1123. X
  1124. X    lib_hita.[ch]
  1125. X    lib_nec.[ch]
  1126. X    lib_pion.[ch]
  1127. X    lib_tosh.[ch]
  1128. X
  1129. X
  1130. XOn a kernel that does not supports SCSI-passthrough, but otherwise
  1131. Ximplements a different interface to the CD-ROM drive, another
  1132. XDIS can be developed to replace the standard DIS.  Another example
  1133. Xis if xmcd were to be expanded to support non-SCSI CD-ROM drives,
  1134. Xa different DIS can be written to interface with the appropriate
  1135. Xdevice driver.
  1136. X
  1137. XIn the supplied DIS, the SCSI Passthrough module portion contains
  1138. Xall the basic non-OS-dependent portion of the code that implements
  1139. Xdelivering SCSI commands to a CD-ROM drive.  It relies on the next
  1140. Xlayer, the OS Interface layer, to actually perform the SCSI command
  1141. Xdelivery.  The SCSI Passthrough module "knows" about the SCSI-2
  1142. Xset of audio-related commands, and sends these down to the OS
  1143. XInterface layer.  Which SCSI-2 commands to send are user-configurable
  1144. Xvia device-dependent configuration files.  This is important because
  1145. Xmany CD-ROM drives support some, but not all of the SCSI-2 audio
  1146. Xcommands.  Alternatively, if so configured, the SCSI Passthrough
  1147. Xmodule can call the Vendor-unique module to deliver non-SCSI-2
  1148. Xvendor-unique commands to the CD-ROM drive.
  1149. X
  1150. XAll entry points to the OS Interface module are named in the
  1151. Xform of pthru_xxx().  See lib_svr4.h, lib_odt.h and lib_demo.h
  1152. Xfor a full list.
  1153. X
  1154. XThe most important OS Interface module entry point is pthru_send(),
  1155. Xwhich is used by the SCSI Passthrough and Vendor-unique modules
  1156. Xto deliver SCSI commands to the drive.  pthru_send() takes
  1157. Xa number of arguments that are used to contruct a SCSI CDB,
  1158. Xamong other things.  The SCSI CDB is actually allocated and
  1159. Xfilled in the OS Interface module, and delivered using the
  1160. Xappropriate SCSI-passthrough mechanism.
  1161. X
  1162. X
  1163. X
  1164. XPORTING HINTS
  1165. X
  1166. XTo port xmcd to a different OS, two alternatives can be
  1167. Xconsidered:
  1168. X
  1169. X1. Use the existing DIS, but write a new OS Interface module.
  1170. X2. Write a whole new DIS.
  1171. X
  1172. XThe first choice is the obvious answer if the target OS supports
  1173. XSCSI Passthrough.  This choice is also quite easy to implement,
  1174. Xas the OS Interface module is typically fairly small and self-
  1175. Xcontained.  The existing OS Interface modules can be used as
  1176. Xa reference when writing a new one.
  1177. X
  1178. XThe second choice is feasible if the OS does not supply a SCSI
  1179. XPassthrough mechanism, or if non-SCSI drives are to be used.
  1180. XIf this is the approach taken, the SCSI Passthrough module
  1181. Xsource can be used as a reference, and much of its code can be
  1182. Xcopied, modified and re-used.
  1183. X
  1184. XIf you are writing an OS Interface module, keep in mind that you
  1185. Xwill need to deal with any special DMA address alignment limitations
  1186. Xpresent in your OS and/or hardware.  The data buffers allocated
  1187. Xwithin the existing SCSI-passthrough DIS are not guarateed to be
  1188. X32-bit word-aligned or page-aligned.
  1189. X
  1190. XRemember the issue of big vs. small endian?  Please use the
  1191. Xbswapxx() and lswapxx() routines provided in util.c (#include "util.h")
  1192. Xto perform byte swapping.  This is necessary because multi-byte
  1193. Xquantities in SCSI commands and data is in general big-endian,
  1194. Xbut xmcd is designed to run on host CPUs that are big-endian or
  1195. Xlittle-endian.  The swap routines should be used regarless of
  1196. Xwhether your main CPU endianess matches that of the SCSI device.
  1197. XWhether swapping actually takes place is controlled via the
  1198. XBYTE_ORDER #define (see xmcd.h).
  1199. X
  1200. XThere are also some minor OS-specific code you need to add in
  1201. Xconfigure.sh.  This is mainly to set up the correct default device
  1202. Xnode path name.
  1203. X
  1204. XTo support additional non-SCSI-2 CD-ROM drives via vendor-unique
  1205. Xpassthrough commands, you will need to add a vendor-unique module
  1206. Xto xmcd.  In addition to writing the new vendor-unique module, you
  1207. Xwill also need to make a few additions to lib_scsipt.c and lib_scsipt.h.
  1208. XLook for #ifdef TOSHIBA, #ifdef NEC, etc., in these files for examples.
  1209. X
  1210. X
  1211. X
  1212. XQUESTIONS?
  1213. X
  1214. XIf you are working on enhancing xmcd and need information, help
  1215. Xor advice, please send e-mail to me at "ti@amb.org".  Likewise,
  1216. Xsuggestions are also very welcome.
  1217. X
  1218. X
  1219. END_OF_FILE
  1220. if test 14311 -ne `wc -c <'PORTING'`; then
  1221.     echo shar: \"'PORTING'\" unpacked with wrong size!
  1222. fi
  1223. # end of 'PORTING'
  1224. fi
  1225. if test -f 'README' -a "${1}" != "-c" ; then 
  1226.   echo shar: Will not clobber existing file \"'README'\"
  1227. else
  1228. echo shar: Extracting \"'README'\" \(9586 characters\)
  1229. sed "s/^X//" >'README' <<'END_OF_FILE'
  1230. X#
  1231. X# @(#)README    1.40 93/11/05
  1232. X#
  1233. XXmcd (Motif(tm) CD Audio Player) by Ti Kan
  1234. X------------------------------------------
  1235. X
  1236. XINTRODUCTION
  1237. X------------
  1238. X
  1239. XThis is the release notes for xmcd.  Please read through this file
  1240. Xbefore building, installing, or using xmcd.
  1241. X
  1242. X
  1243. X
  1244. XSOURCE CODE RELEASE NOTES
  1245. X-------------------------
  1246. X
  1247. XThe source code of this version of xmcd supports the following operating
  1248. Xsystems environments:
  1249. X
  1250. X    1. UNIX System V Release 3.2 (on Intel x86)
  1251. X       - SCO Open Desktop Version 2.x (X11R4 or X11R5 server)
  1252. X       - SCO Open Desktop Version 3.x
  1253. X       - SCO UNIX 3.2v4.x with XFree86 + Motif 1.2
  1254. X
  1255. X    2. UNIX System V Release 4.0 (on Intel x86)
  1256. X       (Note: 4.0.3 or later recommended)
  1257. X       - AT&T
  1258. X       - Consensys
  1259. X       - Dell
  1260. X       - ESIX
  1261. X       - ISC
  1262. X       - Microport
  1263. X       - Micro Station Technology
  1264. X       - UHC
  1265. X       - USL
  1266. X
  1267. X    3. UNIX System V Release 4.2 (on Intel x86)
  1268. X       - Consensys
  1269. X       - Information Foundation
  1270. X       - Onsite
  1271. X       - Univel/Novell UnixWare
  1272. X       - USL
  1273. X
  1274. X    4. UNIX System V Release 4.2MP (on Intel x86)
  1275. X       - USL (ES/MP TLP4/EA5 or later)
  1276. X
  1277. X    5. UNIX System V Release 4.0 (on Motorola 88k)
  1278. X       - Motorola
  1279. X
  1280. X    6. HP-UX (on HP Series 700)
  1281. X       - HP-UX Release 9.0 (see notes below)
  1282. X
  1283. X    7. SunOS (on Sun Sparc)
  1284. X       - SunOS 4.x / Solaris 1.x (see notes below)
  1285. X
  1286. X    8. SunOS (on Sun Sparc)
  1287. X       - SunOS 5.x / Solaris 2.x (see notes below)
  1288. X
  1289. X    9. SunOS (on Intel x86)
  1290. X       - SunOS 5.x / Solaris 2.x (see notes below)
  1291. X
  1292. X
  1293. XIn general, binaries compiled on one OS can run on another OS under
  1294. Xthe same group.  Thus, xmcd compiled on Consensys SVR4.0 should run
  1295. Xon ESIX SVR4.0, but not on Univel UnixWare or SCO ODT.  There are some
  1296. Xissues with shared library compatibility amongst the different SVR4.0
  1297. Xvendors, so it is best to run xmcd on the same OS that it's compiled
  1298. Xon.
  1299. X
  1300. XXmcd's current SunOS 4.x run-time support is limited to systems
  1301. Xrunning the sun4c and sun4m kernels.  To find out which kernel you
  1302. Xhave, use the "arch -k" command.
  1303. X
  1304. XThe Motorola 88K support was contributed by Mark Scott.
  1305. X
  1306. XThe HP-UX and Solaris 2.x support is present in the xmcd source code,
  1307. Xbut is untested as of this writing.  You may need to make minor changes
  1308. Xto the xmcd sources and compile to make things work on these systems.
  1309. XA binary release is not currently available from the author for these
  1310. Xplatforms.  If you have success in bringing up xmcd on HP-UX and/or
  1311. XSolaris 2.x, please send all source changes to the author so the
  1312. Xmods can be integrated into a future xmcd release to be shared by all.
  1313. X
  1314. XSee the INSTALL file for information about the required X11 and Motif
  1315. Xlibrary versions and configurations, and build/install instructions.
  1316. X
  1317. XFor Copyright information, read the COPYING file.
  1318. X
  1319. XThe modular design of xmcd is such that support for other UNIX
  1320. Xenvironments can be easily added by implementing a new OS-interface
  1321. Xlibrary module for xmcd.  Moreover, support for other non SCSI-2
  1322. Xcompliant CD-ROM drives can also be added via new vendor-unique
  1323. Xlibrary modules.  See the "PORTING" file for details if you are
  1324. Xinterested in contributing to the development effort to make xmcd
  1325. Xrun under more environments and support more CD-ROM drives.
  1326. X
  1327. X
  1328. XGENERAL SOFTWARE NOTES
  1329. X----------------------
  1330. X
  1331. XThis release of xmcd features the following:
  1332. X
  1333. X    - Standard functions: Stop, Play, Pause, Next/Previous Track,
  1334. X      Next/Previous Index, Fast forward/rewind with audio sample,
  1335. X      Eject and On/off.
  1336. X    - Direct track access keypad.
  1337. X    - Volume control.
  1338. X    - Shuffle (random) play function.
  1339. X    - Repeat function.
  1340. X    - Sample function: Play a few seconds of each track.
  1341. X    - A->B function: Repeat from selectable point A and B.
  1342. X    - Eject inhibit function: To prevent someone from ejecting the
  1343. X      disc by pressing the button on the drive.
  1344. X    - Track Program function: Play tracks in custom order.
  1345. X    - CD database function: Allows you to store CD title/track titles
  1346. X      in database, and associate each disc with a play program.
  1347. X      Displays the current playing disc title/track information.
  1348. X      In addition, you can enter and display arbitrary text associated
  1349. X      with the disc or each track, such as band information, lyrics,
  1350. X      etc.
  1351. X    - Track/Index/Time display: Selectable to display elapsed time,
  1352. X      remaining track time, or remaining disc time.
  1353. X    - Status display: for current play status, A->B mode, program
  1354. X      mode, CD database.
  1355. X    - Main window button face labels can be configured to display
  1356. X      pictorial symbols, or text with hotkey mnemonics.
  1357. X    - The complete application can be operated via the keyboard with
  1358. X      full support for keyboard traversal and hotkeys.
  1359. X    - All labels and messages can be customized to non-English
  1360. X      languages via X resources in the .Xdefaults file.
  1361. X    - All colors and many other functionality are user-customizable
  1362. X      using X resource settings.
  1363. X    - On-line help information.
  1364. X
  1365. X
  1366. XXmcd uses the Motif toolkit to achieve a pleasing appearance, such that
  1367. Xit actually looks and feels like a real CD player for all basic
  1368. Xfunctions, yet takes advantage of the GUI and window system to make
  1369. Xprogramming and CD database functions easy.
  1370. X
  1371. XYour xmcd binary should only be run on the same OS platform group
  1372. Xthat it was compiled on.  For example, UNIX SVR4.0 binaries must
  1373. Xnot be run on a UNIX SVR4.2 system.  Likewise, a binary compiled
  1374. Xon a SunOS 4.x platform cannot be used on a SunOS 5.x system.
  1375. X
  1376. XDo not use xmcd if the CD-ROM drive contains a mounted filesystem
  1377. Xdata disc (ISO9660, High Sierra, Rockridge or other formats).  Always
  1378. Xuse the "df" or "mount" command to check if such a filesystem is mounted
  1379. Xbefore invoking xmcd.
  1380. X
  1381. X
  1382. XCD-ROM NOTES
  1383. X------------
  1384. X
  1385. XThis release of xmcd will work with the following CD-ROM drives.
  1386. XSee notes below for specific information:
  1387. X
  1388. X    Apple CD-300 (+)
  1389. X    Compaq CDU-561
  1390. X    Compaq CR-503BCQ
  1391. X    Hitachi CDR-1650S (+)
  1392. X    Hitachi CDR-1750S
  1393. X    Hitachi CDR-3650 (+)
  1394. X    Hitachi CDR-3750 (+)
  1395. X    NEC CDR-72
  1396. X    NEC CDR-74
  1397. X    NEC CDR-77
  1398. X    NEC CDR-80
  1399. X    NEC CDR-82
  1400. X    NEC CDR-84
  1401. X    NEC CDR-38 (*)(+)
  1402. X    NEC CDR-74-1 (*)
  1403. X    NEC CDR-84-1 (*)
  1404. X    Pioneer DRM-600 (+)
  1405. X    Pioneer DRM-600A (+)
  1406. X    Pioneer DRM-610 (+)
  1407. X    Pioneer DRM-604X (*)(+)
  1408. X    Sony CDU-541
  1409. X    Sony CDU-561
  1410. X    Sony CDU-6211 (+)
  1411. X    Sony CDU-7211 (+)
  1412. X    Sony CDU-8003 (+)
  1413. X    Sony CDU-8012 (+)
  1414. X    Sun CD-ROM (+)
  1415. X    Texel DM-3024
  1416. X    Texel DM-5024
  1417. X    Texel DM-3028 (+)
  1418. X    Texel DM-5028 (+)
  1419. X    Toshiba XM-3101
  1420. X    Toshiba XM-3201
  1421. X    Toshiba XM-3301
  1422. X    Toshiba XM-3401
  1423. X    Toshiba XM-8100 (+)
  1424. X    Other SCSI-2 compliant CD-ROM drives (+)
  1425. X
  1426. XUnits denoted with a plus sign (+) are believed to work with xmcd, but
  1427. Xhave not been extensively tested yet.  If you have one of these drives
  1428. XI would like to hear from you.
  1429. X
  1430. XUnits denoted with an asterisk (*) can be configured to operate in the
  1431. XSCSI-1 or SCSI-2 mode (via jumpers or DIP switch).  You must configure
  1432. Xthe xmcd software accordingly (with the LIBDIR/xmcd/config/configure.sh
  1433. Xprogram).  Depending upon the specific model, you may find that xmcd
  1434. Xsupports more features while operating in SCSI-2 mode.  See the CD-ROM
  1435. Xdrive owner's manual for details about setting the mode.
  1436. X
  1437. XThis release of xmcd supports operating only the first disc on the
  1438. XPioneer multi-disc CD-ROM changers.  Pioneer DRM-604X units with
  1439. Xolder revisions of the firmware must be configured to operate in
  1440. Xthe SCSI-1 mode (DRM-600A emulation, via back panel DIP switches),
  1441. Xand xmcd must be configured as if it's operating a DRM-600A.  Newer
  1442. XDRM-604X units (and those that have their firmware upgraded) can be
  1443. Xset up to run in SCSI-2 mode, and xmcd must be set up to operate
  1444. Xa DRM-604X.
  1445. X
  1446. XTo avoid possible SCSI bus lock-up, never eject the disc using the
  1447. Xeject button on the front panel of the Hitachi CD-ROM drives while
  1448. Xthe unit is playing audio.  Use xmcd's software eject button instead.
  1449. XAlso, you may wish to adjust the XMcd.searchSkipBlocks and
  1450. XXMcd.searchPauseInterval resources to achieve the best audio
  1451. Xsampling effect during REW and FF search operations.
  1452. X
  1453. XThe Texel units implements only a subset of the SCSI-2 audio commands.
  1454. XXmcd will work on these but with somewhat reduced functionality.  Also,
  1455. Xthe Texel drive firmware should be version 1.10 or later to avoid
  1456. Xsystem lockups.
  1457. X
  1458. XNote that even if a CD-ROM drive is marketed as SCSI-2 compliant, it
  1459. Xstill may not implement the full set of audio-related commands that
  1460. Xxmcd requires.
  1461. X
  1462. XIf you have a CD-ROM drive not listed above, I would appreciate a note
  1463. Xfrom you regarding whether it works with xmcd or not.  If it works,
  1464. Xplease send me your xmcd device-specific configuration file for this
  1465. Xdrive (usually /usr/lib/X11/xmcd/config/NAME, where NAME is the name
  1466. Xof the character device of the CD-ROM drive).  I will then add your
  1467. Xdrive to the supported list.
  1468. X
  1469. XSome CD-ROM drives do not function well when the SCSI host adapter
  1470. Xboard is configured to "synchronous negotiation" mode.  Examples
  1471. Xof these include certain NEC and Hitachi units.  If you experience
  1472. Xmalfunctions with xmcd, check the host adapter board configuration
  1473. Xand try disabling the synchronous mode.  On the Adaptec AHA-1542B,
  1474. Xthere is a single jumper that controls whether synchronous negotiation
  1475. Xis enabled for all devices on the SCSI bus.  On the AHA-1542C,
  1476. Xsynchronous negotiation is configurable via the on-board setup program,
  1477. Xand is settable on a per-ID basis.  Please consult your SCSI host
  1478. Xadapter board owner's manual for information.
  1479. X
  1480. X
  1481. XACKNOWLEGEMENTS
  1482. X---------------
  1483. X
  1484. XCompanies names and product names appearing in this file are each
  1485. Xtrademarks of the respective company.  The names are for identification
  1486. Xpurposes only.  Xmcd and its author are not affiliated with any of
  1487. Xthese companies.
  1488. X
  1489. XI wish to express my appreciation for all the people who participated
  1490. Xin the extensive xmcd beta test program, who have contributed a great
  1491. Xdeal to the user-friendliness, robustness and device support of xmcd.
  1492. X
  1493. END_OF_FILE
  1494. if test 9586 -ne `wc -c <'README'`; then
  1495.     echo shar: \"'README'\" unpacked with wrong size!
  1496. fi
  1497. # end of 'README'
  1498. fi
  1499. if test -f 'demo.cddb' -a "${1}" != "-c" ; then 
  1500.   echo shar: Will not clobber existing file \"'demo.cddb'\"
  1501. else
  1502. echo shar: Extracting \"'demo.cddb'\" \(1289 characters\)
  1503. sed "s/^X//" >'demo.cddb' <<'END_OF_FILE'
  1504. X# xmcd 1.0 CD database file
  1505. X# Copyright (C) 1993 Ti Kan
  1506. X# @(#)demo.cddb    1.2 93/09/13
  1507. X#
  1508. X# Track frame offsets:
  1509. X#    150
  1510. X#    4500
  1511. X#    9000
  1512. X#    13500
  1513. X#    18000
  1514. X#    22500
  1515. X#    27000
  1516. X#    31500
  1517. X#    36000
  1518. X#    40500
  1519. X#
  1520. X# Disc length: 600 seconds
  1521. X#
  1522. XDISCID=4102560a
  1523. XDTITLE=The XMCD Orchestra / Is It Live or Is It Mesmerize?
  1524. XTTITLE0=Virtual Reality
  1525. XTTITLE1=Woodgrain On Your Country Squire
  1526. XTTITLE2=Here Comes The Imposter
  1527. XTTITLE3=Let's Pretend
  1528. XTTITLE4=Going Through The Song And Dance
  1529. XTTITLE5=I Love Imitation Crab Meat
  1530. XTTITLE6=The Cubic Zirconia Of The Nile
  1531. XTTITLE7=Fake It Good
  1532. XTTITLE8=The Parrot Sings
  1533. XTTITLE9=Onomatopoeia
  1534. XEXTD=1993 XMCD Version 1.0\n\nProduced by AMB Research Labs\n\nThis is th
  1535. XEXTD=e internal "Test CD" of the CD-ROM Simulator,\nused in the demo-o
  1536. XEXTD=nly version of Xmcd.  There are 10\ntracks on this simulated disc
  1537. XEXTD=, each track is 1 minute\nlong, and has 4 indices of 15 seconds e
  1538. XEXTD=ach.
  1539. XEXTT0=Background vocals by The Silent Screams
  1540. XEXTT1=Courtesy of Formica Records
  1541. XEXTT2=Is Elvis Really Alive?
  1542. XEXTT3=... And Play Video Games Instead
  1543. XEXTT4=And The Motions of Love...
  1544. XEXTT5=Eat it!  Courtesy of Weird Al Yankovich
  1545. XEXTT6=Do You Know The Way To Fry's Electronics in\nCampbell, CA?
  1546. XEXTT7=Courtesy of Devo
  1547. XEXTT8=Mirror, Mirror, On The Wall...
  1548. XEXTT9=Say What?
  1549. XPLAYORDER=2,4,6,8,10,1,3,5,7,9
  1550. END_OF_FILE
  1551. if test 1289 -ne `wc -c <'demo.cddb'`; then
  1552.     echo shar: \"'demo.cddb'\" unpacked with wrong size!
  1553. fi
  1554. # end of 'demo.cddb'
  1555. fi
  1556. if test -f 'xmcd.man' -a "${1}" != "-c" ; then 
  1557.   echo shar: Will not clobber existing file \"'xmcd.man'\"
  1558. else
  1559. echo shar: Extracting \"'xmcd.man'\" \(13633 characters\)
  1560. sed "s/^X//" >'xmcd.man' <<'END_OF_FILE'
  1561. X.\"
  1562. X.\" @(#)xmcd.man    1.5 93/11/05
  1563. X.\"
  1564. X.\"   xmcd - Motif(tm) CD Audio Player
  1565. X.\"
  1566. X.\"   Copyright (C) 1993  Ti Kan
  1567. X.\"   E-mail: ti@amb.org
  1568. X.\"
  1569. X.\"   This program is free software; you can redistribute it and/or modify
  1570. X.\"   it under the terms of the GNU General Public License as published by
  1571. X.\"   the Free Software Foundation; either version 2 of the License, or
  1572. X.\"   (at your option) any later version.
  1573. X.\"
  1574. X.\"   This program is distributed in the hope that it will be useful,
  1575. X.\"   but WITHOUT ANY WARRANTY; without even the implied warranty of
  1576. X.\"   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1577. X.\"   GNU General Public License for more details.
  1578. X.\"
  1579. X.\"   You should have received a copy of the GNU General Public License
  1580. X.\"   along with this program; if not, write to the Free Software
  1581. X.\"   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1582. X.\"
  1583. X.TH XMCD 1 "30 Oct 1993" "v1.0"
  1584. X
  1585. X.SH "NAME"
  1586. Xxmcd \- CD digital audio player utility for X11/Motif
  1587. X
  1588. X.SH "SYNOPSIS"
  1589. X.B xmcd
  1590. X.nh
  1591. X[\fItoolkitoption ...] [-\fIdev\fP device] [-\fIdbdir\fP path]
  1592. X
  1593. X.SH "DESCRIPTION"
  1594. X.I Xmcd
  1595. Xis a program that allows the use of the CD-ROM drive as
  1596. Xa full-featured stereo compact-disc player for the X window system.
  1597. X.PP
  1598. XMost of the features found on real CD players are available in
  1599. X.I xmcd,
  1600. Xsuch as shuffle and repeat, track programming functions, and
  1601. Xa numeric keypad for direct track access.  Additional functions
  1602. Xinclude sample play, A to B segment play, volume control, etc.
  1603. X.PP
  1604. XA built-in CD database feature allows the CD artist/title and
  1605. Xtrack titles, and other associated general purpose text to be
  1606. Xmaintained and loaded as the program is started or when a
  1607. XCD is inserted.
  1608. X.PP
  1609. XFull feature-specific pop-up help is available for
  1610. Xall controls, indicators, text input fields, and lists.
  1611. X.PP
  1612. XOn systems with more than one CD-ROM drive, multiple invokations of
  1613. X.I xmcd
  1614. Xcan be used to operate each drive independently.
  1615. X.PP
  1616. X.I Xmcd
  1617. Xis designed to be easy to use, as the main window is
  1618. Xpurposely made to resemble a real CD player front panel.
  1619. XAll other pop-up windows are also designed to be as
  1620. Xintuitive as possible.  Moreover, while the use of a mouse
  1621. Xis natural with
  1622. X.I xmcd,
  1623. Xall functionality can also be operated via the keyboard.
  1624. XThis is in conformance to the guidelines published in the
  1625. X.I OSF/Motif Style Guide
  1626. Xfrom the Open Software Foundation.
  1627. X.PP
  1628. XThe internal architecture of
  1629. X.I xmcd
  1630. Xis designed from the start to be easily portable to
  1631. Xmany operating system platforms, and adaptible to the myriad of
  1632. XCD-ROM drives available.
  1633. X
  1634. X.SH "OPTIONS"
  1635. XAll standard \fIXt Intrinsics\fR toolkit options are supported.
  1636. XIn addition,
  1637. X.I xmcd
  1638. Xsupports the following options:
  1639. X.TP
  1640. X.I \-dev\ device
  1641. XSpecifies the path name to the raw CD-ROM device.  If this option is
  1642. Xnot used, the default device to be used is the first
  1643. Xdrive set up with the
  1644. X.I xmcd
  1645. Xconfiguration program (See below).
  1646. X.TP
  1647. X.I \-dbdir\ list
  1648. XSpecifies a colon-separated list of category directories where
  1649. Xthe CD database files are to be kept.  See the description for
  1650. X\fBXMCD_DBPATH\fR in the ENVIRONMENT section below.
  1651. X
  1652. X.SH "X RESOURCES"
  1653. X.I Xmcd
  1654. Xhas many adjustable X resources to customize its look and feel, as well
  1655. Xas its behavior.  Notably, the colors of virtually every feature on
  1656. X\fIxmcd\fP's windows can be changed, as well as the text fonts.  All
  1657. Xtext labels can also be changed (for example, to another language).
  1658. X.PP
  1659. XThere are too many resources to list here, but the resource names
  1660. Xand their defaults (plus descriptive comments) can be found in the
  1661. X\fBLIBDIR\fI/app-defaults/XMcd\fR
  1662. Xfile (where LIBDIR is typically \fI/usr/lib/X11\fP).
  1663. XIt is not recommended
  1664. Xthat you change values in the \fBLIBDIR\fI/app-defaults/XMcd\fR file,
  1665. Xunless you want the changes to be forced upon all users of
  1666. X.I xmcd
  1667. Xon the system.  Instead, make a copy of this file, change the copy as you
  1668. Xsee fit, then place it in your home directory.  Your custom resource
  1669. Xsettings will then override the defaults when
  1670. X.I xmcd
  1671. Xis subsequently started.  Alternatively, you may also place specific
  1672. Xresources you wish to override in the
  1673. X.I .Xdefaults
  1674. Xfile in your home directory.
  1675. X
  1676. X.SH "DEVICE CONFIGURATION"
  1677. XThe X resources described in the previous section affect the
  1678. Xgeneral appearance and behavior of
  1679. X.I xmcd.
  1680. XThere are additional configurable parameters that must vary on a
  1681. Xper-drive basis.  For example, in some cases
  1682. X.I xmcd
  1683. Xmust operate the drive differently depending upon the brand
  1684. Xand model of the drive.  Thus, there must be a separate
  1685. Xconfiguration file for these parameters \fIper-device\fP.
  1686. XThe default file is \fBXMCDLIB\fI/config/\fBDEVICE\fR
  1687. X(where XMCDLIB is typically \fI/usr/lib/X11/xmcd\fP and DEVICE is
  1688. Xthe base name of the raw device special file for the CD-ROM drive
  1689. X; e.g., \fI/usr/lib/X11/xmcd/config/rcd0\fP).
  1690. XA configuration program \fBXMCDLIB\fI/config/configure.sh\fR
  1691. Xis provided to make maintaining the device-specific configuration
  1692. Xfile easy (Note: on SCO systems the configuration program can
  1693. Xalso be invoked as "\fImkdev xmcd\fP").
  1694. X.PP
  1695. XYou should always use the configuration program to set the
  1696. Xdevice-specific parameters when installing
  1697. X.I xmcd
  1698. Xfor the first time, or when the CD-ROM hardware configuration has
  1699. Xchanged.  If this is not done then
  1700. X.I xmcd
  1701. Xwill probably not operate correctly with your CD-ROM drive.
  1702. X.PP
  1703. X.B WARNING:
  1704. XIf
  1705. X.I xmcd
  1706. Xis not correctly configured, you may cause
  1707. X.I xmcd
  1708. Xto deliver commands that are not supported by your CD-ROM drive.
  1709. XUnder some environments this may lead to system hang or crash.
  1710. X.PP
  1711. XYou can override some of the device-specific configuration parameters
  1712. Xby adding your own configuration files.
  1713. X.I Xmcd
  1714. Xwill also look in \fBHOME\fI/.xmcdcfg/\fBDEVICE\fR file for
  1715. Xdevice-specific parameters (where HOME is your home directory
  1716. Xand DEVICE is as specified above).  Parameters found in this file
  1717. Xwill override the system defaults (except those parameters that
  1718. Xcannot be overidden; see the comments in the
  1719. X\fBXMCDLIB\fI/config/dev.config\fR for details).
  1720. X
  1721. X.SH "USING XMCD"
  1722. XThe basic functions of
  1723. X.I xmcd
  1724. Xare designed to operate the same way as on a real stereo CD player.
  1725. XThe pictorial symbols used on the main window buttons are intended
  1726. Xto illustrate the function in a non-language-specific manner.  You
  1727. Xcan also change all main window buttons to display a text label
  1728. Xinstead of the pictorial symbols, but clicking the \fBdisplay\fP
  1729. Xcheck-box button (the "A" symbol enclosed in a box) located at the
  1730. Xupper left hand corner of the main window.
  1731. X.PP
  1732. XThe CD database and track programming functions are operated
  1733. Xvia the CD Database/Track Program Editor pop-up subwindow.
  1734. XYou activate the subwindow by pressing the \fBcddb/prog\fP button
  1735. X(file cabinet symbol) on the main window (See "CD DATABASE" below).
  1736. X.PP
  1737. XThere will not be a per-item description of all the features,
  1738. Xbecause full on-line help is available (See "ONLINE HELP" below).
  1739. X
  1740. X.SH "ONLINE HELP"
  1741. XFor general information about
  1742. X.I xmcd,
  1743. Xclick the \fBhelp\fP (question mark symbol) button on the
  1744. X.I xmcd
  1745. Xmain window.  You can also get specific help information
  1746. Xabout each button, control, indicator, text entry area,
  1747. Xselection list by positioning the mouse cursor over the
  1748. Xdesired item, then clicking the third mouse button.
  1749. XA pop-up window will appear, containing the relevant
  1750. Xhelp text.
  1751. X
  1752. X.SH "TRACK PROGRAMMING"
  1753. XYou can program
  1754. X.I xmcd
  1755. Xto play only certain tracks, in a custom sequence.
  1756. XTo do so, invoke the CD Database window (by pressing the
  1757. X.B cddb/prog
  1758. Xbutton on the main window).  Select the desired track by clicking on
  1759. Xthe entry in the
  1760. X.B Track list,
  1761. Xand click the
  1762. X.B Add
  1763. Xbutton to add to the play sequence.  Notice that the track number
  1764. Xappears in the
  1765. X.B Play sequence
  1766. Xtext field.  You can also type the track numbers, separated with
  1767. Xcommas, directly in the
  1768. X.B Play sequence
  1769. Xfield.  Repeat until all desired tracks have been entered,
  1770. Xthen press the Track Program
  1771. X.B Play
  1772. Xbutton in the CD Database window (not the
  1773. X.B Play/Pause
  1774. Xbutton on the main window) to start the program play.
  1775. X.PP
  1776. XDuring program play, the
  1777. X.B prog
  1778. Xindicator in the main window display area "illuminates".
  1779. X
  1780. X.SH "CD DATABASE"
  1781. XThe CD Database feature of
  1782. X.I xmcd
  1783. Xallows you to enter the CD artist/title, track titles, other
  1784. Xfree-form text (such as band information, lyrics, etc.) associated
  1785. Xwith the disc and tracks, and a track play program.  After this
  1786. Xinformation is typed in and saved to a database file, it will
  1787. Xautomatically appear on the
  1788. X.I xmcd
  1789. XCD Database window when the same CD is inserted again.
  1790. X.PP
  1791. XYou must perform a "save" operation (press the
  1792. X.B Save
  1793. Xbutton) after typing in the database information before ejecting
  1794. Xthe CD or exiting, or the information will be lost.  If this is
  1795. Xthe first time this CD database entry is being stored, you will
  1796. Xbe asked to select a category (rock, classical, jazz, etc.) under
  1797. Xwhich to classify the CD.  The category is used by
  1798. X.I xmcd
  1799. Xto determine the actual directory in the filesystem to write
  1800. Xthe database file.
  1801. X.PP
  1802. XOnce the database information has been saved, the
  1803. X.B cddb
  1804. Xindicator on the
  1805. X.I xmcd
  1806. Xmain window display area "illuminates".
  1807. X.PP
  1808. XYou must type the CD information into the database because the
  1809. XCD's table of contents (TOC) contains only the number of tracks and
  1810. Xthe starting address of each track, but not the actual disc
  1811. Xand track titles.
  1812. X.PP
  1813. XThe CD database window should prove to be intuitive to use.
  1814. XYou may use the on-line help system to obtain specific help
  1815. Xinformation about the various buttons and items.
  1816. X.PP
  1817. XThe CD database information is stored in text files, one per CD,
  1818. Xin a designated directory (category).  The path of this
  1819. Xdirectory is \fBXMCDLIB\fI/cddb/\fBCATEGORY\fR, where XMCDLIB
  1820. Xis the directory specified by the XMcd.libdir resource, and
  1821. XCATEGORY is the category name selected when
  1822. X.B Save
  1823. Xis performed.  The list of categories used is specified by the
  1824. XXMcd.dbdir resource.  In addition, if the XMcd.dbdir resource
  1825. Xcontains full directory path names, then these will be used
  1826. Xwithout prefixing the \fBXMCDLIB\fI/cddb\fR.
  1827. X.PP
  1828. XYou may view the list of directories that
  1829. X.I xmcd
  1830. Xwill search for CD database files by pressing the
  1831. X.B About...
  1832. Xbutton and viewing the pop-up information window.
  1833. X.PP
  1834. XThe file name of each CD database entry is a hexadecimal representation
  1835. Xof a special "magic" number computed by
  1836. X.I xmcd
  1837. Xbased on the number of tracks, track timings, and other available
  1838. Xinformation about this CD.  This method is used because there is
  1839. Xno reliable unique CD identifier to be found on the CD
  1840. Xitself (the CD standard allows for a readable IPC/barcode but
  1841. Xvery few CDs actually contain such information).
  1842. X.PP
  1843. XSince different pressings of the same CD may sometimes contain slightly
  1844. Xdifferent track timings, the resultant magic number computed by
  1845. X.I xmcd
  1846. Xon these CDs will be different.  Thus, if you load a CD that is not
  1847. Xthe same one that a CD database entry was created with (but is
  1848. Xactually the same CD title),
  1849. X.I xmcd
  1850. Xmay not recognize it and display the database information
  1851. Xautomatically when you insert the CD.  In this event, you can
  1852. Xsearch the CD database and find the appropriate entry, and establish
  1853. Xa "link" to it.  To do so, press the
  1854. X.B Link
  1855. Xbutton, and select the appropriate category on the popup window.
  1856. X.I Xmcd
  1857. Xwill then present another pop-up window containing a list of all
  1858. XCD database entries in the specified category (that has the same
  1859. Xnumber of tracks as the currently inserted disc).  Select the
  1860. Xappropriate entry and a link will be made in the CD database.
  1861. X.PP
  1862. XThe
  1863. X.B Link
  1864. Xfeature alleviates the need to type in CD database information again
  1865. Xand avoids duplicate CD database entries.
  1866. X.PP
  1867. XIn very rare occasions it is possible that the magic number of a CD
  1868. Xconflicts with that of another.  This is a problem that will be addressed
  1869. Xin a future release of
  1870. X.I xmcd.
  1871. X
  1872. X.SH "ENVIRONMENT"
  1873. XSeveral environment variables are currently recognized by
  1874. X.I xmcd,
  1875. Xand are described as follows:
  1876. X.IP \fBXMCD_LIBDIR\fR
  1877. XThis is used to override the XMcd.libdir resource.  This parameter
  1878. Xis the directory path under which
  1879. X.I xmcd's
  1880. Xconfiguration files, help files, and CD database files are located.
  1881. XThe default value of XMCD_LIBDIR on most systems
  1882. Xis \fI/usr/lib/X11/xmcd\fR.
  1883. X.IP \fBXMCD_DBPATH\fR
  1884. XThis is used to override the XMcd.dbdir resource, which is a
  1885. Xlist of CD database category directories to be used under
  1886. X\fBXMCDLIB\fI/cddb\fR (where XMCDLIB is the directory root
  1887. Xspecified by the XMcd.libdir resource or the XMCD_LIBDIR
  1888. Xenvironment variable).  You may also use
  1889. Xthe \fB-dbdir\fR command line option, which has the highest
  1890. Xprecedence.  An example of a XMCD_DBPATH string is as follows
  1891. X(note the colon separators):
  1892. X.sp
  1893. X.in +4
  1894. X\fBrock:classical:jazz:newage:soundtrack:misc\fR
  1895. X.in -4
  1896. X.sp
  1897. XThis string will cause
  1898. X.I xmcd
  1899. Xto search the following directories for CD database files:
  1900. X.sp
  1901. X.in +4
  1902. X\fBXMCDLIB\fI/cddb/rock\fR
  1903. X.br
  1904. X\fBXMCDLIB\fI/cddb/classical\fR
  1905. X.br
  1906. X\fBXMCDLIB\fI/cddb/jazz\fR
  1907. X.br
  1908. Xetc.
  1909. X.in -4
  1910. X.sp
  1911. XYou may also specify absolute path names in the XMCD_DBPATH
  1912. Xentries.  Example:
  1913. X.sp
  1914. X.in +4
  1915. X\fBrock:classical:/usr/john/industrial:/usr/john/techno\fR
  1916. X.in -4
  1917. X.IP \fBHOME\fR
  1918. XThis is used to determine your home directory.  If HOME is not
  1919. Xdefined, then
  1920. X.I xmcd
  1921. Xtries to obtain it from the \fI/etc/passwd\fR file.  The home
  1922. Xdirectory path is used by
  1923. X.I xmcd
  1924. Xto locate the \fI.xmcdcfg\fR directory.
  1925. X
  1926. X.SH "FILES"
  1927. X$HOME/.xmcdcfg/\(**
  1928. X.br
  1929. XXMCDLIB/cddb/\(**
  1930. X.br
  1931. XXMCDLIB/config/configure.sh
  1932. X.br
  1933. XXMCDLIB/config/dev.config
  1934. X.br
  1935. XXMCDLIB/config/\(**
  1936. X.br
  1937. XXMCDLIB/help/\(**
  1938. X.br
  1939. XLIBDIR/app-defaults/XMcd
  1940. X.br
  1941. XBINDIR/xmcd
  1942. X.br
  1943. XMANDIR/xmcd.1
  1944. X
  1945. X.SH "SEE ALSO"
  1946. XX(1).
  1947. X
  1948. X.SH "AUTHOR"
  1949. XTi Kan (\fIti@amb.org\fR)
  1950. X.br
  1951. XAMB Research Laboratories, Sunnyvale, CA, U.S.A.
  1952. X.PP
  1953. XComments, suggestions, and bug reports are always welcome.
  1954. END_OF_FILE
  1955. if test 13633 -ne `wc -c <'xmcd.man'`; then
  1956.     echo shar: \"'xmcd.man'\" unpacked with wrong size!
  1957. fi
  1958. # end of 'xmcd.man'
  1959. fi
  1960. echo shar: End of archive 1 \(of 13\).
  1961. cp /dev/null ark1isdone
  1962. MISSING=""
  1963. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 ; do
  1964.     if test ! -f ark${I}isdone ; then
  1965.     MISSING="${MISSING} ${I}"
  1966.     fi
  1967. done
  1968. if test "${MISSING}" = "" ; then
  1969.     echo You have unpacked all 13 archives.
  1970.     echo "Now read the README and INSTALL files for further instructions."
  1971.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1972. else
  1973.     echo You still need to unpack the following archives:
  1974.     echo "        " ${MISSING}
  1975. fi
  1976. ##  End of shell archive.
  1977. exit 0
  1978.  
  1979. -- 
  1980.     ///  Ti Kan                vorsprung durch technik
  1981.    ///   AMB Research Laboratories, Sunnyvale, CA. USA
  1982.   ///    ti@amb.org
  1983.  //////  ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
  1984. ///      ...!uunet!bazooka!ti
  1985.  
  1986.  
  1987.  
  1988. exit 0 # Just in case...
  1989. -- 
  1990.   // chris@Sterling.COM           | Send comp.sources.x submissions to:
  1991. \X/  Amiga: The only way to fly!  |    sources-x@sterling.com
  1992.        "It's intuitively obvious to the most casual observer..."
  1993.  GCS d++(--) -p+ c++ !l u++ e+ m+(-) s++/++ n h--- f+ g+++ w+ t++ r+ y+
  1994.