13
0

NO-OP: clean up and consolidate PH next/prev grid code

This commit is contained in:
Robin Gareus 2022-03-04 17:56:29 +01:00
parent 90770a2788
commit 9dabe047f1
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 40 additions and 37 deletions

View File

@ -2934,26 +2934,26 @@ Editor::snap_to_bbt (timepos_t const & presnap, Temporal::RoundMode direction, S
if (gpref != SnapToGrid_Unscaled) { // use the visual grid lines which are limited by the zoom scale that the user selected
int divisor = 2;
int divisor;
switch (_grid_type) {
case GridTypeBeatDiv3:
case GridTypeBeatDiv6:
case GridTypeBeatDiv12:
case GridTypeBeatDiv24:
divisor = 3;
break;
case GridTypeBeatDiv5:
case GridTypeBeatDiv10:
case GridTypeBeatDiv20:
divisor = 5;
break;
case GridTypeBeatDiv7:
case GridTypeBeatDiv14:
case GridTypeBeatDiv28:
divisor = 7;
break;
default:
divisor = 2;
case GridTypeBeatDiv3:
case GridTypeBeatDiv6:
case GridTypeBeatDiv12:
case GridTypeBeatDiv24:
divisor = 3;
break;
case GridTypeBeatDiv5:
case GridTypeBeatDiv10:
case GridTypeBeatDiv20:
divisor = 5;
break;
case GridTypeBeatDiv7:
case GridTypeBeatDiv14:
case GridTypeBeatDiv28:
divisor = 7;
break;
default:
divisor = 2;
};
BBTRulerScale scale = bbt_ruler_scale;

View File

@ -7806,17 +7806,17 @@ Editor::playhead_forward_to_grid ()
return;
}
timepos_t pos (_playhead_cursor->current_sample ());
timepos_t pos (_playhead_cursor->current_sample ());
if ( _grid_type == GridTypeNone) {
if (pos < timepos_t::max (pos.time_domain()).earlier (timepos_t (samplepos_t (floor (current_page_samples()*0.1))))) {
pos += timepos_t (samplepos_t (floor (current_page_samples()*0.1)));
if (_grid_type == GridTypeNone) {
timepos_t const decipage (samplepos_t(floor (current_page_samples() * 0.1)));
if (pos < timepos_t::max (pos.time_domain()).earlier (decipage)) {
pos += timepos_t (decipage);
_session->request_locate (pos.samples());
} else {
_session->request_locate (0);
}
} else {
if (pos < timepos_t::max (pos.time_domain()).earlier (timepos_t (samplepos_t (3)))) {
pos += timepos_t (samplepos_t (2));
pos = snap_to_grid (pos, Temporal::RoundUpAlways, SnapToGrid_Scaled);
@ -7824,10 +7824,9 @@ Editor::playhead_forward_to_grid ()
}
}
/* keep PH visible in window */
if (pos > timepos_t (_leftmost_sample + current_page_samples() *0.9)) {
reset_x_origin (pos.samples() - (current_page_samples()*0.9));
if (pos > timepos_t (_leftmost_sample + current_page_samples() * 0.9)) {
reset_x_origin (pos.samples() - current_page_samples() * 0.9);
}
}
@ -7839,26 +7838,30 @@ Editor::playhead_backward_to_grid ()
return;
}
timepos_t pos (_playhead_cursor->current_sample ());
timepos_t pos (_playhead_cursor->current_sample ());
if ( _grid_type == GridTypeNone) {
if (pos.samples() > current_page_samples()*0.1 ) {
pos.shift_earlier (timepos_t (samplepos_t (floor (current_page_samples()*0.1))));
if (_grid_type == GridTypeNone) {
samplepos_t const decipage (floor (current_page_samples() * 0.1));
if (pos.samples() > decipage) {
pos.shift_earlier (timepos_t (decipage));
_session->request_locate (pos.samples());
} else {
_session->request_locate (0);
}
} else {
if (pos.samples() > 2) {
pos.shift_earlier (timepos_t (samplepos_t (2)));
pos = snap_to_grid (pos, Temporal::RoundDownAlways, SnapToGrid_Scaled);
} else {
pos = timepos_t (samplepos_t (0));
}
//handle the case where we are rolling, and we're less than one-half second past the mark, we want to go to the prior mark...
//also see: jump_backward_to_mark
/* handle the case where we are rolling, and we're less than one-half second past the mark,
* we want to go to the prior mark...
* also see: jump_backward_to_mark
*/
if (_session->transport_rolling()) {
if ((_playhead_cursor->current_sample() - pos.samples()) < _session->sample_rate()/2) {
if ((_playhead_cursor->current_sample() - pos.samples()) < _session->sample_rate() * 0.5) {
pos = snap_to_grid (pos, Temporal::RoundDownAlways, SnapToGrid_Scaled);
}
}
@ -7867,8 +7870,8 @@ Editor::playhead_backward_to_grid ()
}
/* keep PH visible in window */
if (pos.samples() < (_leftmost_sample + current_page_samples() *0.1)) {
reset_x_origin (pos.samples() - (current_page_samples()*0.1));
if (pos.samples() < (_leftmost_sample + current_page_samples() * 0.1)) {
reset_x_origin (pos.samples() - current_page_samples() * 0.1);
}
}