[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29666] trunk/blender/source/blender: Move some sequencer functions about, no functional changes.

Campbell Barton ideasman42 at gmail.com
Thu Jun 24 12:04:19 CEST 2010


Revision: 29666
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29666
Author:   campbellbarton
Date:     2010-06-24 12:04:18 +0200 (Thu, 24 Jun 2010)

Log Message:
-----------
Move some sequencer functions about, no functional changes.
- Remove SEQ_DESEL, better not have a flag which includes ~, use ~SEQ_ALLSEL instead.
- Rename recurs_dupli_seq -> seqbase_dupli_recursive
- Rename deep_dupli_seq -> seq_dupli_recursive

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_sequencer.h
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
    trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
    trunk/blender/source/blender/makesdna/DNA_sequence_types.h

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2010-06-24 07:56:21 UTC (rev 29665)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2010-06-24 10:04:18 UTC (rev 29666)
@@ -191,12 +191,15 @@
 int shuffle_seq_time(ListBase * seqbasep, struct Scene *evil_scene);
 int seqbase_isolated_sel_check(struct ListBase *seqbase);
 void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage);
+struct Sequence	*seq_dupli_recursive(struct Scene *scene, struct Sequence * seq);
 int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b);
 
 void seq_update_sound(struct Scene* scene, struct Sequence *seq);
 void seq_update_muting(struct Scene* scene, struct Editing *ed);
 void seqbase_sound_reload(Scene *scene, ListBase *seqbase);
 void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq);
+void seqbase_dupli_recursive(struct Scene *scene, ListBase *nseqbase, ListBase *seqbase, int do_context);
+
 void clear_scene_in_allseqs(struct Scene *sce);
 
 struct Sequence *get_seq_by_name(struct ListBase *seqbase, const char *name, int recursive);

Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c	2010-06-24 07:56:21 UTC (rev 29665)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c	2010-06-24 10:04:18 UTC (rev 29666)
@@ -44,6 +44,7 @@
 #include "DNA_group_types.h"
 #include "DNA_scene_types.h"
 #include "DNA_screen_types.h"
+#include "DNA_sequence_types.h"
 
 #include "BKE_anim.h"
 #include "BKE_animsys.h"

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-06-24 07:56:21 UTC (rev 29665)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-06-24 10:04:18 UTC (rev 29666)
@@ -4086,3 +4086,130 @@
 
 	return seq;
 }
