www.pudn.com > mpeg2win-0.4-source.zip > audio.h
/*
* Audio 'LIB' defines
*/
#define AUDIO_OUT_HEADPHONES 0x01
#define AUDIO_OUT_INTERNAL_SPEAKER 0x02
#define AUDIO_OUT_LINE_OUT 0x04
enum { DECODE_TEST, DECODE_AUDIO, DECODE_FILE, DECODE_BUFFER, DECODE_WAV,
DECODE_AU,DECODE_CDR,DECODE_AUDIOFILE };
#define AUDIO_FORMAT_MASK 0x100
#define AUDIO_FORMAT_16 0x100
#define AUDIO_FORMAT_8 0x000
#define AUDIO_FORMAT_SIGNED_16 0x110
#define AUDIO_FORMAT_UNSIGNED_16 0x120
#define AUDIO_FORMAT_UNSIGNED_8 0x1
#define AUDIO_FORMAT_SIGNED_8 0x2
#define AUDIO_FORMAT_ULAW_8 0x4
#define AUDIO_FORMAT_ALAW_8 0x8
/* 3% rate tolerance */
#define AUDIO_RATE_TOLERANCE 3
#if 0
#if defined(HPUX) || defined(SUNOS) || defined(SOLARIS) || defined(OSS) || defined(__NetBSD__) || defined(SPARCLINUX) || defined(__FreeBSD__)
#endif
#endif
#define AUDIO_USES_FD
#ifdef SGI
/* #include */
#include
#endif
#ifdef ALSA
#include
#endif
struct audio_info_struct
{
#ifdef AUDIO_USES_FD
int fn; /* filenumber */
#endif
#ifdef SGI
ALconfig config;
ALport port;
#endif
long rate;
long gain;
int output;
#ifdef ALSA
void *handle;
snd_pcm_format_t alsa_format;
#endif
char *device;
int channels;
int format;
int private1;
void *private2;
};
struct audio_name {
int val;
char *name;
char *sname;
};
extern void audio_capabilities(struct audio_info_struct *);
extern void audio_fit_capabilities(struct audio_info_struct *ai,int c,int r);
extern char *audio_encoding_name(int format);
extern int audio_play_samples(struct audio_info_struct *,unsigned char *,int);
extern int audio_open(struct audio_info_struct *);
extern int audio_reset_parameters(struct audio_info_struct *);
extern int audio_rate_best_match(struct audio_info_struct *ai);
extern int audio_set_rate(struct audio_info_struct *);
extern int audio_set_format(struct audio_info_struct *);
extern int audio_get_formats(struct audio_info_struct *);
extern int audio_set_channels(struct audio_info_struct *);
extern int audio_write_sample(struct audio_info_struct *,short *,int);
extern int audio_close(struct audio_info_struct *);
extern void audio_info_struct_init(struct audio_info_struct *);
extern void audio_queueflush(struct audio_info_struct *ai);