X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fsound.h;h=2c747bd859788cd3d16f13ac5d3b759e5a1dc3e8;hp=be853f8c2723e356a8b56ab39235d97206b01c3e;hb=0918c3eb2f6219a8cc72aa85bd9c4889788dd474;hpb=d0893e6987c21c25ec137438a18cfe1288362139 diff --git a/src/sound.h b/src/sound.h index be853f8c..2c747bd8 100644 --- a/src/sound.h +++ b/src/sound.h @@ -1,24 +1,21 @@ /*********************************************************** * 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 @@ -29,6 +26,10 @@ extern void ioctl(long, long, void *); #endif +#ifdef __FreeBSD__ +#include +#endif + #define SND_BLOCKSIZE 4096 #ifdef _HPUX_SOURCE @@ -38,9 +39,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 +60,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 +79,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" @@ -106,11 +119,25 @@ struct SoundHeader_8SVX char magic_8SVX[4]; }; +struct SoundHeader_WAV +{ + char magic_RIFF[4]; + unsigned long header_size; + char magic_WAVE[4]; + char some_stuff[24]; + char magic_DATA[4]; + unsigned long data_size; +}; + struct SoundInfo { char *name; - char *file_ptr, *data_ptr; + byte *file_ptr; + byte *data_ptr; long file_len, data_len; +#ifdef MSDOS + SAMPLE *sample_ptr; +#endif }; struct SoundControl @@ -118,20 +145,20 @@ 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 */ void SoundServer(void); void SoundServer_InsertNewSound(struct SoundControl); @@ -142,11 +169,11 @@ unsigned char linear_to_ulaw(int); int ulaw_to_linear(unsigned char); /* application functions */ -BOOL LoadSound(struct SoundInfo *); +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);