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つの関数で処理できるようにしなければならない.