[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27620] trunk/blender/source/blender: "Fix " aka implementation of [#21548] Audio doesn' t work when adding scenes with audio to another scene.

Joerg Mueller nexyon at gmail.com
Sat Mar 20 12:15:16 CET 2010


Revision: 27620
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27620
Author:   nexyon
Date:     2010-03-20 12:15:16 +0100 (Sat, 20 Mar 2010)

Log Message:
-----------
"Fix" aka implementation of [#21548] Audio doesn't work when adding scenes with audio to another scene.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_sound.h
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenkernel/intern/sound.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sound.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sound.h	2010-03-20 10:14:59 UTC (rev 27619)
+++ trunk/blender/source/blender/blenkernel/BKE_sound.h	2010-03-20 11:15:16 UTC (rev 27620)
@@ -72,6 +72,8 @@
 
 void sound_destroy_scene(struct Scene *scene);
 
+void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip);
+
 void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip);
 
 void sound_remove_scene_sound(struct Scene *scene, void* handle);

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-03-20 10:14:59 UTC (rev 27619)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2010-03-20 11:15:16 UTC (rev 27620)
@@ -3698,7 +3698,7 @@
 
 			seq_update_muting_recursive(scene, &seq->seqbase, metaseq, seqmute);
 		}
-		else if(seq->type == SEQ_SOUND) {
+		else if((seq->type == SEQ_SOUND) || (seq->type == SEQ_SCENE)) {
 			if(seq->scene_sound) {
 				sound_mute_scene_sound(scene, seq->scene_sound, seqmute);
 			}

Modified: trunk/blender/source/blender/blenkernel/intern/sound.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sound.c	2010-03-20 10:14:59 UTC (rev 27619)
+++ trunk/blender/source/blender/blenkernel/intern/sound.c	2010-03-20 11:15:16 UTC (rev 27620)
@@ -349,6 +349,11 @@
 		AUD_destroySequencer(scene->sound_scene);
 }
 
+void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip)
+{
+	return AUD_addSequencer(scene->sound_scene, &(sequence->scene->sound_scene), startframe / FPS, endframe / FPS, frameskip / FPS, sequence);
+}
+
 void* sound_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip)
 {
 	return AUD_addSequencer(scene->sound_scene, &(sequence->sound->playback_handle), startframe / FPS, endframe / FPS, frameskip / FPS, sequence);

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-03-20 10:14:59 UTC (rev 27619)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-03-20 11:15:16 UTC (rev 27620)
@@ -4143,7 +4143,10 @@
 
 			SEQ_BEGIN(sce->ed, seq) {
 				if(seq->ipo) seq->ipo= newlibadr_us(fd, sce->id.lib, seq->ipo);
-				if(seq->scene) seq->scene= newlibadr(fd, sce->id.lib, seq->scene);
+				if(seq->scene) {
+					seq->scene= newlibadr(fd, sce->id.lib, seq->scene);
+					seq->scene_sound = sound_scene_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, seq->startofs);
+				}
 				if(seq->scene_camera) seq->scene_camera= newlibadr(fd, sce->id.lib, seq->scene_camera);
 				if(seq->sound) {
 					seq->scene_sound = NULL;

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c	2010-03-20 10:14:59 UTC (rev 27619)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c	2010-03-20 11:15:16 UTC (rev 27620)
@@ -215,6 +215,8 @@
 	else
 		strcpy(seq->name+2, sce_seq->id.name+2);
 	
+	seq->scene_sound = sound_scene_add_scene_sound(scene, seq, start_frame, start_frame + strip->len, 0);
+
 	calc_sequence_disp(scene, seq);
 	sort_seq(scene);
 	

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-03-20 10:14:59 UTC (rev 27619)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c	2010-03-20 11:15:16 UTC (rev 27620)
@@ -828,6 +828,8 @@
 		/* - 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);





More information about the Bf-blender-cvs mailing list