Esempio n. 1
0
    void ProcessAudio(ovrAudioContext AudioContext, uint32 VoiceIndex, float* InSamples, float* OutSamples, const FVector& Position)
    {
        if (!ovrAudio_SetAudioSourceAttenuationMode(AudioContext, VoiceIndex, ovrAudioSourceAttenuationMode_None, 1.0f))
        {
            const char* ErrorString = ovrAudio_GetLastError(AudioContext);
            UE_LOG(LogAudio, Warning, TEXT("Failed to set the OVR source attenuation mode for voice index %d: %s"), VoiceIndex, ErrorString);
            return;
        }

        // Translate the input position to OVR coordinates
        FVector OvrPosition = ToOVRVector(Position);

        // Set the source position to current audio position
        if (!ovrAudio_SetAudioSourcePos(AudioContext, VoiceIndex, OvrPosition.X, OvrPosition.Y, OvrPosition.Z))
        {
            const char* ErrorString = ovrAudio_GetLastError(AudioContext);
            UE_LOG(LogAudio, Warning, TEXT("Failed to set the OVR source position (%.4f, %.4f, %.4f) for voice %d: %s"), OvrPosition.X, OvrPosition.Y, OvrPosition.Z, VoiceIndex, ErrorString);
            return;
        }

        // Perform the processing
        if (!ovrAudio_SpatializeMonoSourceInterleaved(AudioContext, VoiceIndex, OutSamples, InSamples))
        {
            const char* ErrorString = ovrAudio_GetLastError(AudioContext);
            UE_LOG(LogAudio, Warning, TEXT("Failed to OVR spatialize for for voice %d: %s"), VoiceIndex, ErrorString);
            return;
        }
    }
Esempio n. 2
0
	void ProcessAudio(ovrAudioContext AudioContext, uint32 VoiceIndex, float* InSamples, float* OutSamples, const FVector& Position)
	{
		ovrResult Result = ovrAudio_SetAudioSourceAttenuationMode(AudioContext, VoiceIndex, ovrAudioSourceAttenuationMode_None, 1.0f);
		OVR_AUDIO_CHECK(Result, "Failed to set source attenuation mode");

		// Translate the input position to OVR coordinates
		FVector OvrPosition = ToOVRVector(Position);

		// Set the source position to current audio position
		Result = ovrAudio_SetAudioSourcePos(AudioContext, VoiceIndex, OvrPosition.X, OvrPosition.Y, OvrPosition.Z);
		OVR_AUDIO_CHECK(Result, "Failed to set audio source position");

		// Perform the processing
		uint32 Status;
		Result = ovrAudio_SpatializeMonoSourceInterleaved(AudioContext, VoiceIndex, ovrAudioSpatializationFlag_None, &Status, OutSamples, InSamples);
		OVR_AUDIO_CHECK(Result, "Failed to spatialize mono source interleaved");
	}