Wiki Page Content

Differences between revisions 1 and 2
Revision 1 as of 2009-12-13 17:54:10
Size: 1179
Editor: SheenaSmith
Comment: create page, add content (incomplete)
Revision 2 as of 2009-12-13 19:54:32
Size: 2834
Editor: SheenaSmith
Comment: content added (still incomplete)
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
A typedef that contains audio format flags. A typedef that contains audio format data and flags.
Line 10: Line 10:
=== Bit Meanings ===
Line 22: Line 23:
''OR'' ''OR it could look like this''
Line 30: Line 31:
||value||description||
||value||description||
||value||description||
=== 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
}}}

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 09 08 07 06 05 04 03 02 01 00 

OR it could look like this

Bit

Meaning

15

sample is signed if set

12

sample is bigendian if set

08

sample is float if set

07-00

sample bit size

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

Code Examples

You can add your code example here

Remarks


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