Config->set_edit_mode (Ripple);
}
break;
-// case Splice:
+ case Splice:
case Ripple:
Config->set_edit_mode (Lock);
break;
void
Editor::reset_zoom (framecnt_t spp)
{
- clamp_samples_per_pixel (spp);
-
if (spp == samples_per_pixel) {
return;
}
/** This is the core function that controls the zoom level of the canvas. It is called
* whenever one or more calls are made to reset_zoom(). It executes in an idle handler.
- * @param fpu New frames per unit; should already have been clamped so that it is sensible.
+ * @param spp new number of samples per pixel
*/
void
Editor::set_samples_per_pixel (framecnt_t spp)
{
- clamp_samples_per_pixel (spp);
+ if (spp < 1) {
+ return;
+ }
+
+ const framecnt_t three_days = 3 * 24 * 60 * 60 * (_session ? _session->frame_rate() : 48000);
+ 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, then it's too big.
+ */
+
+ if (spp * lots_of_pixels > three_days) {
+ return;
+ }
+
samples_per_pixel = spp;
if (tempo_lines) {
Editing::ZoomFocus zoom_focus;
void set_samples_per_pixel (framecnt_t);
- bool clamp_samples_per_pixel (framecnt_t &) const;
Editing::MouseMode mouse_mode;
Editing::MouseMode pre_internal_mouse_mode;
}
}
-bool
-Editor::clamp_samples_per_pixel (framecnt_t& fpp) const
-{
- bool clamped = false;
-
- if (fpp < 1) {
- fpp = 1;
- clamped = true;
- }
-
- 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;
- }
-
- return clamped;
-}
void
Editor::temporal_zoom_step (bool coarser)
framecnt_t nfpp;
double l;
- clamp_samples_per_pixel (fpp);
if (fpp == samples_per_pixel) {
return;
}
new_spp = samples_per_pixel - (samples_per_pixel/2);
} else {
/* could bail out here since we cannot zoom any finer,
- but leave that to the clamp_samples_per_pixel() and
- equality test below
+ but leave that to the equality test below
*/
new_spp = samples_per_pixel;
}
range_before -= range_before/2;
}
- clamp_samples_per_pixel (new_spp);
-
if (new_spp == samples_per_pixel) {
return;
}