summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_pt_import.cc
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2017-10-15 17:16:27 +1100
committerDamien Zammit <damien@zamaudio.com>2017-10-15 17:18:33 +1100
commit7422ffe6920deba396debb670c713849a64be43b (patch)
tree20ad4b6ec51aad1315ebb16eda981469489ec774 /gtk2_ardour/editor_pt_import.cc
parent124092d139c599f9f06fec851a5cbba8d6ef41b0 (diff)
editor_pt_import: Process wav indexes once only
Diffstat (limited to 'gtk2_ardour/editor_pt_import.cc')
-rw-r--r--gtk2_ardour/editor_pt_import.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_pt_import.cc b/gtk2_ardour/editor_pt_import.cc
index 79dfa22f3a..470d0b43e1 100644
--- a/gtk2_ardour/editor_pt_import.cc
+++ b/gtk2_ardour/editor_pt_import.cc
@@ -192,11 +192,16 @@ Editor::do_ptimport (std::string ptpath,
return;
}
+ vector<uint16_t> indexes;
+ vector<uint16_t>::iterator used_idx;
+
for (vector<PTFFormat::region_t>::iterator a = ptf.regions.begin();
a != ptf.regions.end(); ++a) {
for (vector<ptflookup_t>::iterator p = ptfwavpair.begin();
p != ptfwavpair.end(); ++p) {
- if ((p->index1 == a->wave.index) && (strcmp(a->wave.filename.c_str(), "") != 0)) {
+
+ used_idx = std::find(indexes.begin(), indexes.end(), a->wave.index);
+ if ((p->index1 == a->wave.index) && (strcmp(a->wave.filename.c_str(), "") != 0) && used_idx == indexes.end()) {
for (SourceList::iterator x = imported.begin();
x != imported.end(); ++x) {
if ((*x)->id() == p->id) {
@@ -223,6 +228,7 @@ Editor::do_ptimport (std::string ptpath,
ptfregpair.push_back(rp);
}
}
+ indexes.push_back(a->wave.index);
}
}
if (strcmp(a->wave.filename.c_str(), "") == 0) {