void EDL::optimize()
{
//printf("EDL::optimize 1\n");
- if( local_session->preview_start < 0 ) local_session->preview_start = 0;
double length = tracks->total_length();
- if( local_session->preview_end > length ) local_session->preview_end = length;
- if( local_session->preview_start >= local_session->preview_end ) {
- local_session->preview_start = 0;
- local_session->preview_end = length;
- }
+ double preview_start = local_session->preview_start;
+ double preview_end = local_session->preview_end;
+ if( preview_end < 0 || preview_end > length )
+ preview_end = length;
+ if( preview_start == 0 && preview_end >= length )
+ local_session->preview_end = -1;
+ if( preview_start > preview_end )
+ local_session->preview_start = preview_end;
for( Track *current=tracks->first; current; current=NEXT )
current->optimize();
}
}
}
-void EDL::set_proxy(int use_scaler, int new_scale, int auto_scale, int beep,
+void EDL::set_proxy(int new_scale, int use_scaler,
ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
{
- int orig_use_scaler = session->proxy_use_scaler;
int orig_scale = session->proxy_scale;
+ int orig_use_scaler = session->proxy_use_scaler;
+
// rescale to full size asset in read_frame
- session->proxy_use_scaler = use_scaler;
session->proxy_scale = new_scale;
- session->proxy_auto_scale = auto_scale;
- session->proxy_beep = beep;
+ session->proxy_use_scaler = use_scaler;
if( use_scaler ) {
for( int i=0; i<proxy_assets->size(); ++i ) {
}
}
+double EDL::get_cursor_position(int cursor_x, int pane_no)
+{
+ return (double)cursor_x * local_session->zoom_sample / session->sample_rate +
+ (double)local_session->view_start[pane_no] *
+ local_session->zoom_sample / session->sample_rate;
+}
+