aboutsummaryrefslogtreecommitdiffstats
path: root/alc
diff options
context:
space:
mode:
Diffstat (limited to 'alc')
-rw-r--r--alc/alc.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp
index 00757842..04dbcab3 100644
--- a/alc/alc.cpp
+++ b/alc/alc.cpp
@@ -3315,6 +3315,21 @@ START_API_FUNC
device->mAmbiScale = DevAmbiScaling::FuMa;
}
}
+ else if(al::strcasecmp(fmt, "acn+fuma") == 0)
+ {
+ if(device->mAmbiOrder > 3)
+ ERR("FuMa is incompatible with %d%s order ambisonics (up to third-order only)\n",
+ device->mAmbiOrder,
+ (((device->mAmbiOrder%100)/10) == 1) ? "th" :
+ ((device->mAmbiOrder%10) == 1) ? "st" :
+ ((device->mAmbiOrder%10) == 2) ? "nd" :
+ ((device->mAmbiOrder%10) == 3) ? "rd" : "th");
+ else
+ {
+ device->mAmbiLayout = DevAmbiLayout::ACN;
+ device->mAmbiScale = DevAmbiScaling::FuMa;
+ }
+ }
else if(al::strcasecmp(fmt, "ambix") == 0 || al::strcasecmp(fmt, "acn+sn3d") == 0)
{
device->mAmbiLayout = DevAmbiLayout::ACN;