more ru xlats, doc updates, proxy tweaks
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindowedit.C
index 3016050ba567e6451c6357143feeea4ff74fa016..ced86c1aeab90c720202f67f80ed9a6ea7e9c182 100644 (file)
@@ -1065,10 +1065,16 @@ void MWindow::overwrite(EDL *source, int all)
 {
        FileXML file;
 
+       LocalSession *src = source->local_session;
        double src_start = all ? 0 :
-               source->local_session->get_selectionstart();
-       double overwrite_len = all ? source->tracks->total_length() :
-               source->local_session->get_selectionend() - src_start;
+               src->inpoint_valid() ? src->get_inpoint() :
+               src->outpoint_valid() ? 0 :
+                       src->get_selectionstart();
+       double src_end = all ? source->tracks->total_length() :
+               src->outpoint_valid() ? src->get_outpoint() :
+               src->inpoint_valid() ? source->tracks->total_length() :
+                       src->get_selectionend();
+       double overwrite_len = src_end - src_start;
        double dst_start = edl->local_session->get_selectionstart();
        double dst_len = edl->local_session->get_selectionend() - dst_start;
 
@@ -1989,12 +1995,16 @@ void MWindow::unset_inoutpoint(int is_mwindow)
 void MWindow::splice(EDL *source, int all)
 {
        FileXML file;
+       LocalSession *src = source->local_session;
 
        undo->update_undo_before();
        double source_start = all ? 0 :
-               source->local_session->get_selectionstart();
+               src->inpoint_valid() ? src->get_inpoint() :
+               src->outpoint_valid() ? 0 : src->get_selectionstart();
        double source_end = all ? source->tracks->total_length() :
-               source->local_session->get_selectionend();
+               src->outpoint_valid() ? src->get_outpoint() :
+               src->inpoint_valid() ? source->tracks->total_length() :
+                       src->get_selectionend();
        source->copy(source_start, source_end, 1, &file, "", 1);
 //file.dump();
        double start = edl->local_session->get_selectionstart();
@@ -2319,10 +2329,10 @@ void MWindow::rescale_proxy(EDL *clip, int orig_scale, int new_scale)
        edl->rescale_proxy(orig_scale, new_scale);
 }
 
-void MWindow::set_proxy(int use_scaler, int new_scale, int auto_scale,
+void MWindow::set_proxy(int use_scaler, int new_scale, int auto_scale, int beep,
        ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
 {
-       edl->set_proxy(use_scaler, new_scale, auto_scale, orig_assets, proxy_assets);
+       edl->set_proxy(use_scaler, new_scale, auto_scale, beep, orig_assets, proxy_assets);
 }
 
 void MWindow::add_proxy(int use_scaler,