gamesnd

view include/gamesnd.h @ 0:14e265e1cad8

initial
author John Tsiombikas <nuclear@mutantstargoat.com>
date Sun, 09 Sep 2012 02:55:47 +0300
parents
children
line source
1 #ifndef GAMESND_H_
2 #define GAMESND_H_
4 #include <stdio.h>
6 struct gsnd_sample;
7 struct gsnd_source;
8 struct gsnd_track;
9 struct gsnd_io;
11 typedef long (*gsnd_io_read_func)(void *file, void *buf, long sz);
12 typedef long (*gsnd_io_seek_func)(void *file, long offs, int whence);
15 /* ---- sound samples ---- */
16 int gsnd_init_sample(struct gsnd_sample *sam);
17 void gsnd_destroy_sample(struct gsnd_sample *sam);
19 struct gsnd_sample *gsnd_create_sample(void);
20 void gsnd_free_sample(struct gsnd_sample *sam);
22 int gsnd_load_sample(struct gsnd_sample *sam, const char *fname);
23 int gsnd_load_sample_file(struct gsnd_sample *sam, FILE *fp);
24 int gsnd_load_sample_io(struct gsnd_sample *sam, struct gsnd_io *io);
26 void gsnd_play_sample(struct gsnd_sample *sam, float vol);
27 void gsnd_stop_sample(struct gsnd_sample *sam);
29 /* ---- sound source ---- */
30 int gsnd_init_source(struct gsnd_source *src);
31 void gsnd_destroy_source(struct gsnd_source *src);
33 struct gsnd_source *gsnd_create_source(void);
34 void gsnd_free_source(struct gsnd_source *src);
36 void gsnd_source_position(struct gsnd_source *src, float x, float y, float z);
37 void gsnd_source_volume(struct gsnd_source *src, float vol);
38 void gsnd_source_pitch(struct gsnd_source *src, float pitch);
40 void gsnd_play_source(struct gsnd_sample *sam);
41 void gsnd_stop_source(struct gsnd_sample *sam);
43 /* ---- music tracks ---- */
44 int gsnd_init_track(struct gsnd_track *trk);
45 void gsnd_destroy_track(struct gsnd_track *trk);
47 struct gsnd_track *gsnd_create_sample(void);
48 void gsnd_free_sample(struct gsnd_track *trk);
50 int gsnd_open_track(struct gsnd_track *trk, const char *fname);
51 int gsnd_open_track_file(struct gsnd_track *trk, FILE *fp);
52 int gsnd_open_track_io(struct gsnd_track *trk, struct gsnd_io *io);
54 void gsnd_play_track(struct gsnd_track *trk);
55 void gsnd_stop_track(struct gsnd_track *trk);
58 /* ---- file i/o ---- */
59 void gsnd_io(struct gsnd_io *io, void *file, gsnd_io_read_func rd, gsnd_io_seek_func seek);
62 #endif /* GAMESND_H_ */