26#ifndef _ACF_UTILS_WAV_H_
27#define _ACF_UTILS_WAV_H_
40typedef struct alc alc_t;
42typedef struct wav_fmt_hdr {
76API_EXPORT
char **openal_list_output_devs(
size_t *num_p);
77API_EXPORT alc_t *openal_init(
const char *devname, bool_t shared);
78API_EXPORT alc_t *openal_init2(
const char *devname, bool_t shared,
79 const int *attrs, bool_t thr_local);
80API_EXPORT
void openal_fini(alc_t *
alc);
82API_EXPORT
wav_t *wav_load(
const char *filename,
const char *descr_name,
84API_EXPORT
void wav_free(
wav_t *wav);
86API_EXPORT
void wav_set_offset(
wav_t *wav,
float offset_sec);
87API_EXPORT
float wav_get_offset(
wav_t *wav);
88API_EXPORT
void wav_set_gain(
wav_t *wav,
float gain);
89API_EXPORT
float wav_get_gain(
wav_t *wav);
90API_EXPORT
void wav_set_loop(
wav_t *wav, bool_t loop);
91API_EXPORT bool_t wav_get_loop(
wav_t *wav);
92API_EXPORT
void wav_set_pitch(
wav_t *wav,
float pitch);
93API_EXPORT
float wav_get_pitch(
wav_t *wav);
94API_EXPORT
void wav_set_position(
wav_t *wav,
vect3_t pos);
96API_EXPORT
void wav_set_velocity(
wav_t *wav,
vect3_t vel);
98API_EXPORT
void wav_set_ref_dist(
wav_t *wav,
double d);
99API_EXPORT
double wav_get_ref_dist(
wav_t *wav);
100API_EXPORT
void wav_set_max_dist(
wav_t *wav,
double d);
101API_EXPORT
double wav_get_max_dist(
wav_t *wav);
102API_EXPORT
void wav_set_spatialize(
wav_t *wav, bool_t flag);
103API_EXPORT
void wav_set_rolloff_fact(
wav_t *wav,
double r);
104API_EXPORT
double wav_get_rolloff_fact(
wav_t *wav);
108API_EXPORT
void wav_set_cone_inner(
wav_t *wav,
double cone_inner);
109API_EXPORT
void wav_set_cone_outer(
wav_t *wav,
double cone_outer);
110API_EXPORT
void wav_set_gain_outer(
wav_t *wav,
double gain_outer);
111API_EXPORT
void wav_set_gain_outerhf(
wav_t *wav,
double gain_outerhf);
112API_EXPORT
void wav_set_stereo_angles(
wav_t *wav,
double a1,
double a2);
114API_EXPORT
void wav_set_air_absorption_fact(
wav_t *wav,
double fact);
116API_EXPORT bool_t wav_play(
wav_t *wav);
117API_EXPORT bool_t wav_is_playing(
wav_t *wav);
118API_EXPORT
void wav_stop(
wav_t *wav);
120API_EXPORT
void alc_set_dist_model(alc_t *
alc, ALenum model);
121API_EXPORT
void alc_listener_set_pos(alc_t *
alc,
vect3_t pos);
122API_EXPORT
vect3_t alc_listener_get_pos(alc_t *
alc);
123API_EXPORT
void alc_listener_set_orient(alc_t *
alc,
vect3_t orient);
124API_EXPORT
void alc_listener_set_velocity(alc_t *
alc,
vect3_t vel);
126API_EXPORT alc_t *alc_global_save(alc_t *new_alc);
127API_EXPORT
void alc_global_restore(alc_t *new_alc, alc_t *old_alc);