From a8993eb776b5578eee94b991383d6ce23df3acdd Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Sun, 24 Oct 2021 16:24:37 -0700 Subject: [PATCH] add spatial distance scaler to init --- src/FAudioGMS.c | 12 ++++++------ src/FAudioGMS.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/FAudioGMS.c b/src/FAudioGMS.c index 7541012..d8ab510 100644 --- a/src/FAudioGMS.c +++ b/src/FAudioGMS.c @@ -132,8 +132,8 @@ typedef struct FAudioGMS_SoundInstance } parent; } FAudioGMS_SoundInstance; +static const float SPEED_OF_SOUND = 343.5f; static const float DOPPLER_SCALE = 1.0f; -static const float CURVE_DISTANCE_SCALER = 1.0f; typedef struct FAudioGMS_Device { @@ -144,7 +144,7 @@ typedef struct FAudioGMS_Device FAudioMasteringVoice *masteringVoice; F3DAUDIO_LISTENER listener; - float speedOfSound; + float spatialDistanceScale; FAudioGMS_StaticSound **staticSounds; uint32_t staticSoundCount; @@ -183,7 +183,7 @@ static inline FAudioGMS_SoundInstance* FAudioGMS_INTERNAL_LookupSoundInstance(ui } } -void FAudioGMS_Init(double speedOfSound) +void FAudioGMS_Init(double spatialDistanceScale) { device = SDL_malloc(sizeof(FAudioGMS_Device)); @@ -256,11 +256,11 @@ void FAudioGMS_Init(double speedOfSound) return; } - device->speedOfSound = speedOfSound; + device->spatialDistanceScale = spatialDistanceScale; F3DAudioInitialize( device->deviceDetails.OutputFormat.dwChannelMask, - device->speedOfSound, + SPEED_OF_SOUND, device->handle3D ); @@ -781,7 +781,7 @@ static void FAudioGMS_INTERNAL_StaticSound_AddEmitter(FAudioGMS_SoundInstance* i instance->emitter->InnerRadiusAngle = 0; instance->emitter->ChannelCount = instance->dspSettings.SrcChannelCount; - instance->emitter->CurveDistanceScaler = CURVE_DISTANCE_SCALER; + instance->emitter->CurveDistanceScaler = device->spatialDistanceScale; instance->emitter->DopplerScaler = 1.0f; instance->emitter->Position.x = x; diff --git a/src/FAudioGMS.h b/src/FAudioGMS.h index afdbf2c..306bda6 100644 --- a/src/FAudioGMS.h +++ b/src/FAudioGMS.h @@ -39,7 +39,7 @@ extern "C" { #endif /* __cplusplus */ -FAUDIOGMSAPI void FAudioGMS_Init(double speedOfSound); /* recommend about 1500? for 2D game */ +FAUDIOGMSAPI void FAudioGMS_Init(double spatialDistanceScale); /* recommend about 50 for a 2D game, 1 for a 3D game */ FAUDIOGMSAPI double FAudioGMS_StaticSound_LoadWAV(char *filePath); /* returns a static sound ID */ FAUDIOGMSAPI void FAudioGMS_StaticSound_PlayOneOff(double staticSoundID, double pan, double pitch, double volume, double reverb); /* automatically frees itself when done! */