--- a/include/SDL_audio.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_audio.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Access to the raw audio mixing buffer for the SDL library */
+/**
+ * \file SDL_audio.h
+ *
+ * Access to the raw audio mixing buffer for the SDL library
+ */
#ifndef _SDL_audio_h
#define _SDL_audio_h
@@ -35,35 +39,38 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* The calculated values in this structure are calculated by SDL_OpenAudio() */
-typedef struct SDL_AudioSpec {
- int freq; /* DSP frequency -- samples per second */
- Uint16 format; /* Audio data format */
- Uint8 channels; /* Number of channels: 1 mono, 2 stereo */
- Uint8 silence; /* Audio buffer silence value (calculated) */
- Uint16 samples; /* Audio buffer size in samples (power of 2) */
- Uint16 padding; /* Necessary for some compile environments */
- Uint32 size; /* Audio buffer size in bytes (calculated) */
- /* This function is called when the audio device needs more data.
- 'stream' is a pointer to the audio data buffer
- 'len' is the length of that buffer in bytes.
- Once the callback returns, the buffer will no longer be valid.
- Stereo samples are stored in a LRLRLR ordering.
- */
- void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len);
- void *userdata;
+typedef struct SDL_AudioSpec
+{
+ int freq; /* DSP frequency -- samples per second */
+ Uint16 format; /* Audio data format */
+ Uint8 channels; /* Number of channels: 1 mono, 2 stereo */
+ Uint8 silence; /* Audio buffer silence value (calculated) */
+ Uint16 samples; /* Audio buffer size in samples (power of 2) */
+ Uint16 padding; /* Necessary for some compile environments */
+ Uint32 size; /* Audio buffer size in bytes (calculated) */
+ /* This function is called when the audio device needs more data.
+ 'stream' is a pointer to the audio data buffer
+ 'len' is the length of that buffer in bytes.
+ Once the callback returns, the buffer will no longer be valid.
+ Stereo samples are stored in a LRLRLR ordering.
+ */
+ void (SDLCALL * callback) (void *userdata, Uint8 * stream, int len);
+ void *userdata;
} SDL_AudioSpec;
/* Audio format flags (defaults to LSB byte order) */
-#define AUDIO_U8 0x0008 /* Unsigned 8-bit samples */
-#define AUDIO_S8 0x8008 /* Signed 8-bit samples */
-#define AUDIO_U16LSB 0x0010 /* Unsigned 16-bit samples */
-#define AUDIO_S16LSB 0x8010 /* Signed 16-bit samples */
-#define AUDIO_U16MSB 0x1010 /* As above, but big-endian byte order */
-#define AUDIO_S16MSB 0x9010 /* As above, but big-endian byte order */
+#define AUDIO_U8 0x0008 /* Unsigned 8-bit samples */
+#define AUDIO_S8 0x8008 /* Signed 8-bit samples */
+#define AUDIO_U16LSB 0x0010 /* Unsigned 16-bit samples */
+#define AUDIO_S16LSB 0x8010 /* Signed 16-bit samples */
+#define AUDIO_U16MSB 0x1010 /* As above, but big-endian byte order */
+#define AUDIO_S16MSB 0x9010 /* As above, but big-endian byte order */
#define AUDIO_U16 AUDIO_U16LSB
#define AUDIO_S16 AUDIO_S16LSB
@@ -78,23 +85,30 @@
/* A structure to hold a set of audio conversion filters and buffers */
-typedef struct SDL_AudioCVT {
- int needed; /* Set to 1 if conversion possible */
- Uint16 src_format; /* Source audio format */
- Uint16 dst_format; /* Target audio format */
- double rate_incr; /* Rate conversion increment */
- Uint8 *buf; /* Buffer to hold entire audio data */
- int len; /* Length of original audio buffer */
- int len_cvt; /* Length of converted audio buffer */
- int len_mult; /* buffer must be len*len_mult big */
- double len_ratio; /* Given len, final size is len*len_ratio */
- void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
- int filter_index; /* Current audio conversion function */
+typedef struct SDL_AudioCVT
+{
+ int needed; /* Set to 1 if conversion possible */
+ Uint16 src_format; /* Source audio format */
+ Uint16 dst_format; /* Target audio format */
+ double rate_incr; /* Rate conversion increment */
+ Uint8 *buf; /* Buffer to hold entire audio data */
+ int len; /* Length of original audio buffer */
+ int len_cvt; /* Length of converted audio buffer */
+ int len_mult; /* buffer must be len*len_mult big */
+ double len_ratio; /* Given len, final size is len*len_ratio */
+ void (SDLCALL * filters[10]) (struct SDL_AudioCVT * cvt, Uint16 format);
+ int filter_index; /* Current audio conversion function */
} SDL_AudioCVT;
/* Function prototypes */
+/* These functions return the list of built in video drivers, in the
+ * order that they are normally initialized by default.
+ */
+extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void);
+extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index);
+
/* These functions are used internally, and should not be used unless you
* have a specific need to specify the audio driver you want to use.
* You should normally use SDL_Init() or SDL_InitSubSystem().
@@ -102,11 +116,10 @@
extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name);
extern DECLSPEC void SDLCALL SDL_AudioQuit(void);
-/* This function fills the given character buffer with the name of the
- * current audio driver, and returns a pointer to it if the audio driver has
- * been initialized. It returns NULL if no driver has been initialized.
+/* This function returns the name of the current audio driver, or NULL
+ * if no driver has been initialized.
*/
-extern DECLSPEC char * SDLCALL SDL_AudioDriverName(char *namebuf, int maxlen);
+extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void);
/*
* This function opens the audio device with the desired parameters, and
@@ -149,15 +162,17 @@
* may modify the requested size of the audio buffer, you should allocate
* any local mixing buffers after you open the audio device.
*/
-extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);
+extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired,
+ SDL_AudioSpec * obtained);
/*
* Get the current audio state:
*/
-typedef enum {
- SDL_AUDIO_STOPPED = 0,
- SDL_AUDIO_PLAYING,
- SDL_AUDIO_PAUSED
+typedef enum
+{
+ SDL_AUDIO_STOPPED = 0,
+ SDL_AUDIO_PLAYING,
+ SDL_AUDIO_PAUSED
} SDL_audiostatus;
extern DECLSPEC SDL_audiostatus SDLCALL SDL_GetAudioStatus(void);
@@ -187,7 +202,11 @@
* wave file cannot be opened, uses an unknown data format, or is
* corrupt. Currently raw and MS-ADPCM WAVE files are supported.
*/
-extern DECLSPEC SDL_AudioSpec * SDLCALL SDL_LoadWAV_RW(SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len);
+extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
+ int freesrc,
+ SDL_AudioSpec * spec,
+ Uint8 ** audio_buf,
+ Uint32 * audio_len);
/* Compatibility convenience function -- loads a WAV from a file */
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
@@ -196,7 +215,7 @@
/*
* This function frees data previously allocated with SDL_LoadWAV_RW()
*/
-extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 *audio_buf);
+extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf);
/*
* This function takes a source format and rate and a destination format
@@ -205,9 +224,13 @@
* to the other.
* This function returns 0, or -1 if there was an error.
*/
-extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT *cvt,
- Uint16 src_format, Uint8 src_channels, int src_rate,
- Uint16 dst_format, Uint8 dst_channels, int dst_rate);
+extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt,
+ Uint16 src_format,
+ Uint8 src_channels,
+ int src_rate,
+ Uint16 dst_format,
+ Uint8 dst_channels,
+ int dst_rate);
/* Once you have initialized the 'cvt' structure using SDL_BuildAudioCVT(),
* created an audio buffer cvt->buf, and filled it with cvt->len bytes of
@@ -217,7 +240,7 @@
* cvt->buf should be allocated after the cvt structure is initialized by
* SDL_BuildAudioCVT(), and should be cvt->len*cvt->len_mult bytes long.
*/
-extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT *cvt);
+extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt);
/*
* This takes two audio buffers of the playing audio format and mixes
@@ -227,7 +250,8 @@
* This is provided for convenience -- you can mix your own audio data.
*/
#define SDL_MIX_MAXVOLUME 128
-extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 *dst, const Uint8 *src, Uint32 len, int volume);
+extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src,
+ Uint32 len, int volume);
/*
* The lock manipulated by these functions protects the callback function.
@@ -246,8 +270,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_audio_h */
+
+/* vi: set ts=4 sw=4 expandtab: */