summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2020-04-18 22:44:17 -0700
committerMichael Pavone <pavone@retrodev.com>2020-04-18 22:44:17 -0700
commit897b2c899f7932e6ac4842765fd3a870f5201901 (patch)
tree091a574e72b78d480a82998ebcc3631131736d4f
parent50379e379426be665efd31e299891fa849db00d1 (diff)
Make requested sample format configurable
-rw-r--r--default.cfg2
-rwxr-xr-xrender_sdl.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/default.cfg b/default.cfg
index 8d76e6d..f7a3a5a 100644
--- a/default.cfg
+++ b/default.cfg
@@ -335,6 +335,8 @@ audio {
rate 48000
buffer 512
lowpass_cutoff 3390
+ #Use f32 for 32-bit floating point, s16 for signed 16-bit integer
+ format f32
}
clocks {
diff --git a/render_sdl.c b/render_sdl.c
index 441109d..f2d050b 100755
--- a/render_sdl.c
+++ b/render_sdl.c
@@ -903,7 +903,8 @@ static void init_audio()
rate = 48000;
}
desired.freq = rate;
- desired.format = AUDIO_F32SYS;
+ char *config_format = tern_find_path_default(config, "audio\0format\0", (tern_val){.ptrval="f32"}, TVAL_PTR).ptrval;
+ desired.format = !strcmp(config_format, "s16") ? AUDIO_S16SYS : AUDIO_F32SYS;
desired.channels = 2;
char * samples_str = tern_find_path(config, "audio\0buffer\0", TVAL_PTR).ptrval;
int samples = samples_str ? atoi(samples_str) : 0;