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