目次 - SDL 3.0 API(機能別) - 再生と録音 - SDL_AudioStreamDataCompleteCallback

SDL_AudioStreamDataCompleteCallback

SDL_PutAudioStreamDataNoCopy()のデータが完了したとき呼ばれるコールバックの型

ヘッダ

SDL3/SDL_audio.h

構文

typedef void (SDLCALL *SDL_AudioStreamDataCompleteCallback)(void *userdata, const void *buf, int buflen);

引数

void *userdataアプリケーションが自身の使用のためにSDL_PutAudioStreamDataNoCopy()に渡したポインタ
const void *bufSDL_PutAudioStreamDataNoCopy()に渡したポインタ
intbuflenSDL_PutAudioStreamDataNoCopy()に渡したバッファのバイト数

詳細

SDL_PutAudioStreamDataNoCopy()でSDL_AudioStreamにデータを与えた場合, ストリームが完全にデータを消費する前に破棄するのは安全ではない. その場合, しばしば予測困難な問題が発生する.

このコールバックは, アプリケーションがバッファの解放や再利用をしやすくするため, ストリームがバッファを必要としなくなったとき呼ばれる.

スレッドセーフ

このコールバックはあらゆるスレッドで動作しうる. よって, 共通データを保護する必要がある場合は, SDL_LockAudioStreamでロックして直列化する必要がある. このロックはコールバックが呼ばれる前に行われるため, コールバック内で明示的にロックする必要はない.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_AudioStreamDataCompleteCallback - SDL Wiki