次の方法で共有


SYNTHCAPS 構造体 (dmusprop.h)

SYNTHCAPS 構造体は、シンセサイザーの機能を指定します。

構文

typedef struct _SYNTHCAPS {
  GUID  Guid;
  DWORD Flags;
  DWORD MemorySize;
  DWORD MaxChannelGroups;
  DWORD MaxVoices;
  DWORD MaxAudioChannels;
  DWORD EffectFlags;
  WCHAR Description[128];
} SYNTHCAPS, *PSYNTHCAPS;

メンバーズ

Guid

シンセサイザーのミニポート ドライバー インターフェイスのクラス ID を指定します。

Flags

ドライバーの一般的な機能を指定します。 このメンバーは、値が 0 または次のフラグ ビットの 1 つ以上のビットごとの OR であるビットフィールドです。

SYNTH_PC_DLS

ドライバーは、ダウンロード可能なサンプル コレクション (DLS レベル 1) をサポートしています。

SYNTH_PC_EXTERNAL

シンセは、外部ハードウェアへの接続を表します。

SYNTH_PC_SOFTWARESYNTH

ドライバーは、ソフトウェア シンセサイザーを実装します。

SYNTH_PC_MEMORYSIZEFIXED

MemorySize メンバーに指定されたメモリ サイズは有効であり、サンプル メモリの最大量 (バイト単位) を表します。 通常、このフラグは、サンプル メモリがシステム メモリでない場合に設定されます。

SYNTH_PC_GMINHARDWARE

シンセは、ハードウェアに設定された一般的なMIDIサウンドをサポートしています。

SYNTH_PC_GSINHARDWARE

シンセは、ハードウェアでローランドGSサウンドセットをサポートしています。

SYNTH_PC_REVERB

シンセはリバーブをサポートしています。

SYNTH_PC_DLS2

ドライバーは、ダウンロード可能なサンプル コレクション (DLS レベル 2) をサポートしています。

SYNTH_PC_SYSTEMMEMORY

シンセは、システムメモリを使用することができます。

MemorySize

デバイス上のサンプル メモリの量をバイト単位で指定します。 このフィールドには、デバイスがサンプル メモリにシステム メモリを使用し、割り当てられたメモリの量に制限がない場合にSYNTH_PC_SYSTEMMEMORY値を含める必要があります。

MaxChannelGroups

このドライバーがサポートするチャネル グループの最大数を指定します。 各チャネル グループは 16 個の MIDI チャンネルのセットを表し、DLS、GM、GS、XG、またはその他のモード情報を含む MIDI ハードウェア デバイスが保持するすべての状態に関連付けられています。 ただし、DLS のダウンロードはドライバーごとに行われ、どのチャネル グループでも使用できます。 これにより、同じ DLS サンプルの複数のコピー (チャネル グループごとに 1 つ) をダウンロードすることで、メモリの無駄を防ぐことができます。

MaxVoices

レンダリング デバイスがサポートする音声の最大数を指定します。 プロパティ ハンドラーがこのメンバーの有効な番号を指定できない場合は、メンバーを (ULONG)-1 に設定する必要があります。

MaxAudioChannels

レンダリング デバイスがサポートするオーディオ チャネルの最大数を指定します。 プロパティ ハンドラーがこのメンバーの有効な番号を指定できない場合は、メンバーを (ULONG)-1 に設定する必要があります。

EffectFlags

レンダリング デバイスが生成できる効果を指定します。 このメンバーは、値が 0 または次のフラグ ビットのビットごとの OR であるビットフィールドです。

SYNTH_EFFECT_REVERB

レンダリング デバイスはリバーブ効果を生成できます。

SYNTH_EFFECT_CHORUS

レンダリングデバイスは、コーラス効果を生成することができます。

SYNTH_EFFECT_DELAY

レンダリング デバイスでは、遅延効果が生じる可能性があります。

デバイスでこれらの機能がサポートされていない場合は、このメンバーを SYNTH_EFFECT_NONE (ゼロ) に設定します。

Description[128]

デバイスのテキストの説明が含まれています。 このメンバーは、null で終わる文字列 ("Microsoft MPU-401" など) を含む WCHAR 配列です。

備考

KSPROPERTY_SYNTH_CAPS get-property 要求では、SYNTHCAPS 構造体を使用して、DMus ミニポート ドライバーからシンセサイザー デバイスの機能を取得します。

SYNTH_CAPSは、Microsoft Windows SDK ドキュメントで説明されているDMUS_PORTCAPS構造に似ています。

Windows Driver Kit (WDK) の DMusUART サンプル ドライバーでは、KSPROPERTY_SYNTH_CAPS プロパティ ハンドラーによって、SYNTHCAPS 構造体のメンバーが次の値に設定されます。

  SYNTHCAPS *caps = (SYNTHCAPS*)pRequest->Value;
  ...
  caps->Flags              = SYNTH_PC_EXTERNAL;
  caps->MemorySize         = 0;         
  caps->MaxChannelGroups   = 1;
  caps->MaxVoices          = 0xFFFFFFFF;  // (ULONG)-1
  caps->MaxAudioChannels   = 0xFFFFFFFF;  // (ULONG)-1
  caps->EffectFlags        = 0;

この例では、0xFFFFFFFF値は、ハンドラーが MaxVoices MaxAudioChannels の実際の を知る方法がないことを示します。これは、外部シンセサイザーが UART に接続される場合に発生するあらゆる外部シンセサイザーに完全に依存するためです。 コード内の他の場所では、前の例では示されていませんが、DMusUART プロパティ ハンドラーは、SYNTHCAPS 構造体の Guid メンバーを CLSID_MiniportDriverDMusUART または CLSID_MiniportDriverDMusUARTCaptureに設定します。 Guid メンバーが設定されているのは、プロパティ要求のターゲット ノード (KSNODETYPE_SYNTHESIZER型) が、レンダリング データを処理するデータ パス上にあるか、データをキャプチャするかによって異なります。 どちらのクラス ID もヘッダー ファイル Dmusicks.h で定義されています。

必要条件

要件 価値
ヘッダー dmusprop.h (Dmusprop.h を含む)

関連項目

KSNODETYPE_SYNTHESIZER

KSPROPERTY_SYNTH_CAPS