mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-22 00:06:59 +02:00
Minor restructuring in preparation for removing -lm dependency.
This commit is contained in:
+46
-8
@@ -5027,11 +5027,49 @@ Standard Library Stuff
|
||||
#define ma_clamp(x, lo, hi) (ma_max(lo, ma_min(x, hi)))
|
||||
#define ma_offset_ptr(p, offset) (((ma_uint8*)(p)) + (offset))
|
||||
|
||||
#define ma_sinf(x) ((float)sin((double)(x)))
|
||||
#define ma_cosf(x) ((float)cos((double)(x)))
|
||||
|
||||
#define ma_buffer_frame_capacity(buffer, channels, format) (sizeof(buffer) / ma_get_bytes_per_sample(format) / (channels))
|
||||
|
||||
static MA_INLINE double ma_sin(double x)
|
||||
{
|
||||
/* TODO: Implement custom sin(x). */
|
||||
return sin(x);
|
||||
}
|
||||
|
||||
static MA_INLINE double ma_cos(double x)
|
||||
{
|
||||
return ma_sin((MA_PI*0.5) - x);
|
||||
}
|
||||
|
||||
static MA_INLINE double ma_log2(double x)
|
||||
{
|
||||
/* TODO: Implement custom log2(x). */
|
||||
return log2(x);
|
||||
}
|
||||
|
||||
static MA_INLINE double ma_pow(double x, double y)
|
||||
{
|
||||
/* TODO: Implement custom pow(x, y). */
|
||||
return pow(x, y);
|
||||
}
|
||||
|
||||
static MA_INLINE double ma_log10(double x)
|
||||
{
|
||||
return ma_log2(x) * 0.30102999566398119521;
|
||||
}
|
||||
|
||||
static MA_INLINE float ma_powf(float x, float y)
|
||||
{
|
||||
return (float)ma_pow((double)x, (double)y);
|
||||
}
|
||||
|
||||
static MA_INLINE float ma_log10f(float x)
|
||||
{
|
||||
return (float)ma_log10((double)x);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Return Values:
|
||||
0: Success
|
||||
@@ -7007,12 +7045,12 @@ void ma_apply_volume_factor_pcm_frames(void* pPCMFrames, ma_uint32 frameCount, m
|
||||
|
||||
float ma_factor_to_gain_db(float factor)
|
||||
{
|
||||
return (float)(20*log10(factor));
|
||||
return (float)(20*ma_log10f(factor));
|
||||
}
|
||||
|
||||
float ma_gain_db_to_factor(float gain)
|
||||
{
|
||||
return (float)pow(10, gain/20.0);
|
||||
return (float)ma_powf(10, gain/20.0f);
|
||||
}
|
||||
|
||||
|
||||
@@ -28569,8 +28607,8 @@ static MA_INLINE ma_biquad_config ma_lpf__get_biquad_config(const ma_lpf_config*
|
||||
|
||||
q = 0.707107;
|
||||
w = 2 * MA_PI_D * pConfig->cutoffFrequency / pConfig->sampleRate;
|
||||
s = sin(w);
|
||||
c = cos(w);
|
||||
s = ma_sin(w);
|
||||
c = ma_cos(w);
|
||||
a = s / (2*q);
|
||||
|
||||
bqConfig.b0 = (1 - c) / 2;
|
||||
@@ -37363,7 +37401,7 @@ ma_uint64 ma_sine_wave_read_pcm_frames(ma_sine_wave* pSineWave, void* pFramesOut
|
||||
ma_uint64 iChannel;
|
||||
float s;
|
||||
|
||||
s = (float)(sin(pSineWave->time * pSineWave->periodsPerSecond) * pSineWave->amplitude);
|
||||
s = (float)(ma_sin(pSineWave->time * pSineWave->periodsPerSecond) * pSineWave->amplitude);
|
||||
pSineWave->time += pSineWave->delta;
|
||||
|
||||
for (iChannel = 0; iChannel < channels; iChannel += 1) {
|
||||
|
||||
Reference in New Issue
Block a user