diff --git a/src/Backends/Audio/Null.cpp b/src/Backends/Audio/Null.cpp index b88a5120..f748745b 100644 --- a/src/Backends/Audio/Null.cpp +++ b/src/Backends/Audio/Null.cpp @@ -60,8 +60,12 @@ void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan) (void)pan; } -void AudioBackend_SetOrganyaCallback(void (*callback)(void), unsigned int milliseconds) +void AudioBackend_SetOrganyaCallback(void (*callback)(void)) { (void)callback; +} + +void AudioBackend_SetOrganyaTimer(unsigned int milliseconds) +{ (void)milliseconds; } diff --git a/src/Backends/Audio/SDL2.cpp b/src/Backends/Audio/SDL2.cpp index e3317af7..63033fbd 100644 --- a/src/Backends/Audio/SDL2.cpp +++ b/src/Backends/Audio/SDL2.cpp @@ -205,11 +205,19 @@ void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan) SDL_UnlockAudioDevice(device_id); } -void AudioBackend_SetOrganyaCallback(void (*callback)(void), unsigned int milliseconds) +void AudioBackend_SetOrganyaCallback(void (*callback)(void)) { SDL_LockAudioDevice(device_id); organya_callback = callback; + + SDL_UnlockAudioDevice(device_id); +} + +void AudioBackend_SetOrganyaTimer(unsigned int milliseconds) +{ + SDL_LockAudioDevice(device_id); + organya_callback_milliseconds = milliseconds; SDL_UnlockAudioDevice(device_id); diff --git a/src/Backends/Audio/miniaudio.cpp b/src/Backends/Audio/miniaudio.cpp index 1bce2790..42417911 100644 --- a/src/Backends/Audio/miniaudio.cpp +++ b/src/Backends/Audio/miniaudio.cpp @@ -243,11 +243,19 @@ void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan) ma_mutex_unlock(&mutex); } -void AudioBackend_SetOrganyaCallback(void (*callback)(void), unsigned int milliseconds) +void AudioBackend_SetOrganyaCallback(void (*callback)(void)) { ma_mutex_lock(&organya_mutex); organya_callback = callback; + + ma_mutex_unlock(&organya_mutex); +} + +void AudioBackend_SetOrganyaTimer(unsigned int milliseconds) +{ + ma_mutex_lock(&organya_mutex); + organya_callback_milliseconds = milliseconds; ma_mutex_unlock(&organya_mutex);