[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11120] trunk/blender/source/blender/ python/api2_2x/sceneSequence.c: patch from harkyman to make it possible to extend images to span more frames in the sequencer .

Campbell Barton cbarton at metavr.com
Fri Jun 29 07:33:43 CEST 2007


Revision: 11120
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11120
Author:   campbellbarton
Date:     2007-06-29 07:33:43 +0200 (Fri, 29 Jun 2007)

Log Message:
-----------
patch from harkyman to make it possible to extend images to span more frames in the sequencer.

Link includes example script
https://projects.blender.org/tracker/?func=detail&aid=6893&group_id=9&atid=127

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/sceneSequence.c

Modified: trunk/blender/source/blender/python/api2_2x/sceneSequence.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/sceneSequence.c	2007-06-29 03:48:13 UTC (rev 11119)
+++ trunk/blender/source/blender/python/api2_2x/sceneSequence.c	2007-06-29 05:33:43 UTC (rev 11120)
@@ -57,7 +57,9 @@
 	EXPP_SEQ_ATTR_LENGTH,
 	EXPP_SEQ_ATTR_START,
 	EXPP_SEQ_ATTR_STARTOFS,
-	EXPP_SEQ_ATTR_ENDOFS
+	EXPP_SEQ_ATTR_ENDOFS,
+	EXPP_SEQ_ATTR_STARTSTILL,
+	EXPP_SEQ_ATTR_ENDSTILL
 };
 
 
@@ -568,6 +570,12 @@
 	case EXPP_SEQ_ATTR_ENDOFS:
 		param = seq->endofs;
 		break;
+	case EXPP_SEQ_ATTR_STARTSTILL:
+		param = seq->startstill;
+		break;
+	case EXPP_SEQ_ATTR_ENDSTILL:
+		param = seq->endstill;
+		break;
 	default:
 		return EXPP_ReturnPyObjError( PyExc_RuntimeError, 
 				"undefined type in getFloatAttr" );
@@ -576,12 +584,26 @@
 	return PyInt_FromLong( param );
 }
 
-
 /* internal functions for recursivly updating metastrip locatons */
 static void intern_pos_update(Sequence * seq) {
 	/* update startdisp and enddisp */
+	if(seq->startofs && seq->startstill) seq->startstill= 0;
+	if(seq->endofs && seq->endstill) seq->endstill= 0;
+
+	seq->startdisp= seq->start + seq->startofs - seq->startstill;
+	seq->enddisp= seq->start+seq->len - seq->endofs + seq->endstill;
+
+	seq->handsize= 10.0;	/* 10 frames */
+	if( seq->enddisp-seq->startdisp < 20 ) {
+		seq->handsize= (float)(0.5*(seq->enddisp-seq->startdisp));
+	}
+	else if(seq->enddisp-seq->startdisp > 250) {
+		seq->handsize= (float)((seq->enddisp-seq->startdisp)/25);
+	}
+	
+	/* original Cambo code; replaced with c&p from function in blenkernel/sequence.c 
 	seq->startdisp = seq->start + seq->startofs - seq->startstill;
-	seq->enddisp = ((seq->start + seq->len) - seq->endofs )+ seq->endstill;
+	seq->enddisp = ((seq->start + seq->len) - seq->endofs )+ seq->endstill; */
 }
 
 void intern_recursive_pos_update(Sequence * seq, int offset) {
@@ -621,9 +643,10 @@
 		break;
 	
 	case EXPP_SEQ_ATTR_STARTOFS:
-		CLAMP(number, 0, seq->len - seq->endofs);
+		if (self->seq->type == SEQ_EFFECT)
 			return EXPP_ReturnIntError( PyExc_RuntimeError,
 				"This property dosnt apply to an effect" );
+		CLAMP(number, 0, seq->len - seq->endofs);
 		seq->startofs = number;
 		break;
 	case EXPP_SEQ_ATTR_ENDOFS:
@@ -633,7 +656,28 @@
 		CLAMP(number, 0, seq->len - seq->startofs);
 		seq->endofs = number;
 		break;
-	
+	case EXPP_SEQ_ATTR_STARTSTILL:
+		if (self->seq->type == SEQ_EFFECT)
+			return EXPP_ReturnIntError( PyExc_RuntimeError,
+				"This property dosnt apply to an effect" );
+		CLAMP(number, 1, MAXFRAME);
+		seq->startstill = number;
+		break;
+	case EXPP_SEQ_ATTR_ENDSTILL:
+		if (self->seq->type == SEQ_EFFECT)
+			return EXPP_ReturnIntError( PyExc_RuntimeError,
+				"This property dosnt apply to an effect" );
+		CLAMP(number, seq->startstill+1, MAXFRAME);
+		seq->endstill = number;
+		break;
+	case EXPP_SEQ_ATTR_LENGTH:
+		if (self->seq->type == SEQ_EFFECT)
+			return EXPP_ReturnIntError( PyExc_RuntimeError,
+				"cannot set the length of an effect directly" );
+		CLAMP(number, 1, MAXFRAME);
+		origval = seq->len;
+		seq->start = number;
+		break;
 	default:
 		return EXPP_ReturnIntError( PyExc_RuntimeError,
 				"undefined type in setFloatAttrClamp" );
@@ -730,7 +774,15 @@
 	 (getter)getIntAttr, (setter)setIntAttrClamp,
 	 "",
 	 (void *) EXPP_SEQ_ATTR_ENDOFS},
-
+	{"startStill",
+	 (getter)getIntAttr, (setter)setIntAttrClamp,
+	 "",
+	 (void *) EXPP_SEQ_ATTR_STARTSTILL},
+	{"endStill",
+	 (getter)getIntAttr, (setter)setIntAttrClamp,
+	 "",
+	 (void *) EXPP_SEQ_ATTR_ENDSTILL},
+	 
 	{"sel",
 	 (getter)getFlagAttr, (setter)setFlagAttr,
 	 "Sequence audio mute option",





More information about the Bf-blender-cvs mailing list