3D Audio GSoC:
[blender-staging.git] / source / blender / blenkernel / BKE_sound.h
index 8722485b97deee0867ca449daaafda652d2c7d82..ecf0d7e459a3ded444aa8944dc515b01fabe3455 100644 (file)
@@ -1,6 +1,4 @@
-/**
- * sound.h (mar-2001 nzc)
- *
+/*
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
@@ -17,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  * All rights reserved.
 #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;
 struct ListBase;
 struct Main;
+struct Sequence;
+
+typedef struct SoundWaveform
+{
+       int length;
+       float *data;
+} SoundWaveform;
 
-void sound_init();
+void sound_init_once(void);
 
-void sound_exit();
+void sound_init(struct Main *main);
 
-void sound_disable();
+void sound_init_main(struct Main *bmain);
 
-struct bSound* sound_new_file(struct Main *main, char* filename);
+void sound_exit(void);
+
+void sound_force_device(int device);
+int sound_define_from_str(const char *str);
+
+struct bSound* sound_new_file(struct Main *main, const char *filename);
 
 // XXX unused currently
 #if 0
@@ -54,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);
 
@@ -62,20 +82,62 @@ void sound_load(struct Main *main, struct bSound* sound);
 
 void sound_free(struct bSound* sound);
 
-void sound_unlink(struct bContext *C, struct bSound* sound);
+#ifdef AUD_CAPI
+AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, float volume);
+#endif
 
-struct SoundHandle* sound_new_handle(struct Scene *scene, struct bSound* sound, int startframe, int endframe, int frameskip);
+void sound_create_scene(struct Scene *scene);
 
-void sound_delete_handle(struct Scene *scene, struct SoundHandle *handle);
+void sound_destroy_scene(struct Scene *scene);
 
-void sound_update_playing(struct bContext *C);
+void sound_mute_scene(struct Scene *scene, int muted);
 
-void sound_scrub(struct bContext *C);
+void sound_update_fps(struct Scene *scene);
 
-#ifdef AUD_CAPI
-AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, int end, float volume);
-#endif
+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(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);
+
+void sound_seek_scene(struct bContext *C);
+
+float sound_sync_scene(struct Scene *scene);
+
+int sound_scene_playing(struct Scene *scene);
+
+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_stop_all(struct bContext *C);
+void* sound_get_factory(void* sound);
 
 #endif