typedef void (SDLCALL *MIX_PostMixCallback)(void *userdata, MIX_Mixer *mixer, const SDL_AudioSpec *spec, float *pcm, int samples);
| void * | userdata | 私的な利用のためにコールバックに渡された不透明ポインタ |
| MIX_Mixer * | mixer | オーディオを生成するミキサー |
| const SDL_AudioSpec * | spec | pcmのデータ形式 |
| float * | pcm | 32ビット浮動小数点形式の無圧縮PCMデータ |
| int | samples | pcmの浮動小数点の値の数 |
このコールバックはミキサーが全ての処理を完了した時点で呼ばれる. ミキサーがMIX_CreateMixerDevice()で生成されたものならば, このコールバックが渡したデータが形式の変換を除けば最終的にオーディオハードウェアに送られるデータである. ミキサーがMIX_CreateMixer()で生成されたものならば, これが最後の変換の後でMIX_Generate()の出力となる.
このコールバックに渡されたオーディオデータは定数データではない. アプリケーションは自由に変更することができ, その変更は最終的なミキサーパイプラインの出力に置き換えられる.
オーディオデータ形式が提供される.
SDL_mixerは入力や最終的な出力が浮動小数点でない場合でも常に32ビット浮動小数点でミキシング処理を行う.
そのため, spec->formatは常にSDL_AUDIO_F32で, pcmは浮動小数点でハードコードされている.
samplesはpcmの浮動小数点の値の数で, サンプルフレーム数ではない.
一度のコールバックでのサンプルの数には保証がなく, その数は様々な要因により呼び出しのたびに大きく変化する可能性がある.