Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-03-12 21:57:33 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-03-12 21:57:33 +0400
commit2525f9c5f31e90bcb8f2e8c84558a2bc35e3207c (patch)
treeef78984549c84b3b00e4356d35eae3c23b5c16e3 /source/blender/blenkernel/intern/sound.c
parent19f7f9afab1b36ca8a92e739b7591f694b902dcb (diff)
backport revisions from master for 2.70-rc2 tagv2.70-rc2
This includes: 68ef679, d0ad48f, e913eab + 8d09ec6, 9630fa7, 4ce7d5c, b839fb9, 43b5f0a, 4d47e75, 89c793f, b23a439, 0a3850f de86b70, cfefc5d, 997b49a, 6919ffb, c1be7e1, 6ddd54f 7a9838b + 98abc80, 23fbc9f, 41dde55, 500088d, c2045ef c31c8fa, 7461fea, d219312, 0844451 + c05896e, ef51b69 19935f0, b977cfd, 3c3c2cd, 9ecf73f, 20f7a34, f03df4f 2de9da6, ba81fb7, a7ab389, d7cff8f7
Diffstat (limited to 'source/blender/blenkernel/intern/sound.c')
-rw-r--r--source/blender/blenkernel/intern/sound.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c
index 3a8754e8dd2..1fe73a1f692 100644
--- a/source/blender/blenkernel/intern/sound.c
+++ b/source/blender/blenkernel/intern/sound.c
@@ -681,7 +681,7 @@ void sound_read_waveform(bSound *sound)
}
}
-void sound_update_scene(struct Scene *scene)
+void sound_update_scene(Main *bmain, struct Scene *scene)
{
Object *ob;
Base *base;
@@ -694,6 +694,11 @@ void sound_update_scene(struct Scene *scene)
void *handle;
float quat[4];
+ /* cheap test to skip looping over all objects (no speakers is a common case) */
+ if (BLI_listbase_is_empty(&bmain->speaker)) {
+ goto skip_speakers;
+ }
+
for (SETLOOPER(scene, sce_it, base)) {
ob = base->object;
if (ob->type == OB_SPEAKER) {
@@ -743,6 +748,9 @@ void sound_update_scene(struct Scene *scene)
}
}
+
+skip_speakers:
+
while ((handle = AUD_getSet(scene->speaker_handles))) {
AUD_removeSequence(scene->sound_scene, handle);
}
@@ -808,7 +816,7 @@ void sound_read_waveform(struct bSound *sound) { (void)sound; }
void sound_init_main(struct Main *bmain) { (void)bmain; }
void sound_set_cfra(int cfra) { (void)cfra; }
void sound_update_sequencer(struct Main *main, struct bSound *sound) { (void)main; (void)sound; }
-void sound_update_scene(struct Scene *scene) { (void)scene; }
+void sound_update_scene(struct Main *UNUSED(bmain), struct Scene *UNUSED(scene)) { }
void sound_update_scene_sound(void *handle, struct bSound *sound) { (void)handle; (void)sound; }
void sound_update_scene_listener(struct Scene *scene) { (void)scene; }
void sound_update_fps(struct Scene *scene) { (void)scene; }