+
+
+static Sequence *dupli_seq(struct Scene *scene, Sequence *seq)
+{
+	Sequence *seqn = MEM_dupallocN(seq);
+
+	seq->tmp = seqn;
+	seqn->strip= MEM_dupallocN(seq->strip);
+
+	// XXX: add F-Curve duplication stuff?
+
+	seqn->strip->tstripdata = 0;
+	seqn->strip->tstripdata_startstill = 0;
+	seqn->strip->tstripdata_endstill = 0;
+	seqn->strip->ibuf_startstill = 0;
+	seqn->strip->ibuf_endstill = 0;
+
+	if (seq->strip->crop) {
+		seqn->strip->crop = MEM_dupallocN(seq->strip->crop);
+	}
+
+	if (seq->strip->transform) {
+		seqn->strip->transform = MEM_dupallocN(seq->strip->transform);
+	}
+
+	if (seq->strip->proxy) {
+		seqn->strip->proxy = MEM_dupallocN(seq->strip->proxy);
+	}
+
+	if (seq->strip->color_balance) {
+		seqn->strip->color_balance
+			= MEM_dupallocN(seq->strip->color_balance);
+	}
+
+	if(seq->type==SEQ_META) {
+		seqn->strip->stripdata = 0;
+
+		seqn->seqbase.first= seqn->seqbase.last= 0;
+		/* WATCH OUT!!! - This metastrip is not recursively duplicated here - do this after!!! */
+		/* - seq_dupli_recursive(&seq->seqbase,&seqn->seqbase);*/
+	} else if(seq->type == SEQ_SCENE) {
+		seqn->strip->stripdata = 0;
+		if(seq->scene_sound)
+			seqn->scene_sound = sound_scene_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);
+	} else if(seq->type == SEQ_MOVIE) {
+		seqn->strip->stripdata =
+				MEM_dupallocN(seq->strip->stripdata);
+		seqn->anim= 0;
+	} else if(seq->type == SEQ_SOUND) {
+		seqn->strip->stripdata =
+				MEM_dupallocN(seq->strip->stripdata);
+		if(seq->scene_sound)
+			seqn->scene_sound = sound_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);
+
+		seqn->sound->id.us++;
+	} else if(seq->type == SEQ_IMAGE) {
+		seqn->strip->stripdata =
+				MEM_dupallocN(seq->strip->stripdata);
+	} else if(seq->type >= SEQ_EFFECT) {
+		if(seq->seq1 && seq->seq1->tmp) seqn->seq1= seq->seq1->tmp;
+		if(seq->seq2 && seq->seq2->tmp) seqn->seq2= seq->seq2->tmp;
+		if(seq->seq3 && seq->seq3->tmp) seqn->seq3= seq->seq3->tmp;
+
+		if (seq->type & SEQ_EFFECT) {
+			struct SeqEffectHandle sh;
+			sh = get_sequence_effect(seq);
+			if(sh.copy)
+				sh.copy(seq, seqn);
+		}
+
+		seqn->strip->stripdata = 0;
+
+	} else {
+		fprintf(stderr, "Aiiiiekkk! sequence type not "
+				"handled in duplicate!\nExpect a crash"
+						" now...\n");
+	}
+
+	seqbase_unique_name_recursive(&scene->ed->seqbase, seqn);
+
+	return seqn;
+}
+
+Sequence * seq_dupli_recursive(struct Scene *scene, Sequence * seq)
+{
+	Sequence * seqn = dupli_seq(scene, seq);
+	if (seq->type == SEQ_META) {
+		Sequence * s;
+		for(s= seq->seqbase.first; s; s = s->next) {
+			Sequence *n = seq_dupli_recursive(scene, s);
+			if (n) {
+				BLI_addtail(&seqn->seqbase, n);
+			}
+		}
+	}
+	return seqn;
+}
+
+void seqbase_dupli_recursive(Scene *scene, ListBase *nseqbase, ListBase *seqbase, int do_context)
+{
+	Sequence *seq;
+	Sequence *seqn = 0;
+	Sequence *last_seq = seq_active_get(scene);
+
+	for(seq= seqbase->first; seq; seq= seq->next) {
+		seq->tmp= NULL;
+		if(seq->flag & SELECT) {
+			seqn = dupli_seq(scene, seq);
+			if (seqn) { /*should never fail */
+				if(do_context) {
+					seq->flag &= ~SEQ_ALLSEL;
+					seqn->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL+SEQ_LOCK);
+				}
+
+				BLI_addtail(nseqbase, seqn);
+				if(seq->type==SEQ_META)
+					seqbase_dupli_recursive(scene, &seqn->seqbase, &seq->seqbase, do_context);
+
+				if(do_context) {
+					if (seq == last_seq) {
+						seq_active_set(scene, seqn);
+					}
+				}
+			}
+		}
+	}
+}

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-06-24 07:56:21 UTC (rev 29665)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-06-24 10:04:18 UTC (rev 29666)
@@ -389,7 +389,7 @@
 	if(ed==NULL) return;
 
 	SEQP_BEGIN(ed, seq) {
-		seq->flag &= SEQ_DESEL;
+		seq->flag &= ~SEQ_ALLSEL;
 	}
 	SEQ_END
 		
@@ -402,9 +402,9 @@
 	seq= seqm->seqbase.first;
 	while(seq) {
 
-		if(seqm->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL)) seq->flag &= SEQ_DESEL;
+		if(seqm->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL)) seq->flag &= ~SEQ_ALLSEL;
 		else if(seqm->flag & SELECT) seq->flag |= SELECT;
-		else seq->flag &= SEQ_DESEL;
+		else seq->flag &= ~SEQ_ALLSEL;
 
 		if(seq->seqbase.first) recurs_sel_seq(seq);
 
@@ -768,133 +768,7 @@
 	}
 }
 
