Platform SDK: DirectX

KSPROPERTY

KSPROPERTY 構造体は IKsControl::KsProperty メソッドに渡され、プロパティと操作を識別する。

KSPROPERTYKSIDENTIFIER 構造体として定義され、次のように宣言される。

typedef struct {
    union {
        struct {
            GUID   Set;
            ULONG  Id;
            ULONG  Flags;
        };
        LONGLONG    Alignment;
    };
} KSIDENTIFIER, *PKSIDENTIFIER;

メンバ

Set
プロパティ セットの識別子。以下のプロパティセット GUID は、DirectMusic によって事前に定義されている。
GUID_DMUS_PROP_DLS1
項目 0 は、このポートが DLS サンプルのダウンロードをサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_Effects
項目 0 は、DMUS_EFFECT_NONE または 1 つ以上のエフェクト フラグを含む (「DMUS_PORTCAPS」の「dwEffectFlags メンバ」を参照)。このプロパティを使って、エフェクトの現在の状態を設定または取得する。
GUID_DMUS_PROP_GM_Hardware
項目 0 は、このポートがハードウェア内で GM をサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_GS_Capable
項目 0 は、このポートが Roland GS 拡張の最低要件をサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_GS_Hardware
項目 0 は、このポートがハードウェア内で Roland GS 拡張をサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_LegacyCaps
項目 0 は、このポートを実装している基盤の Windows マルチメディア デバイスを記述する MIDIINCAPS 構造体または MIDIOUTCAPS 構造体である。このポートの能力の構造体で dwClass が DMUS_PC_INPUTCLASS の場合、MIDIINCAPS 構造体が返される。それ以外の場合は MIDIOUTCAPS 構造体が返される。
GUID_DMUS_PROP_MemorySize
項目 0 は、このデバイス上でサンプル RAM が何バイト利用できるかを示すブール値である。
GUID_DMUS_PROP_SynthSink_DSOUND
項目 0 は、このポートが DirectSound をサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_SynthSink_WAVE
項目 0 は、このポートが waveOut 関数を使ってウェーブ出力をサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_Volume
項目 1 (DMUS_ITEM_Volume) は、DMUS_VOLUME_MAX 〜 DMUS_VOLUME_MIN の範囲の LONG である。符号付きの値で、1/100dB 単位で表す。この値は、すべての DLS アーティキュレーションが実行された後に、すべての発音のゲインに追加される。デフォルトでは、ポートをパフォーマンスに追加するとき、このプロパティはマスタ ボリュームに設定される。マスタ ボリュームについては、「グローバル パラメータの設定と取り出し」を参照すること。
GUID_DMUS_PROP_WavesReverb
項目 0 は、リバーブ パラメータを保持する DMUS_WAVES_REVERB_PARAMS 構造体である。
GUID_DMUS_PROP_WriteLatency
項目 0 はユーザーモード シンセサイザ (DMUS_PORTCAPS 構造体の dwType メンバは DMUS_PORT_USER_MODE_SYNTH) の書き込み遅延時間である。ユーザーモード シンセサイザは、その出力を DirectSound にストリーム化する。書き込み遅延時間とは、シンセサイザがサウンド バッファを作成してから、それが聞こえるまでの遅延時間を意味する。この値を調整することにより、アプリケーションはシンセサイザをより詳細にチューニングし、サウンドの分断のない最小遅延時間を設定できる。一部のコンピュータ、特に、DirectSound のハードウェア サポートのないコンピュータの場合、初期遅延時間は他のコンピュータより非常に長くなる。そのため、値は常に最初に読み込まれるようにし、相対値を使って調整しなければならない。書き込み遅延時間は、各ポート インスタンスについて異なる値を持つことができる。このプロパティは、ポートをアクティブ化するたびに設定しなければならない。
GUID_DMUS_PROP_WritePeriod
項目 0 はユーザーモード シンセサイザ (DMUS_PORTCAPS 構造体の dwType メンバは DMUS_PORT_USER_MODE_SYNTH) の書き込み期間である。ユーザーモード シンセサイザは、その出力を DirectSound にストリーム化する。書き込み期間は、シンセサイザ シンクがシンセサイザのミキシングを許可する頻度を制御する。この値を減らすことによって、アプリケーションはシンセサイザの全体的な遅延時間を短縮できる。ただし、10 ミリ秒 (ms) より小さい値を指定すると、CPU の負荷が増加する。書き込み期間は、標準的な DirectSound シンクを使うすべてのポート インスタンスについて同じ値を持つ。このプロパティは、ポートをアクティブ化するたびに設定しなければならない。
GUID_DMUS_PROP_XG_Capable
項目 0 は、このポートが Yamaha XG 拡張の最低要件をサポートするかどうかを示すブール値である。
GUID_DMUS_PROP_XG_Hardware
項目 0 は、このポートがハードウェア内で Yamaha XG 拡張をサポートするかどうかを示すブール値である。
Id
プロパティ セット内の項目。
Flags
次のいずれかのフラグを使って、操作を指定する。
KSPROPERTY_TYPE_GET
指定されたプロパティ項目の値を取り出す。
KSPROPERTY_TYPE_SET
指定されたプロパティ項目の値を設定する。
KSPROPERTY_TYPE_BASICSUPPORT
プロパティ セット用に利用できるサポートのタイプを決定する。IKsControl::KsProperty*pvPropertyData に返すデータは、KSPROPERTY_TYPE_GET と KSPROPERTY_TYPE_SET のどちらか、または両方を含む DWORD である。これは、その操作が可能であるかを示す。
Alignment
DirectMusic では使われない。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmksctrl.h で宣言。

参照

ポートのプロパティ セット