Microsoft DirectX 8.0 (C++)

DVCLIENTCONFIG

クライアントの実行時のパラメータを制御する。最初、IDirectPlayVoiceClient::Connect の呼び出しにこの構造体を使用し、パラメータの初期状態を設定する。接続の確立後、この構造体を取得するには IDirectPlayVoiceClient::GetClientConfig を呼び出す。この構造体を設定するには、IDirectPlayVoiceClient::SetClientConfig を使用する。

typedef struct {
    DWORD  dwSize;
    DWORD  dwFlags;
    LONG   lRecordVolume;
    LONG   lPlaybackVolume;
    DWORD  dwThreshold;
    DWORD  dwBufferQuality;
    DWORD  dwBufferAggressiveness;
    DWORD  dwNotifyPeriod;
} DVCLIENTCONFIG, *LPDVCLIENTCONFIG, *PDVCLIENTCONFIG;

メンバ

dwSize
この構造体を使用する前に、この構造体のサイズ (バイト単位) に設定する必要がある。
dwFlags
次のフラグの組み合わせ。
DVCLIENTCONFIG_AUTORECORDVOLUME
自動ゲイン制御をアクティブにする。Microsoft® DirectPlay® Voice では、自動ゲイン制御を使用して、サウンド カードでハードウェア入力ボリュームを自動調整し、入力レベルを最適にする。現在の入力ボリュームを調べるには、IDirectPlayVoiceClient::GetClientConfig を呼び出した後に lRecordVolume メンバを調べるか、DVMSG_INPUTLEVEL メッセージの lRecordVolume メンバを調べる。
DVCLIENTCONFIG_ECHOSUPPRESSION
エコー抑制モードをアクティブにする。このモードは、外部スピーカと高感度マイクによる構成で発生するエコーを減少させる。リモート プレーヤーの音声はローカル スピーカで再生されるが、マイクは自動的にミュートされる。ローカル プレーヤーが発信する場合、ローカル入力が停止するまで、リモート プレーヤーの音声の再生はバッファに格納される。ローカル入力が停止した後、再生が再開する。
DVCLIENTCONFIG_MUTEGLOBAL
メイン サウンド バッファの再生をミュートする。IDirectPlayVoiceClient::Create3DSoundBuffer を呼び出して作成されたサウンド バッファのみが再生される。
DVCLIENTCONFIG_PLAYBACKMUTE
すべての DirectPlay Voice 出力の再生をミュートし、再生を停止する。また、受信パケットの圧縮の復元も停止するため、CPU の使用量が減少する。このフラグが指定されている間、パケットは実質的に廃棄される。
DVCLIENTCONFIG_RECORDMUTE
マイクからの入力をミュートし、録音を停止する。また、圧縮も停止するため、CPU の使用量は減少する。

上記のフラグに加え、次のフラグのいずれか一方を設定するか、どちらも指定しないことで、転送方法を制御できる。

DVCLIENTCONFIG_AUTOVOICEACTIVATED
転送制御システムを自動音声をアクティブにするモードにする。このモードでは、音声をアクティブにする感度はシステムによって自動的に決定される。入力レベルは、入力信号に合わせて自動的に調整される。大部分のアプリケーションでは、この設定を使用する。このフラグは DVCLIENTCONFIG_MANUALVOICEACTIVATED フラグと互いに排他的である。
DVCLIENTCONFIG_MANUALVOICEACTIVATED
転送制御システムを手動音声をアクティブにするモードにする。このモードでは、入力レベルが dwThreshold メンバに指定されたレベルを超えると、音声の転送が開始される。入力レベルが指定レベルより下になると、転送は停止する。このフラグは DVCLIENTCONFIG_AUTOVOICEACTIVATED フラグと互いに排他的である。

DVCLIENTCONFIG_MANUALVOICEACTIVATED および DVCLIENTCONFIG_AUTOVOICEACTIVATED のどちらも指定しない場合、システムはプッシュツートーク モードで動作する。プッシュツートーク モードでは、有効なターゲットが指定されている限り、マイクからの入力は転送される。NULL ターゲットが設定されるか、現在のターゲットがセッションを離れるか、または現在のターゲットが破棄された場合、音声転送は停止する。

lRecordVolume
設定する録音のボリュームを示す値。有効な値については、「IDirectSoundBuffer8::SetVolume」メソッドを参照すること。

自動ゲイン制御が有効になっている場合、この値を DVRECORDVOLUME_LAST に設定できる。この場合、システムは、自動ゲイン制御アルゴリズムで決まった現在のボリュームを使用する。DVRECORDVOLUME_LAST 以外の値を指定して自動ゲイン制御に組み合わせた場合、指定した値でアルゴリズムが再開する。

IDirectPlayVoiceClient::GetClientConfig を呼び出すと、この値に現在の録音ボリュームが格納される。DirectPlay Voice では、録音ボリュームを調整するとき、マイクのボリューム (カード用のマイクのボリュームが存在する場合) およびマスタ録音ボリューム (カードに存在する場合) を調整する。マイクのボリュームとマスタ録音ボリュームがどちらも存在しない場合、DirectPlay Voice は録音ボリュームを調整できない。

lPlaybackVolume
設定する再生のボリュームを示す値。このボリュームを調整すると、メイン バッファとすべての 3D サウンド バッファが調整される。有効な値については、「IDirectSoundBuffer8::SetVolume」メソッドを参照すること。DVPLAYBACKVOLUME_DEFAULT を指定すると、ほとんどの状況に適したデフォルト値 (フル ボリューム) を使用できる。
dwThreshold
dwFlags メンバに DVCLIENTCONFIG_MANUALVOICEACTIVATED フラグを指定した場合に音声転送のトリガに使用される入力レベル。このフラグを指定した場合、DVTHRESHOLD_MIN から DVTHRESHOLD_MAX までの任意の値を指定できる。また、DVTHRESHOLD_DEFAULT を設定すると、デフォルト値を使用できる。

この構造体の dwFlags メンバに DVCLIENTCONFIG_MANUALVOICEACTIVATED または DVCLIENTCONFIG_AUTOVOICEACTIVATED を指定していない場合 (プッシュツートーク モードを示す)、この値は DVTHRESHOLD_UNUSED に指定する必要がある。

dwBufferQuality
適応バッファリング アルゴリズムのバッファ品質の設定。大部分のアプリケーションでは、DVBUFFERQUALITY_DEFAULT に設定する。DVBUFFERQUALITY_MIN から DVBUFFERQUALITY_MAX までの任意の値に設定できる。一般に、値が大きいほど音声の質は高くなるが、遅延時間は長くなる。値が小さいほど遅延時間は短くなるが、質は低下する。
dwBufferAggressiveness
適応バッファリング アルゴリズムのバッファの即応性の程度の設定。大部分のアプリケーションでは、DVBUFFERAGGRESSIVENESS_DEFAULT に設定できる。また、DVBUFFERAGGRESSIVENESS_MIN から DVBUFFERAGGRESSIVENESS_MAX までの任意の値に設定できる。一般に、値が大きいほど適応バッファリングは状況変化への対応が速くなる。値が小さいほど、適応バッファリングは状況変化への対応が遅くなる。
dwNotifyPeriod
DVMSGID_OUTPUTLEVEL メッセージと DVMSGID_INPUTLEVEL メッセージ (セッションが全二重である場合) を受け取る頻度を示す値。この値を 0 に設定した場合、メッセージは無効になる。メッセージ間の間隔をミリ秒単位で指定する。DVNOTIFYPERIOD_MINPERIOD を指定すると、メッセージ間で可能な最小時間が設定される。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : Dvoice8.h で宣言。