[Bf-blender-cvs] [467da3c] terrible_consequencer: Store the waveforms between undo steps when they exist.

Antony Riakiotakis noreply at git.blender.org
Wed Sep 24 17:03:46 CEST 2014


Commit: 467da3ce16b85cb887945f2e8f19de34f37e37ea
Author: Antony Riakiotakis
Date:   Wed Sep 24 17:03:35 2014 +0200
Branches: terrible_consequencer
https://developer.blender.org/rB467da3ce16b85cb887945f2e8f19de34f37e37ea

Store the waveforms between undo steps when they exist.

===================================================================

M	source/blender/blenloader/intern/readfile.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 380dc3b..09aaebf 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -1447,7 +1447,9 @@ void blo_make_sound_pointer_map(FileData *fd, Main *oldmain)
 		if (sound->handle)
 			oldnewmap_insert(fd->soundmap, sound->handle, sound->handle, 0);	
 		if (sound->cache)
-			oldnewmap_insert(fd->soundmap, sound->cache, sound->cache, 0);	
+			oldnewmap_insert(fd->soundmap, sound->cache, sound->cache, 0);
+		if (sound->waveform)
+			oldnewmap_insert(fd->soundmap, sound->waveform, sound->waveform, 0);			
 	}
 }
 
@@ -1468,6 +1470,7 @@ void blo_end_sound_pointer_map(FileData *fd, Main *oldmain)
 	for (; sound; sound = sound->id.next) {
 		sound->cache = newsoundadr(fd, sound->cache);
 		sound->handle = newsoundadr(fd, sound->handle);
+		sound->waveform = newsoundadr(fd, sound->waveform);
 	}
 }
 
@@ -6743,19 +6746,19 @@ static void direct_link_speaker(FileData *fd, Speaker *spk)
 
 static void direct_link_sound(FileData *fd, bSound *sound)
 {
-	/* reload waveforms for now */
-	sound->waveform = NULL;
-	
 	// versioning stuff, if there was a cache, then we enable caching:
 	if (sound->cache) sound->flags |= SOUND_FLAGS_CACHING;
 
 	if (fd->soundmap) {
 		sound->cache = newsoundadr(fd, sound->cache);
 		sound->handle = newsoundadr(fd, sound->handle);
+		sound->waveform = newsoundadr(fd, sound->waveform);
 	
 		/* if there was a cache it's also used for playback */
 		if (sound->cache)
 			sound->playback_handle = sound->cache;
+		else if (sound->handle)
+			sound->playback_handle = sound->handle;
 		else
 			sound->playback_handle = NULL;
 	}	
@@ -6763,6 +6766,7 @@ static void direct_link_sound(FileData *fd, bSound *sound)
 		sound->cache = NULL;
 		sound->handle = NULL;
 		sound->playback_handle = NULL;
+		sound->waveform = NULL;		
 	}
 		
 	if (sound->mutex)




More information about the Bf-blender-cvs mailing list