X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrack.C;h=24de614f43d48fb788fffe1c7a21e0e053ce6649;hb=2cda7606e91cc23cf68a7f6376af2e8b9520b273;hp=ddbc3837e66084651896e64c851d0e3610e0008c;hpb=0c086b3e7b552e0f6b06c8696d7682d9d4bd91db;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/track.C b/cinelerra-5.1/cinelerra/track.C index ddbc3837..24de614f 100644 --- a/cinelerra-5.1/cinelerra/track.C +++ b/cinelerra-5.1/cinelerra/track.C @@ -474,23 +474,17 @@ void Track::insert_plugin_set(Track *track, int edit_autos) { // Extend plugins if no incoming plugins - if(!track->plugin_set.total) - { - shift_effects(position, - min_length, - edit_autos); - } - else - for(int i = 0; i < track->plugin_set.total; i++) - { - if(i >= plugin_set.total) - plugin_set.append(new PluginSet(edl, this)); + if( track->plugin_set.total ) { + for(int i = 0; i < track->plugin_set.total; i++) { + if(i >= plugin_set.total) + plugin_set.append(new PluginSet(edl, this)); - plugin_set.values[i]->insert_edits(track->plugin_set.values[i], - position, - min_length, - edit_autos); + plugin_set.values[i]->insert_edits(track->plugin_set.values[i], + position, min_length, edit_autos); + } } + else + shift_effects(position, min_length, edit_autos, 0); } @@ -670,11 +664,11 @@ void Track::shift_keyframes(int64_t position, int64_t length) // Effect keyframes are shifted in shift_effects } -void Track::shift_effects(int64_t position, int64_t length, int edit_autos) +void Track::shift_effects(int64_t position, int64_t length, int edit_autos, Edits *trim_edits) { - for(int i = 0; i < plugin_set.total; i++) - { - plugin_set.values[i]->shift_effects(position, length, edit_autos); + for( int i=0; ishift_effects(position, length, edit_autos); } } @@ -1192,9 +1186,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 ) @@ -1220,25 +1215,13 @@ int Track::popup_transition(int cursor_x, int cursor_y) -int Track::modify_edithandles(double oldposition, - double newposition, - int currentend, - int handle_mode, - int edit_labels, - int edit_plugins, - int edit_autos) +int Track::modify_edithandles(double oldposition, double newposition, + int currentend, int handle_mode, int edit_labels, + int edit_plugins, int edit_autos, int group_id) { - edits->modify_handles(oldposition, - newposition, - currentend, - handle_mode, - 1, - edit_labels, - edit_plugins, - edit_autos, - 0); - - + edits->modify_handles(oldposition, newposition, + currentend, handle_mode, 1, edit_labels, edit_plugins, + edit_autos, 0, group_id); return 0; } @@ -1253,16 +1236,9 @@ int Track::modify_pluginhandles(double oldposition, for(int i = 0; i < plugin_set.total; i++) { if(!trim_edits || trim_edits == (Edits*)plugin_set.values[i]) - plugin_set.values[i]->modify_handles(oldposition, - newposition, - currentend, - handle_mode, + plugin_set.values[i]->modify_handles(oldposition, newposition, // Don't allow plugin tweeks to affect edits. - 0, - edit_labels, - 1, - edit_autos, - trim_edits); + currentend, handle_mode, 0, 0, 0, 0, 0, 0); } return 0; } @@ -1280,7 +1256,7 @@ int Track::paste_silence(int64_t start, int64_t end, int edit_plugins, int edit_ if( edit_autos ) shift_keyframes(start, end - start); if( edit_plugins ) - shift_effects(start, end - start, edit_autos); + shift_effects(start, end - start, edit_autos, 0); edits->optimize(); return 0; }