summaryrefslogtreecommitdiff
path: root/src/setup/sound.c
diff options
context:
space:
mode:
authorSimon Howard2015-02-20 00:31:09 -0500
committerSimon Howard2015-02-20 00:33:12 -0500
commitb39121c6a682eb8ae5efd29a875bd7c098185f04 (patch)
treec6a8b42412682c49d73aff7c794e333e55c807bc /src/setup/sound.c
parent1f5ce047ad6cb709f746b794b4a2dea9e2f89fb6 (diff)
downloadchocolate-doom-b39121c6a682eb8ae5efd29a875bd7c098185f04.tar.gz
chocolate-doom-b39121c6a682eb8ae5efd29a875bd7c098185f04.tar.bz2
chocolate-doom-b39121c6a682eb8ae5efd29a875bd7c098185f04.zip
Refactor config file API.
The config file API previously relied on binding config variables using M_BindVariable() which took a void pointer. It occurred to me that if used on a boolean variable, this would be erroneous, but the void pointer would make it impossible to tell. Split this into separate M_Bind{Foo}Variable() functions based on type, which allows for proper type checking on the pointers that are passed. Vaguely related to #509.
Diffstat (limited to 'src/setup/sound.c')
-rw-r--r--src/setup/sound.c50
1 files changed, 26 insertions, 24 deletions
diff --git a/src/setup/sound.c b/src/setup/sound.c
index 2b9bfcbb..e7670feb 100644
--- a/src/setup/sound.c
+++ b/src/setup/sound.c
@@ -81,7 +81,7 @@ static float libsamplerate_scale = 0.65;
static char *timidity_cfg_path = NULL;
static char *gus_patch_path = NULL;
-static unsigned int gus_ram_kb = 1024;
+static int gus_ram_kb = 1024;
// DOS specific variables: these are unused but should be maintained
// so that the config file can be shared between chocolate
@@ -297,32 +297,34 @@ void ConfigSound(void)
void BindSoundVariables(void)
{
- M_BindVariable("snd_sfxdevice", &snd_sfxdevice);
- M_BindVariable("snd_musicdevice", &snd_musicdevice);
- M_BindVariable("snd_channels", &numChannels);
- M_BindVariable("sfx_volume", &sfxVolume);
- M_BindVariable("music_volume", &musicVolume);
- M_BindVariable("snd_samplerate", &snd_samplerate);
- M_BindVariable("use_libsamplerate", &use_libsamplerate);
- M_BindVariable("libsamplerate_scale", &libsamplerate_scale);
- M_BindVariable("timidity_cfg_path", &timidity_cfg_path);
- M_BindVariable("gus_patch_path", &gus_patch_path);
- M_BindVariable("gus_ram_kb", &gus_ram_kb);
-
- M_BindVariable("snd_sbport", &snd_sbport);
- M_BindVariable("snd_sbirq", &snd_sbirq);
- M_BindVariable("snd_sbdma", &snd_sbdma);
- M_BindVariable("snd_mport", &snd_mport);
- M_BindVariable("snd_maxslicetime_ms", &snd_maxslicetime_ms);
- M_BindVariable("snd_musiccmd", &snd_musiccmd);
-
- M_BindVariable("snd_cachesize", &snd_cachesize);
- M_BindVariable("opl_io_port", &opl_io_port);
+ M_BindIntVariable("snd_sfxdevice", &snd_sfxdevice);
+ M_BindIntVariable("snd_musicdevice", &snd_musicdevice);
+ M_BindIntVariable("snd_channels", &numChannels);
+ M_BindIntVariable("snd_samplerate", &snd_samplerate);
+ M_BindIntVariable("sfx_volume", &sfxVolume);
+ M_BindIntVariable("music_volume", &musicVolume);
+
+ M_BindIntVariable("use_libsamplerate", &use_libsamplerate);
+ M_BindFloatVariable("libsamplerate_scale", &libsamplerate_scale);
+
+ M_BindIntVariable("gus_ram_kb", &gus_ram_kb);
+ M_BindStringVariable("gus_patch_path", &gus_patch_path);
+ M_BindStringVariable("timidity_cfg_path", &timidity_cfg_path);
+
+ M_BindIntVariable("snd_sbport", &snd_sbport);
+ M_BindIntVariable("snd_sbirq", &snd_sbirq);
+ M_BindIntVariable("snd_sbdma", &snd_sbdma);
+ M_BindIntVariable("snd_mport", &snd_mport);
+ M_BindIntVariable("snd_maxslicetime_ms", &snd_maxslicetime_ms);
+ M_BindStringVariable("snd_musiccmd", &snd_musiccmd);
+
+ M_BindIntVariable("snd_cachesize", &snd_cachesize);
+ M_BindIntVariable("opl_io_port", &opl_io_port);
if (gamemission == strife)
{
- M_BindVariable("voice_volume", &voiceVolume);
- M_BindVariable("show_talk", &show_talk);
+ M_BindIntVariable("voice_volume", &voiceVolume);
+ M_BindIntVariable("show_talk", &show_talk);
}
timidity_cfg_path = M_StringDuplicate("");