Changeset View
Changeset View
Standalone View
Standalone View
source/blender/sequencer/intern/strip_time.c
| Show First 20 Lines • Show All 158 Lines • ▼ Show 20 Lines | void SEQ_time_update_sequence_bounds(Scene *scene, Sequence *seq) | ||||
| if (seq->type == SEQ_TYPE_META) { | if (seq->type == SEQ_TYPE_META) { | ||||
| seq_update_sound_bounds_recursive(scene, seq); | seq_update_sound_bounds_recursive(scene, seq); | ||||
| } | } | ||||
| } | } | ||||
| void SEQ_time_update_sequence(Scene *scene, Sequence *seq) | void SEQ_time_update_sequence(Scene *scene, Sequence *seq) | ||||
| { | { | ||||
| Sequence *seqm; | Sequence *seqm; | ||||
| int min, max; | |||||
| /* check all metas recursively */ | /* check all metas recursively */ | ||||
| seqm = seq->seqbase.first; | seqm = seq->seqbase.first; | ||||
| while (seqm) { | while (seqm) { | ||||
| if (seqm->seqbase.first) { | if (seqm->seqbase.first) { | ||||
| SEQ_time_update_sequence(scene, seqm); | SEQ_time_update_sequence(scene, seqm); | ||||
| } | } | ||||
| seqm = seqm->next; | seqm = seqm->next; | ||||
| Show All 31 Lines | if (seq->seq1) { | ||||
| seq->len = seq->enddisp - seq->startdisp; | seq->len = seq->enddisp - seq->startdisp; | ||||
| } | } | ||||
| else { | else { | ||||
| SEQ_time_update_sequence_bounds(scene, seq); | SEQ_time_update_sequence_bounds(scene, seq); | ||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| if (seq->type == SEQ_TYPE_META) { | |||||
| seqm = seq->seqbase.first; | |||||
| if (seqm) { | |||||
| min = MAXFRAME * 2; | |||||
| max = -MAXFRAME * 2; | |||||
| while (seqm) { | |||||
| if (seqm->startdisp < min) { | |||||
| min = seqm->startdisp; | |||||
| } | |||||
| if (seqm->enddisp > max) { | |||||
| max = seqm->enddisp; | |||||
| } | |||||
| seqm = seqm->next; | |||||
| } | |||||
| seq->start = min + seq->anim_startofs; | |||||
| seq->len = max - min; | |||||
| seq->len -= seq->anim_startofs; | |||||
| seq->len -= seq->anim_endofs; | |||||
| } | |||||
| seq_update_sound_bounds_recursive(scene, seq); | |||||
| } | |||||
| SEQ_time_update_sequence_bounds(scene, seq); | SEQ_time_update_sequence_bounds(scene, seq); | ||||
| } | } | ||||
| } | } | ||||
| /** Comparison function suitable to be used with BLI_listbase_sort()... */ | /** Comparison function suitable to be used with BLI_listbase_sort()... */ | ||||
| int SEQ_time_cmp_time_startdisp(const void *a, const void *b) | int SEQ_time_cmp_time_startdisp(const void *a, const void *b) | ||||
| { | { | ||||
| const Sequence *seq_a = a; | const Sequence *seq_a = a; | ||||
| ▲ Show 20 Lines • Show All 194 Lines • Show Last 20 Lines | |||||