X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftracks.C;h=1eec0d4179c1dcae49829432aa7027c5c4666e6a;hb=60f8df69db9ddd8148bfc41a17bb0955b52a45e6;hp=e2abde91f9cf6b94362bb28ba28c0dd389f73e27;hpb=e13e0a987ad66b8274fcbaddc71eac583ea80bea;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/tracks.C b/cinelerra-5.1/cinelerra/tracks.C index e2abde91..1eec0d41 100644 --- a/cinelerra-5.1/cinelerra/tracks.C +++ b/cinelerra-5.1/cinelerra/tracks.C @@ -406,7 +406,8 @@ int Tracks::total_of(int type) for(Track *current = first; current; current = NEXT) { long unit_start = current->to_units(edl->local_session->get_selectionstart(1), 0); - Auto *mute_keyframe = current->automation->autos[AUTOMATION_MUTE]-> + Auto *mute_keyframe = 0; + current->automation->autos[AUTOMATION_MUTE]-> get_prev_auto(unit_start, PLAY_FORWARD, mute_keyframe); IntAuto *mute_auto = (IntAuto *)mute_keyframe; @@ -490,15 +491,18 @@ double Tracks::total_playable_length() double total = 0; for(Track *current = first; current; current = NEXT) { - double length = current->get_length(); - if(length > total) total = length; + if( current->play ) + { + double length = current->get_length(); + if(length > total) total = length; + } } return total; } double Tracks::total_recordable_length() { - double total = 0; + double total = -1; for(Track *current = first; current; current = NEXT) { if(current->record) @@ -515,7 +519,8 @@ double Tracks::total_length() double total = 0; for(Track *current = first; current; current = NEXT) { - if(current->get_length() > total) total = current->get_length(); + double length = current->get_length(); + if(length > total) total = length; } return total; }