triggerbox: fix stop-all-cue marker under very specific conditions

If the stop takes effect on a process cycle boundary, do not just blindly pick
the next trigger; instead using the same logic as if the stop was not on the
boundary.
This commit is contained in:
Paul Davis 2023-01-31 18:38:33 -07:00
parent e76b26acf0
commit df3b8efbb9
1 changed files with 7 additions and 1 deletions

View File

@ -4438,7 +4438,13 @@ TriggerBox::run (BufferSet& bufs, samplepos_t start_sample, samplepos_t end_samp
*/
if (nframes == 0 && _currently_playing->state() == Trigger::Stopped) {
(void) handle_stopped_trigger (bufs, dest_offset);
if (!_stop_all && !_currently_playing->explicitly_stopped()) {
std::cerr << "stopped, do handle thing\n";
(void) handle_stopped_trigger (bufs, dest_offset);
} else {
_currently_playing = 0;
PropertyChanged (Properties::currently_playing);
}
}
}