[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