rnd-20010115-1-src
[rocksndiamonds.git] / src / libgame / sound.h
index d50b4a22936e1aff3539f5dec703b6034c879ad5..0c4f141a67a3da8c87ab6479f161122b4a2b976d 100644 (file)
@@ -1,7 +1,7 @@
 /***********************************************************
 * Artsoft Retro-Game Library                               *
 *----------------------------------------------------------*
-* (c) 1994-2000 Artsoft Entertainment                      *
+* (c) 1994-2001 Artsoft Entertainment                      *
 *               Holger Schemel                             *
 *               Detmolder Strasse 189                      *
 *               33604 Bielefeld                            *
 #define AUDIO_STREAMING_DSP
 #endif
 
+#define AUDIO_SAMPLE_RATE_8000                 8000
+#define AUDIO_SAMPLE_RATE_22050                        22050
+
+#define AUDIO_FRAGMENT_SIZE_512                        512
+#define AUDIO_FRAGMENT_SIZE_1024               1024
+#define AUDIO_FRAGMENT_SIZE_2048               2048
+#define AUDIO_FRAGMENT_SIZE_4096               4096
+
+#define AUDIO_MONO_CHANNEL                     1
+#define AUDIO_STEREO_CHANNELS                  2
+
+#if defined(TARGET_SDL)
+/* one second fading interval == 1000 ticks (milliseconds) */
+#define SOUND_FADING_INTERVAL                  1000
+#define SOUND_MAX_VOLUME                       (SDL_MIX_MAXVOLUME / 4)
+#endif
+
+#if defined(AUDIO_STREAMING_DSP)
+#define SOUND_FADING_VOLUME_STEP               (PSND_MAX_VOLUME / 40)
+#define SOUND_FADING_VOLUME_THRESHOLD          (SOUND_FADING_VOLUME_STEP * 2)
+#endif
+
+#define DEFAULT_AUDIO_SAMPLE_RATE              AUDIO_SAMPLE_RATE_22050
+#define DEFAULT_AUDIO_FRAGMENT_SIZE_UNIX       AUDIO_FRAGMENT_SIZE_512
+#define DEFAULT_AUDIO_FRAGMENT_SIZE_WIN32      AUDIO_FRAGMENT_SIZE_2048
+
+#if defined(PLATFORM_UNIX)
+#define DEFAULT_AUDIO_FRAGMENT_SIZE    DEFAULT_AUDIO_FRAGMENT_SIZE_UNIX
+#else
+#define DEFAULT_AUDIO_FRAGMENT_SIZE    DEFAULT_AUDIO_FRAGMENT_SIZE_WIN32
+#endif
+
 #if !defined(PLATFORM_MSDOS)
-#define MAX_SOUNDS_PLAYING     16
+#define MAX_SOUNDS_PLAYING                     16
 #else
-#define MAX_SOUNDS_PLAYING     8
+#define MAX_SOUNDS_PLAYING                     8
 #endif
 
 #if !defined(PLATFORM_HPUX)
@@ -129,6 +161,7 @@ struct SampleInfo
 
 #if defined(TARGET_SDL)
   Mix_Chunk *mix_chunk;
+  Mix_Music *mix_music;
 #endif
 };
 
@@ -153,21 +186,27 @@ struct SoundControl
 };
 
 /* general sound functions */
-void UnixOpenAudio(struct AudioSystemInfo *);
-void UnixCloseAudio(struct AudioSystemInfo *);
+void UnixOpenAudio(void);
+void UnixCloseAudio(void);
 
 /* sound server functions */ 
+void InitPlaylist(void);
+void StartSoundserver(void);
 void SoundServer(void);
 
 /* sound client functions */
-void AllocSoundArray(int);
-boolean LoadSound(int, char *);
+boolean LoadSound(char *);
+boolean LoadMod(char *);
+int LoadMusic(void);
+void PlayMusic(int);
 void PlaySound(int);
 void PlaySoundStereo(int, int);
 void PlaySoundLoop(int);
 void PlaySoundExt(int, int, int, boolean);
+void FadeMusic(void);
 void FadeSound(int);
 void FadeSounds(void);
+void StopMusic(void);
 void StopSound(int);
 void StopSounds(void);
 void StopSoundExt(int, int);