X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftracksedit.C;h=183f35f7b90f5e0dee58cc25918f914c80e6ef47;hb=281532ab870d8f6ded35d8e8555bf974014ace77;hp=5bda1f02f146ee862290a2c397ab59dcace39ec1;hpb=6050493632cb3681227b7ec8c12decd449dcf66f;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/tracksedit.C b/cinelerra-5.1/cinelerra/tracksedit.C index 5bda1f02..183f35f7 100644 --- a/cinelerra-5.1/cinelerra/tracksedit.C +++ b/cinelerra-5.1/cinelerra/tracksedit.C @@ -120,6 +120,24 @@ void Tracks::clear_transitions(double start, double end) } } +int Tracks::clear_hard_edges(double start, double end) +{ + for( Track *track=first; track; track=track->next ) { + if( !track->record ) continue; + int64_t start_units = track->to_units(start, 0); + int64_t end_units = track->to_units(end, 0); + + for( Edit *edit=track->edits->first; edit; edit=edit->next ) { + if( edit->startproject < start_units ) continue; + if( edit->startproject >= end_units ) continue; + edit->hard_left = 0; + if( !edit->previous ) continue; + edit->previous->hard_right = 0; + } + } + return 0; +} + void Tracks::shuffle_edits(double start, double end) { // This doesn't affect automation or effects @@ -851,24 +869,15 @@ int Tracks::move_track_down(Track *track) int Tracks::move_tracks_up() { - Track *track, *next_track; int result = 0; - - for(track = first; - track; - track = next_track) - { - next_track = track->next; - - if(track->record) - { - if(track->previous) - { - change_modules(number_of(track->previous), number_of(track), 1); - - swap(track->previous, track); - result = 1; - } + Track *next = first; + while( next ) { + Track *track = next; next = track->next; + if( !track->record ) continue; + if( track->previous ) { + change_modules(number_of(track->previous), number_of(track), 1); + swap(track->previous, track); + result = 1; } } @@ -877,24 +886,15 @@ int Tracks::move_tracks_up() int Tracks::move_tracks_down() { - Track *track, *previous_track; int result = 0; - - for(track = last; - track; - track = previous_track) - { - previous_track = track->previous; - - if(track->record) - { - if(track->next) - { - change_modules(number_of(track), number_of(track->next), 1); - - swap(track, track->next); - result = 1; - } + Track *prev = last; + while( prev ) { + Track *track = prev; prev = track->previous; + if( !track->record ) continue; + if( track->next ) { + change_modules(number_of(track), number_of(track->next), 1); + swap(track, track->next); + result = 1; } } @@ -902,7 +902,6 @@ int Tracks::move_tracks_down() } - void Tracks::paste_audio_transition(PluginServer *server) { for(Track *current = first; current; current = NEXT)