Microsoft DirectX 8.0 (C++)

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 はこのバッファをメインの音声バッファとして使用する。ユーザー作成のバッファには次の制限がある。
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 で宣言。