-static Sequence *dupli_seq(struct Scene *scene, Sequence *seq)
-{
-	Sequence *seqn = MEM_dupallocN(seq);
 
-	seq->tmp = seqn;
-	seqn->strip= MEM_dupallocN(seq->strip);
-
-	// XXX: add F-Curve duplication stuff?
-		
-	seqn->strip->tstripdata = 0;
-	seqn->strip->tstripdata_startstill = 0;
-	seqn->strip->tstripdata_endstill = 0;
-	seqn->strip->ibuf_startstill = 0;
-	seqn->strip->ibuf_endstill = 0;
-
-	if (seq->strip->crop) {
-		seqn->strip->crop = MEM_dupallocN(seq->strip->crop);
-	}
-
-	if (seq->strip->transform) {
-		seqn->strip->transform = MEM_dupallocN(seq->strip->transform);
-	}
-
-	if (seq->strip->proxy) {
-		seqn->strip->proxy = MEM_dupallocN(seq->strip->proxy);
-	}
-
-	if (seq->strip->color_balance) {
-		seqn->strip->color_balance 
-			= MEM_dupallocN(seq->strip->color_balance);
-	}
-	
-	if(seq->type==SEQ_META) {
-		seqn->strip->stripdata = 0;
-
-		seqn->seqbase.first= seqn->seqbase.last= 0;
-		/* WATCH OUT!!! - This metastrip is not recursively duplicated here - do this after!!! */
-		/* - recurs_dupli_seq(&seq->seqbase,&seqn->seqbase);*/
-	} else if(seq->type == SEQ_SCENE) {
-		seqn->strip->stripdata = 0;
-		if(seq->scene_sound)
-			seqn->scene_sound = sound_scene_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);
-	} else if(seq->type == SEQ_MOVIE) {
-		seqn->strip->stripdata = 
-				MEM_dupallocN(seq->strip->stripdata);
-		seqn->anim= 0;
-	} else if(seq->type == SEQ_SOUND) {
-		seqn->strip->stripdata =
-				MEM_dupallocN(seq->strip->stripdata);
-		if(seq->scene_sound)
-			seqn->scene_sound = sound_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs);
-
-		seqn->sound->id.us++;
-	} else if(seq->type == SEQ_IMAGE) {
-		seqn->strip->stripdata = 
-				MEM_dupallocN(seq->strip->stripdata);
-	} else if(seq->type >= SEQ_EFFECT) {
-		if(seq->seq1 && seq->seq1->tmp) seqn->seq1= seq->seq1->tmp;
-		if(seq->seq2 && seq->seq2->tmp) seqn->seq2= seq->seq2->tmp;
-		if(seq->seq3 && seq->seq3->tmp) seqn->seq3= seq->seq3->tmp;
-
-		if (seq->type & SEQ_EFFECT) {
-			struct SeqEffectHandle sh;
-			sh = get_sequence_effect(seq);
-			if(sh.copy)
-				sh.copy(seq, seqn);
-		}
-
-		seqn->strip->stripdata = 0;
-		
-	} else {
-		fprintf(stderr, "Aiiiiekkk! sequence type not "
-				"handled in duplicate!\nExpect a crash"
-						" now...\n");
-	}
-
-	seqbase_unique_name_recursive(&scene->ed->seqbase, seqn);
-
-	return seqn;
-}
-
-static Sequence * deep_dupli_seq(struct Scene *scene, Sequence * seq)
-{
-	Sequence * seqn = dupli_seq(scene, seq);
-	if (seq->type == SEQ_META) {
-		Sequence * s;
-		for(s= seq->seqbase.first; s; s = s->next) {
-			Sequence * n = deep_dupli_seq(scene, s);
-			if (n) { 
-				BLI_addtail(&seqn->seqbase, n);
-			}
-		}
-	}
-	return seqn;
-}
-
-
-static void recurs_dupli_seq(Scene *scene, ListBase *old, ListBase *new, int do_context)
-{
-	Sequence *seq;
-	Sequence *seqn = 0;
-	Sequence *last_seq = seq_active_get(scene);
-
-	for(seq= old->first; seq; seq= seq->next) {
-		seq->tmp= NULL;
-		if(seq->flag & SELECT) {
-			seqn = dupli_seq(scene, seq);
-			if (seqn) { /*should never fail */
-				if(do_context) {
-					seq->flag &= SEQ_DESEL;
-					seqn->flag &= ~(SEQ_LEFTSEL+SEQ_RIGHTSEL+SEQ_LOCK);
-				}
-
-				BLI_addtail(new, seqn);
-				if(seq->type==SEQ_META)
-					recurs_dupli_seq(scene, &seq->seqbase,&seqn->seqbase, do_context);
-				
-				if(do_context) {
-					if (seq == last_seq) {
-						seq_active_set(scene, seqn);
-					}
-				}
-			}
-		}
-	}
-}
-
 static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
 {
 	TransSeq ts;
@@ -947,7 +821,7 @@
 
 	if (!skip_dup) {
 		/* Duplicate AFTER the first change */
-		seqn = deep_dupli_seq(scene, seq);
+		seqn = seq_dupli_recursive(scene, seq);
 	}
 	
 	if (seqn) { 
@@ -1036,7 +910,7 @@
 
 	if (!skip_dup) {
 		/* Duplicate AFTER the first change */
-		seqn = deep_dupli_seq(scene, seq);
+		seqn = seq_dupli_recursive(scene, seq);
 	}
 	
 	if (seqn) { 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list