DVSOUNDDEVICECONFIG
サウンド デバイス構成に関する情報の設定と取得に使用する。一度接続が確立すると、値は変更できない。接続の確立後、IDirectPlayVoiceClient::GetSoundDeviceConfig を呼び出すと、現在のサウンド デバイス設定を取得できる。
typedef struct {
DWORD dwSize;
DWORD dwFlags;
GUID guidPlaybackDevice;
LPDIRECTSOUND lpdsPlaybackDevice;
GUID guidCaptureDevice;
LPDIRECTSOUNDCAPTURE lpdsCaptureDevice;
HWND hwndAppWindow;
LPDIRECTSOUNDBUFFER lpdsMainBuffer;
DWORD dwMainBufferFlags;
DWORD dwMainBufferPriority;
} DVSOUNDDEVICECONFIG, *LPDVSOUNDDEVICECONFIG, *PDVSOUNDDEVICECONFIG;
メンバ
- dwSize
- この構造体を使用する前に、この構造体のサイズ (バイト単位) に設定する必要がある。
- dwFlags
- 次のフラグを組み合わせて指定する。
- DVSOUNDCONFIG_AUTOSELECT
- このフラグを指定すると、Microsoft® DirectPlay® Voice は、指定された録音デバイスのミキサでマイク ラインを自動的に選択 (またはミュート解除) しようとする。
- DVSOUNDCONFIG_HALFDUPLEX
- DirectPlay Voice を半二重モードで初期化する。半二重モードでは録音は行われない。全二重モードでサウンド システムの初期化が失敗した場合、システムによってこのフラグが設定される。
- DVSOUNDCONFIG_NORMALMODE
- DirectPlay Voice に、Microsoft® DirectSound® の通常モードを使用して DirectSound オブジェクトを初期化するように指示する。このフラグを指定しない場合、DirectSound オブジェクトは DirectSound の優先モードで初期化される。詳細については、「IDirectSound8::SetCooperativeLevel」の説明を参照すること。lpdsPlaybackDevice メンバに有効な DirectSound オブジェクトが指定された場合、このフラグは無視される。
- DVSOUNDCONFIG_SETCONVERSIONQUALITY
- CPU の使用量が増加する代わりに、高品質のオーディオを使用できる。
- DVSOUNDCONFIG_NORECVOLAVAILABLE
- 指定した録音デバイスでボリュームが制御できない場合、DirectPlay Voice によって設定される。開発者はこのフラグを設定できない。
- DVSOUNDCONFIG_NOFOCUS
- 音声アプリケーションは決してフォーカスを失わない。言い換えると、アプリケーションは決してサウンド キャプチャ デバイスを解放しない。このフラグの使用は推奨されない。
- DVSOUNDCONFIG_STRICTFOCUS
- 音声アプリケーションのウィンドウがフォアグラウンド ウィンドウでなくなると、音声アプリケーションはフォーカスを失う。
注 アプリケーションでは、どうしても必要な場合にのみ、DVSOUNDCONFIG_NOFOCUS または DVSOUNDCONFIG_STRICTFOCUS フラグを設定すること。通常は、いずれのフラグも設定しないデフォルトの動作を使用する。
- guidPlaybackDevice
- IDirectPlayVoiceClient::Connect メソッドでこの構造体を使用する場合、再生に使用するデバイスの GUID をこのメンバに指定する。lpdsPlaybackDevice メンバを使用する場合でも、この値を指定する必要がある。また、DirectSound が提供する次のデフォルト GUID を使用することもできる。
- DSDEVID_DefaultPlayback
- システムのデフォルト再生デバイス。
- DSDEVID_DefaultVoicePlayback
- デフォルト音声再生デバイス。
IDirectPlayVoiceClient::GetSoundDeviceConfig メソッドでこの構造体を使用した場合、再生に使用する実際のデバイス GUID がこのメンバに格納される。
- lpdsPlaybackDevice
- IDirectPlayVoiceClient::Connect メソッドでこの構造体を使用する場合、DirectPlay Voice で再生に使用する DirectSound オブジェクトを指定する。guidPlaybackDevice に指定する GUID は、このパラメータで指定したデバイスの作成に使用される GUID に一致する必要がある。DirectSound オブジェクトの作成時にデバイス指定で NULL を使用した場合、このメンバに DSDEVID_DefaultPlayback を指定する。
IDirectPlayVoiceClient::GetSoundDeviceConfig メソッドでこの構造体を使用した場合、DirectPlay Voice で使用される DirectSound オブジェクトへのポインタがこのメンバに格納される。このポインタは、Connect の呼び出しで指定されたオブジェクトへのポインタ、または新規作成され、初期化された DirectSound オブジェクトへのポインタである。この DirectSound オブジェクトを使用する場合は、ポインタを記憶し、DirectSound インターフェイスで AddRef を呼び出して参照カウントをインクリメントする必要がある。
- guidCaptureDevice
- IDirectPlayVoiceClient::Connect メソッドでこの構造体を使用する場合、キャプチャに使用するデバイスの GUID をこのメンバに指定する。lpdsCaptureDevice メンバを使用する場合でも、この値を指定する必要がある。DirectSoundCapture オブジェクトの作成時にデバイス指定で NULL を使用した場合、このメンバに DSDEVID_DefaultCapture を指定する。
IDirectPlayVoiceClient::GetSoundDeviceConfig メソッドでこの構造体を使用した場合、キャプチャに使用される実際のデバイス GUID がこのメンバに格納される。
- lpdsCaptureDevice
- IDirectPlayVoiceClient::Connect メソッドでこの構造体を使用する場合、DirectPlay Voice でキャプチャに使用する DirectSound オブジェクトをこのメンバに指定する。guidCaptureDevice に指定する GUID は、このパラメータで指定したデバイスの作成に使用される GUID に一致する必要がある。DirectPlay Voice で自動的に DirectSoundCapture オブジェクトを作成する場合は、このパラメータに NULL を指定する。
IDirectPlayVoiceClient::GetSoundDeviceConfig メソッドでこの構造体を使用した場合、DirectPlay Voice で使用される DirectSoundCapture オブジェクトへのポインタがこのメンバに格納される。このポインタは、Connect の呼び出しで指定されたオブジェクトへのポインタ、または新規作成され、初期化された DirectSoundCapture オブジェクトへのポインタである。この DirectSoundCapture オブジェクトを使用する場合は、ポインタを記憶し、IDirectSoundCapture8 インターフェイスで AddRef を呼び出して参照カウントをインクリメントする必要がある。DirectPlay Voice オブジェクトが半二重モードで動作している場合、このメンバは NULL になる。
- hwndAppWindow
- サウンド再生のフォーカスの決定に使用されるウィンドウのハンドルを設定する。DirectSound のフォーカスの詳細については、「IDirectSound8::SetCooperativeLevel」を参照すること。フォーカスに使用するウィンドウがない場合、GetDesktopWindow を使用してデスクトップ ウィンドウを使用する。
- lpdsMainBuffer
- IDirectSoundBuffer8 インターフェイスへのポインタ。このインターフェイスを使って、DirectPlay Voice のメイン バッファを作成する。NULL、またはユーザー作成の DirectSound バッファを指定できる。このメンバを NULL に設定すると、DirectPlay Voice はメイン音声バッファとして使用するバッファを作成する。ここでバッファを指定した場合、DirectPlay Voice はこのバッファをメインの音声バッファとして使用する。ユーザー作成のバッファには次の制限がある。
- バッファは、22Khz、16 ビット、モノラル フォーマットでなければならない。
- バッファの長さは、1 秒以上でなければならない。
- バッファは、DSBCAPS_GETCURRENTPOSITION2 および DSBCAPS_CTRL3D フラグを使用して作成されていなければならない。
- バッファはプライマリ バッファであってはならない。
- バッファは、DirectPlay Voice ソフトウェアに渡されるときに再生中であってはならない。
- バッファは、DirectPlay Voice ソフトウェアに渡されるときにロックされていてはならない。
- dwMainBufferFlags
- メイン バッファに対して Play を呼び出すと、IDirectSoundBuffer8::Play メソッドの dwFlags パラメータにこのメンバが直接渡される。このフィールドには、DSBPLAY_LOOPING フラグが自動的に追加される。詳細については、「IDirectSoundBuffer8::Play」の説明を参照すること。この構造体の lpdsMainBufferDesc メンバが NULL である場合、このパラメータは 0 に設定する必要がある。
- dwMainBufferPriority
- メイン バッファに対して Play を呼び出すと、IDirectSoundBuffer8::Play メソッドの dwPriority パラメータにこのメンバが直接渡される。詳細については、「IDirectSoundBuffer8::Play」の説明を参照すること。lpdsMainBufferDesc が NULL である場合、このメンバは 0 に設定する必要がある。
Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
ヘッダー : Dvoice8.h で宣言。