home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / alt / sources / 2893 < prev    next >
Encoding:
Text File  |  1992-12-29  |  53.1 KB  |  1,560 lines

  1. Newsgroups: alt.sources
  2. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!eagle!sandman.lerc.nasa.gov!drich
  3. From: drich@sandman.lerc.nasa.gov (Daniel Rich)
  4. Subject: xcdplayer-2.2, Part (2/5) - X11 CD player for Sun and SGI
  5. Message-ID: <1992Dec28.225241.21643@eagle.lerc.nasa.gov>
  6. Sender: news@eagle.lerc.nasa.gov
  7. Nntp-Posting-Host: sandman.lerc.nasa.gov
  8. Organization: NASA Lewis Research Center
  9. Date: Mon, 28 Dec 1992 22:52:41 GMT
  10. Lines: 1548
  11.  
  12. Submitted-by: drich@lerc.nasa.gov
  13. Archive-name: xcdplayer-2.2/part02
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then unpack
  17. # it by saving it into a file and typing "sh file".  To overwrite existing
  18. # files, type "sh file -c".  You can also feed this as standard input via
  19. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  20. # will see the following message at the end:
  21. #        "End of archive 2 (of 5)."
  22. # Contents:  xcdplayer-2.2/README xcdplayer-2.2/XCdplayer.ad
  23. #   xcdplayer-2.2/XCdplayer.ad.sgi xcdplayer-2.2/XCdplayer.ad.sun
  24. #   xcdplayer-2.2/cdgrab.c xcdplayer-2.2/cdinfo.c
  25. #   xcdplayer-2.2/xcdplayer.1
  26. # Wrapped by drich@sandman on Mon Dec 28 17:30:37 1992
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -d 'xcdplayer-2.2' ; then
  29. :
  30. else
  31.   mkdir xcdplayer-2.2
  32. fi
  33. if test -f 'xcdplayer-2.2/README' -a "${1}" != "-c" ; then 
  34.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/README'\"
  35. else
  36. echo shar: Extracting \"'xcdplayer-2.2/README'\" \(7017 characters\)
  37. sed "s/^X//" >'xcdplayer-2.2/README' <<'END_OF_FILE'
  38. XTo compile and install this on Sun or SGI, you only need to type:
  39. X    xmkmf
  40. X    make depend
  41. X    make
  42. XAnd, if all went well, copy the appropriate XCdplayer.ad.* file to 
  43. XXCdplayer.ad (some day, this will get added to the Imakefile) and type:
  44. X    make install
  45. X
  46. XIf you don't have Imake, then you will need to hack the Makefile.  The
  47. Xone provided should work fine on an SGI.
  48. X
  49. XPlease send any problems/questions/bug-reports to drich@lerc.nasa.gov.
  50. X
  51. XBrought to you by:
  52. X    drich@lerc.nasa.gov
  53. X    wsadkin@bbn.com
  54. X    rusty@belch.berkeley.edu
  55. X
  56. XNOTE FOR PEOPLE WHO WONDER WHY NONE OF THE BUTTONS SHOW UP WHEN THEY
  57. XSTART XCDPLAYER: You forgot to do a "make install" so that the
  58. XXCdplayer.ad file gets installed in the application defaults directory
  59. X(e.g., /usr/local/x11r4/lib/app-defaults).  If you can't install files
  60. Xin the application defaults directory you can copy XCdplayer.ad to
  61. X~/XCdplayer and have a go at it.
  62. X
  63. X**** Coming in version 3.0 (I hope... :-))
  64. X
  65. Xo Track titles
  66. Xo New programming interface (as yet to be defined)
  67. Xo Single file/database for track and program information
  68. X
  69. X**** Wish List
  70. X
  71. Xo Motif support (I would like to see 3-D buttons (drich))
  72. Xo Merging of all of the button callbacks to eliminate redundant code
  73. X
  74. X**** Work in progress
  75. X
  76. Xo Record button (will be in the next release)
  77. X
  78. X**** Version history
  79. X
  80. XFri Oct  2 08:29:08 EDT 1992 - version 2.2
  81. X+ Fixes from Dan Rich (drich@lerc.nasa.gov) to:
  82. X  Added support for SGI systems (IRIX 4.0.2 and greater only!), including 
  83. X  the ability to play through the audio port. 
  84. X
  85. X+ You can now hit return from the disc title dialog to enter the title.
  86. X
  87. X+ Added a set of color defaults to make the application look more decorative.
  88. X
  89. X+ It will now detect a new disc being inserted into the CDROM drive.
  90. X
  91. X+ Added new timer button feature.  Clicking when disc is stopped displays
  92. X  time on entire disc.
  93. X
  94. X+ Ff and rewind will skip 15 seconds when the disc is paused instead of
  95. X  the usual 3.
  96. X
  97. X+ Misc. bug fixes and code adjustments.
  98. X
  99. X
  100. XMon Sep 28 18:58:25 EDT 1992
  101. XFixes from Will Sadkin (wsadkin@bbn.com) to: 
  102. X+ set up volume scrollbar color properly on color Suns. 
  103. X
  104. XMon Feb  2 13:58:00 EDT 1991
  105. XFixes from Will Sadkin (wsadkin@bbn.com) to: 
  106. X
  107. X+ fixed prev track button to go back to beginning of current track if more
  108. X  than replayThreshold seconds have played, else go to previous track.
  109. X  (1 resource added for this)
  110. X
  111. X+ fixed timing model to reflect "true" elapsed time
  112. X
  113. X+ fixed volume scrollbar display to be more intuitive, and to set volume to 3/4
  114. X  on start-up (can't currently set to current level, as no query for volume 
  115. X  level is provided in the driver), and modified scroll procs to use volbase
  116. X  and volpcent.
  117. X
  118. X+ added true fast-forward & rewind ("repeating" buttons)
  119. X  (2 resources added to control scan skip and pause rate;
  120. X   additional resources for placement and attributes)
  121. X
  122. X+ added title button and edit panel
  123. X  (additional resources for placement and attributes)
  124. X
  125. X+ added program mode, complete with "popup" subpanel program editing, 
  126. X  program display, and save functions 
  127. X  (command line option (and personalizable resource) added to specify 
  128. X   program/title store directory)
  129. X  (additional resources for placement and attributes)
  130. X
  131. X+ changed timer label to toggle button to show time remaining and/or program 
  132. X  time remaining (depending on context)
  133. X
  134. X+ made the icon = the cd logo; (NOTE: code does NOT follow conventions for 
  135. X  accomodating all window managers; probably just works for twm)
  136. X
  137. X+ added man page
  138. X
  139. X
  140. XTue Jul 16 19:47:01 PDT 1991
  141. X
  142. XNo changes or additions, just added a TODO file.
  143. X
  144. XMon Jul  1 14:31:17 PDT 1991
  145. X
  146. XFixes from Dan Trottier (dan@maccs.dcss.McMaster.CA) so that the
  147. Xvolume control works reasonably.  This adds 2 new resources, volBase
  148. Xand volPcent.  Both are floats.  There are also command line options
  149. X-volBase and -volPcent.  Reasonable values (also from Dan) are 187 for
  150. XvolBase and 0.267 for volPcent.
  151. X
  152. XMon Mar 11 18:24:36 PST 1991
  153. X
  154. XThe track label is now a toggle button.  If you have trackLabel in
  155. Xyour .xrdb, .Xdefaults, or whatever file you'll need to change it to
  156. XtrackButton.  When you click mouse button 1 on the track it displays
  157. Xthe highest track and when you release the mouse button it reverts
  158. Xback to the current track.  Also moved the specification of the toggle
  159. Xbuttons' translations from the C code to the application defaults
  160. Xfile.
  161. X
  162. XTue Mar  5 17:56:30 PST 1991
  163. X
  164. XThe rewind button now works with shuffle; it goes back to the previous
  165. Xtrack that it played.
  166. X
  167. XMon Mar  4 18:14:22 PST 1991
  168. X
  169. XFixed a bug in the shuffle code.
  170. X
  171. XWed Feb 20 20:22:26 PST 1991
  172. X
  173. XAdded a volume control scrollbar.  I don't find it very useful since
  174. Xvisually small movements of it cause large changes in volume; about
  175. Xonly the upper 10% is useful.  You can directly set the volume with
  176. Xthe middle mouse button; it "grabs" the scrollbar and moves it to
  177. Xwherever the mouse is.  The left and right mouse buttons make the
  178. Xscrollbar move in increments each time you click them.  The left mouse
  179. Xbutton bumps it to the left and the right mouse button bumps it to the
  180. Xright.  The amount they bump by is determined by where the mouse is in
  181. Xthe scrollbar; the more to the right the mouse is the more they bump
  182. Xit.  (If anybody knows how to make the Athena form widget do a better
  183. Xlayout please tell me.)
  184. X
  185. XTue Jan 29 15:44:02 PST 1991
  186. X
  187. XThe shuffle button now works.  If shuffle is off it can only be turned
  188. Xon if the cd is stopped, not while it is playing or paused.  If
  189. Xshuffle is on it can be turned off while the cd is playing but due to
  190. Xthe way things work it will skip over the next track.  In other words,
  191. Xif shuffle is on and it's playing track 3, you then click on the
  192. Xshuffle button, when it finishes track 3 it will start playing track
  193. X5.  If anybody has a better pixmap for the shuffle button please send
  194. Xit to me.
  195. X
  196. XThu Jan 24 19:41:43 PST 1991
  197. X
  198. XFor those that don't recognize the buttons; first row, from left to
  199. Xright: play (right arrow), pause (two vertical bars), stop (square),
  200. Xrewind (two left arrows with a bar on the tip), fast forward (two
  201. Xright arrows with a bar on the tip), eject (up arrow with a bar
  202. Xunderneath).  (Fast forward and rewind are misnomers, they only skip
  203. Xto the next or previous track.)  The second row, from left to right:
  204. Xquit (bolt of lightning), repeat (two arrows chasing each other),
  205. Xshuffle (three question marks).  Shuffle currently doesn't do
  206. Xanything.
  207. X
  208. XThe standard button bitmaps (play, stop, etc.) came from an X program
  209. Xfor playing SPARC audio files; I think its name may have been xplayer.
  210. XI think I may have modified some of them; made them thicker or adjusted
  211. Xthem in minor ways.
  212. X
  213. XMon Jan  7 20:11:09 PST 1991
  214. X
  215. XAfter you eject a disc and then insert another one, click on the stop
  216. Xbutton to make it read the disc's table of contents.
  217. X
  218. XFri Jan  4 13:49:28 PST 1991
  219. X
  220. XThis is a minimal program to control the CD-ROM drive on a Sun
  221. Xworkstation for playing audio discs and using the headphone jacks.
  222. XIt's not likely to compile on any other OS or anything prior to SunOS
  223. X4.1 due to the ioctl's for the Sun CD-ROM drive.
  224. END_OF_FILE
  225. if test 7017 -ne `wc -c <'xcdplayer-2.2/README'`; then
  226.     echo shar: \"'xcdplayer-2.2/README'\" unpacked with wrong size!
  227. fi
  228. # end of 'xcdplayer-2.2/README'
  229. fi
  230. if test -f 'xcdplayer-2.2/XCdplayer.ad' -a "${1}" != "-c" ; then 
  231.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/XCdplayer.ad'\"
  232. else
  233. echo shar: Extracting \"'xcdplayer-2.2/XCdplayer.ad'\" \(8272 characters\)
  234. sed "s/^X//" >'xcdplayer-2.2/XCdplayer.ad' <<'END_OF_FILE'
  235. X! Copyright (C) 1990 Regents of the University of California.
  236. X! Permission to use, copy, modify, distribute, and sell this software and
  237. X! its documentation for any purpose is hereby granted without fee,
  238. X! provided that the above copyright notice appear in all copies and that
  239. X! both that copyright notice and this permission notice appear in
  240. X! supporting documentation, and that the name of the University of
  241. X! California not be used in advertising or publicity pertaining to
  242. X! distribution of the software without specific, written prior
  243. X! permission.  the University of California makes no representations
  244. X! about the suitability of this software for any purpose.  It is provided
  245. X! "as is" without express or implied warranty.
  246. X
  247. XXCdplayer*foreground:            Blue
  248. XXCdplayer*background:            LightGrey
  249. XXCdplayer*borderColor:            Black
  250. XXCdplayer*allowShellResize:        True
  251. XXCdplayer*resizable:            True
  252. XXCdplayer*Font:                -misc-fixed-bold-r-normal--13-*
  253. X
  254. XXCdplayer*logoLabel.foreground:        Gold
  255. XXCdplayer*logoLabel.background:        Black
  256. XXCdplayer*icon*foreground:    Gold
  257. X
  258. XXCdplayer*versionLabel.Font:         -misc-fixed-medium-r-normal--8-*
  259. XXCdplayer*versionLabel.foreground:    Black
  260. XXCdplayer*versionLabel.width:        130
  261. XXCdplayer*versionLabel.fromHoriz:    logoLabel
  262. X
  263. X! replayThreshold is the number of seconds that must be played before the
  264. X! previous track button will take you back to the beginning of the current
  265. X! track, rather than the previous one.
  266. XXCdplayer*replayThreshold:        4
  267. X
  268. X! scanSkipInterval is the number of seconds skipped at each fast-forward or
  269. X! reverse.
  270. XXCdplayer*scanSkipInterval:        3
  271. X! pauseSkipInterval is the number of seconds skipped at each fast-forward or
  272. X! reverse if the CD is paused.
  273. XXCdplayer*pauseSkipInterval:        15
  274. X
  275. X! scanPauseInterval is the number of seconds between each fast_forward or
  276. X! reverse while holding down the buttons. (Sun CDs have a dreadfully long
  277. X! start-up time for the audio to actually become audible, so "hearing the
  278. X! track" while scanning isn't very feasible.)
  279. XXCdplayer*scanPauseInterval:        0.062
  280. X! pausePauseInterval does the same thing when the disc is paused.
  281. XXCdplayer*pausePauseInterval:        0.5
  282. X
  283. X! cdInfoDir is the directory to search for stored data about discs.
  284. X! NOTE: this must currently be a fully specified path (ie no '~'s, 
  285. X! environment vars, etc.  This should only be set if you are using a local
  286. X! copy of the application defaults.  The command line option -cdInfoDir <path>
  287. X! is provided for overriding the default path (null (= current dir))
  288. X!XCdplayer*cdInfoDir:            eg:   /usr/staff/yourname/CDs
  289. X
  290. XXCdplayer*Viewport.allowHoriz:        True
  291. XXCdplayer*Viewport.useBottom:        True
  292. XXCdplayer*Viewport.forceBars:        False
  293. XXCdplayer*Viewport.width:        188
  294. XXCdplayer*Viewport.height:        30
  295. XXCdplayer*Viewport*thickness:        8
  296. XXCdplayer*Viewport.resizable:        False
  297. X
  298. XXCdplayer*Form.defaultDistance:        1
  299. XXCdplayer*Form.internalHeight:        0
  300. XXCdplayer*Form.internalWidth:        0
  301. XXCdplayer*Form.borderWidth:        0
  302. X
  303. XXCdplayer*Label.internalHeight:        0
  304. XXCdplayer*Label.internalWidth:        0
  305. XXCdplayer*Label.borderWidth:        0
  306. XXCdplayer*Label.top:            ChainTop
  307. XXCdplayer*Label.bottom:            ChainTop
  308. XXCdplayer*Label.left:            ChainLeft
  309. XXCdplayer*Label.right:            ChainLeft
  310. X
  311. XXCdplayer*Command.background:        Ivory
  312. XXCdplayer*Text.background:        Ivory
  313. XXCdplayer*AsciiSink.background:        Ivory
  314. XXCdplayer*AsciiSink.foreground:        Red
  315. XXCdplayer*Scrollbar.foreground:        White
  316. XXCdplayer*Scrollbar.background:        Gold
  317. X
  318. XXCdplayer*Toggle.borderWidth:        1
  319. XXCdplayer*Toggle.top:            ChainTop
  320. XXCdplayer*Toggle.bottom:        ChainTop
  321. XXCdplayer*Toggle.left:            ChainLeft
  322. XXCdplayer*Toggle.right:            ChainLeft
  323. XXCdplayer*Toggle.background:        Ivory
  324. X
  325. XXCdplayer*ledsLabel.horizDistance:    20
  326. XXCdplayer*ledsLabel.fromVert:        versionLabel
  327. XXCdplayer*ledsLabel.fromHoriz:        logoLabel
  328. X
  329. XXCdplayer*trackButton.horizDistance:    8
  330. XXCdplayer*trackButton.fromVert:        versionLabel
  331. XXCdplayer*trackButton.fromHoriz:    ledsLabel
  332. XXCdplayer*trackButton.borderWidth:    2
  333. XXCdplayer*trackButton.internalHeight:    4
  334. XXCdplayer*trackButton.internalWidth:    4
  335. X
  336. XXCdplayer*timerButton.borderWidth:    2
  337. XXCdplayer*timerButton.internalHeight:    4
  338. XXCdplayer*timerButton.internalWidth:    4
  339. XXCdplayer*timerButton.horizDistance:    2
  340. XXCdplayer*timerButton.fromVert:        versionLabel
  341. XXCdplayer*timerButton.fromHoriz:    trackButton
  342. XXCdplayer*timerButton.left:        ChainRight
  343. XXCdplayer*timerButton.right:        ChainRight
  344. X
  345. XXCdplayer*volumeScrollbar.horizDistance:8
  346. XXCdplayer*volumeScrollbar.fromHoriz:    logoLabel
  347. XXCdplayer*volumeScrollbar.fromVert:    trackButton
  348. XXCdplayer*volumeScrollbar.orientation:    horizontal
  349. XXCdplayer*volumeScrollbar.length:    120
  350. XXCdplayer*volumeScrollbar.right:    ChainRight
  351. XXCdplayer*volumeScrollbar.left:        ChainRight
  352. XXCdplayer*volumeScrollbar.background:    green
  353. XXCdplayer*volumeScrollbar.foreground:    white
  354. XXCdplayer*volumeScrollbar.thumb:    black
  355. X
  356. XXCdplayer*titleBarViewport.fromVert:    volumeScrollbar
  357. XXCdplayer*titleBarViewport.forceBars:    true
  358. XXCdplayer*titleBar.borderwidth:        0
  359. XXCdplayer*titleBar.highlightThickness:    1
  360. XXCdplayer*titleBar.foreground:        Red
  361. XXCdplayer*titleBar.background:        Ivory
  362. X
  363. XXCdplayer*titleDialog.Text.translations:#override\
  364. X    <Key>Return:    done()
  365. X
  366. XXCdplayer*buttonsForm.fromVert:        logoForm
  367. XXCdplayer*buttonsForm.borderWidth:    1
  368. X
  369. XXCdplayer*pauseButton.fromHoriz:    playButton
  370. XXCdplayer*stopButton.fromHoriz:        pauseButton
  371. XXCdplayer*prevButton.fromHoriz:        stopButton
  372. XXCdplayer*nextButton.fromHoriz:        prevButton
  373. XXCdplayer*ejectButton.fromHoriz:    nextButton
  374. XXCdplayer*audioButton.fromHoriz:    ejectButton
  375. X
  376. XXCdplayer*quitButton.fromVert:        playButton
  377. XXCdplayer*cycleButton.fromVert:        playButton
  378. XXCdplayer*cycleButton.fromHoriz:    quitButton
  379. XXCdplayer*shuffleButton.fromVert:    playButton
  380. XXCdplayer*shuffleButton.fromHoriz:    cycleButton
  381. XXCdplayer*rewButton.fromVert:        playButton
  382. XXCdplayer*rewButton.fromHoriz:        shuffleButton
  383. XXCdplayer*ffButton.fromVert:        playButton
  384. XXCdplayer*ffButton.fromHoriz:        rewButton
  385. XXCdplayer*pgmButton.fromVert:        playButton
  386. XXCdplayer*pgmButton.fromHoriz:        ffButton
  387. X
  388. XXCdplayer*stopButton.radioGroup:    playButton
  389. XXCdplayer*ejectButton.radioGroup:    playButton
  390. XXCdplayer*programForm.fromVert:        buttonsForm
  391. XXCdplayer*programForm.borderWidth:    1
  392. X
  393. XXCdplayer*programDisplayViewport.forceBars:    True
  394. X
  395. XXCdplayer*programDisplayForm.background:        Black
  396. XXCdplayer*programDisplayForm*Toggle.background:        Black
  397. XXCdplayer*programDisplayForm*Toggle.foreground:        White
  398. XXCdplayer*programDisplayForm*Toggle.borderWidth:    0
  399. XXCdplayer*programDisplayForm*Toggle.highlightThickness:    0
  400. XXCdplayer*programDisplayForm*Toggle.internalWidth:    0
  401. XXCdplayer*programDisplayForm*Toggle.defaultDistance:    0
  402. X
  403. XXCdplayer*programDisplayForm*Toggle.translations: <EnterWindow>:  highlight(Always) \n\
  404. X                    <LeaveWindow>:  unhighlight() \n\
  405. X                    <Btn1Down>,<Btn1Up>:    set() notify()
  406. X
  407. X
  408. XXCdplayer*trackButton.translations:    #override \
  409. X                    <EnterWindow>:    highlight(Always) \n\
  410. X                    <LeaveWindow>:    unhighlight() \n\
  411. X                    <Btn1Down>:    set() notify() \n\
  412. X                    <Btn1Up>:    reset() notify()
  413. X
  414. XXCdplayer*playButton.translations:    <EnterWindow>:    highlight(Always) \n\
  415. X                    <LeaveWindow>:    unhighlight() \n\
  416. X                    <Btn1Down>:    set() notify()
  417. X
  418. XXCdplayer*stopButton.translations:    <EnterWindow>:    highlight(Always) \n\
  419. X                    <LeaveWindow>:    unhighlight() \n\
  420. X                    <Btn1Down>:    set() notify()
  421. X
  422. XXCdplayer*ejectButton.translations:    <EnterWindow>:    highlight(Always) \n\
  423. X                    <LeaveWindow>:    unhighlight() \n\
  424. X                    <Btn1Down>:    set() notify()
  425. X
  426. XXCdplayer*audioButton.translations:    <EnterWindow>:    highlight(Always) \n\
  427. X                    <LeaveWindow>:    unhighlight() \n\
  428. X                    <Btn1Down>:    set() notify()
  429. X
  430. XXCdplayer*prevButton.translations:    <EnterWindow>:    highlight(Always) \n\
  431. X                    <LeaveWindow>:    unhighlight() \n\
  432. X                    <Btn1Down>:    set() notify() \n\
  433. X                    <Btn1Up>:    unset()
  434. X
  435. XXCdplayer*nextButton.translations:    <EnterWindow>:    highlight(Always) \n\
  436. X                    <LeaveWindow>:    unhighlight() \n\
  437. X                    <Btn1Down>:    set() notify() \n\
  438. X                    <Btn1Up>:    unset()
  439. X
  440. XXCdplayer*rewButton.translations:    <EnterWindow>:    highlight(Always) \n\
  441. X                    <LeaveWindow>:    unhighlight() \n\
  442. X                    <Btn1Down>:    set() notify() \n\
  443. X                    <Btn1Up>:    unset()
  444. X
  445. XXCdplayer*ffButton.translations:    <EnterWindow>:    highlight(Always) \n\
  446. X                    <LeaveWindow>:    unhighlight() \n\
  447. X                    <Btn1Down>:    set() notify() \n\
  448. X                    <Btn1Up>:    unset()
  449. X
  450. XXCdplayer*pgmButton.translations:    #override \
  451. X                    <EnterWindow>:    highlight(Always) \n\
  452. X                    <LeaveWindow>:    unhighlight() \n\
  453. X                    <Btn1Down>:    set() notify() \n
  454. X                    <Btn1Up>:    reset notify
  455. END_OF_FILE
  456. if test 8272 -ne `wc -c <'xcdplayer-2.2/XCdplayer.ad'`; then
  457.     echo shar: \"'xcdplayer-2.2/XCdplayer.ad'\" unpacked with wrong size!
  458. fi
  459. # end of 'xcdplayer-2.2/XCdplayer.ad'
  460. fi
  461. if test -f 'xcdplayer-2.2/XCdplayer.ad.sgi' -a "${1}" != "-c" ; then 
  462.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/XCdplayer.ad.sgi'\"
  463. else
  464. echo shar: Extracting \"'xcdplayer-2.2/XCdplayer.ad.sgi'\" \(8272 characters\)
  465. sed "s/^X//" >'xcdplayer-2.2/XCdplayer.ad.sgi' <<'END_OF_FILE'
  466. X! Copyright (C) 1990 Regents of the University of California.
  467. X! Permission to use, copy, modify, distribute, and sell this software and
  468. X! its documentation for any purpose is hereby granted without fee,
  469. X! provided that the above copyright notice appear in all copies and that
  470. X! both that copyright notice and this permission notice appear in
  471. X! supporting documentation, and that the name of the University of
  472. X! California not be used in advertising or publicity pertaining to
  473. X! distribution of the software without specific, written prior
  474. X! permission.  the University of California makes no representations
  475. X! about the suitability of this software for any purpose.  It is provided
  476. X! "as is" without express or implied warranty.
  477. X
  478. XXCdplayer*foreground:            Blue
  479. XXCdplayer*background:            LightGrey
  480. XXCdplayer*borderColor:            Black
  481. XXCdplayer*allowShellResize:        True
  482. XXCdplayer*resizable:            True
  483. XXCdplayer*Font:                -misc-fixed-bold-r-normal--13-*
  484. X
  485. XXCdplayer*logoLabel.foreground:        Gold
  486. XXCdplayer*logoLabel.background:        Black
  487. XXCdplayer*icon*foreground:    Gold
  488. X
  489. XXCdplayer*versionLabel.Font:         -misc-fixed-medium-r-normal--8-*
  490. XXCdplayer*versionLabel.foreground:    Black
  491. XXCdplayer*versionLabel.width:        130
  492. XXCdplayer*versionLabel.fromHoriz:    logoLabel
  493. X
  494. X! replayThreshold is the number of seconds that must be played before the
  495. X! previous track button will take you back to the beginning of the current
  496. X! track, rather than the previous one.
  497. XXCdplayer*replayThreshold:        4
  498. X
  499. X! scanSkipInterval is the number of seconds skipped at each fast-forward or
  500. X! reverse.
  501. XXCdplayer*scanSkipInterval:        3
  502. X! pauseSkipInterval is the number of seconds skipped at each fast-forward or
  503. X! reverse if the CD is paused.
  504. XXCdplayer*pauseSkipInterval:        15
  505. X
  506. X! scanPauseInterval is the number of seconds between each fast_forward or
  507. X! reverse while holding down the buttons. (Sun CDs have a dreadfully long
  508. X! start-up time for the audio to actually become audible, so "hearing the
  509. X! track" while scanning isn't very feasible.)
  510. XXCdplayer*scanPauseInterval:        0.062
  511. X! pausePauseInterval does the same thing when the disc is paused.
  512. XXCdplayer*pausePauseInterval:        0.5
  513. X
  514. X! cdInfoDir is the directory to search for stored data about discs.
  515. X! NOTE: this must currently be a fully specified path (ie no '~'s, 
  516. X! environment vars, etc.  This should only be set if you are using a local
  517. X! copy of the application defaults.  The command line option -cdInfoDir <path>
  518. X! is provided for overriding the default path (null (= current dir))
  519. X!XCdplayer*cdInfoDir:            eg:   /usr/staff/yourname/CDs
  520. X
  521. XXCdplayer*Viewport.allowHoriz:        True
  522. XXCdplayer*Viewport.useBottom:        True
  523. XXCdplayer*Viewport.forceBars:        False
  524. XXCdplayer*Viewport.width:        188
  525. XXCdplayer*Viewport.height:        30
  526. XXCdplayer*Viewport*thickness:        8
  527. XXCdplayer*Viewport.resizable:        False
  528. X
  529. XXCdplayer*Form.defaultDistance:        1
  530. XXCdplayer*Form.internalHeight:        0
  531. XXCdplayer*Form.internalWidth:        0
  532. XXCdplayer*Form.borderWidth:        0
  533. X
  534. XXCdplayer*Label.internalHeight:        0
  535. XXCdplayer*Label.internalWidth:        0
  536. XXCdplayer*Label.borderWidth:        0
  537. XXCdplayer*Label.top:            ChainTop
  538. XXCdplayer*Label.bottom:            ChainTop
  539. XXCdplayer*Label.left:            ChainLeft
  540. XXCdplayer*Label.right:            ChainLeft
  541. X
  542. XXCdplayer*Command.background:        Ivory
  543. XXCdplayer*Text.background:        Ivory
  544. XXCdplayer*AsciiSink.background:        Ivory
  545. XXCdplayer*AsciiSink.foreground:        Red
  546. XXCdplayer*Scrollbar.foreground:        White
  547. XXCdplayer*Scrollbar.background:        Gold
  548. X
  549. XXCdplayer*Toggle.borderWidth:        1
  550. XXCdplayer*Toggle.top:            ChainTop
  551. XXCdplayer*Toggle.bottom:        ChainTop
  552. XXCdplayer*Toggle.left:            ChainLeft
  553. XXCdplayer*Toggle.right:            ChainLeft
  554. XXCdplayer*Toggle.background:        Ivory
  555. X
  556. XXCdplayer*ledsLabel.horizDistance:    20
  557. XXCdplayer*ledsLabel.fromVert:        versionLabel
  558. XXCdplayer*ledsLabel.fromHoriz:        logoLabel
  559. X
  560. XXCdplayer*trackButton.horizDistance:    8
  561. XXCdplayer*trackButton.fromVert:        versionLabel
  562. XXCdplayer*trackButton.fromHoriz:    ledsLabel
  563. XXCdplayer*trackButton.borderWidth:    2
  564. XXCdplayer*trackButton.internalHeight:    4
  565. XXCdplayer*trackButton.internalWidth:    4
  566. X
  567. XXCdplayer*timerButton.borderWidth:    2
  568. XXCdplayer*timerButton.internalHeight:    4
  569. XXCdplayer*timerButton.internalWidth:    4
  570. XXCdplayer*timerButton.horizDistance:    2
  571. XXCdplayer*timerButton.fromVert:        versionLabel
  572. XXCdplayer*timerButton.fromHoriz:    trackButton
  573. XXCdplayer*timerButton.left:        ChainRight
  574. XXCdplayer*timerButton.right:        ChainRight
  575. X
  576. XXCdplayer*volumeScrollbar.horizDistance:8
  577. XXCdplayer*volumeScrollbar.fromHoriz:    logoLabel
  578. XXCdplayer*volumeScrollbar.fromVert:    trackButton
  579. XXCdplayer*volumeScrollbar.orientation:    horizontal
  580. XXCdplayer*volumeScrollbar.length:    120
  581. XXCdplayer*volumeScrollbar.right:    ChainRight
  582. XXCdplayer*volumeScrollbar.left:        ChainRight
  583. XXCdplayer*volumeScrollbar.background:    green
  584. XXCdplayer*volumeScrollbar.foreground:    white
  585. XXCdplayer*volumeScrollbar.thumb:    black
  586. X
  587. XXCdplayer*titleBarViewport.fromVert:    volumeScrollbar
  588. XXCdplayer*titleBarViewport.forceBars:    true
  589. XXCdplayer*titleBar.borderwidth:        0
  590. XXCdplayer*titleBar.highlightThickness:    1
  591. XXCdplayer*titleBar.foreground:        Red
  592. XXCdplayer*titleBar.background:        Ivory
  593. X
  594. XXCdplayer*titleDialog.Text.translations:#override\
  595. X    <Key>Return:    done()
  596. X
  597. XXCdplayer*buttonsForm.fromVert:        logoForm
  598. XXCdplayer*buttonsForm.borderWidth:    1
  599. X
  600. XXCdplayer*pauseButton.fromHoriz:    playButton
  601. XXCdplayer*stopButton.fromHoriz:        pauseButton
  602. XXCdplayer*prevButton.fromHoriz:        stopButton
  603. XXCdplayer*nextButton.fromHoriz:        prevButton
  604. XXCdplayer*ejectButton.fromHoriz:    nextButton
  605. XXCdplayer*audioButton.fromHoriz:    ejectButton
  606. X
  607. XXCdplayer*quitButton.fromVert:        playButton
  608. XXCdplayer*cycleButton.fromVert:        playButton
  609. XXCdplayer*cycleButton.fromHoriz:    quitButton
  610. XXCdplayer*shuffleButton.fromVert:    playButton
  611. XXCdplayer*shuffleButton.fromHoriz:    cycleButton
  612. XXCdplayer*rewButton.fromVert:        playButton
  613. XXCdplayer*rewButton.fromHoriz:        shuffleButton
  614. XXCdplayer*ffButton.fromVert:        playButton
  615. XXCdplayer*ffButton.fromHoriz:        rewButton
  616. XXCdplayer*pgmButton.fromVert:        playButton
  617. XXCdplayer*pgmButton.fromHoriz:        ffButton
  618. X
  619. XXCdplayer*stopButton.radioGroup:    playButton
  620. XXCdplayer*ejectButton.radioGroup:    playButton
  621. XXCdplayer*programForm.fromVert:        buttonsForm
  622. XXCdplayer*programForm.borderWidth:    1
  623. X
  624. XXCdplayer*programDisplayViewport.forceBars:    True
  625. X
  626. XXCdplayer*programDisplayForm.background:        Black
  627. XXCdplayer*programDisplayForm*Toggle.background:        Black
  628. XXCdplayer*programDisplayForm*Toggle.foreground:        White
  629. XXCdplayer*programDisplayForm*Toggle.borderWidth:    0
  630. XXCdplayer*programDisplayForm*Toggle.highlightThickness:    0
  631. XXCdplayer*programDisplayForm*Toggle.internalWidth:    0
  632. XXCdplayer*programDisplayForm*Toggle.defaultDistance:    0
  633. X
  634. XXCdplayer*programDisplayForm*Toggle.translations: <EnterWindow>:  highlight(Always) \n\
  635. X                    <LeaveWindow>:  unhighlight() \n\
  636. X                    <Btn1Down>,<Btn1Up>:    set() notify()
  637. X
  638. X
  639. XXCdplayer*trackButton.translations:    #override \
  640. X                    <EnterWindow>:    highlight(Always) \n\
  641. X                    <LeaveWindow>:    unhighlight() \n\
  642. X                    <Btn1Down>:    set() notify() \n\
  643. X                    <Btn1Up>:    reset() notify()
  644. X
  645. XXCdplayer*playButton.translations:    <EnterWindow>:    highlight(Always) \n\
  646. X                    <LeaveWindow>:    unhighlight() \n\
  647. X                    <Btn1Down>:    set() notify()
  648. X
  649. XXCdplayer*stopButton.translations:    <EnterWindow>:    highlight(Always) \n\
  650. X                    <LeaveWindow>:    unhighlight() \n\
  651. X                    <Btn1Down>:    set() notify()
  652. X
  653. XXCdplayer*ejectButton.translations:    <EnterWindow>:    highlight(Always) \n\
  654. X                    <LeaveWindow>:    unhighlight() \n\
  655. X                    <Btn1Down>:    set() notify()
  656. X
  657. XXCdplayer*audioButton.translations:    <EnterWindow>:    highlight(Always) \n\
  658. X                    <LeaveWindow>:    unhighlight() \n\
  659. X                    <Btn1Down>:    set() notify()
  660. X
  661. XXCdplayer*prevButton.translations:    <EnterWindow>:    highlight(Always) \n\
  662. X                    <LeaveWindow>:    unhighlight() \n\
  663. X                    <Btn1Down>:    set() notify() \n\
  664. X                    <Btn1Up>:    unset()
  665. X
  666. XXCdplayer*nextButton.translations:    <EnterWindow>:    highlight(Always) \n\
  667. X                    <LeaveWindow>:    unhighlight() \n\
  668. X                    <Btn1Down>:    set() notify() \n\
  669. X                    <Btn1Up>:    unset()
  670. X
  671. XXCdplayer*rewButton.translations:    <EnterWindow>:    highlight(Always) \n\
  672. X                    <LeaveWindow>:    unhighlight() \n\
  673. X                    <Btn1Down>:    set() notify() \n\
  674. X                    <Btn1Up>:    unset()
  675. X
  676. XXCdplayer*ffButton.translations:    <EnterWindow>:    highlight(Always) \n\
  677. X                    <LeaveWindow>:    unhighlight() \n\
  678. X                    <Btn1Down>:    set() notify() \n\
  679. X                    <Btn1Up>:    unset()
  680. X
  681. XXCdplayer*pgmButton.translations:    #override \
  682. X                    <EnterWindow>:    highlight(Always) \n\
  683. X                    <LeaveWindow>:    unhighlight() \n\
  684. X                    <Btn1Down>:    set() notify() \n
  685. X                    <Btn1Up>:    reset notify
  686. END_OF_FILE
  687. if test 8272 -ne `wc -c <'xcdplayer-2.2/XCdplayer.ad.sgi'`; then
  688.     echo shar: \"'xcdplayer-2.2/XCdplayer.ad.sgi'\" unpacked with wrong size!
  689. fi
  690. # end of 'xcdplayer-2.2/XCdplayer.ad.sgi'
  691. fi
  692. if test -f 'xcdplayer-2.2/XCdplayer.ad.sun' -a "${1}" != "-c" ; then 
  693.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/XCdplayer.ad.sun'\"
  694. else
  695. echo shar: Extracting \"'xcdplayer-2.2/XCdplayer.ad.sun'\" \(8082 characters\)
  696. sed "s/^X//" >'xcdplayer-2.2/XCdplayer.ad.sun' <<'END_OF_FILE'
  697. X! Copyright (C) 1990 Regents of the University of California.
  698. X! Permission to use, copy, modify, distribute, and sell this software and
  699. X! its documentation for any purpose is hereby granted without fee,
  700. X! provided that the above copyright notice appear in all copies and that
  701. X! both that copyright notice and this permission notice appear in
  702. X! supporting documentation, and that the name of the University of
  703. X! California not be used in advertising or publicity pertaining to
  704. X! distribution of the software without specific, written prior
  705. X! permission.  the University of California makes no representations
  706. X! about the suitability of this software for any purpose.  It is provided
  707. X! "as is" without express or implied warranty.
  708. X
  709. XXCdplayer*foreground:            Blue
  710. XXCdplayer*background:            LightGrey
  711. XXCdplayer*borderColor:            Black
  712. XXCdplayer*allowShellResize:        True
  713. XXCdplayer*resizable:            True
  714. XXCdplayer*Font:                -misc-fixed-bold-r-normal--13-*
  715. X
  716. XXCdplayer*logoLabel.foreground:        Gold
  717. XXCdplayer*logoLabel.background:        Black
  718. X
  719. XXCdplayer*versionLabel.Font:         -misc-fixed-medium-r-normal--8-*
  720. XXCdplayer*versionLabel.foreground:    Black
  721. XXCdplayer*versionLabel.width:        110
  722. XXCdplayer*versionLabel.fromHoriz:    logoLabel
  723. X
  724. X! replayThreshold is the number of seconds that must be played before the
  725. X! previous track button will take you back to the beginning of the current
  726. X! track, rather than the previous one.
  727. XXCdplayer*replayThreshold:        4
  728. X
  729. X! scanSkipInterval is the number of seconds skipped at each fast-forward or
  730. X! reverse.
  731. XXCdplayer*scanSkipInterval:        3
  732. X! pauseSkipInterval is the number of seconds skipped at each fast-forward or
  733. X! reverse if the CD is paused.
  734. XXCdplayer*pauseSkipInterval:        15
  735. X
  736. X! scanPauseInterval is the number of seconds between each fast_forward or
  737. X! reverse while holding down the buttons. (Sun CDs have a dreadfully long
  738. X! start-up time for the audio to actually become audible, so "hearing the
  739. X! track" while scanning isn't very feasible.)
  740. XXCdplayer*scanPauseInterval:        0.062
  741. X! pausePauseInterval does the same thing when the disc is paused.
  742. XXCdplayer*pausePauseInterval:        0.5
  743. X
  744. X! cdInfoDir is the directory to search for stored data about discs.
  745. X! NOTE: this must currently be a fully specified path (ie no '~'s, 
  746. X! environment vars, etc.  This should only be set if you are using a local
  747. X! copy of the application defaults.  The command line option -cdInfoDir <path>
  748. X! is provided for overriding the default path (null (= current dir))
  749. X!XCdplayer*cdInfoDir:            eg:   /usr/staff/yourname/CDs
  750. X
  751. XXCdplayer*Viewport.allowHoriz:        True
  752. XXCdplayer*Viewport.useBottom:        True
  753. XXCdplayer*Viewport.forceBars:        False
  754. XXCdplayer*Viewport.width:        160
  755. XXCdplayer*Viewport.height:        30
  756. XXCdplayer*Viewport*thickness:        8
  757. XXCdplayer*Viewport.resizable:        False
  758. X
  759. XXCdplayer*Form.defaultDistance:        1
  760. XXCdplayer*Form.internalHeight:        0
  761. XXCdplayer*Form.internalWidth:        0
  762. XXCdplayer*Form.borderWidth:        0
  763. X
  764. XXCdplayer*Label.internalHeight:        0
  765. XXCdplayer*Label.internalWidth:        0
  766. XXCdplayer*Label.borderWidth:        0
  767. XXCdplayer*Label.top:            ChainTop
  768. XXCdplayer*Label.bottom:            ChainTop
  769. XXCdplayer*Label.left:            ChainLeft
  770. XXCdplayer*Label.right:            ChainLeft
  771. X
  772. XXCdplayer*Command.background:        Ivory
  773. XXCdplayer*Text.background:        Ivory
  774. XXCdplayer*AsciiSink.background:        Ivory
  775. XXCdplayer*AsciiSink.foreground:        Red
  776. XXCdplayer*Scrollbar.foreground:        White
  777. XXCdplayer*Scrollbar.background:        Gold
  778. X
  779. XXCdplayer*Toggle.borderWidth:        1
  780. XXCdplayer*Toggle.top:            ChainTop
  781. XXCdplayer*Toggle.bottom:        ChainTop
  782. XXCdplayer*Toggle.left:            ChainLeft
  783. XXCdplayer*Toggle.right:            ChainLeft
  784. XXCdplayer*Toggle.background:        Ivory
  785. X
  786. XXCdplayer*ledsLabel.horizDistance:    4
  787. XXCdplayer*ledsLabel.fromVert:        versionLabel
  788. XXCdplayer*ledsLabel.fromHoriz:        logoLabel
  789. X
  790. XXCdplayer*trackButton.horizDistance:    4
  791. XXCdplayer*trackButton.fromVert:        versionLabel
  792. XXCdplayer*trackButton.fromHoriz:    ledsLabel
  793. XXCdplayer*trackButton.borderWidth:    2
  794. XXCdplayer*trackButton.internalHeight:    4
  795. XXCdplayer*trackButton.internalWidth:    4
  796. X
  797. XXCdplayer*timerButton.borderWidth:    2
  798. XXCdplayer*timerButton.internalHeight:    4
  799. XXCdplayer*timerButton.internalWidth:    4
  800. XXCdplayer*timerButton.horizDistance:    2
  801. XXCdplayer*timerButton.fromVert:        versionLabel
  802. XXCdplayer*timerButton.fromHoriz:    trackButton
  803. XXCdplayer*timerButton.left:        ChainRight
  804. XXCdplayer*timerButton.right:        ChainRight
  805. X
  806. XXCdplayer*volumeScrollbar.horizDistance:4
  807. XXCdplayer*volumeScrollbar.fromHoriz:    logoLabel
  808. XXCdplayer*volumeScrollbar.fromVert:    trackButton
  809. XXCdplayer*volumeScrollbar.orientation:    horizontal
  810. XXCdplayer*volumeScrollbar.length:    93
  811. XXCdplayer*volumeScrollbar.right:    ChainRight
  812. XXCdplayer*volumeScrollbar.left:        ChainRight
  813. XXCdplayer*volumeScrollbar.background:    green
  814. XXCdplayer*volumeScrollbar.foreground:    white
  815. X
  816. XXCdplayer*titleBarViewport.fromVert:    volumeScrollbar
  817. XXCdplayer*titleBar.borderwidth:        0
  818. XXCdplayer*titleBar.highlightThickness:    1
  819. XXCdplayer*titleBar.foreground:        Red
  820. XXCdplayer*titleBar.background:        Ivory
  821. XXCdplayer*buttonsForm.fromVert:        logoForm
  822. XXCdplayer*buttonsForm.borderWidth:    1
  823. X
  824. XXCdplayer*pauseButton.fromHoriz:    playButton
  825. XXCdplayer*stopButton.fromHoriz:        pauseButton
  826. XXCdplayer*prevButton.fromHoriz:        stopButton
  827. XXCdplayer*nextButton.fromHoriz:        prevButton
  828. XXCdplayer*ejectButton.fromHoriz:    nextButton
  829. XXCdplayer*audioButton.fromHoriz:    ejectButton
  830. X
  831. XXCdplayer*quitButton.fromVert:        playButton
  832. XXCdplayer*cycleButton.fromVert:        playButton
  833. XXCdplayer*cycleButton.fromHoriz:    quitButton
  834. XXCdplayer*shuffleButton.fromVert:    playButton
  835. XXCdplayer*shuffleButton.fromHoriz:    cycleButton
  836. XXCdplayer*rewButton.fromVert:        playButton
  837. XXCdplayer*rewButton.fromHoriz:        shuffleButton
  838. XXCdplayer*ffButton.fromVert:        playButton
  839. XXCdplayer*ffButton.fromHoriz:        rewButton
  840. XXCdplayer*pgmButton.fromVert:        playButton
  841. XXCdplayer*pgmButton.fromHoriz:        ffButton
  842. X
  843. XXCdplayer*stopButton.radioGroup:    playButton
  844. XXCdplayer*ejectButton.radioGroup:    playButton
  845. XXCdplayer*programForm.fromVert:        buttonsForm
  846. XXCdplayer*programForm.borderWidth:    1
  847. X
  848. XXCdplayer*programDisplayViewport.forceBars:    True
  849. X
  850. XXCdplayer*programDisplayForm.background:        Black
  851. XXCdplayer*programDisplayForm*Toggle.background:        Black
  852. XXCdplayer*programDisplayForm*Toggle.foreground:        White
  853. XXCdplayer*programDisplayForm*Toggle.borderWidth:    0
  854. XXCdplayer*programDisplayForm*Toggle.highlightThickness:    0
  855. XXCdplayer*programDisplayForm*Toggle.internalWidth:    0
  856. XXCdplayer*programDisplayForm*Toggle.defaultDistance:    0
  857. X
  858. XXCdplayer*programDisplayForm*Toggle.translations: <EnterWindow>:  highlight(Always) \n\
  859. X                    <LeaveWindow>:  unhighlight() \n\
  860. X                    <Btn1Down>,<Btn1Up>:    set() notify()
  861. X
  862. X
  863. XXCdplayer*trackButton.translations:    #override \
  864. X                    <EnterWindow>:    highlight(Always) \n\
  865. X                    <LeaveWindow>:    unhighlight() \n\
  866. X                    <Btn1Down>:    set() notify() \n\
  867. X                    <Btn1Up>:    reset() notify()
  868. X
  869. XXCdplayer*playButton.translations:    <EnterWindow>:    highlight(Always) \n\
  870. X                    <LeaveWindow>:    unhighlight() \n\
  871. X                    <Btn1Down>:    set() notify()
  872. X
  873. XXCdplayer*stopButton.translations:    <EnterWindow>:    highlight(Always) \n\
  874. X                    <LeaveWindow>:    unhighlight() \n\
  875. X                    <Btn1Down>:    set() notify()
  876. X
  877. XXCdplayer*ejectButton.translations:    <EnterWindow>:    highlight(Always) \n\
  878. X                    <LeaveWindow>:    unhighlight() \n\
  879. X                    <Btn1Down>:    set() notify()
  880. X
  881. XXCdplayer*audioButton.translations:    <EnterWindow>:    highlight(Always) \n\
  882. X                    <LeaveWindow>:    unhighlight() \n\
  883. X                    <Btn1Down>:    set() notify()
  884. X
  885. XXCdplayer*prevButton.translations:    <EnterWindow>:    highlight(Always) \n\
  886. X                    <LeaveWindow>:    unhighlight() \n\
  887. X                    <Btn1Down>:    set() notify() \n\
  888. X                    <Btn1Up>:    unset()
  889. X
  890. XXCdplayer*nextButton.translations:    <EnterWindow>:    highlight(Always) \n\
  891. X                    <LeaveWindow>:    unhighlight() \n\
  892. X                    <Btn1Down>:    set() notify() \n\
  893. X                    <Btn1Up>:    unset()
  894. X
  895. XXCdplayer*rewButton.translations:    <EnterWindow>:    highlight(Always) \n\
  896. X                    <LeaveWindow>:    unhighlight() \n\
  897. X                    <Btn1Down>:    set() notify() \n\
  898. X                    <Btn1Up>:    unset()
  899. X
  900. XXCdplayer*ffButton.translations:    <EnterWindow>:    highlight(Always) \n\
  901. X                    <LeaveWindow>:    unhighlight() \n\
  902. X                    <Btn1Down>:    set() notify() \n\
  903. X                    <Btn1Up>:    unset()
  904. X
  905. XXCdplayer*pgmButton.translations:    #override \
  906. X                    <EnterWindow>:    highlight(Always) \n\
  907. X                    <LeaveWindow>:    unhighlight() \n\
  908. X                    <Btn1Down>:    set() notify() \n
  909. X                    <Btn1Up>:    reset notify
  910. END_OF_FILE
  911. if test 8082 -ne `wc -c <'xcdplayer-2.2/XCdplayer.ad.sun'`; then
  912.     echo shar: \"'xcdplayer-2.2/XCdplayer.ad.sun'\" unpacked with wrong size!
  913. fi
  914. # end of 'xcdplayer-2.2/XCdplayer.ad.sun'
  915. fi
  916. if test -f 'xcdplayer-2.2/cdgrab.c' -a "${1}" != "-c" ; then 
  917.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/cdgrab.c'\"
  918. else
  919. echo shar: Extracting \"'xcdplayer-2.2/cdgrab.c'\" \(5026 characters\)
  920. sed "s/^X//" >'xcdplayer-2.2/cdgrab.c' <<'END_OF_FILE'
  921. X/*
  922. X * Copyright (C) 1990 Regents of the University of California.
  923. X *
  924. X * Permission to use, copy, modify, distribute, and sell this software and
  925. X * its documentation for any purpose is hereby granted without fee,
  926. X * provided that the above copyright notice appear in all copies and that
  927. X * both that copyright notice and this permission notice appear in
  928. X * supporting documentation, and that the name of the University of
  929. X * California not be used in advertising or publicity pertaining to
  930. X * distribution of the software without specific, written prior
  931. X * permission.  the University of California makes no representations
  932. X * about the suitability of this software for any purpose.  It is provided
  933. X * "as is" without express or implied warranty.
  934. X */
  935. X
  936. X# include <sys/types.h>
  937. X# include <sys/buf.h>
  938. X
  939. X# include <sun/dkio.h>
  940. X
  941. X# include <scsi/targets/srdef.h>
  942. X# include <scsi/impl/uscsi.h>
  943. X
  944. X/*# include <sundev/srreg.h>*/
  945. X
  946. X# include <stdio.h>
  947. X
  948. Xchar cdrom[] =    "/dev/rsr0";
  949. X
  950. Xextern void        cdrom_open();
  951. Xextern char        *cdrom_status_string();
  952. Xextern unsigned int    cdrom_get_track();
  953. Xextern unsigned long    *cdrom_get_times();
  954. Xextern unsigned long    *ulong_malloc();
  955. X
  956. Xstatic int        cdrom_fd;
  957. X
  958. Xunsigned long        cdrom_mintrack;
  959. Xunsigned long        cdrom_maxtrack;
  960. Xunsigned long        *cdrom_times;
  961. X
  962. Xmain() {
  963. X    cdrom_open();
  964. X
  965. X    printf("status: %s\n", cdrom_status_string(cdrom_get_status()));
  966. X
  967. X    cdrom_times = cdrom_get_times();
  968. X    cdrom_print_toc();
  969. X}
  970. X
  971. Xvoid
  972. Xcdrom_open() {
  973. X    if ((cdrom_fd = open(cdrom, 0)) == -1) {
  974. X        fprintf(stderr, "open: ");
  975. X        perror(cdrom);
  976. X
  977. X        exit(1);
  978. X    }
  979. X}
  980. X
  981. Xunsigned long *
  982. Xcdrom_get_times() {
  983. X    struct cdrom_tochdr    tochdr;
  984. X    struct cdrom_tocentry    tocentry;
  985. X    extern unsigned long    *ulong_malloc();
  986. X    unsigned long        trk, trk_total, otime;
  987. X    unsigned long        *cdrom_times;
  988. X
  989. X    if (cdrom_read_tochdr(&tochdr) == -1)
  990. X        return(NULL);
  991. X
  992. X    cdrom_mintrack = tochdr.cdth_trk0;
  993. X    cdrom_maxtrack = tochdr.cdth_trk1;
  994. X
  995. X    cdrom_times = ulong_malloc(cdrom_maxtrack - cdrom_mintrack + 1);
  996. X
  997. X    otime = 0;
  998. X
  999. X    for (trk = cdrom_mintrack; trk <= cdrom_maxtrack; trk++) {
  1000. X        if (cdrom_read_tocentry(trk, &tocentry) == -1)
  1001. X            return(NULL);
  1002. X
  1003. X        trk_total = ((int) tocentry.cdte_addr.msf.minute * 60) +
  1004. X            (int) tocentry.cdte_addr.msf.second;
  1005. X
  1006. X        trk_total -= otime;
  1007. X        otime += trk_total;
  1008. X
  1009. X        if (trk != cdrom_mintrack)
  1010. X            cdrom_times[trk - cdrom_mintrack - 1] = trk_total;
  1011. X    }
  1012. X
  1013. X    if (cdrom_read_tocentry(CDROM_LEADOUT, &tocentry) == -1)
  1014. X        return(NULL);
  1015. X
  1016. X    trk_total = ((int) tocentry.cdte_addr.msf.minute * 60) +
  1017. X        (int) tocentry.cdte_addr.msf.second;
  1018. X
  1019. X    trk_total -= otime;
  1020. X
  1021. X    cdrom_times[trk - cdrom_mintrack - 1] = trk_total;
  1022. X
  1023. X    return(cdrom_times);
  1024. X}
  1025. X
  1026. Xunsigned long *
  1027. Xulong_malloc(n) {
  1028. X    extern char    *malloc();
  1029. X    unsigned long    *ptr;
  1030. X
  1031. X    ptr = (unsigned long *) calloc(n, sizeof(unsigned long));
  1032. X    if (ptr == NULL) {
  1033. X        perror("malloc");
  1034. X        exit(1);
  1035. X    }
  1036. X
  1037. X    return(ptr);
  1038. X}
  1039. X
  1040. Xcdrom_print_toc() {
  1041. X    unsigned long        trk, trk_total;
  1042. X
  1043. X    for (trk = cdrom_mintrack; trk <= cdrom_maxtrack; trk++) {
  1044. X        trk_total = cdrom_times[trk - cdrom_mintrack];
  1045. X        printf("%02u:%02u\n", trk_total/60, trk_total%60);
  1046. X    }
  1047. X}
  1048. X
  1049. Xcdrom_read_tocentry(trk, tocentry)
  1050. X    int            trk;
  1051. X    struct cdrom_tocentry    *tocentry;
  1052. X{
  1053. X    tocentry->cdte_track = trk;
  1054. X    tocentry->cdte_format = CDROM_MSF;
  1055. X
  1056. X    if (ioctl(cdrom_fd, CDROMREADTOCENTRY, (char *) tocentry) == -1) {
  1057. X        fprintf(stderr, "ioctl(cdromreadtocentry): ");
  1058. X        perror(cdrom);
  1059. X
  1060. X        return(-1);
  1061. X    }
  1062. X
  1063. X    return(0);
  1064. X}
  1065. X
  1066. Xint
  1067. Xcdrom_read_tochdr(tochdr)
  1068. X    struct cdrom_tochdr    *tochdr;
  1069. X{
  1070. X    if (ioctl(cdrom_fd, CDROMREADTOCHDR, (char *) tochdr) == -1) {
  1071. X        fprintf(stderr, "ioctl(cdromreadtochdr): ");
  1072. X        perror(cdrom);
  1073. X
  1074. X        return(-1);
  1075. X    }
  1076. X
  1077. X    return(0);
  1078. X}
  1079. X
  1080. Xint
  1081. Xcdrom_get_status() {
  1082. X    struct cdrom_subchnl    subchnl;
  1083. X
  1084. X    if (ioctl(cdrom_fd, CDROMSUBCHNL, (char *) &subchnl) == -1) {
  1085. X        fprintf(stderr, "ioctl(cdromsubchnl): ");
  1086. X        perror(cdrom);
  1087. X
  1088. X        return(-1);
  1089. X    }
  1090. X
  1091. X    return(subchnl.cdsc_audiostatus);
  1092. X}
  1093. X
  1094. Xunsigned int
  1095. Xcdrom_get_track() {
  1096. X    struct cdrom_subchnl    subchnl;
  1097. X
  1098. X    if (ioctl(cdrom_fd, CDROMSUBCHNL, (char *) &subchnl) == -1) {
  1099. X        fprintf(stderr, "ioctl(cdromsubchnl): ");
  1100. X        perror(cdrom);
  1101. X
  1102. X        return(-1);
  1103. X    }
  1104. X
  1105. X    return(subchnl.cdsc_trk);
  1106. X}
  1107. X
  1108. Xchar *
  1109. Xcdrom_status_string(status) {
  1110. X    static char        buf[512];
  1111. X    typedef struct _status_table {
  1112. X        unsigned int    st_val;
  1113. X        char        *st_str;
  1114. X    } status_table;
  1115. X    static status_table    st_table[] = {
  1116. X        { CDROM_AUDIO_INVALID,    "audio status not supported" },
  1117. X        { CDROM_AUDIO_PLAY,    "audio play operation in progress" },
  1118. X        { CDROM_AUDIO_PAUSED,    "audio play operation paused" },
  1119. X        { CDROM_AUDIO_COMPLETED,"audio play successfully completed" },
  1120. X        { CDROM_AUDIO_ERROR,    "audio play stopped due to error" },
  1121. X        { CDROM_AUDIO_NO_STATUS,"no current audio status to return" },
  1122. X        { -1,            NULL }
  1123. X    };
  1124. X    status_table *st;
  1125. X
  1126. X    switch (status) {
  1127. X        case CDROM_AUDIO_PLAY:
  1128. X        sprintf(buf, "playing track %d",
  1129. X            (unsigned int) cdrom_get_track());
  1130. X        return(buf);
  1131. X
  1132. X        case CDROM_AUDIO_PAUSED:
  1133. X        sprintf(buf, "paused on track %d",
  1134. X            (unsigned int) cdrom_get_track());
  1135. X        return(buf);
  1136. X    }
  1137. X
  1138. X    for (st = &st_table[0]; st->st_str != NULL; st++) {
  1139. X        if (status == st->st_val)
  1140. X            return(st->st_str);
  1141. X    }
  1142. X
  1143. X    return("invalid status value");
  1144. X}
  1145. END_OF_FILE
  1146. if test 5026 -ne `wc -c <'xcdplayer-2.2/cdgrab.c'`; then
  1147.     echo shar: \"'xcdplayer-2.2/cdgrab.c'\" unpacked with wrong size!
  1148. fi
  1149. # end of 'xcdplayer-2.2/cdgrab.c'
  1150. fi
  1151. if test -f 'xcdplayer-2.2/cdinfo.c' -a "${1}" != "-c" ; then 
  1152.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/cdinfo.c'\"
  1153. else
  1154. echo shar: Extracting \"'xcdplayer-2.2/cdinfo.c'\" \(4625 characters\)
  1155. sed "s/^X//" >'xcdplayer-2.2/cdinfo.c' <<'END_OF_FILE'
  1156. X/*
  1157. X * Copyright (C) 1990 Regents of the University of California.
  1158. X *
  1159. X * Permission to use, copy, modify, distribute, and sell this software and
  1160. X * its documentation for any purpose is hereby granted without fee,
  1161. X * provided that the above copyright notice appear in all copies and that
  1162. X * both that copyright notice and this permission notice appear in
  1163. X * supporting documentation, and that the name of the University of
  1164. X * California not be used in advertising or publicity pertaining to
  1165. X * distribution of the software without specific, written prior
  1166. X * permission.  the University of California makes no representations
  1167. X * about the suitability of this software for any purpose.  It is provided
  1168. X * "as is" without express or implied warranty.
  1169. X */
  1170. X
  1171. X# include <sys/types.h>
  1172. X# include <sys/buf.h>
  1173. X# include <sun/dkio.h>
  1174. X# include <scsi/targets/srdef.h>
  1175. X
  1176. X# include <stdio.h>
  1177. X
  1178. Xchar cdrom[] =    "/dev/rsr0";
  1179. X
  1180. Xextern char *    cdrom_status();
  1181. X
  1182. Xmain() {
  1183. X    int            fd;
  1184. X
  1185. X    if ((fd = open(cdrom, 0)) == -1) {
  1186. X        fprintf(stderr, "open: ");
  1187. X        perror(cdrom);
  1188. X        exit(1);
  1189. X    }
  1190. X
  1191. X    printf("status: %s\n", cdrom_status(fd));
  1192. X
  1193. X    cdrom_toc(fd, CDROM_MSF);
  1194. X
  1195. X    cdrom_subchnl(fd, CDROM_MSF);
  1196. X}
  1197. X
  1198. Xcdrom_toc(fd, fmt) {
  1199. X    struct cdrom_tochdr    tochdr;
  1200. X    struct cdrom_tocentry    tocentry;
  1201. X    int            trk;
  1202. X    int            otime, trk_total;
  1203. X
  1204. X    if (cdrom_read_tochdr(fd, &tochdr) == -1)
  1205. X        return;
  1206. X
  1207. X    printf("TRACK\tTIME\tFRAME\tTYPE\n");
  1208. X
  1209. X    otime = 0;
  1210. X
  1211. X    for (trk = tochdr.cdth_trk0; trk <= tochdr.cdth_trk1; trk++) {
  1212. X        if (cdrom_read_tocentry(fd, trk, fmt, &tocentry) == -1)
  1213. X            return;
  1214. X
  1215. X        trk_total = ((int) tocentry.cdte_addr.msf.minute * 60) +
  1216. X            (int) tocentry.cdte_addr.msf.second;
  1217. X
  1218. X        trk_total -= otime;
  1219. X
  1220. X        if (otime != 0) {
  1221. X            printf("%d\t%02d:%02d", trk-1,
  1222. X                   trk_total / 60,
  1223. X                   trk_total % 60);
  1224. X
  1225. X            printf("\t%d", (int) tocentry.cdte_addr.msf.frame);
  1226. X
  1227. X            if (tocentry.cdte_ctrl & CDROM_DATA_TRACK)
  1228. X                printf("\tdata");
  1229. X            else
  1230. X                printf("\taudio");
  1231. X
  1232. X            printf("\n");
  1233. X        }
  1234. X
  1235. X        otime += trk_total;
  1236. X    }
  1237. X
  1238. X    if (cdrom_read_tocentry(fd, CDROM_LEADOUT, fmt, &tocentry) == -1)
  1239. X        return;
  1240. X
  1241. X    trk_total = ((int) tocentry.cdte_addr.msf.minute * 60) +
  1242. X        (int) tocentry.cdte_addr.msf.second;
  1243. X
  1244. X    trk_total -= otime;
  1245. X
  1246. X    printf("%d\t%02d:%02d", trk-1,
  1247. X           trk_total / 60,
  1248. X           trk_total % 60);
  1249. X
  1250. X    printf("\t%d", (int) tocentry.cdte_addr.msf.frame);
  1251. X
  1252. X    if (tocentry.cdte_ctrl & CDROM_DATA_TRACK)
  1253. X        printf("\tdata");
  1254. X    else
  1255. X        printf("\taudio");
  1256. X
  1257. X    printf("\n");
  1258. X}
  1259. X
  1260. Xcdrom_read_tocentry(fd, trk, fmt, tocentry)
  1261. X    int            fd;
  1262. X    int            trk, fmt;
  1263. X    struct cdrom_tocentry    *tocentry;
  1264. X{
  1265. X    tocentry->cdte_track = trk;
  1266. X    tocentry->cdte_format = fmt;
  1267. X
  1268. X    if (ioctl(fd, CDROMREADTOCENTRY, (char *) tocentry) == -1) {
  1269. X        fprintf(stderr, "ioctl(cdromreadtocentry): ");
  1270. X        perror(cdrom);
  1271. X
  1272. X        return(-1);
  1273. X    }
  1274. X
  1275. X    return(0);
  1276. X}
  1277. X
  1278. Xcdrom_read_tochdr(fd, tochdr)
  1279. X    int            fd;
  1280. X    struct cdrom_tochdr    *tochdr;
  1281. X{
  1282. X    if (ioctl(fd, CDROMREADTOCHDR, (char *) tochdr) == -1) {
  1283. X        fprintf(stderr, "ioctl(cdromreadtochdr): ");
  1284. X        perror(cdrom);
  1285. X
  1286. X        return(-1);
  1287. X    }
  1288. X
  1289. X    return(0);
  1290. X}
  1291. X
  1292. Xchar *
  1293. Xcdrom_status(fd) {
  1294. X    static char        buf[512];
  1295. X    struct cdrom_subchnl    subchnl;
  1296. X
  1297. X    if (ioctl(fd, CDROMSUBCHNL, (char *) &subchnl) == -1) {
  1298. X        fprintf(stderr, "ioctl(cdromsubchnl): ");
  1299. X        perror(cdrom);
  1300. X        exit(1);
  1301. X    }
  1302. X
  1303. X    switch (subchnl.cdsc_audiostatus) {
  1304. X        case CDROM_AUDIO_INVALID:
  1305. X        return("invalid");
  1306. X        break;
  1307. X
  1308. X        case CDROM_AUDIO_PLAY:
  1309. X        sprintf(buf, "playing track %d", (int) subchnl.cdsc_trk);
  1310. X        return(buf);
  1311. X        break;
  1312. X
  1313. X        case CDROM_AUDIO_PAUSED:
  1314. X        sprintf(buf, "paused on track %d", (int) subchnl.cdsc_trk);
  1315. X        return(buf);
  1316. X        break;
  1317. X
  1318. X        case CDROM_AUDIO_COMPLETED:
  1319. X        return("completed");
  1320. X        break;
  1321. X
  1322. X        case CDROM_AUDIO_ERROR:
  1323. X        return("error");
  1324. X        break;
  1325. X
  1326. X        case CDROM_AUDIO_NO_STATUS:
  1327. X        return("no status");
  1328. X        break;
  1329. X    }
  1330. X
  1331. X    return("bad value in cdsc_audiostatus");
  1332. X}
  1333. X
  1334. Xcdrom_subchnl(fd, fmt) {
  1335. X    struct cdrom_subchnl    subchnl;
  1336. X
  1337. X    if (ioctl(fd, CDROMSUBCHNL, (char *) &subchnl) == -1) {
  1338. X        fprintf(stderr, "ioctl(cdromsubchnl): ");
  1339. X        perror(cdrom);
  1340. X        exit(1);
  1341. X    }
  1342. X
  1343. X    printf("subchnl:\n");
  1344. X
  1345. X    printf("format=0x%x\n", (unsigned int) subchnl.cdsc_format);
  1346. X    printf("adr=%u\n", (unsigned int) subchnl.cdsc_adr);
  1347. X    printf("ctrl=%u\n", (unsigned int) subchnl.cdsc_ctrl);
  1348. X    printf("trk=%u\n", (unsigned int) subchnl.cdsc_trk);
  1349. X    printf("ind=%u\n", (unsigned int) subchnl.cdsc_ind);
  1350. X
  1351. X    printf("absaddr=%02u:%02u %u\n",
  1352. X           (unsigned int) subchnl.cdsc_absaddr.msf.minute,
  1353. X           (unsigned int) subchnl.cdsc_absaddr.msf.second,
  1354. X           (unsigned int) subchnl.cdsc_absaddr.msf.frame);
  1355. X
  1356. X    printf("reladdr=%02u:%02u %u\n",
  1357. X           (unsigned int) subchnl.cdsc_reladdr.msf.minute,
  1358. X           (unsigned int) subchnl.cdsc_reladdr.msf.second,
  1359. X           (unsigned int) subchnl.cdsc_reladdr.msf.frame);
  1360. X}
  1361. END_OF_FILE
  1362. if test 4625 -ne `wc -c <'xcdplayer-2.2/cdinfo.c'`; then
  1363.     echo shar: \"'xcdplayer-2.2/cdinfo.c'\" unpacked with wrong size!
  1364. fi
  1365. # end of 'xcdplayer-2.2/cdinfo.c'
  1366. fi
  1367. if test -f 'xcdplayer-2.2/xcdplayer.1' -a "${1}" != "-c" ; then 
  1368.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/xcdplayer.1'\"
  1369. else
  1370. echo shar: Extracting \"'xcdplayer-2.2/xcdplayer.1'\" \(6305 characters\)
  1371. sed "s/^X//" >'xcdplayer-2.2/xcdplayer.1' <<'END_OF_FILE'
  1372. X.TH XCDPLAYER 1 "Feb 3 1992" "X Version 11"
  1373. X.SH NAME
  1374. Xxcdplayer \- X window system interface to run the sun or sgi cdrom drive as a 
  1375. Xtypical audio CD player.
  1376. X.SH SYNOPSIS
  1377. X.B xcdplayer
  1378. X[ \fI-toolkitoption ... \fP] [\fI-xcdplayeroption ... \fP] 
  1379. X.SH DESCRIPTION
  1380. X\fIXcdplayer\fP is a graphical user interface for controlling the Sun or SGI cdrom
  1381. Xdrive under the X Window System.  It provides visual feedback and 
  1382. Xgives the user facilities for mode selection, device control, scanning, and
  1383. Xprogramming.
  1384. X.LP
  1385. X\fIXcdplayer\fP allows previously stored cd title and program information to 
  1386. Xbe read from a specified directory and loaded into the player on startup 
  1387. Xor at disc changes.  This directory can be specified either on the command 
  1388. Xline, by using the -cdInfoDir option, by using a customized personal resource 
  1389. Xfile, or by setting the environment variable XCDINFODIR.  If no directory is 
  1390. Xspecified by any of these methods, xcdplayer looks in the current directory.
  1391. X.LP
  1392. X.SH OPTIONS
  1393. X\fIXcdplayer\fP accepts all of the standard X Toolkit command line options 
  1394. X(see \fIX\fP(1)), plus the following xcdplayer specific options:
  1395. X.IP "-debug" 12
  1396. XDisplays debugging messages as the tool runs.
  1397. X.IP -device devname
  1398. XCDROM device to use (useful for systems with multiple CDROM drives)
  1399. X.IP -volBase <[0..255]>
  1400. XBottom of volume scale for player [range 0-255] (default 187)
  1401. X.IP -volPcent <float>
  1402. XRatio of volume change [range 0..255] to percent of scrollbar shown 
  1403. X(default .267).  This value is used in conjunction with the volBase parameter.
  1404. X.IP -cdInfoDir <path>
  1405. XSpecifies which directory should be used for storing and looking up 
  1406. XCD information.
  1407. X
  1408. X
  1409. X.SH SUBWINDOWS
  1410. X\fIXcdplayer\fP contains the following subwindows:
  1411. X.IP "Title Window" 20
  1412. XDisplays the title of the CD (if stored or entered) corresponding to the CD
  1413. Xcurrently in the CD player.  
  1414. X.IP "Program Window" 
  1415. XBrought up on press of the program button, this panel contains a viewport
  1416. Xdisplaying the current selected program, option buttons, and track selection
  1417. Xbuttons.  The program window (and program mode) are dismissed via the Cancel
  1418. Xbutton.
  1419. X.LP
  1420. X.SH COMMAND BUTTONS
  1421. X.LP
  1422. X.SS "Main Commands"
  1423. X.IP "\fBplay\fP" 15
  1424. XEnter play mode.
  1425. X.IP "\fBpause\fP"
  1426. XPause play.  Activating this button has an effect on program selection.
  1427. X.IP "\fBstop\fP"
  1428. XStop disc and reset to beginning.
  1429. X.IP "\fBprev\fP"
  1430. XGo back either to the beginning of the previous track (or start of current
  1431. Xtrack if more than replayThreshold seconds have elapsed); if in program
  1432. Xmode, go to previous selection in program.
  1433. X.IP "\fBnext\fP"
  1434. XGo to beginning of next track; if in program mode, go to next program 
  1435. Xselection.
  1436. X.IP "\fBeject\fP"
  1437. XEject the disc. Resets all modes.
  1438. X.IP "\fBaudio\fP"
  1439. XToggle the audio output if possible.  It will default to the best 
  1440. Xquality audio available (SGI only).
  1441. X.IP "\fBquit\fP"
  1442. XExit xcdplayer.  (Leaves disc in last set state.
  1443. X.IP "\fBcycle\fP"
  1444. XCycle the disc.  If in shuffle mode, reshuffle will occur at end of current
  1445. Xshuffle; if in program mode, the program will replay.
  1446. X.IP "\fBshuffle\fP"
  1447. XSelect all of the tracks in random order.  This button has no effect unless
  1448. Xplay mode is not active, and is a toggle to program mode.
  1449. X.IP "\fBrewind\fP"
  1450. XRewind the disc.  If held down, will continue rewinding.  Scan skip amount
  1451. Xand pause interval between skips are controlled by the resources 
  1452. XscanSkipInterval and scanPauseInterval.  If the disc is paused, it will
  1453. Xskip by the ammount specifed by pauseSkipInterval.
  1454. X.IP "\fBfast-forward\fP"
  1455. XAnalogous to rewind.
  1456. X.IP "\fBprogram\fP"
  1457. XEnter program mode.  If paused, add current track (if not 0) to program.
  1458. XBrings up program subwindow.
  1459. X.LP
  1460. X.SS "Program Commands"
  1461. X.LP
  1462. X.IP "\fBSelections\fP" 20
  1463. XSelections displayed in the viewport of the program subwindow can be clicked 
  1464. Xon, and clicking on the currently selected track deletes it from the program.  
  1465. XThe highlighted selection indicates the current insert/delete point in the 
  1466. Xprogram, and if the CD is paused, clicking on a selection moves the program 
  1467. Xplay point to that selection.  
  1468. X.sp
  1469. X.br
  1470. XSelections can be added to the program either by clicking on
  1471. Xthe track buttons on the program form, or by using the forward and previous
  1472. Xbuttons on the main form while paused, and then clicking the program button
  1473. Xagain.  Pre-insertion before the 1st programmed track is allowed by clicking
  1474. Xon the space preceding the 1st entry.  
  1475. X.IP "\fBClear\fP"
  1476. XClears current program.
  1477. X.IP "\fBCancel\fP"
  1478. XClears current program and cancels program mode and subwindow.
  1479. X.IP "\fBSave\fP"
  1480. XSave the current program (if any) and current title to file in cdInfoDir.
  1481. XThis file will then be read whenever the current disc is put into the player.
  1482. X.IP "\fBtrack buttons\fP"
  1483. XAdd the track number to the program at the current insertion point, or if
  1484. Xactive, add track number to the programmable track button.
  1485. X.IP "\fB+10\fP"
  1486. XAdd ten to the programmable track button.
  1487. X.IP "\fBprogrammable track\fP"
  1488. XAdd the selected track number (if available on CD) to program at the current
  1489. Xinsertion point.
  1490. X.IP "\fBAll\fP"
  1491. XReplace the current program with a sequential list of tracks on the CD.
  1492. X.LP
  1493. X.SS "Miscellaneous Commands"
  1494. X.IP "\fBtrack\fP" 20
  1495. XShow number of tracks on the CD.
  1496. X.IP "\fBtimer\fP"
  1497. XToggle between time elaped and time remaining. If in program mode, and not
  1498. Xpaused, toggles to time remaining in program.
  1499. X.IP "\fBvolume scroll\fP"
  1500. XAdjust volume of CD player output.
  1501. X.IP "\fBtitle\fP"
  1502. XPop up dialog for editing title display.  Title can then be associated 
  1503. Xpermanently with that CD by using the save button in the program subwindow.
  1504. XThe title is displayed on a button in a viewport, so that long titles won't
  1505. Xdistort the size of the tool.  
  1506. X
  1507. X.SH FILES
  1508. XcdInfoDir/cd.*    these files contain title and stored program info saved for CDs
  1509. X.SH SEE ALSO
  1510. XX(1)
  1511. X.SH LIMITATIONS
  1512. XXcdplayer cannot yet read the current volume level and adjust the volume scroll
  1513. Xaccordingly, because there is not current support for this in the driver.
  1514. X.SH BUGS
  1515. XXcdplayer occasionally "hangs" on a particular track, never quite reaching
  1516. Xthe end of it.  Advancing to the next or previous track, or pressing the
  1517. Xstop button rectifies this condition.
  1518. X.SH COPYRIGHT
  1519. XCopyright (C) 1990 Regents of the University of California
  1520. X.SH AUTHORS
  1521. X.PP
  1522. XRusty Wright
  1523. X(rusty@belch.berkely.edu)
  1524. X.br
  1525. XWill Sadkin
  1526. X(wsadkin@bbn.com)
  1527. X.br
  1528. XDan Rich
  1529. X(drich@lerc.nasa.gov)
  1530. X
  1531. END_OF_FILE
  1532. if test 6305 -ne `wc -c <'xcdplayer-2.2/xcdplayer.1'`; then
  1533.     echo shar: \"'xcdplayer-2.2/xcdplayer.1'\" unpacked with wrong size!
  1534. fi
  1535. # end of 'xcdplayer-2.2/xcdplayer.1'
  1536. fi
  1537. echo shar: End of archive 2 \(of 5\).
  1538. cp /dev/null ark2isdone
  1539. MISSING=""
  1540. for I in 1 2 3 4 5 ; do
  1541.     if test ! -f ark${I}isdone ; then
  1542.     MISSING="${MISSING} ${I}"
  1543.     fi
  1544. done
  1545. if test "${MISSING}" = "" ; then
  1546.     echo You have unpacked all 5 archives.
  1547.     rm -f ark[1-9]isdone
  1548. else
  1549.     echo You still need to unpack the following archives:
  1550.     echo "        " ${MISSING}
  1551. fi
  1552. ##  End of shell archive.
  1553. exit 0
  1554. -- 
  1555. Dan Rich                    | drich@lerc.nasa.gov   |  (216) 433-4000
  1556. Sr. Systems Engineer        | "Danger, you haven't seen the last of me!"
  1557. RMS Technologies, Inc.      |    "No, but the first of you turns my stomach!"
  1558. NASA Lewis Research Center  | -- The Firesign Theatre's Nick Danger
  1559.  
  1560.