NNSSndArcStrmCallback

構文

#include <nnsys/snd.h>
typedef struct NNSSndArcStrmCallbackInfo
{
    int playerNo;
    int strmNo;
} NNSSndArcStrmCallbackInfo;
typedef struct NNSSndArcStrmCallbackParam
{
    int strmNo;
    u32 offset;
} NNSSndArcStrmCallbackParam;
typedef BOOL (*NNSSndArcStrmCallback)(
        NNSSndArcStrmCallbackStatus status,
        const NNSSndArcStrmCallbackInfo* info,
        NNSSndArcStrmCallbackParam* param,
        void* arg );

引数

status コールバックの状態です。
info コールバック情報構造体のポインタです。
param コールバックパラメータ構造体のポインタです。
arg ユーザー引数です。

返り値

返り値の意味は、コールバックの状態statusによって、異なります。 デフォルトの処理を行うためには、FALSEを返します。 個々のstatus毎の説明は、下記を参照してください。

説明

ストリーム再生中に、特定のタイミングで呼びだされるコールバック関数です。

このコールバック関数は、 NNS_SndArcStrmStartEx2関数、 NNS_SndArcStrmPrepareEx2関数 で登録されます。

コールバック関数は、特定のタイミングで呼びだされます。 どのタイミングで呼びだされたかは、 コールバックの状態statusで判定できます。 コールバックの状態statusは次の値を取ります。

表 . NNSSndArcStrmCallbackStatus

ラベル 説明
NNS_SND_ARC_STRM_CALLBACK_DATA_END ループ無しストリームのデータ供給がデータ終端に達した状態です。

コールバック情報構造体infoは、 コールバックの付加情報が格納された構造体です。 構造体のメンバの意味は、次の通りです。

表 . NNSSndArcStrmCallbackInfo

メンバ 説明
playerNo 現在再生に使用してるストリームプレイヤーの番号です。
strmNo 現在再生しているストリームの番号です。

コールバックパラメータ構造体paramの設定及び、関数の返り値の意味は、 コールバックの状態status毎に異なります。 個々のstatus毎の処理は、以下の説明を参照してください。

注意

将来、コールバックの状態statusの種類が増える可能性があります。 必ず、statusの値をチェックして、 無視する場合は、FALSEを返してください。

status毎の処理

NNS_SND_ARC_STRM_CALLBACK_DATA_END

コールバックパラメータ構造体paramのメンバ strmNoに次に再生するストリームデータのストリーム番号を入れて TRUEを返すと、指定したストリームデータを続けて再生します。 この時、コールバックパラメータ構造体paramのメンバoffsetに msec単位の再生開始オフセット位置を指定できます。

FALSEを返すと、データ供給を停止し、残りのバッファ再生後にストリームは停止します。

続けて再生する場合、前のストリームのデータフォーマットと、次に再生するデータのフォーマットが、 次の条件を全て満たしていなければ、継続再生に失敗します。

  • サンプリングレートが等しい。
  • サンプルフォーマットが共に8ビットPCMか、共に8ビットPCMでない。

参照

NNS_SndArcStrmStartEx2, NNS_SndArcStrmPrepareEx2

履歴

2004/11/26 初版