Allow Insert Time option to move tempos and time sig changes, as per #1951.
git-svn-id: svn://localhost/ardour2/branches/3.0@5132 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
bf5111c90d
commit
41c5bff442
@ -1172,7 +1172,7 @@ class Editor : public PublicEditor
|
|||||||
void quantize_region ();
|
void quantize_region ();
|
||||||
|
|
||||||
void do_insert_time ();
|
void do_insert_time ();
|
||||||
void insert_time (nframes64_t pos, nframes64_t distance, Editing::InsertTimeOption opt, bool ignore_music_glue, bool markers_too);
|
void insert_time (nframes64_t, nframes64_t, Editing::InsertTimeOption, bool, bool, bool);
|
||||||
|
|
||||||
void tab_to_transient (bool forward);
|
void tab_to_transient (bool forward);
|
||||||
|
|
||||||
|
@ -6218,6 +6218,8 @@ Editor::do_insert_time ()
|
|||||||
d.get_vbox()->pack_start (move_glued);
|
d.get_vbox()->pack_start (move_glued);
|
||||||
CheckButton move_markers (_("Move markers"));
|
CheckButton move_markers (_("Move markers"));
|
||||||
d.get_vbox()->pack_start (move_markers);
|
d.get_vbox()->pack_start (move_markers);
|
||||||
|
CheckButton move_tempos (_("Move tempo and meter changes"));
|
||||||
|
d.get_vbox()->pack_start (move_tempos);
|
||||||
|
|
||||||
d.add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
|
d.add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
|
||||||
d.add_button (_("Insert time"), Gtk::RESPONSE_OK);
|
d.add_button (_("Insert time"), Gtk::RESPONSE_OK);
|
||||||
@ -6249,12 +6251,12 @@ Editor::do_insert_time ()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
insert_time (pos, distance, opt, move_glued.get_active(), move_markers.get_active());
|
insert_time (pos, distance, opt, move_glued.get_active(), move_markers.get_active(), move_tempos.get_active());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
|
Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
|
||||||
bool ignore_music_glue, bool markers_too)
|
bool ignore_music_glue, bool markers_too, bool tempo_too)
|
||||||
{
|
{
|
||||||
bool commit = false;
|
bool commit = false;
|
||||||
|
|
||||||
@ -6317,6 +6319,10 @@ Editor::insert_time (nframes64_t pos, nframes64_t frames, InsertTimeOption opt,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tempo_too) {
|
||||||
|
session->tempo_map().insert_time (pos, frames);
|
||||||
|
}
|
||||||
|
|
||||||
if (commit) {
|
if (commit) {
|
||||||
commit_reversible_command ();
|
commit_reversible_command ();
|
||||||
}
|
}
|
||||||
|
@ -246,6 +246,8 @@ class TempoMap : public PBD::StatefulDestructible
|
|||||||
void change_existing_tempo_at (nframes_t, double bpm, double note_type);
|
void change_existing_tempo_at (nframes_t, double bpm, double note_type);
|
||||||
void change_initial_tempo (double bpm, double note_type);
|
void change_initial_tempo (double bpm, double note_type);
|
||||||
|
|
||||||
|
void insert_time (nframes_t, nframes_t);
|
||||||
|
|
||||||
int n_tempos () const;
|
int n_tempos () const;
|
||||||
int n_meters () const;
|
int n_meters () const;
|
||||||
|
|
||||||
|
@ -1536,3 +1536,17 @@ TempoMap::n_meters() const
|
|||||||
|
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TempoMap::insert_time (nframes_t where, nframes_t amount)
|
||||||
|
{
|
||||||
|
for (Metrics::iterator i = metrics->begin(); i != metrics->end(); ++i) {
|
||||||
|
if ((*i)->frame() >= where) {
|
||||||
|
(*i)->set_frame ((*i)->frame() + amount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
timestamp_metrics (false);
|
||||||
|
|
||||||
|
StateChanged (Change (0));
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user