目次 - 4.関数 - 4.6エフェクト - Mix_SetPostMix

Mix_SetPostMix

void Mix_SetPostMix(void (*mix_func)(void *udata, Uint8 *stream, int len), void *arg)

mix_func
後処理を行う関数のポインタ. NULLのとき後処理を削除する
arg
特に同時に複数のチャネルを扱えるように作る場合は, 処理関数が状態データを保存する場所として使うとよい. 必要なければNULLにできる.

ミキシング後のエフェクト処理関数mix_funcをフックする. 読み込んだデータを単に表示する処理や, ストリームにエコーをつける処理などを行える. 多くの処理関数は状態データの領域を確保する必要がある. その場合はargポインタに保存するとよい. この処理関数はオーディオデバイスを閉じる, またはmix_funcをNULLにするまで使い終えることはない. この関数は1つのミキシング後の処理関数しか設定できない. Mix_RegisterEffect(MIX_CHANNEL_POST, mix_func, NULL, arg)を使えば複数のミキシング後処理関数を使える. このミキシング後処理関数は, Mix_RegisterEffectで登録した全てのミキシング処理関数の後に呼ばれる.

サンプルコード

// 何もせず素通りする関数を作る
void noEffect(void *udata, Uint8 *stream, int len)
{
    // ここにストリームの処理を書ける...
}
...
// 何もしないミキシング後処理を登録する
Mix_SetPostMix(noEffect, NULL);

参照

Mix_RegisterEffect

原文へのリンク

4.6.4 Mix_SetPostMix