Baca dalam bahasa Inggris

Bagikan melalui


Struktur SYNTHCAPS (dmusprop.h)

Struktur SYNTHCAPS menentukan kemampuan synthesizer.

Sintaksis

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 adalah nol atau bitwise ATAU dari satu atau beberapa bit bendera berikut:

SYNTH_PC_DLS

Driver mendukung koleksi sampel yang dapat diunduh (DLS Tingkat 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 set suara MIDI Umum dalam perangkat keras.

SYNTH_PC_GSINHARDWARE

Synth mendukung set 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 mengaitkan 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 suara maksimum 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 rendering dapat menghasilkan efek reverb.

SYNTH_EFFECT_CHORUS

Perangkat rendering 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 null-terminated (misalnya, "Microsoft MPU-401").

Komentar

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 MaxVoices yang sebenarnya dan MaxAudioChannels batas karena mereka sepenuhnya bergantung pada sintesis eksternal apa pun yang kebetulan terhubung ke UART. Di tempat lain dalam kode, tetapi tidak ditampilkan dalam contoh sebelumnya, handler properti DMusUART mengatur Guid anggota 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 mengambil data. Kedua ID kelas ditentukan dalam file header Dmusicks.h.

Persyaratan

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

Lihat juga

KSNODETYPE_SYNTHESIZER

KSPROPERTY_SYNTH_CAPS