mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-10-30 08:01:01 +00:00
Updated "smlua_audio_utils" to acknowledge the "configMuteFocusLoss" option (#391)
This commit is contained in:
parent
970f454d8e
commit
12c7540daf
1 changed files with 27 additions and 13 deletions
|
|
@ -336,9 +336,13 @@ void audio_stream_play(struct ModAudio* audio, bool restart, f32 volume) {
|
|||
if (!audio_sanity_check(audio, true, "play stream")) {
|
||||
return;
|
||||
}
|
||||
if (configMuteFocusLoss && !WAPI.has_focus()) {
|
||||
ma_sound_set_volume(&audio->sound, 0);
|
||||
} else {
|
||||
f32 masterVolume = (f32)configMasterVolume / 127.0f * (f32)gLuaVolumeMaster / 127.0f;
|
||||
f32 musicVolume = (f32)configMusicVolume / 127.0f * (f32)gLuaVolumeLevel / 127.0f;
|
||||
ma_sound_set_volume(&audio->sound, masterVolume * musicVolume * volume);
|
||||
}
|
||||
audio->baseVolume = volume;
|
||||
if (restart || !ma_sound_is_playing(&audio->sound)) { ma_sound_seek_to_pcm_frame(&audio->sound, 0); }
|
||||
ma_sound_start(&audio->sound);
|
||||
|
|
@ -427,9 +431,13 @@ void audio_stream_set_volume(struct ModAudio* audio, f32 volume) {
|
|||
if (!audio_sanity_check(audio, true, "set stream volume")) {
|
||||
return;
|
||||
}
|
||||
if (configMuteFocusLoss && !WAPI.has_focus()) {
|
||||
ma_sound_set_volume(&audio->sound, 0);
|
||||
} else {
|
||||
f32 masterVolume = (f32)configMasterVolume / 127.0f;
|
||||
f32 musicVolume = (f32)configMusicVolume / 127.0f;
|
||||
ma_sound_set_volume(&audio->sound, masterVolume * musicVolume * volume);
|
||||
}
|
||||
audio->baseVolume = volume;
|
||||
}
|
||||
|
||||
|
|
@ -568,10 +576,14 @@ void audio_sample_play(struct ModAudio* audio, Vec3f position, f32 volume) {
|
|||
pan = (get_sound_pan(mtx[3][0] * factor, mtx[3][2] * factor) - 0.5f) * 2.0f;
|
||||
}
|
||||
|
||||
if (configMuteFocusLoss && !WAPI.has_focus()) {
|
||||
ma_sound_set_volume(sound, 0);
|
||||
} else {
|
||||
f32 intensity = sound_get_level_intensity(dist);
|
||||
f32 masterVolume = (f32)configMasterVolume / 127.0f * (f32)gLuaVolumeMaster / 127.0f;
|
||||
f32 sfxVolume = (f32)configSfxVolume / 127.0f * (f32)gLuaVolumeSfx / 127.0f;
|
||||
ma_sound_set_volume(sound, masterVolume * sfxVolume * volume * intensity);
|
||||
}
|
||||
ma_sound_set_pan(sound, pan);
|
||||
audio->baseVolume = volume;
|
||||
|
||||
|
|
@ -584,9 +596,11 @@ void audio_custom_update_volume(void) {
|
|||
while (node) {
|
||||
struct DynamicPoolNode* prev = node->prev;
|
||||
struct ModAudio* audio = node->ptr;
|
||||
if (configMuteFocusLoss && !WAPI.has_focus()) {
|
||||
ma_sound_set_volume(&audio->sound, 0);
|
||||
} else if (audio->isStream) {
|
||||
f32 masterVolume = (f32)configMasterVolume / 127.0f * (f32)gLuaVolumeMaster / 127.0f;
|
||||
f32 musicVolume = (f32)configMusicVolume / 127.0f * (f32)gLuaVolumeLevel / 127.0f;
|
||||
if (audio->isStream) {
|
||||
ma_sound_set_volume(&audio->sound, masterVolume * musicVolume * audio->baseVolume);
|
||||
}
|
||||
node = prev;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue