home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-12-19 | 83.9 KB | 3,284 lines |
- Newsgroups: comp.sources.x
- From: ti@bazooka.amb.org (Ti Kan)
- Subject: v21i064: xmcd - X11/Motif CD audio player, Part02/13
- Message-ID: <1993Dec19.193806.23920@sparky.sterling.com>
- X-Md4-Signature: 6caf6cee57eaf80fd38953bee9b96bb7
- Sender: chris@sparky.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Sun, 19 Dec 1993 19:38:06 GMT
- Approved: chris@sterling.com
-
- Submitted-by: ti@bazooka.amb.org (Ti Kan)
- Posting-number: Volume 21, Issue 64
- Archive-name: xmcd/part02
- Environment: X11, OSF/Motif
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 2 (of 13)."
- # Contents: XMcd.ad XKeysymDB dev.config install.sh configure.sh
- # makerel.sh makesrc.sh cdfunc.h cdlib.h dbprog.h geometry.h
- # Wrapped by ti@bazooka on Mon Nov 8 10:35:17 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'XMcd.ad' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'XMcd.ad'\"
- else
- echo shar: Extracting \"'XMcd.ad'\" \(19273 characters\)
- sed "s/^X//" >'XMcd.ad' <<'END_OF_FILE'
- X!
- X! @(#)XMcd.ad 1.118 93/09/25
- X!
- X! xmcd - Motif(tm) CD Audio Player
- X!
- X! Copyright (C) 1993 Ti Kan
- X! E-mail: ti@amb.org
- X!
- X! This program is free software; you can redistribute it and/or modify
- X! it under the terms of the GNU General Public License as published by
- X! the Free Software Foundation; either version 2 of the License, or
- X! (at your option) any later version.
- X!
- X! This program is distributed in the hope that it will be useful,
- X! but WITHOUT ANY WARRANTY; without even the implied warranty of
- X! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X! GNU General Public License for more details.
- X!
- X! You should have received a copy of the GNU General Public License
- X! along with this program; if not, write to the Free Software
- X! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X!
- X!
- X! These are general application resources for xmcd. There are also
- X! device-specific parameters in LIBDIR/config/DEVNAME, where LIBDIR
- X! if the path specified by the XMcd.libdir resource and DEVNAME is
- X! the device name specified by the XMcd.device resource.
- X!
- X
- X
- X!*
- X!* Color resource defaults
- X!*
- X!* The following should be used only on a color or grey-scale display.
- X!* You may wish to alter these color defaults. I find them aesthetically
- X!* pleasing as-is.
- X!*
- X
- XXMcd*mainForm.foreground: Black
- XXMcd*mainForm.background: Grey45
- XXMcd*dbModeIndicator.foreground: Orange
- XXMcd*dbModeIndicator.background: Black
- XXMcd*progModeIndicator.foreground: Orange
- XXMcd*progModeIndicator.background: Black
- XXMcd*timeModeIndicator.foreground: Orange
- XXMcd*timeModeIndicator.background: Black
- XXMcd*playModeIndicator.foreground: Orange
- XXMcd*playModeIndicator.background: Black
- XXMcd*trackIndicator.foreground: Green
- XXMcd*trackIndicator.background: Black
- XXMcd*indexIndicator.foreground: Green
- XXMcd*indexIndicator.background: Black
- XXMcd*timeIndicator.foreground: Green
- XXMcd*timeIndicator.background: Black
- XXMcd*keypadIndicator.foreground: Orange
- XXMcd*keypadIndicator.background: Black
- XXMcd*checkBox*selectColor: Yellow
- XXMcd*timeSelectBox*selectColor: Yellow
- X
- XXMcd*XmForm.foreground: Black
- XXMcd*XmForm.background: Grey65
- XXMcd*XmLabel.foreground: Black
- XXMcd*XmLabel.background: Grey65
- XXMcd*XmText.foreground: Black
- XXMcd*XmText.background: Grey75
- XXMcd*XmList.foreground: Black
- XXMcd*XmList.background: Grey75
- XXMcd*highlightColor: DarkOrchid
- XXMcd*topShadowColor: White
- XXMcd*bottomShadowColor: Black
- XXMcd*foreground: Black
- XXMcd*background: Grey65
- X
- X!*
- X!* Monochrome resource defaults
- X!*
- X!* These should be used only on a monochrome (1 bit plane) display.
- X!*
- X
- X!XMcd*dbModeIndicator.foreground: White
- X!XMcd*dbModeIndicator.background: Black
- X!XMcd*progModeIndicator.foreground: White
- X!XMcd*progModeIndicator.background: Black
- X!XMcd*timeModeIndicator.foreground: White
- X!XMcd*timeModeIndicator.background: Black
- X!XMcd*playModeIndicator.foreground: White
- X!XMcd*playModeIndicator.background: Black
- X!XMcd*trackIndicator.foreground: White
- X!XMcd*trackIndicator.background: Black
- X!XMcd*indexIndicator.foreground: White
- X!XMcd*indexIndicator.background: Black
- X!XMcd*timeIndicator.foreground: White
- X!XMcd*timeIndicator.background: Black
- X!XMcd*keypadIndicator.foreground: White
- X!XMcd*keypadIndicator.background: Black
- X!XMcd*foreground: Black
- X!XMcd*background: White
- X
- X
- X!*
- X!* Widget-specific or widget-type-specific resources
- X!*
- X!* These should not require any modification, except if the specified
- X!* fonts are not available, or to change the text string defaults to
- X!* a non-English language.
- X!*
- X
- X! Font defaults
- XXMcd*mainForm.checkBoxFrame*fontList: 6x10
- XXMcd*mainForm.XmPushButton*fontList: 6x10
- XXMcd*trackIndicator.fontList: -adobe-helvetica-*-o-*--24-240-75-75-p-130-*
- XXMcd*indexIndicator.fontList: -adobe-helvetica-*-o-*--*-140-*-*-p-*-*
- XXMcd*timeIndicator.fontList: -adobe-helvetica-*-o-*--24-240-75-75-p-130-*
- XXMcd*dbModeIndicator.fontList: -adobe-times-*-r-*--12-120-75-75-p-67-*
- XXMcd*progModeIndicator.fontList: -adobe-times-*-r-*--12-120-75-75-p-67-*
- XXMcd*timeModeIndicator.fontList: -adobe-times-*-r-*--12-120-75-75-p-67-*
- XXMcd*playModeIndicator.fontList: -adobe-times-*-r-*--12-120-75-75-p-67-*
- XXMcd*aboutPopup*fontList: -adobe-times-bold-i-*--*-240-*=chset1, \
- X -adobe-times-bold-i-*--*-120-*=chset2, \
- X -misc-fixed-medium-r-*--*-100-*=chset3, \
- X fixed
- XXMcd*dirSelectList.fontList: -adobe-helvetica-medium-r-*--12-120-*
- XXMcd*linkSelectList.fontList: -adobe-helvetica-medium-r-*--12-120-*
- XXMcd*extDiscInfoLabel.fontList: -adobe-helvetica-bold-r-*--12-120-*
- XXMcd*extTrackInfoLabel.fontList: -adobe-helvetica-bold-r-*--12-120-*
- XXMcd*keypadForm*keypadLabel.fontList: fixed
- XXMcd*keypadForm*keypadIndicator.fontList: \
- X -adobe-helvetica-*-o-*--*-140-*-*-p-*-*
- XXMcd*keypadForm*keypadCancelButton.fontList: fixed
- XXMcd*keypadForm*keypadClearButton.fontList: fixed
- XXMcd*keypadForm*fontList: -adobe-helvetica-bold-r-*--12-120-*
- X
- XXMcd*helpForm*XmPushButton*fontList: fixed
- X
- XXMcd*XmList.fontList: -adobe-helvetica-medium-r-*--12-120-*=chset1, \
- X -adobe-helvetica-bold-r-*--12-120-*=chset2, \
- X fixed
- XXMcd*XmText.fontList: -adobe-helvetica-medium-r-*--12-120-*
- XXMcd*XmScale.fontList: 6x10
- XXMcd*fontList: fixed
- X
- X! Text string defaults
- XXMcd*checkBox*button_0.labelString: disp
- XXMcd*checkBox*button_1.labelString: lock
- XXMcd*checkBox*button_2.labelString: rept
- XXMcd*checkBox*button_3.labelString: shuf
- XXMcd*ejectButton.labelString: eject
- XXMcd*powerOffButton.labelString: quit
- XXMcd*dbprogButton.labelString: cddb\nprog
- XXMcd*helpButton.labelString: help
- XXMcd*timeButton.labelString: time
- XXMcd*abButton.labelString: a->b
- XXMcd*sampleButton.labelString: samp
- XXMcd*keypadButton.labelString: kpad
- XXMcd*playPauseButton.labelString: play / pause
- XXMcd*stopButton.labelString: stop
- XXMcd*prevTrackButton.labelString: < track
- XXMcd*nextTrackButton.labelString: track >
- XXMcd*prevIndexButton.labelString: < index
- XXMcd*nextIndexButton.labelString: index >
- XXMcd*rewButton.labelString: << rew
- XXMcd*ffButton.labelString: ff >>
- XXMcd*keypadForm.dialogTitle: Keypad
- XXMcd*keypadLabel.labelString: Direct track access
- XXMcd*keypadNumButton0.labelString: 0
- XXMcd*keypadNumButton1.labelString: 1
- XXMcd*keypadNumButton2.labelString: 2
- XXMcd*keypadNumButton3.labelString: 3
- XXMcd*keypadNumButton4.labelString: 4
- XXMcd*keypadNumButton5.labelString: 5
- XXMcd*keypadNumButton6.labelString: 6
- XXMcd*keypadNumButton7.labelString: 7
- XXMcd*keypadNumButton8.labelString: 8
- XXMcd*keypadNumButton9.labelString: 9
- XXMcd*keypadEnterButton.labelString: Enter
- XXMcd*keypadCancelButton.labelString: Cancel
- XXMcd*keypadClearButton.labelString: Clear
- XXMcd*dbprogForm.dialogTitle: CD Database / Track Program Editor
- XXMcd*aboutButton.labelString: About...
- XXMcd*discTitleLabel.labelString: Disc artist / Title
- XXMcd*discLabel.labelString: Disc
- XXMcd*extDiscInfoButton.labelString: Ext Info
- XXMcd*trackListLabel.labelString: Track / Time / Title
- XXMcd*timeSelectLabel.labelString: Time
- XXMcd*timeSelectBox*button_0.labelString: total
- XXMcd*timeSelectBox*button_1.labelString: track
- XXMcd*trackTitleLabel.labelString: Track title edit
- XXMcd*trackLabel.labelString: Track
- XXMcd*extTrackInfoButton.labelString: Ext Info
- XXMcd*programLabel.labelString: Trk Prog
- XXMcd*addProgramButton.labelString: Add to
- XXMcd*clearProgramButton.labelString: Clear
- XXMcd*playProgramButton.labelString: Play
- XXMcd*programSequenceLabel.labelString: Program sequence
- XXMcd*saveDatabaseButton.labelString: Save
- XXMcd*loadDatabaseButton.labelString: Load
- XXMcd*linkDatabaseButton.labelString: Link
- XXMcd*dbprogCancelButton.labelString: Cancel
- XXMcd*dirSelectForm.dialogTitle: CD Database Directory Selection
- XXMcd*dirSelectLabel.labelString: Choose one
- XXMcd*dirSelectOkButton.labelString: OK
- XXMcd*dirSelectCancelButton.labelString: Cancel
- XXMcd*linkSelectForm.dialogTitle: CDDB Link Entry Selection
- XXMcd*linkSelectLabel.labelString: Choose one
- XXMcd*linkSelectOkButton.labelString: OK
- XXMcd*linkSelectCancelButton.labelString: Cancel
- XXMcd*extDiscInfoForm.dialogTitle: Disc Information
- XXMcd*extDiscInfoOkButton.labelString: OK
- XXMcd*extDiscInfoClearButton.labelString: Clear
- XXMcd*extDiscInfoCancelButton.labelString: Cancel
- XXMcd*extTrackInfoForm.dialogTitle: Track Information
- XXMcd*extTrackInfoOkButton.labelString: OK
- XXMcd*extTrackInfoClearButton.labelString: Clear
- XXMcd*extTrackInfoCancelButton.labelString: Cancel
- XXMcd*helpForm.dialogTitle: Help
- XXMcd*helpOkButton.labelString: OK
- X
- X! Main window size
- XXMcd*mainForm.width: 390
- XXMcd*mainForm.height: 140
- X
- X! Keypad popup window size
- XXMcd*keypadForm.width: 150
- XXMcd*keypadForm.height: 225
- X
- X! Database/Program popup window size
- XXMcd*dbprogForm.width: 450
- XXMcd*dbprogForm.height: 455
- X
- X! Disc Extended Info popup window size
- XXMcd*extDiscInfoForm.width: 400
- XXMcd*extDiscInfoForm.height: 350
- X
- X! Track Extended Info popup window size
- XXMcd*extTrackInfoForm.width: 400
- XXMcd*extTrackInfoForm.height: 350
- X
- X! Help popup window size
- XXMcd*helpForm.width: 400
- XXMcd*helpForm.height: 350
- X
- X! Directory Selector popup window size
- XXMcd*dirSelectForm.width: 250
- XXMcd*dirSelectForm.height: 230
- X
- X! Directory Selector popup window size
- XXMcd*linkSelectForm.width: 350
- XXMcd*linkSelectForm.height: 230
- X
- X! Main window button-face label option
- X! Set to PIXMAP for pictoral labels, STRING for text labels
- XXMcd*mainForm.XmPushButton.labelType: PIXMAP
- XXMcd*mainForm.checkBox*labelType: PIXMAP
- X
- X! Misc defaults
- XXMcd*mainForm*highlightThickness: 0
- XXMcd*mainForm*checkBox*indicatorSize: 13
- XXMcd*mainForm*checkBox*highlightThickness: 1
- XXMcd*mainForm*checkBox*button_0.borderWidth: 1
- XXMcd*mainForm*checkBox*button_1.borderWidth: 1
- XXMcd*mainForm*checkBox*button_2.borderWidth: 1
- XXMcd*mainForm*checkBox*button_3.borderWidth: 1
- XXMcd*timeSelectBox*indicatorSize: 13
- XXMcd*timeSelectBox*highlightThickness: 1
- XXMcd*timeSelectBox*button_0.borderWidth: 1
- XXMcd*timeSelectBox*button_1.borderWidth: 1
- X
- XXMcd*XmLabel.alignment: ALIGNMENT_CENTER
- XXMcd*XmList.highlightThickness: 1
- XXMcd*XmPushButton.highlightThickness: 2
- XXMcd*XmText.highlightThickness: 2
- XXMcd*XmText.autoShowCursorPosition: True
- XXMcd*XmText.cursorPositionVisible: True
- X
- XXMcd*levelScale*translations: #override\n\
- X <FocusIn>: focuschg(levelScale)\n\
- X <FocusOut>: focuschg(levelScale)
- X
- X
- X!*
- X!* Short cut key defaults
- X!*
- X!* These should not require any modifications.
- X!* These are processed by xmcd and installed as translations.
- X!* The modifier key specification must be one of Shift, Ctrl, Lock,
- X!* Mod1, Mod2, Mod3, Mod4 or Mod5.
- X!*
- X
- X! Main window
- XXMcd.buttonLabelKey:\
- X <Key>i: hotkey(checkBoxFrame*button_0,Arm)\n
- XXMcd.lockKey: <Key>l: hotkey(checkBoxFrame*button_1,Arm)\n
- XXMcd.repeatKey: <Key>e: hotkey(checkBoxFrame*button_2,Arm)\n
- XXMcd.shuffleKey:\
- X <Key>u: hotkey(checkBoxFrame*button_3,Arm)\n
- XXMcd.ejectKey: <Key>j: hotkey(ejectButton,ArmAndActivate)\n
- XXMcd.powerOffKey:\
- X <Key>q: hotkey(powerOffButton,ArmAndActivate)\n\
- X Mod1<Key>q: hotkey(powerOffButton,ArmAndActivate)\n
- XXMcd.dbprogKey: <Key>d: hotkey(dbprogButton,ArmAndActivate)\n
- XXMcd.helpKey: <Key>h: hotkey(helpButton,ArmAndActivate)\n\
- X Shift<Key>question: hotkey(helpButton,ArmAndActivate)\n
- XXMcd.timeKey: <Key>t: hotkey(timeButton,ArmAndActivate)\n
- XXMcd.abKey: <Key>a: hotkey(abButton,ArmAndActivate)\n
- XXMcd.sampleKey: <Key>m: hotkey(sampleButton,ArmAndActivate)\n
- XXMcd.keypadKey: <Key>k: hotkey(keypadButton,ArmAndActivate)\n
- XXMcd.playPauseKey:\
- X <Key>p: hotkey(playPauseButton,ArmAndActivate)\n
- XXMcd.stopKey: <Key>s: hotkey(stopButton,ArmAndActivate)\n
- XXMcd.prevTrackKey:\
- X Shift<Key>c: hotkey(prevTrackButton,ArmAndActivate)\n\
- X <Key>Prior: hotkey(prevTrackButton,ArmAndActivate)\n\
- X <Key>bracketleft: hotkey(prevTrackButton,ArmAndActivate)\n\
- X Ctrl<Key>F1: hotkey(prevTrackButton,ArmAndActivate)\n
- XXMcd.nextTrackKey:\
- X <Key>c: hotkey(nextTrackButton,ArmAndActivate)\n\
- X <Key>Next: hotkey(nextTrackButton,ArmAndActivate)\n\
- X <Key>bracketright: hotkey(nextTrackButton,ArmAndActivate)\n\
- X Ctrl<Key>F2: hotkey(nextTrackButton,ArmAndActivate)\n
- XXMcd.prevIndexKey:\
- X Shift<Key>x: hotkey(prevIndexButton,ArmAndActivate)\n\
- X Ctrl<Key>F3: hotkey(prevIndexButton,ArmAndActivate)\n
- XXMcd.nextIndexKey:\
- X <Key>x: hotkey(nextIndexButton,ArmAndActivate)\n\
- X Ctrl<Key>F4: hotkey(nextIndexButton,ArmAndActivate)\n
- XXMcd.rewKey: Ctrl<Key>F5: hotkey(rewButton,Arm)\n\
- X Ctrl<Key>F6: hotkey(rewButton,Activate,Disarm)\n
- XXMcd.ffKey: Ctrl<Key>F7: hotkey(ffButton,Arm)\n\
- X Ctrl<Key>F8: hotkey(ffButton,Activate,Disarm)\n
- X
- X! Keypad window
- XXMcd.keypadNumKey0:\
- X <Key>0: hotkey(keypadNumButton0,ArmAndActivate)\n
- XXMcd.keypadNumKey1:\
- X <Key>1: hotkey(keypadNumButton1,ArmAndActivate)\n
- XXMcd.keypadNumKey2:\
- X <Key>2: hotkey(keypadNumButton2,ArmAndActivate)\n
- XXMcd.keypadNumKey3:\
- X <Key>3: hotkey(keypadNumButton3,ArmAndActivate)\n
- XXMcd.keypadNumKey4:\
- X <Key>4: hotkey(keypadNumButton4,ArmAndActivate)\n
- XXMcd.keypadNumKey5:\
- X <Key>5: hotkey(keypadNumButton5,ArmAndActivate)\n
- XXMcd.keypadNumKey6:\
- X <Key>6: hotkey(keypadNumButton6,ArmAndActivate)\n
- XXMcd.keypadNumKey7:\
- X <Key>7: hotkey(keypadNumButton7,ArmAndActivate)\n
- XXMcd.keypadNumKey8:\
- X <Key>8: hotkey(keypadNumButton8,ArmAndActivate)\n
- XXMcd.keypadNumKey9:\
- X <Key>9: hotkey(keypadNumButton9,ArmAndActivate)\n
- XXMcd.keypadEnterKey:\
- X <Key>e: hotkey(keypadEnterButton,ArmAndActivate)\n
- XXMcd.keypadClearKey:\
- X <Key>l: hotkey(keypadClearButton,ArmAndActivate)\n
- XXMcd.keypadCancelKey:\
- X <Key>c: hotkey(keypadCancelButton,ArmAndActivate)\n\
- X Mod1<Key>q: hotkey(keypadCancelButton,ArmAndActivate)\n
- X
- X
- X!*
- X!* CD-player behavior control resources
- X!*
- X!* You may want to modify these parameters to suit your set-up.
- X!*
- X!* In parameters below that specifies audio blocks, each audio block is
- X!* 1/75 second of playback time.
- X!*
- X!* Note that all msec time parameters used below are subject to the
- X!* resolution of your system's software timer as provided in the
- X!* XtAppAddTimeOut() library call.
- X!*
- X
- X! Device to open for the CD-ROM player interface
- X!
- X! Examples:
- X! /dev/rcd0 (SCO ODT)
- X! /dev/rcdrom/cd0 (UNIX SVR4.0/ix86)
- X! /dev/rcdrom/cdrom1 (UNIX SVR4.2/ix86)
- X! /dev/rdsk/m187_c0d3s7 (UNIX SVR4.0/m88k, m187 controller 0, SCSI ID 3)
- X! /dev/rdsk/c0d3s0 (HP-UX)
- X! /dev/rsr0 (SunOS 4.x)
- X!
- XXMcd.device: /dev/rcd0
- X
- X! Library directory path, as the root of xmcd configuration files
- X! and CD database directories.
- X! (The XMCD_LIBDIR env variable overrides this resource)
- XXMcd.libdir: /usr/lib/X11/xmcd
- X
- X! CD database directories. If a relative path name is used, then it is
- X! assumed to be under XMcd.libdir/cddb.
- X! (The XMCD_DBPATH env variable overrides this resource)
- XXMcd.dbdir: rock:jazz:newage:classical:soundtrack:misc:data
- X
- X! The maximum number of CD Database directories supported.
- X! The valid range is 1 to 100.
- XXMcd.maxDbdirs: 20
- X
- X! CD database file permissions
- XXMcd.dbFileMode: 0664
- X
- X! Whether to disable the CD-ROM drive's front panel eject button when
- X! a disc is loaded. Normally this should be set to True. See also
- X! the caddyLockSupport and ejectSupport parameters in the device-specific
- X! configuration file.
- XXMcd.caddyLock: True
- X
- X! Play status poll interval during audio playback. (msec)
- X! This should be less than 500 to get satisfactory display update
- X! response.
- XXMcd.statusPollInterval: 260
- X
- X! If no disc, poll interval for disc insertion (msec)
- XXMcd.insertPollInterval: 2000
- X
- X! When previous track/index button pressed, if this number of audio blocks
- X! has been played in the current track/index, then playback will start from
- X! the beginning of the current track/index instead of the previous one.
- XXMcd.previousThreshold: 100
- X
- X! During FF/REW search operations, the number of audio blocks to skip
- X! to the next audible sample
- XXMcd.searchSkipBlocks: 145
- X
- X! During FF/REW search operations, the amount of time to pause between
- X! each audio sample (msec)
- XXMcd.searchPauseInterval: 55
- X
- X! During FF/REW search operations, after this many audio samples the
- X! search speed will be tripled (i.e., the searchSkipBlocks parameter is
- X! internally multiplied by 3). If this parameter is set to 0, then
- X! no speedup will occur.
- XXMcd.searchSpeedUpCount: 15
- X
- X! During FF/REW search operations, the percentage of the current normal
- X! playback volume to be used for audio samples. This is used only if
- X! the volumeControlSupport device specific parameter is set to True.
- XXMcd.searchVolumePercent: 35
- X
- X! During FF/REW search operations, the minimum volume setting for audio
- X! samples. This is used only if the volumeControlSupport device specific
- X! parameter is set to True.
- XXMcd.searchMinVolume: 2
- X
- X! During Sample playback operations, the number of audio blocks to play
- X! in each track.
- XXMcd.sampleBlocks: 750
- X
- X! When any indicator is set to blink mode, the blinking interval used (msec).
- X! This is used for the time display during pause, A->B mode indicator, etc.
- XXMcd.displayBlinkOnInterval: 850
- XXMcd.displayBlinkOffInterval: 150
- X
- X! Whether error messages are output to stderr when xmcd encounters
- X! errors when delivering commands to the CD-ROM drive. You should
- X! only set this to False if you have a non SCSI-2 compliant CD-ROM
- X! drive that causes xmcd to display lots of error messages.
- XXMcd.showScsiErrMsg: True
- X
- X! Whether main window controls change their foreground color in response
- X! to keyboard focus change.
- XXMcd.mainShowFocus: True
- X
- X
- X!*
- X!* Application-specific message string resources
- X!*
- X!* These need only be changed for non-English languages
- X!*
- XXMcd.mainWindowTitle: Motif CD Audio Player
- XXMcd.dbModeMsg: cddb
- XXMcd.progModeMsg: prog
- XXMcd.elapseMsg: elapse
- XXMcd.remainTrackMsg: r-trac
- XXMcd.remainDiscMsg: r-disc
- XXMcd.playMsg: play
- XXMcd.pauseMsg: pause
- XXMcd.readyMsg: ready
- XXMcd.sampleMsg: sample
- XXMcd.usageMsg: Usage:
- XXMcd.badOptsMsg: The following options are unrecognized:
- XXMcd.noDiscMsg: no disc
- XXMcd.devBusyMsg: cd busy
- XXMcd.dataMsg: data
- XXMcd.warningMsg: Warning
- XXMcd.fatalMsg: Fatal Error
- XXMcd.confirmMsg: Confirm
- XXMcd.infoMsg: Information
- XXMcd.aboutMsg: About
- XXMcd.quitMsg: Really Quit?
- XXMcd.noMemMsg: Out of virtual memory!
- XXMcd.noHelpMsg: Help is not available on this topic.
- XXMcd.noLinkMsg: There is no likely CDDB entry to link to.
- XXMcd.noDbMsg: No CD Database directory.
- XXMcd.notRomMsg: Device %s is not a CD-ROM!
- XXMcd.notScsi2Msg: Device %s is not SCSI-2 compliant.
- XXMcd.modeErrMsg: \
- XXmcd binary permissions error:\n\
- XIt should be setuid root. Please have\n\
- Xyour system administrator correct this.
- XXMcd.statErrMsg: Cannot stat device %s.
- XXMcd.nodeErrMsg: %s is not a character special device!
- XXMcd.seqFmtErrMsg: Program sequence string format error.
- XXMcd.dbdirsErrMsg: XMcd.maxDbdirs resource error.
- XXMcd.recovErrMsg: Recovering from audio playback error...
- XXMcd.maxErrMsg: Too many errors.
- XXMcd.savErrForkMsg: File not saved:\nCannot fork. (errno %d)
- XXMcd.savErrSuidMsg: File not saved:\nCannot setuid to %d.
- XXMcd.savErrOpenMsg: File not saved:\nCannot open file for writing.
- XXMcd.savErrKilledMsg: File not saved:\nChild killed. (signal %d)
- XXMcd.lnkErrForkMsg: File not linked:\nCannot fork. (errno %d)
- XXMcd.lnkErrSuidMsg: File not linked:\nCannot setuid to %d.
- XXMcd.lnkErrLinkMsg: File not linked:\nCannot link.
- XXMcd.lnkErrKilledMsg: File not linked:\nChild killed. (signal %d)
- X
- X
- X!*
- X!* General resources
- X!*
- X
- XXMcd*recomputeSize: True
- XXMcd*defaultPosition: True
- XXMcd*highlightThickness: 0
- XXMcd*defaultButtonShadowThickness: 0
- XXMcd*borderWidth: 0
- XXMcd*doubleClickInterval: 400
- X
- END_OF_FILE
- if test 19273 -ne `wc -c <'XMcd.ad'`; then
- echo shar: \"'XMcd.ad'\" unpacked with wrong size!
- fi
- # end of 'XMcd.ad'
- fi
- if test -f 'XKeysymDB' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'XKeysymDB'\"
- else
- echo shar: Extracting \"'XKeysymDB'\" \(1149 characters\)
- sed "s/^X//" >'XKeysymDB' <<'END_OF_FILE'
- X! @(#)XKeysymDB 1.2 93/10/30
- X!
- X!---------------------------------------------------------------------------
- X! This file is normally supplied as part of the OSF/Motif distribution.
- X! It is carried with the XMCD CD Audio Player binary release, and installed
- X! in the proper place in case the target system does not already have this
- X! file installed. The Motif code requires the presence of this file
- X! in order to run properly.
- X!---------------------------------------------------------------------------
- X!
- X! OSF Keysyms
- X!
- XosfBackSpace :1004FF08
- XosfInsert :1004FF63
- XosfDelete :1004FFFF
- XosfCopy :1004FF02
- XosfCut :1004FF03
- XosfPaste :1004FF04
- X
- XosfAddMode :1004FF31
- XosfPrimaryPaste :1004FF32
- XosfQuickPaste :1004FF33
- X
- XosfPageUp :1004FF41
- XosfPageDown :1004FF42
- X
- XosfEndLine :1004FF57
- XosfBeginLine :1004FF58
- X
- XosfActivate :1004FF44
- X
- XosfMenuBar :1004FF45
- X
- XosfClear :1004FF0B
- XosfCancel :1004FF69
- XosfHelp :1004FF6A
- XosfMenu :1004FF67
- XosfSelect :1004FF60
- XosfUndo :1004FF65
- X
- XosfLeft :1004FF51
- XosfUp :1004FF52
- XosfRight :1004FF53
- XosfDown :1004FF54
- X
- X! DEC specific keysyms
- X!
- XDRemove :1000FF00
- END_OF_FILE
- if test 1149 -ne `wc -c <'XKeysymDB'`; then
- echo shar: \"'XKeysymDB'\" unpacked with wrong size!
- fi
- # end of 'XKeysymDB'
- fi
- if test -f 'dev.config' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'dev.config'\"
- else
- echo shar: Extracting \"'dev.config'\" \(6077 characters\)
- sed "s/^X//" >'dev.config' <<'END_OF_FILE'
- X!
- X! @(#)dev.config 1.22 93/09/30
- X!
- X! xmcd device-specific configuration file
- X!
- X! xmcd - Motif(tm) CD Audio Player
- X!
- X! Copyright (C) 1993 Ti Kan
- X! E-mail: ti@amb.org
- X!
- X! This program is free software; you can redistribute it and/or modify
- X! it under the terms of the GNU General Public License as published by
- X! the Free Software Foundation; either version 2 of the License, or
- X! (at your option) any later version.
- X!
- X! This program is distributed in the hope that it will be useful,
- X! but WITHOUT ANY WARRANTY; without even the implied warranty of
- X! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X! GNU General Public License for more details.
- X!
- X! You should have received a copy of the GNU General Public License
- X! along with this program; if not, write to the Free Software
- X! Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X!
- X!
- X! Install this file as LIBDIR/config/DEVNAME, and edit to suit the
- X! capability of the CD-ROM device. LIBDIR is the XMcd.libdir resource
- X! (or XMCD_LIBDIR env variable) and DEVNAME is the XMcd.device resource
- X! (or specified with the -dev option).
- X!
- X! Parameters that are labeled as "No-override" are privileged and
- X! cannot be overridden by the user in their private configuration
- X! files.
- X!
- X
- X! The logical drive number that you want this device to map to. This
- X! number is displayed on the main window title bar.
- X! (No-override)
- X!
- XlogicalDriveNumber: 0
- X
- X! CD-ROM drive vendor code. If your CD-ROM drive is not SCSI-2 compliant,
- X! this is used to specify that xmcd should issue vendor-unique commands
- X! rather than SCSI-2 commands.
- X!
- X! Note:
- X! a) Changing this parameter is useful only if your xmcd binary is
- X! compiled to provide vendor-unique commands support.
- X! b) The existence of a vendor-unique module does not imply that all
- X! models of CD-ROM made by that manufacturer must use the vendor-
- X! unique mode. For example, the Toshiba XM-3301 and XM-3401 are
- X! SCSI-2 compliant and should use vendor code 0.
- X!
- X! The supported codes are:
- X! 0 SCSI-2 standard
- X! 1 Toshiba vendor-unique
- X! 2 NEC vendor-unique
- X! 3 Pioneer vendor-unique
- X! 4 Hitachi vendor-unique
- X!
- X! (No-override)
- X!
- XdriveVendorCode: 0
- X
- X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
- X! whether it supports the Play Audio (12) SCSI command. The drive
- X! must support one of Play Audio (12) or Play Audio MSF in order to
- X! be useful with xmcd.
- X! (No-override)
- X!
- XplayAudio12Support: False
- X
- X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
- X! Whether it supports the Play Audio MSF SCSI command. The drive
- X! must support one of Play Audio (12) or Play Audio MSF in order
- X! to be useful with xmcd.
- X! (No-override)
- X!
- XplayAudioMSFSupport: True
- X
- X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
- X! whether it supports the Play Audio (10) SCSI command. This command
- X! is used only as a fallback to the Play Audio (12) and Play Audio MSF
- X! commands in case they fail.
- X! (No-override)
- X!
- XplayAudio10Support: True
- X
- X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
- X! Whether it supports the Play Audio Track/Index SCSI command. This
- X! command must be supported in order to use the Prev Index and Next
- X! Index buttons.
- X! (No-override)
- X!
- XplayAudioTISupport: True
- X
- X! Whether the CD-ROM drive supports the disc load feature of the
- X! Start/Stop Unit SCSI command.
- X! (No-override)
- X!
- XloadSupport: False
- X
- X! Whether the CD-ROM drive supports the disc eject feature of the
- X! Start/Stop Unit SCSI command. If this item is False, it will also
- X! automatically force the caddyLockSupport parameter below to False.
- X! (No-override)
- X!
- XejectSupport: True
- X
- X! Whether the CD-ROM drive supports setting the audio playback volume
- X! in software via the audio page of the Mode Select SCSI command.
- X! (No-override)
- X!
- XvolumeControlSupport: True
- X
- X! Whether the block descriptor should be disabled in the
- X! mode sense/mode select command data (these are used to configure
- X! the audio playback volume). You may need to change this setting
- X! to get the volume control slider to work on some SCSI-2 CD-ROM
- X! drives. This parameter is used only if volumeControlSupport is
- X! True.
- X! (No-override)
- X!
- XvolumeControlSetDBD: False
- X
- X! Select the volume control taper curve. You may need to experiment
- X! with this parameter to get the smoothest range of control from the
- X! volume control slider. This parameter is used only if
- X! volumeControlSupport is True.
- X!
- X! Supported values for this parameter:
- X! 0 Apply a linear taper.
- X! 1 Apply an inverse-squared taper (big change at low settings,
- X! diminishing as the slider moves toward the upper range).
- X! 2 Apply a squared taper (Small change at low settings,
- X! increasing as the slider moves toward the upper range).
- X!
- XvolumeControlTaper: 0
- X
- X! The base SCSI audio volume value that corresponds to the minimum
- X! setting of the volume control slider. This is used to adjust the
- X! range of audio volume control. The legal range is 0 to 255.
- X! This parameter is used only if volumeControlSupport is True.
- X! (No-override)
- X!
- XscsiAudioVolumeBase: 0
- X
- X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
- X! whether it supports the Pause/Resume SCSI command.
- X! (No-override)
- X!
- XpauseResumeSupport: True
- X
- X! Whether the CD-ROM drive supports the Prevent/Allow Medium Removal
- X! SCSI command. If this item is False, it will also automatically
- X! force the XMcd.caddyLock resource to False.
- X! (No-override)
- X!
- XcaddyLockSupport: True
- X
- X! For any given play audio command, the minimum number of audio blocks
- X! that must be played. Some CD-ROM drives have a minimum limit.
- X! Each block represents 1/75 second of audio.
- X! (No-override)
- X!
- XminimumPlayBlocks: 25
- X
- X! Whether the CD should be spun-down after it is loaded. This reduces
- X! wear on the drive if there won't be any audio playback activity for
- X! a while.
- XspinDownOnLoad: True
- X
- X! Whether the CD should be ejected on program exit.
- X! This option is only effective if ejectSupport is True.
- XejectOnExit: False
- X
- X! Whether the CD should be stopped on program exit.
- XstopOnExit: True
- X
- END_OF_FILE
- if test 6077 -ne `wc -c <'dev.config'`; then
- echo shar: \"'dev.config'\" unpacked with wrong size!
- fi
- # end of 'dev.config'
- fi
- if test -f 'install.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'install.sh'\"
- else
- echo shar: Extracting \"'install.sh'\" \(7437 characters\)
- sed "s/^X//" >'install.sh' <<'END_OF_FILE'
- X:
- X#
- X# @(#)install.sh 1.28 93/11/05
- X#
- X# Script to install xmcd software binary and support files on
- X# the target system.
- X#
- X# xmcd - Motif(tm) CD Audio Player
- X#
- X# Copyright (C) 1993 Ti Kan
- X# E-mail: ti@amb.org
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X
- XPATH=/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/local/bin
- Xexport PATH
- X
- XCATEGORIES="rock jazz newage classical soundtrack misc data"
- XXMCD_VER="1.0"
- X
- X
- X#
- X# Utility functions
- X#
- X
- Xgetstr()
- X{
- X $ECHO "$* \c"
- X read ANS
- X if [ -n "$ANS" ]
- X then
- X return 0
- X else
- X return 1
- X fi
- X}
- X
- Xgetyn()
- X{
- X if [ -z "$YNDEF" ]
- X then
- X YNDEF=y
- X fi
- X
- X while :
- X do
- X $ECHO "$*? [${YNDEF}] \c"
- X read ANS
- X if [ -n "$ANS" ]
- X then
- X case $ANS in
- X [yY])
- X RET=0
- X break
- X ;;
- X [nN])
- X RET=1
- X break
- X ;;
- X *)
- X $ECHO "Please answer y or n"
- X ;;
- X esac
- X else
- X if [ $YNDEF = y ]
- X then
- X RET=0
- X else
- X RET=1
- X fi
- X break
- X fi
- X done
- X
- X YNDEF=
- X return $RET
- X}
- X
- X
- X#
- X# Main execution starts here
- X#
- X
- X# Use SysV echo if possible
- Xif [ -x /usr/5bin/echo ]
- Xthen
- X ECHO=/usr/5bin/echo
- Xelse
- X ECHO=echo
- Xfi
- X
- X# Use nawk if possible
- Xif ($ECHO "x" | nawk '{ print $0 }' -) >/dev/null 2>&1
- Xthen
- X AWK=nawk
- Xelse
- X AWK=awk
- Xfi
- X
- XNOREMOVE=0
- Xif [ $# -eq 1 -a "$1" = "-n" ]
- Xthen
- X NOREMOVE=1
- Xfi
- X
- X# Sanity check
- X
- X(id | fgrep 'uid=0(root)') >/dev/null 2>&1
- Xif [ $? != 0 ]
- Xthen
- X $ECHO "Error: You must be the superuser to install xmcd."
- X exit 1
- Xfi
- X
- Xif [ ! -f xmcd -o ! -f XMcd.ad -o ! -f dev.config -o ! -f configure.sh ]
- Xthen
- X $ECHO "Error: missing files."
- X exit 3
- Xfi
- X
- X
- Xif (uname -X | fgrep "Release = 3.2") >/dev/null 2>&1
- Xthen
- X SCO=1
- Xelse
- X SCO=0
- Xfi
- X
- X
- X$ECHO "Installing \"xmcd\" Motif CD Player version $XMCD_VER by Ti Kan"
- X
- X
- X# Determine BINDIR
- X
- Xif [ -z "$BINDIR" ]
- Xthen
- X BINDIR=/usr/bin/X11
- X
- X if [ -d /usr/X/bin ]
- X then
- X BINDIR=/usr/X/bin
- X elif [ -d /usr/X386/bin ]
- X then
- X BINDIR=/usr/X386/bin
- X elif [ -d /usr/local/bin/X11 ]
- X then
- X BINDIR=/usr/local/bin/X11
- X elif [ -d /usr/local/bin ]
- X then
- X BINDIR=/usr/local/bin
- X elif [ -d /usr/lbin ]
- X then
- X BINDIR=/usr/lbin
- X fi
- Xelse
- X BINDIR=`echo $BINDIR | sed 's/\/\//\//g'`
- Xfi
- X
- Xwhile :
- Xdo
- X if getstr "\nEnter X binary directory [${BINDIR}]:"
- X then
- X if [ -d "$ANS" ]
- X then
- X BINDIR=$ANS
- X break
- X else
- X $ECHO "Error: $ANS does not exist."
- X fi
- X else
- X break
- X fi
- Xdone
- X
- X
- X# Determine LIBDIR
- X
- Xif [ -z "$LIBDIR" ]
- Xthen
- X LIBDIR=/usr/lib/X11
- X
- X if [ -d /usr/X/lib ]
- X then
- X LIBDIR=/usr/X/lib
- X elif [ -d /usr/X386/lib/X11 ]
- X then
- X LIBDIR=/usr/X386/lib/X11
- X elif [ -d /usr/local/lib/X11 ]
- X then
- X LIBDIR=/usr/local/lib/X11
- X fi
- Xelse
- X LIBDIR=`echo $LIBDIR | sed 's/\/\//\//g'`
- Xfi
- X
- Xwhile :
- Xdo
- X if getstr "\nEnter X library directory [${LIBDIR}]:"
- X then
- X if [ -d "$ANS" ]
- X then
- X LIBDIR=$ANS
- X break
- X else
- X $ECHO "Error: $ANS does not exist."
- X fi
- X else
- X break
- X fi
- Xdone
- X
- X
- X# Determine MANFILE
- X
- Xif [ -z "$MANFILE" ]
- Xthen
- X MANFILE=/usr/man/man1/xmcd.1
- X
- X if [ -d /usr/man/man.LOCAL ]
- X then
- X MANFILE=/usr/man/man.LOCAL/xmcd.LOCAL
- X elif [ -d /usr/local/man/man1 ]
- X then
- X MANFILE=/usr/local/man/man1/xmcd.1
- X fi
- Xelse
- X MANFILE=`echo $MANFILE | sed 's/\/\//\//g'`
- Xfi
- X
- Xif getstr "\nEnter on-line manual file path [${MANFILE}]:"
- Xthen
- X MANFILE=$ANS
- Xfi
- X
- XMANDIR=`dirname $MANFILE`
- Xif [ ! -d $MANDIR ]
- Xthen
- X YNDEF=y
- X if getyn "Directory $MANDIR does not exist. Create it"
- X then
- X (umask 022; mkdir -p $MANDIR)
- X else
- X $ECHO "The on-line xmcd manual will not be installed."
- X MANFILE=
- X MANDIR=
- X fi
- Xfi
- X
- X
- X$ECHO "\nMaking directories..."
- X
- X# Make all necessary directories
- X
- X$ECHO "\t$LIBDIR/xmcd"
- Xif [ ! -d $LIBDIR/xmcd ]
- Xthen
- X mkdir $LIBDIR/xmcd
- Xfi
- Xchown bin $LIBDIR/xmcd
- Xchgrp bin $LIBDIR/xmcd
- Xchmod 755 $LIBDIR/xmcd
- X
- X$ECHO "\t$LIBDIR/xmcd/config"
- Xif [ ! -d $LIBDIR/xmcd/config ]
- Xthen
- X mkdir $LIBDIR/xmcd/config
- Xfi
- Xchown bin $LIBDIR/xmcd/config
- Xchgrp bin $LIBDIR/xmcd/config
- Xchmod 755 $LIBDIR/xmcd/config
- X
- X$ECHO "\t$LIBDIR/xmcd/help"
- Xif [ ! -d $LIBDIR/xmcd/help ]
- Xthen
- X mkdir $LIBDIR/xmcd/help
- Xfi
- Xchown bin $LIBDIR/xmcd/help
- Xchgrp bin $LIBDIR/xmcd/help
- Xchmod 755 $LIBDIR/xmcd/help
- X
- X$ECHO "\t$LIBDIR/xmcd/cddb"
- Xif [ ! -d $LIBDIR/xmcd/cddb ]
- Xthen
- X mkdir $LIBDIR/xmcd/cddb
- Xfi
- Xchown bin $LIBDIR/xmcd/cddb
- Xchgrp bin $LIBDIR/xmcd/cddb
- Xchmod 755 $LIBDIR/xmcd/cddb
- X
- Xfor i in $CATEGORIES
- Xdo
- X $ECHO "\t$LIBDIR/xmcd/cddb/$i"
- X if [ ! -d $LIBDIR/xmcd/cddb/$i ]
- X then
- X mkdir $LIBDIR/xmcd/cddb/$i
- X fi
- X chown bin $LIBDIR/xmcd/cddb/$i
- X chgrp bin $LIBDIR/xmcd/cddb/$i
- X chmod 777 $LIBDIR/xmcd/cddb/$i
- Xdone
- X
- X# Install files
- X$ECHO "\nInstalling xmcd files..."
- X
- X$ECHO "\t$BINDIR/xmcd"
- Xcp xmcd $BINDIR/xmcd
- Xchown root $BINDIR/xmcd
- Xchgrp bin $BINDIR/xmcd
- Xchmod 4711 $BINDIR/xmcd
- X
- X$ECHO "\t$LIBDIR/app-defaults/XMcd"
- Xcp XMcd.ad $LIBDIR/app-defaults/XMcd
- Xchown bin $LIBDIR/app-defaults/XMcd
- Xchgrp bin $LIBDIR/app-defaults/XMcd
- Xchmod 444 $LIBDIR/app-defaults/XMcd
- Xif [ $LIBDIR != "/usr/lib/X11" -a -d /usr/lib/X11/app-defaults ]
- Xthen
- X # Test LIBDIR
- X rm -f /usr/lib/X11/app-defaults/._junk_
- X
- X >$LIBDIR/app-defaults/._junk_
- X
- X if [ ! -f /usr/lib/X11/app-defaults/._junk_ ]
- X then
- X rm -f /usr/lib/X11/app-defaults/XMcd
- X ln $LIBDIR/app-defaults/XMcd /usr/lib/X11/app-defaults/XMcd
- X fi
- X
- X rm -f $LIBDIR/app-defaults/._junk_
- Xfi
- X
- X$ECHO "\t$LIBDIR/xmcd/help/*"
- Xcp helpfiles/*Btn helpfiles/*Ind helpfiles/*Txt helpfiles/*Scale \
- X helpfiles/*List helpfiles/*Box $LIBDIR/xmcd/help
- Xchown bin $LIBDIR/xmcd/help/*
- Xchgrp bin $LIBDIR/xmcd/help/*
- Xchmod 444 $LIBDIR/xmcd/help/*
- X
- X$ECHO "\t$LIBDIR/xmcd/cddb/misc/4102560a"
- Xcp demo.cddb $LIBDIR/xmcd/cddb/misc/4102560a
- Xchown bin $LIBDIR/xmcd/cddb/misc/4102560a
- Xchgrp bin $LIBDIR/xmcd/cddb/misc/4102560a
- Xchmod 444 $LIBDIR/xmcd/cddb/misc/4102560a
- X
- X$ECHO "\t$LIBDIR/xmcd/config/dev.config"
- Xcp dev.config $LIBDIR/xmcd/config/dev.config
- Xchown bin $LIBDIR/xmcd/config/dev.config
- Xchgrp bin $LIBDIR/xmcd/config/dev.config
- Xchmod 444 $LIBDIR/xmcd/config/dev.config
- X
- X$ECHO "\t$LIBDIR/xmcd/config/configure.sh"
- X$AWK '
- X /^LIBDIR=/ { printf("LIBDIR=%s\n", libdir) }
- X !/^LIBDIR=/ { print $0 }
- X' libdir=$LIBDIR configure.sh >$LIBDIR/xmcd/config/configure.sh
- Xchown bin $LIBDIR/xmcd/config/configure.sh
- Xchgrp bin $LIBDIR/xmcd/config/configure.sh
- Xchmod 755 $LIBDIR/xmcd/config/configure.sh
- X
- Xif [ ! -f $LIBDIR/XKeysymDB ]
- Xthen
- X $ECHO "\t$LIBDIR/XKeysymDB"
- X cp XKeysymDB $LIBDIR/XKeysymDB
- X chown bin $LIBDIR/XKeysymDB
- X chgrp bin $LIBDIR/XKeysymDB
- X chmod 644 $LIBDIR/XKeysymDB
- Xfi
- X
- Xif [ "$SCO" = 1 ]
- Xthen
- X $ECHO "\t/usr/lib/mkdev/xmcd"
- X rm -f /usr/lib/mkdev/xmcd
- X ln $LIBDIR/xmcd/config/configure.sh /usr/lib/mkdev/xmcd
- Xfi
- X
- Xif [ -n "$MANFILE" ]
- Xthen
- X $ECHO "\t$MANFILE"
- X cp xmcd.man $MANFILE
- X chown bin $MANFILE
- X chgrp bin $MANFILE
- X chmod 644 $MANFILE
- Xfi
- X
- X# Run device-dependent config script
- Xsh $LIBDIR/xmcd/config/configure.sh
- X
- Xif [ $NOREMOVE = 0 ]
- Xthen
- X rm -rf xmcd XMcd.ad demo.cddb dev.config helpfiles install.sh \
- X configure.sh XKeysymDB xmcd.man xmcd.tar
- Xfi
- X$ECHO "\nInstallation of xmcd is now complete."
- X
- Xexit 0
- END_OF_FILE
- if test 7437 -ne `wc -c <'install.sh'`; then
- echo shar: \"'install.sh'\" unpacked with wrong size!
- fi
- # end of 'install.sh'
- fi
- if test -f 'configure.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'configure.sh'\"
- else
- echo shar: Extracting \"'configure.sh'\" \(14863 characters\)
- sed "s/^X//" >'configure.sh' <<'END_OF_FILE'
- X:
- X#
- X# @(#)configure.sh 1.55 93/10/30
- X#
- X# Script to set up the Xmcd device-dependent configuration files.
- X#
- X# xmcd - Motif(tm) CD Audio Player
- X#
- X# Copyright (C) 1993 Ti Kan
- X# E-mail: ti@amb.org
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X
- XPATH=/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/local/bin:/usr/ucb
- Xexport PATH
- X
- X# Change the following directory to fit your local configuration
- XLIBDIR=/usr/lib/X11
- X
- XVER=1.0
- X
- X
- X# Utility functions
- X
- Xgetstr()
- X{
- X $ECHO "$* \c"
- X read ANS
- X if [ -n "$ANS" ]
- X then
- X return 0
- X else
- X return 1
- X fi
- X}
- X
- Xgetyn()
- X{
- X if [ -z "$YNDEF" ]
- X then
- X YNDEF=y
- X fi
- X
- X while :
- X do
- X $ECHO "$*? [${YNDEF}] \c"
- X read ANS
- X if [ -n "$ANS" ]
- X then
- X case $ANS in
- X [yY])
- X RET=0
- X break
- X ;;
- X [nN])
- X RET=1
- X break
- X ;;
- X *)
- X $ECHO "Please answer y or n"
- X ;;
- X esac
- X else
- X if [ $YNDEF = y ]
- X then
- X RET=0
- X else
- X RET=1
- X fi
- X break
- X fi
- X done
- X
- X YNDEF=
- X return $RET
- X}
- X
- X
- Xask_config()
- X{
- X $ECHO "\n Since you have an unlisted CD-ROM drive, I will assume"
- X $ECHO " that it is SCSI-2 compliant. If this is not true then"
- X $ECHO " xmcd will probably not work."
- X $ECHO "\n You will now be asked several technical questions about"
- X $ECHO " your CD-ROM drive. If you don't know the answer, try"
- X $ECHO " accepting the default values, and if problems occur when"
- X $ECHO " using xmcd, reconfigure the settings by running this"
- X $ECHO " script again, or editing the $CONFIG file."
- X $ECHO "\n If you get an unlisted drive working with xmcd in this"
- X $ECHO " manner, the author of xmcd would like to hear from you"
- X $ECHO " and incorporate the settings into the next xmcd release."
- X $ECHO " Please send e-mail to \"ti@amb.org\"."
- X
- X VENDOR=0
- X VOLBASE=0
- X
- X while :
- X do
- X $ECHO "\n Does your CD-ROM drive on $XMCD_DEV support the following:\n"
- X
- X YNDEF=y
- X if getyn " - The Play_Audio_MSF SCSI command"
- X then
- X PLAYMSF=True
- X else
- X PLAYMSF=False
- X fi
- X
- X YNDEF=n
- X if getyn " - The Play_Audio(12) SCSI command"
- X then
- X PLAY12=True
- X else
- X PLAY12=False
- X fi
- X
- X YNDEF=y
- X if getyn " - The Play_Audio(10) SCSI command"
- X then
- X PLAY10=True
- X else
- X PLAY10=False
- X fi
- X
- X YNDEF=y
- X if getyn " - The Play_Audio_Track/Index command"
- X then
- X PLAYTI=True
- X else
- X PLAYTI=False
- X fi
- X
- X YNDEF=n
- X if getyn " - Caddy load via the Start_Stop_Unit SCSI command"
- X then
- X LOAD=True
- X else
- X LOAD=False
- X fi
- X
- X YNDEF=y
- X if getyn " - Caddy eject via the Start_Stop_Unit SCSI command"
- X then
- X EJECT=True
- X else
- X EJECT=False
- X fi
- X
- X YNDEF=y
- X if getyn " - Audio volume control via the Mode_Select SCSI command"
- X then
- X VOLCTL=True
- X else
- X VOLCTL=False
- X fi
- X
- X YNDEF=n
- X if getyn " - Disable block descriptor in the Mode_Select SCSI command"
- X then
- X VOLDBD=True
- X else
- X VOLDBD=False
- X fi
- X
- X YNDEF=y
- X if getyn " - The Pause/Resume SCSI command"
- X then
- X PAUSE=True
- X else
- X PAUSE=False
- X fi
- X
- X YNDEF=y
- X if getyn " - The Prevent/Allow_Medium_Removal SCSI command"
- X then
- X CADDYLOCK=True
- X else
- X CADDYLOCK=False
- X fi
- X
- X $ECHO "\n This is the configuration for ${XMCD_DEV}:\n"
- X $ECHO " logicalDriverNumber: $DRVNO"
- X $ECHO " playAudio12Support: $PLAY12"
- X $ECHO " playAudioMSFSupport: $PLAYMSF"
- X $ECHO " playAudio10Support: $PLAY10"
- X $ECHO " playAudioTISupport: $PLAYTI"
- X $ECHO " loadSupport: $LOAD"
- X $ECHO " ejectSupport: $EJECT"
- X $ECHO " volumeControlSupport: $VOLCTL"
- X $ECHO " volumeControlSetDBD: $VOLDBD"
- X $ECHO " pauseResumeSupport: $PAUSE"
- X $ECHO " caddyLockSupport: $CADDYLOCK"
- X
- X YNDEF=y
- X if getyn "\n Is this acceptable"
- X then
- X break
- X fi
- X
- X $ECHO " Try again..."
- X done
- X}
- X
- X
- Xconfig_drive()
- X{
- X MAXCHOICE=17
- X
- X $ECHO "\n CD-ROM drive ($XMCD_DEV) selection:\n"
- X $ECHO " -: SCSI-1 mode"
- X $ECHO " *: SCSI-2 mode\n"
- X $ECHO " 1. * Apple CD- 300"
- X $ECHO " 2. * Compaq CDU- 561"
- X $ECHO " 3. * Compaq CR- 503BCQ"
- X $ECHO " 4. - Hitachi CDR- 1650S, 1750S, 3650, 3750"
- X $ECHO " 5. * Hitachi CDR- 3750"
- X $ECHO " 6. - NEC CDR- 72, 74, 77, 80, 82, 84, 74-1, 84-1"
- X $ECHO " 7. * NEC CDR- 38"
- X $ECHO " 8. * NEC CDR- 74-1, 84-1"
- X $ECHO " 9. - Pioneer DRM- 600, 600A, 610, 604X"
- X $ECHO " 10. * Pioneer DRM- 604X"
- X $ECHO " 11. * Sony CDU- 541, 561, 6211, 7211, 8003, 8012"
- X $ECHO " 12. * Sun - CD-ROM"
- X $ECHO " 13. * Texel DM- 3024, 5024"
- X $ECHO " 14. * Texel DM- 3028, 5028"
- X $ECHO " 15. - Toshiba XM- 3101, 3201"
- X $ECHO " 16. * Toshiba XM- 3301, 3401, 8100"
- X $ECHO " 17. * Other (SCSI-2)"
- X
- X while :
- X do
- X $ECHO "\n Enter choice: \c"
- X read ANS
- X if [ -z "$ANS" -o "$ANS" -lt 1 -o "$ANS" -gt $MAXCHOICE ]
- X then
- X $ECHO " Please answer 1 to ${MAXCHOICE}."
- X else
- X case $ANS in
- X 1)
- X # Apple CD-300
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=False
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=False
- X VOLBASE=128
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 2)
- X # Compaq CDU-561
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=False
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=False
- X VOLBASE=128
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 3)
- X # Compaq CR-503BCQ
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=True
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 4)
- X # Hitachi VU
- X VENDOR=4
- X PLAYMSF=False
- X PLAY12=False
- X PLAY10=False
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=False
- X CADDYLOCK=True
- X ;;
- X 5)
- X # Hitachi SCSI-2
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=True
- X PLAY10=True
- X PLAYTI=True
- X LOAD=False
- X EJECT=True
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 6)
- X # NEC VU
- X VENDOR=2
- X PLAYMSF=False
- X PLAY12=False
- X PLAY10=False
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=False
- X CADDYLOCK=True
- X ;;
- X 7)
- X # NEC SCSI-2 (CDR-38)
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=True
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=False
- X VOLCTL=True
- X VOLDBD=True
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=False
- X ;;
- X 8)
- X # NEC SCSI-2
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=True
- X PLAY10=True
- X PLAYTI=False
- X LOAD=True
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=True
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 9)
- X # Pioneer VU
- X VENDOR=3
- X PLAYMSF=False
- X PLAY12=False
- X PLAY10=False
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=False
- X CADDYLOCK=True
- X ;;
- X 10)
- X # Pioneer SCSI-2
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=True
- X PLAY10=True
- X PLAYTI=True
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=True
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 11)
- X # Sony SCSI-2
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=False
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=False
- X VOLBASE=128
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 12)
- X # Sun CD-ROM
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=False
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=False
- X VOLBASE=128
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 13)
- X # Texel DM-x024
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=False
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=False
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=False
- X ;;
- X 14)
- X # Texel DM-x028
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=False
- X PLAY10=True
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 15)
- X # Toshiba VU
- X VENDOR=1
- X PLAYMSF=False
- X PLAY12=False
- X PLAY10=False
- X PLAYTI=False
- X LOAD=False
- X EJECT=True
- X VOLCTL=False
- X VOLDBD=False
- X VOLBASE=0
- X PAUSE=False
- X CADDYLOCK=True
- X ;;
- X 16)
- X # Toshiba SCSI-2
- X VENDOR=0
- X PLAYMSF=True
- X PLAY12=True
- X PLAY10=True
- X PLAYTI=True
- X LOAD=False
- X EJECT=True
- X VOLCTL=True
- X VOLDBD=True
- X VOLBASE=0
- X PAUSE=True
- X CADDYLOCK=True
- X ;;
- X 17)
- X ask_config
- X ;;
- X *)
- X $ECHO " Please answer 1 to ${MAXCHOICE}."
- X ;;
- X esac
- X
- X break
- X fi
- X done
- X}
- X
- X
- X
- X# Main starts here
- X
- X# Use Sysv echo if possible
- Xif [ -x /usr/5bin/echo ]
- Xthen
- X ECHO=/usr/5bin/echo
- Xelse
- X ECHO=echo
- Xfi
- X
- X# Use nawk if possible
- Xif ($ECHO "x" | nawk '{ print $0 }' -) >/dev/null 2>&1
- Xthen
- X AWK=nawk
- Xelse
- X AWK=awk
- Xfi
- X
- X$ECHO "\nXmcd version $VER Device Configuration Program"
- X
- X# Sanity check
- X
- X(id | fgrep 'uid=0(root)') >/dev/null 2>&1
- Xif [ $? != 0 ]
- Xthen
- X $ECHO "Error: You must be the superuser to configure xmcd."
- X exit 1
- Xfi
- X
- Xif [ ! -r $LIBDIR/xmcd/config/dev.config ]
- Xthen
- X $ECHO "Cannot find $LIBDIR/xmcd/config/dev.config !"
- X $ECHO "aborting..."
- X exit 2
- Xfi
- X
- X# Configure device-dependent parameters
- X
- XOS_VER=`uname -r 2>/dev/null`
- XDEVBASE=/dev/rcdrom
- XDEVSUFFIX=
- XFIRST=0
- XLINKLIBS=no
- X
- Xif [ -x /bin/i386 -o -x /sbin/i386 ] && i386
- Xthen
- X case $OS_VER in
- X 3.2)
- X DEVBASE=/dev/rcd
- X DEVSUFFIX=
- X FIRST=0
- X ;;
- X 4.0)
- X DEVBASE=/dev/rcdrom/cd
- X DEVSUFFIX=
- X FIRST=0
- X LINKLIBS=yes
- X ;;
- X 4.[12])
- X DEVBASE=/dev/rcdrom/cdrom
- X DEVSUFFIX=
- X FIRST=1
- X LINKLIBS=yes
- X ;;
- X 4*MP)
- X DEVBASE=/dev/rcdrom/cdrom
- X DEVSUFFIX=
- X FIRST=1
- X LINKLIBS=yes
- X ;;
- X *)
- X OS_VER=unknown
- X ;;
- X esac
- Xelif [ -x /bin/m88k ] && m88k
- Xthen
- X case $OS_VER in
- X 4.0)
- X DEVBASE=/dev/rdsk/m187_c0d
- X DEVSUFFIX=s7
- X FIRST=3
- X LINKLIBS=yes
- X ;;
- X *)
- X OS_VER=unknown
- X ;;
- X esac
- Xelif [ -x /bin/hp-pa ] && hp-pa
- Xthen
- X case $OS_VER in
- X A.09*)
- X DEVBASE=/dev/rdsk/c201d
- X DEVSUFFIX=s0
- X FIRST=4
- X ;;
- X *)
- X OS_VER=unknown
- X ;;
- X esac
- Xelif [ -x /bin/sun ] && sun
- Xthen
- X case $OS_VER in
- X 4.*)
- X case `arch -k` in
- X sun4[cm])
- X DEVBASE=/dev/rsr
- X DEVSUFFIX=
- X FIRST=0
- X ;;
- X *)
- X OS_VER=unknown
- X ;;
- X esac
- X ;;
- X 5.*)
- X DEVBASE=/dev/rdsk/c0t
- X DEVSUFFIX=d0s0
- X FIRST=6
- X LINKLIBS=yes
- X ;;
- X *)
- X OS_VER=unknown
- X ;;
- X esac
- Xelif [ -x /bin/ftx ] && ftx
- Xthen
- X case $OS_VER in
- X 4.0)
- X DEVBASE=/dev/rcdrom/c2a1d
- X DEVSUFFIX=s0
- X FIRST=0
- X LINKLIBS=yes
- X ;;
- X *)
- X OS_VER=unknown
- X ;;
- X esac
- Xelse
- X OS_VER=unknown
- Xfi
- X
- XNOT_SUPPORTED="Error: You are not running an operating system that's\n\
- Xcurrently supported by xmcd."
- X
- Xif [ "$OS_VER" = unknown ]
- Xthen
- X $ECHO "$NOT_SUPPORTED"
- X YNDEF=n
- X getyn "Would you like to proceed anyway?"
- X if [ $? -ne 0 ]
- X then
- X $ECHO "Configuration aborted."
- X exit 3
- X fi
- Xfi
- X
- XDRVNO=0
- XDEVNO=$FIRST
- XSEDLINE=
- Xwhile :
- Xdo
- X $ECHO "\nConfiguring SCSI CD-ROM drive $DRVNO..."
- X
- X DEFAULT_DEV="${DEVBASE}${DEVNO}${DEVSUFFIX}"
- X
- X while :
- X do
- X if getstr "\n Enter raw CD-ROM device: [$DEFAULT_DEV]"
- X then
- X XMCD_DEV=$ANS
- X else
- X XMCD_DEV=$DEFAULT_DEV
- X fi
- X
- X if [ -c $XMCD_DEV ]
- X then
- X break
- X else
- X $ECHO " $XMCD_DEV is an invalid device."
- X fi
- X done
- X
- X if [ $DRVNO -eq 0 ]
- X then
- X $AWK '{
- X if (match($0, "^XMcd.device:") > 0)
- X printf("XMcd.device:\t\t\t%s\n", device)
- X else if (match($0, "^XMcd.libdir:") > 0)
- X printf("XMcd.libdir:\t\t\t%s/xmcd\n", libdir)
- X else
- X print $0
- X }' device=$XMCD_DEV libdir=$LIBDIR \
- X $LIBDIR/app-defaults/XMcd > /tmp/xmcd.$$
- X
- X cp /tmp/xmcd.$$ $LIBDIR/app-defaults/XMcd
- X rm -f /tmp/xmcd.$$
- X
- X if [ $LIBDIR != "/usr/lib/X11" -a \
- X -d /usr/lib/X11/app-defaults ]
- X then
- X rm -f /usr/lib/X11/app-defaults/._trash_
- X >$LIBDIR/app-defaults/._trash_
- X
- X if [ ! -f /usr/lib/X11/app-defaults/._trash_ ]
- X then
- X rm -f /usr/lib/X11/app-defaults/XMcd
- X ln $LIBDIR/app-defaults/XMcd \
- X /usr/lib/X11/app-defaults/XMcd
- X fi
- X
- X rm -f $LIBDIR/app-defaults/._trash_
- X fi
- X fi
- X
- X CONFIG=$LIBDIR/xmcd/config/`basename $XMCD_DEV`
- X
- X config_drive
- X
- X DRVNOTICE="\n\n NOTE: This drive does not support these features:"
- X
- X if [ $PLAYTI = False ]
- X then
- X $ECHO "$DRVNOTICE"
- X DRVNOTICE="\c"
- X $ECHO " - The Previous Index and Next Index buttons."
- X fi
- X
- X if [ $CADDYLOCK = False ]
- X then
- X $ECHO "$DRVNOTICE"
- X DRVNOTICE="\c"
- X $ECHO " - The caddy lock."
- X fi
- X
- X if [ $LOAD = False ]
- X then
- X $ECHO "$DRVNOTICE"
- X DRVNOTICE="\c"
- X $ECHO " - Software-controlled caddy load."
- X fi
- X
- X if [ $VOLCTL = False ]
- X then
- X $ECHO "$DRVNOTICE"
- X DRVNOTICE="\c"
- X $ECHO " - The volume control slider."
- X fi
- X
- X $ECHO "\n Creating the $CONFIG file..."
- X
- X sed \
- X -e "s/^logicalDriveNumber:.*/logicalDriveNumber: $DRVNO/" \
- X -e "s/^driveVendorCode:.*/driveVendorCode: $VENDOR/" \
- X -e "s/^playAudio12Support:.*/playAudio12Support: $PLAY12/" \
- X -e "s/^playAudioMSFSupport:.*/playAudioMSFSupport: $PLAYMSF/" \
- X -e "s/^playAudio10Support:.*/playAudio10Support: $PLAY10/" \
- X -e "s/^playAudioTISupport:.*/playAudioTISupport: $PLAYTI/" \
- X -e "s/^loadSupport:.*/loadSupport: $LOAD/" \
- X -e "s/^ejectSupport:.*/ejectSupport: $EJECT/" \
- X -e "s/^volumeControlSupport:.*/volumeControlSupport: $VOLCTL/" \
- X -e "s/^volumeControlSetDBD:.*/volumeControlSetDBD: $VOLDBD/" \
- X -e "s/^scsiAudioVolumeBase:.*/scsiAudioVolumeBase: $VOLBASE/" \
- X -e "s/^pauseResumeSupport:.*/pauseResumeSupport: $PAUSE/" \
- X -e "s/^caddyLockSupport:.*/caddyLockSupport: $CADDYLOCK/" \
- X < $LIBDIR/xmcd/config/dev.config > $CONFIG
- X chown bin $CONFIG
- X chgrp bin $CONFIG
- X chmod 644 $CONFIG
- X
- X YNDEF=n
- X if getyn "\n Do you have more SCSI CD-ROM drives on your system"
- X then
- X DRVNO=`expr $DRVNO + 1`
- X DEVNO=`expr $DEVNO + 1`
- X else
- X break
- X fi
- Xdone
- X
- X
- Xif [ $LINKLIBS = yes -a -d $LIBDIR -a $LIBDIR != /usr/lib/X11 ]
- Xthen
- X #
- X # For security, SVR4 setuid programs search only /usr/lib and
- X # /usr/ccs/lib for shared libraries, but if the X shared
- X # libraries are not in these directories then symlinks
- X # are needed to make xmcd run.
- X #
- X cd $LIBDIR
- X for i in libX*.so*
- X do
- X if [ "$i" = 'libX*.so*' ]
- X then
- X break
- X fi
- X
- X if [ ! -f /usr/lib/$i ]
- X then
- X ln -s $LIBDIR/$i /usr/lib/$i
- X $ECHO "\nLinked $LIBDIR/$i -> /usr/lib/$i"
- X fi
- X done
- Xfi
- X
- X$ECHO "\n Xmcd set-up is now complete.\n"
- X$ECHO " Please read the README file supplied with the xmcd"
- X$ECHO " distribution for hardware configuration information about"
- X$ECHO " specific CD-ROM drives.\n"
- Xexit 0
- END_OF_FILE
- if test 14863 -ne `wc -c <'configure.sh'`; then
- echo shar: \"'configure.sh'\" unpacked with wrong size!
- fi
- # end of 'configure.sh'
- fi
- if test -f 'makerel.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makerel.sh'\"
- else
- echo shar: Extracting \"'makerel.sh'\" \(4681 characters\)
- sed "s/^X//" >'makerel.sh' <<'END_OF_FILE'
- X:
- X#
- X# @(#)makerel.sh 1.36 93/10/30
- X#
- X# Make xmcd binary release
- X#
- X# xmcd - Motif(tm) CD Audio Player
- X#
- X# Copyright (C) 1993 Ti Kan
- X# E-mail: ti@amb.org
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X
- XFILES=" README \
- X xmcd \
- X install.sh \
- X configure.sh \
- X demo.cddb \
- X dev.config \
- X XMcd.ad \
- X xmcd.man \
- X XKeysymDB \
- X helpfiles/AbBtn \
- X helpfiles/CheckBox \
- X helpfiles/DbModeInd \
- X helpfiles/DbProgBtn \
- X helpfiles/DdCancelBtn \
- X helpfiles/DdClrBtn \
- X helpfiles/DdDiscTxt \
- X helpfiles/DdOkBtn \
- X helpfiles/DpAboutBtn \
- X helpfiles/DpAddPgmBtn \
- X helpfiles/DpCancelBtn \
- X helpfiles/DpClrPgmBtn \
- X helpfiles/DpDExtBtn \
- X helpfiles/DpDTitleTxt \
- X helpfiles/DpLinkBtn \
- X helpfiles/DpLoadBtn \
- X helpfiles/DpPgmSeqTxt \
- X helpfiles/DpPlayPgmBtn \
- X helpfiles/DpSaveBtn \
- X helpfiles/DpTExtBtn \
- X helpfiles/DpTTitleTxt \
- X helpfiles/DpTimeSelBtn \
- X helpfiles/DpTrkList \
- X helpfiles/DsCancelBtn \
- X helpfiles/DsDirList \
- X helpfiles/DsOkBtn \
- X helpfiles/DtCancelBtn \
- X helpfiles/DtClrBtn \
- X helpfiles/DtOkBtn \
- X helpfiles/DtTrackTxt \
- X helpfiles/EjectBtn \
- X helpfiles/FfBtn \
- X helpfiles/HelpBtn \
- X helpfiles/Imakefile \
- X helpfiles/IndexInd \
- X helpfiles/KeypadBtn \
- X helpfiles/KeypadInd \
- X helpfiles/KpCancelBtn \
- X helpfiles/KpClearBtn \
- X helpfiles/KpEnterBtn \
- X helpfiles/KpNumBtn \
- X helpfiles/LevelScale \
- X helpfiles/LsCancelBtn \
- X helpfiles/LsLinkList \
- X helpfiles/LsOkBtn \
- X helpfiles/NextIdxBtn \
- X helpfiles/NextTrkBtn \
- X helpfiles/PlayModeInd \
- X helpfiles/PlayPauseBtn \
- X helpfiles/PowerBtn \
- X helpfiles/PrevIdxBtn \
- X helpfiles/PrevTrkBtn \
- X helpfiles/ProgModeInd \
- X helpfiles/RewBtn \
- X helpfiles/SampleBtn \
- X helpfiles/StopBtn \
- X helpfiles/TimeBtn \
- X helpfiles/TimeInd \
- X helpfiles/TimeModeInd \
- X helpfiles/TrackInd"
- X
- X
- Xif [ -f /vmunix ]
- Xthen
- X MCS=true
- X # Use SysV echo if possible
- X if [ -x /usr/5bin/echo ]
- X then
- X ECHO=/usr/5bin/echo
- X else
- X ECHO=/bin/echo
- X fi
- Xelif [ -f /hp-ux ]
- Xthen
- X MCS=true
- X ECHO=echo
- Xelse
- X MCS=mcs
- X ECHO=echo
- Xfi
- X
- X# Strip the binary symbol table
- Xstrip xmcd
- X
- X# Remove comment section of binary if possible
- X$MCS -da '@(#)xmcd v1.0 (C) Ti Kan 1993' xmcd >/dev/null 2>&1
- X
- X# Create tar archive
- Xtar cf xmcd.tar $FILES
- X
- X# Compress tar archive
- Xcompress xmcd.tar
- X
- X$ECHO '
- XInstructions to unpack xmcd binary and other info
- X-------------------------------------------------
- X
- XAt the end of this message is a compressed and uuencoded tar
- Xfile containing the xmcd binary and supporting files. To extract,
- Xsave this message in a file "xmcd.uue" and do the following while
- Xlogged in as root:
- X
- X uudecode xmcd.uue
- X uncompress xmcd.tar.Z
- X tar xvf xmcd.tar
- X sh ./install.sh
- X
- XXmcd must run setuid root because the SCSI passthrough interface to
- Xthe OS kernel requires superuser privilege. Xmcd is careful about
- Xsecurity and changes the uid back to the user before writing any files.
- X
- XSee the README file for a list of supported CD-ROM drives.
- X
- XTake a look at the resources in LIBDIR/app-defaults/XMcd. If
- Xthere are anything you wish to customize you can put them in your
- X.Xdefaults file. The default CD database directory hierarchy is defined by
- Xthe XMcd.dbdir resource. This hierarchy is created for you by the
- Xinstallation script. Alternatively, each user can redefine these in their
- X.Xdefaults and maintain their own CD database files. Finally, the
- XXMCD_DBPATH environment variable or the -dbdir option can be used to
- Xoverride this resource.
- X
- XTo use xmcd, simply type "xmcd" while logged into the system under
- Xthe X windows environment. Make sure the DISPLAY environment variable
- Xis set properly. The default device is the one specified in the
- XXMcd.device resource. To operate other drives, use the -dev command line
- Xoption.
- X
- XA help button is available on the xmcd main window. You can also get
- Xfeature-specific help on any button, control, slider, indicator, list
- Xor text entry area by positioning the mouse cursor over the feature,
- Xand clicking the mouse button number 3.
- X
- X' >xmcdbin.uue
- X
- X# Uuencode
- Xuuencode xmcd.tar.Z xmcd.tar.Z >>xmcdbin.uue
- X
- Xrm -f xmcd.tar.Z
- Xls -l xmcdbin.uue
- Xexit 0
- X
- END_OF_FILE
- if test 4681 -ne `wc -c <'makerel.sh'`; then
- echo shar: \"'makerel.sh'\" unpacked with wrong size!
- fi
- # end of 'makerel.sh'
- fi
- if test -f 'makesrc.sh' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makesrc.sh'\"
- else
- echo shar: Extracting \"'makesrc.sh'\" \(4321 characters\)
- sed "s/^X//" >'makesrc.sh' <<'END_OF_FILE'
- X:
- X#
- X# @(#)makesrc.sh 1.24 93/10/30
- X#
- X# Make xmcd source code release
- X#
- X# xmcd - Motif(tm) CD Audio Player
- X#
- X# Copyright (C) 1993 Ti Kan
- X# E-mail: ti@amb.org
- X#
- X# This program is free software; you can redistribute it and/or modify
- X# it under the terms of the GNU General Public License as published by
- X# the Free Software Foundation; either version 2 of the License, or
- X# (at your option) any later version.
- X#
- X# This program is distributed in the hope that it will be useful,
- X# but WITHOUT ANY WARRANTY; without even the implied warranty of
- X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X# GNU General Public License for more details.
- X#
- X# You should have received a copy of the GNU General Public License
- X# along with this program; if not, write to the Free Software
- X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X#
- X
- XFILES=" Imakefile \
- X BUGS \
- X COPYING \
- X INSTALL \
- X PORTING \
- X README \
- X demo.cddb \
- X xmcd.man \
- X XMcd.ad \
- X XKeysymDB \
- X dev.config \
- X install.sh \
- X configure.sh \
- X makerel.sh \
- X makesrc.sh \
- X cdfunc.h \
- X cdlib.h \
- X dbprog.h \
- X geometry.h \
- X help.h \
- X hotkey.h \
- X lib_demo.h \
- X lib_hita.h \
- X lib_hpux.h \
- X lib_nec.h \
- X lib_odt.h \
- X lib_pion.h \
- X lib_scsipt.h \
- X lib_sim.h \
- X lib_sun.h \
- X lib_svr4.h \
- X lib_tosh.h \
- X patchlevel.h \
- X resource.h \
- X util.h \
- X widget.h \
- X xmcd.h \
- X cdfunc.c \
- X dbprog.c \
- X geometry.c \
- X help.c \
- X hotkey.c \
- X lib_demo.c \
- X lib_hita.c \
- X lib_hpux.c \
- X lib_nec.c \
- X lib_odt.c \
- X lib_pion.c \
- X lib_scsipt.c \
- X lib_sim.c \
- X lib_sun.c \
- X lib_svr4.c \
- X lib_tosh.c \
- X main.c \
- X util.c \
- X widget.c \
- X bitmaps/Imakefile \
- X bitmaps/ab.xbm \
- X bitmaps/btnlbl.xbm \
- X bitmaps/dbprog.xbm \
- X bitmaps/eject.xbm \
- X bitmaps/ff.xbm \
- X bitmaps/help.xbm \
- X bitmaps/keypad.xbm \
- X bitmaps/lock.xbm \
- X bitmaps/logo.xbm \
- X bitmaps/nextidx.xbm \
- X bitmaps/nexttrk.xbm \
- X bitmaps/playpaus.xbm \
- X bitmaps/poweroff.xbm \
- X bitmaps/previdx.xbm \
- X bitmaps/prevtrk.xbm \
- X bitmaps/repeat.xbm \
- X bitmaps/rew.xbm \
- X bitmaps/sample.xbm \
- X bitmaps/shuffle.xbm \
- X bitmaps/stop.xbm \
- X bitmaps/time.xbm \
- X bitmaps/xmcd.xbm \
- X helpfiles/AbBtn \
- X helpfiles/CheckBox \
- X helpfiles/DbModeInd \
- X helpfiles/DbProgBtn \
- X helpfiles/DdCancelBtn \
- X helpfiles/DdClrBtn \
- X helpfiles/DdDiscTxt \
- X helpfiles/DdOkBtn \
- X helpfiles/DpAboutBtn \
- X helpfiles/DpAddPgmBtn \
- X helpfiles/DpCancelBtn \
- X helpfiles/DpClrPgmBtn \
- X helpfiles/DpDExtBtn \
- X helpfiles/DpDTitleTxt \
- X helpfiles/DpLinkBtn \
- X helpfiles/DpLoadBtn \
- X helpfiles/DpPgmSeqTxt \
- X helpfiles/DpPlayPgmBtn \
- X helpfiles/DpSaveBtn \
- X helpfiles/DpTExtBtn \
- X helpfiles/DpTTitleTxt \
- X helpfiles/DpTimeSelBtn \
- X helpfiles/DpTrkList \
- X helpfiles/DsCancelBtn \
- X helpfiles/DsDirList \
- X helpfiles/DsOkBtn \
- X helpfiles/DtCancelBtn \
- X helpfiles/DtClrBtn \
- X helpfiles/DtOkBtn \
- X helpfiles/DtTrackTxt \
- X helpfiles/EjectBtn \
- X helpfiles/FfBtn \
- X helpfiles/HelpBtn \
- X helpfiles/Imakefile \
- X helpfiles/IndexInd \
- X helpfiles/KeypadBtn \
- X helpfiles/KeypadInd \
- X helpfiles/KpCancelBtn \
- X helpfiles/KpClearBtn \
- X helpfiles/KpEnterBtn \
- X helpfiles/KpNumBtn \
- X helpfiles/LevelScale \
- X helpfiles/LsCancelBtn \
- X helpfiles/LsLinkList \
- X helpfiles/LsOkBtn \
- X helpfiles/NextIdxBtn \
- X helpfiles/NextTrkBtn \
- X helpfiles/PlayModeInd \
- X helpfiles/PlayPauseBtn \
- X helpfiles/PowerBtn \
- X helpfiles/PrevIdxBtn \
- X helpfiles/PrevTrkBtn \
- X helpfiles/ProgModeInd \
- X helpfiles/RewBtn \
- X helpfiles/SampleBtn \
- X helpfiles/StopBtn \
- X helpfiles/TimeBtn \
- X helpfiles/TimeInd \
- X helpfiles/TimeModeInd \
- X helpfiles/TrackInd"
- X
- X
- X# Use SysV echo if possible
- Xif [ -x /usr/5bin/echo ]
- Xthen
- X ECHO=/usr/5bin/echo
- Xelse
- X ECHO=echo
- Xfi
- X
- X# Create tar archive
- Xtar cf xmcdsrc.tar $FILES
- X
- X# Compress tar archive
- Xcompress xmcdsrc.tar
- X
- X$ECHO '
- X
- XInstructions to unpack xmcd source code release
- X-----------------------------------------------
- X
- XThe following is a compressed and uuencoded tar archive containing
- Xthe xmcd source code files. To extract, make a suitable source
- Xcode directory for xmcd and save this message in a file "xmcdsrc.uue"
- Xin that directory. Then, change to the directory and do the following:
- X
- X uudecode xmcdsrc.uue
- X uncompress xmcdsrc.tar.Z
- X tar xvf xmcdsrc.tar
- X
- XRead the README and INSTALL files for further instructions.
- X
- X' >xmcdsrc.uue
- X
- X# Uuencode
- Xuuencode xmcdsrc.tar.Z xmcdsrc.tar.Z >>xmcdsrc.uue
- X
- Xrm -f xmcdsrc.tar.Z
- Xls -l xmcdsrc.uue
- Xexit 0
- X
- END_OF_FILE
- if test 4321 -ne `wc -c <'makesrc.sh'`; then
- echo shar: \"'makesrc.sh'\" unpacked with wrong size!
- fi
- # end of 'makesrc.sh'
- fi
- if test -f 'cdfunc.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'cdfunc.h'\"
- else
- echo shar: Extracting \"'cdfunc.h'\" \(3864 characters\)
- sed "s/^X//" >'cdfunc.h' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef __CDFUNC_H__
- X#define __CDFUNC_H__
- X
- X#ifndef LINT
- Xstatic char *_cdfunc_h_ident_ = "@(#)cdfunc.h 1.58 93/09/28";
- X#endif
- X
- X
- X/* Args for set_btn_lbltype */
- X#define BTN_PIXMAP 0 /* Pixmap button labels */
- X#define BTN_STRING 1 /* Text button labels */
- X
- X
- X/* Public functions */
- Xint curtrk_pos(curstat_t *);
- Xint curprog_pos(curstat_t *);
- Xvoid dpy_track(curstat_t *);
- Xvoid dpy_index(curstat_t *);
- Xvoid dpy_time(curstat_t *, bool_t);
- Xvoid dpy_all(curstat_t *);
- Xvoid dpy_dbmode(curstat_t *);
- Xvoid dpy_progmode(curstat_t *);
- Xvoid dpy_timemode(curstat_t *);
- Xvoid dpy_playmode(curstat_t *, bool_t);
- X
- Xvoid reset_curstat(curstat_t *, bool_t);
- Xvoid reset_shuffle(curstat_t *);
- X
- Xvoid set_lock_btn(bool_t);
- Xvoid set_repeat_btn(bool_t);
- Xvoid set_shuffle_btn(bool_t);
- Xvoid set_vol_slider(byte_t);
- Xvoid set_btn_lbltype(byte_t);
- X
- Xint taper_vol(int);
- Xint untaper_vol(int);
- X
- Xint cd_timeout(word32_t, void (*)(), byte_t *);
- Xvoid cd_untimeout(int);
- Xvoid cd_beep(void);
- Xvoid cd_pause_blink(curstat_t *, bool_t);
- Xvoid cd_ab_blink(curstat_t *, bool_t);
- Xvoid cd_info_popup(char *, char *);
- Xvoid cd_warning_popup(char *, char *);
- Xvoid cd_fatal_popup(char *, char *);
- Xvoid cd_confirm_popup(char *, char *, XtCallbackProc, XtPointer,
- X XtCallbackProc, XtPointer);
- Xvoid cd_playprog(curstat_t *);
- Xvoid cd_init(curstat_t *);
- Xvoid cd_start(curstat_t *);
- Xvoid cd_icon(curstat_t *, bool_t);
- Xvoid cd_halt(curstat_t *);
- Xbool_t cd_devlock(char *);
- Xvoid onsig(int);
- X
- X
- X/* Callback functions */
- Xvoid cd_checkbox(Widget, XtPointer, XtPointer);
- Xvoid cd_load_eject(Widget, XtPointer, XtPointer);
- Xvoid cd_poweroff(Widget, XtPointer, XtPointer);
- Xvoid cd_dbprog(Widget, XtPointer, XtPointer);
- Xvoid cd_time(Widget, XtPointer, XtPointer);
- Xvoid cd_ab(Widget, XtPointer, XtPointer);
- Xvoid cd_sample(Widget, XtPointer, XtPointer);
- Xvoid cd_level(Widget, XtPointer, XtPointer);
- Xvoid cd_play_pause(Widget, XtPointer, XtPointer);
- Xvoid cd_stop(Widget, XtPointer, XtPointer);
- Xvoid cd_prevtrk(Widget, XtPointer, XtPointer);
- Xvoid cd_nexttrk(Widget, XtPointer, XtPointer);
- Xvoid cd_previdx(Widget, XtPointer, XtPointer);
- Xvoid cd_nextidx(Widget, XtPointer, XtPointer);
- Xvoid cd_rew(Widget, XtPointer, XtPointer);
- Xvoid cd_ff(Widget, XtPointer, XtPointer);
- Xvoid cd_keypad_popup(Widget, XtPointer, XtPointer);
- Xvoid cd_keypad_clear(Widget, XtPointer, XtPointer);
- Xvoid cd_keypad_popdown(Widget, XtPointer, XtPointer);
- Xvoid cd_keypad_num(Widget, XtPointer, XtPointer);
- Xvoid cd_keypad_enter(Widget, XtPointer, XtPointer);
- Xvoid cd_about(Widget, XtPointer, XtPointer);
- Xvoid cd_help_popup(Widget, XtPointer, XtPointer);
- Xvoid cd_help_popdown(Widget, XtPointer, XtPointer);
- Xvoid cd_warning_popdown(Widget, XtPointer, XtPointer);
- Xvoid cd_fatal_popdown(Widget, XtPointer, XtPointer);
- Xvoid cd_rmcallback(Widget, XtPointer, XtPointer);
- Xvoid cd_form_focus_chg(Widget, XtPointer, XtPointer);
- Xvoid cd_exit(Widget, XtPointer, XtPointer);
- X
- X/* Event handlers */
- Xvoid cd_btn_focus_chg(Widget, XtPointer, XEvent *, Boolean *);
- X
- X#endif /* __CDFUNC_H__ */
- X
- END_OF_FILE
- if test 3864 -ne `wc -c <'cdfunc.h'`; then
- echo shar: \"'cdfunc.h'\" unpacked with wrong size!
- fi
- # end of 'cdfunc.h'
- fi
- if test -f 'cdlib.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'cdlib.h'\"
- else
- echo shar: Extracting \"'cdlib.h'\" \(1917 characters\)
- sed "s/^X//" >'cdlib.h' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef __CDLIB_H__
- X#define __CDLIB_H__
- X
- X#ifndef LINT
- Xstatic char *_cdlib_h_ident_ = "@(#)cdlib.h 1.37 93/09/28";
- X#endif
- X
- X/* Function prototypes */
- Xbool_t cdlib_check_disc(curstat_t *);
- Xvoid cdlib_lock(curstat_t *, bool_t);
- Xvoid cdlib_repeat(curstat_t *, bool_t);
- Xvoid cdlib_shuffle(curstat_t *, bool_t);
- Xvoid cdlib_load_eject(curstat_t *);
- Xvoid cdlib_time(curstat_t *);
- Xvoid cdlib_ab(curstat_t *);
- Xvoid cdlib_sample(curstat_t *);
- Xvoid cdlib_level(curstat_t *, byte_t, bool_t);
- Xvoid cdlib_play_pause(curstat_t *);
- Xvoid cdlib_stop(curstat_t *, bool_t);
- Xvoid cdlib_prevtrk(curstat_t *);
- Xvoid cdlib_nexttrk(curstat_t *);
- Xvoid cdlib_previdx(curstat_t *);
- Xvoid cdlib_nextidx(curstat_t *);
- Xvoid cdlib_rew(curstat_t *, bool_t);
- Xvoid cdlib_ff(curstat_t *, bool_t);
- Xvoid cdlib_mute_on(curstat_t *);
- Xvoid cdlib_mute_off(curstat_t *);
- Xvoid cdlib_playprog(curstat_t *);
- Xvoid cdlib_init(curstat_t *);
- Xvoid cdlib_start(curstat_t *);
- Xvoid cdlib_icon(curstat_t *, bool_t);
- Xvoid cdlib_halt(curstat_t *);
- Xchar *cdlib_mode(void);
- Xchar *cdlib_vers(void);
- X
- X#endif /* __CDLIB_H__ */
- X
- END_OF_FILE
- if test 1917 -ne `wc -c <'cdlib.h'`; then
- echo shar: \"'cdlib.h'\" unpacked with wrong size!
- fi
- # end of 'cdlib.h'
- fi
- if test -f 'dbprog.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'dbprog.h'\"
- else
- echo shar: Extracting \"'dbprog.h'\" \(3145 characters\)
- sed "s/^X//" >'dbprog.h' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif(tm) CD Audio Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef __DBPROG_H__
- X#define __DBPROG_H__
- X
- X#ifndef LINT
- Xstatic char *_dbprog_h_ident_ = "@(#)dbprog.h 1.29 93/09/28";
- X#endif
- X
- X
- X#define TRKLIST_FMT " %02u %02u:%02u %s "
- X#define TRKLIST_PFLEN 16
- X#define UNDEF_STR "??"
- X#define DBPATH_SEPCHAR ':'
- X#define PGM_SEPCHAR ','
- X#define TIME_TOTAL 1
- X#define TIME_TRACK 2
- X#define DIRSEL_SAVE 1
- X#define DIRSEL_LINK 2
- X#define OPEN_ERR 50
- X#define SETUID_ERR 51
- X#define LINK_ERR 52
- X
- X
- X/* Public functions */
- Xvoid dbprog_curtrkupd(curstat_t *);
- Xvoid dbprog_dbclear(curstat_t *);
- Xvoid dbprog_dbget(curstat_t *);
- Xvoid dbprog_init(curstat_t *);
- X
- X/* Callback functions */
- Xvoid dbprog_popup(Widget, XtPointer, XtPointer);
- Xvoid dbprog_dtitle_new(Widget, XtPointer, XtPointer);
- Xvoid dbprog_trklist_play(Widget, XtPointer, XtPointer);
- Xvoid dbprog_trklist_select(Widget, XtPointer, XtPointer);
- Xvoid dbprog_ttitle_new(Widget, XtPointer, XtPointer);
- Xvoid dbprog_pgmseq_verify(Widget, XtPointer, XtPointer);
- Xvoid dbprog_pgmseq_txtchg(Widget, XtPointer, XtPointer);
- Xvoid dbprog_pgmseq_focuschg(Widget, XtPointer, XtPointer);
- Xvoid dbprog_addpgm(Widget, XtPointer, XtPointer);
- Xvoid dbprog_clrpgm(Widget, XtPointer, XtPointer);
- Xvoid dbprog_playpgm(Widget, XtPointer, XtPointer);
- Xvoid dbprog_savedb(Widget, XtPointer, XtPointer);
- Xvoid dbprog_loaddb(Widget, XtPointer, XtPointer);
- Xvoid dbprog_link(Widget, XtPointer, XtPointer);
- Xvoid dbprog_cancel(Widget, XtPointer, XtPointer);
- Xvoid dbprog_timedpy(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extd(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extt(Widget, XtPointer, XtPointer);
- Xvoid dbprog_set_changed(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extd_ok(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extd_clear(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extd_cancel(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extt_ok(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extt_clear(Widget, XtPointer, XtPointer);
- Xvoid dbprog_extt_cancel(Widget, XtPointer, XtPointer);
- Xvoid dbprog_dirsel_select(Widget, XtPointer, XtPointer);
- Xvoid dbprog_dirsel_ok(Widget, XtPointer, XtPointer);
- Xvoid dbprog_dirsel_cancel(Widget, XtPointer, XtPointer);
- Xvoid dbprog_linksel_select(Widget, XtPointer, XtPointer);
- Xvoid dbprog_linksel_ok(Widget, XtPointer, XtPointer);
- Xvoid dbprog_linksel_cancel(Widget, XtPointer, XtPointer);
- X
- X#endif /* __DBPROG_H__ */
- END_OF_FILE
- if test 3145 -ne `wc -c <'dbprog.h'`; then
- echo shar: \"'dbprog.h'\" unpacked with wrong size!
- fi
- # end of 'dbprog.h'
- fi
- if test -f 'geometry.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'geometry.h'\"
- else
- echo shar: Extracting \"'geometry.h'\" \(10010 characters\)
- sed "s/^X//" >'geometry.h' <<'END_OF_FILE'
- X/*
- X * xmcd - Motif CD Player
- X *
- X * Copyright (C) 1993 Ti Kan
- X * E-mail: ti@amb.org
- X *
- X * This program is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2 of the License, or
- X * (at your option) any later version.
- X *
- X * This program is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with this program; if not, write to the Free Software
- X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- X *
- X */
- X#ifndef __GEOMETRY_H__
- X#define __GEOMETRY_H__
- X
- X#ifndef LINT
- Xstatic char *_geometry_h_ident_ = "@(#)geometry.h 1.45 93/09/28";
- X#endif
- X
- X/* Location of widgets relative to form origin, express in percentage of
- X * form size.
- X */
- X
- X/* Main window widgets */
- X
- X#define LEFT_CHECKBOX 0
- X#define RIGHT_CHECKBOX 16
- X#define TOP_CHECKBOX 0
- X#define BOTTOM_CHECKBOX 60
- X
- X#define LEFT_EJECT 0
- X#define RIGHT_EJECT 16
- X#define TOP_EJECT 60
- X#define BOTTOM_EJECT 80
- X
- X#define LEFT_POWEROFF 0
- X#define RIGHT_POWEROFF 16
- X#define TOP_POWEROFF 80
- X#define BOTTOM_POWEROFF 100
- X
- X#define LEFT_TRACKIND 20
- X#define RIGHT_TRACKIND 32
- X#define TOP_TRACKIND 4
- X#define BOTTOM_TRACKIND 45
- X
- X#define LEFT_INDEXIND 32
- X#define RIGHT_INDEXIND 39
- X#define TOP_INDEXIND 4
- X#define BOTTOM_INDEXIND 45
- X
- X#define LEFT_TIMEIND 39
- X#define RIGHT_TIMEIND 63
- X#define TOP_TIMEIND 4
- X#define BOTTOM_TIMEIND 45
- X
- X#define LEFT_DBMODEIND 20
- X#define RIGHT_DBMODEIND 31
- X#define TOP_DBMODEIND 45
- X#define BOTTOM_DBMODEIND 60
- X
- X#define LEFT_PROGMODEIND 31
- X#define RIGHT_PROGMODEIND 41
- X#define TOP_PROGMODEIND 45
- X#define BOTTOM_PROGMODEIND 60
- X
- X#define LEFT_TIMEMODEIND 41
- X#define RIGHT_TIMEMODEIND 52
- X#define TOP_TIMEMODEIND 45
- X#define BOTTOM_TIMEMODEIND 60
- X
- X#define LEFT_PLAYMODEIND 52
- X#define RIGHT_PLAYMODEIND 63
- X#define TOP_PLAYMODEIND 45
- X#define BOTTOM_PLAYMODEIND 60
- X
- X#define LEFT_DBPROG 16
- X#define RIGHT_DBPROG 27
- X#define TOP_DBPROG 65
- X#define BOTTOM_DBPROG 100
- X
- X#define LEFT_TIME 27
- X#define RIGHT_TIME 37
- X#define TOP_TIME 65
- X#define BOTTOM_TIME 80
- X
- X#define LEFT_AB 37
- X#define RIGHT_AB 47
- X#define TOP_AB 65
- X#define BOTTOM_AB 80
- X
- X#define LEFT_SAMPLE 47
- X#define RIGHT_SAMPLE 57
- X#define TOP_SAMPLE 65
- X#define BOTTOM_SAMPLE 80
- X
- X#define LEFT_KEYPAD 57
- X#define RIGHT_KEYPAD 67
- X#define TOP_KEYPAD 65
- X#define BOTTOM_KEYPAD 80
- X
- X#define LEFT_HELP 27
- X#define RIGHT_HELP 37
- X#define TOP_HELP 80
- X#define BOTTOM_HELP 100
- X
- X#define LEFT_LEVEL 37
- X#define RIGHT_LEVEL 67
- X#define TOP_LEVEL 80
- X#define BOTTOM_LEVEL 100
- X
- X#define LEFT_PLAYPAUSE 67
- X#define RIGHT_PLAYPAUSE 100
- X#define TOP_PLAYPAUSE 0
- X#define BOTTOM_PLAYPAUSE 20
- X
- X#define LEFT_STOP 67
- X#define RIGHT_STOP 100
- X#define TOP_STOP 20
- X#define BOTTOM_STOP 40
- X
- X#define LEFT_PREVTRK 67
- X#define RIGHT_PREVTRK 84
- X#define TOP_PREVTRK 40
- X#define BOTTOM_PREVTRK 60
- X
- X#define LEFT_NEXTTRK 84
- X#define RIGHT_NEXTTRK 100
- X#define TOP_NEXTTRK 40
- X#define BOTTOM_NEXTTRK 60
- X
- X#define LEFT_PREVIDX 67
- X#define RIGHT_PREVIDX 84
- X#define TOP_PREVIDX 60
- X#define BOTTOM_PREVIDX 80
- X
- X#define LEFT_NEXTIDX 84
- X#define RIGHT_NEXTIDX 100
- X#define TOP_NEXTIDX 60
- X#define BOTTOM_NEXTIDX 80
- X
- X#define LEFT_REW 67
- X#define RIGHT_REW 84
- X#define TOP_REW 80
- X#define BOTTOM_REW 100
- X
- X#define LEFT_FF 84
- X#define RIGHT_FF 100
- X#define TOP_FF 80
- X#define BOTTOM_FF 100
- X
- X/* Keypad window widgets */
- X
- X#define LEFT_KEYPADLBL 5
- X#define RIGHT_KEYPADLBL 95
- X#define TOP_KEYPADLBL 5
- X#define BOTTOM_KEYPADLBL 11
- X
- X#define LEFT_KEYPADIND 38
- X#define RIGHT_KEYPADIND 62
- X#define TOP_KEYPADIND 12
- X#define BOTTOM_KEYPADIND 23
- X
- X#define LEFT_KEY1 5
- X#define RIGHT_KEY1 35
- X#define TOP_KEY1 28
- X#define BOTTOM_KEY1 39
- X
- X#define LEFT_KEY2 35
- X#define RIGHT_KEY2 65
- X#define TOP_KEY2 28
- X#define BOTTOM_KEY2 39
- X
- X#define LEFT_KEY3 65
- X#define RIGHT_KEY3 95
- X#define TOP_KEY3 28
- X#define BOTTOM_KEY3 39
- X
- X#define LEFT_KEY4 5
- X#define RIGHT_KEY4 35
- X#define TOP_KEY4 39
- X#define BOTTOM_KEY4 50
- X
- X#define LEFT_KEY5 35
- X#define RIGHT_KEY5 65
- X#define TOP_KEY5 39
- X#define BOTTOM_KEY5 50
- X
- X#define LEFT_KEY6 65
- X#define RIGHT_KEY6 95
- X#define TOP_KEY6 39
- X#define BOTTOM_KEY6 50
- X
- X#define LEFT_KEY7 5
- X#define RIGHT_KEY7 35
- X#define TOP_KEY7 50
- X#define BOTTOM_KEY7 61
- X
- X#define LEFT_KEY8 35
- X#define RIGHT_KEY8 65
- X#define TOP_KEY8 50
- X#define BOTTOM_KEY8 61
- X
- X#define LEFT_KEY9 65
- X#define RIGHT_KEY9 95
- X#define TOP_KEY9 50
- X#define BOTTOM_KEY9 61
- X
- X#define LEFT_KEY0 5
- X#define RIGHT_KEY0 35
- X#define TOP_KEY0 61
- X#define BOTTOM_KEY0 72
- X
- X#define LEFT_ENTER 35
- X#define RIGHT_ENTER 95
- X#define TOP_ENTER 61
- X#define BOTTOM_ENTER 72
- X
- X#define LEFT_KEYPADSEP 0
- X#define RIGHT_KEYPADSEP 100
- X#define TOP_KEYPADSEP 77
- X
- X#define LEFT_KPCLEAR 5
- X#define RIGHT_KPCLEAR 45
- X#define TOP_KPCLEAR 84
- X
- X#define LEFT_KPCANCEL 55
- X#define RIGHT_KPCANCEL 95
- X#define TOP_KPCANCEL 84
- X
- X/* Database/Program window widgets */
- X
- X#define LEFT_LOGO 32
- X#define RIGHT_LOGO 52
- X#define TOP_LOGO 1
- X#define BOTTOM_LOGO 11
- X
- X#define LEFT_ABOUT 81
- X#define RIGHT_ABOUT 96
- X#define TOP_ABOUT 2
- X#define BOTTOM_ABOUT 7
- X
- X#define LEFT_DTITLELBL 4
- X#define RIGHT_DTITLELBL 79
- X#define TOP_DTITLELBL 11
- X#define BOTTOM_DTITLELBL 15
- X
- X#define LEFT_EXTDLBL 81
- X#define RIGHT_EXTDLBL 96
- X#define TOP_EXTDLBL 11
- X#define BOTTOM_EXTDLBL 15
- X
- X#define LEFT_DTITLE 4
- X#define RIGHT_DTITLE 79
- X#define TOP_DTITLE 15
- X#define BOTTOM_DTITLE 22
- X
- X#define LEFT_EXTD 81
- X#define RIGHT_EXTD 96
- X#define TOP_EXTD 15
- X#define BOTTOM_EXTD 21
- X
- X#define LEFT_DBPROGSEP1 0
- X#define RIGHT_DBPROGSEP1 100
- X#define TOP_DBPROGSEP1 24
- X
- X#define LEFT_TRKLISTLBL 4
- X#define RIGHT_TRKLISTLBL 79
- X#define TOP_TRKLISTLBL 26
- X#define BOTTOM_TRKLISTLBL 30
- X
- X#define LEFT_TRKLIST 4
- X#define RIGHT_TRKLIST 79
- X#define TOP_TRKLIST 30
- X#define BOTTOM_TRKLIST 61
- X
- X#define LEFT_RADIOLBL 81
- X#define RIGHT_RADIOLBL 96
- X#define TOP_RADIOLBL 46
- X#define BOTTOM_RADIOLBL 50
- X
- X#define LEFT_RADIOBOX 81
- X#define RIGHT_RADIOBOX 96
- X#define TOP_RADIOBOX 50
- X#define BOTTOM_RADIOBOX 61
- X
- X#define LEFT_TTITLELBL 4
- X#define RIGHT_TTITLELBL 79
- X#define TOP_TTITLELBL 62
- X#define BOTTOM_TTITLELBL 66
- X
- X#define LEFT_EXTTLBL 81
- X#define RIGHT_EXTTLBL 96
- X#define TOP_EXTTLBL 62
- X#define BOTTOM_EXTTLBL 66
- X
- X#define LEFT_TTITLE 4
- X#define RIGHT_TTITLE 79
- X#define TOP_TTITLE 66
- X#define BOTTOM_TTITLE 73
- X
- X#define LEFT_EXTT 81
- X#define RIGHT_EXTT 96
- X#define TOP_EXTT 66
- X#define BOTTOM_EXTT 72
- X
- X#define LEFT_PGMLBL 81
- X#define RIGHT_PGMLBL 96
- X#define TOP_PGMLBL 26
- X#define BOTTOM_PGMLBL 30
- X
- X#define LEFT_ADDPGM 81
- X#define RIGHT_ADDPGM 96
- X#define TOP_ADDPGM 30
- X#define BOTTOM_ADDPGM 35
- X
- X#define LEFT_CLRPGM 81
- X#define RIGHT_CLRPGM 96
- X#define TOP_CLRPGM 35
- X#define BOTTOM_CLRPGM 40
- X
- X#define LEFT_PLAYPGM 81
- X#define RIGHT_PLAYPGM 96
- X#define TOP_PLAYPGM 40
- X#define BOTTOM_PLAYPGM 45
- X
- X#define LEFT_PGMSEQLBL 4
- X#define RIGHT_PGMSEQLBL 79
- X#define TOP_PGMSEQLBL 73
- X#define BOTTOM_PGMSEQLBL 77
- X
- X#define LEFT_PGMSEQ 4
- X#define RIGHT_PGMSEQ 79
- X#define TOP_PGMSEQ 77
- X#define BOTTOM_PGMSEQ 84
- X
- X#define LEFT_DBPROGSEP2 0
- X#define RIGHT_DBPROGSEP2 100
- X#define TOP_DBPROGSEP2 87
- X
- X#define LEFT_SAVEDB 6
- X#define RIGHT_SAVEDB 25
- X#define TOP_SAVEDB 91
- X
- X#define LEFT_LOADDB 29
- X#define RIGHT_LOADDB 48
- X#define TOP_LOADDB 91
- X
- X#define LEFT_LINK 52
- X#define RIGHT_LINK 71
- X#define TOP_LINK 91
- X
- X#define LEFT_DPCANCEL 75
- X#define RIGHT_DPCANCEL 94
- X#define TOP_DPCANCEL 91
- X
- X/* Disc Extended Info editor widgets */
- X
- X#define LEFT_DISCLBL 3
- X#define RIGHT_DISCLBL 97
- X#define TOP_DISCLBL 3
- X#define BOTTOM_DISCLBL 8
- X
- X#define LEFT_EXTDTXT 3
- X#define RIGHT_EXTDTXT 97
- X#define TOP_EXTDTXT 10
- X#define BOTTOM_EXTDTXT 80
- X
- X#define LEFT_DBEXTDSEP 0
- X#define RIGHT_DBEXTDSEP 100
- X#define TOP_DBEXTDSEP 84
- X
- X#define LEFT_DDOK 10
- X#define RIGHT_DDOK 30
- X#define TOP_DDOK 89
- X
- X#define LEFT_DDCLEAR 40
- X#define RIGHT_DDCLEAR 60
- X#define TOP_DDCLEAR 89
- X
- X#define LEFT_DDCANCEL 70
- X#define RIGHT_DDCANCEL 90
- X#define TOP_DDCANCEL 89
- X
- X/* Track Extended Info editor widgets */
- X
- X#define LEFT_TRKLBL 3
- X#define RIGHT_TRKLBL 97
- X#define TOP_TRKLBL 3
- X#define BOTTOM_TRKLBL 8
- X
- X#define LEFT_EXTTTXT 3
- X#define RIGHT_EXTTTXT 97
- X#define TOP_EXTTTXT 10
- X#define BOTTOM_EXTTTXT 80
- X
- X#define LEFT_DBEXTTSEP 0
- X#define RIGHT_DBEXTTSEP 100
- X#define TOP_DBEXTTSEP 84
- X
- X#define LEFT_DTOK 10
- X#define RIGHT_DTOK 30
- X#define TOP_DTOK 89
- X
- X#define LEFT_DTCLEAR 40
- X#define RIGHT_DTCLEAR 60
- X#define TOP_DTCLEAR 89
- X
- X#define LEFT_DTCANCEL 70
- X#define RIGHT_DTCANCEL 90
- X#define TOP_DTCANCEL 89
- X
- X/* Help popup widgets */
- X
- X#define LEFT_HELPTXT 3
- X#define RIGHT_HELPTXT 97
- X#define TOP_HELPTXT 5
- X#define BOTTOM_HELPTXT 80
- X
- X#define LEFT_HELPSEP 0
- X#define RIGHT_HELPSEP 100
- X#define TOP_HELPSEP 84
- X
- X#define LEFT_HELPOK 40
- X#define RIGHT_HELPOK 60
- X#define TOP_HELPOK 89
- X
- X/* Directory selector popup widgets */
- X
- X#define LEFT_DIRLBL 4
- X#define RIGHT_DIRLBL 96
- X#define TOP_DIRLBL 4
- X#define BOTTOM_DIRLBL 10
- X
- X#define LEFT_DIRLIST 4
- X#define RIGHT_DIRLIST 96
- X#define TOP_DIRLIST 14
- X#define BOTTOM_DIRLIST 67
- X
- X#define LEFT_DIRSELSEP 0
- X#define RIGHT_DIRSELSEP 100
- X#define TOP_DIRSELSEP 74
- X
- X#define LEFT_DSOK 5
- X#define RIGHT_DSOK 40
- X#define TOP_DSOK 82
- X
- X#define LEFT_DSCANCEL 60
- X#define RIGHT_DSCANCEL 95
- X#define TOP_DSCANCEL 82
- X
- X/* Link selector popup widgets */
- X
- X#define LEFT_LINKLBL 3
- X#define RIGHT_LINKLBL 97
- X#define TOP_LINKLBL 4
- X#define BOTTOM_LINKLBL 10
- X
- X#define LEFT_LINKLIST 3
- X#define RIGHT_LINKLIST 97
- X#define TOP_LINKLIST 14
- X#define BOTTOM_LINKLIST 67
- X
- X#define LEFT_LINKSELSEP 0
- X#define RIGHT_LINKSELSEP 100
- X#define TOP_LINKSELSEP 74
- X
- X#define LEFT_LSOK 10
- X#define RIGHT_LSOK 37
- X#define TOP_LSOK 82
- X
- X#define LEFT_LSCANCEL 63
- X#define RIGHT_LSCANCEL 90
- X#define TOP_LSCANCEL 82
- X
- X
- X/* Public function prototypes */
- Xvoid force_geometry(widgets_t *);
- X
- X#endif /* __GEOMETRY_H__ */
- X
- END_OF_FILE
- if test 10010 -ne `wc -c <'geometry.h'`; then
- echo shar: \"'geometry.h'\" unpacked with wrong size!
- fi
- # end of 'geometry.h'
- fi
- echo shar: End of archive 2 \(of 13\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 13 archives.
- echo "Now read the README and INSTALL files for further instructions."
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- /// Ti Kan vorsprung durch technik
- /// AMB Research Laboratories, Sunnyvale, CA. USA
- /// ti@amb.org
- ////// ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
- /// ...!uunet!bazooka!ti
-
-
-
- exit 0 # Just in case...
- --
- // chris@Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga: The only way to fly! | sources-x@sterling.com
- "It's intuitively obvious to the most casual observer..."
- GCS d++(--) -p+ c++ !l u++ e+ m+(-) s++/++ n h--- f+ g+++ w+ t++ r+ y+
-