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;
    }