3D Audio GSoC:
[blender-staging.git] / source / blender / blenkernel / BKE_sound.h
index f3bed467c3a34ae8a7d3b7e616db66b0c975ee4e..ecf0d7e459a3ded444aa8944dc515b01fabe3455 100644 (file)
@@ -1,7 +1,5 @@
-/**
- * sound.h (mar-2001 nzc)
- *     
- * $Id$ 
+/*
+ * $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 bSample;
+struct bContext;
 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);
+int sound_define_from_str(const char *str);
+
+struct bSound* sound_new_file(struct Main *main, const char *filename);
+
+// XXX unused currently
+#if 0
+struct bSound* sound_new_buffer(struct bContext *C, struct bSound *source);
 
-/* bad bad global... */
-extern struct ListBase *samples;
+struct bSound* sound_new_limiter(struct bContext *C, struct bSound *source, float start, float end);
+#endif
+
+void sound_delete(struct bContext *C, struct bSound* sound);
+
+void sound_cache(struct bSound* sound);
 
-void sound_free_all_samples(void);
+void sound_cache_notifying(struct Main* main, struct bSound* sound);
 
-/*  void *sound_get_listener(void); implemented in src!also declared there now  */
+void sound_delete_cache(struct bSound* sound);
 
-void sound_set_packedfile(struct bSample* sample, struct PackedFile* pf);
-struct PackedFile* sound_find_packedfile(struct bSound* sound);
-void sound_free_sample(struct bSample* sample);
-void sound_free_sound(struct bSound* sound);
+void sound_load(struct Main *main, struct bSound* sound);
 
+void sound_free(struct bSound* sound);
+
+#ifdef AUD_CAPI
+AUD_Device* sound_mixdown(struct Scene *scene, AUD_DeviceSpecs specs, int start, float volume);
 #endif
 
+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(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_get_factory(void* sound);
+
+#endif