#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は、下記の値から選択します。
キャプチャバッファの先頭アドレス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 初版