}
}
+struct midipair {
+ midipair (uint16_t idx, string n)
+ : ptfindex (idx)
+ , trname (n)
+ {}
+ uint16_t ptfindex;
+ string trname;
+};
+
void
Editor::do_ptimport (std::string ptpath,
SrcQuality quality)
msg.run ();
return;
} else {
- MessageDialog msg (string_compose (_("PT v%1 Session @ %2Hz\n\n%3 audio files\n%4 audio regions\n%5 active audio regions\n%6 midi regions\n%7 active midi regions\n\nContinue..."), (int)ptf.version, ptf.sessionrate, ptf.audiofiles.size (), ptf.regions.size () - ptf.midiregions.size (), ptf.tracks.size (), ptf.midiregions.size (), ptf.miditracks.size ()));
+ MessageDialog msg (string_compose (_("PT v%1 Session @ %2Hz\n\n%3 audio files\n%4 audio regions\n%5 active audio regions\n%6 midi regions\n%7 active midi regions\n\nContinue..."), (int)ptf.version, ptf.sessionrate, ptf.audiofiles.size (), ptf.regions.size (), ptf.tracks.size (), ptf.midiregions.size (), ptf.miditracks.size ()));
msg.add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
int result = msg.run ();
ptfwavpair.push_back (p);
imported.push_back (import_status.sources.back ());
} else {
+ /* ptformat does not know the length of sources so we cannot do this:
+ XMLNode srcxml (X_("Source"));
+ srcxml.set_property ("name", a->filename);
+ srcxml.set_property ("type", "audio");
+ srcxml.set_property ("id", PBD::ID ().to_s ());
+ boost::shared_ptr<Source> source = SourceFactory::createSilent (*_session, srcxml, a->length, _session->sample_rate ());
+ p.index1 = a->index;
+ p.id = source->id ();
+ ptfwavpair.push_back (p);
+ imported.push_back (source);
+ */
onefailed = true;
}
}
if (onefailed) {
- MessageDialog msg (_("Failed to load one or more of the audio files, but continuing to attempt import."));
+ MessageDialog msg (_("Failed to load one or more of the audio files. Click to attempt partial import."));
msg.run ();
} else {
- MessageDialog msg (_("Success! Import should complete soon."));
+ MessageDialog msg (_("Success! All audio files found. Click to complete import."));
msg.run ();
}
vector<ptflookup_t>::iterator found;
if ((found = std::find (lookuptr, usedtracks.end (), utr)) != usedtracks.end ()) {
DEBUG_TRACE (DEBUG::FileUtils, string_compose ("\twav(%1) reg(%2) ptf_tr(%3) ard_tr(%4)\n", a->reg.wave.filename.c_str (), a->reg.index, found->index1, found->index2));
- existing_track = midi_tracks.at (found->index2);
+ existing_track = get_nth_selected_audio_track (found->index2); // FIXME, don't rely on selection
/* Put on existing track */
boost::shared_ptr<Playlist> playlist = existing_track->playlist ();
boost::shared_ptr<Region> copy (RegionFactory::create (r, true));
}
/* MIDI - Find list of unique midi tracks first */
- struct midipair {
- midipair (uint16_t idx, string n)
- : ptfindex (idx)
- , trname (n)
- {}
- uint16_t ptfindex;
- string trname;
- };
vector<midipair> uniquetr;
- uint16_t ith = 0;
for (vector<PTFFormat::track_t>::iterator a = ptf.miditracks.begin (); a != ptf.miditracks.end (); ++a) {
bool found = false;
}
}
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<boost::shared_ptr<MidiTrack> > midi_tracks;
+ std::map <int, boost::shared_ptr<MidiTrack> > midi_tracks;
/* MIDI - Create unique midi tracks and a lookup table for used tracks */
for (vector<midipair>::iterator a = uniquetr.begin (); a != uniquetr.end (); ++a) {
ptflookup_t miditr;
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<PTFFormat::track_t>::iterator a = ptf.miditracks.begin (); a != ptf.miditracks.end (); ++a) {
- boost::shared_ptr<MidiTrack> midi_track = midi_tracks.at (a->index);
+ boost::shared_ptr<MidiTrack> midi_track = midi_tracks[a->index];
assert (midi_track);
boost::shared_ptr<Playlist> playlist = midi_track->playlist ();
samplepos_t f = (samplepos_t)a->reg.startpos * srate / 1920000.;