SND_SetupCapture

構文

#include <nitro/snd.h>
void SND_SetupCapture(
        SNDCapture capture,
        SNDCaptureFormat format,
        void* buffer_p,
        u32 length,
        BOOL loopFlag,
        SNDCaptureIn in,
        SNDCaptureOut out );

引数

capture キャプチャ識別子です。
format キャプチャデータのフォーマットです。
buffer_p キャプチャバッファの先頭アドレスです。4バイトアライメントされている必要があります。
length キャプチャバッファ長です。ワード単位で、値の範囲は、0〜0xffffです。
loopFlag ループフラグです。
in キャプチャ入力です。
out キャプチャ出力です。

返り値

なし。

説明

キャプチャのセットアップを行います。

キャプチャの周波数は、対応するチャンネルのタイマーで設定します。 対応するチャンネルは、SND_LockChannel() で ロックした上、 SND_SetChannelTimer() などで、 タイマーをセットします。 キャプチャを開始するためには、 SND_StartTimer() を使います。

キャプチャ識別子captureは、以下の値から選択します。

表 . SNDCapture

ラベル 説明
SND_CAPTURE_0 キャプチャー0です。Lミキサーまたはチャンネル0の出力をキャプチャします。タイマーはチャンネル1と共通です。
SND_CAPTURE_1 キャプチャー1です。Rミキサーまたはチャンネル2の出力をキャプチャします。タイマーはチャンネル3と共通です。

キャプチャデータのフォーマットformatは、下記の値から選択します。

表 . SNDCaptureFormat

ラベル 説明
SND_CAPTURE_FORMAT_PCM8 8ビットPCM
SND_CAPTURE_FORMAT_PCM16 16ビットPCM

キャプチャバッファの先頭アドレスbuffer_pは、4バイトアライメントされている必要があります。 キャプチャバッファ長lengthは、ワード単位で指定します。

ループフラグloopFlagをTRUEにすると、 キャプチャバッファの終端までキャプチャすると、バッファの先頭からキャプチャを続けます。 FALSEにすると、キャプチャバッファの終端までキャプチャすると、自動的にキャプチャは停止します。

キャプチャ入力inは、下記の値から選択します。

表 . SNDCaptureIn

ラベル 説明
SND_CAPTURE_IN_MIXER LミキサーまたはRミキサーの出力をキャプチャします。
SND_CAPTURE_IN_CHANNEL チャンネル加算器の出力をキャプチャします。

キャプチャ出力outは、下記の値から選択します。

表 . SNDCaptureOut

ラベル 説明
SND_CAPTURE_OUT_NORMAL チャンネル1または3の出力を、通常出力に送ります。
SND_CAPTURE_OUT_CHANNEL_MIX チャンネル1または3の出力を、それぞれのチャンネル加算器へ送ります。(通常出力にも送られます。)

注意

チャンネル加算器の出力をキャプチャするロジックには不具合があり、 正常にキャプチャできません。詳しくは、「NITROプログラミングマニュアル」をご覧下さい。

この関数は、ARM7コマンド予約関数です。 この関数を呼びだした後、 SND_FlushCommand() で コマンドを発行して始めて、処理が行われます。

また、処理の完了と同期を取る必要がある場合は、 まず、この関数呼び出しの直後に、 SND_GetCurrentCommandTag() で、コマンドタグを取得しておきます。 そしてコマンド発行後に、取得したコマンドタグを使って SND_IsFinishedCommandTag() または、 SND_WaitForCommandProc() を呼びだして、 処理の完了をチェックしたり、待ったりします。

参照

SND_LockChannel, SND_SetChannelTimer, SND_StartTimer, SND_FlushCommand, SND_GetCurrentCommandTag, SND_IsFinishedCommandTag, SND_WaitForCommandProc

履歴

2005/06/13 NITROプログラミングマニュアル改訂に伴う修正
2005/02/17 ARM7コマンド処理の注意書き追加
2005/01/06 TEGに関する記述削除
2004/07/20 初版