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:
authorJoerg Mueller <nexyon@gmail.com>2011-08-03 13:25:40 +0400
committerJoerg Mueller <nexyon@gmail.com>2011-08-03 13:25:40 +0400
commit6d7490632f13f9744c6b3e507c838a34f3481846 (patch)
tree941fa3faa93beb2fbb63798b2c1c416a5c3821f1 /source/blender/blenkernel
parent2b446aa280af60aefd304aae904bc16b1b15f373 (diff)
3D Audio GSoC:
* Minor audaspace library improvements. * Considering location, velocity and orientation in AUD_SequencerReader and AUD_SequencerHandle. * Bugfix: Maximum and Minimum volume weren't used before in the software device. * Bugfix: Adding speaker objects via info space crashed. * Listener settings now get updated in the audio system.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/BKE_sound.h2
-rw-r--r--source/blender/blenkernel/intern/sound.c11
2 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_sound.h b/source/blender/blenkernel/BKE_sound.h
index 5ccb34338af..632a2a0bb3b 100644
--- a/source/blender/blenkernel/BKE_sound.h
+++ b/source/blender/blenkernel/BKE_sound.h
@@ -84,6 +84,8 @@ void sound_mute_scene(struct Scene *scene, int muted);
void sound_update_fps(struct Scene *scene);
+void sound_update_scene_listener(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);
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c
index 6e8b26c6ca6..59f5cdb678e 100644
--- a/source/blender/blenkernel/intern/sound.c
+++ b/source/blender/blenkernel/intern/sound.c
@@ -354,8 +354,11 @@ AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start,
void sound_create_scene(struct Scene *scene)
{
scene->sound_scene = AUD_createSequencer(FPS, scene->audio.flag & AUDIO_MUTE);
+ AUD_updateSequencerData(scene->sound_scene, scene->audio.speed_of_sound,
+ scene->audio.doppler_factor, scene->audio.distance_model);
scene->sound_scene_handle = NULL;
scene->sound_scrub_handle = NULL;
+ scene->speaker_handles = NULL;
}
void sound_destroy_scene(struct Scene *scene)
@@ -366,6 +369,8 @@ void sound_destroy_scene(struct Scene *scene)
AUD_stop(scene->sound_scrub_handle);
if(scene->sound_scene)
AUD_destroySequencer(scene->sound_scene);
+ if(scene->speaker_handles)
+ AUD_destroySet(scene->speaker_handles);
}
void sound_mute_scene(struct Scene *scene, int muted)
@@ -380,6 +385,12 @@ void sound_update_fps(struct Scene *scene)
AUD_setSequencerFPS(scene->sound_scene, FPS);
}
+void sound_update_scene_listener(struct Scene *scene)
+{
+ AUD_updateSequencerData(scene->sound_scene, scene->audio.speed_of_sound,
+ scene->audio.doppler_factor, scene->audio.distance_model);
+}
+
void* sound_scene_add_scene_sound(struct Scene *scene, struct Sequence* sequence, int startframe, int endframe, int frameskip)
{
if(scene != sequence->scene)