Changeset View
Changeset View
Standalone View
Standalone View
source/blender/sequencer/intern/strip_time.c
| Show First 20 Lines • Show All 142 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq) | void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq) | ||||
| { | { | ||||
| seq_update_sound_bounds_recursive_impl( | seq_update_sound_bounds_recursive_impl( | ||||
| scene, metaseq, metaseq_start(metaseq), metaseq_end(metaseq)); | scene, metaseq, metaseq_start(metaseq), metaseq_end(metaseq)); | ||||
| } | } | ||||
| void SEQ_time_update_sequence_bounds(Scene *scene, Sequence *seq) | static void seq_time_update_sequence_bounds(Scene *scene, Sequence *seq) | ||||
| { | { | ||||
| if (seq->startofs && seq->startstill) { | if (seq->startofs && seq->startstill) { | ||||
| seq->startstill = 0; | seq->startstill = 0; | ||||
| } | } | ||||
| if (seq->endofs && seq->endstill) { | if (seq->endofs && seq->endstill) { | ||||
| seq->endstill = 0; | seq->endstill = 0; | ||||
| } | } | ||||
| Show All 30 Lines | |||||
| { | { | ||||
| seq_time_update_meta_strip(scene, seq_meta); | seq_time_update_meta_strip(scene, seq_meta); | ||||
| /* Prevent meta-strip to move in timeline. */ | /* Prevent meta-strip to move in timeline. */ | ||||
| SEQ_transform_set_left_handle_frame(seq_meta, seq_meta->startdisp); | SEQ_transform_set_left_handle_frame(seq_meta, seq_meta->startdisp); | ||||
| SEQ_transform_set_right_handle_frame(seq_meta, seq_meta->enddisp); | SEQ_transform_set_right_handle_frame(seq_meta, seq_meta->enddisp); | ||||
| } | } | ||||
| void SEQ_time_update_sequence(Scene *scene, Sequence *seq) | void SEQ_time_update_sequence(Scene *scene, ListBase *seqbase, Sequence *seq) | ||||
| { | { | ||||
| Sequence *seqm; | Sequence *seqm; | ||||
| /* Check all meta-strips recursively. */ | /* Check all meta-strips 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->seqbase, seqm); | ||||
| } | } | ||||
| seqm = seqm->next; | seqm = seqm->next; | ||||
| } | } | ||||
| /* effects and meta: automatic start and end */ | /* effects and meta: automatic start and end */ | ||||
| if (seq->type & SEQ_TYPE_EFFECT) { | if (seq->type & SEQ_TYPE_EFFECT) { | ||||
| if (seq->seq1) { | if (seq->seq1) { | ||||
| seq->startofs = seq->endofs = seq->startstill = seq->endstill = 0; | seq->startofs = seq->endofs = seq->startstill = seq->endstill = 0; | ||||
| Show All 21 Lines | if (seq->seq1) { | ||||
| } | } | ||||
| else { | else { | ||||
| seq->flag &= ~SEQ_INVALID_EFFECT; | seq->flag &= ~SEQ_INVALID_EFFECT; | ||||
| } | } | ||||
| 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) { | ||||
| if (seq->type == SEQ_TYPE_META) { | |||||
| seq_time_update_meta_strip(scene, seq); | seq_time_update_meta_strip(scene, seq); | ||||
| } | } | ||||
| else { | |||||
| seq_time_update_sequence_bounds(scene, seq); | |||||
| } | |||||
| Editing *ed = SEQ_editing_get(scene); | Editing *ed = SEQ_editing_get(scene); | ||||
| MetaStack *ms = SEQ_meta_stack_active_get(ed); | |||||
| if (ms != NULL) { | |||||
| SEQ_time_update_meta_strip_range(scene, ms->parseq); | |||||
| } | |||||
| SEQ_time_update_sequence_bounds(scene, seq); | /* Strip is inside meta strip */ | ||||
| if (seqbase != &ed->seqbase) { | |||||
| Sequence *meta = SEQ_get_meta_by_seqbase(&ed->seqbase, seqbase); | |||||
| SEQ_time_update_meta_strip_range(scene, meta); | |||||
| } | } | ||||
| seq_time_update_sequence_bounds(scene, seq); | |||||
| } | } | ||||
| int SEQ_time_find_next_prev_edit(Scene *scene, | int SEQ_time_find_next_prev_edit(Scene *scene, | ||||
| int timeline_frame, | int timeline_frame, | ||||
| const short side, | const short side, | ||||
| const bool do_skip_mute, | const bool do_skip_mute, | ||||
| const bool do_center, | const bool do_center, | ||||
| const bool do_unselected) | const bool do_unselected) | ||||
| ▲ Show 20 Lines • Show All 210 Lines • Show Last 20 Lines | |||||