X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftracks.C;h=d904d5d6b330df4d660b61d6d05d24990a736f62;hb=b2d226c1f41e84bbb3af93ebc0aa89f98ec0fd52;hp=71aee8fcfbaf7f8755d2acbbd241baacd95ac008;hpb=48a6854a1ca58aa291ffc6fe3a48807492dfbef7;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/tracks.C b/cinelerra-5.1/cinelerra/tracks.C index 71aee8fc..d904d5d6 100644 --- a/cinelerra-5.1/cinelerra/tracks.C +++ b/cinelerra-5.1/cinelerra/tracks.C @@ -35,6 +35,7 @@ #include "panauto.h" #include "panautos.h" #include "patchbay.h" +#include "plugin.h" #include "mainsession.h" #include "strack.h" #include "theme.h" @@ -314,10 +315,11 @@ Track* Tracks::add_subttl_track(int above, Track *dst_track) } -int Tracks::delete_track(Track *track) +int Tracks::delete_track(Track *track, int gang) { if( !track ) return 0; - int gang = edl->session->gang_tracks != GANG_NONE ? 1 : 0; + if( gang < 0 ) + gang = edl->session->gang_tracks != GANG_NONE ? 1 : 0; Track *nxt = track->next; if( gang ) { while( track && !track->master && track->previous ) @@ -341,13 +343,21 @@ int Tracks::delete_track(Track *track) int Tracks::detach_shared_effects(int module) { - for(Track *current = first; current; current = NEXT) - { + for( Track *current=first; current; current=NEXT ) { current->detach_shared_effects(module); } - return 0; - } +} +int Tracks::detach_ganged_effects(Plugin *plugin) +{ + if( edl->session->gang_tracks == GANG_NONE ) return 1; + for( Track *current=first; current; current=NEXT ) { + if( current == plugin->track ) continue; + if( !current->armed_gang(plugin->track) ) continue; + current->detach_ganged_effects(plugin); + } + return 0; +} int Tracks::total_of(int type) {