diff --git a/src/engine/client/snd.cpp b/src/engine/client/snd.cpp index 8cfa51d78..ee563df87 100644 --- a/src/engine/client/snd.cpp +++ b/src/engine/client/snd.cpp @@ -11,7 +11,7 @@ static const float NUM_FRAMES_STOP_INV = 1.0f/(float)NUM_FRAMES_STOP; static const int NUM_FRAMES_LERP = 512; static const float NUM_FRAMES_LERP_INV = 1.0f/(float)NUM_FRAMES_LERP; -static const float GLOBAL_VOLUME_SCALE = 0.75f; +static float GLOBAL_VOLUME_SCALE = 0.75f; static const int64 GLOBAL_SOUND_DELAY = 1000; @@ -211,6 +211,21 @@ bool snd_shutdown() return true; } +float snd_get_master_volume() +{ + return GLOBAL_VOLUME_SCALE; +} + +void snd_set_master_volume(float val) +{ + if(val < 0.0f) + val = 0.0f; + else if(val > 1.0f) + val = 1.0f; + + GLOBAL_VOLUME_SCALE = val; +} + static int snd_alloc_sound() { if(first_free_sound < 0) diff --git a/src/engine/interface.h b/src/engine/interface.h index 311297dec..d23067fb6 100644 --- a/src/engine/interface.h +++ b/src/engine/interface.h @@ -319,6 +319,8 @@ enum }; bool snd_init(); +float snd_get_master_volume(); +void snd_set_master_volume(float val); int snd_load_wav(const char *filename); int snd_play(int sound, int loop = SND_PLAY_ONCE, float vol = 1.0f, float pan = 0.0f); void snd_stop(int id);