diff options
Diffstat (limited to 'alc')
-rw-r--r-- | alc/alc.cpp | 15 |
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; |