#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)
#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)
/* 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);
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();