fixed bug with not recognizing ".mode_loop: false" for music
[rocksndiamonds.git] / src / libgame / sound.h
index 9e2d2420489697359b5542d304491c7fdb07cf35..e2d2054ae404fae4454885738b2fc9b4f93b9c56 100644 (file)
 #define SND_CTRL_ALL_SOUNDS            (1 << 4)
 #define SND_CTRL_RELOAD_SOUNDS         (1 << 5)
 #define SND_CTRL_RELOAD_MUSIC          (1 << 6)
+#define SND_CTRL_EXPIRE_LOOPS          (1 << 7)
 
 #define SND_CTRL_PLAY_SOUND            (SND_CTRL_NONE)
 #define SND_CTRL_PLAY_LOOP             (SND_CTRL_LOOP)
-#define SND_CTRL_PLAY_MUSIC            (SND_CTRL_LOOP | SND_CTRL_MUSIC)
+#define SND_CTRL_PLAY_MUSIC            (SND_CTRL_MUSIC)
+#define SND_CTRL_PLAY_MUSIC_LOOP       (SND_CTRL_MUSIC | SND_CTRL_LOOP)
 
 #define SND_CTRL_FADE_SOUND            (SND_CTRL_FADE)
 #define SND_CTRL_FADE_MUSIC            (SND_CTRL_FADE | SND_CTRL_MUSIC)
@@ -76,6 +78,7 @@
 #define IS_RELOADING(x)                        ((x).state & (SND_CTRL_RELOAD_SOUNDS |\
                                                      SND_CTRL_RELOAD_MUSIC))
 #define ALL_SOUNDS(x)                  ((x).state & SND_CTRL_ALL_SOUNDS)
+#define SET_EXPIRE_LOOPS(x)            ((x).state & SND_CTRL_EXPIRE_LOOPS)
 
 #define MAP_NOCONF_MUSIC(x)            (-((x) + 1))
 #define UNMAP_NOCONF_MUSIC(x)          MAP_NOCONF_MUSIC(x)
@@ -100,10 +103,12 @@ void StartMixer(void);
 
 /* sound client functions */
 void PlayMusic(int);
+void PlayMusicLoop(int);
 void PlaySound(int);
 void PlaySoundStereo(int, int);
 void PlaySoundLoop(int);
 void PlaySoundMusic(int);
+void PlaySoundMusicLoop(int);
 void PlaySoundExt(int, int, int, int);
 void FadeMusic(void);
 void FadeSound(int);
@@ -113,11 +118,14 @@ void StopMusic(void);
 void StopSound(int);
 void StopSounds(void);
 void StopSoundExt(int, int);
+void ExpireSoundLoops(boolean);
 
 int getSoundListSize();
 int getMusicListSize();
 struct FileInfo *getSoundListEntry(int);
 struct FileInfo *getMusicListEntry(int);
+char *getMusicInfoEntryFilename(int);
+char *getCurrentlyPlayingMusicFilename();
 int getSoundListPropertyMappingSize();
 int getMusicListPropertyMappingSize();
 struct PropertyMapping *getSoundListPropertyMapping();