3D Audio GSoC:
[blender-staging.git] / source / blender / blenkernel / BKE_sound.h
index 50c86e80b08ff690ae2b90d9e293dbefdf560bf1..ecf0d7e459a3ded444aa8944dc515b01fabe3455 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * sound.h (mar-2001 nzc)
- *
+/*
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
 #ifndef BKE_SOUND_H
 #define BKE_SOUND_H
 
+/** \file BKE_sound.h
+ *  \ingroup bke
+ *  \since March 2001
+ *  \author nzc
+ */
+
+#define SOUND_WAVE_SAMPLES_PER_SECOND 250
+
 struct PackedFile;
 struct bSound;
 struct bContext;
@@ -38,16 +44,24 @@ struct ListBase;
 struct Main;
 struct Sequence;
 
-void sound_init_once();
+typedef struct SoundWaveform
+{
+       int length;
+       float *data;
+} SoundWaveform;
+
+void sound_init_once(void);
 
 void sound_init(struct Main *main);
 
-void sound_exit();
+void sound_init_main(struct Main *bmain);
+
+void sound_exit(void);
 
 void sound_force_device(int device);
-int sound_define_from_str(char *str);
+int sound_define_from_str(const char *str);
 
-struct bSound* sound_new_file(struct Main *main, char* filename);
+struct bSound* sound_new_file(struct Main *main, const char *filename);
 
 // XXX unused currently
 #if 0
@@ -58,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);
 
@@ -74,16 +90,36 @@ void sound_create_scene(struct Scene *scene);
 
 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);
@@ -94,6 +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);
+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