1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * ©1995 Artsoft Development *
6 * 33659 Bielefeld-Senne *
7 * Telefon: (0521) 493245 *
8 * eMail: aeglos@valinor.owl.de *
9 * aeglos@uni-paderborn.de *
10 * q99492@pbhrzx.uni-paderborn.de *
11 *----------------------------------------------------------*
14 * Letzte Aenderung: 15.06.1995 *
15 ***********************************************************/
24 #include <linux/soundcard.h>
28 /* where is the right declaration for 'ioctl'? */
29 extern void ioctl(long, long, void *);
32 #define SND_BLOCKSIZE 4096
35 #include <sys/audio.h>
37 #define SND_BLOCKSIZE 32768
39 #endif /* _HPUX_SOURCE */
41 #define MAX_SOUNDS_PLAYING 16
43 /* some values for PlaySound(), StopSound() and friends */
44 #define PSND_SILENCE 0
45 #define PSND_MAX_VOLUME_BITS 7
46 #define PSND_MIN_VOLUME 0
47 #define PSND_MAX_VOLUME (1 << PSND_MAX_VOLUME_BITS)
48 #define PSND_NO_LOOP 0
51 #define PSND_MAX_STEREO_BITS 7
52 #define PSND_MAX_STEREO (1 << PSND_MAX_STEREO_BITS)
53 #define PSND_MAX_LEFT (-PSND_MAX_STEREO)
54 #define PSND_MAX_RIGHT (+PSND_MAX_STEREO)
55 #define PSND_MAX_LEFT2RIGHT_BITS (PSND_MAX_STEREO_BITS+1)
56 #define PSND_MAX_LEFT2RIGHT (1 << PSND_MAX_LEFT2RIGHT_BITS)
58 #define SSND_FADE_SOUND (1<<0)
59 #define SSND_FADE_ALL_SOUNDS (1<<1)
60 #define SSND_FADING(x) (x & (SSND_FADE_SOUND | SSND_FADE_ALL_SOUNDS))
61 #define SSND_STOP_SOUND (1<<2)
62 #define SSND_STOP_ALL_SOUNDS (1<<3)
63 #define SSND_STOPPING(x) (x & (SSND_STOP_SOUND | SSND_STOP_ALL_SOUNDS))
64 #define SSND_ALL(x) (x&(SSND_FADE_ALL_SOUNDS|SSND_STOP_ALL_SOUNDS))
69 /* settings for sound path, sound device, etc. */
71 #define SND_PATH "./sounds"
74 #define DEV_AUDIO "/dev/audio"
75 #define DEV_DSP "/dev/dsp"
78 #define SOUND_DEVICE DEV_DSP
80 #define SOUND_DEVICE DEV_AUDIO
84 #define SOUND_AVAILABLE 1
87 #define SOUND_STATUS SOUND_OFF
89 #define SOUND_STATUS SOUND_AVAILABLE
92 struct SoundHeader_SUN
95 unsigned long hdr_size;
96 unsigned long data_size;
97 unsigned long encoding;
98 unsigned long sample_rate;
99 unsigned long channels;
102 struct SoundHeader_8SVX
105 unsigned long chunk_size;
112 char *file_ptr, *data_ptr;
113 long file_len, data_len;
125 BOOL stop_all_sounds;
132 /* function from "misc.c" */
133 unsigned long be2long(unsigned long *);
135 /* sound server functions */
136 void SoundServer(void);
137 void SoundServer_InsertNewSound(struct SoundControl);
138 void SoundServer_StopSound(int);
139 void SoundServer_StopAllSounds(void);
140 void HPUX_Audio_Control(void);
141 unsigned char linear_to_ulaw(int);
142 int ulaw_to_linear(unsigned char);
144 /* application functions */
145 BOOL LoadSound(struct SoundInfo *);
147 void PlaySoundStereo(int, int);
148 void PlaySoundLoop(int);
149 void PlaySoundExt(int, int, int, BOOL);
151 void FadeSounds(void);
153 void StopSounds(void);
154 void StopSoundExt(int, int);
155 void FreeSounds(int);