From bbbedfcd1d239ae4467fadecb4c98107563ca78e Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 13 May 2025 12:12:43 -0600 Subject: [PATCH] triggerbox: use Trigger::disarm() more consistently --- libs/ardour/triggerbox.cc | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/libs/ardour/triggerbox.cc b/libs/ardour/triggerbox.cc index 7657e85a27..a5a21757b7 100644 --- a/libs/ardour/triggerbox.cc +++ b/libs/ardour/triggerbox.cc @@ -333,6 +333,7 @@ Trigger::disarm () { if (_armed) { _armed = false; + _box.disarm (); ArmChanged(); /* EMIT SIGNAL */ TriggerArmChanged (this); } @@ -1971,8 +1972,7 @@ AudioTrigger::captured (SlotArmInfo& ai, BufferSet&) { if (ai.audio_buf.length == 0) { /* Nothing captured */ - _armed = false; - ArmChanged (); /* EMIT SIGNAL */ + disarm (); return; } @@ -2012,9 +2012,7 @@ AudioTrigger::captured (SlotArmInfo& ai, BufferSet&) TriggerBox::worker->request_build_source (this, timecnt_t (data.length)); - _armed = false; - ArmChanged(); /* EMIT SIGNAL */ - TriggerArmChanged (this); + disarm (); } int @@ -2546,10 +2544,7 @@ void MIDITrigger::captured (SlotArmInfo& ai, BufferSet& bufs) { if (ai.midi_buf->size() == 0) { - if (_armed) { - _armed = false; - ArmChanged(); /* EMIT SIGNAL */ - } + disarm (); DEBUG_TRACE (DEBUG::Triggers, string_compose ("%1/%2 captured but with no MIDI data\n", _box.order(), index())); return; } @@ -2576,9 +2571,7 @@ MIDITrigger::captured (SlotArmInfo& ai, BufferSet& bufs) // std::cerr << "capture done, ask for a source of length " << dur.beats().str() << std::endl; TriggerBox::worker->request_build_source (this, timecnt_t (dur.beats())); - _armed = false; - ArmChanged(); /* EMIT SIGNAL */ - TriggerArmChanged (this); + disarm (); } void @@ -3742,12 +3735,6 @@ TriggerBox::arm_from_another_thread (Trigger& slot, samplepos_t now, uint32_t ch _arm_info = ai; } -void -TriggerBox::disarm () -{ - _arm_info = nullptr; -} - void TriggerBox::disarm_all () { @@ -3756,6 +3743,14 @@ TriggerBox::disarm_all () } } +void +TriggerBox::disarm () +{ + /* This must be called as an alternative to ::finish_recording() */ + + _arm_info = nullptr; +} + void TriggerBox::finish_recording (BufferSet& bufs) {