aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/mixer.c')
-rw-r--r--Alc/mixer.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/Alc/mixer.c b/Alc/mixer.c
index f326fdfe..b1d014a7 100644
--- a/Alc/mixer.c
+++ b/Alc/mixer.c
@@ -49,6 +49,8 @@ static_assert(MAX_PRE_SAMPLES >= 11, "MAX_PRE_SAMPLES must be at least 11!");
static_assert(MAX_POST_SAMPLES >= 12, "MAX_POST_SAMPLES must be at least 12!");
+enum Resampler ResamplerDefault = LinearResampler;
+
static MixerFunc MixSamples = Mix_C;
static HrtfMixerFunc MixHrtfSamples = MixHrtf_C;
static ResamplerFunc ResampleSamples = Resample_point32_C;
@@ -145,30 +147,29 @@ ResamplerFunc SelectResampler(enum Resampler resampler)
void aluInitMixer(void)
{
- enum Resampler resampler = ResamplerDefault;
const char *str;
if(ConfigValueStr(NULL, NULL, "resampler", &str))
{
if(strcasecmp(str, "point") == 0 || strcasecmp(str, "none") == 0)
- resampler = PointResampler;
+ ResamplerDefault = PointResampler;
else if(strcasecmp(str, "linear") == 0)
- resampler = LinearResampler;
+ ResamplerDefault = LinearResampler;
else if(strcasecmp(str, "sinc4") == 0)
- resampler = FIR4Resampler;
+ ResamplerDefault = FIR4Resampler;
else if(strcasecmp(str, "bsinc") == 0)
- resampler = BSincResampler;
+ ResamplerDefault = BSincResampler;
else if(strcasecmp(str, "cubic") == 0 || strcasecmp(str, "sinc8") == 0)
{
WARN("Resampler option \"%s\" is deprecated, using sinc4\n", str);
- resampler = FIR4Resampler;
+ ResamplerDefault = FIR4Resampler;
}
else
{
char *end;
long n = strtol(str, &end, 0);
if(*end == '\0' && (n == PointResampler || n == LinearResampler || n == FIR4Resampler))
- resampler = n;
+ ResamplerDefault = n;
else
WARN("Invalid resampler: %s\n", str);
}
@@ -176,7 +177,7 @@ void aluInitMixer(void)
MixHrtfSamples = SelectHrtfMixer();
MixSamples = SelectMixer();
- ResampleSamples = SelectResampler(resampler);
+ ResampleSamples = SelectResampler(ResamplerDefault);
}