use cleaned up Temporal ::quarters*_at* API (GUI edition)
This commit is contained in:
parent
3ca2be321d
commit
9412130c01
|
@ -1244,10 +1244,10 @@ AudioClock::set_bbt (timepos_t const & w, timecnt_t const & o, bool /*force*/)
|
|||
Temporal::BBT_Time sub_bbt;
|
||||
|
||||
if (negative) {
|
||||
BBT = tmap->bbt_at (tmap->quarter_note_at (timepos_t (offset)));
|
||||
BBT = tmap->bbt_at (tmap->quarters_at (timepos_t (offset)));
|
||||
sub_bbt = tmap->bbt_at (timepos_t (offset - when));
|
||||
} else {
|
||||
BBT = tmap->bbt_at (tmap->quarter_note_at (when + offset));
|
||||
BBT = tmap->bbt_at (tmap->quarters_at (when + offset));
|
||||
sub_bbt = tmap->bbt_at (timepos_t (offset));
|
||||
}
|
||||
|
||||
|
|
|
@ -2841,19 +2841,19 @@ Editor::snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, S
|
|||
case bbt_show_16:
|
||||
case bbt_show_4:
|
||||
case bbt_show_1:
|
||||
ret = timepos_t (tmap->quarter_note_at (tmap->round_to_bar (tmap->bbt_at (presnap))));
|
||||
ret = timepos_t (tmap->quarters_at (tmap->round_to_bar (tmap->bbt_at (presnap))));
|
||||
break;
|
||||
case bbt_show_quarters:
|
||||
ret = timepos_t (tmap->quarter_note_at (presnap).round_to_beat ());
|
||||
ret = timepos_t (tmap->quarters_at (presnap).round_to_beat ());
|
||||
break;
|
||||
case bbt_show_eighths:
|
||||
ret = timepos_t (tmap->quarter_note_at (presnap).round_to_subdivision (1 * divisor, direction));
|
||||
ret = timepos_t (tmap->quarters_at (presnap).round_to_subdivision (1 * divisor, direction));
|
||||
break;
|
||||
case bbt_show_sixteenths:
|
||||
ret = timepos_t (tmap->quarter_note_at (presnap).round_to_subdivision (2 * divisor, direction));
|
||||
ret = timepos_t (tmap->quarters_at (presnap).round_to_subdivision (2 * divisor, direction));
|
||||
break;
|
||||
case bbt_show_thirtyseconds:
|
||||
ret = timepos_t (tmap->quarter_note_at (presnap).round_to_subdivision (4 * divisor, direction));
|
||||
ret = timepos_t (tmap->quarters_at (presnap).round_to_subdivision (4 * divisor, direction));
|
||||
break;
|
||||
case bbt_show_sixtyfourths:
|
||||
ret = _session->tempo_map().round_to_quarter_note_subdivision (presnap.sample, 8 * divisor, direction);
|
||||
|
@ -2863,7 +2863,7 @@ Editor::snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, S
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
ret = timepos_t (tmap->quarter_note_at (presnap).round_to_subdivision (get_grid_beat_divisions(), direction));
|
||||
ret = timepos_t (tmap->quarters_at (presnap).round_to_subdivision (get_grid_beat_divisions(), direction));
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
@ -3449,7 +3449,7 @@ MeterMarkerDrag::motion (GdkEvent* event, bool first_move)
|
|||
if (map->time_domain() == AudioTime) {
|
||||
pos = timepos_t (map->sample_at (bbt, _editor->session()->sample_rate()));
|
||||
} else {
|
||||
pos = timepos_t (map->quarter_note_at (bbt));
|
||||
pos = timepos_t (map->quarters_at (bbt));
|
||||
}
|
||||
|
||||
_marker->reset_meter (map->set_meter (meter, pos));
|
||||
|
@ -3619,7 +3619,7 @@ TempoMarkerDrag::motion (GdkEvent* event, bool first_move)
|
|||
if (map->time_domain() == AudioTime) {
|
||||
pos = timepos_t (map->sample_at (bbt, _editor->session()->sample_rate()));
|
||||
} else {
|
||||
pos = timepos_t (map->quarter_note_at (bbt));
|
||||
pos = timepos_t (map->quarters_at (bbt));
|
||||
}
|
||||
|
||||
_marker->reset_tempo (map->set_tempo (tempo, pos));
|
||||
|
@ -3792,7 +3792,7 @@ BBTRulerDrag::setup_pointer_offset ()
|
|||
beat = floor (beat_at_sample) + (floor (((beat_at_sample - floor (beat_at_sample)) * 4)) / 4);
|
||||
}
|
||||
|
||||
_grab_qn = map.quarter_note_at (beat);
|
||||
_grab_qn = map.quarters_at (beat);
|
||||
|
||||
_pointer_offset = raw_grab_sample() - map.sample_at_quarter_note (_grab_qn);
|
||||
|
||||
|
@ -3823,7 +3823,7 @@ BBTRulerDrag::motion (GdkEvent* event, bool first_move)
|
|||
|
||||
if (ArdourKeyboard::indicates_constraint (event->button.state)) {
|
||||
/* adjust previous tempo to match pointer sample */
|
||||
_editor->session()->tempo_map().gui_stretch_tempo (_tempo, map.sample_at_quarter_note (_grab_qn), pf, _grab_qn, map.quarter_note_at_sample (pf));
|
||||
_editor->session()->tempo_map().gui_stretch_tempo (_tempo, map.sample_at_quarter_note (_grab_qn), pf, _grab_qn, map.quarters_at_sample (pf));
|
||||
}
|
||||
|
||||
ostringstream sstr;
|
||||
|
@ -3951,7 +3951,7 @@ TempoTwistDrag::setup_pointer_offset ()
|
|||
beat = floor (beat_at_sample) + (floor (((beat_at_sample - floor (beat_at_sample)) * 4)) / 4);
|
||||
}
|
||||
|
||||
_grab_qn = map.quarter_note_at_beat (beat);
|
||||
_grab_qn = map.quarters_at_beat (beat);
|
||||
|
||||
_pointer_offset = raw_grab_sample() - map.sample_at_quarter_note (_grab_qn);
|
||||
|
||||
|
@ -6922,7 +6922,7 @@ NoteCreateDrag::grid_aligned_beats (timepos_t const & pos, GdkEvent const * even
|
|||
beats = pos.beats ();
|
||||
break;
|
||||
case -1: /* round to bar */
|
||||
beats = map->quarter_note_at (map->metric_at (pos).meter().round_to_bar (map->bbt_at (pos)));
|
||||
beats = map->quarters_at (map->metric_at (pos).meter().round_to_bar (map->bbt_at (pos)));
|
||||
break;
|
||||
default: /* round to some beat subdivision */
|
||||
beats = (pos).beats().round_to_subdivision (divisions, Temporal::RoundNearest);
|
||||
|
|
|
@ -981,14 +981,14 @@ Editor::compute_bbt_ruler_scale (samplepos_t lower, samplepos_t upper)
|
|||
std::vector<Temporal::Point>::const_iterator i;
|
||||
Temporal::BBT_Time lower_beat, upper_beat; // the beats at each end of the ruler
|
||||
Temporal::TempoMap::SharedPtr tmap (Temporal::TempoMap::use());
|
||||
Beats floor_lower_beat = std::max (Beats(), tmap->quarter_note_at (lower)).round_down_to_beat ();
|
||||
Beats floor_lower_beat = std::max (Beats(), tmap->quarters_at_sample (lower)).round_down_to_beat ();
|
||||
|
||||
if (floor_lower_beat < 0.0) {
|
||||
floor_lower_beat = 0.0;
|
||||
}
|
||||
|
||||
const samplepos_t beat_before_lower_pos = tmap->sample_at (floor_lower_beat, _session->sample_rate());
|
||||
const samplepos_t beat_after_upper_pos = tmap->sample_at ((std::max (Beats(), tmap->quarter_note_at (upper)).round_down_to_beat()) + Beats (1, 0), _session->sample_rate());
|
||||
const samplepos_t beat_after_upper_pos = tmap->sample_at ((std::max (Beats(), tmap->quarters_at_sample (upper)).round_down_to_beat()) + Beats (1, 0), _session->sample_rate());
|
||||
|
||||
_session->bbt_time (timepos_t (beat_before_lower_pos), lower_beat);
|
||||
_session->bbt_time (timepos_t (beat_after_upper_pos), upper_beat);
|
||||
|
@ -1000,7 +1000,77 @@ Editor::compute_bbt_ruler_scale (samplepos_t lower, samplepos_t upper)
|
|||
|
||||
bbt_ruler_scale = bbt_show_many;
|
||||
|
||||
const double ceil_upper_beat = floor (std::max (0.0, _session->tempo_map().beat_at_sample (upper))) + 1.0;
|
||||
switch (_grid_type) {
|
||||
case GridTypeBeatDiv2:
|
||||
bbt_beat_subdivision = 2;
|
||||
break;
|
||||
case GridTypeBeatDiv3:
|
||||
bbt_beat_subdivision = 3;
|
||||
break;
|
||||
case GridTypeBeatDiv4:
|
||||
bbt_beat_subdivision = 4;
|
||||
break;
|
||||
case GridTypeBeatDiv5:
|
||||
bbt_beat_subdivision = 5;
|
||||
bbt_accent_modulo = 2; // XXX YIKES
|
||||
break;
|
||||
case GridTypeBeatDiv6:
|
||||
bbt_beat_subdivision = 3;
|
||||
bbt_accent_modulo = 2; // XXX YIKES
|
||||
break;
|
||||
case GridTypeBeatDiv7:
|
||||
bbt_beat_subdivision = 7;
|
||||
bbt_accent_modulo = 2; // XXX YIKES
|
||||
break;
|
||||
case GridTypeBeatDiv8:
|
||||
bbt_beat_subdivision = 4;
|
||||
bbt_accent_modulo = 2;
|
||||
break;
|
||||
case GridTypeBeatDiv10:
|
||||
bbt_beat_subdivision = 5;
|
||||
bbt_accent_modulo = 2; // XXX YIKES
|
||||
break;
|
||||
case GridTypeBeatDiv12:
|
||||
bbt_beat_subdivision = 3;
|
||||
bbt_accent_modulo = 3;
|
||||
break;
|
||||
case GridTypeBeatDiv14:
|
||||
bbt_beat_subdivision = 7;
|
||||
bbt_accent_modulo = 3; // XXX YIKES!
|
||||
break;
|
||||
case GridTypeBeatDiv16:
|
||||
bbt_beat_subdivision = 4;
|
||||
bbt_accent_modulo = 4;
|
||||
break;
|
||||
case GridTypeBeatDiv20:
|
||||
bbt_beat_subdivision = 5;
|
||||
bbt_accent_modulo = 5;
|
||||
break;
|
||||
case GridTypeBeatDiv24:
|
||||
bbt_beat_subdivision = 6;
|
||||
bbt_accent_modulo = 6;
|
||||
break;
|
||||
case GridTypeBeatDiv28:
|
||||
bbt_beat_subdivision = 7;
|
||||
bbt_accent_modulo = 7;
|
||||
break;
|
||||
case GridTypeBeatDiv32:
|
||||
bbt_beat_subdivision = 4;
|
||||
bbt_accent_modulo = 8;
|
||||
break;
|
||||
case GridTypeBar:
|
||||
case GridTypeBeat:
|
||||
bbt_beat_subdivision = 4;
|
||||
break;
|
||||
case GridTypeNone:
|
||||
case GridTypeTimecode:
|
||||
case GridTypeMinSec:
|
||||
case GridTypeCDFrame:
|
||||
bbt_beat_subdivision = 4;
|
||||
break;
|
||||
}
|
||||
|
||||
const Beats ceil_upper_beat = std::max (Beats(), tmap->quarters_at_sample (upper)).round_up_to_beat() + Beats (1, 0);
|
||||
|
||||
if (ceil_upper_beat == floor_lower_beat) {
|
||||
return;
|
||||
|
|
|
@ -334,7 +334,7 @@ Editor::compute_current_bbt_points (Temporal::TempoMapPoints& grid, samplepos_t
|
|||
|
||||
/* prevent negative values of leftmost from creeping into tempomap
|
||||
*/
|
||||
const Beats lower_beat = max (Beats (), TempoMap::use()->quarter_note_at (leftmost)).round_down_to_beat() - Beats (1, 0);
|
||||
const Beats lower_beat = max (Beats (), TempoMap::use()->quarters_at_sample (leftmost)).round_down_to_beat() - Beats (1, 0);
|
||||
const samplecnt_t sr (_session->sample_rate());
|
||||
TempoMap::SharedPtr tmap (TempoMap::use());
|
||||
|
||||
|
@ -419,7 +419,7 @@ Editor::mouse_add_new_tempo_event (timepos_t pos)
|
|||
|
||||
begin_reversible_command (_("add tempo mark"));
|
||||
|
||||
const Beats qn = map->quarter_note_at (pos);
|
||||
const Beats qn = map->quarters_at (pos);
|
||||
|
||||
if (qn > Beats()) {
|
||||
XMLNode &before = map->get_state();
|
||||
|
|
|
@ -2932,7 +2932,7 @@ MidiRegionView::update_resizing (NoteBase* primary, bool at_front, double delta_
|
|||
}
|
||||
|
||||
Temporal::TempoMap::SharedPtr tmap (Temporal::TempoMap::use());
|
||||
const timepos_t abs_beats (tmap->quarter_note_at (snapped_x));
|
||||
const timepos_t abs_beats (tmap->quarters_at (snapped_x));
|
||||
const Temporal::Beats beats = _region->absolute_time_to_source_beats (abs_beats);
|
||||
Temporal::Beats len = Temporal::Beats();
|
||||
|
||||
|
@ -3027,7 +3027,7 @@ MidiRegionView::commit_resizing (NoteBase* primary, bool at_front, double delta_
|
|||
}
|
||||
|
||||
/* and then to beats */
|
||||
const timepos_t abs_beats (Temporal::TempoMap::use()->quarter_note_at (current_time));
|
||||
const timepos_t abs_beats (Temporal::TempoMap::use()->quarters_at (current_time));
|
||||
const Temporal::Beats x_beats = _region->absolute_time_to_source_beats (abs_beats);
|
||||
|
||||
if (at_front && x_beats < canvas_note->note()->end_time()) {
|
||||
|
@ -4268,11 +4268,11 @@ MidiRegionView::snap_sample_to_grid_underneath (samplepos_t p, bool shift_snap)
|
|||
#warning NUTEMPO new tempo map API required
|
||||
#if 0
|
||||
Temporal::TempoMap& map (trackview.session()->tempo_map());
|
||||
Temporal::Beats eqaf = map.quarter_note_at (p + _region->position_sample());
|
||||
Temporal::Beats eqaf = map.quarters_at (p + _region->position_sample());
|
||||
|
||||
|
||||
if (shift_snap) {
|
||||
const Temporal::Beats qaf = map.quarter_note_at (p + _region->position_sample());
|
||||
const Temporal::Beats qaf = map.quarters_at (p + _region->position_sample());
|
||||
/* Hack so that we always snap to the note that we are over, instead of snapping
|
||||
to the next one if we're more than halfway through the one we're over.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue