olaf updates neophyte theme, keypad numlock tweaks
[goodguy/history.git] / cinelerra-5.1 / cinelerra / edl.C
index d3f19b2353652f04390b1fcbc6be766afb550f0e..a114f3c995ec3df962b516caf2fe19f216ac7408 100644 (file)
@@ -1145,13 +1145,15 @@ void EDL::set_index_file(Indexable *indexable)
 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();
 }
@@ -1494,16 +1496,15 @@ void EDL::rescale_proxy(int orig_scale, int new_scale)
        }
 }
 
-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 ) {
@@ -1586,3 +1587,10 @@ void EDL::add_proxy(int use_scaler,
        }
 }
 
+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;
+}
+