bool MIX_SetTrackCookedCallback(MIX_Track *track, MIX_TrackMixCallback cb, void *userdata);
| MIX_Group * | group | コールバックを割り付けるミキシンググループ |
| MIX_TrackMixCallback | cb | トラックがミックスされたとき呼ばれる関数. NULLも可 |
| void * | userdata | 私的な利用のためにコールバックに渡される不透明ポインタ |
トラックがミックスするための追加のデータが必要になると, 入力(MIX_AudioやSDL_AudioStreamなど)からプルする. 入力はMP3のような圧縮ファイルの形式の場合があり, そこから少し多めにデータが展開される.
トラックが処理を開始するためのPCMデータを得て, 無圧縮PCMコールバックが完了すると, オーディオのゲイン, フェード, 周波数倍率, 3D位置などの変換が開始される.
このコールバックが呼ばれるのは, これらの変換が全て行われた後だが, 変換されたデータが他のトラックとミックスされる前である. これでアプリケーションはまだトラックの一部にあるデータの最後の状態を見ることができる. このコールバックでデータを編集することもでき, ミキサーはこのデータが入力から来たかのように処理を続ける.
トラックにはそれぞれ別の変換後コールバックを設定することができる.
コールバックにNULLを渡してもよい. これはグループのコールバックを無効にする.
この関数はどのスレッドからも安全に呼べる.