From 5e2d5db6c71a7344c1a57d8daa610b18505f41dd Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Sun, 18 Mar 2018 11:39:53 +1100 Subject: Fix midi track mapping on pt import --- gtk2_ardour/editor_pt_import.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'gtk2_ardour/editor_pt_import.cc') diff --git a/gtk2_ardour/editor_pt_import.cc b/gtk2_ardour/editor_pt_import.cc index 75d8711beb..c4af10241a 100644 --- a/gtk2_ardour/editor_pt_import.cc +++ b/gtk2_ardour/editor_pt_import.cc @@ -287,7 +287,6 @@ Editor::do_ptimport (std::string ptpath, /* MIDI - Find list of unique midi tracks first */ vector uniquetr; - uint16_t ith = 0; for (vector::iterator a = ptf.miditracks.begin (); a != ptf.miditracks.end (); ++a) { bool found = false; @@ -298,13 +297,12 @@ Editor::do_ptimport (std::string ptpath, } } if (!found) { - uniquetr.push_back (midipair (ith, a->name)); - //printf(" : %d : %s\n", ith, a->name.c_str()); - ith++; + uniquetr.push_back (midipair (a->index, a->name)); + //printf(" : %d : %s\n", a->index, a->name.c_str()); } } - vector > midi_tracks; + std::map > midi_tracks; /* MIDI - Create unique midi tracks and a lookup table for used tracks */ for (vector::iterator a = uniquetr.begin (); a != uniquetr.end (); ++a) { ptflookup_t miditr; @@ -319,13 +317,13 @@ Editor::do_ptimport (std::string ptpath, PresentationInfo::max_order, Normal)); assert (mt.size () == 1); - midi_tracks.push_back (mt.front ()); + midi_tracks[a->ptfindex] = mt.front (); } /* MIDI - Add midi regions one-by-one to corresponding midi tracks */ for (vector::iterator a = ptf.miditracks.begin (); a != ptf.miditracks.end (); ++a) { - boost::shared_ptr midi_track = midi_tracks.at (a->index); + boost::shared_ptr midi_track = midi_tracks[a->index]; assert (midi_track); boost::shared_ptr playlist = midi_track->playlist (); samplepos_t f = (samplepos_t)a->reg.startpos * srate / 1920000.; -- cgit v1.2.3