home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / alt / sources / 2892 < prev    next >
Encoding:
Text File  |  1992-12-29  |  61.7 KB  |  1,742 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 (1/5) - X11 CD player for Sun and SGI
  5. Message-ID: <1992Dec28.225028.20791@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:50:28 GMT
  10. Lines: 1730
  11.  
  12. Submitted-by: drich@lerc.nasa.gov
  13. Archive-name: xcdplayer-2.2/part01
  14.  
  15. Enclosed below is the latest release of XCdplayer.  The current
  16. version will now run on SGI and Sun, and has a set of color defaults.
  17. With the SGI version, you also gain the ability to play through either
  18. the CDROM drive audio jack, or through the SGI audio board (for those
  19. systems so equiped).  This has been tested on both IRIX 4.0.2 and
  20. 4.0.5, and will *NOT* work on 4.0.1 (apparently, there are problems
  21. with the audio libraries).
  22.  
  23. Things to look for in future releases:
  24.     o Motif support (I hope!)
  25.     o Record capibilities (on SGI only)
  26.     o Track and Artist labeling
  27.     o A better programming interface
  28.     o AIX and Ultrix support (maybe....)
  29.  
  30. For more information, take a look at the man page and README file.  If
  31. you do run into problems or know of any other features you would like to
  32. see (or implement, for that matter :-), please let me know.
  33.  
  34. Here is the description from the man page:
  35. Xcdplayer is a graphical user interface for controlling the Sun or SGI cdrom
  36. drive under the X Window System.  It provides visual feedback and 
  37. gives the user facilities for mode selection, device control, scanning, and
  38. programming.
  39.  
  40. Xcdplayer allows previously stored cd title and program information to 
  41. be read from a specified directory and loaded into the player on startup 
  42. or at disc changes.  This directory can be specified either on the command 
  43. line, by using the -cdInfoDir option, by using a customized personal resource 
  44. file, or by setting the environment variable XCDINFODIR.
  45.  
  46. -- 
  47. Dan Rich                    | drich@lerc.nasa.gov   |  (216) 433-4000
  48. Sr. Systems Engineer        | "Danger, you haven't seen the last of me!"
  49. RMS Technologies, Inc.      |    "No, but the first of you turns my stomach!"
  50. NASA Lewis Research Center  | -- The Firesign Theatre's Nick Danger
  51.  
  52. 8<------------------------------ Cut Here ------------------------------>8
  53. #! /bin/sh
  54. # This is a shell archive.  Remove anything before this line, then unpack
  55. # it by saving it into a file and typing "sh file".  To overwrite existing
  56. # files, type "sh file -c".  You can also feed this as standard input via
  57. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  58. # will see the following message at the end:
  59. #        "End of archive 1 (of 5)."
  60. # Contents:  xcdplayer-2.2/Imakefile xcdplayer-2.2/MANIFEST
  61. #   xcdplayer-2.2/audio.xbm xcdplayer-2.2/cdrom_globs.h
  62. #   xcdplayer-2.2/cdrom_sgi.h xcdplayer-2.2/cdrom_sun.h
  63. #   xcdplayer-2.2/circle00.xbm xcdplayer-2.2/circle0a.xbm
  64. #   xcdplayer-2.2/circle0b.xbm xcdplayer-2.2/circle0c.xbm
  65. #   xcdplayer-2.2/circle0d.xbm xcdplayer-2.2/circle0e.xbm
  66. #   xcdplayer-2.2/circle0f.xbm xcdplayer-2.2/circle0g.xbm
  67. #   xcdplayer-2.2/circle0h.xbm xcdplayer-2.2/circle0x.xbm
  68. #   xcdplayer-2.2/copyright.h xcdplayer-2.2/cycle.xbm
  69. #   xcdplayer-2.2/debug.c xcdplayer-2.2/debug.h
  70. #   xcdplayer-2.2/eject.xbm xcdplayer-2.2/ff.xbm xcdplayer-2.2/leds.c
  71. #   xcdplayer-2.2/logo.xbm xcdplayer-2.2/main.c xcdplayer-2.2/next.xbm
  72. #   xcdplayer-2.2/patchlevel.h xcdplayer-2.2/pause.xbm
  73. #   xcdplayer-2.2/pgm.xbm xcdplayer-2.2/play.xbm
  74. #   xcdplayer-2.2/prev.xbm xcdplayer-2.2/quit.xbm
  75. #   xcdplayer-2.2/rewind.xbm xcdplayer-2.2/shuffle.c
  76. #   xcdplayer-2.2/shuffle.xbm xcdplayer-2.2/stop.xbm
  77. #   xcdplayer-2.2/thumb.xbm xcdplayer-2.2/top_setup.c
  78. #   xcdplayer-2.2/version.h
  79. # Wrapped by drich@sandman on Mon Dec 28 17:30:37 1992
  80. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  81. if test -d 'xcdplayer-2.2' ; then
  82. :
  83. else
  84.   mkdir xcdplayer-2.2
  85. fi
  86. if test -f 'xcdplayer-2.2/Imakefile' -a "${1}" != "-c" ; then 
  87.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/Imakefile'\"
  88. else
  89. echo shar: Extracting \"'xcdplayer-2.2/Imakefile'\" \(1786 characters\)
  90. sed "s/^X//" >'xcdplayer-2.2/Imakefile' <<'END_OF_FILE'
  91. X/*
  92. X * Copyright (C) 1990 Regents of the University of California.
  93. X *
  94. X * Permission to use, copy, modify, distribute, and sell this software and
  95. X * its documentation for any purpose is hereby granted without fee,
  96. X * provided that the above copyright notice appear in all copies and that
  97. X * both that copyright notice and this permission notice appear in
  98. X * supporting documentation, and that the name of the University of
  99. X * California not be used in advertising or publicity pertaining to
  100. X * distribution of the software without specific, written prior
  101. X * permission.  the University of California makes no representations
  102. X * about the suitability of this software for any purpose.  It is provided
  103. X * "as is" without express or implied warranty.
  104. X */
  105. X
  106. XLOCAL_LIBRARIES = XawClientLibs
  107. XLINTLIBS = -lXaw -lXt -lX11
  108. X#ifdef SunArchitecture
  109. X           SRCS = main.c top_setup.c logo_setup.c button_setup.c cdrom_callb.c\
  110. X                  cdrom_sun.c internals.c shuffle.c program.c leds.c debug.c 
  111. X
  112. X           OBJS = main.o top_setup.o logo_setup.o button_setup.o cdrom_callb.o\
  113. X                  cdrom_sun.o internals.o shuffle.o program.o leds.o debug.o
  114. X#endif
  115. X#ifdef SGIArchitecture
  116. XLOCAL_LIBRARIES = XawClientLibs -lcdaudio -lds -laudio -lm
  117. X           SRCS = main.c top_setup.c logo_setup.c button_setup.c cdrom_callb.c\
  118. X                  cdrom_sgi.c internals.c shuffle.c program.c leds.c debug.c 
  119. X
  120. X           OBJS = main.o top_setup.o logo_setup.o button_setup.o cdrom_callb.o\
  121. X                  cdrom_sgi.o internals.o shuffle.o program.o leds.o debug.o
  122. X#endif
  123. X
  124. X       PROGRAMS = xcdplayer
  125. X
  126. XAllTarget(${PROGRAMS})
  127. X
  128. XComplexProgramTarget(xcdplayer)
  129. XNormalProgramTarget(cdinfo, cdinfo.o,,,)
  130. XNormalProgramTarget(cdgrab, cdgrab.o,,,)
  131. XNormalLintTarget(${SRCS})
  132. XInstallAppDefaults(XCdplayer)
  133. END_OF_FILE
  134. if test 1786 -ne `wc -c <'xcdplayer-2.2/Imakefile'`; then
  135.     echo shar: \"'xcdplayer-2.2/Imakefile'\" unpacked with wrong size!
  136. fi
  137. # end of 'xcdplayer-2.2/Imakefile'
  138. fi
  139. if test -f 'xcdplayer-2.2/MANIFEST' -a "${1}" != "-c" ; then 
  140.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/MANIFEST'\"
  141. else
  142. echo shar: Extracting \"'xcdplayer-2.2/MANIFEST'\" \(1800 characters\)
  143. sed "s/^X//" >'xcdplayer-2.2/MANIFEST' <<'END_OF_FILE'
  144. X   File Name        Archive #    Description
  145. X-----------------------------------------------------------
  146. X xcdplayer-2.2/Imakefile    1    
  147. X xcdplayer-2.2/MANIFEST     1    
  148. X xcdplayer-2.2/Makefile     5    
  149. X xcdplayer-2.2/README       2    
  150. X xcdplayer-2.2/XCdplayer.ad  2    
  151. X xcdplayer-2.2/XCdplayer.ad.sgi  2    
  152. X xcdplayer-2.2/XCdplayer.ad.sun  2    
  153. X xcdplayer-2.2/audio.xbm    1    
  154. X xcdplayer-2.2/button_setup.c  4    
  155. X xcdplayer-2.2/cdgrab.c     2    
  156. X xcdplayer-2.2/cdinfo.c     2    
  157. X xcdplayer-2.2/cdrom_callb.c  4    
  158. X xcdplayer-2.2/cdrom_globs.h  1    
  159. X xcdplayer-2.2/cdrom_sgi.c  5    
  160. X xcdplayer-2.2/cdrom_sgi.h  1    
  161. X xcdplayer-2.2/cdrom_sun.c  3    
  162. X xcdplayer-2.2/cdrom_sun.h  1    
  163. X xcdplayer-2.2/circle00.xbm  1    
  164. X xcdplayer-2.2/circle0a.xbm  1    
  165. X xcdplayer-2.2/circle0b.xbm  1    
  166. X xcdplayer-2.2/circle0c.xbm  1    
  167. X xcdplayer-2.2/circle0d.xbm  1    
  168. X xcdplayer-2.2/circle0e.xbm  1    
  169. X xcdplayer-2.2/circle0f.xbm  1    
  170. X xcdplayer-2.2/circle0g.xbm  1    
  171. X xcdplayer-2.2/circle0h.xbm  1    
  172. X xcdplayer-2.2/circle0x.xbm  1    
  173. X xcdplayer-2.2/copyright.h  1    
  174. X xcdplayer-2.2/cycle.xbm    1    
  175. X xcdplayer-2.2/debug.c      1    
  176. X xcdplayer-2.2/debug.h      1    
  177. X xcdplayer-2.2/eject.xbm    1    
  178. X xcdplayer-2.2/ff.xbm       1    
  179. X xcdplayer-2.2/internals.c  3    
  180. X xcdplayer-2.2/leds.c       1    
  181. X xcdplayer-2.2/logo.xbm     1    
  182. X xcdplayer-2.2/logo_setup.c  3    
  183. X xcdplayer-2.2/main.c       1    
  184. X xcdplayer-2.2/next.xbm     1    
  185. X xcdplayer-2.2/patchlevel.h  1    
  186. X xcdplayer-2.2/pause.xbm    1    
  187. X xcdplayer-2.2/pgm.xbm      1    
  188. X xcdplayer-2.2/play.xbm     1    
  189. X xcdplayer-2.2/prev.xbm     1    
  190. X xcdplayer-2.2/program.c    4    
  191. X xcdplayer-2.2/quit.xbm     1    
  192. X xcdplayer-2.2/rewind.xbm   1    
  193. X xcdplayer-2.2/shuffle.c    1    
  194. X xcdplayer-2.2/shuffle.xbm  1    
  195. X xcdplayer-2.2/stop.xbm     1    
  196. X xcdplayer-2.2/thumb.xbm    1    
  197. X xcdplayer-2.2/top_setup.c  1    
  198. X xcdplayer-2.2/version.h    1    
  199. X xcdplayer-2.2/xcdplayer.1  2    
  200. END_OF_FILE
  201. if test 1800 -ne `wc -c <'xcdplayer-2.2/MANIFEST'`; then
  202.     echo shar: \"'xcdplayer-2.2/MANIFEST'\" unpacked with wrong size!
  203. fi
  204. # end of 'xcdplayer-2.2/MANIFEST'
  205. fi
  206. if test -f 'xcdplayer-2.2/audio.xbm' -a "${1}" != "-c" ; then 
  207.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/audio.xbm'\"
  208. else
  209. echo shar: Extracting \"'xcdplayer-2.2/audio.xbm'\" \(278 characters\)
  210. sed "s/^X//" >'xcdplayer-2.2/audio.xbm' <<'END_OF_FILE'
  211. X#define audio_width 16
  212. X#define audio_height 16
  213. Xstatic char audio_bits[] = {
  214. X   0x00, 0x00, 0x80, 0x19, 0xc0, 0x31, 0x67, 0x65, 0x35, 0x4d, 0x1d, 0xc9,
  215. X   0x05, 0x99, 0x05, 0x91, 0x05, 0x91, 0x05, 0x99, 0x1d, 0xc9, 0x35, 0x4d,
  216. X   0x67, 0x65, 0xc0, 0x31, 0x80, 0x19, 0x00, 0x00};
  217. END_OF_FILE
  218. if test 278 -ne `wc -c <'xcdplayer-2.2/audio.xbm'`; then
  219.     echo shar: \"'xcdplayer-2.2/audio.xbm'\" unpacked with wrong size!
  220. fi
  221. # end of 'xcdplayer-2.2/audio.xbm'
  222. fi
  223. if test -f 'xcdplayer-2.2/cdrom_globs.h' -a "${1}" != "-c" ; then 
  224.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/cdrom_globs.h'\"
  225. else
  226. echo shar: Extracting \"'xcdplayer-2.2/cdrom_globs.h'\" \(3433 characters\)
  227. sed "s/^X//" >'xcdplayer-2.2/cdrom_globs.h' <<'END_OF_FILE'
  228. X/*
  229. X * Copyright (C) 1990 Regents of the University of California.
  230. X *
  231. X * Permission to use, copy, modify, distribute, and sell this software and
  232. X * its documentation for any purpose is hereby granted without fee,
  233. X * provided that the above copyright notice appear in all copies and that
  234. X * both that copyright notice and this permission notice appear in
  235. X * supporting documentation, and that the name of the University of
  236. X * California not be used in advertising or publicity pertaining to
  237. X * distribution of the software without specific, written prior
  238. X * permission.  the University of California makes no representations
  239. X * about the suitability of this software for any purpose.  It is provided
  240. X * "as is" without express or implied warranty.
  241. X */
  242. X
  243. X#include "version.h"
  244. X#include "patchlevel.h"
  245. X
  246. X/* shorthand */
  247. X# define rootwin(x)    RootWindow(XtDisplay(x), XtWindow(x))
  248. X
  249. X/*
  250. X * number of milliseconds to sleep between
  251. X * checking to see what the current track
  252. X * is.
  253. X */
  254. X# define TIMER_PERIOD        ((unsigned long) 250)
  255. X
  256. X# define BACKWARDS    -1
  257. X# define FORWARDS    1
  258. X
  259. Xextern Widget        top_setup();
  260. Xextern Widget        main_setup();
  261. X
  262. Xextern void        cb_cdrom_play();
  263. Xextern void        cb_cdrom_pause();
  264. Xextern void        cb_cdrom_stop();
  265. Xextern void        cb_cdrom_previous();
  266. Xextern void        cb_cdrom_next();
  267. Xextern void        cb_cdrom_eject();
  268. X#ifdef sgi
  269. Xextern void        cb_cdrom_audio();
  270. X#endif
  271. Xextern void        cb_cdrom_cycle();
  272. Xextern void        cb_cdrom_quit();
  273. Xextern void        cb_cdrom_shuffle();
  274. Xextern void        cb_cdrom_rewind();
  275. Xextern void        cb_cdrom_ff();
  276. Xextern void        cb_cdrom_program();
  277. X
  278. Xextern int        cdrom_get_curtime();
  279. Xextern void        cdrom_timer_on();
  280. Xextern void        cdrom_timer_off();
  281. Xextern int        cdrom_play();
  282. Xextern void        cdrom_reset();
  283. Xextern void        cdrom_rewind();
  284. Xextern void        cdrom_ff();
  285. X
  286. Xextern void        logo_setup();
  287. Xextern void        track_button_update();
  288. Xextern void        track_button_set();
  289. Xextern void        track_button_reset();
  290. Xextern void        timer_button_update();
  291. Xextern void        timer_button_set();
  292. Xextern void        timer_button_reset();
  293. X
  294. Xextern void        button_setup();
  295. Xextern void        top_start();
  296. Xextern void        update_status();
  297. Xextern void        play_button_set();
  298. Xextern void        play_button_reset();
  299. Xextern void        pause_button_reset();
  300. Xextern void        eject_button_reset();
  301. Xextern void        shuffle_button_set();
  302. Xextern void        shuffle_button_reset();
  303. Xextern void        pgm_button_set();
  304. Xextern void        pgm_button_reset();
  305. Xextern void         update_title();
  306. X
  307. X
  308. Xextern void        leds_stop();
  309. Xextern void        leds_update();
  310. X
  311. Xextern void        shuffle_setup();
  312. Xextern unsigned char    shuffle_next_track();
  313. Xextern unsigned char    shuffle_prev_track();
  314. X
  315. Xextern void        program_form_setup();
  316. Xextern void        popup_program_form();
  317. Xextern int          program_time_remaining();
  318. Xextern unsigned char    program_resume();
  319. Xextern unsigned char    program_goto_next_track();
  320. Xextern unsigned char    program_goto_prev_track();
  321. Xextern unsigned char    program_next_track();
  322. Xextern unsigned char    program_prev_track();
  323. Xextern void        program_add_track();
  324. Xextern void        program_cancel();
  325. X
  326. Xextern int        cdrom_open();
  327. Xextern int        cdrom_init();
  328. X
  329. X
  330. Xextern Boolean        display_timer;
  331. X
  332. Xextern XtAppContext    appc;
  333. X
  334. Xextern char        *file;
  335. Xextern char        *device;
  336. Xextern char             info_filename[];
  337. Xextern char         *disc_title;
  338. Xextern unsigned int     timer_fsecs;
  339. X
  340. X
  341. Xextern float        volbase;
  342. Xextern float        volpcent;
  343. Xextern int        replayThreshold;
  344. Xextern float        scanPauseInterval;
  345. Xextern int          scanSkipInterval;
  346. Xextern float          pausePauseInterval;
  347. Xextern int          pauseSkipInterval;
  348. END_OF_FILE
  349. if test 3433 -ne `wc -c <'xcdplayer-2.2/cdrom_globs.h'`; then
  350.     echo shar: \"'xcdplayer-2.2/cdrom_globs.h'\" unpacked with wrong size!
  351. fi
  352. # end of 'xcdplayer-2.2/cdrom_globs.h'
  353. fi
  354. if test -f 'xcdplayer-2.2/cdrom_sgi.h' -a "${1}" != "-c" ; then 
  355.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/cdrom_sgi.h'\"
  356. else
  357. echo shar: Extracting \"'xcdplayer-2.2/cdrom_sgi.h'\" \(3953 characters\)
  358. sed "s/^X//" >'xcdplayer-2.2/cdrom_sgi.h' <<'END_OF_FILE'
  359. X/*
  360. X * Copyright (C) 1990 Regents of the University of California.
  361. X *
  362. X * Permission to use, copy, modify, distribute, and sell this software and
  363. X * its documentation for any purpose is hereby granted without fee,
  364. X * provided that the above copyright notice appear in all copies and that
  365. X * both that copyright notice and this permission notice appear in
  366. X * supporting documentation, and that the name of the University of
  367. X * California not be used in advertising or publicity pertaining to
  368. X * distribution of the software without specific, written prior
  369. X * permission.  the University of California makes no representations
  370. X * about the suitability of this software for any purpose.  It is provided
  371. X * "as is" without express or implied warranty.
  372. X */
  373. X
  374. X# include <X11/Intrinsic.h>
  375. X# include <cdaudio.h>
  376. X# include <audio.h>
  377. X
  378. X# define NOTITLESTR    "No Title"
  379. X# define NODISCSTR    "No Disc"
  380. X
  381. X# define VAL2PCT(a)    (double)(1.0 - 1.0 * (exp((-7.0/255.0) * a)))
  382. X# define PCT2VAL(a)    (int)((-255.0/7.0) * log(1.0 * (1.0 - a)))
  383. X
  384. X# define bit(n)            (1 << (n))
  385. X
  386. X/* bits for cdrom_state */
  387. X# define CDROM_STATE_PLAY    bit(0)
  388. X# define CDROM_STATE_PAUSE    bit(1)
  389. X# define CDROM_STATE_STOP    bit(2)
  390. X# define CDROM_STATE_EJECTED    bit(3)
  391. X# define CDROM_STATE_CYCLE    bit(4)
  392. X# define CDROM_STATE_SHUFFLE    bit(5)
  393. X# define CDROM_STATE_PROGRAM    bit(6)
  394. X
  395. X/* return codes from cdrom_status() */
  396. X# define CDROM_INVALID        CD_STILL
  397. X# define CDROM_PLAYING        CD_PLAYING
  398. X# define CDROM_PAUSED        CD_PAUSED
  399. X# define CDROM_COMPLETED    CD_READY
  400. X# define CDROM_ERROR        CD_ERROR
  401. X# define CDROM_NO_STATUS    CD_NODISC
  402. X# define CD_ABORT        0xfe
  403. X
  404. X#define CDROM_LEADOUT   0xAA
  405. X#define CDROM_MSF    0x02
  406. X#define    STILL_MOUNTED    1
  407. X#define    UNMOUNTED    0
  408. X#define SAMPLES_PER_FRAME (CDDA_DATASIZE/2)
  409. X
  410. Xstruct cdrom_tocentry {
  411. X    unsigned char cdte_track;
  412. X    unsigned char cdte_adr  :4;
  413. X    unsigned char cdte_ctrl :4;
  414. X    unsigned char cdte_format;
  415. X    union {
  416. X        struct {
  417. X            int minute;
  418. X            int second;
  419. X            int frame;
  420. X        } msf;
  421. X        int lba;
  422. X    } cdte_addr;
  423. X    unsigned char cdte_datamode;
  424. X};
  425. X
  426. Xstruct msf {
  427. X    int   minute;
  428. X    int   second;
  429. X    int   frame;
  430. X};
  431. X
  432. Xstruct prognode {
  433. X    unsigned char    track;
  434. X    Widget        button;
  435. X    struct prognode *next;
  436. X    struct prognode *prev;
  437. X};
  438. X
  439. Xtypedef struct _cdrom_info {
  440. X    unsigned char    curtrack;    /* current track playing    */
  441. X    unsigned char    mintrack;    /* first audio track        */
  442. X    unsigned char    maxtrack;    /* last audio track        */
  443. X    unsigned char    ntracks;    /* size of random track list    */
  444. X    int        duration;    /* seconds played so far    */
  445. X    int        state;        /* state of cd-rom drive    */
  446. X    short        currand;    /* index into random track list */
  447. X    short        lastprog;    /* number of selections in prog.*/
  448. X    unsigned short    *times;        /* duration of each track    */
  449. X    struct msf     *addrs;        /* starting minute/second/frames*/
  450. X    struct prognode    *selection;    /* currently selected prog. trk    */
  451. X    struct prognode *program;    /* list of programmed tracks    */
  452. X    int        scsi_audio;    /* true if scsi audio is avail. */
  453. X} cdrom_info;
  454. X
  455. X/* The below is a repeat of the above for SGIs using scsi_audio (the    */
  456. X/* CD* calls don't return the info anymore).                 */
  457. Xtypedef struct _cdrom_audio_info {
  458. X    unsigned char    curtrack;
  459. X    int        duration;
  460. X    int        state;
  461. X    int        start_track;    /* Start track for play        */
  462. X    int        end_track;    /* End track for play        */
  463. X    int        child_pid;    /* PID of child process        */
  464. X} cdrom_audio_info;
  465. X
  466. Xstruct _cdrom_shmem {
  467. X    cdrom_audio_info    cdrom_audio_cdi;
  468. X    struct msf        cdrom_audio_msf;
  469. X};
  470. X
  471. Xextern int        cdrom_open();
  472. Xextern void        cdrom_close();
  473. Xextern int        cdrom_start();
  474. Xextern int        cdrom_stop();
  475. Xextern int        cdrom_eject();
  476. Xextern int        cdrom_pause();
  477. Xextern int        cdrom_resume();
  478. Xextern int        cdrom_volume();
  479. Xextern int        cdrom_get_times();
  480. Xextern int        cdrom_get_curtrack();
  481. Xextern int        cdrom_get_msf();
  482. Xextern int        cdrom_get_curmsf();
  483. Xextern int        cdrom_play_track();
  484. Xextern int        cdrom_play_msf();
  485. Xextern int        cdrom_read_tocentry();
  486. Xextern int        cdrom_read_tochdr();
  487. Xextern int        cdrom_status();
  488. X
  489. Xextern cdrom_info    cdi;
  490. Xextern char        *disc_title;
  491. Xextern char        program_str[];
  492. Xextern char        *cdInfoDir;
  493. X
  494. END_OF_FILE
  495. if test 3953 -ne `wc -c <'xcdplayer-2.2/cdrom_sgi.h'`; then
  496.     echo shar: \"'xcdplayer-2.2/cdrom_sgi.h'\" unpacked with wrong size!
  497. fi
  498. # end of 'xcdplayer-2.2/cdrom_sgi.h'
  499. fi
  500. if test -f 'xcdplayer-2.2/cdrom_sun.h' -a "${1}" != "-c" ; then 
  501.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/cdrom_sun.h'\"
  502. else
  503. echo shar: Extracting \"'xcdplayer-2.2/cdrom_sun.h'\" \(2872 characters\)
  504. sed "s/^X//" >'xcdplayer-2.2/cdrom_sun.h' <<'END_OF_FILE'
  505. X/*
  506. X * Copyright (C) 1990 Regents of the University of California.
  507. X *
  508. X * Permission to use, copy, modify, distribute, and sell this software and
  509. X * its documentation for any purpose is hereby granted without fee,
  510. X * provided that the above copyright notice appear in all copies and that
  511. X * both that copyright notice and this permission notice appear in
  512. X * supporting documentation, and that the name of the University of
  513. X * California not be used in advertising or publicity pertaining to
  514. X * distribution of the software without specific, written prior
  515. X * permission.  the University of California makes no representations
  516. X * about the suitability of this software for any purpose.  It is provided
  517. X * "as is" without express or implied warranty.
  518. X */
  519. X
  520. X# include <X11/Intrinsic.h>
  521. X
  522. X# define NOTITLESTR     "No Title"
  523. X# define NODISCSTR      "No Disc"
  524. X
  525. X# define bit(n)            (1 << (n))
  526. X
  527. X/* bits for cdrom_state */
  528. X# define CDROM_STATE_PLAY    bit(0)
  529. X# define CDROM_STATE_PAUSE    bit(1)
  530. X# define CDROM_STATE_STOP    bit(2)
  531. X# define CDROM_STATE_EJECTED    bit(3)
  532. X# define CDROM_STATE_CYCLE    bit(4)
  533. X# define CDROM_STATE_SHUFFLE    bit(5)
  534. X# define CDROM_STATE_PROGRAM    bit(6)
  535. X
  536. X/* return codes from cdrom_status() */
  537. X# define CDROM_INVALID        1
  538. X# define CDROM_PLAYING        2
  539. X# define CDROM_PAUSED        3
  540. X# define CDROM_COMPLETED    4
  541. X# define CDROM_ERROR        5
  542. X# define CDROM_NO_STATUS    6
  543. X
  544. X#define    STILL_MOUNTED    1
  545. X#define    UNMOUNTED    0
  546. X
  547. Xstruct msf {
  548. X    unsigned char   minute;
  549. X    unsigned char   second;
  550. X    unsigned char   frame;
  551. X};
  552. X
  553. Xstruct prognode {
  554. X    unsigned char    track;
  555. X    Widget        button;
  556. X    struct prognode *next;
  557. X    struct prognode *prev;
  558. X};
  559. X
  560. Xtypedef struct _cdrom_info {
  561. X    unsigned char    curtrack;    /* current track playing    */
  562. X    unsigned char    mintrack;    /* first audio track        */
  563. X    unsigned char    maxtrack;    /* last audio track        */
  564. X    unsigned char    ntracks;    /* size of random track list    */
  565. X    int        duration;    /* seconds played so far    */
  566. X    int        state;        /* state of cd-rom drive    */
  567. X    short        currand;    /* index into random track list */
  568. X    short        lastprog;    /* number of selections in prog.*/
  569. X    unsigned short    *times;        /* duration of each track    */
  570. X    struct msf     *addrs;        /* starting minute/second/frames*/
  571. X    struct prognode    *selection;    /* currently selected prog. trk    */
  572. X    struct prognode *program;    /* list of programmed tracks    */
  573. X} cdrom_info;
  574. X
  575. Xextern int        cdrom_open();
  576. Xextern void        cdrom_close();
  577. Xextern int        cdrom_start();
  578. Xextern int        cdrom_stop();
  579. Xextern int        cdrom_eject();
  580. Xextern int        cdrom_pause();
  581. Xextern int        cdrom_resume();
  582. Xextern int        cdrom_volume();
  583. Xextern int        cdrom_get_times();
  584. Xextern int        cdrom_get_curtrack();
  585. Xextern int        cdrom_get_msf();
  586. Xextern int        cdrom_get_curmsf();
  587. Xextern int        cdrom_play_track();
  588. Xextern int        cdrom_play_msf();
  589. Xextern int        cdrom_read_tocentry();
  590. Xextern int        cdrom_read_tochdr();
  591. Xextern int        cdrom_status();
  592. X
  593. Xextern cdrom_info    cdi;
  594. Xextern char        *disc_title;
  595. Xextern char        program_str[];
  596. Xextern char        *cdInfoDir;
  597. X
  598. END_OF_FILE
  599. if test 2872 -ne `wc -c <'xcdplayer-2.2/cdrom_sun.h'`; then
  600.     echo shar: \"'xcdplayer-2.2/cdrom_sun.h'\" unpacked with wrong size!
  601. fi
  602. # end of 'xcdplayer-2.2/cdrom_sun.h'
  603. fi
  604. if test -f 'xcdplayer-2.2/circle00.xbm' -a "${1}" != "-c" ; then 
  605.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle00.xbm'\"
  606. else
  607. echo shar: Extracting \"'xcdplayer-2.2/circle00.xbm'\" \(482 characters\)
  608. sed "s/^X//" >'xcdplayer-2.2/circle00.xbm' <<'END_OF_FILE'
  609. X#define circle00_width 21
  610. X#define circle00_height 21
  611. Xstatic char circle00_bits[] = {
  612. X   0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0xff, 0x00, 0xf0, 0xe0, 0x01,
  613. X   0x38, 0x84, 0x03, 0x1c, 0x1b, 0x07, 0x4c, 0x44, 0x06, 0x0e, 0x04, 0x0e,
  614. X   0x26, 0x95, 0x0c, 0x26, 0x8a, 0x0c, 0xd6, 0x71, 0x0d, 0x26, 0x8a, 0x0c,
  615. X   0x26, 0x95, 0x0c, 0x0e, 0x04, 0x0e, 0x4c, 0x44, 0x06, 0x1c, 0x1b, 0x07,
  616. X   0x38, 0x84, 0x03, 0xf0, 0xe0, 0x01, 0xe0, 0xff, 0x00, 0x80, 0x3f, 0x00,
  617. X   0x00, 0x00, 0x00};
  618. END_OF_FILE
  619. if test 482 -ne `wc -c <'xcdplayer-2.2/circle00.xbm'`; then
  620.     echo shar: \"'xcdplayer-2.2/circle00.xbm'\" unpacked with wrong size!
  621. fi
  622. # end of 'xcdplayer-2.2/circle00.xbm'
  623. fi
  624. if test -f 'xcdplayer-2.2/circle0a.xbm' -a "${1}" != "-c" ; then 
  625.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0a.xbm'\"
  626. else
  627. echo shar: Extracting \"'xcdplayer-2.2/circle0a.xbm'\" \(482 characters\)
  628. sed "s/^X//" >'xcdplayer-2.2/circle0a.xbm' <<'END_OF_FILE'
  629. X#define circle0a_width 21
  630. X#define circle0a_height 21
  631. Xstatic char circle0a_bits[] = {
  632. X   0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x80, 0xff, 0x00, 0x00, 0xe0, 0x01,
  633. X   0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0e,
  634. X   0x00, 0x00, 0x0c, 0x00, 0x04, 0x0c, 0x00, 0x0e, 0x0c, 0x00, 0x04, 0x0c,
  635. X   0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  636. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  637. X   0x00, 0x00, 0x00};
  638. END_OF_FILE
  639. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0a.xbm'`; then
  640.     echo shar: \"'xcdplayer-2.2/circle0a.xbm'\" unpacked with wrong size!
  641. fi
  642. # end of 'xcdplayer-2.2/circle0a.xbm'
  643. fi
  644. if test -f 'xcdplayer-2.2/circle0b.xbm' -a "${1}" != "-c" ; then 
  645.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0b.xbm'\"
  646. else
  647. echo shar: Extracting \"'xcdplayer-2.2/circle0b.xbm'\" \(482 characters\)
  648. sed "s/^X//" >'xcdplayer-2.2/circle0b.xbm' <<'END_OF_FILE'
  649. X#define circle0b_width 21
  650. X#define circle0b_height 21
  651. Xstatic char circle0b_bits[] = {
  652. X   0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xe0, 0x01,
  653. X   0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0e,
  654. X   0x00, 0x00, 0x0c, 0x00, 0x04, 0x0c, 0x00, 0x0a, 0x0c, 0x00, 0x04, 0x0c,
  655. X   0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x06, 0x00, 0x00, 0x07,
  656. X   0x00, 0x80, 0x03, 0x00, 0xe0, 0x01, 0x00, 0xe0, 0x00, 0x00, 0x20, 0x00,
  657. X   0x00, 0x00, 0x00};
  658. END_OF_FILE
  659. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0b.xbm'`; then
  660.     echo shar: \"'xcdplayer-2.2/circle0b.xbm'\" unpacked with wrong size!
  661. fi
  662. # end of 'xcdplayer-2.2/circle0b.xbm'
  663. fi
  664. if test -f 'xcdplayer-2.2/circle0c.xbm' -a "${1}" != "-c" ; then 
  665.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0c.xbm'\"
  666. else
  667. echo shar: Extracting \"'xcdplayer-2.2/circle0c.xbm'\" \(482 characters\)
  668. sed "s/^X//" >'xcdplayer-2.2/circle0c.xbm' <<'END_OF_FILE'
  669. X#define circle0c_width 21
  670. X#define circle0c_height 21
  671. Xstatic char circle0c_bits[] = {
  672. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  673. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
  674. X   0x00, 0x00, 0x0c, 0x00, 0x04, 0x0c, 0x00, 0x0e, 0x0c, 0x00, 0x04, 0x0c,
  675. X   0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x06, 0x00, 0x00, 0x07,
  676. X   0x00, 0x80, 0x03, 0x00, 0xe0, 0x01, 0x80, 0xff, 0x00, 0x80, 0x3f, 0x00,
  677. X   0x00, 0x00, 0x00};
  678. END_OF_FILE
  679. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0c.xbm'`; then
  680.     echo shar: \"'xcdplayer-2.2/circle0c.xbm'\" unpacked with wrong size!
  681. fi
  682. # end of 'xcdplayer-2.2/circle0c.xbm'
  683. fi
  684. if test -f 'xcdplayer-2.2/circle0d.xbm' -a "${1}" != "-c" ; then 
  685.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0d.xbm'\"
  686. else
  687. echo shar: Extracting \"'xcdplayer-2.2/circle0d.xbm'\" \(482 characters\)
  688. sed "s/^X//" >'xcdplayer-2.2/circle0d.xbm' <<'END_OF_FILE'
  689. X#define circle0d_width 21
  690. X#define circle0d_height 21
  691. Xstatic char circle0d_bits[] = {
  692. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  693. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  694. X   0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x04, 0x00,
  695. X   0x00, 0x00, 0x00, 0x0e, 0x00, 0x0e, 0x0c, 0x00, 0x06, 0x1c, 0x00, 0x07,
  696. X   0x38, 0x80, 0x03, 0xf0, 0xe0, 0x01, 0xe0, 0xff, 0x00, 0x80, 0x3f, 0x00,
  697. X   0x00, 0x00, 0x00};
  698. END_OF_FILE
  699. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0d.xbm'`; then
  700.     echo shar: \"'xcdplayer-2.2/circle0d.xbm'\" unpacked with wrong size!
  701. fi
  702. # end of 'xcdplayer-2.2/circle0d.xbm'
  703. fi
  704. if test -f 'xcdplayer-2.2/circle0e.xbm' -a "${1}" != "-c" ; then 
  705.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0e.xbm'\"
  706. else
  707. echo shar: Extracting \"'xcdplayer-2.2/circle0e.xbm'\" \(482 characters\)
  708. sed "s/^X//" >'xcdplayer-2.2/circle0e.xbm' <<'END_OF_FILE'
  709. X#define circle0e_width 21
  710. X#define circle0e_height 21
  711. Xstatic char circle0e_bits[] = {
  712. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  713. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
  714. X   0x06, 0x00, 0x00, 0x06, 0x04, 0x00, 0x06, 0x0e, 0x00, 0x06, 0x04, 0x00,
  715. X   0x06, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x1c, 0x00, 0x00,
  716. X   0x38, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x80, 0x3f, 0x00,
  717. X   0x00, 0x00, 0x00};
  718. END_OF_FILE
  719. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0e.xbm'`; then
  720.     echo shar: \"'xcdplayer-2.2/circle0e.xbm'\" unpacked with wrong size!
  721. fi
  722. # end of 'xcdplayer-2.2/circle0e.xbm'
  723. fi
  724. if test -f 'xcdplayer-2.2/circle0f.xbm' -a "${1}" != "-c" ; then 
  725.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0f.xbm'\"
  726. else
  727. echo shar: Extracting \"'xcdplayer-2.2/circle0f.xbm'\" \(482 characters\)
  728. sed "s/^X//" >'xcdplayer-2.2/circle0f.xbm' <<'END_OF_FILE'
  729. X#define circle0f_width 21
  730. X#define circle0f_height 21
  731. Xstatic char circle0f_bits[] = {
  732. X   0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xf0, 0x00, 0x00,
  733. X   0x38, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e, 0x00, 0x00,
  734. X   0x06, 0x00, 0x00, 0x06, 0x04, 0x00, 0x06, 0x0a, 0x00, 0x06, 0x04, 0x00,
  735. X   0x06, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x1c, 0x00, 0x00,
  736. X   0x38, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x80, 0x00, 0x00,
  737. X   0x00, 0x00, 0x00};
  738. END_OF_FILE
  739. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0f.xbm'`; then
  740.     echo shar: \"'xcdplayer-2.2/circle0f.xbm'\" unpacked with wrong size!
  741. fi
  742. # end of 'xcdplayer-2.2/circle0f.xbm'
  743. fi
  744. if test -f 'xcdplayer-2.2/circle0g.xbm' -a "${1}" != "-c" ; then 
  745.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0g.xbm'\"
  746. else
  747. echo shar: Extracting \"'xcdplayer-2.2/circle0g.xbm'\" \(482 characters\)
  748. sed "s/^X//" >'xcdplayer-2.2/circle0g.xbm' <<'END_OF_FILE'
  749. X#define circle0g_width 21
  750. X#define circle0g_height 21
  751. Xstatic char circle0g_bits[] = {
  752. X   0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0x3f, 0x00, 0xf0, 0x00, 0x00,
  753. X   0x38, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e, 0x00, 0x00,
  754. X   0x06, 0x00, 0x00, 0x06, 0x04, 0x00, 0x06, 0x0e, 0x00, 0x06, 0x04, 0x00,
  755. X   0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  756. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  757. X   0x00, 0x00, 0x00};
  758. END_OF_FILE
  759. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0g.xbm'`; then
  760.     echo shar: \"'xcdplayer-2.2/circle0g.xbm'\" unpacked with wrong size!
  761. fi
  762. # end of 'xcdplayer-2.2/circle0g.xbm'
  763. fi
  764. if test -f 'xcdplayer-2.2/circle0h.xbm' -a "${1}" != "-c" ; then 
  765.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0h.xbm'\"
  766. else
  767. echo shar: Extracting \"'xcdplayer-2.2/circle0h.xbm'\" \(482 characters\)
  768. sed "s/^X//" >'xcdplayer-2.2/circle0h.xbm' <<'END_OF_FILE'
  769. X#define circle0h_width 21
  770. X#define circle0h_height 21
  771. Xstatic char circle0h_bits[] = {
  772. X   0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0xff, 0x00, 0xf0, 0xe0, 0x01,
  773. X   0x38, 0x80, 0x03, 0x1c, 0x00, 0x07, 0x0c, 0x00, 0x06, 0x0e, 0x00, 0x0e,
  774. X   0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x04, 0x00,
  775. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  776. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  777. X   0x00, 0x00, 0x00};
  778. END_OF_FILE
  779. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0h.xbm'`; then
  780.     echo shar: \"'xcdplayer-2.2/circle0h.xbm'\" unpacked with wrong size!
  781. fi
  782. # end of 'xcdplayer-2.2/circle0h.xbm'
  783. fi
  784. if test -f 'xcdplayer-2.2/circle0x.xbm' -a "${1}" != "-c" ; then 
  785.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/circle0x.xbm'\"
  786. else
  787. echo shar: Extracting \"'xcdplayer-2.2/circle0x.xbm'\" \(482 characters\)
  788. sed "s/^X//" >'xcdplayer-2.2/circle0x.xbm' <<'END_OF_FILE'
  789. X#define circle0x_width 21
  790. X#define circle0x_height 21
  791. Xstatic char circle0x_bits[] = {
  792. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  793. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  794. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  795. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  796. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  797. X   0x00, 0x00, 0x00};
  798. END_OF_FILE
  799. if test 482 -ne `wc -c <'xcdplayer-2.2/circle0x.xbm'`; then
  800.     echo shar: \"'xcdplayer-2.2/circle0x.xbm'\" unpacked with wrong size!
  801. fi
  802. # end of 'xcdplayer-2.2/circle0x.xbm'
  803. fi
  804. if test -f 'xcdplayer-2.2/copyright.h' -a "${1}" != "-c" ; then 
  805.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/copyright.h'\"
  806. else
  807. echo shar: Extracting \"'xcdplayer-2.2/copyright.h'\" \(825 characters\)
  808. sed "s/^X//" >'xcdplayer-2.2/copyright.h' <<'END_OF_FILE'
  809. X/*
  810. X * Copyright (C) 1990 Regents of the University of California.
  811. X *
  812. X * Permission to use, copy, modify, distribute, and sell this software and
  813. X * its documentation for any purpose is hereby granted without fee,
  814. X * provided that the above copyright notice appear in all copies and that
  815. X * both that copyright notice and this permission notice appear in
  816. X * supporting documentation, and that the name of the University of
  817. X * California not be used in advertising or publicity pertaining to
  818. X * distribution of the software without specific, written prior
  819. X * permission.  the University of California makes no representations
  820. X * about the suitability of this software for any purpose.  It is provided
  821. X * "as is" without express or implied warranty.
  822. X */
  823. X
  824. X/*
  825. X * Additional material Copyright (C) 1992 Dan Rich and Will Sadkin
  826. X */
  827. END_OF_FILE
  828. if test 825 -ne `wc -c <'xcdplayer-2.2/copyright.h'`; then
  829.     echo shar: \"'xcdplayer-2.2/copyright.h'\" unpacked with wrong size!
  830. fi
  831. # end of 'xcdplayer-2.2/copyright.h'
  832. fi
  833. if test -f 'xcdplayer-2.2/cycle.xbm' -a "${1}" != "-c" ; then 
  834.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/cycle.xbm'\"
  835. else
  836. echo shar: Extracting \"'xcdplayer-2.2/cycle.xbm'\" \(278 characters\)
  837. sed "s/^X//" >'xcdplayer-2.2/cycle.xbm' <<'END_OF_FILE'
  838. X#define cycle_width 16
  839. X#define cycle_height 16
  840. Xstatic char cycle_bits[] = {
  841. X   0x00, 0x00, 0xc0, 0x07, 0xf0, 0x5f, 0x38, 0x7c, 0x0c, 0x78, 0x04, 0x70,
  842. X   0x00, 0x78, 0x00, 0x7c, 0x00, 0x00, 0x7e, 0x00, 0x3e, 0x40, 0x1e, 0x60,
  843. X   0x3e, 0x38, 0xfa, 0x1f, 0xe0, 0x07, 0x00, 0x00};
  844. END_OF_FILE
  845. if test 278 -ne `wc -c <'xcdplayer-2.2/cycle.xbm'`; then
  846.     echo shar: \"'xcdplayer-2.2/cycle.xbm'\" unpacked with wrong size!
  847. fi
  848. # end of 'xcdplayer-2.2/cycle.xbm'
  849. fi
  850. if test -f 'xcdplayer-2.2/debug.c' -a "${1}" != "-c" ; then 
  851.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/debug.c'\"
  852. else
  853. echo shar: Extracting \"'xcdplayer-2.2/debug.c'\" \(1152 characters\)
  854. sed "s/^X//" >'xcdplayer-2.2/debug.c' <<'END_OF_FILE'
  855. X/*
  856. X * Copyright (C) 1990 Regents of the University of California.
  857. X *
  858. X * Permission to use, copy, modify, distribute, and sell this software and
  859. X * its documentation for any purpose is hereby granted without fee,
  860. X * provided that the above copyright notice appear in all copies and that
  861. X * both that copyright notice and this permission notice appear in
  862. X * supporting documentation, and that the name of the University of
  863. X * California not be used in advertising or publicity pertaining to
  864. X * distribution of the software without specific, written prior
  865. X * permission.  the University of California makes no representations
  866. X * about the suitability of this software for any purpose.  It is provided
  867. X * "as is" without express or implied warranty.
  868. X */
  869. X
  870. X# include <X11/Intrinsic.h>
  871. X
  872. X# include <varargs.h>
  873. X# include <stdio.h>
  874. X
  875. X# include "debug.h"
  876. X
  877. X/* VARARGS */
  878. Xvoid
  879. Xdebug_printf(va_alist)
  880. X    va_dcl
  881. X{
  882. X    va_list        args;
  883. X    char        *fmt;
  884. X
  885. X    va_start(args);
  886. X
  887. X    /*
  888. X     * first arg is whether or not to print.
  889. X     */
  890. X    if ((va_arg(args, int) == 0) || (debug == False))
  891. X        return;
  892. X
  893. X    fmt = va_arg(args, char *);
  894. X    vfprintf(stdout, fmt, args);
  895. X
  896. X    fflush(stdout);
  897. X
  898. X    va_end(args);
  899. X}
  900. END_OF_FILE
  901. if test 1152 -ne `wc -c <'xcdplayer-2.2/debug.c'`; then
  902.     echo shar: \"'xcdplayer-2.2/debug.c'\" unpacked with wrong size!
  903. fi
  904. # end of 'xcdplayer-2.2/debug.c'
  905. fi
  906. if test -f 'xcdplayer-2.2/debug.h' -a "${1}" != "-c" ; then 
  907.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/debug.h'\"
  908. else
  909. echo shar: Extracting \"'xcdplayer-2.2/debug.h'\" \(798 characters\)
  910. sed "s/^X//" >'xcdplayer-2.2/debug.h' <<'END_OF_FILE'
  911. X/*
  912. X * Copyright (C) 1990 Regents of the University of California.
  913. X *
  914. X * Permission to use, copy, modify, distribute, and sell this software and
  915. X * its documentation for any purpose is hereby granted without fee,
  916. X * provided that the above copyright notice appear in all copies and that
  917. X * both that copyright notice and this permission notice appear in
  918. X * supporting documentation, and that the name of the University of
  919. X * California not be used in advertising or publicity pertaining to
  920. X * distribution of the software without specific, written prior
  921. X * permission.  the University of California makes no representations
  922. X * about the suitability of this software for any purpose.  It is provided
  923. X * "as is" without express or implied warranty.
  924. X */
  925. X
  926. Xextern void    debug_print();
  927. X
  928. Xextern char    debug;
  929. END_OF_FILE
  930. if test 798 -ne `wc -c <'xcdplayer-2.2/debug.h'`; then
  931.     echo shar: \"'xcdplayer-2.2/debug.h'\" unpacked with wrong size!
  932. fi
  933. # end of 'xcdplayer-2.2/debug.h'
  934. fi
  935. if test -f 'xcdplayer-2.2/eject.xbm' -a "${1}" != "-c" ; then 
  936.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/eject.xbm'\"
  937. else
  938. echo shar: Extracting \"'xcdplayer-2.2/eject.xbm'\" \(278 characters\)
  939. sed "s/^X//" >'xcdplayer-2.2/eject.xbm' <<'END_OF_FILE'
  940. X#define eject_width 16
  941. X#define eject_height 16
  942. Xstatic char eject_bits[] = {
  943. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x06, 0x60, 0x0c,
  944. X   0x30, 0x18, 0x18, 0x30, 0xf8, 0x3f, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00,
  945. X   0xf8, 0x3f, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00};
  946. END_OF_FILE
  947. if test 278 -ne `wc -c <'xcdplayer-2.2/eject.xbm'`; then
  948.     echo shar: \"'xcdplayer-2.2/eject.xbm'\" unpacked with wrong size!
  949. fi
  950. # end of 'xcdplayer-2.2/eject.xbm'
  951. fi
  952. if test -f 'xcdplayer-2.2/ff.xbm' -a "${1}" != "-c" ; then 
  953.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/ff.xbm'\"
  954. else
  955. echo shar: Extracting \"'xcdplayer-2.2/ff.xbm'\" \(269 characters\)
  956. sed "s/^X//" >'xcdplayer-2.2/ff.xbm' <<'END_OF_FILE'
  957. X#define ff_width 16
  958. X#define ff_height 16
  959. Xstatic char ff_bits[] = {
  960. X   0x00, 0x00, 0xc6, 0x00, 0x8c, 0x01, 0x18, 0x03, 0x30, 0x06, 0x60, 0x0c,
  961. X   0xc0, 0x18, 0x80, 0x31, 0xc0, 0x18, 0x60, 0x0c, 0x30, 0x06, 0x18, 0x03,
  962. X   0x8c, 0x01, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00};
  963. END_OF_FILE
  964. if test 269 -ne `wc -c <'xcdplayer-2.2/ff.xbm'`; then
  965.     echo shar: \"'xcdplayer-2.2/ff.xbm'\" unpacked with wrong size!
  966. fi
  967. # end of 'xcdplayer-2.2/ff.xbm'
  968. fi
  969. if test -f 'xcdplayer-2.2/leds.c' -a "${1}" != "-c" ; then 
  970.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/leds.c'\"
  971. else
  972. echo shar: Extracting \"'xcdplayer-2.2/leds.c'\" \(3496 characters\)
  973. sed "s/^X//" >'xcdplayer-2.2/leds.c' <<'END_OF_FILE'
  974. X/*
  975. X * Copyright (C) 1990 Regents of the University of California.
  976. X *
  977. X * Permission to use, copy, modify, distribute, and sell this software and
  978. X * its documentation for any purpose is hereby granted without fee,
  979. X * provided that the above copyright notice appear in all copies and that
  980. X * both that copyright notice and this permission notice appear in
  981. X * supporting documentation, and that the name of the University of
  982. X * California not be used in advertising or publicity pertaining to
  983. X * distribution of the software without specific, written prior
  984. X * permission.  the University of California makes no representations
  985. X * about the suitability of this software for any purpose.  It is provided
  986. X * "as is" without express or implied warranty.
  987. X */
  988. X
  989. X# include <X11/Intrinsic.h>
  990. X# include <X11/StringDefs.h>
  991. X# include <X11/Xaw/Label.h>
  992. X
  993. X# include "cdrom_globs.h"
  994. X
  995. X# include "circle0a.xbm"
  996. X# include "circle0b.xbm"
  997. X# include "circle0c.xbm"
  998. X# include "circle0d.xbm"
  999. X# include "circle0e.xbm"
  1000. X# include "circle0f.xbm"
  1001. X# include "circle0g.xbm"
  1002. X# include "circle0h.xbm"
  1003. X# include "circle00.xbm"
  1004. X
  1005. Xstatic Widget    leds_label_widget;
  1006. X
  1007. X# define NUM_LEDS    8
  1008. X
  1009. Xstatic Pixmap    leds_pixmaps[NUM_LEDS];
  1010. Xstatic Pixmap    leds_pixmap;
  1011. X
  1012. Xvoid
  1013. Xleds_update(Direction) 
  1014. Xint    Direction;
  1015. X{
  1016. X    static int    ctr = 1;
  1017. X    Arg        args[1];
  1018. X    Pixmap        leds;
  1019. X
  1020. X        
  1021. X    if (Direction == BACKWARDS)
  1022. X        leds = leds_pixmaps[(ctr += NUM_LEDS - 1) % NUM_LEDS];
  1023. X    else
  1024. X        leds = leds_pixmaps[ctr++ % NUM_LEDS];
  1025. X
  1026. X    XtSetArg(args[0], XtNbitmap, (XtArgVal) leds);
  1027. X    XtSetValues(leds_label_widget, args, 1);
  1028. X}
  1029. X
  1030. Xvoid
  1031. Xleds_stop() {
  1032. X    Arg        args[1];
  1033. X
  1034. X    XtSetArg(args[0], XtNbitmap, (XtArgVal) leds_pixmap);
  1035. X    XtSetValues(leds_label_widget, args, 1);
  1036. X}
  1037. X
  1038. Xvoid
  1039. Xleds_label_setup(parent_widget)
  1040. X    Widget        parent_widget;
  1041. X{
  1042. X    Arg        args[1];
  1043. X
  1044. X    leds_label_widget = XtCreateManagedWidget("ledsLabel",
  1045. X                          labelWidgetClass,
  1046. X                          parent_widget,
  1047. X                          (ArgList) NULL, 0);
  1048. X
  1049. X    leds_pixmaps[0] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1050. X                        rootwin(leds_label_widget),
  1051. X                        circle0a_bits,
  1052. X                        circle0a_width, circle0a_height);
  1053. X    leds_pixmaps[1] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1054. X                        rootwin(leds_label_widget),
  1055. X                        circle0b_bits,
  1056. X                        circle0b_width, circle0b_height);
  1057. X    leds_pixmaps[2] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1058. X                        rootwin(leds_label_widget),
  1059. X                        circle0c_bits,
  1060. X                        circle0c_width, circle0c_height);
  1061. X    leds_pixmaps[3] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1062. X                        rootwin(leds_label_widget),
  1063. X                        circle0d_bits,
  1064. X                        circle0d_width, circle0d_height);
  1065. X    leds_pixmaps[4] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1066. X                        rootwin(leds_label_widget),
  1067. X                        circle0e_bits,
  1068. X                        circle0e_width, circle0e_height);
  1069. X    leds_pixmaps[5] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1070. X                        rootwin(leds_label_widget),
  1071. X                        circle0f_bits,
  1072. X                        circle0f_width, circle0f_height);
  1073. X    leds_pixmaps[6] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1074. X                        rootwin(leds_label_widget),
  1075. X                        circle0g_bits,
  1076. X                        circle0g_width, circle0g_height);
  1077. X    leds_pixmaps[7] = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1078. X                        rootwin(leds_label_widget),
  1079. X                        circle0h_bits,
  1080. X                        circle0h_width, circle0h_height);
  1081. X
  1082. X    leds_pixmap = XCreateBitmapFromData(XtDisplay(leds_label_widget),
  1083. X                         rootwin(leds_label_widget),
  1084. X                         circle00_bits,
  1085. X                         circle00_width, circle00_height);
  1086. X
  1087. X    XtSetArg(args[0], XtNbitmap, (XtArgVal) leds_pixmap);
  1088. X    XtSetValues(leds_label_widget, args, 1);
  1089. X}
  1090. END_OF_FILE
  1091. if test 3496 -ne `wc -c <'xcdplayer-2.2/leds.c'`; then
  1092.     echo shar: \"'xcdplayer-2.2/leds.c'\" unpacked with wrong size!
  1093. fi
  1094. # end of 'xcdplayer-2.2/leds.c'
  1095. fi
  1096. if test -f 'xcdplayer-2.2/logo.xbm' -a "${1}" != "-c" ; then 
  1097.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/logo.xbm'\"
  1098. else
  1099. echo shar: Extracting \"'xcdplayer-2.2/logo.xbm'\" \(1739 characters\)
  1100. sed "s/^X//" >'xcdplayer-2.2/logo.xbm' <<'END_OF_FILE'
  1101. X#define logo_width 56
  1102. X#define logo_height 38
  1103. Xstatic char logo_bits[] = {
  1104. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1105. X   0xff, 0xff, 0xff, 0xff, 0x9f, 0xb3, 0x8b, 0x73, 0xc6, 0xff, 0x0f, 0x6c,
  1106. X   0x2d, 0x69, 0xad, 0xed, 0xff, 0xef, 0xed, 0xad, 0x0a, 0xa1, 0xef, 0xff,
  1107. X   0xef, 0x6d, 0xad, 0xeb, 0xad, 0xed, 0xff, 0xef, 0x9d, 0xb3, 0xeb, 0x6d,
  1108. X   0xee, 0xff, 0xef, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xfd, 0xff,
  1109. X   0xff, 0xff, 0xff, 0xff, 0xef, 0xfd, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0,
  1110. X   0x0d, 0x3c, 0x00, 0x0f, 0xf0, 0xdf, 0xff, 0xed, 0xdd, 0x7f, 0xf7, 0xef,
  1111. X   0xef, 0xff, 0xed, 0xed, 0x7f, 0xfb, 0xdf, 0xef, 0xf3, 0xed, 0xed, 0x7f,
  1112. X   0x7b, 0xde, 0xef, 0xed, 0xed, 0xed, 0x00, 0xbb, 0xdd, 0xef, 0xed, 0xed,
  1113. X   0x6d, 0xff, 0xbb, 0xdd, 0xef, 0xed, 0xed, 0xed, 0xc0, 0xbb, 0xc1, 0xef,
  1114. X   0xed, 0xed, 0xed, 0xbf, 0xbb, 0xff, 0xef, 0xed, 0xed, 0xed, 0x7f, 0xbb,
  1115. X   0xff, 0xef, 0xed, 0xed, 0xdd, 0x7f, 0xbb, 0xc1, 0xef, 0xed, 0xed, 0x3d,
  1116. X   0x70, 0xbb, 0xdd, 0xef, 0xed, 0xed, 0xfd, 0x6f, 0xbb, 0xdd, 0xef, 0xed,
  1117. X   0xed, 0x0d, 0x70, 0xbb, 0xdd, 0xef, 0xf3, 0xed, 0xed, 0x7f, 0x7b, 0xde,
  1118. X   0xef, 0xff, 0xed, 0xed, 0x7f, 0xfb, 0xdf, 0xdf, 0xff, 0xed, 0xed, 0xbf,
  1119. X   0xf7, 0xef, 0x3f, 0x00, 0x0c, 0x0c, 0xc0, 0x0f, 0xf0, 0xff, 0xff, 0xff,
  1120. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1121. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x8d, 0x62, 0xf6, 0xb3, 0xc5,
  1122. X   0xe6, 0x6f, 0xf5, 0xb6, 0xf5, 0xad, 0xb5, 0xda, 0x6f, 0x95, 0x36, 0xf4,
  1123. X   0xa1, 0xb5, 0xda, 0x6f, 0xb5, 0xb6, 0xf5, 0xad, 0xb5, 0xda, 0x8f, 0x8d,
  1124. X   0xb6, 0x85, 0x6d, 0xc6, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1125. X   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  1126. X   0xff, 0xff};
  1127. END_OF_FILE
  1128. if test 1739 -ne `wc -c <'xcdplayer-2.2/logo.xbm'`; then
  1129.     echo shar: \"'xcdplayer-2.2/logo.xbm'\" unpacked with wrong size!
  1130. fi
  1131. # end of 'xcdplayer-2.2/logo.xbm'
  1132. fi
  1133. if test -f 'xcdplayer-2.2/main.c' -a "${1}" != "-c" ; then 
  1134.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/main.c'\"
  1135. else
  1136. echo shar: Extracting \"'xcdplayer-2.2/main.c'\" \(1660 characters\)
  1137. sed "s/^X//" >'xcdplayer-2.2/main.c' <<'END_OF_FILE'
  1138. X/*
  1139. X * Copyright (C) 1990 Regents of the University of California.
  1140. X *
  1141. X * Permission to use, copy, modify, distribute, and sell this software and
  1142. X * its documentation for any purpose is hereby granted without fee,
  1143. X * provided that the above copyright notice appear in all copies and that
  1144. X * both that copyright notice and this permission notice appear in
  1145. X * supporting documentation, and that the name of the University of
  1146. X * California not be used in advertising or publicity pertaining to
  1147. X * distribution of the software without specific, written prior
  1148. X * permission.  the University of California makes no representations
  1149. X * about the suitability of this software for any purpose.  It is provided
  1150. X * "as is" without express or implied warranty.
  1151. X */
  1152. X
  1153. X# include <stdio.h>
  1154. X
  1155. X# include <X11/Intrinsic.h>
  1156. X# include <X11/StringDefs.h>
  1157. X
  1158. X# include "debug.h"
  1159. X# include "cdrom_globs.h"
  1160. X
  1161. XWidget        top_form;
  1162. X
  1163. Xvoid
  1164. Xmain(argc, argv)
  1165. X    int        argc;
  1166. X    char        **argv;
  1167. X{
  1168. X    static void    chk_debug();
  1169. X
  1170. X    chk_debug(argc, argv);
  1171. X
  1172. X    /* gets resources, & creates main form */
  1173. X    top_form = top_setup(argc, argv);
  1174. X
  1175. X#if 0
  1176. X    if (cdrom_open() == -1) /* (uses a resource, so done after top_setup) */
  1177. X        exit(1); /* perhaps a bit drastic */
  1178. X#endif
  1179. X    cdrom_open();
  1180. X
  1181. X    logo_setup(top_form);
  1182. X
  1183. X    button_setup(top_form);
  1184. X
  1185. X    program_form_setup(top_form);
  1186. X
  1187. X    top_start();
  1188. X
  1189. X    update_status(NULL, NULL);
  1190. X
  1191. X    XtAppMainLoop(appc);
  1192. X
  1193. X    exit(0);
  1194. X}
  1195. X
  1196. Xstatic void
  1197. Xchk_debug(argc, argv)
  1198. X    int    argc;
  1199. X    char    **argv;
  1200. X{
  1201. X    int    i;
  1202. X
  1203. X    /* ugly hack */
  1204. X    for (i = 1; i < argc; i++) {
  1205. X        if (strcmp(argv[i], "-debug") == 0) {
  1206. X            debug = True;
  1207. X            break;
  1208. X        }
  1209. X    }
  1210. X}
  1211. X
  1212. Xvoid
  1213. Xusage() {
  1214. X    (void) fprintf(stderr, "usage: xcdplayer [-debug]\n");
  1215. X
  1216. X    exit(1);
  1217. X}
  1218. END_OF_FILE
  1219. if test 1660 -ne `wc -c <'xcdplayer-2.2/main.c'`; then
  1220.     echo shar: \"'xcdplayer-2.2/main.c'\" unpacked with wrong size!
  1221. fi
  1222. # end of 'xcdplayer-2.2/main.c'
  1223. fi
  1224. if test -f 'xcdplayer-2.2/next.xbm' -a "${1}" != "-c" ; then 
  1225.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/next.xbm'\"
  1226. else
  1227. echo shar: Extracting \"'xcdplayer-2.2/next.xbm'\" \(275 characters\)
  1228. sed "s/^X//" >'xcdplayer-2.2/next.xbm' <<'END_OF_FILE'
  1229. X#define next_width 16
  1230. X#define next_height 16
  1231. Xstatic char next_bits[] = {
  1232. X   0x00, 0x60, 0xc6, 0x60, 0x8c, 0x61, 0x18, 0x63, 0x30, 0x66, 0x60, 0x6c,
  1233. X   0xc0, 0x78, 0x80, 0x71, 0xc0, 0x78, 0x60, 0x6c, 0x30, 0x66, 0x18, 0x63,
  1234. X   0x8c, 0x61, 0xc6, 0x60, 0x00, 0x60, 0x00, 0x00};
  1235. END_OF_FILE
  1236. if test 275 -ne `wc -c <'xcdplayer-2.2/next.xbm'`; then
  1237.     echo shar: \"'xcdplayer-2.2/next.xbm'\" unpacked with wrong size!
  1238. fi
  1239. # end of 'xcdplayer-2.2/next.xbm'
  1240. fi
  1241. if test -f 'xcdplayer-2.2/patchlevel.h' -a "${1}" != "-c" ; then 
  1242.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/patchlevel.h'\"
  1243. else
  1244. echo shar: Extracting \"'xcdplayer-2.2/patchlevel.h'\" \(21 characters\)
  1245. sed "s/^X//" >'xcdplayer-2.2/patchlevel.h' <<'END_OF_FILE'
  1246. X#define PATCHLEVEL 0
  1247. END_OF_FILE
  1248. if test 21 -ne `wc -c <'xcdplayer-2.2/patchlevel.h'`; then
  1249.     echo shar: \"'xcdplayer-2.2/patchlevel.h'\" unpacked with wrong size!
  1250. fi
  1251. # end of 'xcdplayer-2.2/patchlevel.h'
  1252. fi
  1253. if test -f 'xcdplayer-2.2/pause.xbm' -a "${1}" != "-c" ; then 
  1254.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/pause.xbm'\"
  1255. else
  1256. echo shar: Extracting \"'xcdplayer-2.2/pause.xbm'\" \(278 characters\)
  1257. sed "s/^X//" >'xcdplayer-2.2/pause.xbm' <<'END_OF_FILE'
  1258. X#define pause_width 16
  1259. X#define pause_height 16
  1260. Xstatic char pause_bits[] = {
  1261. X   0x00, 0x00, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06,
  1262. X   0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06, 0x30, 0x06,
  1263. X   0x30, 0x06, 0x30, 0x06, 0x00, 0x00, 0x00, 0x00};
  1264. END_OF_FILE
  1265. if test 278 -ne `wc -c <'xcdplayer-2.2/pause.xbm'`; then
  1266.     echo shar: \"'xcdplayer-2.2/pause.xbm'\" unpacked with wrong size!
  1267. fi
  1268. # end of 'xcdplayer-2.2/pause.xbm'
  1269. fi
  1270. if test -f 'xcdplayer-2.2/pgm.xbm' -a "${1}" != "-c" ; then 
  1271.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/pgm.xbm'\"
  1272. else
  1273. echo shar: Extracting \"'xcdplayer-2.2/pgm.xbm'\" \(272 characters\)
  1274. sed "s/^X//" >'xcdplayer-2.2/pgm.xbm' <<'END_OF_FILE'
  1275. X#define pgm_width 16
  1276. X#define pgm_height 16
  1277. Xstatic char pgm_bits[] = {
  1278. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xd9,
  1279. X   0x6b, 0xfb, 0x29, 0xa8, 0xaf, 0x8b, 0x61, 0x8b, 0xc1, 0x89, 0x00, 0x00,
  1280. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  1281. END_OF_FILE
  1282. if test 272 -ne `wc -c <'xcdplayer-2.2/pgm.xbm'`; then
  1283.     echo shar: \"'xcdplayer-2.2/pgm.xbm'\" unpacked with wrong size!
  1284. fi
  1285. # end of 'xcdplayer-2.2/pgm.xbm'
  1286. fi
  1287. if test -f 'xcdplayer-2.2/play.xbm' -a "${1}" != "-c" ; then 
  1288.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/play.xbm'\"
  1289. else
  1290. echo shar: Extracting \"'xcdplayer-2.2/play.xbm'\" \(319 characters\)
  1291. sed "s/^X//" >'xcdplayer-2.2/play.xbm' <<'END_OF_FILE'
  1292. X#define play_width 16
  1293. X#define play_height 16
  1294. X#define play_x_hot -1
  1295. X#define play_y_hot -1
  1296. Xstatic char play_bits[] = {
  1297. X   0x00, 0x00, 0xe0, 0x00, 0xe0, 0x01, 0xe0, 0x03, 0x60, 0x07, 0x60, 0x0e,
  1298. X   0x60, 0x1c, 0x60, 0x38, 0x60, 0x1c, 0x60, 0x0e, 0x60, 0x07, 0xe0, 0x03,
  1299. X   0xe0, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00};
  1300. END_OF_FILE
  1301. if test 319 -ne `wc -c <'xcdplayer-2.2/play.xbm'`; then
  1302.     echo shar: \"'xcdplayer-2.2/play.xbm'\" unpacked with wrong size!
  1303. fi
  1304. # end of 'xcdplayer-2.2/play.xbm'
  1305. fi
  1306. if test -f 'xcdplayer-2.2/prev.xbm' -a "${1}" != "-c" ; then 
  1307.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/prev.xbm'\"
  1308. else
  1309. echo shar: Extracting \"'xcdplayer-2.2/prev.xbm'\" \(275 characters\)
  1310. sed "s/^X//" >'xcdplayer-2.2/prev.xbm' <<'END_OF_FILE'
  1311. X#define prev_width 16
  1312. X#define prev_height 16
  1313. Xstatic char prev_bits[] = {
  1314. X   0x06, 0x00, 0x06, 0x63, 0x86, 0x31, 0xc6, 0x18, 0x66, 0x0c, 0x36, 0x06,
  1315. X   0x1e, 0x03, 0x8e, 0x01, 0x1e, 0x03, 0x36, 0x06, 0x66, 0x0c, 0xc6, 0x18,
  1316. X   0x86, 0x31, 0x06, 0x63, 0x06, 0x00, 0x00, 0x00};
  1317. END_OF_FILE
  1318. if test 275 -ne `wc -c <'xcdplayer-2.2/prev.xbm'`; then
  1319.     echo shar: \"'xcdplayer-2.2/prev.xbm'\" unpacked with wrong size!
  1320. fi
  1321. # end of 'xcdplayer-2.2/prev.xbm'
  1322. fi
  1323. if test -f 'xcdplayer-2.2/quit.xbm' -a "${1}" != "-c" ; then 
  1324.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/quit.xbm'\"
  1325. else
  1326. echo shar: Extracting \"'xcdplayer-2.2/quit.xbm'\" \(240 characters\)
  1327. sed "s/^X//" >'xcdplayer-2.2/quit.xbm' <<'END_OF_FILE'
  1328. X#define quit_width 16
  1329. X#define quit_height 16
  1330. Xstatic char quit_bits[] = {
  1331. X 0x80,0x1f,0x80,0x1f,0xc0,0x0f,0xc0,0x07,0xe0,0x03,0xe0,0x01,0xf0,0x0f,0xf0,
  1332. X 0x07,0xc0,0x03,0xe0,0x01,0xf0,0x00,0x70,0x00,0x38,0x00,0x18,0x00,0x0c,0x00,
  1333. X 0x04,0x00};
  1334. END_OF_FILE
  1335. if test 240 -ne `wc -c <'xcdplayer-2.2/quit.xbm'`; then
  1336.     echo shar: \"'xcdplayer-2.2/quit.xbm'\" unpacked with wrong size!
  1337. fi
  1338. # end of 'xcdplayer-2.2/quit.xbm'
  1339. fi
  1340. if test -f 'xcdplayer-2.2/rewind.xbm' -a "${1}" != "-c" ; then 
  1341.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/rewind.xbm'\"
  1342. else
  1343. echo shar: Extracting \"'xcdplayer-2.2/rewind.xbm'\" \(281 characters\)
  1344. sed "s/^X//" >'xcdplayer-2.2/rewind.xbm' <<'END_OF_FILE'
  1345. X#define rewind_width 16
  1346. X#define rewind_height 16
  1347. Xstatic char rewind_bits[] = {
  1348. X   0x00, 0x00, 0x00, 0x63, 0x80, 0x31, 0xc0, 0x18, 0x60, 0x0c, 0x30, 0x06,
  1349. X   0x18, 0x03, 0x8c, 0x01, 0x18, 0x03, 0x30, 0x06, 0x60, 0x0c, 0xc0, 0x18,
  1350. X   0x80, 0x31, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00};
  1351. END_OF_FILE
  1352. if test 281 -ne `wc -c <'xcdplayer-2.2/rewind.xbm'`; then
  1353.     echo shar: \"'xcdplayer-2.2/rewind.xbm'\" unpacked with wrong size!
  1354. fi
  1355. # end of 'xcdplayer-2.2/rewind.xbm'
  1356. fi
  1357. if test -f 'xcdplayer-2.2/shuffle.c' -a "${1}" != "-c" ; then 
  1358.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/shuffle.c'\"
  1359. else
  1360. echo shar: Extracting \"'xcdplayer-2.2/shuffle.c'\" \(2670 characters\)
  1361. sed "s/^X//" >'xcdplayer-2.2/shuffle.c' <<'END_OF_FILE'
  1362. X/*
  1363. X * Copyright (C) 1990 Regents of the University of California.
  1364. X *
  1365. X * Permission to use, copy, modify, distribute, and sell this software and
  1366. X * its documentation for any purpose is hereby granted without fee,
  1367. X * provided that the above copyright notice appear in all copies and that
  1368. X * both that copyright notice and this permission notice appear in
  1369. X * supporting documentation, and that the name of the University of
  1370. X * California not be used in advertising or publicity pertaining to
  1371. X * distribution of the software without specific, written prior
  1372. X * permission.  the University of California makes no representations
  1373. X * about the suitability of this software for any purpose.  It is provided
  1374. X * "as is" without express or implied warranty.
  1375. X */
  1376. X
  1377. X# include <X11/Intrinsic.h>
  1378. X# include <stdio.h>
  1379. X
  1380. X# include "debug.h"
  1381. X# include "cdrom_globs.h"
  1382. X#ifdef sun
  1383. X# include "cdrom_sun.h"
  1384. X#endif
  1385. X#ifdef sgi
  1386. X# include "cdrom_sgi.h"
  1387. X#endif
  1388. X
  1389. X# define ran(min, max)  ((random() % ((max) - (min))) + (min))
  1390. X
  1391. Xstatic unsigned char    *random_tracks;
  1392. X
  1393. Xvoid
  1394. Xshuffle_setup() {
  1395. X    extern char    *malloc();
  1396. X#ifdef sgi
  1397. X    extern time_t    time(time_t *);
  1398. X#else
  1399. X    extern long    time();
  1400. X#endif
  1401. X    extern long    random();
  1402. X    unsigned long    seed, now;
  1403. X    char        state[128];
  1404. X    int        try;
  1405. X    int        i, j;
  1406. X
  1407. X#if 0 
  1408. X    if (cdi.state & CDROM_STATE_EJECTED) {
  1409. X        return;
  1410. X    }
  1411. X#endif
  1412. X
  1413. X    if (cdi.maxtrack == cdi.mintrack) {
  1414. X        cdi.currand = -1;
  1415. X        return;
  1416. X    }
  1417. X
  1418. X    cdi.ntracks = (cdi.maxtrack - cdi.mintrack) + 1;
  1419. X
  1420. X    cdi.currand = 0;
  1421. X
  1422. X    if (random_tracks != NULL) {
  1423. X        free(random_tracks);
  1424. X        random_tracks = NULL;
  1425. X    }
  1426. X
  1427. X    if ((random_tracks = (unsigned char *) malloc(cdi.ntracks)) == NULL) {
  1428. X        perror("malloc");
  1429. X        exit(1);
  1430. X    }
  1431. X
  1432. X    now = time((long *) 0);
  1433. X    seed = now & 0xfff;
  1434. X
  1435. X    initstate(seed, state, sizeof(state));
  1436. X
  1437. X    /*
  1438. X     * set up the random_tracks array
  1439. X     */
  1440. X    for (i = 0; i < cdi.ntracks; i++) {
  1441. X        for (;;) {
  1442. X            try = ran(cdi.mintrack, cdi.maxtrack+1);
  1443. X
  1444. X            if (i == 0)
  1445. X                break;
  1446. X
  1447. X            for (j = 0; j < i; j++) {
  1448. X                if (random_tracks[j] == try)
  1449. X                    goto again;
  1450. X            }
  1451. X
  1452. X            /* not a repeat */
  1453. X            break;
  1454. X
  1455. X            again:;
  1456. X        }
  1457. X
  1458. X        random_tracks[i] = try;
  1459. X    }
  1460. X
  1461. X    if (debug == True) {
  1462. X        debug_printf(1, "shuffle_setup: ");
  1463. X        for (i = 0; i < cdi.ntracks; i++)
  1464. X            debug_printf(1, "%d ", random_tracks[i]);
  1465. X        debug_printf(1, "\n");
  1466. X    }
  1467. X}
  1468. X
  1469. Xunsigned char
  1470. Xshuffle_next_track() {
  1471. X    if (cdi.currand == -1)
  1472. X        return(cdi.mintrack);
  1473. X
  1474. X    if (cdi.currand == cdi.ntracks) {
  1475. X        fprintf(stderr, "shuffle_get_track: ran off end\n");
  1476. X        return(cdi.mintrack);
  1477. X    }
  1478. X
  1479. X    return(random_tracks[cdi.currand++]);
  1480. X}
  1481. X
  1482. Xunsigned char
  1483. Xshuffle_prev_track() {
  1484. X    if (cdi.currand == -1)
  1485. X        return(cdi.mintrack);
  1486. X
  1487. X    cdi.currand -= 2;
  1488. X
  1489. X    if (cdi.currand < 0)
  1490. X        cdi.currand = 0;
  1491. X
  1492. X    return(random_tracks[cdi.currand++]);
  1493. X}
  1494. END_OF_FILE
  1495. if test 2670 -ne `wc -c <'xcdplayer-2.2/shuffle.c'`; then
  1496.     echo shar: \"'xcdplayer-2.2/shuffle.c'\" unpacked with wrong size!
  1497. fi
  1498. # end of 'xcdplayer-2.2/shuffle.c'
  1499. fi
  1500. if test -f 'xcdplayer-2.2/shuffle.xbm' -a "${1}" != "-c" ; then 
  1501.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/shuffle.xbm'\"
  1502. else
  1503. echo shar: Extracting \"'xcdplayer-2.2/shuffle.xbm'\" \(284 characters\)
  1504. sed "s/^X//" >'xcdplayer-2.2/shuffle.xbm' <<'END_OF_FILE'
  1505. X#define shuffle_width 16
  1506. X#define shuffle_height 16
  1507. Xstatic char shuffle_bits[] = {
  1508. X   0x80, 0x03, 0xc0, 0x07, 0xc0, 0x0c, 0x40, 0x0c, 0x00, 0x0c, 0x0e, 0x07,
  1509. X   0x9f, 0x3b, 0xb3, 0x7d, 0x31, 0xcc, 0xb0, 0xc5, 0x9c, 0xc1, 0x0e, 0x70,
  1510. X   0x06, 0x38, 0x00, 0x18, 0x06, 0x00, 0x06, 0x18};
  1511. END_OF_FILE
  1512. if test 284 -ne `wc -c <'xcdplayer-2.2/shuffle.xbm'`; then
  1513.     echo shar: \"'xcdplayer-2.2/shuffle.xbm'\" unpacked with wrong size!
  1514. fi
  1515. # end of 'xcdplayer-2.2/shuffle.xbm'
  1516. fi
  1517. if test -f 'xcdplayer-2.2/stop.xbm' -a "${1}" != "-c" ; then 
  1518.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/stop.xbm'\"
  1519. else
  1520. echo shar: Extracting \"'xcdplayer-2.2/stop.xbm'\" \(275 characters\)
  1521. sed "s/^X//" >'xcdplayer-2.2/stop.xbm' <<'END_OF_FILE'
  1522. X#define stop_width 16
  1523. X#define stop_height 16
  1524. Xstatic char stop_bits[] = {
  1525. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0xf8, 0x3f, 0x18, 0x30,
  1526. X   0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30, 0x18, 0x30,
  1527. X   0xf8, 0x3f, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00};
  1528. END_OF_FILE
  1529. if test 275 -ne `wc -c <'xcdplayer-2.2/stop.xbm'`; then
  1530.     echo shar: \"'xcdplayer-2.2/stop.xbm'\" unpacked with wrong size!
  1531. fi
  1532. # end of 'xcdplayer-2.2/stop.xbm'
  1533. fi
  1534. if test -f 'xcdplayer-2.2/thumb.xbm' -a "${1}" != "-c" ; then 
  1535.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/thumb.xbm'\"
  1536. else
  1537. echo shar: Extracting \"'xcdplayer-2.2/thumb.xbm'\" \(278 characters\)
  1538. sed "s/^X//" >'xcdplayer-2.2/thumb.xbm' <<'END_OF_FILE'
  1539. X#define thumb_width 16
  1540. X#define thumb_height 16
  1541. Xstatic char thumb_bits[] = {
  1542. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1543. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1544. X   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
  1545. END_OF_FILE
  1546. if test 278 -ne `wc -c <'xcdplayer-2.2/thumb.xbm'`; then
  1547.     echo shar: \"'xcdplayer-2.2/thumb.xbm'\" unpacked with wrong size!
  1548. fi
  1549. # end of 'xcdplayer-2.2/thumb.xbm'
  1550. fi
  1551. if test -f 'xcdplayer-2.2/top_setup.c' -a "${1}" != "-c" ; then 
  1552.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/top_setup.c'\"
  1553. else
  1554. echo shar: Extracting \"'xcdplayer-2.2/top_setup.c'\" \(4576 characters\)
  1555. sed "s/^X//" >'xcdplayer-2.2/top_setup.c' <<'END_OF_FILE'
  1556. X/*
  1557. X * Copyright (C) 1990 Regents of the University of California.
  1558. X *
  1559. X * Permission to use, copy, modify, distribute, and sell this software and
  1560. X * its documentation for any purpose is hereby granted without fee,
  1561. X * provided that the above copyright notice appear in all copies and that
  1562. X * both that copyright notice and this permission notice appear in
  1563. X * supporting documentation, and that the name of the University of
  1564. X * California not be used in advertising or publicity pertaining to
  1565. X * distribution of the software without specific, written prior
  1566. X * permission.  the University of California makes no representations
  1567. X * about the suitability of this software for any purpose.  It is provided
  1568. X * "as is" without express or implied warranty.
  1569. X */
  1570. X
  1571. X# include <X11/Intrinsic.h>
  1572. X# include <X11/StringDefs.h>
  1573. X# include <X11/Shell.h>
  1574. X# include <X11/Xaw/Form.h>
  1575. X
  1576. X# include <stdio.h>
  1577. X# include <string.h>
  1578. X
  1579. X# include "cdrom_globs.h"
  1580. X# include "debug.h"
  1581. X# include "logo.xbm"
  1582. X
  1583. XXtAppContext    appc;
  1584. Xchar        *file;
  1585. Xchar        *device;
  1586. XBoolean        debug        = False;
  1587. XBoolean        display_timer    = True;
  1588. Xfloat        volbase        = 187.0;
  1589. Xfloat        volpcent    = .267;
  1590. Xint        replayThreshold    = 4;
  1591. Xint        pauseSkipInterval    = 15;
  1592. Xint        scanSkipInterval    = 1;
  1593. Xfloat        scanPauseInterval    = .062;
  1594. Xfloat        pausePauseInterval    = .500;
  1595. Xchar        *cdInfoDir = NULL;
  1596. X
  1597. Xextern char    *getenv();
  1598. X
  1599. Xstatic Widget    top_shell;
  1600. XWidget    top_form_widget;
  1601. X
  1602. Xstatic XrmOptionDescRec options[] = {
  1603. X{ "-file",    ".file",    XrmoptionSepArg,    (caddr_t) NULL },
  1604. X{ "-device",    ".device",    XrmoptionSepArg,    (caddr_t) NULL },
  1605. X{ "-debug",    ".debug",    XrmoptionNoArg,        (caddr_t) "True" },
  1606. X{ "-displayTimer", ".displayTimer", XrmoptionNoArg,    (caddr_t) "True" },
  1607. X{ "-volBase",    ".volBase",    XrmoptionSepArg,    (caddr_t) 0 },
  1608. X{ "-volPcent",    ".volPcent",    XrmoptionSepArg,    (caddr_t) 0 },
  1609. X{ "-cdInfoDir",    ".cdInfoDir",    XrmoptionSepArg,    (caddr_t) NULL },
  1610. X};
  1611. X
  1612. Xstatic XtResource    resources[] = {
  1613. X    { "file", "File", XtRString, sizeof(String), (Cardinal) &file,
  1614. X          XtRString, (caddr_t) NULL },
  1615. X    { "device", "Device", XtRString, sizeof(String), (Cardinal) &device,
  1616. X          XtRString, (caddr_t) NULL },
  1617. X    { "debug", "Debug", XtRBoolean, sizeof(Boolean), (Cardinal) &debug,
  1618. X          XtRBoolean, (caddr_t) &debug },
  1619. X    { "displayTimer", "DisplayTimer", XtRBoolean, sizeof(Boolean),
  1620. X          (Cardinal) &display_timer, XtRBoolean,
  1621. X          (caddr_t) &display_timer },
  1622. X    { "volBase", "VolBase", XtRFloat, sizeof(float),
  1623. X          (Cardinal) &volbase, XtRFloat, (caddr_t) &volbase },
  1624. X    { "volPcent", "VolPcent", XtRFloat, sizeof(float),
  1625. X          (Cardinal) &volpcent, XtRFloat, (caddr_t) &volpcent },
  1626. X    { "replayThreshold", "replayThreshold", XtRInt, sizeof(int),
  1627. X          (Cardinal) &replayThreshold, XtRInt, 
  1628. X          (caddr_t) &replayThreshold },
  1629. X    { "scanSkipInterval", "scanSkipInterval", XtRInt, sizeof(int),
  1630. X          (Cardinal) &scanSkipInterval, XtRInt, 
  1631. X          (caddr_t) &scanSkipInterval },
  1632. X    { "scanPauseInterval", "scanPauseInterval", XtRFloat, sizeof(float),
  1633. X          (Cardinal) &scanPauseInterval, XtRFloat, 
  1634. X          (caddr_t) &scanPauseInterval },
  1635. X    { "pauseSkipInterval", "pauseSkipInterval", XtRInt, sizeof(int),
  1636. X          (Cardinal) &pauseSkipInterval, XtRInt, 
  1637. X          (caddr_t) &pauseSkipInterval },
  1638. X    { "pausePauseInterval", "pausePauseInterval", XtRFloat, sizeof(float),
  1639. X          (Cardinal) &pausePauseInterval, XtRFloat, 
  1640. X          (caddr_t) &pausePauseInterval },
  1641. X    { "cdInfoDir", "cdInfoDir", XtRString, sizeof(String), 
  1642. X          (Cardinal) &cdInfoDir, XtRString, (caddr_t) NULL },
  1643. X};
  1644. X
  1645. XWidget
  1646. Xtop_setup(argc, argv)
  1647. X    int        argc;
  1648. X    char        **argv;
  1649. X{
  1650. X    Display        *dpy;
  1651. X
  1652. X    Pixmap        icon_pixmap;
  1653. X    Arg        arg;
  1654. X    char        *s;
  1655. X
  1656. X    XtToolkitInitialize();
  1657. X
  1658. X    appc = XtCreateApplicationContext();
  1659. X
  1660. X    dpy = XtOpenDisplay(appc, NULL, "xcdplayer", "XCdplayer",
  1661. X                options, XtNumber(options),
  1662. X                (Cardinal *) &argc, argv);
  1663. X
  1664. X    if (dpy == NULL) {
  1665. X        fprintf(stderr, "can't open display\n");
  1666. X        exit(1);
  1667. X    }
  1668. X
  1669. X    top_shell = XtAppCreateShell("xcdplayer", "XCdplayer",
  1670. X                     applicationShellWidgetClass,
  1671. X                     dpy, (ArgList) NULL, 0);
  1672. X
  1673. X    icon_pixmap = XCreateBitmapFromData(XtDisplay(top_shell),
  1674. X                RootWindowOfScreen(XtScreen(top_shell)),
  1675. X                logo_bits, logo_width, logo_height);
  1676. X    
  1677. X    XtSetArg(arg, XtNiconPixmap, icon_pixmap);
  1678. X    XtSetValues(top_shell, &arg, 1);
  1679. X    
  1680. X
  1681. X    (void) XtGetApplicationResources(top_shell, (caddr_t) NULL,
  1682. X                     resources, XtNumber(resources),
  1683. X                     (ArgList) NULL, 0);
  1684. X
  1685. X    if ((cdInfoDir == NULL) && ((s=getenv("XCDINFODIR")) != NULL))
  1686. X        cdInfoDir = strdup(s);
  1687. X
  1688. X    top_form_widget = XtCreateWidget("mainForm", formWidgetClass,
  1689. X                         top_shell,
  1690. X                         (ArgList) NULL, 0);
  1691. X
  1692. X    return(top_form_widget);
  1693. X}
  1694. X
  1695. Xvoid
  1696. Xtop_start() {
  1697. X    XtManageChild(top_form_widget);
  1698. X    XtRealizeWidget(top_shell);
  1699. X}
  1700. END_OF_FILE
  1701. if test 4576 -ne `wc -c <'xcdplayer-2.2/top_setup.c'`; then
  1702.     echo shar: \"'xcdplayer-2.2/top_setup.c'\" unpacked with wrong size!
  1703. fi
  1704. # end of 'xcdplayer-2.2/top_setup.c'
  1705. fi
  1706. if test -f 'xcdplayer-2.2/version.h' -a "${1}" != "-c" ; then 
  1707.   echo shar: Will not clobber existing file \"'xcdplayer-2.2/version.h'\"
  1708. else
  1709. echo shar: Extracting \"'xcdplayer-2.2/version.h'\" \(37 characters\)
  1710. sed "s/^X//" >'xcdplayer-2.2/version.h' <<'END_OF_FILE'
  1711. X#define VERSION "2.2"
  1712. X#define BETA 0
  1713. END_OF_FILE
  1714. if test 37 -ne `wc -c <'xcdplayer-2.2/version.h'`; then
  1715.     echo shar: \"'xcdplayer-2.2/version.h'\" unpacked with wrong size!
  1716. fi
  1717. # end of 'xcdplayer-2.2/version.h'
  1718. fi
  1719. echo shar: End of archive 1 \(of 5\).
  1720. cp /dev/null ark1isdone
  1721. MISSING=""
  1722. for I in 1 2 3 4 5 ; do
  1723.     if test ! -f ark${I}isdone ; then
  1724.     MISSING="${MISSING} ${I}"
  1725.     fi
  1726. done
  1727. if test "${MISSING}" = "" ; then
  1728.     echo You have unpacked all 5 archives.
  1729.     rm -f ark[1-9]isdone
  1730. else
  1731.     echo You still need to unpack the following archives:
  1732.     echo "        " ${MISSING}
  1733. fi
  1734. ##  End of shell archive.
  1735. exit 0
  1736. -- 
  1737. Dan Rich                    | drich@lerc.nasa.gov   |  (216) 433-4000
  1738. Sr. Systems Engineer        | "Danger, you haven't seen the last of me!"
  1739. RMS Technologies, Inc.      |    "No, but the first of you turns my stomach!"
  1740. NASA Lewis Research Center  | -- The Firesign Theatre's Nick Danger
  1741.  
  1742.