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) |