Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2009-09-05 02:50:15 +0400
committerJoshua Leung <aligorith@gmail.com>2009-09-05 02:50:15 +0400
commitec5a8c010c8100a1709786f81d5b9b501383287a (patch)
tree4493b4ac8a817d6ad73e0153926d7354c7fdf69b
parenteaa079b9b7e8650411da90419fce73ffe3334f55 (diff)
2.5 - Animation Tweaks
* Sequencer data is now animateable. Was missing a 'path' setting. For now, sequencer data is animated under scene, since SequenceEditor is not an ID block. * Fixed some buggy insert-keyframe code.
-rw-r--r--source/blender/editors/animation/keyframing.c18
-rw-r--r--source/blender/makesrna/intern/rna_sequence.c11
2 files changed, 16 insertions, 13 deletions
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index d731ec6f148..7135f8802bc 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -292,14 +292,8 @@ int insert_bezt_fcurve (FCurve *fcu, BezTriple *bezt, short flag)
}
}
else if ((flag & INSERTKEY_REPLACE) == 0) {
- /* add new - if we're not restricted to replacing keyframes only */
- BezTriple *newb;
-
- /* allocate a new array only if we have to */
- if ((flag & INSERTKEY_FASTR) == 0)
- newb= MEM_callocN((fcu->totvert+1)*sizeof(BezTriple), "beztriple");
- else
- newb= fcu->bezt;
+ /* insert new - if we're not restricted to replacing keyframes only */
+ BezTriple *newb= MEM_callocN((fcu->totvert+1)*sizeof(BezTriple), "beztriple");
/* add the beztriples that should occur before the beztriple to be pasted (originally in ei->icu) */
if (i > 0)
@@ -313,11 +307,9 @@ int insert_bezt_fcurve (FCurve *fcu, BezTriple *bezt, short flag)
memcpy(newb+i+1, fcu->bezt+i, (fcu->totvert-i)*sizeof(BezTriple));
/* replace (+ free) old with new, only if necessary to do so */
- if ((flag & INSERTKEY_FASTR) == 0) {
- MEM_freeN(fcu->bezt);
- fcu->bezt= newb;
- }
-
+ MEM_freeN(fcu->bezt);
+ fcu->bezt= newb;
+
fcu->totvert++;
}
}
diff --git a/source/blender/makesrna/intern/rna_sequence.c b/source/blender/makesrna/intern/rna_sequence.c
index 5d275f7a87c..9f016f73694 100644
--- a/source/blender/makesrna/intern/rna_sequence.c
+++ b/source/blender/makesrna/intern/rna_sequence.c
@@ -221,6 +221,16 @@ static StructRNA* rna_Sequence_refine(struct PointerRNA *ptr)
}
}
+static char *rna_Sequence_path(PointerRNA *ptr)
+{
+ Sequence *seq= (Sequence*)ptr->data;
+
+ /* sequencer data comes from scene...
+ * TODO: would be nice to make SequenceEditor data a datablock of its own (for shorter paths)
+ */
+ return BLI_sprintfN("sequence_editor.sequences[\"%s\"]", seq->name+2);
+}
+
static PointerRNA rna_SequenceEdtior_meta_stack_get(CollectionPropertyIterator *iter)
{
ListBaseIterator *internal= iter->internal;
@@ -393,6 +403,7 @@ static void rna_def_sequence(BlenderRNA *brna)
srna = RNA_def_struct(brna, "Sequence", NULL);
RNA_def_struct_ui_text(srna, "Sequence", "Sequence strip in the sequence editor.");
RNA_def_struct_refine_func(srna, "rna_Sequence_refine");
+ RNA_def_struct_path_func(srna, "rna_Sequence_path");
prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE);
RNA_def_property_string_funcs(prop, "rna_Sequence_name_get", "rna_Sequence_name_length", "rna_Sequence_name_set");