mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 16:44:36 +00:00
hrtf working example
working example of hrtf set the pref usehrtf to true to test For now any mhr file that is in the game directory can be used, just run once to get the index of that mhr and pass that index in to $pref::SFX::hrtfProfile
This commit is contained in:
parent
345ce3f1d3
commit
bcde183786
3 changed files with 32 additions and 0 deletions
|
|
@ -352,6 +352,30 @@ void SFXALDevice::printALInfo(ALCdevice* device)
|
||||||
for (ALCint i = 0; i < profileCount; i++)
|
for (ALCint i = 0; i < profileCount; i++)
|
||||||
Con::printf("| [%d] %s", i,
|
Con::printf("| [%d] %s", i,
|
||||||
alcGetStringiSOFT(device, ALC_HRTF_SPECIFIER_SOFT, i));
|
alcGetStringiSOFT(device, ALC_HRTF_SPECIFIER_SOFT, i));
|
||||||
|
|
||||||
|
bool use_hrtf = Con::getBoolVariable("$pref::SFX::useHRTF");
|
||||||
|
if (use_hrtf && (mCaps & CAPS_HotReconnect))
|
||||||
|
{
|
||||||
|
ALCint attr[5];
|
||||||
|
ALCint index = Con::getIntVariable("$pref::SFX::hrtfProfile");
|
||||||
|
ALCint i;
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
attr[i++] = ALC_HRTF_SOFT;
|
||||||
|
attr[i++] = ALC_TRUE;
|
||||||
|
// load the default device hrtf.
|
||||||
|
if (index >= 0 && index < profileCount)
|
||||||
|
{
|
||||||
|
attr[i++] = ALC_HRTF_ID_SOFT;
|
||||||
|
attr[i++] = index;
|
||||||
|
}
|
||||||
|
attr[i] = 0;
|
||||||
|
|
||||||
|
if (!alcResetDeviceSOFT(mDevice, attr))
|
||||||
|
{
|
||||||
|
Con::printf("Failed to reset device: %s", alcGetString(mDevice, alcGetError(mDevice)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- EFX ---
|
// --- EFX ---
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ S32 SFXDevice::smUpdateInterval = SFXInternal::DEFAULT_UPDATE_INTERVAL;
|
||||||
S32 SFXDevice::smDeviceFrequency = 44100;
|
S32 SFXDevice::smDeviceFrequency = 44100;
|
||||||
S32 SFXDevice::smMaxSendsPerSource = 4;
|
S32 SFXDevice::smMaxSendsPerSource = 4;
|
||||||
S32 SFXDevice::smMaxEffectSlots = 4;
|
S32 SFXDevice::smMaxEffectSlots = 4;
|
||||||
|
S32 SFXDevice::smDeviceHRTFProfile = -1;
|
||||||
S8 SFXDevice::smDeviceBitrate = 16;
|
S8 SFXDevice::smDeviceBitrate = 16;
|
||||||
bool SFXDevice::smDeviceHRTF = false;
|
bool SFXDevice::smDeviceHRTF = false;
|
||||||
|
|
||||||
|
|
@ -51,6 +52,11 @@ void SFXDevice::initConsole()
|
||||||
"The device uses hrtf.\n"
|
"The device uses hrtf.\n"
|
||||||
"@ingroup SFX\n");
|
"@ingroup SFX\n");
|
||||||
|
|
||||||
|
Con::addVariable("$pref::SFX::hrtfProfile", TypeS32, &smDeviceHRTFProfile,
|
||||||
|
"Index of the HRTF profile to use. -1 = driver default. "
|
||||||
|
"Use sfxGetHRTFProfileCount/sfxGetHRTFProfileName to enumerate available profiles.\n"
|
||||||
|
"@ingroup SFX\n");
|
||||||
|
|
||||||
Con::addVariable("$pref::SFX::updateInterval", TypeS32, &smUpdateInterval,
|
Con::addVariable("$pref::SFX::updateInterval", TypeS32, &smUpdateInterval,
|
||||||
"The update interval.\n"
|
"The update interval.\n"
|
||||||
"@ingroup SFX\n");
|
"@ingroup SFX\n");
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,8 @@ class SFXDevice
|
||||||
static S32 smUpdateInterval;
|
static S32 smUpdateInterval;
|
||||||
/// The device frequency, used when reading in buffers for the device.
|
/// The device frequency, used when reading in buffers for the device.
|
||||||
static S32 smDeviceFrequency;
|
static S32 smDeviceFrequency;
|
||||||
|
/// The device hrtf profile to use.
|
||||||
|
static S32 smDeviceHRTFProfile;
|
||||||
/// The device bitrate.
|
/// The device bitrate.
|
||||||
static S8 smDeviceBitrate;
|
static S8 smDeviceBitrate;
|
||||||
/// Does the device use hrtf
|
/// Does the device use hrtf
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue