void InitializeSpatializationEffect(uint32 BufferLength) override { if (bOvrContextInitialized) { return; } uint32 MaxNumSources = AudioDevice->MaxChannels; uint32 SampleRate = AudioDevice->SampleRate; ovrAudioContextConfiguration ContextConfig; ContextConfig.acc_Size = sizeof(ovrAudioContextConfiguration); // First initialize the Fast algorithm context ContextConfig.acc_Provider = ovrAudioSpatializationProvider_OVR_Simple; ContextConfig.acc_MaxNumSources = MaxNumSources; ContextConfig.acc_SampleRate = SampleRate; ContextConfig.acc_BufferLength = BufferLength; check(OvrAudioContextFast == nullptr); // Create the OVR Audio Context with a given quality ovrResult Result = ovrAudio_CreateContext(&OvrAudioContextFast, &ContextConfig); OVR_AUDIO_CHECK(Result, "Failed to create simple context"); // Now initialize the high quality algorithm context #if OCULUS_HQ_ENABLED ContextConfig.acc_Provider = ovrAudioSpatializationProvider_OVR_HQ; check(OvrAudioContextHighQuality == nullptr); // Create the OVR Audio Context with a given quality Result = ovrAudio_CreateContext(&OvrAudioContextHighQuality, &ContextConfig); OVR_AUDIO_CHECK(Result, "Failed to create high-quality context"); #endif // #if OCULUS_HQ_ENABLED bOvrContextInitialized = true; }
void InitializeSpatializationEffect(uint32 BufferLength) override { if (bOvrContextInitialized) { return; } uint32 MaxNumSources = AudioDevice->MaxChannels; uint32 SampleRate = AudioDevice->SampleRate; ovrAudioContextConfiguration ContextConfig; ContextConfig.acc_Size = sizeof(ovrAudioContextConfiguration); // First initialize the Fast algorithm context ContextConfig.acc_Provider = ovrAudioSpatializationProvider_OVR_Fast; ContextConfig.acc_MaxNumSources = MaxNumSources; ContextConfig.acc_SampleRate = SampleRate; ContextConfig.acc_BufferLength = BufferLength; check(OvrAudioContextFast == nullptr); // Create the OVR Audio Context with a given quality if (!ovrAudio_CreateContext(&OvrAudioContextFast, &ContextConfig)) { const char* ErrorString = ovrAudio_GetLastError(OvrAudioContextFast); UE_LOG(LogAudio, Warning, TEXT("Failed to create a Fast OVR Audio context: %s"), ErrorString); return; } // Now initialize the high quality algorithm context #if OCULUS_HQ_ENABLED ContextConfig.acc_Provider = ovrAudioSpatializationProvider_OVR_HQ; check(OvrAudioContextHighQuality == nullptr); // Create the OVR Audio Context with a given quality if (!ovrAudio_CreateContext(&OvrAudioContextHighQuality, &ContextConfig)) { const char* ErrorString = ovrAudio_GetLastError(OvrAudioContextHighQuality); UE_LOG(LogAudio, Warning, TEXT("Failed to create a High Quality OVR Audio context: %s"), ErrorString); return; } #endif // #if OCULUS_HQ_ENABLED bOvrContextInitialized = true; }