X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrack.C;h=b5382c3383406354a7b6a55d81c8c8928cdc6dac;hp=3c092b73f7188ec8ea2080cdceb15a7e88f7de6f;hb=4a6b59824b2db18e6cc49b43a971923d5e5903ae;hpb=834732af87bfd7f1d4035109f31e48db12b415fa;ds=sidebyside diff --git a/cinelerra-5.1/cinelerra/track.C b/cinelerra-5.1/cinelerra/track.C index 3c092b73..b5382c33 100644 --- a/cinelerra-5.1/cinelerra/track.C +++ b/cinelerra-5.1/cinelerra/track.C @@ -194,12 +194,9 @@ void Track::copy_from(Track *track) { copy_settings(track); edits->copy_from(track->edits); - for(int i = 0; i < this->plugin_set.total; i++) - delete this->plugin_set.values[i]; this->plugin_set.remove_all_objects(); - for(int i = 0; i < track->plugin_set.total; i++) - { + for( int i=0; iplugin_set.total; ++i ) { PluginSet *new_plugin_set = plugin_set.append(new PluginSet(edl, this)); new_plugin_set->copy_from(track->plugin_set.values[i]); } @@ -853,46 +850,22 @@ void Track::synchronize_params(Track *track) } - - - int Track::dump(FILE *fp) { - fprintf(fp," Data type %d\n", data_type); + fprintf(fp," Data type %d, draw %d, gang %d, play %d, record %d, nudge %jd\n", + data_type, draw, gang, play, record, nudge); fprintf(fp," Title %s\n", title); fprintf(fp," Edits:\n"); for(Edit* current = edits->first; current; current = NEXT) - { current->dump(fp); - } automation->dump(fp); fprintf(fp," Plugin Sets: %d\n", plugin_set.total); - for(int i = 0; i < plugin_set.total; i++) - plugin_set.values[i]->dump(fp); -//printf("Track::dump 2\n"); + for( int i=0; idump(fp); return 0; } - - - - - - - - - - - - - - - - - - - Track::Track() : ListItem() { @@ -1062,10 +1035,8 @@ void Track::set_automation_mode(double selectionstart, -int Track::copy(double start, - double end, - FileXML *file, - const char *output_path) +int Track::copy(int copy_flags, double start, double end, + FileXML *file, const char *output_path) { // Use a copy of the selection in converted units // So copy_automation doesn't reconvert. @@ -1105,16 +1076,18 @@ int Track::copy(double start, // file->append_tag(); // file->append_newline(); - edits->copy(start_unit, end_unit, file, output_path); - - AutoConf auto_conf; - auto_conf.set_all(1); - automation->copy(start_unit, end_unit, file, 0, 0); + if( (copy_flags & COPY_EDITS) ) + edits->copy(start_unit, end_unit, file, output_path); + if( (copy_flags & COPY_AUTOS) ) { + AutoConf auto_conf; + auto_conf.set_all(1); + automation->copy(start_unit, end_unit, file, 0, 0); + } - for(int i = 0; i < plugin_set.total; i++) - { - plugin_set.values[i]->copy(start_unit, end_unit, file); + if( (copy_flags & COPY_PLUGINS) ) { + for( int i=0; icopy(start_unit, end_unit, file); } copy_derived(start_unit, end_unit, file); @@ -1186,9 +1159,10 @@ int Track::clear(int64_t start, int64_t end, if( edit_autos ) automation->clear(start, end, 0, 1); if( edit_plugins ) { + int edit_keyframes = edit_plugins < 0 ? 1 : edit_autos; for(int i = 0; i < plugin_set.total; i++) { if(!trim_edits || trim_edits == (Edits*)plugin_set.values[i]) - plugin_set.values[i]->clear(start, end, edit_autos); + plugin_set.values[i]->clear(start, end, edit_keyframes); } } if( edit_edits )