Use miniaudio's built-in volume control.
This commit is contained in:
parent
5c2d5fa011
commit
0f9bb8867f
|
|
@ -281,7 +281,6 @@ typedef struct AudioData {
|
||||||
ma_device device; // miniaudio device
|
ma_device device; // miniaudio device
|
||||||
ma_mutex lock; // miniaudio mutex lock
|
ma_mutex lock; // miniaudio mutex lock
|
||||||
bool isReady; // Check if audio device is ready
|
bool isReady; // Check if audio device is ready
|
||||||
float masterVolume; // Master volume (multiplied on output mixing)
|
|
||||||
} System;
|
} System;
|
||||||
struct {
|
struct {
|
||||||
AudioBuffer *first; // Pointer to first AudioBuffer in the list
|
AudioBuffer *first; // Pointer to first AudioBuffer in the list
|
||||||
|
|
@ -351,7 +350,6 @@ void UntrackAudioBuffer(AudioBuffer *buffer);
|
||||||
void InitAudioDevice(void)
|
void InitAudioDevice(void)
|
||||||
{
|
{
|
||||||
// TODO: Load AUDIO context memory dynamically?
|
// TODO: Load AUDIO context memory dynamically?
|
||||||
AUDIO.System.masterVolume = 1.0f;
|
|
||||||
|
|
||||||
// Init audio context
|
// Init audio context
|
||||||
ma_context_config ctxConfig = ma_context_config_init();
|
ma_context_config ctxConfig = ma_context_config_init();
|
||||||
|
|
@ -444,10 +442,7 @@ bool IsAudioDeviceReady(void)
|
||||||
// Set master volume (listener)
|
// Set master volume (listener)
|
||||||
void SetMasterVolume(float volume)
|
void SetMasterVolume(float volume)
|
||||||
{
|
{
|
||||||
if (volume < 0.0f) volume = 0.0f;
|
ma_device_set_master_volume(&AUDIO.System.device, volume);
|
||||||
else if (volume > 1.0f) volume = 1.0f;
|
|
||||||
|
|
||||||
AUDIO.System.masterVolume = volume;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
@ -1793,7 +1788,7 @@ static void MixAudioFrames(float *framesOut, const float *framesIn, ma_uint32 fr
|
||||||
float *frameOut = framesOut + (iFrame*AUDIO.System.device.playback.channels);
|
float *frameOut = framesOut + (iFrame*AUDIO.System.device.playback.channels);
|
||||||
const float *frameIn = framesIn + (iFrame*AUDIO.System.device.playback.channels);
|
const float *frameIn = framesIn + (iFrame*AUDIO.System.device.playback.channels);
|
||||||
|
|
||||||
frameOut[iChannel] += (frameIn[iChannel]*AUDIO.System.masterVolume*localVolume);
|
frameOut[iChannel] += (frameIn[iChannel]*localVolume);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user