diff options
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r-- | Alc/ALc.c | 22 |
1 files changed, 18 insertions, 4 deletions
@@ -583,10 +583,24 @@ static void alc_initconfig(void) #endif ConfigValueInt(NULL, "rt-prio", &RTPrioLevel); - if(ConfigValueInt(NULL, "resampler", &n)) - { - if(n < RESAMPLER_MAX && n > RESAMPLER_MIN) - DefaultResampler = n; + if(ConfigValueStr(NULL, "resampler", &str)) + { + if(strcasecmp(str, "point") == 0 || strcasecmp(str, "none") == 0) + DefaultResampler = POINT_RESAMPLER; + else if(strcasecmp(str, "linear") == 0) + DefaultResampler = LINEAR_RESAMPLER; + else if(strcasecmp(str, "cubic") == 0) + DefaultResampler = CUBIC_RESAMPLER; + else + { + char *end; + + n = strtol(str, &end, 0); + if(*end == '\0' && n < RESAMPLER_MAX && n > RESAMPLER_MIN) + DefaultResampler = n; + else + WARN("Invalid resampler: %s\n", str); + } } if(!TrapALCError) |