repeat play, in/out <> shortcuts, append to proj wording, cleanup
[goodguy/history.git] / cinelerra-5.1 / cinelerra / tracks.C
index e2abde91f9cf6b94362bb28ba28c0dd389f73e27..1eec0d4179c1dcae49829432aa7027c5c4666e6a 100644 (file)
@@ -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;
 }