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

  1. Newsgroups: comp.sources.x
  2. From: ti@bazooka.amb.org (Ti Kan)
  3. Subject: v21i064:  xmcd - X11/Motif CD audio player, Part02/13
  4. Message-ID: <1993Dec19.193806.23920@sparky.sterling.com>
  5. X-Md4-Signature: 6caf6cee57eaf80fd38953bee9b96bb7
  6. Sender: chris@sparky.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Sun, 19 Dec 1993 19:38:06 GMT
  9. Approved: chris@sterling.com
  10.  
  11. Submitted-by: ti@bazooka.amb.org (Ti Kan)
  12. Posting-number: Volume 21, Issue 64
  13. Archive-name: xmcd/part02
  14. Environment: X11, OSF/Motif
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then unpack
  18. # it by saving it into a file and typing "sh file".  To overwrite existing
  19. # files, type "sh file -c".  You can also feed this as standard input via
  20. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  21. # will see the following message at the end:
  22. #        "End of archive 2 (of 13)."
  23. # Contents:  XMcd.ad XKeysymDB dev.config install.sh configure.sh
  24. #   makerel.sh makesrc.sh cdfunc.h cdlib.h dbprog.h geometry.h
  25. # Wrapped by ti@bazooka on Mon Nov  8 10:35:17 1993
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f 'XMcd.ad' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'XMcd.ad'\"
  29. else
  30. echo shar: Extracting \"'XMcd.ad'\" \(19273 characters\)
  31. sed "s/^X//" >'XMcd.ad' <<'END_OF_FILE'
  32. X!
  33. X! @(#)XMcd.ad    1.118 93/09/25
  34. X!
  35. X!   xmcd - Motif(tm) CD Audio Player
  36. X!
  37. X!   Copyright (C) 1993  Ti Kan
  38. X!   E-mail: ti@amb.org
  39. X!
  40. X!   This program is free software; you can redistribute it and/or modify
  41. X!   it under the terms of the GNU General Public License as published by
  42. X!   the Free Software Foundation; either version 2 of the License, or
  43. X!   (at your option) any later version.
  44. X!
  45. X!   This program is distributed in the hope that it will be useful,
  46. X!   but WITHOUT ANY WARRANTY; without even the implied warranty of
  47. X!   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  48. X!   GNU General Public License for more details.
  49. X!
  50. X!   You should have received a copy of the GNU General Public License
  51. X!   along with this program; if not, write to the Free Software
  52. X!   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  53. X!
  54. X!
  55. X! These are general application resources for xmcd.  There are also
  56. X! device-specific parameters in LIBDIR/config/DEVNAME, where LIBDIR
  57. X! if the path specified by the XMcd.libdir resource and DEVNAME is
  58. X! the device name specified by the XMcd.device resource.
  59. X!
  60. X
  61. X
  62. X!*
  63. X!* Color resource defaults
  64. X!*
  65. X!* The following should be used only on a color or grey-scale display.
  66. X!* You may wish to alter these color defaults.  I find them aesthetically
  67. X!* pleasing as-is.
  68. X!*
  69. X
  70. XXMcd*mainForm.foreground:        Black
  71. XXMcd*mainForm.background:        Grey45
  72. XXMcd*dbModeIndicator.foreground:    Orange
  73. XXMcd*dbModeIndicator.background:    Black
  74. XXMcd*progModeIndicator.foreground:    Orange
  75. XXMcd*progModeIndicator.background:    Black
  76. XXMcd*timeModeIndicator.foreground:    Orange
  77. XXMcd*timeModeIndicator.background:    Black
  78. XXMcd*playModeIndicator.foreground:    Orange
  79. XXMcd*playModeIndicator.background:    Black
  80. XXMcd*trackIndicator.foreground:        Green
  81. XXMcd*trackIndicator.background:        Black
  82. XXMcd*indexIndicator.foreground:        Green
  83. XXMcd*indexIndicator.background:        Black
  84. XXMcd*timeIndicator.foreground:        Green
  85. XXMcd*timeIndicator.background:        Black
  86. XXMcd*keypadIndicator.foreground:    Orange
  87. XXMcd*keypadIndicator.background:    Black
  88. XXMcd*checkBox*selectColor:        Yellow
  89. XXMcd*timeSelectBox*selectColor:        Yellow
  90. X
  91. XXMcd*XmForm.foreground:            Black
  92. XXMcd*XmForm.background:            Grey65
  93. XXMcd*XmLabel.foreground:        Black
  94. XXMcd*XmLabel.background:        Grey65
  95. XXMcd*XmText.foreground:            Black
  96. XXMcd*XmText.background:            Grey75
  97. XXMcd*XmList.foreground:            Black
  98. XXMcd*XmList.background:            Grey75
  99. XXMcd*highlightColor:            DarkOrchid
  100. XXMcd*topShadowColor:            White
  101. XXMcd*bottomShadowColor:            Black
  102. XXMcd*foreground:            Black
  103. XXMcd*background:            Grey65
  104. X
  105. X!*
  106. X!* Monochrome resource defaults
  107. X!*
  108. X!* These should be used only on a monochrome (1 bit plane) display.
  109. X!*
  110. X
  111. X!XMcd*dbModeIndicator.foreground:    White
  112. X!XMcd*dbModeIndicator.background:    Black
  113. X!XMcd*progModeIndicator.foreground:    White
  114. X!XMcd*progModeIndicator.background:    Black
  115. X!XMcd*timeModeIndicator.foreground:    White
  116. X!XMcd*timeModeIndicator.background:    Black
  117. X!XMcd*playModeIndicator.foreground:    White
  118. X!XMcd*playModeIndicator.background:    Black
  119. X!XMcd*trackIndicator.foreground:    White
  120. X!XMcd*trackIndicator.background:    Black
  121. X!XMcd*indexIndicator.foreground:    White
  122. X!XMcd*indexIndicator.background:    Black
  123. X!XMcd*timeIndicator.foreground:        White
  124. X!XMcd*timeIndicator.background:        Black
  125. X!XMcd*keypadIndicator.foreground:    White
  126. X!XMcd*keypadIndicator.background:    Black
  127. X!XMcd*foreground:            Black
  128. X!XMcd*background:            White
  129. X
  130. X
  131. X!*
  132. X!* Widget-specific or widget-type-specific resources
  133. X!*
  134. X!* These should not require any modification, except if the specified
  135. X!* fonts are not available, or to change the text string defaults to
  136. X!* a non-English language.
  137. X!*
  138. X
  139. X! Font defaults
  140. XXMcd*mainForm.checkBoxFrame*fontList:    6x10
  141. XXMcd*mainForm.XmPushButton*fontList:    6x10
  142. XXMcd*trackIndicator.fontList:    -adobe-helvetica-*-o-*--24-240-75-75-p-130-*
  143. XXMcd*indexIndicator.fontList:    -adobe-helvetica-*-o-*--*-140-*-*-p-*-*
  144. XXMcd*timeIndicator.fontList:    -adobe-helvetica-*-o-*--24-240-75-75-p-130-*
  145. XXMcd*dbModeIndicator.fontList:    -adobe-times-*-r-*--12-120-75-75-p-67-*
  146. XXMcd*progModeIndicator.fontList:    -adobe-times-*-r-*--12-120-75-75-p-67-*
  147. XXMcd*timeModeIndicator.fontList:    -adobe-times-*-r-*--12-120-75-75-p-67-*
  148. XXMcd*playModeIndicator.fontList:    -adobe-times-*-r-*--12-120-75-75-p-67-*
  149. XXMcd*aboutPopup*fontList:    -adobe-times-bold-i-*--*-240-*=chset1, \
  150. X                -adobe-times-bold-i-*--*-120-*=chset2, \
  151. X                -misc-fixed-medium-r-*--*-100-*=chset3, \
  152. X                fixed
  153. XXMcd*dirSelectList.fontList:    -adobe-helvetica-medium-r-*--12-120-*
  154. XXMcd*linkSelectList.fontList:    -adobe-helvetica-medium-r-*--12-120-*
  155. XXMcd*extDiscInfoLabel.fontList:    -adobe-helvetica-bold-r-*--12-120-*
  156. XXMcd*extTrackInfoLabel.fontList:    -adobe-helvetica-bold-r-*--12-120-*
  157. XXMcd*keypadForm*keypadLabel.fontList:    fixed
  158. XXMcd*keypadForm*keypadIndicator.fontList: \
  159. X                -adobe-helvetica-*-o-*--*-140-*-*-p-*-*
  160. XXMcd*keypadForm*keypadCancelButton.fontList:    fixed
  161. XXMcd*keypadForm*keypadClearButton.fontList:    fixed
  162. XXMcd*keypadForm*fontList:    -adobe-helvetica-bold-r-*--12-120-*
  163. X
  164. XXMcd*helpForm*XmPushButton*fontList:    fixed
  165. X
  166. XXMcd*XmList.fontList:        -adobe-helvetica-medium-r-*--12-120-*=chset1, \
  167. X                -adobe-helvetica-bold-r-*--12-120-*=chset2, \
  168. X                fixed
  169. XXMcd*XmText.fontList:        -adobe-helvetica-medium-r-*--12-120-*
  170. XXMcd*XmScale.fontList:        6x10
  171. XXMcd*fontList:            fixed
  172. X
  173. X! Text string defaults
  174. XXMcd*checkBox*button_0.labelString:    disp
  175. XXMcd*checkBox*button_1.labelString:    lock
  176. XXMcd*checkBox*button_2.labelString:    rept
  177. XXMcd*checkBox*button_3.labelString:    shuf
  178. XXMcd*ejectButton.labelString:        eject
  179. XXMcd*powerOffButton.labelString:    quit
  180. XXMcd*dbprogButton.labelString:        cddb\nprog
  181. XXMcd*helpButton.labelString:        help
  182. XXMcd*timeButton.labelString:        time
  183. XXMcd*abButton.labelString:        a->b
  184. XXMcd*sampleButton.labelString:        samp
  185. XXMcd*keypadButton.labelString:        kpad
  186. XXMcd*playPauseButton.labelString:    play / pause
  187. XXMcd*stopButton.labelString:        stop
  188. XXMcd*prevTrackButton.labelString:    < track
  189. XXMcd*nextTrackButton.labelString:    track >
  190. XXMcd*prevIndexButton.labelString:    < index
  191. XXMcd*nextIndexButton.labelString:    index >
  192. XXMcd*rewButton.labelString:        << rew
  193. XXMcd*ffButton.labelString:        ff >>
  194. XXMcd*keypadForm.dialogTitle:        Keypad
  195. XXMcd*keypadLabel.labelString:        Direct track access
  196. XXMcd*keypadNumButton0.labelString:    0
  197. XXMcd*keypadNumButton1.labelString:    1
  198. XXMcd*keypadNumButton2.labelString:    2
  199. XXMcd*keypadNumButton3.labelString:    3
  200. XXMcd*keypadNumButton4.labelString:    4
  201. XXMcd*keypadNumButton5.labelString:    5
  202. XXMcd*keypadNumButton6.labelString:    6
  203. XXMcd*keypadNumButton7.labelString:    7
  204. XXMcd*keypadNumButton8.labelString:    8
  205. XXMcd*keypadNumButton9.labelString:    9
  206. XXMcd*keypadEnterButton.labelString:    Enter
  207. XXMcd*keypadCancelButton.labelString:    Cancel
  208. XXMcd*keypadClearButton.labelString:    Clear
  209. XXMcd*dbprogForm.dialogTitle:        CD Database / Track Program Editor
  210. XXMcd*aboutButton.labelString:        About...
  211. XXMcd*discTitleLabel.labelString:    Disc artist / Title
  212. XXMcd*discLabel.labelString:        Disc
  213. XXMcd*extDiscInfoButton.labelString:    Ext Info
  214. XXMcd*trackListLabel.labelString:    Track / Time / Title
  215. XXMcd*timeSelectLabel.labelString:    Time
  216. XXMcd*timeSelectBox*button_0.labelString: total
  217. XXMcd*timeSelectBox*button_1.labelString: track
  218. XXMcd*trackTitleLabel.labelString:    Track title edit
  219. XXMcd*trackLabel.labelString:        Track
  220. XXMcd*extTrackInfoButton.labelString:    Ext Info
  221. XXMcd*programLabel.labelString:        Trk Prog
  222. XXMcd*addProgramButton.labelString:    Add to
  223. XXMcd*clearProgramButton.labelString:    Clear
  224. XXMcd*playProgramButton.labelString:    Play
  225. XXMcd*programSequenceLabel.labelString:    Program sequence
  226. XXMcd*saveDatabaseButton.labelString:    Save
  227. XXMcd*loadDatabaseButton.labelString:    Load
  228. XXMcd*linkDatabaseButton.labelString:    Link
  229. XXMcd*dbprogCancelButton.labelString:    Cancel
  230. XXMcd*dirSelectForm.dialogTitle:        CD Database Directory Selection
  231. XXMcd*dirSelectLabel.labelString:    Choose one
  232. XXMcd*dirSelectOkButton.labelString:    OK
  233. XXMcd*dirSelectCancelButton.labelString:    Cancel
  234. XXMcd*linkSelectForm.dialogTitle:    CDDB Link Entry Selection
  235. XXMcd*linkSelectLabel.labelString:    Choose one
  236. XXMcd*linkSelectOkButton.labelString:    OK
  237. XXMcd*linkSelectCancelButton.labelString: Cancel
  238. XXMcd*extDiscInfoForm.dialogTitle:    Disc Information
  239. XXMcd*extDiscInfoOkButton.labelString:    OK
  240. XXMcd*extDiscInfoClearButton.labelString: Clear
  241. XXMcd*extDiscInfoCancelButton.labelString: Cancel
  242. XXMcd*extTrackInfoForm.dialogTitle:    Track Information
  243. XXMcd*extTrackInfoOkButton.labelString:    OK
  244. XXMcd*extTrackInfoClearButton.labelString: Clear
  245. XXMcd*extTrackInfoCancelButton.labelString: Cancel
  246. XXMcd*helpForm.dialogTitle:        Help
  247. XXMcd*helpOkButton.labelString:        OK
  248. X
  249. X! Main window size
  250. XXMcd*mainForm.width:            390
  251. XXMcd*mainForm.height:            140
  252. X
  253. X! Keypad popup window size
  254. XXMcd*keypadForm.width:            150
  255. XXMcd*keypadForm.height:            225
  256. X
  257. X! Database/Program popup window size
  258. XXMcd*dbprogForm.width:            450
  259. XXMcd*dbprogForm.height:            455
  260. X
  261. X! Disc Extended Info popup window size
  262. XXMcd*extDiscInfoForm.width:        400
  263. XXMcd*extDiscInfoForm.height:        350
  264. X
  265. X! Track Extended Info popup window size
  266. XXMcd*extTrackInfoForm.width:        400
  267. XXMcd*extTrackInfoForm.height:        350
  268. X
  269. X! Help popup window size
  270. XXMcd*helpForm.width:            400
  271. XXMcd*helpForm.height:            350
  272. X
  273. X! Directory Selector popup window size
  274. XXMcd*dirSelectForm.width:        250
  275. XXMcd*dirSelectForm.height:        230
  276. X
  277. X! Directory Selector popup window size
  278. XXMcd*linkSelectForm.width:        350
  279. XXMcd*linkSelectForm.height:        230
  280. X
  281. X! Main window button-face label option
  282. X! Set to PIXMAP for pictoral labels, STRING for text labels
  283. XXMcd*mainForm.XmPushButton.labelType:    PIXMAP
  284. XXMcd*mainForm.checkBox*labelType:    PIXMAP
  285. X
  286. X! Misc defaults
  287. XXMcd*mainForm*highlightThickness:        0
  288. XXMcd*mainForm*checkBox*indicatorSize:        13
  289. XXMcd*mainForm*checkBox*highlightThickness:    1
  290. XXMcd*mainForm*checkBox*button_0.borderWidth:    1
  291. XXMcd*mainForm*checkBox*button_1.borderWidth:    1
  292. XXMcd*mainForm*checkBox*button_2.borderWidth:    1
  293. XXMcd*mainForm*checkBox*button_3.borderWidth:    1
  294. XXMcd*timeSelectBox*indicatorSize:        13
  295. XXMcd*timeSelectBox*highlightThickness:        1
  296. XXMcd*timeSelectBox*button_0.borderWidth:    1
  297. XXMcd*timeSelectBox*button_1.borderWidth:    1
  298. X
  299. XXMcd*XmLabel.alignment:            ALIGNMENT_CENTER
  300. XXMcd*XmList.highlightThickness:        1
  301. XXMcd*XmPushButton.highlightThickness:    2
  302. XXMcd*XmText.highlightThickness:        2
  303. XXMcd*XmText.autoShowCursorPosition:    True
  304. XXMcd*XmText.cursorPositionVisible:    True
  305. X
  306. XXMcd*levelScale*translations:        #override\n\
  307. X    <FocusIn>: focuschg(levelScale)\n\
  308. X    <FocusOut>: focuschg(levelScale)
  309. X
  310. X
  311. X!*
  312. X!* Short cut key defaults
  313. X!*
  314. X!* These should not require any modifications.
  315. X!* These are processed by xmcd and installed as translations.
  316. X!* The modifier key specification must be one of Shift, Ctrl, Lock,
  317. X!* Mod1, Mod2, Mod3, Mod4 or Mod5.
  318. X!*
  319. X
  320. X! Main window
  321. XXMcd.buttonLabelKey:\
  322. X        <Key>i: hotkey(checkBoxFrame*button_0,Arm)\n
  323. XXMcd.lockKey:    <Key>l: hotkey(checkBoxFrame*button_1,Arm)\n
  324. XXMcd.repeatKey:    <Key>e: hotkey(checkBoxFrame*button_2,Arm)\n
  325. XXMcd.shuffleKey:\
  326. X        <Key>u: hotkey(checkBoxFrame*button_3,Arm)\n
  327. XXMcd.ejectKey:    <Key>j: hotkey(ejectButton,ArmAndActivate)\n
  328. XXMcd.powerOffKey:\
  329. X        <Key>q: hotkey(powerOffButton,ArmAndActivate)\n\
  330. X        Mod1<Key>q: hotkey(powerOffButton,ArmAndActivate)\n
  331. XXMcd.dbprogKey:    <Key>d: hotkey(dbprogButton,ArmAndActivate)\n
  332. XXMcd.helpKey:    <Key>h: hotkey(helpButton,ArmAndActivate)\n\
  333. X        Shift<Key>question: hotkey(helpButton,ArmAndActivate)\n
  334. XXMcd.timeKey:    <Key>t: hotkey(timeButton,ArmAndActivate)\n
  335. XXMcd.abKey:    <Key>a: hotkey(abButton,ArmAndActivate)\n
  336. XXMcd.sampleKey:    <Key>m: hotkey(sampleButton,ArmAndActivate)\n
  337. XXMcd.keypadKey:    <Key>k: hotkey(keypadButton,ArmAndActivate)\n
  338. XXMcd.playPauseKey:\
  339. X        <Key>p: hotkey(playPauseButton,ArmAndActivate)\n
  340. XXMcd.stopKey:    <Key>s: hotkey(stopButton,ArmAndActivate)\n
  341. XXMcd.prevTrackKey:\
  342. X        Shift<Key>c: hotkey(prevTrackButton,ArmAndActivate)\n\
  343. X        <Key>Prior: hotkey(prevTrackButton,ArmAndActivate)\n\
  344. X        <Key>bracketleft: hotkey(prevTrackButton,ArmAndActivate)\n\
  345. X        Ctrl<Key>F1: hotkey(prevTrackButton,ArmAndActivate)\n
  346. XXMcd.nextTrackKey:\
  347. X        <Key>c: hotkey(nextTrackButton,ArmAndActivate)\n\
  348. X        <Key>Next: hotkey(nextTrackButton,ArmAndActivate)\n\
  349. X        <Key>bracketright: hotkey(nextTrackButton,ArmAndActivate)\n\
  350. X        Ctrl<Key>F2: hotkey(nextTrackButton,ArmAndActivate)\n
  351. XXMcd.prevIndexKey:\
  352. X        Shift<Key>x: hotkey(prevIndexButton,ArmAndActivate)\n\
  353. X        Ctrl<Key>F3: hotkey(prevIndexButton,ArmAndActivate)\n
  354. XXMcd.nextIndexKey:\
  355. X        <Key>x: hotkey(nextIndexButton,ArmAndActivate)\n\
  356. X        Ctrl<Key>F4: hotkey(nextIndexButton,ArmAndActivate)\n
  357. XXMcd.rewKey:    Ctrl<Key>F5: hotkey(rewButton,Arm)\n\
  358. X        Ctrl<Key>F6: hotkey(rewButton,Activate,Disarm)\n
  359. XXMcd.ffKey:    Ctrl<Key>F7: hotkey(ffButton,Arm)\n\
  360. X        Ctrl<Key>F8: hotkey(ffButton,Activate,Disarm)\n
  361. X
  362. X! Keypad window
  363. XXMcd.keypadNumKey0:\
  364. X        <Key>0: hotkey(keypadNumButton0,ArmAndActivate)\n
  365. XXMcd.keypadNumKey1:\
  366. X        <Key>1: hotkey(keypadNumButton1,ArmAndActivate)\n
  367. XXMcd.keypadNumKey2:\
  368. X        <Key>2: hotkey(keypadNumButton2,ArmAndActivate)\n
  369. XXMcd.keypadNumKey3:\
  370. X        <Key>3: hotkey(keypadNumButton3,ArmAndActivate)\n
  371. XXMcd.keypadNumKey4:\
  372. X        <Key>4: hotkey(keypadNumButton4,ArmAndActivate)\n
  373. XXMcd.keypadNumKey5:\
  374. X        <Key>5: hotkey(keypadNumButton5,ArmAndActivate)\n
  375. XXMcd.keypadNumKey6:\
  376. X        <Key>6: hotkey(keypadNumButton6,ArmAndActivate)\n
  377. XXMcd.keypadNumKey7:\
  378. X        <Key>7: hotkey(keypadNumButton7,ArmAndActivate)\n
  379. XXMcd.keypadNumKey8:\
  380. X        <Key>8: hotkey(keypadNumButton8,ArmAndActivate)\n
  381. XXMcd.keypadNumKey9:\
  382. X        <Key>9: hotkey(keypadNumButton9,ArmAndActivate)\n
  383. XXMcd.keypadEnterKey:\
  384. X        <Key>e: hotkey(keypadEnterButton,ArmAndActivate)\n
  385. XXMcd.keypadClearKey:\
  386. X        <Key>l: hotkey(keypadClearButton,ArmAndActivate)\n
  387. XXMcd.keypadCancelKey:\
  388. X        <Key>c: hotkey(keypadCancelButton,ArmAndActivate)\n\
  389. X        Mod1<Key>q: hotkey(keypadCancelButton,ArmAndActivate)\n
  390. X
  391. X
  392. X!*
  393. X!* CD-player behavior control resources
  394. X!*
  395. X!* You may want to modify these parameters to suit your set-up.
  396. X!*
  397. X!* In parameters below that specifies audio blocks, each audio block is
  398. X!* 1/75 second of playback time.
  399. X!*
  400. X!* Note that all msec time parameters used below are subject to the
  401. X!* resolution of your system's software timer as provided in the
  402. X!* XtAppAddTimeOut() library call.
  403. X!*
  404. X
  405. X! Device to open for the CD-ROM player interface
  406. X!
  407. X! Examples:
  408. X! /dev/rcd0        (SCO ODT)
  409. X! /dev/rcdrom/cd0    (UNIX SVR4.0/ix86)
  410. X! /dev/rcdrom/cdrom1    (UNIX SVR4.2/ix86)
  411. X! /dev/rdsk/m187_c0d3s7    (UNIX SVR4.0/m88k, m187 controller 0, SCSI ID 3)
  412. X! /dev/rdsk/c0d3s0    (HP-UX)
  413. X! /dev/rsr0        (SunOS 4.x)
  414. X! 
  415. XXMcd.device:            /dev/rcd0
  416. X
  417. X! Library directory path, as the root of xmcd configuration files
  418. X! and CD database directories.
  419. X! (The XMCD_LIBDIR env variable overrides this resource)
  420. XXMcd.libdir:            /usr/lib/X11/xmcd
  421. X
  422. X! CD database directories.  If a relative path name is used, then it is
  423. X! assumed to be under XMcd.libdir/cddb.
  424. X! (The XMCD_DBPATH env variable overrides this resource)
  425. XXMcd.dbdir:            rock:jazz:newage:classical:soundtrack:misc:data
  426. X
  427. X! The maximum number of CD Database directories supported.
  428. X! The valid range is 1 to 100.
  429. XXMcd.maxDbdirs:            20
  430. X
  431. X! CD database file permissions
  432. XXMcd.dbFileMode:        0664
  433. X
  434. X! Whether to disable the CD-ROM drive's front panel eject button when
  435. X! a disc is loaded.  Normally this should be set to True.  See also
  436. X! the caddyLockSupport and ejectSupport parameters in the device-specific
  437. X! configuration file.
  438. XXMcd.caddyLock:            True
  439. X
  440. X! Play status poll interval during audio playback. (msec)
  441. X! This should be less than 500 to get satisfactory display update
  442. X! response.
  443. XXMcd.statusPollInterval:    260
  444. X
  445. X! If no disc, poll interval for disc insertion (msec)
  446. XXMcd.insertPollInterval:    2000
  447. X
  448. X! When previous track/index button pressed, if this number of audio blocks
  449. X! has been played in the current track/index, then playback will start from
  450. X! the beginning of the current track/index instead of the previous one.
  451. XXMcd.previousThreshold:        100
  452. X
  453. X! During FF/REW search operations, the number of audio blocks to skip
  454. X! to the next audible sample
  455. XXMcd.searchSkipBlocks:        145
  456. X
  457. X! During FF/REW search operations, the amount of time to pause between
  458. X! each audio sample (msec)
  459. XXMcd.searchPauseInterval:    55
  460. X
  461. X! During FF/REW search operations, after this many audio samples the
  462. X! search speed will be tripled (i.e., the searchSkipBlocks parameter is
  463. X! internally multiplied by 3).  If this parameter is set to 0, then
  464. X! no speedup will occur.
  465. XXMcd.searchSpeedUpCount:    15
  466. X
  467. X! During FF/REW search operations, the percentage of the current normal
  468. X! playback volume to be used for audio samples.  This is used only if
  469. X! the volumeControlSupport device specific parameter is set to True.
  470. XXMcd.searchVolumePercent:    35
  471. X
  472. X! During FF/REW search operations, the minimum volume setting for audio
  473. X! samples.  This is used only if the volumeControlSupport device specific
  474. X! parameter is set to True.
  475. XXMcd.searchMinVolume:        2
  476. X
  477. X! During Sample playback operations, the number of audio blocks to play
  478. X! in each track.
  479. XXMcd.sampleBlocks:        750
  480. X
  481. X! When any indicator is set to blink mode, the blinking interval used (msec).
  482. X! This is used for the time display during pause, A->B mode indicator, etc.
  483. XXMcd.displayBlinkOnInterval:    850
  484. XXMcd.displayBlinkOffInterval:    150
  485. X
  486. X! Whether error messages are output to stderr when xmcd encounters
  487. X! errors when delivering commands to the CD-ROM drive.  You should
  488. X! only set this to False if you have a non SCSI-2 compliant CD-ROM
  489. X! drive that causes xmcd to display lots of error messages.
  490. XXMcd.showScsiErrMsg:        True
  491. X
  492. X! Whether main window controls change their foreground color in response
  493. X! to keyboard focus change.
  494. XXMcd.mainShowFocus:        True
  495. X
  496. X
  497. X!*
  498. X!* Application-specific message string resources
  499. X!*
  500. X!* These need only be changed for non-English languages
  501. X!*
  502. XXMcd.mainWindowTitle:        Motif CD Audio Player
  503. XXMcd.dbModeMsg:            cddb
  504. XXMcd.progModeMsg:        prog
  505. XXMcd.elapseMsg:            elapse
  506. XXMcd.remainTrackMsg:        r-trac
  507. XXMcd.remainDiscMsg:        r-disc
  508. XXMcd.playMsg:            play
  509. XXMcd.pauseMsg:            pause
  510. XXMcd.readyMsg:            ready
  511. XXMcd.sampleMsg:            sample
  512. XXMcd.usageMsg:            Usage:
  513. XXMcd.badOptsMsg:        The following options are unrecognized:
  514. XXMcd.noDiscMsg:            no disc
  515. XXMcd.devBusyMsg:        cd busy
  516. XXMcd.dataMsg:            data
  517. XXMcd.warningMsg:        Warning
  518. XXMcd.fatalMsg:            Fatal Error
  519. XXMcd.confirmMsg:        Confirm
  520. XXMcd.infoMsg:            Information
  521. XXMcd.aboutMsg:            About
  522. XXMcd.quitMsg:            Really Quit?
  523. XXMcd.noMemMsg:            Out of virtual memory!
  524. XXMcd.noHelpMsg:            Help is not available on this topic.
  525. XXMcd.noLinkMsg:            There is no likely CDDB entry to link to.
  526. XXMcd.noDbMsg:            No CD Database directory.
  527. XXMcd.notRomMsg:            Device %s is not a CD-ROM!
  528. XXMcd.notScsi2Msg:        Device %s is not SCSI-2 compliant.
  529. XXMcd.modeErrMsg: \
  530. XXmcd binary permissions error:\n\
  531. XIt should be setuid root.  Please have\n\
  532. Xyour system administrator correct this.
  533. XXMcd.statErrMsg:        Cannot stat device %s.
  534. XXMcd.nodeErrMsg:        %s is not a character special device!
  535. XXMcd.seqFmtErrMsg:        Program sequence string format error.
  536. XXMcd.dbdirsErrMsg:        XMcd.maxDbdirs resource error.
  537. XXMcd.recovErrMsg:        Recovering from audio playback error...
  538. XXMcd.maxErrMsg:            Too many errors.
  539. XXMcd.savErrForkMsg:        File not saved:\nCannot fork. (errno %d)
  540. XXMcd.savErrSuidMsg:        File not saved:\nCannot setuid to %d.
  541. XXMcd.savErrOpenMsg:        File not saved:\nCannot open file for writing.
  542. XXMcd.savErrKilledMsg:        File not saved:\nChild killed. (signal %d)
  543. XXMcd.lnkErrForkMsg:        File not linked:\nCannot fork. (errno %d)
  544. XXMcd.lnkErrSuidMsg:        File not linked:\nCannot setuid to %d.
  545. XXMcd.lnkErrLinkMsg:        File not linked:\nCannot link.
  546. XXMcd.lnkErrKilledMsg:        File not linked:\nChild killed. (signal %d)
  547. X
  548. X
  549. X!*
  550. X!* General resources
  551. X!*
  552. X
  553. XXMcd*recomputeSize:        True
  554. XXMcd*defaultPosition:        True
  555. XXMcd*highlightThickness:    0
  556. XXMcd*defaultButtonShadowThickness: 0
  557. XXMcd*borderWidth:        0
  558. XXMcd*doubleClickInterval:    400
  559. X
  560. END_OF_FILE
  561. if test 19273 -ne `wc -c <'XMcd.ad'`; then
  562.     echo shar: \"'XMcd.ad'\" unpacked with wrong size!
  563. fi
  564. # end of 'XMcd.ad'
  565. fi
  566. if test -f 'XKeysymDB' -a "${1}" != "-c" ; then 
  567.   echo shar: Will not clobber existing file \"'XKeysymDB'\"
  568. else
  569. echo shar: Extracting \"'XKeysymDB'\" \(1149 characters\)
  570. sed "s/^X//" >'XKeysymDB' <<'END_OF_FILE'
  571. X! @(#)XKeysymDB    1.2 93/10/30
  572. X!
  573. X!---------------------------------------------------------------------------
  574. X! This file is normally supplied as part of the OSF/Motif distribution.
  575. X! It is carried with the XMCD CD Audio Player binary release, and installed
  576. X! in the proper place in case the target system does not already have this
  577. X! file installed.  The Motif code requires the presence of this file
  578. X! in order to run properly.
  579. X!---------------------------------------------------------------------------
  580. X!
  581. X!        OSF Keysyms
  582. X!
  583. XosfBackSpace            :1004FF08
  584. XosfInsert            :1004FF63
  585. XosfDelete            :1004FFFF
  586. XosfCopy                :1004FF02
  587. XosfCut                :1004FF03
  588. XosfPaste            :1004FF04
  589. X
  590. XosfAddMode            :1004FF31
  591. XosfPrimaryPaste            :1004FF32
  592. XosfQuickPaste            :1004FF33
  593. X
  594. XosfPageUp            :1004FF41
  595. XosfPageDown            :1004FF42
  596. X
  597. XosfEndLine            :1004FF57
  598. XosfBeginLine            :1004FF58
  599. X
  600. XosfActivate            :1004FF44
  601. X
  602. XosfMenuBar            :1004FF45
  603. X
  604. XosfClear            :1004FF0B
  605. XosfCancel            :1004FF69
  606. XosfHelp                :1004FF6A
  607. XosfMenu                :1004FF67
  608. XosfSelect            :1004FF60
  609. XosfUndo                :1004FF65
  610. X
  611. XosfLeft                :1004FF51
  612. XosfUp                :1004FF52
  613. XosfRight            :1004FF53
  614. XosfDown                :1004FF54
  615. X
  616. X!             DEC specific keysyms
  617. X!
  618. XDRemove                :1000FF00
  619. END_OF_FILE
  620. if test 1149 -ne `wc -c <'XKeysymDB'`; then
  621.     echo shar: \"'XKeysymDB'\" unpacked with wrong size!
  622. fi
  623. # end of 'XKeysymDB'
  624. fi
  625. if test -f 'dev.config' -a "${1}" != "-c" ; then 
  626.   echo shar: Will not clobber existing file \"'dev.config'\"
  627. else
  628. echo shar: Extracting \"'dev.config'\" \(6077 characters\)
  629. sed "s/^X//" >'dev.config' <<'END_OF_FILE'
  630. X!
  631. X! @(#)dev.config    1.22 93/09/30
  632. X!
  633. X! xmcd device-specific configuration file
  634. X!
  635. X!   xmcd - Motif(tm) CD Audio Player
  636. X!
  637. X!   Copyright (C) 1993  Ti Kan
  638. X!   E-mail: ti@amb.org
  639. X!
  640. X!   This program is free software; you can redistribute it and/or modify
  641. X!   it under the terms of the GNU General Public License as published by
  642. X!   the Free Software Foundation; either version 2 of the License, or
  643. X!   (at your option) any later version.
  644. X!
  645. X!   This program is distributed in the hope that it will be useful,
  646. X!   but WITHOUT ANY WARRANTY; without even the implied warranty of
  647. X!   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  648. X!   GNU General Public License for more details.
  649. X!
  650. X!   You should have received a copy of the GNU General Public License
  651. X!   along with this program; if not, write to the Free Software
  652. X!   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  653. X!
  654. X!
  655. X! Install this file as LIBDIR/config/DEVNAME, and edit to suit the
  656. X! capability of the CD-ROM device.  LIBDIR is the XMcd.libdir resource
  657. X! (or XMCD_LIBDIR env variable) and DEVNAME is the XMcd.device resource
  658. X! (or specified with the -dev option).
  659. X!
  660. X! Parameters that are labeled as "No-override" are privileged and
  661. X! cannot be overridden by the user in their private configuration
  662. X! files.
  663. X!
  664. X
  665. X! The logical drive number that you want this device to map to.  This
  666. X! number is displayed on the main window title bar.
  667. X! (No-override)
  668. X!
  669. XlogicalDriveNumber:    0
  670. X
  671. X! CD-ROM drive vendor code.  If your CD-ROM drive is not SCSI-2 compliant,
  672. X! this is used to specify that xmcd should issue vendor-unique commands
  673. X! rather than SCSI-2 commands.
  674. X!
  675. X! Note:
  676. X! a) Changing this parameter is useful only if your xmcd binary is
  677. X!    compiled to provide vendor-unique commands support.
  678. X! b) The existence of a vendor-unique module does not imply that all
  679. X!    models of CD-ROM made by that manufacturer must use the vendor-
  680. X!    unique mode.  For example, the Toshiba XM-3301 and XM-3401 are
  681. X!    SCSI-2 compliant and should use vendor code 0.
  682. X!
  683. X! The supported codes are:
  684. X! 0    SCSI-2 standard
  685. X! 1    Toshiba vendor-unique
  686. X! 2    NEC vendor-unique
  687. X! 3    Pioneer vendor-unique
  688. X! 4    Hitachi vendor-unique
  689. X!
  690. X! (No-override)
  691. X!
  692. XdriveVendorCode:    0
  693. X
  694. X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
  695. X! whether it supports the Play Audio (12) SCSI command.  The drive
  696. X! must support one of Play Audio (12) or Play Audio MSF in order to
  697. X! be useful with xmcd.
  698. X! (No-override)
  699. X!
  700. XplayAudio12Support:    False
  701. X
  702. X! If the CD-ROM drive is SCSI-2 compliant, this parameter specifies
  703. X! Whether it supports the Play Audio MSF SCSI command. The drive
  704. X! must support one of Play Audio (12) or Play Audio MSF in order
  705. X! to be useful with xmcd.
  706. X! (No-override)
  707. X!
  708. XplayAudioMSFSupport:    True
  709. X
  710. X! If the CD-ROM drive is SCSI-2 compliant,  this parameter specifies
  711. X! whether it supports the Play Audio (10) SCSI command.  This command
  712. X! is used only as a fallback to the Play Audio (12) and Play Audio MSF
  713. X! commands in case they fail.
  714. X! (No-override)
  715. X!
  716. XplayAudio10Support:    True
  717. X
  718. X! If the CD-ROM drive is SCSI-2 compliant,  this parameter specifies
  719. X! Whether it supports the Play Audio Track/Index SCSI command.  This
  720. X! command must be supported in order to use the Prev Index and Next
  721. X! Index buttons.
  722. X! (No-override)
  723. X!
  724. XplayAudioTISupport:    True
  725. X
  726. X! Whether the CD-ROM drive supports the disc load feature of the
  727. X! Start/Stop Unit SCSI command.
  728. X! (No-override)
  729. X!
  730. XloadSupport:        False
  731. X
  732. X! Whether the CD-ROM drive supports the disc eject feature of the
  733. X! Start/Stop Unit SCSI command.  If this item is False, it will also
  734. X! automatically force the caddyLockSupport parameter below to False.
  735. X! (No-override)
  736. X!
  737. XejectSupport:        True
  738. X
  739. X! Whether the CD-ROM drive supports setting the audio playback volume
  740. X! in software via the audio page of the Mode Select SCSI command.
  741. X! (No-override)
  742. X!
  743. XvolumeControlSupport:    True
  744. X
  745. X! Whether the block descriptor should be disabled in the
  746. X! mode sense/mode select command data (these are used to configure
  747. X! the audio playback volume).  You may need to change this setting
  748. X! to get the volume control slider to work on some SCSI-2 CD-ROM
  749. X! drives.  This parameter is used only if volumeControlSupport is
  750. X! True.
  751. X! (No-override)
  752. X!
  753. XvolumeControlSetDBD:    False
  754. X
  755. X! Select the volume control taper curve.  You may need to experiment
  756. X! with this parameter to get the smoothest range of control from the
  757. X! volume control slider. This parameter is used only if
  758. X! volumeControlSupport is True.
  759. X!
  760. X! Supported values for this parameter:
  761. X! 0    Apply a linear taper.
  762. X! 1    Apply an inverse-squared taper (big change at low settings,
  763. X!    diminishing as the slider moves toward the upper range).
  764. X! 2    Apply a squared taper (Small change at low settings,
  765. X!    increasing as the slider moves toward the upper range).
  766. X!
  767. XvolumeControlTaper:    0
  768. X
  769. X! The base SCSI audio volume value that corresponds to the minimum
  770. X! setting of the volume control slider.  This is used to adjust the
  771. X! range of audio volume control.  The legal range is 0 to 255.
  772. X! This parameter is used only if volumeControlSupport is True.
  773. X! (No-override)
  774. X!
  775. XscsiAudioVolumeBase:    0
  776. X
  777. X! If the CD-ROM drive is SCSI-2 compliant,  this parameter specifies
  778. X! whether it supports the Pause/Resume SCSI command.
  779. X! (No-override)
  780. X!
  781. XpauseResumeSupport:    True
  782. X
  783. X! Whether the CD-ROM drive supports the Prevent/Allow Medium Removal
  784. X! SCSI command.  If this item is False, it will also automatically
  785. X! force the XMcd.caddyLock resource to False.
  786. X! (No-override)
  787. X!
  788. XcaddyLockSupport:    True
  789. X
  790. X! For any given play audio command, the minimum number of audio blocks
  791. X! that must be played.  Some CD-ROM drives have a minimum limit.
  792. X! Each block represents 1/75 second of audio.
  793. X! (No-override)
  794. X!
  795. XminimumPlayBlocks:    25
  796. X
  797. X! Whether the CD should be spun-down after it is loaded.  This reduces
  798. X! wear on the drive if there won't be any audio playback activity for
  799. X! a while.
  800. XspinDownOnLoad:        True
  801. X
  802. X! Whether the CD should be ejected on program exit.
  803. X! This option is only effective if ejectSupport is True.
  804. XejectOnExit:        False
  805. X
  806. X! Whether the CD should be stopped on program exit.
  807. XstopOnExit:        True
  808. X
  809. END_OF_FILE
  810. if test 6077 -ne `wc -c <'dev.config'`; then
  811.     echo shar: \"'dev.config'\" unpacked with wrong size!
  812. fi
  813. # end of 'dev.config'
  814. fi
  815. if test -f 'install.sh' -a "${1}" != "-c" ; then 
  816.   echo shar: Will not clobber existing file \"'install.sh'\"
  817. else
  818. echo shar: Extracting \"'install.sh'\" \(7437 characters\)
  819. sed "s/^X//" >'install.sh' <<'END_OF_FILE'
  820. X:
  821. X#
  822. X# @(#)install.sh    1.28 93/11/05
  823. X#
  824. X# Script to install xmcd software binary and support files on
  825. X# the target system.
  826. X#
  827. X#    xmcd - Motif(tm) CD Audio Player
  828. X#
  829. X#    Copyright (C) 1993  Ti Kan
  830. X#    E-mail: ti@amb.org
  831. X#
  832. X#    This program is free software; you can redistribute it and/or modify
  833. X#    it under the terms of the GNU General Public License as published by
  834. X#    the Free Software Foundation; either version 2 of the License, or
  835. X#    (at your option) any later version.
  836. X#
  837. X#    This program is distributed in the hope that it will be useful,
  838. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  839. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  840. X#    GNU General Public License for more details.
  841. X#
  842. X#    You should have received a copy of the GNU General Public License
  843. X#    along with this program; if not, write to the Free Software
  844. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  845. X#
  846. X
  847. XPATH=/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/local/bin
  848. Xexport PATH
  849. X
  850. XCATEGORIES="rock jazz newage classical soundtrack misc data"
  851. XXMCD_VER="1.0"
  852. X
  853. X
  854. X#
  855. X# Utility functions
  856. X#
  857. X
  858. Xgetstr()
  859. X{
  860. X    $ECHO "$* \c"
  861. X    read ANS
  862. X    if [ -n "$ANS" ]
  863. X    then
  864. X        return 0
  865. X    else
  866. X        return 1
  867. X    fi
  868. X}
  869. X
  870. Xgetyn()
  871. X{
  872. X    if [ -z "$YNDEF" ]
  873. X    then
  874. X        YNDEF=y
  875. X    fi
  876. X
  877. X    while :
  878. X    do
  879. X        $ECHO "$*? [${YNDEF}] \c"
  880. X        read ANS
  881. X        if [ -n "$ANS" ]
  882. X        then
  883. X            case $ANS in
  884. X            [yY])
  885. X                RET=0
  886. X                break
  887. X                ;;
  888. X            [nN])
  889. X                RET=1
  890. X                break
  891. X                ;;
  892. X            *)
  893. X                $ECHO "Please answer y or n"
  894. X                ;;
  895. X            esac
  896. X        else
  897. X            if [ $YNDEF = y ]
  898. X            then
  899. X                RET=0
  900. X            else
  901. X                RET=1
  902. X            fi
  903. X            break
  904. X        fi
  905. X    done
  906. X
  907. X    YNDEF=
  908. X    return $RET
  909. X}
  910. X
  911. X
  912. X#
  913. X# Main execution starts here
  914. X#
  915. X
  916. X# Use SysV echo if possible
  917. Xif [ -x /usr/5bin/echo ]
  918. Xthen
  919. X    ECHO=/usr/5bin/echo
  920. Xelse
  921. X    ECHO=echo
  922. Xfi
  923. X
  924. X# Use nawk if possible
  925. Xif ($ECHO "x" | nawk '{ print $0 }' -) >/dev/null 2>&1
  926. Xthen
  927. X    AWK=nawk
  928. Xelse
  929. X    AWK=awk
  930. Xfi
  931. X
  932. XNOREMOVE=0
  933. Xif [ $# -eq 1 -a "$1" = "-n" ]
  934. Xthen
  935. X    NOREMOVE=1
  936. Xfi
  937. X
  938. X# Sanity check
  939. X
  940. X(id | fgrep 'uid=0(root)') >/dev/null 2>&1
  941. Xif [ $? != 0 ]
  942. Xthen
  943. X    $ECHO "Error: You must be the superuser to install xmcd."
  944. X    exit 1
  945. Xfi
  946. X
  947. Xif [ ! -f xmcd -o ! -f XMcd.ad -o ! -f dev.config -o ! -f configure.sh ]
  948. Xthen
  949. X    $ECHO "Error: missing files."
  950. X    exit 3
  951. Xfi
  952. X
  953. X
  954. Xif (uname -X | fgrep "Release = 3.2") >/dev/null 2>&1
  955. Xthen
  956. X    SCO=1
  957. Xelse
  958. X    SCO=0
  959. Xfi
  960. X
  961. X
  962. X$ECHO "Installing \"xmcd\" Motif CD Player version $XMCD_VER by Ti Kan"
  963. X
  964. X
  965. X# Determine BINDIR
  966. X
  967. Xif [ -z "$BINDIR" ]
  968. Xthen
  969. X    BINDIR=/usr/bin/X11
  970. X
  971. X    if [ -d /usr/X/bin ]
  972. X    then
  973. X        BINDIR=/usr/X/bin
  974. X    elif [ -d /usr/X386/bin ]
  975. X    then
  976. X        BINDIR=/usr/X386/bin
  977. X    elif [ -d /usr/local/bin/X11 ]
  978. X    then
  979. X        BINDIR=/usr/local/bin/X11
  980. X    elif [ -d /usr/local/bin ]
  981. X    then
  982. X        BINDIR=/usr/local/bin
  983. X    elif [ -d /usr/lbin ]
  984. X    then
  985. X        BINDIR=/usr/lbin
  986. X    fi
  987. Xelse
  988. X    BINDIR=`echo $BINDIR | sed 's/\/\//\//g'`
  989. Xfi
  990. X
  991. Xwhile :
  992. Xdo
  993. X    if getstr "\nEnter X binary directory [${BINDIR}]:"
  994. X    then
  995. X        if [ -d "$ANS" ]
  996. X        then
  997. X            BINDIR=$ANS
  998. X            break
  999. X        else
  1000. X            $ECHO "Error: $ANS does not exist."
  1001. X        fi
  1002. X    else
  1003. X        break
  1004. X    fi
  1005. Xdone
  1006. X
  1007. X
  1008. X# Determine LIBDIR
  1009. X
  1010. Xif [ -z "$LIBDIR" ]
  1011. Xthen
  1012. X    LIBDIR=/usr/lib/X11
  1013. X
  1014. X    if [ -d /usr/X/lib ]
  1015. X    then
  1016. X        LIBDIR=/usr/X/lib
  1017. X    elif [ -d /usr/X386/lib/X11 ]
  1018. X    then
  1019. X        LIBDIR=/usr/X386/lib/X11
  1020. X    elif [ -d /usr/local/lib/X11 ]
  1021. X    then
  1022. X        LIBDIR=/usr/local/lib/X11
  1023. X    fi
  1024. Xelse
  1025. X    LIBDIR=`echo $LIBDIR | sed 's/\/\//\//g'`
  1026. Xfi
  1027. X
  1028. Xwhile :
  1029. Xdo
  1030. X    if getstr "\nEnter X library directory [${LIBDIR}]:"
  1031. X    then
  1032. X        if [ -d "$ANS" ]
  1033. X        then
  1034. X            LIBDIR=$ANS
  1035. X            break
  1036. X        else
  1037. X            $ECHO "Error: $ANS does not exist."
  1038. X        fi
  1039. X    else
  1040. X        break
  1041. X    fi
  1042. Xdone
  1043. X
  1044. X
  1045. X# Determine MANFILE
  1046. X
  1047. Xif [ -z "$MANFILE" ]
  1048. Xthen
  1049. X    MANFILE=/usr/man/man1/xmcd.1
  1050. X
  1051. X    if [ -d /usr/man/man.LOCAL ]
  1052. X    then
  1053. X        MANFILE=/usr/man/man.LOCAL/xmcd.LOCAL
  1054. X    elif [ -d /usr/local/man/man1 ]
  1055. X    then
  1056. X        MANFILE=/usr/local/man/man1/xmcd.1
  1057. X    fi
  1058. Xelse
  1059. X    MANFILE=`echo $MANFILE | sed 's/\/\//\//g'`
  1060. Xfi
  1061. X
  1062. Xif getstr "\nEnter on-line manual file path [${MANFILE}]:"
  1063. Xthen
  1064. X    MANFILE=$ANS
  1065. Xfi
  1066. X
  1067. XMANDIR=`dirname $MANFILE`
  1068. Xif [ ! -d $MANDIR ]
  1069. Xthen
  1070. X    YNDEF=y
  1071. X    if getyn "Directory $MANDIR does not exist.  Create it"
  1072. X    then
  1073. X        (umask 022; mkdir -p $MANDIR)
  1074. X    else
  1075. X        $ECHO "The on-line xmcd manual will not be installed."
  1076. X        MANFILE=
  1077. X        MANDIR=
  1078. X    fi
  1079. Xfi
  1080. X
  1081. X
  1082. X$ECHO "\nMaking directories..."
  1083. X
  1084. X# Make all necessary directories
  1085. X
  1086. X$ECHO "\t$LIBDIR/xmcd"
  1087. Xif [ ! -d $LIBDIR/xmcd ]
  1088. Xthen
  1089. X    mkdir $LIBDIR/xmcd
  1090. Xfi
  1091. Xchown bin $LIBDIR/xmcd
  1092. Xchgrp bin $LIBDIR/xmcd
  1093. Xchmod 755 $LIBDIR/xmcd
  1094. X
  1095. X$ECHO "\t$LIBDIR/xmcd/config"
  1096. Xif [ ! -d $LIBDIR/xmcd/config ]
  1097. Xthen
  1098. X    mkdir $LIBDIR/xmcd/config
  1099. Xfi
  1100. Xchown bin $LIBDIR/xmcd/config
  1101. Xchgrp bin $LIBDIR/xmcd/config
  1102. Xchmod 755 $LIBDIR/xmcd/config
  1103. X
  1104. X$ECHO "\t$LIBDIR/xmcd/help"
  1105. Xif [ ! -d $LIBDIR/xmcd/help ]
  1106. Xthen
  1107. X    mkdir $LIBDIR/xmcd/help
  1108. Xfi
  1109. Xchown bin $LIBDIR/xmcd/help
  1110. Xchgrp bin $LIBDIR/xmcd/help
  1111. Xchmod 755 $LIBDIR/xmcd/help
  1112. X
  1113. X$ECHO "\t$LIBDIR/xmcd/cddb"
  1114. Xif [ ! -d $LIBDIR/xmcd/cddb ]
  1115. Xthen
  1116. X    mkdir $LIBDIR/xmcd/cddb
  1117. Xfi
  1118. Xchown bin $LIBDIR/xmcd/cddb
  1119. Xchgrp bin $LIBDIR/xmcd/cddb
  1120. Xchmod 755 $LIBDIR/xmcd/cddb
  1121. X
  1122. Xfor i in $CATEGORIES
  1123. Xdo
  1124. X    $ECHO "\t$LIBDIR/xmcd/cddb/$i"
  1125. X    if [ ! -d $LIBDIR/xmcd/cddb/$i ]
  1126. X    then
  1127. X        mkdir $LIBDIR/xmcd/cddb/$i
  1128. X    fi
  1129. X    chown bin $LIBDIR/xmcd/cddb/$i
  1130. X    chgrp bin $LIBDIR/xmcd/cddb/$i
  1131. X    chmod 777 $LIBDIR/xmcd/cddb/$i
  1132. Xdone
  1133. X
  1134. X# Install files
  1135. X$ECHO "\nInstalling xmcd files..."
  1136. X
  1137. X$ECHO "\t$BINDIR/xmcd"
  1138. Xcp xmcd $BINDIR/xmcd
  1139. Xchown root $BINDIR/xmcd
  1140. Xchgrp bin $BINDIR/xmcd
  1141. Xchmod 4711 $BINDIR/xmcd
  1142. X
  1143. X$ECHO "\t$LIBDIR/app-defaults/XMcd"
  1144. Xcp XMcd.ad $LIBDIR/app-defaults/XMcd
  1145. Xchown bin $LIBDIR/app-defaults/XMcd
  1146. Xchgrp bin $LIBDIR/app-defaults/XMcd
  1147. Xchmod 444 $LIBDIR/app-defaults/XMcd
  1148. Xif [ $LIBDIR != "/usr/lib/X11" -a -d /usr/lib/X11/app-defaults ]
  1149. Xthen
  1150. X    # Test LIBDIR
  1151. X    rm -f /usr/lib/X11/app-defaults/._junk_
  1152. X
  1153. X    >$LIBDIR/app-defaults/._junk_
  1154. X
  1155. X    if [ ! -f /usr/lib/X11/app-defaults/._junk_ ]
  1156. X    then
  1157. X        rm -f /usr/lib/X11/app-defaults/XMcd
  1158. X        ln $LIBDIR/app-defaults/XMcd /usr/lib/X11/app-defaults/XMcd
  1159. X    fi
  1160. X
  1161. X    rm -f $LIBDIR/app-defaults/._junk_
  1162. Xfi
  1163. X
  1164. X$ECHO "\t$LIBDIR/xmcd/help/*"
  1165. Xcp helpfiles/*Btn helpfiles/*Ind helpfiles/*Txt helpfiles/*Scale \
  1166. X    helpfiles/*List helpfiles/*Box $LIBDIR/xmcd/help
  1167. Xchown bin $LIBDIR/xmcd/help/*
  1168. Xchgrp bin $LIBDIR/xmcd/help/*
  1169. Xchmod 444 $LIBDIR/xmcd/help/*
  1170. X
  1171. X$ECHO "\t$LIBDIR/xmcd/cddb/misc/4102560a"
  1172. Xcp demo.cddb $LIBDIR/xmcd/cddb/misc/4102560a
  1173. Xchown bin $LIBDIR/xmcd/cddb/misc/4102560a
  1174. Xchgrp bin $LIBDIR/xmcd/cddb/misc/4102560a
  1175. Xchmod 444 $LIBDIR/xmcd/cddb/misc/4102560a
  1176. X
  1177. X$ECHO "\t$LIBDIR/xmcd/config/dev.config"
  1178. Xcp dev.config $LIBDIR/xmcd/config/dev.config
  1179. Xchown bin $LIBDIR/xmcd/config/dev.config
  1180. Xchgrp bin $LIBDIR/xmcd/config/dev.config
  1181. Xchmod 444 $LIBDIR/xmcd/config/dev.config
  1182. X
  1183. X$ECHO "\t$LIBDIR/xmcd/config/configure.sh"
  1184. X$AWK '
  1185. X    /^LIBDIR=/    { printf("LIBDIR=%s\n", libdir) }
  1186. X    !/^LIBDIR=/    { print $0 }
  1187. X' libdir=$LIBDIR configure.sh >$LIBDIR/xmcd/config/configure.sh
  1188. Xchown bin $LIBDIR/xmcd/config/configure.sh
  1189. Xchgrp bin $LIBDIR/xmcd/config/configure.sh
  1190. Xchmod 755 $LIBDIR/xmcd/config/configure.sh
  1191. X
  1192. Xif [ ! -f $LIBDIR/XKeysymDB ]
  1193. Xthen
  1194. X    $ECHO "\t$LIBDIR/XKeysymDB"
  1195. X    cp XKeysymDB $LIBDIR/XKeysymDB
  1196. X    chown bin $LIBDIR/XKeysymDB
  1197. X    chgrp bin $LIBDIR/XKeysymDB
  1198. X    chmod 644 $LIBDIR/XKeysymDB
  1199. Xfi
  1200. X
  1201. Xif [ "$SCO" = 1 ]
  1202. Xthen
  1203. X    $ECHO "\t/usr/lib/mkdev/xmcd"
  1204. X    rm -f /usr/lib/mkdev/xmcd
  1205. X    ln $LIBDIR/xmcd/config/configure.sh /usr/lib/mkdev/xmcd
  1206. Xfi
  1207. X
  1208. Xif [ -n "$MANFILE" ]
  1209. Xthen
  1210. X    $ECHO "\t$MANFILE"
  1211. X    cp xmcd.man $MANFILE
  1212. X    chown bin $MANFILE
  1213. X    chgrp bin $MANFILE
  1214. X    chmod 644 $MANFILE
  1215. Xfi
  1216. X
  1217. X# Run device-dependent config script
  1218. Xsh $LIBDIR/xmcd/config/configure.sh
  1219. X
  1220. Xif [ $NOREMOVE = 0 ]
  1221. Xthen
  1222. X    rm -rf xmcd XMcd.ad demo.cddb dev.config helpfiles install.sh \
  1223. X        configure.sh XKeysymDB xmcd.man xmcd.tar
  1224. Xfi
  1225. X$ECHO "\nInstallation of xmcd is now complete."
  1226. X
  1227. Xexit 0
  1228. END_OF_FILE
  1229. if test 7437 -ne `wc -c <'install.sh'`; then
  1230.     echo shar: \"'install.sh'\" unpacked with wrong size!
  1231. fi
  1232. # end of 'install.sh'
  1233. fi
  1234. if test -f 'configure.sh' -a "${1}" != "-c" ; then 
  1235.   echo shar: Will not clobber existing file \"'configure.sh'\"
  1236. else
  1237. echo shar: Extracting \"'configure.sh'\" \(14863 characters\)
  1238. sed "s/^X//" >'configure.sh' <<'END_OF_FILE'
  1239. X:
  1240. X#
  1241. X# @(#)configure.sh    1.55 93/10/30
  1242. X#
  1243. X# Script to set up the Xmcd device-dependent configuration files.
  1244. X#
  1245. X#    xmcd - Motif(tm) CD Audio Player
  1246. X#
  1247. X#    Copyright (C) 1993  Ti Kan
  1248. X#    E-mail: ti@amb.org
  1249. X#
  1250. X#    This program is free software; you can redistribute it and/or modify
  1251. X#    it under the terms of the GNU General Public License as published by
  1252. X#    the Free Software Foundation; either version 2 of the License, or
  1253. X#    (at your option) any later version.
  1254. X#
  1255. X#    This program is distributed in the hope that it will be useful,
  1256. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  1257. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  1258. X#    GNU General Public License for more details.
  1259. X#
  1260. X#    You should have received a copy of the GNU General Public License
  1261. X#    along with this program; if not, write to the Free Software
  1262. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1263. X#
  1264. X
  1265. XPATH=/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/local/bin:/usr/ucb
  1266. Xexport PATH
  1267. X
  1268. X# Change the following directory to fit your local configuration
  1269. XLIBDIR=/usr/lib/X11
  1270. X
  1271. XVER=1.0
  1272. X
  1273. X
  1274. X# Utility functions
  1275. X
  1276. Xgetstr()
  1277. X{
  1278. X    $ECHO "$* \c"
  1279. X    read ANS
  1280. X    if [ -n "$ANS" ]
  1281. X    then
  1282. X        return 0
  1283. X    else
  1284. X        return 1
  1285. X    fi
  1286. X}
  1287. X
  1288. Xgetyn()
  1289. X{
  1290. X    if [ -z "$YNDEF" ]
  1291. X    then
  1292. X        YNDEF=y
  1293. X    fi
  1294. X
  1295. X    while :
  1296. X    do
  1297. X        $ECHO "$*? [${YNDEF}] \c"
  1298. X        read ANS
  1299. X        if [ -n "$ANS" ]
  1300. X        then
  1301. X            case $ANS in
  1302. X            [yY])
  1303. X                RET=0
  1304. X                break
  1305. X                ;;
  1306. X            [nN])
  1307. X                RET=1
  1308. X                break
  1309. X                ;;
  1310. X            *)
  1311. X                $ECHO "Please answer y or n"
  1312. X                ;;
  1313. X            esac
  1314. X        else
  1315. X            if [ $YNDEF = y ]
  1316. X            then
  1317. X                RET=0
  1318. X            else
  1319. X                RET=1
  1320. X            fi
  1321. X            break
  1322. X        fi
  1323. X    done
  1324. X
  1325. X    YNDEF=
  1326. X    return $RET
  1327. X}
  1328. X
  1329. X
  1330. Xask_config()
  1331. X{
  1332. X    $ECHO "\n  Since you have an unlisted CD-ROM drive, I will assume"
  1333. X    $ECHO "  that it is SCSI-2 compliant.  If this is not true then"
  1334. X    $ECHO "  xmcd will probably not work."
  1335. X    $ECHO "\n  You will now be asked several technical questions about"
  1336. X    $ECHO "  your CD-ROM drive.  If you don't know the answer, try"
  1337. X    $ECHO "  accepting the default values, and if problems occur when"
  1338. X    $ECHO "  using xmcd, reconfigure the settings by running this"
  1339. X    $ECHO "  script again, or editing the $CONFIG file."
  1340. X    $ECHO "\n  If you get an unlisted drive working with xmcd in this"
  1341. X    $ECHO "  manner, the author of xmcd would like to hear from you"
  1342. X    $ECHO "  and incorporate the settings into the next xmcd release."
  1343. X    $ECHO "  Please send e-mail to \"ti@amb.org\"."
  1344. X
  1345. X    VENDOR=0
  1346. X    VOLBASE=0
  1347. X
  1348. X    while :
  1349. X    do
  1350. X        $ECHO "\n  Does your CD-ROM drive on $XMCD_DEV support the following:\n"
  1351. X
  1352. X        YNDEF=y
  1353. X        if getyn "  - The Play_Audio_MSF SCSI command"
  1354. X        then
  1355. X            PLAYMSF=True
  1356. X        else
  1357. X            PLAYMSF=False
  1358. X        fi
  1359. X
  1360. X        YNDEF=n
  1361. X        if getyn "  - The Play_Audio(12) SCSI command"
  1362. X        then
  1363. X            PLAY12=True
  1364. X        else
  1365. X            PLAY12=False
  1366. X        fi
  1367. X
  1368. X        YNDEF=y
  1369. X        if getyn "  - The Play_Audio(10) SCSI command"
  1370. X        then
  1371. X            PLAY10=True
  1372. X        else
  1373. X            PLAY10=False
  1374. X        fi
  1375. X
  1376. X        YNDEF=y
  1377. X        if getyn "  - The Play_Audio_Track/Index command"
  1378. X        then
  1379. X            PLAYTI=True
  1380. X        else
  1381. X            PLAYTI=False
  1382. X        fi
  1383. X
  1384. X        YNDEF=n
  1385. X        if getyn "  - Caddy load via the Start_Stop_Unit SCSI command"
  1386. X        then
  1387. X            LOAD=True
  1388. X        else
  1389. X            LOAD=False
  1390. X        fi
  1391. X
  1392. X        YNDEF=y
  1393. X        if getyn "  - Caddy eject via the Start_Stop_Unit SCSI command"
  1394. X        then
  1395. X            EJECT=True
  1396. X        else
  1397. X            EJECT=False
  1398. X        fi
  1399. X
  1400. X        YNDEF=y
  1401. X        if getyn "  - Audio volume control via the Mode_Select SCSI command"
  1402. X        then
  1403. X            VOLCTL=True
  1404. X        else
  1405. X            VOLCTL=False
  1406. X        fi
  1407. X
  1408. X        YNDEF=n
  1409. X        if getyn "  - Disable block descriptor in the Mode_Select SCSI command"
  1410. X        then
  1411. X            VOLDBD=True
  1412. X        else
  1413. X            VOLDBD=False
  1414. X        fi
  1415. X
  1416. X        YNDEF=y
  1417. X        if getyn "  - The Pause/Resume SCSI command"
  1418. X        then
  1419. X            PAUSE=True
  1420. X        else
  1421. X            PAUSE=False
  1422. X        fi
  1423. X
  1424. X        YNDEF=y
  1425. X        if getyn "  - The Prevent/Allow_Medium_Removal SCSI command"
  1426. X        then
  1427. X            CADDYLOCK=True
  1428. X        else
  1429. X            CADDYLOCK=False
  1430. X        fi
  1431. X
  1432. X        $ECHO "\n  This is the configuration for ${XMCD_DEV}:\n"
  1433. X        $ECHO "  logicalDriverNumber:  $DRVNO"
  1434. X        $ECHO "  playAudio12Support:   $PLAY12"
  1435. X        $ECHO "  playAudioMSFSupport:  $PLAYMSF"
  1436. X        $ECHO "  playAudio10Support:   $PLAY10"
  1437. X        $ECHO "  playAudioTISupport:   $PLAYTI"
  1438. X        $ECHO "  loadSupport:          $LOAD"
  1439. X        $ECHO "  ejectSupport:         $EJECT"
  1440. X        $ECHO "  volumeControlSupport: $VOLCTL"
  1441. X        $ECHO "  volumeControlSetDBD:  $VOLDBD"
  1442. X        $ECHO "  pauseResumeSupport:   $PAUSE"
  1443. X        $ECHO "  caddyLockSupport:     $CADDYLOCK"
  1444. X
  1445. X        YNDEF=y
  1446. X        if getyn "\n  Is this acceptable"
  1447. X        then
  1448. X            break
  1449. X        fi
  1450. X
  1451. X        $ECHO "  Try again..."
  1452. X    done
  1453. X}
  1454. X
  1455. X
  1456. Xconfig_drive()
  1457. X{
  1458. X    MAXCHOICE=17
  1459. X
  1460. X    $ECHO "\n  CD-ROM drive ($XMCD_DEV) selection:\n"
  1461. X    $ECHO "        -: SCSI-1 mode"
  1462. X    $ECHO "        *: SCSI-2 mode\n"
  1463. X    $ECHO "     1. *  Apple   CD-  300"
  1464. X    $ECHO "     2. *  Compaq  CDU- 561"
  1465. X    $ECHO "     3. *  Compaq  CR-  503BCQ"
  1466. X    $ECHO "     4. -  Hitachi CDR- 1650S, 1750S, 3650, 3750"
  1467. X    $ECHO "     5. *  Hitachi CDR- 3750"
  1468. X    $ECHO "     6. -  NEC     CDR- 72, 74, 77, 80, 82, 84, 74-1, 84-1"
  1469. X    $ECHO "     7. *  NEC     CDR- 38"
  1470. X    $ECHO "     8. *  NEC     CDR- 74-1, 84-1"
  1471. X    $ECHO "     9. -  Pioneer DRM- 600, 600A, 610, 604X"
  1472. X    $ECHO "    10. *  Pioneer DRM- 604X"
  1473. X    $ECHO "    11. *  Sony    CDU- 541, 561, 6211, 7211, 8003, 8012"
  1474. X    $ECHO "    12. *  Sun     -    CD-ROM"
  1475. X    $ECHO "    13. *  Texel   DM-  3024, 5024"
  1476. X    $ECHO "    14. *  Texel   DM-  3028, 5028"
  1477. X    $ECHO "    15. -  Toshiba XM-  3101, 3201"
  1478. X    $ECHO "    16. *  Toshiba XM-  3301, 3401, 8100"
  1479. X    $ECHO "    17. *  Other (SCSI-2)"
  1480. X
  1481. X    while :
  1482. X    do
  1483. X        $ECHO "\n  Enter choice: \c"
  1484. X        read ANS
  1485. X        if [ -z "$ANS" -o "$ANS" -lt 1 -o "$ANS" -gt $MAXCHOICE ]
  1486. X        then
  1487. X            $ECHO "  Please answer 1 to ${MAXCHOICE}."
  1488. X        else
  1489. X            case $ANS in
  1490. X            1)
  1491. X                # Apple CD-300
  1492. X                VENDOR=0
  1493. X                PLAYMSF=True
  1494. X                PLAY12=False
  1495. X                PLAY10=True
  1496. X                PLAYTI=False
  1497. X                LOAD=False
  1498. X                EJECT=True
  1499. X                VOLCTL=True
  1500. X                VOLDBD=False
  1501. X                VOLBASE=128
  1502. X                PAUSE=True
  1503. X                CADDYLOCK=True
  1504. X                ;;
  1505. X            2)
  1506. X                # Compaq CDU-561
  1507. X                VENDOR=0
  1508. X                PLAYMSF=True
  1509. X                PLAY12=False
  1510. X                PLAY10=True
  1511. X                PLAYTI=False
  1512. X                LOAD=False
  1513. X                EJECT=True
  1514. X                VOLCTL=True
  1515. X                VOLDBD=False
  1516. X                VOLBASE=128
  1517. X                PAUSE=True
  1518. X                CADDYLOCK=True
  1519. X                ;;
  1520. X            3)
  1521. X                # Compaq CR-503BCQ
  1522. X                VENDOR=0
  1523. X                PLAYMSF=True
  1524. X                PLAY12=True
  1525. X                PLAY10=True
  1526. X                PLAYTI=False
  1527. X                LOAD=False
  1528. X                EJECT=True
  1529. X                VOLCTL=True
  1530. X                VOLDBD=False
  1531. X                VOLBASE=0
  1532. X                PAUSE=True
  1533. X                CADDYLOCK=True
  1534. X                ;;
  1535. X            4)
  1536. X                # Hitachi VU
  1537. X                VENDOR=4
  1538. X                PLAYMSF=False
  1539. X                PLAY12=False
  1540. X                PLAY10=False
  1541. X                PLAYTI=False
  1542. X                LOAD=False
  1543. X                EJECT=True
  1544. X                VOLCTL=False
  1545. X                VOLDBD=False
  1546. X                VOLBASE=0
  1547. X                PAUSE=False
  1548. X                CADDYLOCK=True
  1549. X                ;;
  1550. X            5)
  1551. X                # Hitachi SCSI-2
  1552. X                VENDOR=0
  1553. X                PLAYMSF=True
  1554. X                PLAY12=True
  1555. X                PLAY10=True
  1556. X                PLAYTI=True
  1557. X                LOAD=False
  1558. X                EJECT=True
  1559. X                VOLCTL=False
  1560. X                VOLDBD=False
  1561. X                VOLBASE=0
  1562. X                PAUSE=True
  1563. X                CADDYLOCK=True
  1564. X                ;;
  1565. X            6)
  1566. X                # NEC VU
  1567. X                VENDOR=2
  1568. X                PLAYMSF=False
  1569. X                PLAY12=False
  1570. X                PLAY10=False
  1571. X                PLAYTI=False
  1572. X                LOAD=False
  1573. X                EJECT=True
  1574. X                VOLCTL=False
  1575. X                VOLDBD=False
  1576. X                VOLBASE=0
  1577. X                PAUSE=False
  1578. X                CADDYLOCK=True
  1579. X                ;;
  1580. X            7)
  1581. X                # NEC SCSI-2 (CDR-38)
  1582. X                VENDOR=0
  1583. X                PLAYMSF=True
  1584. X                PLAY12=True
  1585. X                PLAY10=True
  1586. X                PLAYTI=False
  1587. X                LOAD=False
  1588. X                EJECT=False
  1589. X                VOLCTL=True
  1590. X                VOLDBD=True
  1591. X                VOLBASE=0
  1592. X                PAUSE=True
  1593. X                CADDYLOCK=False
  1594. X                ;;
  1595. X            8)
  1596. X                # NEC SCSI-2
  1597. X                VENDOR=0
  1598. X                PLAYMSF=True
  1599. X                PLAY12=True
  1600. X                PLAY10=True
  1601. X                PLAYTI=False
  1602. X                LOAD=True
  1603. X                EJECT=True
  1604. X                VOLCTL=True
  1605. X                VOLDBD=True
  1606. X                PAUSE=True
  1607. X                CADDYLOCK=True
  1608. X                ;;
  1609. X            9)
  1610. X                # Pioneer VU
  1611. X                VENDOR=3
  1612. X                PLAYMSF=False
  1613. X                PLAY12=False
  1614. X                PLAY10=False
  1615. X                PLAYTI=False
  1616. X                LOAD=False
  1617. X                EJECT=True
  1618. X                VOLCTL=False
  1619. X                VOLDBD=False
  1620. X                VOLBASE=0
  1621. X                PAUSE=False
  1622. X                CADDYLOCK=True
  1623. X                ;;
  1624. X            10)
  1625. X                # Pioneer SCSI-2
  1626. X                VENDOR=0
  1627. X                PLAYMSF=True
  1628. X                PLAY12=True
  1629. X                PLAY10=True
  1630. X                PLAYTI=True
  1631. X                LOAD=False
  1632. X                EJECT=True
  1633. X                VOLCTL=True
  1634. X                VOLDBD=True
  1635. X                VOLBASE=0
  1636. X                PAUSE=True
  1637. X                CADDYLOCK=True
  1638. X                ;;
  1639. X            11)
  1640. X                # Sony SCSI-2
  1641. X                VENDOR=0
  1642. X                PLAYMSF=True
  1643. X                PLAY12=False
  1644. X                PLAY10=True
  1645. X                PLAYTI=False
  1646. X                LOAD=False
  1647. X                EJECT=True
  1648. X                VOLCTL=True
  1649. X                VOLDBD=False
  1650. X                VOLBASE=128
  1651. X                PAUSE=True
  1652. X                CADDYLOCK=True
  1653. X                ;;
  1654. X            12)
  1655. X                # Sun CD-ROM
  1656. X                VENDOR=0
  1657. X                PLAYMSF=True
  1658. X                PLAY12=False
  1659. X                PLAY10=True
  1660. X                PLAYTI=False
  1661. X                LOAD=False
  1662. X                EJECT=True
  1663. X                VOLCTL=True
  1664. X                VOLDBD=False
  1665. X                VOLBASE=128
  1666. X                PAUSE=True
  1667. X                CADDYLOCK=True
  1668. X                ;;
  1669. X            13)
  1670. X                # Texel DM-x024
  1671. X                VENDOR=0
  1672. X                PLAYMSF=True
  1673. X                PLAY12=False
  1674. X                PLAY10=True
  1675. X                PLAYTI=False
  1676. X                LOAD=False
  1677. X                EJECT=False
  1678. X                VOLCTL=False
  1679. X                VOLDBD=False
  1680. X                VOLBASE=0
  1681. X                PAUSE=True
  1682. X                CADDYLOCK=False
  1683. X                ;;
  1684. X            14)
  1685. X                # Texel DM-x028
  1686. X                VENDOR=0
  1687. X                PLAYMSF=True
  1688. X                PLAY12=False
  1689. X                PLAY10=True
  1690. X                PLAYTI=False
  1691. X                LOAD=False
  1692. X                EJECT=True
  1693. X                VOLCTL=False
  1694. X                VOLDBD=False
  1695. X                VOLBASE=0
  1696. X                PAUSE=True
  1697. X                CADDYLOCK=True
  1698. X                ;;
  1699. X            15)
  1700. X                # Toshiba VU
  1701. X                VENDOR=1
  1702. X                PLAYMSF=False
  1703. X                PLAY12=False
  1704. X                PLAY10=False
  1705. X                PLAYTI=False
  1706. X                LOAD=False
  1707. X                EJECT=True
  1708. X                VOLCTL=False
  1709. X                VOLDBD=False
  1710. X                VOLBASE=0
  1711. X                PAUSE=False
  1712. X                CADDYLOCK=True
  1713. X                ;;
  1714. X            16)
  1715. X                # Toshiba SCSI-2
  1716. X                VENDOR=0
  1717. X                PLAYMSF=True
  1718. X                PLAY12=True
  1719. X                PLAY10=True
  1720. X                PLAYTI=True
  1721. X                LOAD=False
  1722. X                EJECT=True
  1723. X                VOLCTL=True
  1724. X                VOLDBD=True
  1725. X                VOLBASE=0
  1726. X                PAUSE=True
  1727. X                CADDYLOCK=True
  1728. X                ;;
  1729. X            17)
  1730. X                ask_config
  1731. X                ;;
  1732. X            *)
  1733. X                $ECHO "  Please answer 1 to ${MAXCHOICE}."
  1734. X                ;;
  1735. X            esac
  1736. X
  1737. X            break
  1738. X        fi
  1739. X    done
  1740. X}
  1741. X
  1742. X
  1743. X
  1744. X# Main starts here
  1745. X
  1746. X# Use Sysv echo if possible
  1747. Xif [ -x /usr/5bin/echo ]
  1748. Xthen
  1749. X    ECHO=/usr/5bin/echo
  1750. Xelse
  1751. X    ECHO=echo
  1752. Xfi
  1753. X
  1754. X# Use nawk if possible
  1755. Xif ($ECHO "x" | nawk '{ print $0 }' -) >/dev/null 2>&1
  1756. Xthen
  1757. X    AWK=nawk
  1758. Xelse
  1759. X    AWK=awk
  1760. Xfi
  1761. X
  1762. X$ECHO "\nXmcd version $VER Device Configuration Program"
  1763. X
  1764. X# Sanity check
  1765. X
  1766. X(id | fgrep 'uid=0(root)') >/dev/null 2>&1
  1767. Xif [ $? != 0 ]
  1768. Xthen
  1769. X    $ECHO "Error: You must be the superuser to configure xmcd."
  1770. X    exit 1
  1771. Xfi
  1772. X
  1773. Xif [ ! -r $LIBDIR/xmcd/config/dev.config ]
  1774. Xthen
  1775. X    $ECHO "Cannot find $LIBDIR/xmcd/config/dev.config !"
  1776. X    $ECHO "aborting..."
  1777. X    exit 2
  1778. Xfi
  1779. X
  1780. X# Configure device-dependent parameters
  1781. X
  1782. XOS_VER=`uname -r 2>/dev/null`
  1783. XDEVBASE=/dev/rcdrom
  1784. XDEVSUFFIX=
  1785. XFIRST=0
  1786. XLINKLIBS=no
  1787. X
  1788. Xif [ -x /bin/i386 -o -x /sbin/i386 ] && i386
  1789. Xthen
  1790. X    case $OS_VER in
  1791. X    3.2)
  1792. X        DEVBASE=/dev/rcd
  1793. X        DEVSUFFIX=
  1794. X        FIRST=0
  1795. X        ;;
  1796. X    4.0)
  1797. X        DEVBASE=/dev/rcdrom/cd
  1798. X        DEVSUFFIX=
  1799. X        FIRST=0
  1800. X        LINKLIBS=yes
  1801. X        ;;
  1802. X    4.[12])
  1803. X        DEVBASE=/dev/rcdrom/cdrom
  1804. X        DEVSUFFIX=
  1805. X        FIRST=1
  1806. X        LINKLIBS=yes
  1807. X        ;;
  1808. X    4*MP)
  1809. X        DEVBASE=/dev/rcdrom/cdrom
  1810. X        DEVSUFFIX=
  1811. X        FIRST=1
  1812. X        LINKLIBS=yes
  1813. X        ;;
  1814. X    *)
  1815. X        OS_VER=unknown
  1816. X        ;;
  1817. X    esac
  1818. Xelif [ -x /bin/m88k ] && m88k
  1819. Xthen
  1820. X    case $OS_VER in
  1821. X    4.0)
  1822. X        DEVBASE=/dev/rdsk/m187_c0d
  1823. X        DEVSUFFIX=s7
  1824. X        FIRST=3
  1825. X        LINKLIBS=yes
  1826. X        ;;
  1827. X    *)
  1828. X        OS_VER=unknown
  1829. X        ;;
  1830. X    esac
  1831. Xelif [ -x /bin/hp-pa ] && hp-pa
  1832. Xthen
  1833. X    case $OS_VER in
  1834. X    A.09*)
  1835. X        DEVBASE=/dev/rdsk/c201d
  1836. X        DEVSUFFIX=s0
  1837. X        FIRST=4
  1838. X        ;;
  1839. X    *)
  1840. X        OS_VER=unknown
  1841. X        ;;
  1842. X    esac
  1843. Xelif [ -x /bin/sun ] && sun
  1844. Xthen
  1845. X    case $OS_VER in
  1846. X    4.*)
  1847. X        case `arch -k` in
  1848. X        sun4[cm])
  1849. X            DEVBASE=/dev/rsr
  1850. X            DEVSUFFIX=
  1851. X            FIRST=0
  1852. X            ;;
  1853. X        *)
  1854. X            OS_VER=unknown
  1855. X            ;;
  1856. X        esac
  1857. X        ;;
  1858. X    5.*)
  1859. X        DEVBASE=/dev/rdsk/c0t
  1860. X        DEVSUFFIX=d0s0
  1861. X        FIRST=6
  1862. X        LINKLIBS=yes
  1863. X        ;;
  1864. X    *)
  1865. X        OS_VER=unknown
  1866. X        ;;
  1867. X    esac
  1868. Xelif [ -x /bin/ftx ] && ftx
  1869. Xthen
  1870. X    case $OS_VER in
  1871. X    4.0)
  1872. X        DEVBASE=/dev/rcdrom/c2a1d
  1873. X        DEVSUFFIX=s0
  1874. X        FIRST=0
  1875. X        LINKLIBS=yes
  1876. X        ;;
  1877. X    *)
  1878. X        OS_VER=unknown
  1879. X        ;;
  1880. X    esac
  1881. Xelse
  1882. X    OS_VER=unknown
  1883. Xfi
  1884. X
  1885. XNOT_SUPPORTED="Error: You are not running an operating system that's\n\
  1886. Xcurrently supported by xmcd."
  1887. X
  1888. Xif [ "$OS_VER" = unknown ]
  1889. Xthen
  1890. X    $ECHO "$NOT_SUPPORTED"
  1891. X    YNDEF=n
  1892. X    getyn "Would you like to proceed anyway?"
  1893. X    if [ $? -ne 0 ]
  1894. X    then
  1895. X        $ECHO "Configuration aborted."
  1896. X        exit 3
  1897. X    fi
  1898. Xfi
  1899. X
  1900. XDRVNO=0
  1901. XDEVNO=$FIRST
  1902. XSEDLINE=
  1903. Xwhile :
  1904. Xdo
  1905. X    $ECHO "\nConfiguring SCSI CD-ROM drive $DRVNO..."
  1906. X
  1907. X    DEFAULT_DEV="${DEVBASE}${DEVNO}${DEVSUFFIX}"
  1908. X
  1909. X    while :
  1910. X    do
  1911. X        if getstr "\n  Enter raw CD-ROM device: [$DEFAULT_DEV]"
  1912. X        then
  1913. X            XMCD_DEV=$ANS
  1914. X        else
  1915. X            XMCD_DEV=$DEFAULT_DEV
  1916. X        fi
  1917. X
  1918. X        if [ -c $XMCD_DEV ]
  1919. X        then
  1920. X            break
  1921. X        else
  1922. X            $ECHO "  $XMCD_DEV is an invalid device."
  1923. X        fi
  1924. X    done
  1925. X
  1926. X    if [ $DRVNO -eq 0 ]
  1927. X    then
  1928. X        $AWK '{
  1929. X            if (match($0, "^XMcd.device:") > 0)
  1930. X                printf("XMcd.device:\t\t\t%s\n", device)
  1931. X            else if (match($0, "^XMcd.libdir:") > 0)
  1932. X                printf("XMcd.libdir:\t\t\t%s/xmcd\n", libdir)
  1933. X            else
  1934. X                print $0
  1935. X        }' device=$XMCD_DEV libdir=$LIBDIR \
  1936. X            $LIBDIR/app-defaults/XMcd > /tmp/xmcd.$$
  1937. X
  1938. X        cp /tmp/xmcd.$$ $LIBDIR/app-defaults/XMcd
  1939. X        rm -f /tmp/xmcd.$$
  1940. X
  1941. X        if [ $LIBDIR != "/usr/lib/X11" -a \
  1942. X             -d /usr/lib/X11/app-defaults ]
  1943. X        then
  1944. X            rm -f /usr/lib/X11/app-defaults/._trash_
  1945. X            >$LIBDIR/app-defaults/._trash_
  1946. X
  1947. X            if [ ! -f /usr/lib/X11/app-defaults/._trash_ ]
  1948. X            then
  1949. X                rm -f /usr/lib/X11/app-defaults/XMcd
  1950. X                ln $LIBDIR/app-defaults/XMcd \
  1951. X                    /usr/lib/X11/app-defaults/XMcd
  1952. X            fi
  1953. X
  1954. X            rm -f $LIBDIR/app-defaults/._trash_
  1955. X        fi
  1956. X    fi
  1957. X
  1958. X    CONFIG=$LIBDIR/xmcd/config/`basename $XMCD_DEV`
  1959. X
  1960. X    config_drive
  1961. X
  1962. X    DRVNOTICE="\n\n  NOTE: This drive does not support these features:"
  1963. X
  1964. X    if [ $PLAYTI = False ]
  1965. X    then
  1966. X        $ECHO "$DRVNOTICE"
  1967. X        DRVNOTICE="\c"
  1968. X        $ECHO "  - The Previous Index and Next Index buttons."
  1969. X    fi
  1970. X
  1971. X    if [ $CADDYLOCK = False ]
  1972. X    then
  1973. X        $ECHO "$DRVNOTICE"
  1974. X        DRVNOTICE="\c"
  1975. X        $ECHO "  - The caddy lock."
  1976. X    fi
  1977. X
  1978. X    if [ $LOAD = False ]
  1979. X    then
  1980. X        $ECHO "$DRVNOTICE"
  1981. X        DRVNOTICE="\c"
  1982. X        $ECHO "  - Software-controlled caddy load."
  1983. X    fi
  1984. X
  1985. X    if [ $VOLCTL = False ]
  1986. X    then
  1987. X        $ECHO "$DRVNOTICE"
  1988. X        DRVNOTICE="\c"
  1989. X        $ECHO "  - The volume control slider."
  1990. X    fi
  1991. X
  1992. X    $ECHO "\n  Creating the $CONFIG file..."
  1993. X
  1994. X    sed \
  1995. X       -e "s/^logicalDriveNumber:.*/logicalDriveNumber:    $DRVNO/" \
  1996. X       -e "s/^driveVendorCode:.*/driveVendorCode:    $VENDOR/" \
  1997. X       -e "s/^playAudio12Support:.*/playAudio12Support:    $PLAY12/" \
  1998. X       -e "s/^playAudioMSFSupport:.*/playAudioMSFSupport:    $PLAYMSF/" \
  1999. X       -e "s/^playAudio10Support:.*/playAudio10Support:    $PLAY10/" \
  2000. X       -e "s/^playAudioTISupport:.*/playAudioTISupport:    $PLAYTI/" \
  2001. X       -e "s/^loadSupport:.*/loadSupport:        $LOAD/" \
  2002. X       -e "s/^ejectSupport:.*/ejectSupport:        $EJECT/" \
  2003. X       -e "s/^volumeControlSupport:.*/volumeControlSupport:    $VOLCTL/" \
  2004. X       -e "s/^volumeControlSetDBD:.*/volumeControlSetDBD:    $VOLDBD/" \
  2005. X       -e "s/^scsiAudioVolumeBase:.*/scsiAudioVolumeBase:    $VOLBASE/" \
  2006. X       -e "s/^pauseResumeSupport:.*/pauseResumeSupport:    $PAUSE/" \
  2007. X       -e "s/^caddyLockSupport:.*/caddyLockSupport:    $CADDYLOCK/" \
  2008. X       < $LIBDIR/xmcd/config/dev.config > $CONFIG
  2009. X    chown bin $CONFIG
  2010. X    chgrp bin $CONFIG
  2011. X    chmod 644 $CONFIG
  2012. X
  2013. X    YNDEF=n
  2014. X    if getyn "\n  Do you have more SCSI CD-ROM drives on your system"
  2015. X    then
  2016. X        DRVNO=`expr $DRVNO + 1`
  2017. X        DEVNO=`expr $DEVNO + 1`
  2018. X    else
  2019. X        break
  2020. X    fi
  2021. Xdone
  2022. X
  2023. X
  2024. Xif [ $LINKLIBS = yes -a -d $LIBDIR -a $LIBDIR != /usr/lib/X11 ]
  2025. Xthen
  2026. X    #
  2027. X    # For security, SVR4 setuid programs search only /usr/lib and
  2028. X    # /usr/ccs/lib for shared libraries, but if the X shared
  2029. X    # libraries are not in these directories then symlinks
  2030. X    # are needed to make xmcd run.
  2031. X    #
  2032. X    cd $LIBDIR
  2033. X    for i in libX*.so*
  2034. X    do
  2035. X        if [ "$i" = 'libX*.so*' ]
  2036. X        then
  2037. X            break
  2038. X        fi
  2039. X
  2040. X        if [ ! -f /usr/lib/$i ]
  2041. X        then
  2042. X            ln -s $LIBDIR/$i /usr/lib/$i
  2043. X            $ECHO "\nLinked $LIBDIR/$i -> /usr/lib/$i"
  2044. X        fi
  2045. X    done
  2046. Xfi
  2047. X
  2048. X$ECHO "\n  Xmcd set-up is now complete.\n"
  2049. X$ECHO "  Please read the README file supplied with the xmcd"
  2050. X$ECHO "  distribution for hardware configuration information about"
  2051. X$ECHO "  specific CD-ROM drives.\n"
  2052. Xexit 0
  2053. END_OF_FILE
  2054. if test 14863 -ne `wc -c <'configure.sh'`; then
  2055.     echo shar: \"'configure.sh'\" unpacked with wrong size!
  2056. fi
  2057. # end of 'configure.sh'
  2058. fi
  2059. if test -f 'makerel.sh' -a "${1}" != "-c" ; then 
  2060.   echo shar: Will not clobber existing file \"'makerel.sh'\"
  2061. else
  2062. echo shar: Extracting \"'makerel.sh'\" \(4681 characters\)
  2063. sed "s/^X//" >'makerel.sh' <<'END_OF_FILE'
  2064. X:
  2065. X#
  2066. X# @(#)makerel.sh    1.36 93/10/30
  2067. X#
  2068. X# Make xmcd binary release
  2069. X#
  2070. X#    xmcd - Motif(tm) CD Audio Player
  2071. X#
  2072. X#    Copyright (C) 1993  Ti Kan
  2073. X#    E-mail: ti@amb.org
  2074. X#
  2075. X#    This program is free software; you can redistribute it and/or modify
  2076. X#    it under the terms of the GNU General Public License as published by
  2077. X#    the Free Software Foundation; either version 2 of the License, or
  2078. X#    (at your option) any later version.
  2079. X#
  2080. X#    This program is distributed in the hope that it will be useful,
  2081. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2082. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2083. X#    GNU General Public License for more details.
  2084. X#
  2085. X#    You should have received a copy of the GNU General Public License
  2086. X#    along with this program; if not, write to the Free Software
  2087. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2088. X#
  2089. X
  2090. XFILES="    README \
  2091. X    xmcd \
  2092. X    install.sh \
  2093. X    configure.sh \
  2094. X    demo.cddb \
  2095. X    dev.config \
  2096. X    XMcd.ad \
  2097. X    xmcd.man \
  2098. X    XKeysymDB \
  2099. X    helpfiles/AbBtn \
  2100. X    helpfiles/CheckBox \
  2101. X    helpfiles/DbModeInd \
  2102. X    helpfiles/DbProgBtn \
  2103. X    helpfiles/DdCancelBtn \
  2104. X    helpfiles/DdClrBtn \
  2105. X    helpfiles/DdDiscTxt \
  2106. X    helpfiles/DdOkBtn \
  2107. X    helpfiles/DpAboutBtn \
  2108. X    helpfiles/DpAddPgmBtn \
  2109. X    helpfiles/DpCancelBtn \
  2110. X    helpfiles/DpClrPgmBtn \
  2111. X    helpfiles/DpDExtBtn \
  2112. X    helpfiles/DpDTitleTxt \
  2113. X    helpfiles/DpLinkBtn \
  2114. X    helpfiles/DpLoadBtn \
  2115. X    helpfiles/DpPgmSeqTxt \
  2116. X    helpfiles/DpPlayPgmBtn \
  2117. X    helpfiles/DpSaveBtn \
  2118. X    helpfiles/DpTExtBtn \
  2119. X    helpfiles/DpTTitleTxt \
  2120. X    helpfiles/DpTimeSelBtn \
  2121. X    helpfiles/DpTrkList \
  2122. X    helpfiles/DsCancelBtn \
  2123. X    helpfiles/DsDirList \
  2124. X    helpfiles/DsOkBtn \
  2125. X    helpfiles/DtCancelBtn \
  2126. X    helpfiles/DtClrBtn \
  2127. X    helpfiles/DtOkBtn \
  2128. X    helpfiles/DtTrackTxt \
  2129. X    helpfiles/EjectBtn \
  2130. X    helpfiles/FfBtn \
  2131. X    helpfiles/HelpBtn \
  2132. X    helpfiles/Imakefile \
  2133. X    helpfiles/IndexInd \
  2134. X    helpfiles/KeypadBtn \
  2135. X    helpfiles/KeypadInd \
  2136. X    helpfiles/KpCancelBtn \
  2137. X    helpfiles/KpClearBtn \
  2138. X    helpfiles/KpEnterBtn \
  2139. X    helpfiles/KpNumBtn \
  2140. X    helpfiles/LevelScale \
  2141. X    helpfiles/LsCancelBtn \
  2142. X    helpfiles/LsLinkList \
  2143. X    helpfiles/LsOkBtn \
  2144. X    helpfiles/NextIdxBtn \
  2145. X    helpfiles/NextTrkBtn \
  2146. X    helpfiles/PlayModeInd \
  2147. X    helpfiles/PlayPauseBtn \
  2148. X    helpfiles/PowerBtn \
  2149. X    helpfiles/PrevIdxBtn \
  2150. X    helpfiles/PrevTrkBtn \
  2151. X    helpfiles/ProgModeInd \
  2152. X    helpfiles/RewBtn \
  2153. X    helpfiles/SampleBtn \
  2154. X    helpfiles/StopBtn \
  2155. X    helpfiles/TimeBtn \
  2156. X    helpfiles/TimeInd \
  2157. X    helpfiles/TimeModeInd \
  2158. X    helpfiles/TrackInd"
  2159. X
  2160. X
  2161. Xif [ -f /vmunix ]
  2162. Xthen
  2163. X    MCS=true
  2164. X    # Use SysV echo if possible
  2165. X    if [ -x /usr/5bin/echo ]
  2166. X    then
  2167. X        ECHO=/usr/5bin/echo
  2168. X    else
  2169. X        ECHO=/bin/echo
  2170. X    fi
  2171. Xelif [ -f /hp-ux ]
  2172. Xthen
  2173. X    MCS=true
  2174. X    ECHO=echo
  2175. Xelse
  2176. X    MCS=mcs
  2177. X    ECHO=echo
  2178. Xfi
  2179. X
  2180. X# Strip the binary symbol table
  2181. Xstrip xmcd
  2182. X
  2183. X# Remove comment section of binary if possible
  2184. X$MCS -da '@(#)xmcd v1.0 (C) Ti Kan 1993' xmcd >/dev/null 2>&1
  2185. X
  2186. X# Create tar archive
  2187. Xtar cf xmcd.tar $FILES
  2188. X
  2189. X# Compress tar archive
  2190. Xcompress xmcd.tar
  2191. X
  2192. X$ECHO '
  2193. XInstructions to unpack xmcd binary and other info
  2194. X-------------------------------------------------
  2195. X
  2196. XAt the end of this message is a compressed and uuencoded tar
  2197. Xfile containing the xmcd binary and supporting files.  To extract,
  2198. Xsave this message in a file "xmcd.uue" and do the following while
  2199. Xlogged in as root:
  2200. X
  2201. X    uudecode xmcd.uue
  2202. X    uncompress xmcd.tar.Z
  2203. X    tar xvf xmcd.tar
  2204. X    sh ./install.sh
  2205. X
  2206. XXmcd must run setuid root because the SCSI passthrough interface to
  2207. Xthe OS kernel requires superuser privilege.  Xmcd is careful about
  2208. Xsecurity and changes the uid back to the user before writing any files.
  2209. X
  2210. XSee the README file for a list of supported CD-ROM drives.
  2211. X
  2212. XTake a look at the resources in LIBDIR/app-defaults/XMcd.  If
  2213. Xthere are anything you wish to customize you can put them in your
  2214. X.Xdefaults file.  The default CD database directory hierarchy is defined by
  2215. Xthe XMcd.dbdir resource.  This hierarchy is created for you by the
  2216. Xinstallation script.  Alternatively, each user can redefine these in their
  2217. X.Xdefaults and maintain their own CD database files.  Finally, the
  2218. XXMCD_DBPATH environment variable or the -dbdir option can be used to
  2219. Xoverride this resource.
  2220. X
  2221. XTo use xmcd, simply type "xmcd" while logged into the system under
  2222. Xthe X windows environment.  Make sure the DISPLAY environment variable
  2223. Xis set properly.  The default device is the one specified in the
  2224. XXMcd.device resource.  To operate other drives, use the -dev command line
  2225. Xoption.
  2226. X
  2227. XA help button is available on the xmcd main window.  You can also get
  2228. Xfeature-specific help on any button, control, slider, indicator, list
  2229. Xor text entry area by positioning the mouse cursor over the feature,
  2230. Xand clicking the mouse button number 3.
  2231. X
  2232. X' >xmcdbin.uue
  2233. X
  2234. X# Uuencode
  2235. Xuuencode xmcd.tar.Z xmcd.tar.Z >>xmcdbin.uue
  2236. X
  2237. Xrm -f xmcd.tar.Z
  2238. Xls -l xmcdbin.uue
  2239. Xexit 0
  2240. X
  2241. END_OF_FILE
  2242. if test 4681 -ne `wc -c <'makerel.sh'`; then
  2243.     echo shar: \"'makerel.sh'\" unpacked with wrong size!
  2244. fi
  2245. # end of 'makerel.sh'
  2246. fi
  2247. if test -f 'makesrc.sh' -a "${1}" != "-c" ; then 
  2248.   echo shar: Will not clobber existing file \"'makesrc.sh'\"
  2249. else
  2250. echo shar: Extracting \"'makesrc.sh'\" \(4321 characters\)
  2251. sed "s/^X//" >'makesrc.sh' <<'END_OF_FILE'
  2252. X:
  2253. X#
  2254. X# @(#)makesrc.sh    1.24 93/10/30
  2255. X#
  2256. X# Make xmcd source code release
  2257. X#
  2258. X#    xmcd - Motif(tm) CD Audio Player
  2259. X#
  2260. X#    Copyright (C) 1993  Ti Kan
  2261. X#    E-mail: ti@amb.org
  2262. X#
  2263. X#    This program is free software; you can redistribute it and/or modify
  2264. X#    it under the terms of the GNU General Public License as published by
  2265. X#    the Free Software Foundation; either version 2 of the License, or
  2266. X#    (at your option) any later version.
  2267. X#
  2268. X#    This program is distributed in the hope that it will be useful,
  2269. X#    but WITHOUT ANY WARRANTY; without even the implied warranty of
  2270. X#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2271. X#    GNU General Public License for more details.
  2272. X#
  2273. X#    You should have received a copy of the GNU General Public License
  2274. X#    along with this program; if not, write to the Free Software
  2275. X#    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2276. X#
  2277. X
  2278. XFILES="    Imakefile \
  2279. X    BUGS \
  2280. X    COPYING \
  2281. X    INSTALL \
  2282. X    PORTING \
  2283. X    README \
  2284. X    demo.cddb \
  2285. X    xmcd.man \
  2286. X    XMcd.ad \
  2287. X    XKeysymDB \
  2288. X    dev.config \
  2289. X    install.sh \
  2290. X    configure.sh \
  2291. X    makerel.sh \
  2292. X    makesrc.sh \
  2293. X    cdfunc.h \
  2294. X    cdlib.h \
  2295. X    dbprog.h \
  2296. X    geometry.h \
  2297. X    help.h \
  2298. X    hotkey.h \
  2299. X    lib_demo.h \
  2300. X    lib_hita.h \
  2301. X    lib_hpux.h \
  2302. X    lib_nec.h \
  2303. X    lib_odt.h \
  2304. X    lib_pion.h \
  2305. X    lib_scsipt.h \
  2306. X    lib_sim.h \
  2307. X    lib_sun.h \
  2308. X    lib_svr4.h \
  2309. X    lib_tosh.h \
  2310. X    patchlevel.h \
  2311. X    resource.h \
  2312. X    util.h \
  2313. X    widget.h \
  2314. X    xmcd.h \
  2315. X    cdfunc.c \
  2316. X    dbprog.c \
  2317. X    geometry.c \
  2318. X    help.c \
  2319. X    hotkey.c \
  2320. X    lib_demo.c \
  2321. X    lib_hita.c \
  2322. X    lib_hpux.c \
  2323. X    lib_nec.c \
  2324. X    lib_odt.c \
  2325. X    lib_pion.c \
  2326. X    lib_scsipt.c \
  2327. X    lib_sim.c \
  2328. X    lib_sun.c \
  2329. X    lib_svr4.c \
  2330. X    lib_tosh.c \
  2331. X    main.c \
  2332. X    util.c \
  2333. X    widget.c \
  2334. X    bitmaps/Imakefile \
  2335. X    bitmaps/ab.xbm \
  2336. X    bitmaps/btnlbl.xbm \
  2337. X    bitmaps/dbprog.xbm \
  2338. X    bitmaps/eject.xbm \
  2339. X    bitmaps/ff.xbm \
  2340. X    bitmaps/help.xbm \
  2341. X    bitmaps/keypad.xbm \
  2342. X    bitmaps/lock.xbm \
  2343. X    bitmaps/logo.xbm \
  2344. X    bitmaps/nextidx.xbm \
  2345. X    bitmaps/nexttrk.xbm \
  2346. X    bitmaps/playpaus.xbm \
  2347. X    bitmaps/poweroff.xbm \
  2348. X    bitmaps/previdx.xbm \
  2349. X    bitmaps/prevtrk.xbm \
  2350. X    bitmaps/repeat.xbm \
  2351. X    bitmaps/rew.xbm \
  2352. X    bitmaps/sample.xbm \
  2353. X    bitmaps/shuffle.xbm \
  2354. X    bitmaps/stop.xbm \
  2355. X    bitmaps/time.xbm \
  2356. X    bitmaps/xmcd.xbm \
  2357. X    helpfiles/AbBtn \
  2358. X    helpfiles/CheckBox \
  2359. X    helpfiles/DbModeInd \
  2360. X    helpfiles/DbProgBtn \
  2361. X    helpfiles/DdCancelBtn \
  2362. X    helpfiles/DdClrBtn \
  2363. X    helpfiles/DdDiscTxt \
  2364. X    helpfiles/DdOkBtn \
  2365. X    helpfiles/DpAboutBtn \
  2366. X    helpfiles/DpAddPgmBtn \
  2367. X    helpfiles/DpCancelBtn \
  2368. X    helpfiles/DpClrPgmBtn \
  2369. X    helpfiles/DpDExtBtn \
  2370. X    helpfiles/DpDTitleTxt \
  2371. X    helpfiles/DpLinkBtn \
  2372. X    helpfiles/DpLoadBtn \
  2373. X    helpfiles/DpPgmSeqTxt \
  2374. X    helpfiles/DpPlayPgmBtn \
  2375. X    helpfiles/DpSaveBtn \
  2376. X    helpfiles/DpTExtBtn \
  2377. X    helpfiles/DpTTitleTxt \
  2378. X    helpfiles/DpTimeSelBtn \
  2379. X    helpfiles/DpTrkList \
  2380. X    helpfiles/DsCancelBtn \
  2381. X    helpfiles/DsDirList \
  2382. X    helpfiles/DsOkBtn \
  2383. X    helpfiles/DtCancelBtn \
  2384. X    helpfiles/DtClrBtn \
  2385. X    helpfiles/DtOkBtn \
  2386. X    helpfiles/DtTrackTxt \
  2387. X    helpfiles/EjectBtn \
  2388. X    helpfiles/FfBtn \
  2389. X    helpfiles/HelpBtn \
  2390. X    helpfiles/Imakefile \
  2391. X    helpfiles/IndexInd \
  2392. X    helpfiles/KeypadBtn \
  2393. X    helpfiles/KeypadInd \
  2394. X    helpfiles/KpCancelBtn \
  2395. X    helpfiles/KpClearBtn \
  2396. X    helpfiles/KpEnterBtn \
  2397. X    helpfiles/KpNumBtn \
  2398. X    helpfiles/LevelScale \
  2399. X    helpfiles/LsCancelBtn \
  2400. X    helpfiles/LsLinkList \
  2401. X    helpfiles/LsOkBtn \
  2402. X    helpfiles/NextIdxBtn \
  2403. X    helpfiles/NextTrkBtn \
  2404. X    helpfiles/PlayModeInd \
  2405. X    helpfiles/PlayPauseBtn \
  2406. X    helpfiles/PowerBtn \
  2407. X    helpfiles/PrevIdxBtn \
  2408. X    helpfiles/PrevTrkBtn \
  2409. X    helpfiles/ProgModeInd \
  2410. X    helpfiles/RewBtn \
  2411. X    helpfiles/SampleBtn \
  2412. X    helpfiles/StopBtn \
  2413. X    helpfiles/TimeBtn \
  2414. X    helpfiles/TimeInd \
  2415. X    helpfiles/TimeModeInd \
  2416. X    helpfiles/TrackInd"
  2417. X
  2418. X
  2419. X# Use SysV echo if possible
  2420. Xif [ -x /usr/5bin/echo ]
  2421. Xthen
  2422. X    ECHO=/usr/5bin/echo
  2423. Xelse
  2424. X    ECHO=echo
  2425. Xfi
  2426. X
  2427. X# Create tar archive
  2428. Xtar cf xmcdsrc.tar $FILES
  2429. X
  2430. X# Compress tar archive
  2431. Xcompress xmcdsrc.tar
  2432. X
  2433. X$ECHO '
  2434. X
  2435. XInstructions to unpack xmcd source code release
  2436. X-----------------------------------------------
  2437. X
  2438. XThe following is a compressed and uuencoded tar archive containing
  2439. Xthe xmcd source code files.  To extract, make a suitable source
  2440. Xcode directory for xmcd and save this message in a file "xmcdsrc.uue"
  2441. Xin that directory.  Then, change to the directory and do the following:
  2442. X
  2443. X    uudecode xmcdsrc.uue
  2444. X    uncompress xmcdsrc.tar.Z
  2445. X    tar xvf xmcdsrc.tar
  2446. X
  2447. XRead the README and INSTALL files for further instructions.
  2448. X
  2449. X' >xmcdsrc.uue
  2450. X
  2451. X# Uuencode
  2452. Xuuencode xmcdsrc.tar.Z xmcdsrc.tar.Z >>xmcdsrc.uue
  2453. X
  2454. Xrm -f xmcdsrc.tar.Z
  2455. Xls -l xmcdsrc.uue
  2456. Xexit 0
  2457. X
  2458. END_OF_FILE
  2459. if test 4321 -ne `wc -c <'makesrc.sh'`; then
  2460.     echo shar: \"'makesrc.sh'\" unpacked with wrong size!
  2461. fi
  2462. # end of 'makesrc.sh'
  2463. fi
  2464. if test -f 'cdfunc.h' -a "${1}" != "-c" ; then 
  2465.   echo shar: Will not clobber existing file \"'cdfunc.h'\"
  2466. else
  2467. echo shar: Extracting \"'cdfunc.h'\" \(3864 characters\)
  2468. sed "s/^X//" >'cdfunc.h' <<'END_OF_FILE'
  2469. X/*
  2470. X *   xmcd - Motif(tm) CD Audio Player
  2471. X *
  2472. X *   Copyright (C) 1993  Ti Kan
  2473. X *   E-mail: ti@amb.org
  2474. X *
  2475. X *   This program is free software; you can redistribute it and/or modify
  2476. X *   it under the terms of the GNU General Public License as published by
  2477. X *   the Free Software Foundation; either version 2 of the License, or
  2478. X *   (at your option) any later version.
  2479. X *
  2480. X *   This program is distributed in the hope that it will be useful,
  2481. X *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  2482. X *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2483. X *   GNU General Public License for more details.
  2484. X *
  2485. X *   You should have received a copy of the GNU General Public License
  2486. X *   along with this program; if not, write to the Free Software
  2487. X *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2488. X *
  2489. X */
  2490. X#ifndef __CDFUNC_H__
  2491. X#define __CDFUNC_H__
  2492. X
  2493. X#ifndef LINT
  2494. Xstatic char *_cdfunc_h_ident_ = "@(#)cdfunc.h    1.58 93/09/28";
  2495. X#endif
  2496. X
  2497. X
  2498. X/* Args for set_btn_lbltype */
  2499. X#define BTN_PIXMAP    0        /* Pixmap button labels */
  2500. X#define BTN_STRING    1        /* Text button labels */
  2501. X
  2502. X
  2503. X/* Public functions */
  2504. Xint        curtrk_pos(curstat_t *);
  2505. Xint        curprog_pos(curstat_t *);
  2506. Xvoid        dpy_track(curstat_t *);
  2507. Xvoid        dpy_index(curstat_t *);
  2508. Xvoid        dpy_time(curstat_t *, bool_t);
  2509. Xvoid        dpy_all(curstat_t *);
  2510. Xvoid        dpy_dbmode(curstat_t *);
  2511. Xvoid        dpy_progmode(curstat_t *);
  2512. Xvoid        dpy_timemode(curstat_t *);
  2513. Xvoid        dpy_playmode(curstat_t *, bool_t);
  2514. X
  2515. Xvoid        reset_curstat(curstat_t *, bool_t);
  2516. Xvoid        reset_shuffle(curstat_t *);
  2517. X
  2518. Xvoid        set_lock_btn(bool_t);
  2519. Xvoid        set_repeat_btn(bool_t);
  2520. Xvoid        set_shuffle_btn(bool_t);
  2521. Xvoid        set_vol_slider(byte_t);
  2522. Xvoid        set_btn_lbltype(byte_t);
  2523. X
  2524. Xint        taper_vol(int);
  2525. Xint        untaper_vol(int);
  2526. X
  2527. Xint        cd_timeout(word32_t, void (*)(), byte_t *);
  2528. Xvoid        cd_untimeout(int);
  2529. Xvoid        cd_beep(void);
  2530. Xvoid        cd_pause_blink(curstat_t *, bool_t);
  2531. Xvoid        cd_ab_blink(curstat_t *, bool_t);
  2532. Xvoid        cd_info_popup(char *, char *);
  2533. Xvoid        cd_warning_popup(char *, char *);
  2534. Xvoid        cd_fatal_popup(char *, char *);
  2535. Xvoid        cd_confirm_popup(char *, char *, XtCallbackProc, XtPointer,
  2536. X            XtCallbackProc, XtPointer);
  2537. Xvoid        cd_playprog(curstat_t *);
  2538. Xvoid        cd_init(curstat_t *);
  2539. Xvoid        cd_start(curstat_t *);
  2540. Xvoid        cd_icon(curstat_t *, bool_t);
  2541. Xvoid        cd_halt(curstat_t *);
  2542. Xbool_t        cd_devlock(char *);
  2543. Xvoid        onsig(int);
  2544. X
  2545. X
  2546. X/* Callback functions */
  2547. Xvoid        cd_checkbox(Widget, XtPointer, XtPointer);
  2548. Xvoid        cd_load_eject(Widget, XtPointer, XtPointer);
  2549. Xvoid        cd_poweroff(Widget, XtPointer, XtPointer);
  2550. Xvoid        cd_dbprog(Widget, XtPointer, XtPointer);
  2551. Xvoid        cd_time(Widget, XtPointer, XtPointer);
  2552. Xvoid        cd_ab(Widget, XtPointer, XtPointer);
  2553. Xvoid        cd_sample(Widget, XtPointer, XtPointer);
  2554. Xvoid        cd_level(Widget, XtPointer, XtPointer);
  2555. Xvoid        cd_play_pause(Widget, XtPointer, XtPointer);
  2556. Xvoid        cd_stop(Widget, XtPointer, XtPointer);
  2557. Xvoid        cd_prevtrk(Widget, XtPointer, XtPointer);
  2558. Xvoid        cd_nexttrk(Widget, XtPointer, XtPointer);
  2559. Xvoid        cd_previdx(Widget, XtPointer, XtPointer);
  2560. Xvoid        cd_nextidx(Widget, XtPointer, XtPointer);
  2561. Xvoid        cd_rew(Widget, XtPointer, XtPointer);
  2562. Xvoid        cd_ff(Widget, XtPointer, XtPointer);
  2563. Xvoid        cd_keypad_popup(Widget, XtPointer, XtPointer);
  2564. Xvoid        cd_keypad_clear(Widget, XtPointer, XtPointer);
  2565. Xvoid        cd_keypad_popdown(Widget, XtPointer, XtPointer);
  2566. Xvoid        cd_keypad_num(Widget, XtPointer, XtPointer);
  2567. Xvoid        cd_keypad_enter(Widget, XtPointer, XtPointer);
  2568. Xvoid        cd_about(Widget, XtPointer, XtPointer);
  2569. Xvoid        cd_help_popup(Widget, XtPointer, XtPointer);
  2570. Xvoid        cd_help_popdown(Widget, XtPointer, XtPointer);
  2571. Xvoid        cd_warning_popdown(Widget, XtPointer, XtPointer);
  2572. Xvoid        cd_fatal_popdown(Widget, XtPointer, XtPointer);
  2573. Xvoid        cd_rmcallback(Widget, XtPointer, XtPointer);
  2574. Xvoid        cd_form_focus_chg(Widget, XtPointer, XtPointer);
  2575. Xvoid        cd_exit(Widget, XtPointer, XtPointer);
  2576. X
  2577. X/* Event handlers */
  2578. Xvoid        cd_btn_focus_chg(Widget, XtPointer, XEvent *, Boolean *);
  2579. X
  2580. X#endif    /* __CDFUNC_H__ */
  2581. X
  2582. END_OF_FILE
  2583. if test 3864 -ne `wc -c <'cdfunc.h'`; then
  2584.     echo shar: \"'cdfunc.h'\" unpacked with wrong size!
  2585. fi
  2586. # end of 'cdfunc.h'
  2587. fi
  2588. if test -f 'cdlib.h' -a "${1}" != "-c" ; then 
  2589.   echo shar: Will not clobber existing file \"'cdlib.h'\"
  2590. else
  2591. echo shar: Extracting \"'cdlib.h'\" \(1917 characters\)
  2592. sed "s/^X//" >'cdlib.h' <<'END_OF_FILE'
  2593. X/*
  2594. X *   xmcd - Motif(tm) CD Audio Player
  2595. X *
  2596. X *   Copyright (C) 1993  Ti Kan
  2597. X *   E-mail: ti@amb.org
  2598. X *
  2599. X *   This program is free software; you can redistribute it and/or modify
  2600. X *   it under the terms of the GNU General Public License as published by
  2601. X *   the Free Software Foundation; either version 2 of the License, or
  2602. X *   (at your option) any later version.
  2603. X *
  2604. X *   This program is distributed in the hope that it will be useful,
  2605. X *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  2606. X *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2607. X *   GNU General Public License for more details.
  2608. X *
  2609. X *   You should have received a copy of the GNU General Public License
  2610. X *   along with this program; if not, write to the Free Software
  2611. X *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2612. X *
  2613. X */
  2614. X#ifndef __CDLIB_H__
  2615. X#define __CDLIB_H__
  2616. X
  2617. X#ifndef LINT
  2618. Xstatic char *_cdlib_h_ident_ = "@(#)cdlib.h    1.37 93/09/28";
  2619. X#endif
  2620. X
  2621. X/* Function prototypes */
  2622. Xbool_t        cdlib_check_disc(curstat_t *);
  2623. Xvoid        cdlib_lock(curstat_t *, bool_t);
  2624. Xvoid        cdlib_repeat(curstat_t *, bool_t);
  2625. Xvoid        cdlib_shuffle(curstat_t *, bool_t);
  2626. Xvoid        cdlib_load_eject(curstat_t *);
  2627. Xvoid        cdlib_time(curstat_t *);
  2628. Xvoid        cdlib_ab(curstat_t *);
  2629. Xvoid        cdlib_sample(curstat_t *);
  2630. Xvoid        cdlib_level(curstat_t *, byte_t, bool_t);
  2631. Xvoid        cdlib_play_pause(curstat_t *);
  2632. Xvoid        cdlib_stop(curstat_t *, bool_t);
  2633. Xvoid        cdlib_prevtrk(curstat_t *);
  2634. Xvoid        cdlib_nexttrk(curstat_t *);
  2635. Xvoid        cdlib_previdx(curstat_t *);
  2636. Xvoid        cdlib_nextidx(curstat_t *);
  2637. Xvoid        cdlib_rew(curstat_t *, bool_t);
  2638. Xvoid        cdlib_ff(curstat_t *, bool_t);
  2639. Xvoid        cdlib_mute_on(curstat_t *);
  2640. Xvoid        cdlib_mute_off(curstat_t *);
  2641. Xvoid        cdlib_playprog(curstat_t *);
  2642. Xvoid        cdlib_init(curstat_t *);
  2643. Xvoid        cdlib_start(curstat_t *);
  2644. Xvoid        cdlib_icon(curstat_t *, bool_t);
  2645. Xvoid        cdlib_halt(curstat_t *);
  2646. Xchar        *cdlib_mode(void);
  2647. Xchar        *cdlib_vers(void);
  2648. X
  2649. X#endif    /* __CDLIB_H__ */
  2650. X
  2651. END_OF_FILE
  2652. if test 1917 -ne `wc -c <'cdlib.h'`; then
  2653.     echo shar: \"'cdlib.h'\" unpacked with wrong size!
  2654. fi
  2655. # end of 'cdlib.h'
  2656. fi
  2657. if test -f 'dbprog.h' -a "${1}" != "-c" ; then 
  2658.   echo shar: Will not clobber existing file \"'dbprog.h'\"
  2659. else
  2660. echo shar: Extracting \"'dbprog.h'\" \(3145 characters\)
  2661. sed "s/^X//" >'dbprog.h' <<'END_OF_FILE'
  2662. X/*
  2663. X *   xmcd - Motif(tm) CD Audio Player
  2664. X *
  2665. X *   Copyright (C) 1993  Ti Kan
  2666. X *   E-mail: ti@amb.org
  2667. X *
  2668. X *   This program is free software; you can redistribute it and/or modify
  2669. X *   it under the terms of the GNU General Public License as published by
  2670. X *   the Free Software Foundation; either version 2 of the License, or
  2671. X *   (at your option) any later version.
  2672. X *
  2673. X *   This program is distributed in the hope that it will be useful,
  2674. X *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  2675. X *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2676. X *   GNU General Public License for more details.
  2677. X *
  2678. X *   You should have received a copy of the GNU General Public License
  2679. X *   along with this program; if not, write to the Free Software
  2680. X *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2681. X *
  2682. X */
  2683. X#ifndef __DBPROG_H__
  2684. X#define __DBPROG_H__
  2685. X
  2686. X#ifndef LINT
  2687. Xstatic char *_dbprog_h_ident_ = "@(#)dbprog.h    1.29 93/09/28";
  2688. X#endif
  2689. X
  2690. X
  2691. X#define TRKLIST_FMT    " %02u  %02u:%02u  %s "
  2692. X#define TRKLIST_PFLEN    16
  2693. X#define UNDEF_STR    "??"
  2694. X#define DBPATH_SEPCHAR    ':'
  2695. X#define PGM_SEPCHAR    ','
  2696. X#define TIME_TOTAL    1
  2697. X#define TIME_TRACK    2
  2698. X#define DIRSEL_SAVE    1
  2699. X#define DIRSEL_LINK    2
  2700. X#define OPEN_ERR    50
  2701. X#define SETUID_ERR    51
  2702. X#define LINK_ERR    52
  2703. X
  2704. X
  2705. X/* Public functions */
  2706. Xvoid        dbprog_curtrkupd(curstat_t *);
  2707. Xvoid        dbprog_dbclear(curstat_t *);
  2708. Xvoid        dbprog_dbget(curstat_t *);
  2709. Xvoid        dbprog_init(curstat_t *);
  2710. X
  2711. X/* Callback functions */
  2712. Xvoid        dbprog_popup(Widget, XtPointer, XtPointer);
  2713. Xvoid        dbprog_dtitle_new(Widget, XtPointer, XtPointer);
  2714. Xvoid        dbprog_trklist_play(Widget, XtPointer, XtPointer);
  2715. Xvoid        dbprog_trklist_select(Widget, XtPointer, XtPointer);
  2716. Xvoid        dbprog_ttitle_new(Widget, XtPointer, XtPointer);
  2717. Xvoid        dbprog_pgmseq_verify(Widget, XtPointer, XtPointer);
  2718. Xvoid        dbprog_pgmseq_txtchg(Widget, XtPointer, XtPointer);
  2719. Xvoid        dbprog_pgmseq_focuschg(Widget, XtPointer, XtPointer);
  2720. Xvoid        dbprog_addpgm(Widget, XtPointer, XtPointer);
  2721. Xvoid        dbprog_clrpgm(Widget, XtPointer, XtPointer);
  2722. Xvoid        dbprog_playpgm(Widget, XtPointer, XtPointer);
  2723. Xvoid        dbprog_savedb(Widget, XtPointer, XtPointer);
  2724. Xvoid        dbprog_loaddb(Widget, XtPointer, XtPointer);
  2725. Xvoid        dbprog_link(Widget, XtPointer, XtPointer);
  2726. Xvoid        dbprog_cancel(Widget, XtPointer, XtPointer);
  2727. Xvoid        dbprog_timedpy(Widget, XtPointer, XtPointer);
  2728. Xvoid        dbprog_extd(Widget, XtPointer, XtPointer);
  2729. Xvoid        dbprog_extt(Widget, XtPointer, XtPointer);
  2730. Xvoid        dbprog_set_changed(Widget, XtPointer, XtPointer);
  2731. Xvoid        dbprog_extd_ok(Widget, XtPointer, XtPointer);
  2732. Xvoid        dbprog_extd_clear(Widget, XtPointer, XtPointer);
  2733. Xvoid        dbprog_extd_cancel(Widget, XtPointer, XtPointer);
  2734. Xvoid        dbprog_extt_ok(Widget, XtPointer, XtPointer);
  2735. Xvoid        dbprog_extt_clear(Widget, XtPointer, XtPointer);
  2736. Xvoid        dbprog_extt_cancel(Widget, XtPointer, XtPointer);
  2737. Xvoid        dbprog_dirsel_select(Widget, XtPointer, XtPointer);
  2738. Xvoid        dbprog_dirsel_ok(Widget, XtPointer, XtPointer);
  2739. Xvoid        dbprog_dirsel_cancel(Widget, XtPointer, XtPointer);
  2740. Xvoid        dbprog_linksel_select(Widget, XtPointer, XtPointer);
  2741. Xvoid        dbprog_linksel_ok(Widget, XtPointer, XtPointer);
  2742. Xvoid        dbprog_linksel_cancel(Widget, XtPointer, XtPointer);
  2743. X
  2744. X#endif    /* __DBPROG_H__ */
  2745. END_OF_FILE
  2746. if test 3145 -ne `wc -c <'dbprog.h'`; then
  2747.     echo shar: \"'dbprog.h'\" unpacked with wrong size!
  2748. fi
  2749. # end of 'dbprog.h'
  2750. fi
  2751. if test -f 'geometry.h' -a "${1}" != "-c" ; then 
  2752.   echo shar: Will not clobber existing file \"'geometry.h'\"
  2753. else
  2754. echo shar: Extracting \"'geometry.h'\" \(10010 characters\)
  2755. sed "s/^X//" >'geometry.h' <<'END_OF_FILE'
  2756. X/*
  2757. X *   xmcd - Motif CD Player
  2758. X *
  2759. X *   Copyright (C) 1993  Ti Kan
  2760. X *   E-mail: ti@amb.org
  2761. X *
  2762. X *   This program is free software; you can redistribute it and/or modify
  2763. X *   it under the terms of the GNU General Public License as published by
  2764. X *   the Free Software Foundation; either version 2 of the License, or
  2765. X *   (at your option) any later version.
  2766. X *
  2767. X *   This program is distributed in the hope that it will be useful,
  2768. X *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  2769. X *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  2770. X *   GNU General Public License for more details.
  2771. X *
  2772. X *   You should have received a copy of the GNU General Public License
  2773. X *   along with this program; if not, write to the Free Software
  2774. X *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  2775. X *
  2776. X */
  2777. X#ifndef __GEOMETRY_H__
  2778. X#define __GEOMETRY_H__
  2779. X
  2780. X#ifndef LINT
  2781. Xstatic char *_geometry_h_ident_ = "@(#)geometry.h    1.45 93/09/28";
  2782. X#endif
  2783. X
  2784. X/* Location of widgets relative to form origin, express in percentage of
  2785. X * form size.
  2786. X */
  2787. X
  2788. X/* Main window widgets */
  2789. X
  2790. X#define LEFT_CHECKBOX        0
  2791. X#define RIGHT_CHECKBOX        16
  2792. X#define TOP_CHECKBOX        0
  2793. X#define BOTTOM_CHECKBOX        60
  2794. X
  2795. X#define LEFT_EJECT        0
  2796. X#define RIGHT_EJECT        16
  2797. X#define TOP_EJECT        60
  2798. X#define BOTTOM_EJECT        80
  2799. X
  2800. X#define LEFT_POWEROFF        0
  2801. X#define RIGHT_POWEROFF        16
  2802. X#define TOP_POWEROFF        80
  2803. X#define BOTTOM_POWEROFF        100
  2804. X
  2805. X#define LEFT_TRACKIND        20
  2806. X#define RIGHT_TRACKIND        32
  2807. X#define TOP_TRACKIND        4
  2808. X#define BOTTOM_TRACKIND        45
  2809. X
  2810. X#define LEFT_INDEXIND        32
  2811. X#define RIGHT_INDEXIND        39
  2812. X#define TOP_INDEXIND        4
  2813. X#define BOTTOM_INDEXIND        45
  2814. X
  2815. X#define LEFT_TIMEIND        39
  2816. X#define RIGHT_TIMEIND        63
  2817. X#define TOP_TIMEIND        4
  2818. X#define BOTTOM_TIMEIND        45
  2819. X
  2820. X#define LEFT_DBMODEIND        20
  2821. X#define RIGHT_DBMODEIND        31
  2822. X#define TOP_DBMODEIND        45
  2823. X#define BOTTOM_DBMODEIND    60
  2824. X
  2825. X#define LEFT_PROGMODEIND    31
  2826. X#define RIGHT_PROGMODEIND    41
  2827. X#define TOP_PROGMODEIND        45
  2828. X#define BOTTOM_PROGMODEIND    60
  2829. X
  2830. X#define LEFT_TIMEMODEIND    41
  2831. X#define RIGHT_TIMEMODEIND    52
  2832. X#define TOP_TIMEMODEIND        45
  2833. X#define BOTTOM_TIMEMODEIND    60
  2834. X
  2835. X#define LEFT_PLAYMODEIND    52
  2836. X#define RIGHT_PLAYMODEIND    63
  2837. X#define TOP_PLAYMODEIND        45
  2838. X#define BOTTOM_PLAYMODEIND    60
  2839. X
  2840. X#define LEFT_DBPROG        16
  2841. X#define RIGHT_DBPROG        27
  2842. X#define TOP_DBPROG        65
  2843. X#define BOTTOM_DBPROG        100
  2844. X
  2845. X#define LEFT_TIME        27
  2846. X#define RIGHT_TIME        37
  2847. X#define TOP_TIME        65
  2848. X#define BOTTOM_TIME        80
  2849. X
  2850. X#define LEFT_AB            37
  2851. X#define RIGHT_AB        47
  2852. X#define TOP_AB            65
  2853. X#define BOTTOM_AB        80
  2854. X
  2855. X#define LEFT_SAMPLE        47
  2856. X#define RIGHT_SAMPLE        57
  2857. X#define TOP_SAMPLE        65
  2858. X#define BOTTOM_SAMPLE        80
  2859. X
  2860. X#define LEFT_KEYPAD        57
  2861. X#define RIGHT_KEYPAD        67
  2862. X#define TOP_KEYPAD        65
  2863. X#define BOTTOM_KEYPAD        80
  2864. X
  2865. X#define LEFT_HELP        27
  2866. X#define RIGHT_HELP        37
  2867. X#define TOP_HELP        80
  2868. X#define BOTTOM_HELP        100
  2869. X
  2870. X#define LEFT_LEVEL        37
  2871. X#define RIGHT_LEVEL        67
  2872. X#define TOP_LEVEL        80
  2873. X#define BOTTOM_LEVEL        100
  2874. X
  2875. X#define LEFT_PLAYPAUSE        67
  2876. X#define RIGHT_PLAYPAUSE        100
  2877. X#define TOP_PLAYPAUSE        0
  2878. X#define BOTTOM_PLAYPAUSE    20
  2879. X
  2880. X#define LEFT_STOP        67
  2881. X#define RIGHT_STOP        100
  2882. X#define TOP_STOP        20
  2883. X#define BOTTOM_STOP        40
  2884. X
  2885. X#define LEFT_PREVTRK        67
  2886. X#define RIGHT_PREVTRK        84
  2887. X#define TOP_PREVTRK        40
  2888. X#define BOTTOM_PREVTRK        60
  2889. X
  2890. X#define LEFT_NEXTTRK        84
  2891. X#define RIGHT_NEXTTRK        100
  2892. X#define TOP_NEXTTRK        40
  2893. X#define BOTTOM_NEXTTRK        60
  2894. X
  2895. X#define LEFT_PREVIDX        67
  2896. X#define RIGHT_PREVIDX        84
  2897. X#define TOP_PREVIDX        60
  2898. X#define BOTTOM_PREVIDX        80
  2899. X
  2900. X#define LEFT_NEXTIDX        84
  2901. X#define RIGHT_NEXTIDX        100
  2902. X#define TOP_NEXTIDX        60
  2903. X#define BOTTOM_NEXTIDX        80
  2904. X
  2905. X#define LEFT_REW        67
  2906. X#define RIGHT_REW        84
  2907. X#define TOP_REW            80
  2908. X#define BOTTOM_REW        100
  2909. X
  2910. X#define LEFT_FF            84
  2911. X#define RIGHT_FF        100
  2912. X#define TOP_FF            80
  2913. X#define BOTTOM_FF        100
  2914. X
  2915. X/* Keypad window widgets */
  2916. X
  2917. X#define LEFT_KEYPADLBL        5
  2918. X#define RIGHT_KEYPADLBL        95
  2919. X#define TOP_KEYPADLBL        5
  2920. X#define BOTTOM_KEYPADLBL    11
  2921. X
  2922. X#define LEFT_KEYPADIND        38
  2923. X#define RIGHT_KEYPADIND        62
  2924. X#define TOP_KEYPADIND        12
  2925. X#define BOTTOM_KEYPADIND    23
  2926. X
  2927. X#define LEFT_KEY1        5
  2928. X#define RIGHT_KEY1        35
  2929. X#define TOP_KEY1        28
  2930. X#define BOTTOM_KEY1        39
  2931. X
  2932. X#define LEFT_KEY2        35
  2933. X#define RIGHT_KEY2        65
  2934. X#define TOP_KEY2        28
  2935. X#define BOTTOM_KEY2        39
  2936. X
  2937. X#define LEFT_KEY3        65
  2938. X#define RIGHT_KEY3        95
  2939. X#define TOP_KEY3        28
  2940. X#define BOTTOM_KEY3        39
  2941. X
  2942. X#define LEFT_KEY4        5
  2943. X#define RIGHT_KEY4        35
  2944. X#define TOP_KEY4        39
  2945. X#define BOTTOM_KEY4        50
  2946. X
  2947. X#define LEFT_KEY5        35
  2948. X#define RIGHT_KEY5        65
  2949. X#define TOP_KEY5        39
  2950. X#define BOTTOM_KEY5        50
  2951. X
  2952. X#define LEFT_KEY6        65
  2953. X#define RIGHT_KEY6        95
  2954. X#define TOP_KEY6        39
  2955. X#define BOTTOM_KEY6        50
  2956. X
  2957. X#define LEFT_KEY7        5
  2958. X#define RIGHT_KEY7        35
  2959. X#define TOP_KEY7        50
  2960. X#define BOTTOM_KEY7        61
  2961. X
  2962. X#define LEFT_KEY8        35
  2963. X#define RIGHT_KEY8        65
  2964. X#define TOP_KEY8        50
  2965. X#define BOTTOM_KEY8        61
  2966. X
  2967. X#define LEFT_KEY9        65
  2968. X#define RIGHT_KEY9        95
  2969. X#define TOP_KEY9        50
  2970. X#define BOTTOM_KEY9        61
  2971. X
  2972. X#define LEFT_KEY0        5
  2973. X#define RIGHT_KEY0        35
  2974. X#define TOP_KEY0        61
  2975. X#define BOTTOM_KEY0        72
  2976. X
  2977. X#define LEFT_ENTER        35
  2978. X#define RIGHT_ENTER        95
  2979. X#define TOP_ENTER        61
  2980. X#define BOTTOM_ENTER        72
  2981. X
  2982. X#define LEFT_KEYPADSEP        0
  2983. X#define RIGHT_KEYPADSEP        100
  2984. X#define TOP_KEYPADSEP        77
  2985. X
  2986. X#define LEFT_KPCLEAR        5
  2987. X#define RIGHT_KPCLEAR        45
  2988. X#define TOP_KPCLEAR        84
  2989. X
  2990. X#define LEFT_KPCANCEL        55
  2991. X#define RIGHT_KPCANCEL        95
  2992. X#define TOP_KPCANCEL        84
  2993. X
  2994. X/* Database/Program window widgets */
  2995. X
  2996. X#define LEFT_LOGO        32
  2997. X#define RIGHT_LOGO        52
  2998. X#define TOP_LOGO        1
  2999. X#define BOTTOM_LOGO        11
  3000. X
  3001. X#define LEFT_ABOUT        81
  3002. X#define RIGHT_ABOUT        96
  3003. X#define TOP_ABOUT        2
  3004. X#define BOTTOM_ABOUT        7
  3005. X
  3006. X#define LEFT_DTITLELBL        4
  3007. X#define RIGHT_DTITLELBL        79
  3008. X#define TOP_DTITLELBL        11
  3009. X#define BOTTOM_DTITLELBL    15
  3010. X
  3011. X#define LEFT_EXTDLBL        81
  3012. X#define RIGHT_EXTDLBL        96
  3013. X#define TOP_EXTDLBL        11
  3014. X#define BOTTOM_EXTDLBL        15
  3015. X
  3016. X#define LEFT_DTITLE        4
  3017. X#define RIGHT_DTITLE        79
  3018. X#define TOP_DTITLE        15
  3019. X#define BOTTOM_DTITLE        22
  3020. X
  3021. X#define LEFT_EXTD        81
  3022. X#define RIGHT_EXTD        96
  3023. X#define TOP_EXTD        15
  3024. X#define BOTTOM_EXTD        21
  3025. X
  3026. X#define LEFT_DBPROGSEP1        0
  3027. X#define RIGHT_DBPROGSEP1    100
  3028. X#define TOP_DBPROGSEP1        24
  3029. X
  3030. X#define LEFT_TRKLISTLBL        4
  3031. X#define RIGHT_TRKLISTLBL    79
  3032. X#define TOP_TRKLISTLBL        26
  3033. X#define BOTTOM_TRKLISTLBL    30
  3034. X
  3035. X#define LEFT_TRKLIST        4
  3036. X#define RIGHT_TRKLIST        79
  3037. X#define TOP_TRKLIST        30
  3038. X#define BOTTOM_TRKLIST        61
  3039. X
  3040. X#define LEFT_RADIOLBL        81
  3041. X#define RIGHT_RADIOLBL        96
  3042. X#define TOP_RADIOLBL        46
  3043. X#define BOTTOM_RADIOLBL        50
  3044. X
  3045. X#define LEFT_RADIOBOX        81
  3046. X#define RIGHT_RADIOBOX        96
  3047. X#define TOP_RADIOBOX        50
  3048. X#define BOTTOM_RADIOBOX        61
  3049. X
  3050. X#define LEFT_TTITLELBL        4
  3051. X#define RIGHT_TTITLELBL        79
  3052. X#define TOP_TTITLELBL        62
  3053. X#define BOTTOM_TTITLELBL    66
  3054. X
  3055. X#define LEFT_EXTTLBL        81
  3056. X#define RIGHT_EXTTLBL        96
  3057. X#define TOP_EXTTLBL        62
  3058. X#define BOTTOM_EXTTLBL        66
  3059. X
  3060. X#define LEFT_TTITLE        4
  3061. X#define RIGHT_TTITLE        79
  3062. X#define TOP_TTITLE        66
  3063. X#define BOTTOM_TTITLE        73
  3064. X
  3065. X#define LEFT_EXTT        81
  3066. X#define RIGHT_EXTT        96
  3067. X#define TOP_EXTT        66
  3068. X#define BOTTOM_EXTT        72
  3069. X
  3070. X#define LEFT_PGMLBL        81
  3071. X#define RIGHT_PGMLBL        96
  3072. X#define TOP_PGMLBL        26
  3073. X#define BOTTOM_PGMLBL        30
  3074. X
  3075. X#define LEFT_ADDPGM        81
  3076. X#define RIGHT_ADDPGM        96
  3077. X#define TOP_ADDPGM        30
  3078. X#define BOTTOM_ADDPGM        35
  3079. X
  3080. X#define LEFT_CLRPGM        81
  3081. X#define RIGHT_CLRPGM        96
  3082. X#define TOP_CLRPGM        35
  3083. X#define BOTTOM_CLRPGM        40
  3084. X
  3085. X#define LEFT_PLAYPGM        81
  3086. X#define RIGHT_PLAYPGM        96
  3087. X#define TOP_PLAYPGM        40
  3088. X#define BOTTOM_PLAYPGM        45
  3089. X
  3090. X#define LEFT_PGMSEQLBL        4
  3091. X#define RIGHT_PGMSEQLBL        79
  3092. X#define TOP_PGMSEQLBL        73
  3093. X#define BOTTOM_PGMSEQLBL    77
  3094. X
  3095. X#define LEFT_PGMSEQ        4
  3096. X#define RIGHT_PGMSEQ        79
  3097. X#define TOP_PGMSEQ        77
  3098. X#define BOTTOM_PGMSEQ        84
  3099. X
  3100. X#define LEFT_DBPROGSEP2        0
  3101. X#define RIGHT_DBPROGSEP2    100
  3102. X#define TOP_DBPROGSEP2        87
  3103. X
  3104. X#define LEFT_SAVEDB        6
  3105. X#define RIGHT_SAVEDB        25
  3106. X#define TOP_SAVEDB        91
  3107. X
  3108. X#define LEFT_LOADDB        29
  3109. X#define RIGHT_LOADDB        48
  3110. X#define TOP_LOADDB        91
  3111. X
  3112. X#define LEFT_LINK        52
  3113. X#define RIGHT_LINK        71
  3114. X#define TOP_LINK        91
  3115. X
  3116. X#define LEFT_DPCANCEL        75
  3117. X#define RIGHT_DPCANCEL        94
  3118. X#define TOP_DPCANCEL        91
  3119. X
  3120. X/* Disc Extended Info editor widgets */
  3121. X
  3122. X#define LEFT_DISCLBL        3
  3123. X#define RIGHT_DISCLBL        97
  3124. X#define TOP_DISCLBL        3
  3125. X#define BOTTOM_DISCLBL        8
  3126. X
  3127. X#define LEFT_EXTDTXT        3
  3128. X#define RIGHT_EXTDTXT        97
  3129. X#define TOP_EXTDTXT        10
  3130. X#define BOTTOM_EXTDTXT        80
  3131. X
  3132. X#define LEFT_DBEXTDSEP        0
  3133. X#define RIGHT_DBEXTDSEP        100
  3134. X#define TOP_DBEXTDSEP        84
  3135. X
  3136. X#define LEFT_DDOK        10
  3137. X#define RIGHT_DDOK        30
  3138. X#define TOP_DDOK        89
  3139. X
  3140. X#define LEFT_DDCLEAR        40
  3141. X#define RIGHT_DDCLEAR        60
  3142. X#define TOP_DDCLEAR        89
  3143. X
  3144. X#define LEFT_DDCANCEL        70
  3145. X#define RIGHT_DDCANCEL        90
  3146. X#define TOP_DDCANCEL        89
  3147. X
  3148. X/* Track Extended Info editor widgets */
  3149. X
  3150. X#define LEFT_TRKLBL        3
  3151. X#define RIGHT_TRKLBL        97
  3152. X#define TOP_TRKLBL        3
  3153. X#define BOTTOM_TRKLBL        8
  3154. X
  3155. X#define LEFT_EXTTTXT        3
  3156. X#define RIGHT_EXTTTXT        97
  3157. X#define TOP_EXTTTXT        10
  3158. X#define BOTTOM_EXTTTXT        80
  3159. X
  3160. X#define LEFT_DBEXTTSEP        0
  3161. X#define RIGHT_DBEXTTSEP        100
  3162. X#define TOP_DBEXTTSEP        84
  3163. X
  3164. X#define LEFT_DTOK        10
  3165. X#define RIGHT_DTOK        30
  3166. X#define TOP_DTOK        89
  3167. X
  3168. X#define LEFT_DTCLEAR        40
  3169. X#define RIGHT_DTCLEAR        60
  3170. X#define TOP_DTCLEAR        89
  3171. X
  3172. X#define LEFT_DTCANCEL        70
  3173. X#define RIGHT_DTCANCEL        90
  3174. X#define TOP_DTCANCEL        89
  3175. X
  3176. X/* Help popup widgets */
  3177. X
  3178. X#define LEFT_HELPTXT        3
  3179. X#define RIGHT_HELPTXT        97
  3180. X#define TOP_HELPTXT        5
  3181. X#define BOTTOM_HELPTXT        80
  3182. X
  3183. X#define LEFT_HELPSEP        0
  3184. X#define RIGHT_HELPSEP        100
  3185. X#define TOP_HELPSEP        84
  3186. X
  3187. X#define LEFT_HELPOK        40
  3188. X#define RIGHT_HELPOK        60
  3189. X#define TOP_HELPOK        89
  3190. X
  3191. X/* Directory selector popup widgets */
  3192. X
  3193. X#define LEFT_DIRLBL        4
  3194. X#define RIGHT_DIRLBL        96
  3195. X#define TOP_DIRLBL        4
  3196. X#define BOTTOM_DIRLBL        10
  3197. X
  3198. X#define LEFT_DIRLIST        4
  3199. X#define RIGHT_DIRLIST        96
  3200. X#define TOP_DIRLIST        14
  3201. X#define BOTTOM_DIRLIST        67
  3202. X
  3203. X#define LEFT_DIRSELSEP        0
  3204. X#define RIGHT_DIRSELSEP        100
  3205. X#define TOP_DIRSELSEP        74
  3206. X
  3207. X#define LEFT_DSOK        5
  3208. X#define RIGHT_DSOK        40
  3209. X#define TOP_DSOK        82
  3210. X
  3211. X#define LEFT_DSCANCEL        60
  3212. X#define RIGHT_DSCANCEL        95
  3213. X#define TOP_DSCANCEL        82
  3214. X
  3215. X/* Link selector popup widgets */
  3216. X
  3217. X#define LEFT_LINKLBL        3
  3218. X#define RIGHT_LINKLBL        97
  3219. X#define TOP_LINKLBL        4
  3220. X#define BOTTOM_LINKLBL        10
  3221. X
  3222. X#define LEFT_LINKLIST        3
  3223. X#define RIGHT_LINKLIST        97
  3224. X#define TOP_LINKLIST        14
  3225. X#define BOTTOM_LINKLIST        67
  3226. X
  3227. X#define LEFT_LINKSELSEP        0
  3228. X#define RIGHT_LINKSELSEP    100
  3229. X#define TOP_LINKSELSEP        74
  3230. X
  3231. X#define LEFT_LSOK        10
  3232. X#define RIGHT_LSOK        37
  3233. X#define TOP_LSOK        82
  3234. X
  3235. X#define LEFT_LSCANCEL        63
  3236. X#define RIGHT_LSCANCEL        90
  3237. X#define TOP_LSCANCEL        82
  3238. X
  3239. X
  3240. X/* Public function prototypes */
  3241. Xvoid        force_geometry(widgets_t *);
  3242. X
  3243. X#endif    /* __GEOMETRY_H__ */
  3244. X
  3245. END_OF_FILE
  3246. if test 10010 -ne `wc -c <'geometry.h'`; then
  3247.     echo shar: \"'geometry.h'\" unpacked with wrong size!
  3248. fi
  3249. # end of 'geometry.h'
  3250. fi
  3251. echo shar: End of archive 2 \(of 13\).
  3252. cp /dev/null ark2isdone
  3253. MISSING=""
  3254. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 ; do
  3255.     if test ! -f ark${I}isdone ; then
  3256.     MISSING="${MISSING} ${I}"
  3257.     fi
  3258. done
  3259. if test "${MISSING}" = "" ; then
  3260.     echo You have unpacked all 13 archives.
  3261.     echo "Now read the README and INSTALL files for further instructions."
  3262.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  3263. else
  3264.     echo You still need to unpack the following archives:
  3265.     echo "        " ${MISSING}
  3266. fi
  3267. ##  End of shell archive.
  3268. exit 0
  3269. -- 
  3270.     ///  Ti Kan                vorsprung durch technik
  3271.    ///   AMB Research Laboratories, Sunnyvale, CA. USA
  3272.   ///    ti@amb.org
  3273.  //////  ...!{decwrl,synopsys,tandem,tsoft,ultra}!sgiblab!bazooka!ti
  3274. ///      ...!uunet!bazooka!ti
  3275.  
  3276.  
  3277.  
  3278. exit 0 # Just in case...
  3279. -- 
  3280.   // chris@Sterling.COM           | Send comp.sources.x submissions to:
  3281. \X/  Amiga: The only way to fly!  |    sources-x@sterling.com
  3282.        "It's intuitively obvious to the most casual observer..."
  3283.  GCS d++(--) -p+ c++ !l u++ e+ m+(-) s++/++ n h--- f+ g+++ w+ t++ r+ y+
  3284.