+
+ double bpm = tempo_dialog.get_bpm ();
+ double nt = tempo_dialog.get_note_type ();
+ Timecode::BBT_Time when;
+ tempo_dialog.get_bbt_time(when);
+ bpm = max (0.01, bpm);
+
+ cerr << "Editing tempo section to be at " << when << endl;
+ _session->tempo_map().dump (cerr);
+ begin_reversible_command (_("replace tempo mark"));
+ XMLNode &before = _session->tempo_map().get_state();
+ _session->tempo_map().replace_tempo (*section, Tempo (bpm,nt));
+ _session->tempo_map().dump (cerr);
+ _session->tempo_map().move_tempo (*section, when);
+ _session->tempo_map().dump (cerr);
+ XMLNode &after = _session->tempo_map().get_state();
+ _session->add_command (new MementoCommand<TempoMap>(_session->tempo_map(), &before, &after));
+ commit_reversible_command ();