3D Audio GSoC:
[blender-staging.git] / source / blender / blenkernel / BKE_sound.h
index 04597fd666e1e0e6de4d2cddcd02a9f419966054..ecf0d7e459a3ded444aa8944dc515b01fabe3455 100644 (file)
@@ -35,6 +35,8 @@
  *  \author nzc
  */
 
+#define SOUND_WAVE_SAMPLES_PER_SECOND 250
+
 struct PackedFile;
 struct bSound;
 struct bContext;
@@ -42,10 +44,18 @@ struct ListBase;
 struct Main;
 struct Sequence;
 
+typedef struct SoundWaveform
+{
+       int length;
+       float *data;
+} SoundWaveform;
+
 void sound_init_once(void);
 
 void sound_init(struct Main *main);
 
+void sound_init_main(struct Main *bmain);
+
 void sound_exit(void);
 
 void sound_force_device(int device);
@@ -62,7 +72,9 @@ struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, floa
 
 void sound_delete(struct bContext *C, struct bSound* sound);
 
-void sound_cache(struct bSound* sound, int ignore);
+void sound_cache(struct bSound* sound);
+
+void sound_cache_notifying(struct Main* main, struct bSound* sound);
 
 void sound_delete_cache(struct bSound* sound);
 
@@ -80,16 +92,34 @@ void sound_destroy_scene(struct Scene *scene);
 
 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);
 
 void sound_remove_scene_sound(struct Scene *scene, void* handle);
 
-void sound_mute_scene_sound(struct Scene *scene, void* handle, char mute);
+void sound_mute_scene_sound(void* handle, char mute);
 
 void sound_move_scene_sound(struct Scene *scene, void* handle, int startframe, int endframe, int frameskip);
 
+void sound_update_scene_sound(void* handle, struct bSound* sound);
+
+void sound_set_cfra(int cfra);
+
+void sound_set_scene_volume(struct Scene *scene, float volume);
+
+void sound_set_scene_sound_volume(void* handle, float volume, char animated);
+
+void sound_set_scene_sound_pitch(void* handle, float pitch, char animated);
+
+void sound_set_scene_sound_pan(void* handle, float pan, char animated);
+
+void sound_update_sequencer(struct Main* main, struct bSound* sound);
+
 void sound_play_scene(struct Scene *scene);
 
 void sound_stop_scene(struct Scene *scene);
@@ -100,8 +130,14 @@ float sound_sync_scene(struct Scene *scene);
 
 int sound_scene_playing(struct Scene *scene);
 
-int sound_read_sound_buffer(struct bSound* sound, float* buffer, int length, float start, float end);
+void sound_free_waveform(struct bSound* sound);
+
+void sound_read_waveform(struct bSound* sound);
 
 int sound_get_channels(struct bSound* sound);
 
+void sound_update_scene(struct Main* bmain, struct Scene* scene);
+
+void* sound_get_factory(void* sound);
+
 #endif