|
Size: 2839
Comment: Replace 1.3 with 2.0
|
Size: 3258
Comment: Added example, improved docs
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 23: | Line 23: |
| Unspecified bits are always zero. There are macros in SDL 2.0 and later to query these bits. | Unspecified bits are always zero, but may be used in later versions of SDL. There are macros to query the specified bits. |
| Line 65: | Line 65: |
| You can add your code example here | 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."); } } |
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
