From a2e458097073abbf23637ab433ab042fc85e28f5 Mon Sep 17 00:00:00 2001 From: WarmUpTill Date: Wed, 11 May 2022 16:14:45 +0200 Subject: [PATCH] Fix media and audio condition unexpectedly returning true after unpause --- src/macro-condition-audio.cpp | 4 ++++ src/macro-condition-media.cpp | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/macro-condition-audio.cpp b/src/macro-condition-audio.cpp index effbae80..4241fe47 100644 --- a/src/macro-condition-audio.cpp +++ b/src/macro-condition-audio.cpp @@ -212,6 +212,10 @@ void MacroConditionAudio::SetVolumeLevel(void *data, const float *, const float *) { MacroConditionAudio *c = static_cast(data); + const auto macro = c->GetMacro(); + if (macro && macro->Paused()) { + return; + } for (int i = 0; i < MAX_AUDIO_CHANNELS; i++) { if (peak[i] > c->_peak) { diff --git a/src/macro-condition-media.cpp b/src/macro-condition-media.cpp index f96bf647..06164c70 100644 --- a/src/macro-condition-media.cpp +++ b/src/macro-condition-media.cpp @@ -329,18 +329,30 @@ void MacroConditionMedia::ResetSignalHandler() void MacroConditionMedia::MediaStopped(void *data, calldata_t *) { MacroConditionMedia *media = static_cast(data); + const auto macro = media->GetMacro(); + if (macro && macro->Paused()) { + return; + } media->_stopped = true; } void MacroConditionMedia::MediaEnded(void *data, calldata_t *) { MacroConditionMedia *media = static_cast(data); + const auto macro = media->GetMacro(); + if (macro && macro->Paused()) { + return; + } media->_ended = true; } void MacroConditionMedia::MediaNext(void *data, calldata_t *) { MacroConditionMedia *media = static_cast(data); + const auto macro = media->GetMacro(); + if (macro && macro->Paused()) { + return; + } media->_next = true; }