Wiki Page Content

Differences between revisions 4 and 5
Revision 4 as of 2009-12-20 04:13:08
Size: 3066
Editor: SheenaSmith
Comment: format adjustments
Revision 5 as of 2009-12-20 04:15:45
Size: 3063
Editor: SheenaSmith
Comment: format adjustments
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
++-----------------------sample is signed if set
||
|| +
+-----------sample is bigendian if set
|| ||
|| || ++-
--sample is float if set
|| || ||
|| || |
| +---sample bit size---+
|| || || | |
+-----------------------sample is signed if set
|
|
+-----------sample is bigendian if set
|         |
| | +
--sample is float if set
|         | |
| |
| +---sample bit size---+
|         | | | |

SDL_AudioFormat

A typedef that contains audio format data and flags.

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. There are macros in SDL 1.3 and later to query these bits.

Audio flags

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 flags

AUDIO_U8

unsigned 8-bit samples

AUDIO_S8

signed 8-bit samples

AUDIO_U16LSB

unsigned 16-bit samples

AUDIO_S16LSB

signed 16-bit samples

AUDIO_U16MSB

as above, but big-endian byte order

AUDIO_S16MSB

as above, but big-endian byte order

AUDIO_U16

AUDIO_U16LSB

AUDIO_S16

AUDIO_S16LSB

Defaults to LSB byte order.

int32 support

(New to SDL 1.3)

AUDIO_S32LSB

32-bit integer samples

AUDIO_S32MSB

as above, but big-endian byte order

AUDIO_S32

AUDIO_S32LSB

float32 support

(New to SDL 1.3)

AUDIO_F32LSB

32-bit floating point samples

AUDIO_F32MSB

as above, but big-endian byte order

AUDIO_F32

AUDIO_F32LSB

Native audio byte ordering

#if SDL_BYTEORDER == SDL_LIL_ENDIAN
#define AUDIO_U16SYS AUDIO_U16LSB
#define AUDIO_S16SYS AUDIO_S16LSB
#define AUDIO_S32SYS AUDIO_S32LSB
#define AUDIO_F32SYS AUDIO_F32LSB
#else
#define AUDIO_U16SYS AUDIO_U16MSB
#define AUDIO_S16SYS AUDIO_S16MSB
#define AUDIO_S32SYS AUDIO_S32MSB
#define AUDIO_F32SYS AUDIO_F32MSB
#endif

Allow change flags

Which audio format changes are allowed when opening a device.

SDL_AUDIO_ALLOW_FREQUENCY_CHANGE

0x00000001

SDL_AUDIO_ALLOW_FORMAT_CHANGE

0x00000002

SDL_AUDIO_ALLOW_CHANNELS_CHANGE

0x00000004

SDL_AUDIO_ALLOW_ANY_CHANGE

(SDL_AUDIO_ALLOW_FREQUENCY_CHANGE|SDL_AUDIO_ALLOW_FORMAT_CHANGE|SDL_AUDIO_ALLOW_CHANNELS_CHANGE)

Code Examples

You can add your code example here

Remarks

You can add useful comments here


CategoryEnum

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