summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-12-19 04:02:01 +1100
committernick_m <mainsbridge@gmail.com>2016-12-19 04:02:01 +1100
commit27b95300e2762566e766e0627e92ceb3b20f2efa (patch)
tree8fa07d2a95ff04ee11a795bcdc5c4826569cb8a6 /gtk2_ardour
parentf9743a1eb120770aadbd1981d053f6455895004f (diff)
add frame parameter for Meter ctor and TempoMap::replace_meter(). allow for various failures.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_audio_import.cc2
-rw-r--r--gtk2_ardour/editor_drag.cc3
-rw-r--r--gtk2_ardour/editor_markers.cc2
-rw-r--r--gtk2_ardour/editor_tempodisplay.cc10
4 files changed, 9 insertions, 8 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index 8e2e476d15..899f36ee51 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -291,7 +291,7 @@ Editor::import_smf_tempo_map (Evoral::SMF const & smf)
if (have_meter) {
bbt = new_map.bbt_at_beat ((t->time_pulses/smf.ppqn()));
}
- new_map.add_meter (meter, t->time_pulses, bbt, MusicTime);
+ new_map.add_meter (meter, t->time_pulses, bbt, 0, MusicTime);
cerr << "@ " << t->time_pulses/smf.ppqn() << " ("
<< t->time_seconds << ") Add T " << tempo << " M " << meter << endl;
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 6555ec9c52..e4c86f97b1 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -3287,8 +3287,9 @@ MeterMarkerDrag::motion (GdkEvent* event, bool first_move)
--bbt.bars;
}
const double beat = map.beat_at_bbt (bbt);
+ const framepos_t frame = map.frame_at_beat (beat);
_real_section = map.add_meter (Meter (_marker->meter().divisions_per_bar(), _marker->meter().note_divisor())
- , beat, bbt, _real_section->position_lock_style());
+ , beat, bbt, frame, _real_section->position_lock_style());
if (!_real_section) {
aborted (true);
return;
diff --git a/gtk2_ardour/editor_markers.cc b/gtk2_ardour/editor_markers.cc
index 1c339d9dd3..a4d990b1e3 100644
--- a/gtk2_ardour/editor_markers.cc
+++ b/gtk2_ardour/editor_markers.cc
@@ -1396,7 +1396,7 @@ Editor::toggle_marker_lock_style ()
const Timecode::BBT_Time bbt (msp->bbt());
const PositionLockStyle pls = (msp->position_lock_style() == AudioTime) ? MusicTime : AudioTime;
- _session->tempo_map().replace_meter (*msp, meter, bbt, pls);
+ _session->tempo_map().replace_meter (*msp, meter, bbt, msp->frame(), pls);
XMLNode &after = _session->tempo_map().get_state();
_session->add_command(new MementoCommand<TempoMap>(_session->tempo_map(), &before, &after));
diff --git a/gtk2_ardour/editor_tempodisplay.cc b/gtk2_ardour/editor_tempodisplay.cc
index 4463ec825b..e98959ba9d 100644
--- a/gtk2_ardour/editor_tempodisplay.cc
+++ b/gtk2_ardour/editor_tempodisplay.cc
@@ -409,14 +409,14 @@ Editor::mouse_add_new_meter_event (framepos_t frame)
meter_dialog.get_bbt_time (requested);
const double beat = map.beat_at_bbt (requested);
-
+ const double al_frame = map.frame_at_beat (beat);
begin_reversible_command (_("add meter mark"));
XMLNode &before = map.get_state();
if (meter_dialog.get_lock_style() == MusicTime) {
- map.add_meter (Meter (bpb, note_type), beat, requested, MusicTime);
+ map.add_meter (Meter (bpb, note_type), beat, requested, 0, MusicTime);
} else {
- map.add_meter (Meter (bpb, note_type), beat, requested, AudioTime);
+ map.add_meter (Meter (bpb, note_type), beat, requested, al_frame, AudioTime);
}
_session->add_command(new MementoCommand<TempoMap>(map, &before, &map.get_state()));
@@ -466,13 +466,13 @@ Editor::edit_meter_section (MeterSection* section)
Timecode::BBT_Time when;
meter_dialog.get_bbt_time (when);
-
+ const framepos_t frame = _session->tempo_map().frame_at_bbt (when);
const PositionLockStyle pls = (meter_dialog.get_lock_style() == AudioTime) ? AudioTime : MusicTime;
begin_reversible_command (_("replace meter mark"));
XMLNode &before = _session->tempo_map().get_state();
- _session->tempo_map().replace_meter (*section, meter, when, pls);
+ _session->tempo_map().replace_meter (*section, meter, when, frame, pls);
XMLNode &after = _session->tempo_map().get_state();
_session->add_command(new MementoCommand<TempoMap>(_session->tempo_map(), &before, &after));