NNS_SndHeapAlloc

構文

#include <nnsys/snd.h>
typedef void (*NNSSndHeapDisposeCallback)( void* mem, u32 size, u32 data1, u32 data2 );
void* NNS_SndHeapAlloc(
        NNSSndHeapHandle heap,
        u32 size,
        NNSSndHeapDisposeCallback callback,
        u32 data1,
        u32 data2 );

引数

heap サウンドヒープハンドルです。
size 確保するメモリサイズです。
callback メモリブロックが解放されるときに呼びだされるコールバック関数です。
data1, data2 コールバック関数の引数用のユーザーデータです。

返り値

確保したメモリブロックの先頭アドレスを返します。確保に失敗すると、NULLを返します。

説明

サウンドヒープからメモリを確保します。確保されたメモリブロックの先頭アドレスは、32バイトアライメントされます。

各メモリブロックには、管理領域が必要になります。そのため実際には、確保するメモリサイズsize よりも、少し大きな空き容量が必要になります。空き容量が足りない場合は、関数は失敗します。

コールバック関数callbackは、 NNS_SndHeapClear関数または、 NNS_SndHeapLoadState関数によって、 メモリブロックが解放されたときに呼びだされます。 コールバック関数の引数には、メモリブロックの先頭アドレスmem、メモリブロックのサイズsize、 ユーザーデータdata1data2が渡されます。 コールバック関数が不要の時は、callbackにNULLを入れます。

参照

NNS_SndHeapClear, NNS_SndHeapLoadState

履歴

2007/04/24 アライメントに関する説明追加
2004/06/01 初版