Lephisto/src/sound.h

33 lines
943 B
C

#pragma once
#include <AL/al.h>
#include "physics.h"
#define VOICE_LOOPING (1<<10) /* Voice loops. */
#define VOICE_STATIC (1<<11) /* Voice isn't relative. */
struct alVoice;
typedef struct alVoice alVoice;
/* Sound subsystem. */
int sound_init(void);
void sound_exit(void);
void sound_update(void);
/* Sound manupulation functions. */
ALuint sound_get(char* name);
void sound_volume(const double vol);
/* Voice manipulation function. */
alVoice* sound_addVoice(int priority, double px, double py,
double vx, double vy, const ALuint buffer, const unsigned int flags);
void sound_delVoice(alVoice* voice); /* Delete voice. */
void voice_update(alVoice* voice, double px, double py, double vx, double vy);
void voice_buffer(alVoice* voice, const ALuint buffer, const unsigned int flags);
void voice_stop(alVoice* voice);
/* Listener manipulation. */
void sound_listener(double dir, double px, double py, double vx, double vy);