Exemplo n.º 1
0
    virtual bool CreateSpatializationEffect(uint32 VoiceId) override
    {
        // If an effect for this voice has already been created, then leave
        if (HRTFEffects.Contains(VoiceId))
        {
            return false;
        }

        FXAudio2HRTFEffect* NewHRTFEffect = new FXAudio2HRTFEffect(VoiceId, AudioDevice);
        NewHRTFEffect->Initialize(nullptr, 0);
        HRTFEffects.Add(VoiceId, NewHRTFEffect);
        return true;
    }
Exemplo n.º 2
0
	FHrtfSpatializationAlgorithm(class FAudioDevice * AudioDevice)
		: bOvrContextInitialized(false)
		, AudioDevice(AudioDevice)
		, OvrAudioContextFast(nullptr)
#if OCULUS_HQ_ENABLED
		, OvrAudioContextHighQuality(0)
#endif
	{
		// XAudio2's buffer lengths are always 1 percent of sample rate
		uint32 BufferLength = AudioDevice->SampleRate / 100;
		InitializeSpatializationEffect(BufferLength);

		check(HRTFEffects.Num() == 0);
		for (int32 EffectIndex = 0; EffectIndex < (int32)AudioDevice->MaxChannels; ++EffectIndex)
		{
			FXAudio2HRTFEffect* NewHRTFEffect = new FXAudio2HRTFEffect(EffectIndex, AudioDevice);
			NewHRTFEffect->Initialize(nullptr, 0);
			HRTFEffects.Add(NewHRTFEffect);
			// IsStopped.Add(true);
		}
	}