diff --git a/libs/ardour/ardour/triggerbox.h b/libs/ardour/ardour/triggerbox.h index 666322c513..dac189baa9 100644 --- a/libs/ardour/ardour/triggerbox.h +++ b/libs/ardour/ardour/triggerbox.h @@ -296,7 +296,7 @@ class LIBARDOUR_API Trigger : public PBD::Stateful { timepos_t current_pos() const; double position_as_fraction() const; - virtual void captured (SlotArmInfo&, BufferSet&) {} + virtual void captured (SlotArmInfo&) {} void arm (Temporal::BBT_Offset duration = Temporal::BBT_Offset()) { _arm (duration); } @@ -542,7 +542,7 @@ class LIBARDOUR_API AudioTrigger : public Trigger { void io_change (); bool probably_oneshot () const; - void captured (SlotArmInfo&, BufferSet&); + void captured (SlotArmInfo&); int set_region_in_worker_thread (std::shared_ptr); int set_region_in_worker_thread_from_capture (std::shared_ptr); @@ -616,7 +616,7 @@ class LIBARDOUR_API MIDITrigger : public Trigger { bool playable() const { return rt_midibuffer.load() || _region; } - void captured (SlotArmInfo&, BufferSet&); + void captured (SlotArmInfo&); void disarm (); template pframes_t midi_run (BufferSet&, samplepos_t start_sample, samplepos_t end_sample, @@ -985,6 +985,8 @@ class LIBARDOUR_API TriggerBox : public Processor, public std::enable_shared_fro /* return start time for capture; only valid if is_set is true upon return */ Temporal::Beats start_time (bool& is_set) const; + void finish_recording (); + private: struct Requests { std::atomic stop_all; @@ -1016,7 +1018,6 @@ class LIBARDOUR_API TriggerBox : public Processor, public std::enable_shared_fro PBD::PCGRand _pcg; void maybe_capture (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_sample, double speed, pframes_t nframes); - void finish_recording (BufferSet& bufs); void set_armed (SlotArmInfo*); /* These four are accessed (read/write) only from process() context */ diff --git a/libs/ardour/triggerbox.cc b/libs/ardour/triggerbox.cc index a39f9db881..bf173072b2 100644 --- a/libs/ardour/triggerbox.cc +++ b/libs/ardour/triggerbox.cc @@ -1864,7 +1864,7 @@ AudioTrigger::drop_data () } void -AudioTrigger::captured (SlotArmInfo& ai, BufferSet&) +AudioTrigger::captured (SlotArmInfo& ai) { if (ai.audio_buf.length == 0) { /* Nothing captured */ @@ -2441,7 +2441,7 @@ MIDITrigger::disarm () } void -MIDITrigger::captured (SlotArmInfo& ai, BufferSet& bufs) +MIDITrigger::captured (SlotArmInfo& ai) { if (ai.midi_buf->size() == 0) { disarm (); @@ -3670,7 +3670,7 @@ TriggerBox::disarm () } void -TriggerBox::finish_recording (BufferSet& bufs) +TriggerBox::finish_recording () { SlotArmInfo* ai = _arm_info.load(); assert (ai); @@ -3678,7 +3678,7 @@ TriggerBox::finish_recording (BufferSet& bufs) /* This transfers responsibility for the SlotArmInfo object to the trigger */ - ai->slot->captured (*ai, bufs); + ai->slot->captured (*ai); _arm_info = nullptr; /* XXX this should likely be dependent on what the post-record action is */ @@ -3729,8 +3729,9 @@ TriggerBox::maybe_capture (BufferSet& bufs, samplepos_t start_sample, samplepos_ if (speed <= 0.) { if (_record_state == Recording) { + std::cerr << "time to stop record\n"; /* We stopped the transport, so just stop immediately (no quantization) */ - finish_recording (bufs); + finish_recording (); } /* we stopped or reversed, but were not recording. Nothing to do here */ return; @@ -3831,7 +3832,7 @@ TriggerBox::maybe_capture (BufferSet& bufs, samplepos_t start_sample, samplepos_ } if (reached_end) { - finish_recording (bufs); + finish_recording (); } }