{
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;
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();
void MWindow::to_clip(EDL *edl, const char *txt, int all)
{
FileXML file;
- double start, end;
+ LocalSession *src = edl->local_session;
gui->lock_window("MWindow::to_clip 1");
- start = all ? 0 :
- edl->local_session->get_selectionstart();
- end = all ? edl->tracks->total_length() :
- edl->local_session->get_selectionend();
-
+ double start = all ? 0 :
+ src->inpoint_valid() ? src->get_inpoint() :
+ src->outpoint_valid() ? 0 : src->get_selectionstart();
+ double end = all ? edl->tracks->total_length() :
+ src->outpoint_valid() ? src->get_outpoint() :
+ src->inpoint_valid() ? edl->tracks->total_length() :
+ src->get_selectionend();
if( EQUIV(end, start) ) {
start = 0;
end = edl->tracks->total_length();
edl->rescale_proxy(orig_scale, new_scale);
}
-void MWindow::set_proxy(int use_scaler, int new_scale, int auto_scale,
- ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
-{
- edl->set_proxy(use_scaler, new_scale, auto_scale, orig_assets, proxy_assets);
-}
-
void MWindow::add_proxy(int use_scaler,
ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
{