Wiki Page Content

Differences between revisions 21 and 22
Revision 21 as of 2012-01-23 20:55:38
Size: 2839
Comment: Replace 1.3 with 2.0
Revision 22 as of 2013-08-07 20:37:12
Size: 3258
Editor: RyanGordon
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.

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


CategoryEnum, CategoryAudio

None: SDL_AudioFormat (last edited 2015-01-02 21:21:14 by PhilippWiesemann)

(Page Info.)
Feedback
Please include your contact information if you'd like to receive a reply.
Submit