SDL_AudioFormat
An enumeration of audio formats.
Contents
Values
Bit Meanings
These are what the 16 bits in SDL_AudioFormat currently mean:
+----------------------sample is signed if set | | +----------sample is bigendian if set | | | | +--sample is float if set | | | | | | +--sample bit size---+ | | | | | 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Unspecified bits are always zero, but may be used in later versions of SDL. There are macros to query the specified bits.
Audio Format Macros
SDL_AUDIO_MASK_BITSIZE |
(0xFF) |
SDL_AUDIO_MASK_DATATYPE |
(1<<8) |
SDL_AUDIO_MASK_ENDIAN |
(1<<12) |
SDL_AUDIO_MASK_SIGNED |
(1<<15) |
SDL_AUDIO_BITSIZE(x) |
(x & SDL_AUDIO_MASK_BITSIZE) |
SDL_AUDIO_ISFLOAT(x) |
(x & SDL_AUDIO_MASK_DATATYPE) |
SDL_AUDIO_ISBIGENDIAN(x) |
(x & SDL_AUDIO_MASK_ENDIAN) |
SDL_AUDIO_ISSIGNED(x) |
(x & SDL_AUDIO_MASK_SIGNED) |
SDL_AUDIO_ISINT(x) |
(!SDL_AUDIO_ISFLOAT(x)) |
SDL_AUDIO_ISLITTLEENDIAN(x) |
(!SDL_AUDIO_ISBIGENDIAN(x)) |
SDL_AUDIO_ISUNSIGNED(x) |
(!SDL_AUDIO_ISSIGNED(x)) |
Audio Format Values
8-bit support |
|
AUDIO_S8 |
signed 8-bit samples |
AUDIO_U8 |
unsigned 8-bit samples |
16-bit support |
|
AUDIO_S16LSB |
signed 16-bit samples in little-endian byte order |
AUDIO_S16MSB |
signed 16-bit samples in big-endian byte order |
AUDIO_S16SYS |
signed 16-bit samples in native byte order |
AUDIO_S16 |
AUDIO_S16LSB |
AUDIO_U16LSB |
unsigned 16-bit samples in little-endian byte order |
AUDIO_U16MSB |
unsigned 16-bit samples in big-endian byte order |
AUDIO_U16SYS |
unsigned 16-bit samples in native byte order |
AUDIO_U16 |
AUDIO_U16LSB |
32-bit support (new to SDL 2.0) |
|
AUDIO_S32LSB |
32-bit integer samples in little-endian byte order |
AUDIO_S32MSB |
32-bit integer samples in big-endian byte order |
AUDIO_S32SYS |
32-bit integer samples in native byte order |
AUDIO_S32 |
AUDIO_S32LSB |
float support (new to SDL 2.0) |
|
AUDIO_F32LSB |
32-bit floating point samples in little-endian byte order |
AUDIO_F32MSB |
32-bit floating point samples in big-endian byte order |
AUDIO_F32SYS |
32-bit floating point samples in native byte order |
AUDIO_F32 |
AUDIO_F32LSB |
Code Examples
void renderAudio(SDL_AudioFormat format, void *buf, size_t buflen)
{
if (SDL_AUDIO_ISFLOAT(format)) {
renderAudioAsFloatingPoint(buf, buflen);
} else if (SDL_AUDIO_BITSIZE(format) == 16) {
renderAudioAsInt16(buf, buflen);
} else if (SDL_AUDIO_BITSIZE(format) == 32) {
renderAudioAsInt32(buf, buflen);
} else {
SDL_assert(0 && "uhoh, we should write this.");
}
}
Remarks
You can add useful comments here
Related Structures
