目次 - API(機能別) - 再生と録音 - SDL_AudioFormat

# SDL_AudioFormat

音声形式の列挙体

## 値

### ビットの意味

SDL_AudioFormatの16bitの現在の意味は次の通りである.

     +------------1ならサンプリングデータは符号あり
     |
     |        +-------------1ならビッグエンディアン
     |        |
     |        |           +---------1なら浮動小数点
     |        |           |
     |        |           |  +----ビットサイズ----+
     |        |           |  |                    |
    15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0

指定のないビットは常に0である. しかし, 将来のバージョンでは使うかもしれない. 特定のビットを調査するマクロもある.

### 音声形式のマクロ

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_MASK_BITSIZE(x) | (x & SDL_AUDIO_MASK_BITSIZE)
SDL_AUDIO_MASK_ISFLOAT(x) | (x & SDL_AUDIO_MASK_DATATYPE)
SDL_AUDIO_MASK_ISBIGENDIAN(x) | (x & SDL_AUDIO_MASK_ENDIAN)
SDL_AUDIO_MASK_ISSIGNED(x) | (x & SDL_AUDIO_MASK_SIGNED)
SDL_AUDIO_MASK_ISINT(x) | (!SDL_AUDIO_ISFLOAT(x))
SDL_AUDIO_MASK_ISLITTLEENDIAN(x) | (!SDL_AUDIO_ISBIGENDIAN(x))
SDL_AUDIO_MASK_ISUNSIGNED(x) | (!SDL_AUDIO_ISSIGNED(x))

### 音声形式の値

8bit
AUDIO_S8 | 8bit符号ありサンプリング
AUDIO_U8 | 8bit符号なしサンプリング
16bit
AUDIO_S16LSB | 16bit符号ありリトルエンディアンサンプリング
AUDIO_S16MSB | 16bit符号ありビッグエンディアンサンプリング
AUDIO_S16SYS | 16bit符号ありシステムと同じバイト順サンプリング
AUDIO_S16 | AUDIO_S16LSB
AUDIO_U16LSB | 16bit符号なしリトルエンディアンサンプリング
AUDIO_U16MSB | 16bit符号なしビッグエンディアンサンプリング
AUDIO_U16SYS | 16bit符号なしシステムと同じバイト順サンプリング
AUDIO_U16 | AUDIO_S16LSB
32bit
AUDIO_S32LSB | 32bit整数リトルエンディアンサンプリング
AUDIO_S32MSB | 32bit整数ビッグエンディアンサンプリング
AUDIO_S32SYS | 32bit整数システムと同じバイト順サンプリング
AUDIO_S32 | AUDIO_S32LSB
浮動小数点
AUDIO_F32LSB | 32bit浮動小数点リトルエンディアンサンプリング
AUDIO_F32MSB | 32bit浮動小数点ビッグエンディアンサンプリング
AUDIO_F32SYS | 32bit浮動小数点システムと同じバイト順サンプリング
AUDIO_F32 | AUDIO_F32LSB

## サンプルコード

`

    extern SDL_AudioFormat fmt;
    if (SDL_AUDIO_ISFLOAT(fmt)) {
        printf("浮動小数点データ\n");
    } else {
        printf("整数データ\n");
    }
    printf("サンプルあたり%dビット\n", (int) SDL_AUDIO_BITSIZE(fmt));

`

## 詳細

データ形式の思い込みに注意すること. 例えば, SDL_AUDIO_ISFLOAT()のチェックのみで32bitデータを想定すると, 後のバージョンで64bit浮動小数点が追加されたとき問題が発生する.

## 関連項目(構造体)

SDL_AudioCVT
SDL_AudioSpec

## 関連項目(関数)

SDL_BuildAudioCVT
SDL_MixAudioFormat

## SDL Wikiへのリンク

SDL_AudioFormat - SDL Wiki