目次 - SDL_mixer 3.0 - MIX_SetTrackCookedCallback

MIX_SetTrackCookedCallback

ミキサーがトラックのオーディオを変換したとき呼ばれるコールバックを設定する

ヘッダ

SDL3_mixer/SDL_mixer.h

構文

bool MIX_SetTrackCookedCallback(MIX_Track *track, MIX_TrackMixCallback cb, void *userdata);

引数

MIX_Group *groupコールバックを割り付けるミキシンググループ
MIX_TrackMixCallbackcbトラックがミックスされたとき呼ばれる関数. NULLも可
void *userdata私的な利用のためにコールバックに渡される不透明ポインタ

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

トラックがミックスするための追加のデータが必要になると, 入力(MIX_AudioSDL_AudioStreamなど)からプルする. 入力はMP3のような圧縮ファイルの形式の場合があり, そこから少し多めにデータが展開される.

トラックが処理を開始するためのPCMデータを得て, 無圧縮PCMコールバックが完了すると, オーディオのゲイン, フェード, 周波数倍率, 3D位置などの変換が開始される.

このコールバックが呼ばれるのは, これらの変換が全て行われた後だが, 変換されたデータが他のトラックとミックスされる前である. これでアプリケーションはまだトラックの一部にあるデータの最後の状態を見ることができる. このコールバックでデータを編集することもでき, ミキサーはこのデータが入力から来たかのように処理を続ける.

トラックにはそれぞれ別の変換後コールバックを設定することができる.

コールバックにNULLを渡してもよい. これはグループのコールバックを無効にする.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL_image 3.0.0以降

関連項目

SDL Wikiへのリンク

SDL3_mixer/MIX_SetTrackCookedCallback