続 pcm_formatの修正

ASIOのサンプルフォーマットには次のような種類があります。(リトルエンディアン整数のみ抜粋)

ASIOSTInt16LSB
16ビット整数
ASIOSTInt24LSB
24ビット整数
ASIOSTInt32LSB
32ビット整数(下位8ビットは0固定)
ASIOSTInt32LSB16
32ビット整数(上位16ビットは0固定)
ASIOSTInt32LSB18
32ビット整数(上位14ビットは0固定)
ASIOSTInt32LSB20
32ビット整数(上位12ビットは0固定)
ASIOSTInt32LSB24
32ビット整数(上位8ビットは0固定)

現在のpcm_formatは下の4つをサポートしていません。
WindowsのWEVEFORMATのように、

struct pcm_format
{
    unsigned bits;      // 有効なビット数
    unsigned bytes;     // 1つのデータが占有するバイト数
    unsigned rate;
    unsigned channels;
};

とすることも考えましたが、実際にコーディングをしてみると、あまり便利でなかったのでやめました。
typeに

    int_a32_le16,
    int_a32_le18,
    int_a32_le20,
    int_a32_le24,

を追加しようと思います。
int_a32_le16にするかint_le16_a32とするか迷いましたが、C99で定義される型の名前が全てビット数で終わるので前者を選びました。
16ビットと24ビットがなければ、int_le18とint_le20を追加するだけで良かったんですけどね。