目次 - SDL_mixer - API(機能別) - エフェクト - Mix_SetPostMix

Mix_SetPostMix

全てのミキシングが適用された後に呼ばれる関数を設定する

構文

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

引数

mix_func新しいミックス後のコールバック関数
argコールバックにそのまま渡されるポインタ

詳細

この関数はオーディオストリームのリアルタイムディスプレイやストリームデータのフィルタのために利用できる.

コールバックは, SDL_mixerがオーディオデバイスに新しいデータを供給する準備ができるたびに呼ばれ, その後にミキシングが行われる. コールバックはSDLオーディオコールバックの内部で実行されるため, 高速である必要がある. そうでなければオーディオコールバックが問題を引き起こす可能性がある.

コールバックに渡されるデータはオープンしたオーディオデバイスの形式で, SDL_mixerが全てのチャンクと音楽をミックスした後の実際の波形である. このデータは編集してもよいが, サイズを変えることはできない. (よって, 実行時に後ろのバッファを保存して次回のコールバックで追加する, または再生速度を上げてサイズを小さくする等を行わない限りはリバーブ効果を掛けることはできない.)

`arg`ポインタはコールバックにそのまま渡され, コールバックが自由に使用できる(トラックの現在の状態, 設定など).

コールバックをNULLにすると, 新しいコールバックを設定するまでミックス後コールバックは無効になる.

コールバックは1つしか設定できない. 複数の入力をミックスする必要がある場合でも1つの関数で処理できるようにしなければならない.

バージョン

SDL_mixer 2.0.0以降

SDL Wikiへのリンク

SDL2_mixer/Mix_SetPostMix