Implement ImportAsTrigger w/ImportSerializeFiles

Place imported files on the same new track on consecutive
trigger slots.
This commit is contained in:
Robin Gareus 2022-01-04 02:25:08 +01:00
parent 02b94123ef
commit 547465e1fa
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 10 additions and 7 deletions

View File

@ -1141,8 +1141,12 @@ Editor::finish_bringing_in_material (boost::shared_ptr<Region> region,
if (mode == ImportAsTrigger) {
boost::shared_ptr<Region> 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> playlist = existing_track->playlist();
boost::shared_ptr<Region> copy (RegionFactory::create (region, true));

View File

@ -588,11 +588,10 @@ TriggerPage::drop_paths_part_two (std::vector<std::string> 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