aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/panning.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-03-26 17:52:42 -0700
committerChris Robinson <[email protected]>2016-03-26 17:52:42 -0700
commit1dcb04157c158fc22390dd99a89469a523dd0109 (patch)
tree0463f4db6606290ad1601e3f49d601fa1684000d /Alc/panning.c
parent67db77452fcff2db20294c2e062ffb3684a0b710 (diff)
Add a config option for distance compensation
Diffstat (limited to 'Alc/panning.c')
-rw-r--r--Alc/panning.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Alc/panning.c b/Alc/panning.c
index 1ac79449..90122550 100644
--- a/Alc/panning.c
+++ b/Alc/panning.c
@@ -620,9 +620,11 @@ ALvoid aluInitPanning(ALCdevice *device)
{ Aux5, { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f } },
{ Aux6, { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f } },
};
+ const char *devname = al_string_get_cstr(device->DeviceName);
ALuint speakermap[MAX_OUTPUT_CHANNELS];
const char *fname = "";
const char *layout;
+ int decflags = 0;
AmbDecConf conf;
ambdec_init(&conf);
@@ -630,9 +632,12 @@ ALvoid aluInitPanning(ALCdevice *device)
layout = GetChannelLayoutName(device->FmtChans);
if(!layout) goto ambi_fail;
- if(!ConfigValueStr(al_string_get_cstr(device->DeviceName), "decoder", layout, &fname))
+ if(!ConfigValueStr(devname, "decoder", layout, &fname))
goto ambi_fail;
+ if(GetConfigValueBool(devname, "decoder", "distance-comp", 1))
+ decflags |= BFDF_DistanceComp;
+
if(!ambdec_load(&conf, fname))
{
ERR("Failed to load %s\n", fname);
@@ -677,7 +682,8 @@ ALvoid aluInitPanning(ALCdevice *device)
(conf.ChanMask > 0xf) ? (conf.ChanMask > 0x1ff) ? "third" : "second" : "first",
(conf.ChanMask & ~0x831b) ? " periphonic" : ""
);
- bformatdec_reset(device->AmbiDecoder, &conf, count, device->Frequency, speakermap);
+ bformatdec_reset(device->AmbiDecoder, &conf, count, device->Frequency,
+ speakermap, decflags);
ambdec_deinit(&conf);
if(bformatdec_getOrder(device->AmbiDecoder) < 2)