Bagikan melalui


Struktur SYNTHCAPS (dmusprop.h)

Struktur SYNTHCAPS menentukan kemampuan synthesizer.

Sintaks

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

Anggota

Guid

Menentukan ID kelas untuk antarmuka driver miniport synthesizer.

Flags

Menentukan kemampuan umum driver. Anggota ini adalah bitfield yang nilainya nol atau bitwise ATAU dari satu atau beberapa bit bendera berikut:

SYNTH_PC_DLS

Driver mendukung koleksi sampel yang dapat diunduh (DLS Level 1).

SYNTH_PC_EXTERNAL

Synth mewakili koneksi ke perangkat keras eksternal.

SYNTH_PC_SOFTWARESYNTH

Driver mengimplementasikan synthesizer perangkat lunak.

SYNTH_PC_MEMORYSIZEFIXED

Ukuran memori yang diberikan dalam anggota MemorySize valid dan mewakili jumlah maksimum memori sampel dalam byte. Bendera ini biasanya diatur ketika memori sampel bukan memori sistem.

SYNTH_PC_GMINHARDWARE

Synth mendukung tataan suara MIDI Umum dalam perangkat keras.

SYNTH_PC_GSINHARDWARE

Synth mendukung tataan suara Roland GS dalam perangkat keras.

SYNTH_PC_REVERB

Synth mendukung reverb.

SYNTH_PC_DLS2

Driver mendukung koleksi sampel yang dapat diunduh (DLS Level 2).

SYNTH_PC_SYSTEMMEMORY

Synth dapat menggunakan memori sistem.

MemorySize

Menentukan jumlah memori sampel pada perangkat (dalam byte). Bidang ini harus berisi nilai SYNTH_PC_SYSTEMMEMORY jika perangkat menggunakan memori sistem untuk memori sampel tanpa batasan jumlah memori yang dialokasikan.

MaxChannelGroups

Menentukan jumlah maksimum grup saluran yang didukung driver ini. Setiap grup saluran mewakili satu set 16 saluran MIDI dan telah mengaitkannya dengan semua status yang akan disimpan perangkat keras MIDI, yang mencakup DLS, GM, GS, XG, atau informasi mode lainnya. Namun, unduhan DLS adalah per driver dan dapat digunakan oleh salah satu grup saluran. Ini mencegah membuang-buang memori dengan mengunduh beberapa salinan sampel DLS yang sama, satu per grup saluran.

MaxVoices

Menentukan jumlah maksimum suara yang didukung perangkat penyajian. Jika handler properti tidak dapat memberikan nomor yang valid untuk anggota ini, maka harus mengatur anggota ke (ULONG)-1.

MaxAudioChannels

Menentukan jumlah maksimum saluran audio yang didukung perangkat penyajian. Jika handler properti tidak dapat memberikan nomor yang valid untuk anggota ini, maka harus mengatur anggota ke (ULONG)-1.

EffectFlags

Menentukan efek yang mampu dihasilkan oleh perangkat penyajian. Anggota ini adalah bitfield yang nilainya adalah nol atau bitwise ATAU dari bit bendera berikut:

SYNTH_EFFECT_REVERB

Perangkat penyajian dapat menghasilkan efek gaung.

SYNTH_EFFECT_CHORUS

Perangkat penyajian dapat menghasilkan efek paduan suara.

SYNTH_EFFECT_DELAY

Perangkat rendering dapat menghasilkan efek penundaan.

Jika perangkat tidak mendukung kemampuan ini, atur anggota ini ke SYNTH_EFFECT_NONE (nol).

Description[128]

Berisi deskripsi teks perangkat. Anggota ini adalah array WCHAR yang berisi string yang dihentikan null (misalnya, "Microsoft MPU-401").

Keterangan

Permintaan get-property KSPROPERTY_SYNTH_CAPS menggunakan struktur SYNTHCAPS untuk mengambil kemampuan perangkat synthesizer dari driver miniport DMus.

SYNTH_CAPS mirip dengan struktur DMUS_PORTCAPS, yang dijelaskan dalam dokumentasi Microsoft Windows SDK.

Dalam driver sampel DMusUART di Windows Driver Kit (WDK), handler properti KSPROPERTY_SYNTH_CAPS mengatur anggota struktur SYNTHCAPS ke nilai berikut:

  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;

Dalam contoh ini, nilai 0xFFFFFFFF menunjukkan bahwa handler tidak memiliki cara untuk mengetahui batas MaxVoices dan MaxAudioChannels yang sebenarnya karena benar-benar tergantung pada sintesis eksternal apa pun yang kebetulan terhubung ke UART. Di tempat lain dalam kode, tetapi tidak ditampilkan dalam contoh sebelumnya, handler properti DMusUART menetapkan anggota Guid dari struktur SYNTHCAPS ke CLSID_MiniportDriverDMusUART atau CLSID_MiniportDriverDMusUARTCapture. Salah satu anggota Guid diatur ke tergantung pada apakah simpul target (jenis KSNODETYPE_SYNTHESIZER) untuk permintaan properti terletak pada jalur data yang menangani penyajian data atau menangkap data. Kedua ID kelas didefinisikan dalam file header Dmusicks.h.

Persyaratan

Persyaratan Nilai
Header dmusprop.h (termasuk Dmusprop.h)

Lihat juga

KSNODETYPE_SYNTHESIZER

KSPROPERTY_SYNTH_CAPS