From 3e77f8fc3c5df8eff95bb95bdb46f1a77d1b8cd9 Mon Sep 17 00:00:00 2001 From: Bart van der Werf Date: Wed, 22 May 2024 17:23:44 +0200 Subject: [PATCH 1/2] Fix warnings --- src/FACT_internal.c | 14 +++++++------- src/FAudioFX_reverb.c | 2 +- src/FAudio_internal.c | 2 +- src/FAudio_internal.h | 1 + src/FAudio_platform_sdl2.c | 3 ++- src/stb_vorbis.h | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/FACT_internal.c b/src/FACT_internal.c index 0f0e4f968d..a18f37a578 100644 --- a/src/FACT_internal.c +++ b/src/FACT_internal.c @@ -85,7 +85,7 @@ static inline float FACT_INTERNAL_CalculateFilterFrequency( * * -@Woflox */ - float freq = 2 * FAudio_sin( + float freq = 2.0f * FAudio_sinf( F3DAUDIO_PI * FAudio_min(desiredFrequency / sampleRate, 0.5f) ); @@ -1027,21 +1027,21 @@ float FACT_INTERNAL_CalculateRPC( } else if (rpc->points[i].type == 1) /* Fast */ { - result += maxY * (1.0f - FAudio_pow(1.0f - FAudio_pow(deltaXNormalized, 1.0f / 1.5f), 1.5f)); + result += maxY * (1.0f - FAudio_powf(1.0f - FAudio_powf(deltaXNormalized, 1.0f / 1.5f), 1.5f)); } else if (rpc->points[i].type == 2) /* Slow */ { - result += maxY * (1.0f - FAudio_pow(1.0f - FAudio_pow(deltaXNormalized, 1.5f), 1.0f / 1.5f)); + result += maxY * (1.0f - FAudio_powf(1.0f - FAudio_powf(deltaXNormalized, 1.5f), 1.0f / 1.5f)); } else if (rpc->points[i].type == 3) /* SinCos */ { if (maxY > 0.0f) { - result += maxY * (1.0f - FAudio_pow(1.0f - FAudio_sqrtf(deltaXNormalized), 2.0f)); + result += maxY * (1.0f - FAudio_powf(1.0f - FAudio_sqrtf(deltaXNormalized), 2.0f)); } else { - result += maxY * (1.0f - FAudio_sqrtf(1.0f - FAudio_pow(deltaXNormalized, 2.0f))); + result += maxY * (1.0f - FAudio_sqrtf(1.0f - FAudio_powf(deltaXNormalized, 2.0f))); } } else @@ -2066,8 +2066,8 @@ uint32_t FACT_INTERNAL_ParseAudioEngine( rpcOffset, dspPresetOffset, dspParameterOffset; - uint16_t blob1Count, blob2Count; - uint8_t version, tool; + uint16_t blob1Count, blob2Count, tool; + uint8_t version; uint8_t se; uint32_t magic; size_t memsize; diff --git a/src/FAudioFX_reverb.c b/src/FAudioFX_reverb.c index eaf12d8ab4..219495e791 100644 --- a/src/FAudioFX_reverb.c +++ b/src/FAudioFX_reverb.c @@ -183,7 +183,7 @@ static inline void DspBiQuad_Change( float q, float gain ) { - const float TWOPI = 6.283185307179586476925286766559005; + const float TWOPI = (float)6.283185307179586476925286766559005; float theta_c = (TWOPI * frequency) / (float) filter->sampleRate; float mu = DbGainToFactor(gain); float beta = (type == DSP_BIQUAD_LOWSHELVING) ? diff --git a/src/FAudio_internal.c b/src/FAudio_internal.c index cb53d65236..37609ae888 100644 --- a/src/FAudio_internal.c +++ b/src/FAudio_internal.c @@ -685,7 +685,7 @@ static inline void FAudio_INTERNAL_FilterVoice( filterState[ci][FAudioHighPassFilter] = samples[j * numChannels + ci] - filterState[ci][FAudioLowPassFilter] - (filter->OneOverQ * filterState[ci][FAudioBandPassFilter]); filterState[ci][FAudioBandPassFilter] = (filter->Frequency * filterState[ci][FAudioHighPassFilter]) + filterState[ci][FAudioBandPassFilter]; filterState[ci][FAudioNotchFilter] = filterState[ci][FAudioHighPassFilter] + filterState[ci][FAudioLowPassFilter]; - samples[j * numChannels + ci] = filterState[ci][filter->Type] * filter->WetDryMix + samples[j * numChannels + ci] * (1.0 - filter->WetDryMix); + samples[j * numChannels + ci] = filterState[ci][filter->Type] * filter->WetDryMix + samples[j * numChannels + ci] * (1.0f - filter->WetDryMix); } LOG_FUNC_EXIT(audio) diff --git a/src/FAudio_internal.h b/src/FAudio_internal.h index faba52226f..bacbd0b835 100644 --- a/src/FAudio_internal.h +++ b/src/FAudio_internal.h @@ -138,6 +138,7 @@ extern void FAudio_Log(char const *msg); #define FAudio_strlcpy(ptr1, ptr2, size) SDL_strlcpy(ptr1, ptr2, size) #define FAudio_pow(x, y) SDL_pow(x, y) +#define FAudio_powf(x, y) SDL_powf(x, y) #define FAudio_log(x) SDL_log(x) #define FAudio_log10(x) SDL_log10(x) #define FAudio_sin(x) SDL_sin(x) diff --git a/src/FAudio_platform_sdl2.c b/src/FAudio_platform_sdl2.c index dade7f9b3d..9eaa157047 100644 --- a/src/FAudio_platform_sdl2.c +++ b/src/FAudio_platform_sdl2.c @@ -146,11 +146,12 @@ void FAudio_PlatformInit( FAudio_assert(mixFormat != NULL); FAudio_assert(updateSize != NULL); + FAudio_assert((mixFormat->Format.nChannels <= 255) && "mixFormat->Format.nChannels out of range!"); /* Build the device spec */ want.freq = mixFormat->Format.nSamplesPerSec; want.format = AUDIO_F32SYS; - want.channels = mixFormat->Format.nChannels; + want.channels = (Uint8)(mixFormat->Format.nChannels); want.silence = 0; want.callback = FAudio_INTERNAL_MixCallback; want.userdata = audio; diff --git a/src/stb_vorbis.h b/src/stb_vorbis.h index 3a6e009ba5..bba90fe477 100644 --- a/src/stb_vorbis.h +++ b/src/stb_vorbis.h @@ -1382,7 +1382,7 @@ static void skip(vorb *z, int n) } #ifndef STB_VORBIS_NO_STDIO { - long x = ftell(z->f); + int64_t x = ftell(z->f); fseek(z->f, x+n, SEEK_SET); } #endif From 280c417fa2c7194a3b37a3a38d565eac53abda4d Mon Sep 17 00:00:00 2001 From: Bart van der Werf Date: Wed, 22 May 2024 19:17:09 +0200 Subject: [PATCH 2/2] unbreak missing FAudio_powf in some build configurations --- src/FAudio_internal.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/FAudio_internal.h b/src/FAudio_internal.h index bacbd0b835..a4d0ea91ba 100644 --- a/src/FAudio_internal.h +++ b/src/FAudio_internal.h @@ -57,6 +57,7 @@ #define FAudio_strlcpy(ptr1, ptr2, size) lstrcpynA(ptr1, ptr2, size) #define FAudio_pow(x, y) pow(x, y) +#define FAudio_powf(x, y) powf(x, y) #define FAudio_log(x) log(x) #define FAudio_log10(x) log10(x) #define FAudio_sin(x) sin(x)