Remove UI side grid limit

This concept from 2007 is no longer required Temporal::get_grid
already limits the number of grid-lines depending on the step
size (mod-bar, beat_div) and start/end positions.
This commit is contained in:
Robin Gareus 2023-01-11 00:31:50 +01:00
parent 34e12a5d78
commit 1ff5592731
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
3 changed files with 12 additions and 23 deletions

View file

@ -312,7 +312,6 @@ Editor::Editor ()
, _samples_ruler_interval (0) , _samples_ruler_interval (0)
, bbt_ruler_scale (bbt_show_many) , bbt_ruler_scale (bbt_show_many)
, bbt_bars (0) , bbt_bars (0)
, bbt_nmarks (0)
, bbt_bar_helper_on (0) , bbt_bar_helper_on (0)
, timecode_ruler (0) , timecode_ruler (0)
, bbt_ruler (0) , bbt_ruler (0)

View file

@ -1036,7 +1036,6 @@ private:
BBTRulerScale bbt_ruler_scale; BBTRulerScale bbt_ruler_scale;
uint32_t bbt_bars; uint32_t bbt_bars;
gint bbt_nmarks;
uint32_t bbt_bar_helper_on; uint32_t bbt_bar_helper_on;
void compute_bbt_ruler_scale (samplepos_t lower, samplepos_t upper); void compute_bbt_ruler_scale (samplepos_t lower, samplepos_t upper);

View file

