KSPROPERTY
KSPROPERTY 構造体は IKsControl::KsProperty メソッドに渡され、プロパティと操作を識別する。
KSPROPERTY は KSIDENTIFIER 構造体として定義され、次のように宣言される。
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 で宣言。
参照
ポートのプロパティ セット