Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_sequencer.c
| Show First 20 Lines • Show All 297 Lines • ▼ Show 20 Lines | static void rna_Sequence_views_format_update(Main *bmain, Scene *scene, PointerRNA *ptr) | ||||
| rna_Sequence_invalidate_raw_update(bmain, scene, ptr); | rna_Sequence_invalidate_raw_update(bmain, scene, ptr); | ||||
| } | } | ||||
| static void do_sequence_frame_change_update(Scene *scene, Sequence *seq) | static void do_sequence_frame_change_update(Scene *scene, Sequence *seq) | ||||
| { | { | ||||
| Editing *ed = SEQ_editing_get(scene); | Editing *ed = SEQ_editing_get(scene); | ||||
| ListBase *seqbase = SEQ_get_seqbase_by_seq(&ed->seqbase, seq); | ListBase *seqbase = SEQ_get_seqbase_by_seq(&ed->seqbase, seq); | ||||
| Sequence *tseq; | Sequence *tseq; | ||||
| SEQ_time_update_sequence_bounds(scene, seq); | SEQ_time_update_sequence(scene, seqbase, seq); | ||||
| /* ensure effects are always fit in length to their input */ | /* ensure effects are always fit in length to their input */ | ||||
| /* TODO(sergey): probably could be optimized. | /* TODO(sergey): probably could be optimized. | ||||
| * in terms skipping update of non-changing strips | * in terms skipping update of non-changing strips | ||||
| */ | */ | ||||
| for (tseq = seqbase->first; tseq; tseq = tseq->next) { | for (tseq = seqbase->first; tseq; tseq = tseq->next) { | ||||
| if (tseq->seq1 || tseq->seq2 || tseq->seq3) { | if (tseq->seq1 || tseq->seq2 || tseq->seq3) { | ||||
| SEQ_time_update_sequence(scene, tseq); | SEQ_time_update_sequence(scene, seqbase, tseq); | ||||
| } | } | ||||
| } | } | ||||
| if (SEQ_transform_test_overlap(seqbase, seq)) { | if (SEQ_transform_test_overlap(seqbase, seq)) { | ||||
| SEQ_transform_seqbase_shuffle(seqbase, seq, scene); /* XXX: BROKEN!, uses context seqbasep. */ | SEQ_transform_seqbase_shuffle(seqbase, seq, scene); /* XXX: BROKEN!, uses context seqbasep. */ | ||||
| } | } | ||||
| SEQ_sort(seqbase); | SEQ_sort(seqbase); | ||||
| ▲ Show 20 Lines • Show All 427 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| Sequence *seq = ptr->data; | Sequence *seq = ptr->data; | ||||
| return &seq->prop; | return &seq->prop; | ||||
| } | } | ||||
| static bool rna_MovieSequence_reload_if_needed(ID *scene_id, Sequence *seq, Main *bmain) | static bool rna_MovieSequence_reload_if_needed(ID *scene_id, Sequence *seq, Main *bmain) | ||||
| { | { | ||||
| Scene *scene = (Scene *)scene_id; | Scene *scene = (Scene *)scene_id; | ||||
| Editing *ed = SEQ_editing_get(scene); | |||||
| ListBase *seqbase = SEQ_get_seqbase_by_seq(&ed->seqbase, seq); | |||||
| bool has_reloaded; | bool has_reloaded; | ||||
| bool can_produce_frames; | bool can_produce_frames; | ||||
| SEQ_add_movie_reload_if_needed(bmain, scene, seq, &has_reloaded, &can_produce_frames); | SEQ_add_movie_reload_if_needed(bmain, scene, seq, &has_reloaded, &can_produce_frames); | ||||
| if (has_reloaded && can_produce_frames) { | if (has_reloaded && can_produce_frames) { | ||||
| SEQ_time_update_sequence(scene, seq); | SEQ_time_update_sequence(scene, seqbase, seq); | ||||
| SEQ_relations_invalidate_cache_raw(scene, seq); | SEQ_relations_invalidate_cache_raw(scene, seq); | ||||
| DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS); | DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS); | ||||
| WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene); | WM_main_add_notifier(NC_SCENE | ND_SEQUENCER, scene); | ||||
| } | } | ||||
| return can_produce_frames; | return can_produce_frames; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 171 Lines • ▼ Show 20 Lines | static void rna_Sequence_reopen_files_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) | ||||
| } | } | ||||
| } | } | ||||
| static void rna_Sequence_filepath_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) | static void rna_Sequence_filepath_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *scene = (Scene *)ptr->owner_id; | Scene *scene = (Scene *)ptr->owner_id; | ||||
| Sequence *seq = (Sequence *)(ptr->data); | Sequence *seq = (Sequence *)(ptr->data); | ||||
| SEQ_add_reload_new_file(bmain, scene, seq, true); | SEQ_add_reload_new_file(bmain, scene, seq, true); | ||||
| SEQ_time_update_sequence(scene, seq); | Editing *ed = SEQ_editing_get(scene); | ||||
| ListBase *seqbase = SEQ_get_seqbase_by_seq(&ed->seqbase, seq); | |||||
| SEQ_time_update_sequence(scene, seqbase, seq); | |||||
| rna_Sequence_invalidate_raw_update(bmain, scene, ptr); | rna_Sequence_invalidate_raw_update(bmain, scene, ptr); | ||||
| } | } | ||||
| static void rna_Sequence_sound_update(Main *bmain, Scene *UNUSED(active_scene), PointerRNA *ptr) | static void rna_Sequence_sound_update(Main *bmain, Scene *UNUSED(active_scene), PointerRNA *ptr) | ||||
| { | { | ||||
| Scene *scene = (Scene *)ptr->owner_id; | Scene *scene = (Scene *)ptr->owner_id; | ||||
| DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS | ID_RECALC_AUDIO); | DEG_id_tag_update(&scene->id, ID_RECALC_SEQUENCER_STRIPS | ID_RECALC_AUDIO); | ||||
| DEG_relations_tag_update(bmain); | DEG_relations_tag_update(bmain); | ||||
| ▲ Show 20 Lines • Show All 2,494 Lines • Show Last 20 Lines | |||||