[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22808] branches/blender2.5/blender/source /blender: 2.5 Sound: RNA for bSound.

Joerg Mueller nexyon at gmail.com
Wed Aug 26 20:20:18 CEST 2009


Revision: 22808
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22808
Author:   nexyon
Date:     2009-08-26 20:20:17 +0200 (Wed, 26 Aug 2009)

Log Message:
-----------
2.5 Sound: RNA for bSound.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_sound.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/sound.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_sound.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_sound.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_sound.h	2009-08-26 17:13:20 UTC (rev 22807)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_sound.h	2009-08-26 18:20:17 UTC (rev 22808)
@@ -54,6 +54,8 @@
 
 void sound_cache(struct bSound* sound, int ignore);
 
+void sound_delete_cache(struct bSound* sound);
+
 void sound_load(struct Main *main, struct bSound* sound);
 
 void sound_free(struct bSound* sound);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/sound.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/sound.c	2009-08-26 17:13:20 UTC (rev 22807)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/sound.c	2009-08-26 18:20:17 UTC (rev 22808)
@@ -163,8 +163,18 @@
 		AUD_unload(sound->cache);
 
 	sound->cache = AUD_bufferSound(sound->handle);
+	sound->changed = TRUE;
 }
 
+void sound_delete_cache(struct bSound* sound)
+{
+	if(sound->cache)
+	{
+		AUD_unload(sound->cache);
+		sound->cache = NULL;
+	}
+}
+
 void sound_load(struct Main *main, struct bSound* sound)
 {
 	if(sound)
@@ -219,6 +229,7 @@
 			break;
 		}
 #endif
+		sound->changed = TRUE;
 	}
 }
 

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_sound.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_sound.c	2009-08-26 17:13:20 UTC (rev 22807)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_sound.c	2009-08-26 18:20:17 UTC (rev 22808)
@@ -34,6 +34,29 @@
 
 #ifdef RNA_RUNTIME
 
+#include "BKE_sound.h"
+#include "BKE_context.h"
+
+static void rna_Sound_filename_update(bContext *C, PointerRNA *ptr)
+{
+	sound_load(CTX_data_main(C), (bSound*)ptr->data);
+}
+
+static int rna_Sound_caching_get(PointerRNA *ptr)
+{
+	bSound *sound = (bSound*)(ptr->data);
+	return sound->cache != NULL;
+}
+
+static void rna_Sound_caching_set(PointerRNA *ptr, const int value)
+{
+	bSound *sound = (bSound*)(ptr->data);
+	if(value)
+		sound_cache(sound, 0);
+	else
+		sound_delete_cache(sound);
+}
+
 #else
 
 static void rna_def_sound(BlenderRNA *brna)
@@ -51,10 +74,16 @@
 	prop= RNA_def_property(srna, "filename", PROP_STRING, PROP_FILEPATH);
 	RNA_def_property_string_sdna(prop, NULL, "name");
 	RNA_def_property_ui_text(prop, "Filename", "Sound sample file used by this Sound datablock.");
+	RNA_def_property_update(prop, 0, "rna_Sound_filename_update");
 
 	prop= RNA_def_property(srna, "packed_file", PROP_POINTER, PROP_NONE);
 	RNA_def_property_pointer_sdna(prop, NULL, "packedfile");
 	RNA_def_property_ui_text(prop, "Packed File", "");
+
+	prop= RNA_def_property(srna, "caching", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_funcs(prop, "rna_Sound_caching_get", "rna_Sound_caching_set");
+	RNA_def_property_ui_text(prop, "Caching", "The sound file is decoded and loaded into RAM.");
+	RNA_def_property_update(prop, 0, "rna_Sound_filename_update");
 }
 
 void RNA_def_sound(BlenderRNA *brna)





More information about the Bf-blender-cvs mailing list