X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fimport.cc;h=4c740c4d31d7a3449660c240da858c913f472fed;hb=0eaf7b1e18ba0f6e9ce600f0a99c0fd218b44d81;hp=1a83bd39d7492e919e3dc36927a8984f4531abf4;hpb=30b087ab3d28f1585987fa3f6ae006562ae192e3;p=ardour.git diff --git a/libs/ardour/import.cc b/libs/ardour/import.cc index 1a83bd39d7..4c740c4d31 100644 --- a/libs/ardour/import.cc +++ b/libs/ardour/import.cc @@ -38,6 +38,7 @@ #include #include +#include #include #include "pbd/basename.h" @@ -424,9 +425,9 @@ write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status, smfs->append_event_beats( source_lock, - Evoral::Event( + Evoral::Event( Evoral::MIDI_EVENT, - Evoral::Beats::ticks_at_rate(t, source->ppqn()), + Temporal::Beats::ticks_at_rate(t, source->ppqn()), size, buf)); @@ -440,7 +441,7 @@ write_midi_data_to_new_files (Evoral::SMF* source, ImportStatus& status, /* we wrote something */ const samplepos_t pos = 0; - const Evoral::Beats length_beats = Evoral::Beats::ticks_at_rate(t, source->ppqn()); + const Temporal::Beats length_beats = Temporal::Beats::ticks_at_rate(t, source->ppqn()); BeatsSamplesConverter converter(smfs->session().tempo_map(), pos); smfs->update_length(pos + converter.to(length_beats.round_up_to_beat())); smfs->mark_streaming_write_completed (source_lock); @@ -500,8 +501,9 @@ Session::import_files (ImportStatus& status) ++p) { boost::shared_ptr source; - std::auto_ptr smf_reader; + const DataType type = SMFSource::safe_midi_file_extension (*p) ? DataType::MIDI : DataType::AUDIO; + boost::scoped_ptr smf_reader; if (type == DataType::AUDIO) { try { @@ -515,7 +517,7 @@ Session::import_files (ImportStatus& status) } else { try { - smf_reader = std::auto_ptr(new Evoral::SMF()); + smf_reader.reset (new Evoral::SMF()); if (smf_reader->open(*p)) { throw Evoral::SMF::FileError (*p); @@ -577,7 +579,7 @@ Session::import_files (ImportStatus& status) status.doing_what = compose_status_message (*p, source->samplerate(), sample_rate(), status.current, status.total); write_audio_data_to_new_files (source.get(), status, newfiles); - } else if (smf_reader.get()) { // midi + } else if (smf_reader) { // midi status.doing_what = string_compose(_("Loading MIDI file %1"), *p); write_midi_data_to_new_files (smf_reader.get(), status, newfiles, status.split_midi_channels); }