add haupauge-1657 dual usb capture support, add deinterlace to recordmonitor, asset...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mwindowedit.C
index 7b49d090a972a2eeb10f5c8a5fb87992f996318e..94d8c4b508988ef2a3e9a54b90ee6ed1c4344faf 100644 (file)
@@ -1250,10 +1250,16 @@ void MWindow::overwrite(EDL *source, int all)
 // so we need to clear only when not using both io points
 // FIXME: need to write simple overwrite_edl to be used for overwrite function
        if( edl->local_session->get_inpoint() < 0 ||
-               edl->local_session->get_outpoint() < 0 )
-               edl->clear(dst_start, dst_start + overwrite_len, 0, 0, 0);
+           edl->local_session->get_outpoint() < 0 )
+               edl->clear(dst_start, dst_start + overwrite_len,
+                               edl->session->labels_follow_edits,
+                               edl->session->plugins_follow_edits,
+                               edl->session->autos_follow_edits);
 
-       paste(dst_start, dst_start + overwrite_len, &file, 0, 0, 0, 0, 0);
+       paste(dst_start, dst_start + overwrite_len, &file,
+                               edl->session->labels_follow_edits,
+                               edl->session->plugins_follow_edits,
+                               edl->session->autos_follow_edits, 0, 0);
 
        edl->local_session->set_selectionstart(dst_start + overwrite_len);
        edl->local_session->set_selectionend(dst_start + overwrite_len);
@@ -2171,28 +2177,24 @@ void MWindow::save_clip(EDL *new_edl, const char *txt)
         time_t now;  time(&now);
         struct tm dtm;   localtime_r(&now, &dtm);
        char *cp = new_edl->local_session->clip_notes;
-       int n, sz = sizeof(new_edl->local_session->clip_notes)-1;
-       if( txt && *txt ) {
-               n = snprintf(cp, sz, "%s", txt);
-               cp += n;  sz -= n;
-       }
-       n = snprintf(cp, sz,
+       char *ep = cp + sizeof(new_edl->local_session->clip_notes)-1;
+       if( txt && *txt )
+               cp += snprintf(cp, ep-cp, "%s", txt);
+       cp += snprintf(cp, ep-cp,
                "%02d/%02d/%02d %02d:%02d:%02d,  +%s\n",
                dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
                dtm.tm_hour, dtm.tm_min, dtm.tm_sec, duration);
-       cp += n;  sz -= n;
        if( path && *path ) {
                FileSystem fs;
                char title[BCTEXTLEN];
                fs.extract_name(title, path);
-               n = snprintf(cp, sz, "%s", title);
-               cp += n;  sz -= n;
+               cp += snprintf(cp, ep-cp, "%s", title);
        }
-       cp[n] = 0;
        sprintf(new_edl->local_session->clip_icon,
-               "clip_%02d%02d%02d-%02d%02d%02d.png",
+               "clip_%02d%02d%02d-%02d%02d%02d-%d.png",
                dtm.tm_year+1900, dtm.tm_mon+1, dtm.tm_mday,
-               dtm.tm_hour, dtm.tm_min, dtm.tm_sec);
+               dtm.tm_hour, dtm.tm_min, dtm.tm_sec,
+               new_edl->id);
        new_edl->folder_no = AW_CLIP_FOLDER;
        edl->update_assets(new_edl);
        int cur_x, cur_y;
@@ -2448,16 +2450,17 @@ void MWindow::start_convert(Asset *format_asset, const char *suffix,
                float beep, int remove_originals)
 {
        if( !convert_render )
-               convert_render = new ConvertRender(this, suffix);
-       convert_render->set_format(format_asset);
+               convert_render = new ConvertRender(this);
+       convert_render->set_format(format_asset, suffix);
        int found = convert_render->find_convertable_assets(edl);
        if( convert_render->needed_idxbls.size() > 0 )
                convert_render->start_convert(beep, remove_originals);
        else if( found > 0 )
                finish_convert(remove_originals);
-       else {
+       else if( found < 0 )
+               eprintf(_("convert assets format error"));
+       else
                eprintf(_("No convertable assets found"));
-       }
 }
 
 void MWindow::finish_convert(int remove_originals)