Microsoft DirectX 8.0 (C++) |
キャプチャ バッファのサイズを取得するには、IDirectSoundCaptureBuffer8::GetCaps メソッドを使う。この構造体をパラメータとして渡す前に、DSCBCAPS 構造体の dwSize メンバを初期化しておかなければならない。
バッファ作成時に設定された、バッファ内のデータ形式の情報を取得することもできる。IDirectSoundCaptureBuffer8::GetFormat メソッドを呼び出すと、このメソッドは WAVEFORMATEX 構造体を使ってフォーマット情報を返す。
lpwfxFormat パラメータで NULL を指定して GetFormat メソッドを最初に呼び出すことにより、アプリケーションが WAVEFORMATEX 構造体を通して追加のフォーマット情報を入手できる点に注意すること。この場合、lpdwSizeWritten パラメータが指す DWORD が、完全なフォーマット情報を受け取るのに必要な構造体のサイズを受け取る。
キャプチャ バッファが現在行っていることを把握するには、IDirectSoundCaptureBuffer8::GetStatus メソッドを呼び出す。このメソッドはフラグの組み合わせを変数 DWORD に書き込むが、そのフラグはバッファがキャプチャリングでビジーであるかどうか、ビジーの場合はループしているかどうか (つまり IDirectSoundCaptureBuffer8::Start を直前に呼び出した時点で DSCBSTART_LOOPING フラグを設定していたか) を示す。
最後に、IDirectSoundCaptureBuffer8::GetCurrentPosition メソッドは、バッファ内での現在の読み込みカーソルとキャプチャ カーソルのオフセットを返す。読み込みカーソルは、この時点で完全にキャプチャされてバッファに置かれたデータの最後である。キャプチャ カーソルは、現在ハードウェアからコピーされている最中のデータ ブロックの最後である。バッファから安全にコピーできるのは読み込みカーソルまでのデータのみである。