[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30051] trunk/blender/source/blender: color balance can now be animated in the sequencer.

Campbell Barton ideasman42 at gmail.com
Tue Jul 6 18:44:05 CEST 2010


Revision: 30051
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30051
Author:   campbellbarton
Date:     2010-07-06 18:44:05 +0200 (Tue, 06 Jul 2010)

Log Message:
-----------
color balance can now be animated in the sequencer.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_sequencer.h
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
    trunk/blender/source/blender/makesrna/rna_cleanup/rna_cleaner.py

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2010-07-06 16:40:56 UTC (rev 30050)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2010-07-06 16:44:05 UTC (rev 30051)
@@ -136,8 +136,8 @@
 void printf_strip(struct Sequence *seq);
 
 /* apply functions recursively */
-void seqbase_recursive_apply(struct ListBase *seqbase, int (*apply_func)(struct Sequence *seq, void *), void *arg);
-void seq_recursive_apply(struct Sequence *seq, int (*apply_func)(struct Sequence *, void *), void *arg);
+int seqbase_recursive_apply(struct ListBase *seqbase, int (*apply_func)(struct Sequence *seq, void *), void *arg);
+int seq_recursive_apply(struct Sequence *seq, int (*apply_func)(struct Sequence *, void *), void *arg);
 
 // extern
 void seq_free_sequence(struct Scene *scene, struct Sequence *seq);

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-07-06 16:40:56 UTC (rev 30050)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-07-06 16:44:05 UTC (rev 30051)
@@ -87,18 +87,27 @@
 	fprintf(stderr, "\tseq_tx_set_final_left: %d %d\n\n", seq_tx_get_final_left(seq, 0), seq_tx_get_final_right(seq, 0));
 }
 
-void seqbase_recursive_apply(ListBase *seqbase, int (*apply_func)(Sequence *seq, void *), void *arg)
+int seqbase_recursive_apply(ListBase *seqbase, int (*apply_func)(Sequence *seq, void *), void *arg)
 {
 	Sequence *iseq;
 	for(iseq= seqbase->first; iseq; iseq= iseq->next) {
-		seq_recursive_apply(iseq, apply_func, arg);
+		if(seq_recursive_apply(iseq, apply_func, arg) == -1)
+			return -1; /* bail out */
 	}
+	return 1;
 }
 
-void seq_recursive_apply(Sequence *seq, int (*apply_func)(Sequence *, void *), void *arg)
+int seq_recursive_apply(Sequence *seq, int (*apply_func)(Sequence *, void *), void *arg)
 {
-	if(apply_func(seq, arg) && seq->seqbase.first)
-		seqbase_recursive_apply(&seq->seqbase, apply_func, arg);
+	int ret= apply_func(seq, arg);
+
+	if(ret == -1)
+		return -1;  /* bail out */
+
+	if(ret && seq->seqbase.first)
+		ret = seqbase_recursive_apply(&seq->seqbase, apply_func, arg);
+
+	return ret;
 }
 
 /* **********************************************************************

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c	2010-07-06 16:40:56 UTC (rev 30050)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c	2010-07-06 16:44:05 UTC (rev 30051)
@@ -483,6 +483,37 @@
 	((Sequence*)(ptr->data))->blend_opacity = value * 100.0f;
 }
 
+
+static int colbalance_seq_cmp_cb(Sequence *seq, void *arg_pt)
+{
+	struct { Sequence *seq; void *color_balance; } *data= arg_pt;
+
+	if(seq->strip && seq->strip->color_balance == data->color_balance) {
+		data->seq= seq;
+		return -1; /* done so bail out */
+	}
+	return 1;
+}
+static char *rna_SequenceColorBalance_path(PointerRNA *ptr)
+{
+	Scene *scene= ptr->id.data;
+	Editing *ed= seq_give_editing(scene, FALSE);
+	Sequence *seq;
+
+	struct { Sequence *seq; void *color_balance; } data;
+	data.seq= NULL;
+	data.color_balance= ptr->data;
+
+	/* irritating we need to search for our sequence! */
+	seqbase_recursive_apply(&ed->seqbase, colbalance_seq_cmp_cb, &data);
+	seq= data.seq;
+
+	if (seq && seq->name+2)
+		return BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].color_balance", seq->name+2);
+	else
+		return BLI_strdup("");
+}
+
 #else
 
 static void rna_def_strip_element(BlenderRNA *brna)
@@ -613,7 +644,9 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_COLOR_BALANCE_INVERSE_LIFT);
 	RNA_def_property_ui_text(prop, "Inverse Lift", "");
 	RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update");
-	
+
+	RNA_def_struct_path_func(srna, "rna_SequenceColorBalance_path");
+
 	/* not yet used
 	prop= RNA_def_property(srna, "exposure", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_range(prop, 0.0f, 1.0f);
@@ -1320,7 +1353,7 @@
 	PropertyRNA *prop;
 
 	srna = RNA_def_struct(brna, "ColorSequence", "EffectSequence");
-	RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single color");
+	RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single g");
 	RNA_def_struct_sdna_from(srna, "SolidColorVars", "effectdata");
 	
 	prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR);

Modified: trunk/blender/source/blender/makesrna/rna_cleanup/rna_cleaner.py
===================================================================
--- trunk/blender/source/blender/makesrna/rna_cleanup/rna_cleaner.py	2010-07-06 16:40:56 UTC (rev 30050)
+++ trunk/blender/source/blender/makesrna/rna_cleanup/rna_cleaner.py	2010-07-06 16:44:05 UTC (rev 30051)
@@ -1,4 +1,4 @@
-#! /usr/bin/env python3
+#! /usr/bin/env python3.1
 
 """
 This script is used to help cleaning RNA api.





More information about the Bf-blender-cvs mailing list