[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