@ -1065,7 +1065,6 @@ Editor::compute_bbt_ruler_scale (samplepos_t lower, samplepos_t upper)
bbt_bar_helper_on = false; bbt_bar_helper_on = false;
bbt_bars = 0; bbt_bars = 0;
bbt_nmarks = 1;
bbt_ruler_scale = bbt_show_many; bbt_ruler_scale = bbt_show_many;
@ -1154,7 +1153,6 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
Temporal::TempoMapPoints::const_iterator i; Temporal::TempoMapPoints::const_iterator i;
char buf[64]; char buf[64];
gint n = 0;
Temporal::BBT_Time next_beat; Temporal::BBT_Time next_beat;
uint32_t beats = 0; uint32_t beats = 0;
double bbt_position_of_helper; double bbt_position_of_helper;
@ -1166,6 +1164,12 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
compute_current_bbt_points (grid, lower, upper); compute_current_bbt_points (grid, lower, upper);
#if 0 // DEBUG GRID
for (auto const& g : grid) {
std::cout << "Grid " << g.time() << " Beats: " << g.beats() << " BBT: " << g.bbt() << " sample: " << g.sample(_session->nominal_sample_rate ()) << "\n";
}
#endif
if (distance (grid.begin(), grid.end()) == 0) { if (distance (grid.begin(), grid.end()) == 0) {
return; return;
} }
@ -1245,7 +1249,6 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
switch (bbt_ruler_scale) { switch (bbt_ruler_scale) {
case bbt_show_many: case bbt_show_many:
bbt_nmarks = 1;
snprintf (buf, sizeof(buf), "cannot handle %" PRIu32 " bars", bbt_bars); snprintf (buf, sizeof(buf), "cannot handle %" PRIu32 " bars", bbt_bars);
mark.style = ArdourCanvas::Ruler::Mark::Major; mark.style = ArdourCanvas::Ruler::Mark::Major;
mark.label = buf; mark.label = buf;
@ -1254,8 +1257,7 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
break; break;
case bbt_show_64: case bbt_show_64:
bbt_nmarks = (gint) (bbt_bars / 64) + 1; for (i = grid.begin(); i != grid.end(); i++) {
for (n = 0, i = grid.begin(); i != grid.end() && n < bbt_nmarks; i++) {
BBT_Time bbt ((*i).bbt()); BBT_Time bbt ((*i).bbt());
if (bbt.is_bar()) { if (bbt.is_bar()) {
if (bbt.bars % 64 == 1) { if (bbt.bars % 64 == 1) {
@ -1273,15 +1275,13 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.label = buf; mark.label = buf;
mark.position = (*i).sample (sr); mark.position = (*i).sample (sr);
marks.push_back (mark); marks.push_back (mark);
++n;
} }
} }
} }
break; break;
case bbt_show_16: case bbt_show_16:
bbt_nmarks = (bbt_bars / 16) + 1; for (i = grid.begin(); i != grid.end(); i++) {
for (n = 0, i = grid.begin(); i != grid.end() && n < bbt_nmarks; i++) {
BBT_Time bbt ((*i).bbt()); BBT_Time bbt ((*i).bbt());
if (bbt.is_bar()) { if (bbt.is_bar()) {
if (bbt.bars % 16 == 1) { if (bbt.bars % 16 == 1) {
@ -1299,15 +1299,13 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.label = buf; mark.label = buf;
mark.position = (*i).sample(sr); mark.position = (*i).sample(sr);
marks.push_back (mark); marks.push_back (mark);
++n;
} }
} }
} }
break; break;
case bbt_show_4: case bbt_show_4:
bbt_nmarks = (bbt_bars / 4) + 1; for (i = grid.begin(); i != grid.end(); ++i) {
for (n = 0, i = grid.begin(); i != grid.end() && n < bbt_nmarks; ++i) {
BBT_Time bbt ((*i).bbt()); BBT_Time bbt ((*i).bbt());
if (bbt.is_bar()) { if (bbt.is_bar()) {
if (bbt.bars % 4 == 1) { if (bbt.bars % 4 == 1) {
@ -1321,15 +1319,13 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.label = buf; mark.label = buf;
mark.position = (*i).sample (sr); mark.position = (*i).sample (sr);
marks.push_back (mark); marks.push_back (mark);
++n;
} }
} }
} }
break; break;
case bbt_show_1: case bbt_show_1:
bbt_nmarks = bbt_bars + 2; for (i = grid.begin(); i != grid.end(); ++i) {
for (n = 0, i = grid.begin(); i != grid.end() && n < bbt_nmarks; ++i) {
BBT_Time bbt ((*i).bbt()); BBT_Time bbt ((*i).bbt());
if (bbt.is_bar()) { if (bbt.is_bar()) {
snprintf (buf, sizeof(buf), "%" PRIu32, bbt.bars); snprintf (buf, sizeof(buf), "%" PRIu32, bbt.bars);
@ -1337,7 +1333,6 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.label = buf; mark.label = buf;
mark.position = (*i).sample (sr); mark.position = (*i).sample (sr);
marks.push_back (mark); marks.push_back (mark);
++n;
} }
} }
break; break;
@ -1345,14 +1340,13 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
case bbt_show_quarters: case bbt_show_quarters:
beats = distance (grid.begin(), grid.end()); beats = distance (grid.begin(), grid.end());
bbt_nmarks = beats + 2;
mark.label = ""; mark.label = "";
mark.position = lower; mark.position = lower;
mark.style = ArdourCanvas::Ruler::Mark::Micro; mark.style = ArdourCanvas::Ruler::Mark::Micro;
marks.push_back (mark); marks.push_back (mark);
for (n = 1, i = grid.begin(); n < bbt_nmarks && i != grid.end(); ++i) { for (i = grid.begin(); i != grid.end(); ++i) {
BBT_Time bbt ((*i).bbt()); BBT_Time bbt ((*i).bbt());
@ -1374,7 +1368,6 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.label = buf; mark.label = buf;
mark.position = (*i).sample (sr); mark.position = (*i).sample (sr);
marks.push_back (mark); marks.push_back (mark);
n++;
} }
} }
break; break;
@ -1386,7 +1379,6 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
case bbt_show_onetwentyeighths: case bbt_show_onetwentyeighths:
beats = distance (grid.begin(), grid.end()); beats = distance (grid.begin(), grid.end());
bbt_nmarks = (beats + 2) * bbt_beat_subdivision;
bbt_position_of_helper = lower + (3 * Editor::get_current_zoom ()); bbt_position_of_helper = lower + (3 * Editor::get_current_zoom ());
@ -1395,7 +1387,7 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.style = ArdourCanvas::Ruler::Mark::Micro; mark.style = ArdourCanvas::Ruler::Mark::Micro;
marks.push_back (mark); marks.push_back (mark);
for (n = 1, i = grid.begin(); n < bbt_nmarks && i != grid.end(); ++i) { for (i = grid.begin(); i != grid.end(); ++i) {
BBT_Time bbt ((*i).bbt()); BBT_Time bbt ((*i).bbt());
@ -1422,7 +1414,6 @@ Editor::metric_get_bbt (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t l
mark.label = buf; mark.label = buf;
mark.position = (*i).sample (sr); mark.position = (*i).sample (sr);
marks.push_back (mark); marks.push_back (mark);
n++;
} }
} }