void EDL::optimize()
{
//printf("EDL::optimize 1\n");
- if( local_session->preview_start < 0 ) local_session->preview_start = 0;
double length = tracks->total_length();
- if( local_session->preview_end > length ) local_session->preview_end = length;
- if( local_session->preview_start >= local_session->preview_end ) {
- local_session->preview_start = 0;
- local_session->preview_end = length;
- }
+ double preview_start = local_session->preview_start;
+ double preview_end = local_session->preview_end;
+ if( preview_end < 0 || preview_end > length )
+ preview_end = length;
+ if( preview_start == 0 && preview_end >= length )
+ local_session->preview_end = -1;
+ if( preview_start > preview_end )
+ local_session->preview_start = preview_end;
for( Track *current=tracks->first; current; current=NEXT )
current->optimize();
}