allow importing tempo maps at selected position.
authornick_m <mainsbridge@gmail.com>
Thu, 5 Jan 2017 15:14:17 +0000 (02:14 +1100)
committernick_m <mainsbridge@gmail.com>
Thu, 5 Jan 2017 15:14:17 +0000 (02:14 +1100)
gtk2_ardour/editor.h
gtk2_ardour/editor_audio_import.cc

index 8a719b54fd6320e388f2f52a23de228846f324ff..b96f67ab6b5ca5014d7ce415857e096eab0c9c28 100644 (file)
@@ -1421,7 +1421,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
 
        void import_audio (bool as_tracks);
        void do_import (std::vector<std::string> paths, bool split, bool as_tracks);
-       void import_smf_tempo_map (Evoral::SMF const &);
+       void import_smf_tempo_map (Evoral::SMF const &, framepos_t pos);
        void move_to_start ();
        void move_to_end ();
        void center_playhead ();
index a75ecad7e0a22ef91f66b12293b129be5ad1604d..c83579632589bbbd6784ece3f0c0d0b93da341d2 100644 (file)
@@ -262,7 +262,7 @@ Editor::get_nth_selected_midi_track (int nth) const
 }
 
 void
-Editor::import_smf_tempo_map (Evoral::SMF const & smf)
+Editor::import_smf_tempo_map (Evoral::SMF const & smf, framepos_t pos)
 {
        if (!_session) {
                return;
@@ -296,8 +296,8 @@ Editor::import_smf_tempo_map (Evoral::SMF const & smf)
                        }
 
                } else {
-                       new_map.replace_tempo (new_map.tempo_section_at_frame (0), tempo, (t->time_pulses/smf.ppqn()) / 4.0, 0, TempoSection::Constant, AudioTime);
-                       new_map.replace_meter (new_map.meter_section_at_frame (0), meter, bbt, 0, AudioTime);
+                       new_map.replace_meter (new_map.meter_section_at_frame (0), meter, bbt, pos, AudioTime);
+                       new_map.replace_tempo (new_map.tempo_section_at_frame (0), tempo, 0.0, pos, TempoSection::Constant, AudioTime);
                        have_initial_meter = true;
 
                }
@@ -340,7 +340,7 @@ Editor::do_import (vector<string>        paths,
                                continue;
                        }
                        if (smf.num_tempos() > 0) {
-                               import_smf_tempo_map (smf);
+                               import_smf_tempo_map (smf, pos);
                                smf.close ();
                                break;
                        }