X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fsound.h;h=2e934709e2ee041ebb0be6cc40c9aada059d4b84;hp=be853f8c2723e356a8b56ab39235d97206b01c3e;hb=8d46c5298f0fcce7bdb52f3835b2fbbdc403dfe0;hpb=d0893e6987c21c25ec137438a18cfe1288362139 diff --git a/src/sound.h b/src/sound.h index be853f8c..2e934709 100644 --- a/src/sound.h +++ b/src/sound.h @@ -1,32 +1,39 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* ©1995 Artsoft Development * -* Holger Schemel * -* 33659 Bielefeld-Senne * -* Telefon: (0521) 493245 * -* eMail: aeglos@valinor.owl.de * -* aeglos@uni-paderborn.de * -* q99492@pbhrzx.uni-paderborn.de * +* (c) 1995-98 Artsoft Entertainment * +* Holger Schemel * +* Oststrasse 11a * +* 33604 Bielefeld * +* phone: ++49 +521 290471 * +* email: aeglos@valinor.owl.de * *----------------------------------------------------------* * sound.c * -* * -* Letzte Aenderung: 15.06.1995 * ***********************************************************/ #ifndef SOUND_H #define SOUND_H -#include "main.h" #include +#include "main.h" #ifdef linux #include #ifndef VOXWARE #define VOXWARE #endif + +#if 0 /* where is the right declaration for 'ioctl'? */ extern void ioctl(long, long, void *); +#else +#include +#endif + +#endif + +#ifdef __FreeBSD__ +#include #endif #define SND_BLOCKSIZE 4096 @@ -38,9 +45,14 @@ extern void ioctl(long, long, void *); #define HPUX_AUDIO #endif /* _HPUX_SOURCE */ +#ifndef MSDOS #define MAX_SOUNDS_PLAYING 16 +#else +#define MAX_SOUNDS_PLAYING 8 +#endif /* some values for PlaySound(), StopSound() and friends */ +#ifndef MSDOS #define PSND_SILENCE 0 #define PSND_MAX_VOLUME_BITS 7 #define PSND_MIN_VOLUME 0 @@ -54,6 +66,16 @@ extern void ioctl(long, long, void *); #define PSND_MAX_RIGHT (+PSND_MAX_STEREO) #define PSND_MAX_LEFT2RIGHT_BITS (PSND_MAX_STEREO_BITS+1) #define PSND_MAX_LEFT2RIGHT (1 << PSND_MAX_LEFT2RIGHT_BITS) +#else +#define PSND_SILENCE 0 +#define PSND_MIN_VOLUME 0 +#define PSND_MAX_VOLUME 255 +#define PSND_NO_LOOP 0 +#define PSND_LOOP 1 +#define PSND_MAX_LEFT 0 +#define PSND_MAX_RIGHT 255 +#define PSND_MIDDLE 128 +#endif #define SSND_FADE_SOUND (1<<0) #define SSND_FADE_ALL_SOUNDS (1<<1) @@ -63,9 +85,6 @@ extern void ioctl(long, long, void *); #define SSND_STOPPING(x) (x & (SSND_STOP_SOUND | SSND_STOP_ALL_SOUNDS)) #define SSND_ALL(x) (x&(SSND_FADE_ALL_SOUNDS|SSND_STOP_ALL_SOUNDS)) -#define TRUE 1 -#define FALSE 0 - /* settings for sound path, sound device, etc. */ #ifndef SND_PATH #define SND_PATH "./sounds" @@ -109,8 +128,11 @@ struct SoundHeader_8SVX struct SoundInfo { char *name; - char *file_ptr, *data_ptr; - long file_len, data_len; + byte *data_ptr; + long data_len; +#ifdef MSDOS + SAMPLE *sample_ptr; +#endif }; struct SoundControl @@ -118,35 +140,29 @@ struct SoundControl int nr; int volume; int stereo; - BOOL active; - BOOL loop; - BOOL fade_sound; - BOOL stop_sound; - BOOL stop_all_sounds; + boolean active; + boolean loop; + boolean fade_sound; + boolean stop_sound; + boolean stop_all_sounds; int playingtime; long playingpos; long data_len; - char *data_ptr; + byte *data_ptr; +#ifdef MSDOS + int voice; +#endif }; -/* function from "misc.c" */ -unsigned long be2long(unsigned long *); - -/* sound server functions */ +/* start sound server */ void SoundServer(void); -void SoundServer_InsertNewSound(struct SoundControl); -void SoundServer_StopSound(int); -void SoundServer_StopAllSounds(void); -void HPUX_Audio_Control(void); -unsigned char linear_to_ulaw(int); -int ulaw_to_linear(unsigned char); - -/* application functions */ -BOOL LoadSound(struct SoundInfo *); + +/* client functions */ +boolean LoadSound(struct SoundInfo *); void PlaySound(int); void PlaySoundStereo(int, int); void PlaySoundLoop(int); -void PlaySoundExt(int, int, int, BOOL); +void PlaySoundExt(int, int, int, boolean); void FadeSound(int); void FadeSounds(void); void StopSound(int);