/** * $Id:$ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** * * The contents of this file may be used under the terms of either the GNU * General Public License Version 2 or later (the "GPL", see * http://www.gnu.org/licenses/gpl.html ), or the Blender License 1.0 or * later (the "BL", see http://www.blender.org/BL/ ) which has to be * bought from the Blender Foundation to become active, in which case the * above mentioned GPL option does not apply. * * The Original Code is Copyright (C) 2002 by NaN Holding BV. * All rights reserved. * * The Original Code is: all of this file. * * Contributor(s): none yet. * * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ /* sequence.h juni 95 * * * Version: $Id: sequence.h,v 1.4 2000/07/25 08:53:07 nzc Exp $ */ #ifndef SEQUENCE_H #define SEQUENCE_H #include "plugin.h" #define WHILE_SEQ(base) { \ int totseq_, seq_; Sequence **seqar; \ build_seqar( base, &seqar, &totseq_); \ for(seq_ = 0; seq_ < totseq_; seq_++) { \ seq= seqar[seq_]; #define END_SEQ } \ if(seqar) freeN(seqar); \ } typedef struct StripElem { char name[40]; struct ImBuf *ibuf; struct StripElem *se1, *se2, *se3; short ok, nr; int pad; } StripElem; typedef struct Strip { struct Strip *next, *prev; short rt, len, us, done; StripElem *stripdata; char dir[80]; short orx, ory; int pad; } Strip; typedef struct PluginSeq { char name[80]; void *handle; char *pname; int vars, version; void *varstr; float *cfra; float data[32]; void (*doit)(); void (*callback)(); } PluginSeq; /* LET OP: eerste stuk identiek aan ID (ivm ipo's) */ typedef struct Sequence { struct Sequence *next, *prev, *newseq; void *lib; char name[24]; short flag, type; int len; int start, startofs, endofs; int startstill, endstill; int machine, depth; int startdisp, enddisp; float mul, handsize; int sfra; Strip *strip; StripElem *curelem; Ipo *ipo; Scene *scene; struct anim *anim; float facf0, facf1; PluginSeq *plugin; /* pointers voor effecten: */ struct Sequence *seq1, *seq2, *seq3; /* meta */ ListBase seqbase; } Sequence; # # typedef struct MetaStack { struct MetaStack *next, *prev; ListBase *oldbasep; Sequence *parseq; } MetaStack; typedef struct Editing { ListBase *seqbasep; ListBase seqbase; ListBase metastack; short flag, rt; int pad; } Editing; /* drawseq.c */ extern void drawseq(Sequence *seq); extern void set_special_seq_update(int val); /* editseq.c */ extern void change_plugin_seq(char *str); extern Sequence *find_nearest_seq(int *hand); extern int test_overlap_seq(Sequence *test); extern void shuffle_seq(Sequence *test); extern Sequence *sfile_to_sequence(SpaceFile *sfile, int cfra, int machine, int last); extern void sfile_to_mv_sequence(SpaceFile *sfile, int cfra, int machine); extern void reload_image_strip(char *name); extern void load_plugin_seq(char *str); extern int is_a_sequence(Sequence *test); /* sequence.c */ extern PluginSeq *add_plugin_seq(char *str, char *seqname); extern void build_seqar(ListBase *seqbase, Sequence ***seqar, int *totseq); extern void calc_sequence(Sequence *seq); extern void clear_scene_in_allseqs(Scene *sce); extern void do_add_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern void do_alphaover_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern void do_alphaunder_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern void do_build_seqar(ListBase *seqbase, Sequence ***seqar, int depth); extern void do_build_seqar_cfra(ListBase *seqbase, Sequence ***seqar, int cfra); extern void do_cross_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern void do_drop_effect(float facf0, float facf1, int x, int y, uint *rect2, uint *rect1, uint *out); extern void do_effect(int cfra, Sequence *seq, StripElem *se); extern void do_gammacross_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern void do_mul_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern void do_render_seq(); extern void do_seq_count(ListBase *seqbase, int *totseq); extern void do_seq_count_cfra(ListBase *seqbase, int *totseq, int cfra); extern void do_sub_effect(float facf0, float facf1, int x, int y, uint *rect1, uint *rect2, uint *out); extern int evaluate_seq_frame(int cfra); extern void free_editing(Editing *ed); extern void free_imbuf_seq_except(int cfra); extern void free_plugin_seq(PluginSeq *pis); extern void free_sequence(Sequence *seq); extern void free_strip(Strip *strip); extern void free_stripdata(int len, StripElem *se); extern ImBuf *give_ibuf_seq(int cfra); extern StripElem *give_stripelem(Sequence *seq, int cfra); extern void make_black_ibuf(ImBuf *ibuf); extern void multibuf(ImBuf *ibuf, float fmul); extern void new_stripdata(Sequence *seq); extern void open_plugin_seq(PluginSeq *pis, char *seqname); extern void set_meta_stripdata(Sequence *seqm); extern void sort_seq(); #endif /* SEQUENCE_H */