summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-06-11 23:13:26 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2014-06-11 23:54:28 -0400
commit18190eaa5eb2a29b5824bfaa08e03d4360b6cbb3 (patch)
tree7c5753eec2729fc33003d78037218ac3e11bb6dc /gtk2_ardour
parent5ee4f419259574197255d11afcc0bec25b6473d2 (diff)
clamp zoom level to show 3 days on a 4000 pixel wide screen; comment unused variable for now
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_ops.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index db871744f3..60ea575624 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -1364,7 +1364,7 @@ Editor::scroll_down_one_track ()
bool
Editor::scroll_up_one_track ()
{
- double vertical_pos = vertical_adjustment.get_value ();
+ // double vertical_pos = vertical_adjustment.get_value ();
TrackViewList::iterator prev = track_views.end();
std::pair<TimeAxisView*,double> res;
@@ -1458,8 +1458,23 @@ Editor::clamp_samples_per_pixel (framecnt_t& fpp) const
clamped = true;
}
- if (max_framepos / fpp < 800) {
- fpp = max_framepos / 800;
+ framecnt_t sr;
+
+ if (_session) {
+ sr = _session->frame_rate ();
+ } else {
+ sr = 48000;
+ }
+
+ const framecnt_t three_days = 3 * 24 * 60 * 60 * sr;
+ const framecnt_t lots_of_pixels = 4000;
+
+ /* if the zoom level is greater than what you'd get trying to display 3
+ * days of audio on a really big screen, scale it down.
+ */
+
+ if (fpp * lots_of_pixels > three_days) {
+ fpp = three_days / _track_canvas->width();
clamped = true;
}