From 547465e1fa1498b1ecd656b35bd2edcea6cc3bbe Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 4 Jan 2022 02:25:08 +0100 Subject: [PATCH] Implement ImportAsTrigger w/ImportSerializeFiles Place imported files on the same new track on consecutive trigger slots. --- gtk2_ardour/editor_audio_import.cc | 8 ++++++-- gtk2_ardour/trigger_page.cc | 9 ++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 199e85d791..231306527f 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -1141,8 +1141,12 @@ Editor::finish_bringing_in_material (boost::shared_ptr region, if (mode == ImportAsTrigger) { boost::shared_ptr copy (RegionFactory::create (region, true)); - /* TODO handle ImportSerializeFiles, pos > 0, use next free trigger-slot */ - existing_track->triggerbox ()->set_from_selection (0, copy); + for (int s = 0; s < TriggerBox::default_triggers_per_box; ++s) { + if (!existing_track->triggerbox ()->trigger (s)->region ()) { + existing_track->triggerbox ()->set_from_selection (s, copy); + break; + } + } } else { boost::shared_ptr playlist = existing_track->playlist(); boost::shared_ptr copy (RegionFactory::create (region, true)); diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index 86febc26a7..e006b84b65 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -588,11 +588,10 @@ TriggerPage::drop_paths_part_two (std::vector paths) } } InstrumentSelector is; // instantiation builds instrument-list and sets default. - timepos_t pos_a (0); - timepos_t pos_m (0); - // TODO ImportSerializeFiles - PublicEditor::instance().do_import (midi_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrigger, SrcBest, SMFTrackName, SMFTempoIgnore, pos_m, is.selected_instrument (), false); - PublicEditor::instance().do_import (audio_paths, Editing::ImportDistinctFiles, Editing::ImportAsTrigger, SrcBest, SMFTrackName, SMFTempoIgnore, pos_a); + timepos_t pos (0); + Editing::ImportDisposition disposition = Editing::ImportSerializeFiles; // or Editing::ImportDistinctFiles // TODO use drop modifier? config? + PublicEditor::instance().do_import (midi_paths, disposition, Editing::ImportAsTrigger, SrcBest, SMFTrackName, SMFTempoIgnore, pos, is.selected_instrument (), false); + PublicEditor::instance().do_import (audio_paths, disposition, Editing::ImportAsTrigger, SrcBest, SMFTrackName, SMFTempoIgnore, pos); } bool