void zoom_comp( comp_t *img_out, const struct comp_s *image, const struct info_s *info ) { const float d = info->zoom * info->zoom; if (info->flags.transposed) for (int j = 0; j < info->pwidth; j++) for (int i = 0; i < info->pheight; i++) *img_out++ = zoom_sample(i, j, d, image, info); else for (int i = 0; i < info->pheight; i++) for (int j = 0; j < info->pwidth; j++) *img_out++ = zoom_sample(i, j, d, image, info); }
void MWindow::fit_selection() { if(EQUIV(edl->local_session->get_selectionstart(1), edl->local_session->get_selectionend(1))) { double total_samples = edl->tracks->total_length() * edl->session->sample_rate; TimelinePane *pane = gui->get_focused_pane(); for(edl->local_session->zoom_sample = 1; pane->canvas->get_w() * edl->local_session->zoom_sample < total_samples; edl->local_session->zoom_sample *= 2) ; } else { double total_samples = (edl->local_session->get_selectionend(1) - edl->local_session->get_selectionstart(1)) * edl->session->sample_rate; TimelinePane *pane = gui->get_focused_pane(); for(edl->local_session->zoom_sample = 1; pane->canvas->get_w() * edl->local_session->zoom_sample < total_samples; edl->local_session->zoom_sample *= 2) ; } edl->local_session->zoom_sample = MIN(0x100000, edl->local_session->zoom_sample); zoom_sample(edl->local_session->zoom_sample); }
int MWindow::zoom_in_sample() { if(gui) { if(edl->local_session->zoom_sample > 1) { edl->local_session->zoom_sample /= 2; gui->zoombar->sample_zoom->update(edl->local_session->zoom_sample); zoom_sample(edl->local_session->zoom_sample); } } return 0; }
int MWindow::expand_sample() { if(gui) { if(edl->local_session->zoom_sample < 0x100000) { edl->local_session->zoom_sample *= 2; gui->zoombar->sample_zoom->update(edl->local_session->zoom_sample); zoom_sample(edl->local_session->zoom_sample); } } return 0; }