diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-05-11 14:04:55 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-05-11 14:04:55 +0400 |
commit | 6ce6dfba1697adc01353cf6b0a608165e0b2b726 (patch) | |
tree | d731af5cd6d4028f8519957917a63bbb6ebf9a68 /source/blender/makesrna | |
parent | 9d91bc38d303e4937bb56dc75d95f11936de5ff9 (diff) |
- dont create scene.sequence_editor on read, means data-browser or autocomplete will allocate a sequencer.
... instead add scene.sequencer_editor_create / clear, these match id.animation_data_* functions.
- refactor for names, for scene level functions call them BKE_sequencer_*
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 20 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_sequencer.c | 30 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_sequencer_api.c | 4 |
3 files changed, 27 insertions, 27 deletions
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 088d18ee6c2..f907e2f45b3 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -635,15 +635,6 @@ static void rna_Scene_all_keyingsets_next(CollectionPropertyIterator *iter) iter->valid = (internal->link != NULL); } -static PointerRNA rna_Scene_sequence_editor_get(PointerRNA *ptr) -{ - Scene *scene = (Scene *)ptr->data; - /* mallocs an Editing (if it doesn't exist) so you can access - * Scene.sequence_editor functions without having to manually - * add a Sequence using the UI to create the SequenceEditor */ - return rna_pointer_inherit_refine(ptr, &RNA_SequenceEditor, seq_give_editing(scene, TRUE)); -} - static char *rna_RenderSettings_path(PointerRNA *UNUSED(ptr)) { return BLI_sprintfN("render"); @@ -4168,7 +4159,9 @@ void RNA_def_scene(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; + FunctionRNA *func; + PropertyRNA *parm; static EnumPropertyItem audio_distance_model_items[] = { {0, "NONE", 0, "None", "No distance attenuation"}, @@ -4362,10 +4355,17 @@ void RNA_def_scene(BlenderRNA *brna) /* Sequencer */ prop = RNA_def_property(srna, "sequence_editor", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "ed"); - RNA_def_property_pointer_funcs(prop, "rna_Scene_sequence_editor_get", NULL, NULL, NULL); RNA_def_property_struct_type(prop, "SequenceEditor"); RNA_def_property_ui_text(prop, "Sequence Editor", ""); + func = RNA_def_function(srna, "sequence_editor_create", "BKE_sequencer_editing_ensure"); + RNA_def_function_ui_description(func, "Ensure sequence editor is valid in this scene"); + parm = RNA_def_pointer(func, "sequence_editor", "SequenceEditor", "", "New sequence editor data or NULL"); + RNA_def_function_return(func, parm); + + func = RNA_def_function(srna, "sequence_editor_clear", "BKE_sequencer_editing_free"); + RNA_def_function_ui_description(func, "Clear sequence editor in this scene"); + /* Keying Sets */ prop = RNA_def_property(srna, "keying_sets", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "keyingsets", NULL); diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 3791d0e1786..d64dd1a626e 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -73,7 +73,7 @@ static void meta_tmp_ref(Sequence *seq_par, Sequence *seq) static void rna_SequenceEditor_sequences_all_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) { Scene *scene = (Scene *)ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); meta_tmp_ref(NULL, ed->seqbase.first); @@ -125,14 +125,14 @@ static void rna_SequenceEditor_elements_begin(CollectionPropertyIterator *iter, static void rna_Sequence_frame_change_update(Scene *scene, Sequence *seq) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); ListBase *seqbase = seq_seqbase(&ed->seqbase, seq); calc_sequence_disp(scene, seq); if (seq_test_overlap(seqbase, seq)) { shuffle_seq(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */ } - sort_seq(scene); + BKE_sequencer_sort(scene); } static void rna_Sequence_start_frame_set(PointerRNA *ptr, int value) @@ -212,7 +212,7 @@ static void rna_Sequence_channel_set(PointerRNA *ptr, int value) { Sequence *seq = (Sequence *)ptr->data; Scene *scene = (Scene *)ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); ListBase *seqbase = seq_seqbase(&ed->seqbase, seq); seq->machine = value; @@ -220,7 +220,7 @@ static void rna_Sequence_channel_set(PointerRNA *ptr, int value) if (seq_test_overlap(seqbase, seq) ) { shuffle_seq(seqbase, seq, scene); /* XXX - BROKEN!, uses context seqbasep */ } - sort_seq(scene); + BKE_sequencer_sort(scene); } /* properties that need to allocate structs */ @@ -304,7 +304,7 @@ static int transform_seq_cmp_cb(Sequence *seq, void *arg_pt) static char *rna_SequenceTransform_path(PointerRNA *ptr) { Scene *scene = ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); Sequence *seq; struct { Sequence *seq; void *transform; } data; @@ -335,7 +335,7 @@ static int crop_seq_cmp_cb(Sequence *seq, void *arg_pt) static char *rna_SequenceCrop_path(PointerRNA *ptr) { Scene *scene = ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); Sequence *seq; struct { Sequence *seq; void *crop; } data; @@ -575,7 +575,7 @@ static void rna_SequenceElement_filename_set(PointerRNA *ptr, const char *value) static void rna_Sequence_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr)) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); if (ed) free_imbuf_seq(scene, &ed->seqbase, FALSE, TRUE); @@ -583,7 +583,7 @@ static void rna_Sequence_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *U static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *scene, PointerRNA *ptr) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE); @@ -593,7 +593,7 @@ static void rna_Sequence_update_reopen_files(Main *UNUSED(bmain), Scene *scene, static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); seq_update_muting(ed); rna_Sequence_update(bmain, scene, ptr); @@ -620,7 +620,7 @@ static int seqproxy_seq_cmp_cb(Sequence *seq, void *arg_pt) static void rna_Sequence_tcindex_update(Main *bmain, Scene *scene, PointerRNA *ptr) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); Sequence *seq; struct { Sequence *seq; void *seq_proxy; } data; @@ -662,7 +662,7 @@ static int colbalance_seq_cmp_cb(Sequence *seq, void *arg_pt) static char *rna_SequenceColorBalance_path(PointerRNA *ptr) { Scene *scene = ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); Sequence *seq; struct { Sequence *seq; void *color_balance; } data; @@ -682,7 +682,7 @@ static char *rna_SequenceColorBalance_path(PointerRNA *ptr) static void rna_SequenceEditor_overlay_lock_set(PointerRNA *ptr, int value) { Scene *scene = ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); if (ed == NULL) return; @@ -701,7 +701,7 @@ static void rna_SequenceEditor_overlay_lock_set(PointerRNA *ptr, int value) static int rna_SequenceEditor_overlay_frame_get(PointerRNA *ptr) { Scene *scene = (Scene *)ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); if (ed == NULL) return scene->r.cfra; @@ -716,7 +716,7 @@ static int rna_SequenceEditor_overlay_frame_get(PointerRNA *ptr) static void rna_SequenceEditor_overlay_frame_set(PointerRNA *ptr, int value) { Scene *scene = (Scene *)ptr->id.data; - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); if (ed == NULL) return; diff --git a/source/blender/makesrna/intern/rna_sequencer_api.c b/source/blender/makesrna/intern/rna_sequencer_api.c index 01b5aee2dde..440d2e56bfe 100644 --- a/source/blender/makesrna/intern/rna_sequencer_api.c +++ b/source/blender/makesrna/intern/rna_sequencer_api.c @@ -330,7 +330,7 @@ static StripElem *rna_SequenceElements_push(Sequence *seq, Main *bmain, const ch StripElem *se; for (scene = bmain->scene.first; scene; scene = scene->id.next) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); if (ed) { for (seqn = ed->seqbase.first; seqn; seqn = seqn->next) { if (seqn == seq) @@ -362,7 +362,7 @@ static void rna_SequenceElements_pop(Sequence *seq, Main *bmain, ReportList *rep } for (scene = bmain->scene.first; scene; scene = scene->id.next) { - Editing *ed = seq_give_editing(scene, FALSE); + Editing *ed = BKE_sequencer_editing_get(scene, FALSE); if (ed) { for (seqn = ed->seqbase.first; seqn; seqn = seqn->next) { if (seqn == seq) |