Editor::scroll_playhead (bool forward)
{
framepos_t pos = playhead_cursor->current_frame ();
- framecnt_t delta = (framecnt_t) floor (current_page_frames() / 0.8);
+ framecnt_t delta = (framecnt_t) floor (current_page_samples() / 0.8);
if (forward) {
if (pos == max_framepos) {
void
Editor::scroll_backward (float pages)
{
- framepos_t const one_page = (framepos_t) rint (_visible_canvas_width * frames_per_pixel);
+ framepos_t const one_page = (framepos_t) rint (_visible_canvas_width * samples_per_pixel);
framepos_t const cnt = (framepos_t) floor (pages * one_page);
framepos_t frame;
void
Editor::scroll_forward (float pages)
{
- framepos_t const one_page = (framepos_t) rint (_visible_canvas_width * frames_per_pixel);
+ framepos_t const one_page = (framepos_t) rint (_visible_canvas_width * samples_per_pixel);
framepos_t const cnt = (framepos_t) floor (pages * one_page);
framepos_t frame;
}
bool
-Editor::clamp_frames_per_pixel (double& fpp) const
+Editor::clamp_samples_per_pixel (framecnt_t& fpp) const
{
bool clamped = false;
- if (fpp < 2.0) {
- fpp = 2.0;
+ if (fpp < 1) {
+ fpp = 1;
clamped = true;
}
if (max_framepos / fpp < 800) {
- fpp = max_framepos / 800.0;
+ fpp = max_framepos / 800;
clamped = true;
}
{
ENSURE_GUI_THREAD (*this, &Editor::temporal_zoom_step, coarser)
- double nfpp = frames_per_pixel;
+ framecnt_t nspp = samples_per_pixel;
if (coarser) {
- nfpp = min (9e6, nfpp * 1.61803399);
+ nspp *= 2;
} else {
- nfpp = max (1.0, nfpp / 1.61803399);
+ nspp /= 2;
}
- temporal_zoom (nfpp);
+ temporal_zoom (nspp);
}
void
-Editor::temporal_zoom (double fpp)
+Editor::temporal_zoom (framecnt_t fpp)
{
if (!_session) {
return;
}
- framepos_t current_page = current_page_frames();
+ framepos_t current_page = current_page_samples();
framepos_t current_leftmost = leftmost_frame;
framepos_t current_rightmost;
framepos_t current_center;
framepos_t leftmost_after_zoom = 0;
framepos_t where;
bool in_track_canvas;
- double nfpp;
+ framecnt_t nfpp;
double l;
- clamp_frames_per_pixel (fpp);
- if (fpp == frames_per_pixel) {
+ clamp_samples_per_pixel (fpp);
+ if (fpp == samples_per_pixel) {
return;
}
- nfpp = fpp;
-
// Imposing an arbitrary limit to zoom out as too much zoom out produces
// segfaults for lack of memory. If somebody decides this is not high enough I
// believe it can be raisen to higher values but some limit must be in place.
- if (nfpp > 8e+08) {
- nfpp = 8e+08;
- }
+
+ nfpp = min (fpp, (framecnt_t) 8589934592);
+ nfpp = max ((framecnt_t) 1, fpp);
new_page_size = (framepos_t) floor (_visible_canvas_width * nfpp);
half_page_size = new_page_size / 2;
double range_before = frame - leftmost_frame;
double new_fpp;
- new_fpp = frames_per_pixel;
+ new_fpp = samples_per_pixel;
if (coarser) {
new_fpp *= 1.61803399;
range_before /= 1.61803399;
}
- if (new_fpp == frames_per_pixel) {
+ if (new_fpp == samples_per_pixel) {
return;
}
where = window_event_frame (&event, &cx, &cy);
- if (where < leftmost_frame || where > leftmost_frame + current_page_frames()) {
+ if (where < leftmost_frame || where > leftmost_frame + current_page_samples()) {
/* clearly outside canvas area */
return;
}
d.add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK);
d.set_size_request (300, -1);
- d.set_position (Gtk::WIN_POS_MOUSE);
entry.set_text (rs.front()->region()->name());
entry.select_region (0, -1);
void
Editor::center_playhead ()
{
- float const page = _visible_canvas_width * frames_per_pixel;
+ float const page = _visible_canvas_width * samples_per_pixel;
center_screen_internal (playhead_cursor->current_frame (), page);
}
void
Editor::center_edit_point ()
{
- float const page = _visible_canvas_width * frames_per_pixel;
+ float const page = _visible_canvas_width * samples_per_pixel;
center_screen_internal (get_preferred_edit_position(), page);
}