#pragma section-numbers off #pragma camelcase off = SDL_AudioFormat = An enumeration of audio formats. <> == 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 == {{{#!highlight cpp extern SDL_AudioFormat fmt; if (SDL_AUDIO_ISFLOAT(fmt)) { printf("floating point data\n"); } else { printf("integer data\n"); } printf("%d bits per sample\n", (int) SDL_AUDIO_BITSIZE(fmt)); }}} == Remarks == Be careful about assuming details of a data format. If you only check SDL_AUDIO_ISFLOAT(), you might be surprised to find a later version of SDL adds Float64 support when you expected there to be only 32-bit data, for example. == Related Structures == .[[SDL_AudioCVT]] .[[SDL_AudioSpec]] == Related Functions == .[[SDL_BuildAudioCVT]] .[[SDL_MixAudioFormat]] ---- [[CategoryEnum]], [[CategoryAudio]]