midiOutCacheDrumPatches-Funktion (mmeapi.h)
Die midiOutCacheDrumPatches-Funktion fordert an, dass ein internes MIDI-Synthesizergerät einen angegebenen Satz schlüsselbasierter Schlagzeugpatches vorlädt und zwischenspeichert.
Syntax
MMRESULT midiOutCacheDrumPatches(
HMIDIOUT hmo,
UINT uPatch,
LPWORD pwkya,
UINT fuCache
);
Parameter
hmo
Handle für das geöffnete MIDI-Ausgabegerät. Dieses Gerät sollte ein interner MIDI-Synthesizer sein. Dieser Parameter kann auch der Handle eines MIDI-Streams sein, der in HMIDIOUT umgewandelt wird.
uPatch
Trommelpatchnummer, die verwendet werden soll. Dieser Parameter sollte auf null festgelegt werden, um den Standardtrommelpatch zwischenzuspeichern.
pwkya
Zeiger auf ein KEYARRAY-Array , das die Schlüsselnummern der angegebenen Perkussionspatches angibt, die zwischengespeichert oder nicht zwischengespeichert werden sollen.
fuCache
Optionen für den Cachevorgang. Es kann eines der folgenden Flags sein.
Wert | Bedeutung |
---|---|
MIDI_CACHE_ALL | Speichert alle angegebenen Patches zwischen. Wenn sie nicht alle zwischengespeichert werden können, werden keine zwischengespeichert, das KEYARRAY-Array gelöscht und MMSYSERR_NOMEM zurückgegeben. |
MIDI_CACHE_BESTFIT | Speichert alle angegebenen Patches zwischen. Wenn sie nicht alle zwischengespeichert werden können, werden so viele Patches wie möglich zwischengespeichert, das KEYARRAY-Array so geändert, dass es widerspiegelt, welche Patches zwischengespeichert wurden, und gibt MMSYSERR_NOMEM zurück. |
MIDI_CACHE_QUERY | Ändert das KEYARRAY-Array , um anzugeben, welche Patches derzeit zwischengespeichert werden. |
MIDI_UNCACHE | Hebt den Cache der angegebenen Patches auf und löscht das KEYARRAY-Array. |
Rückgabewert
Gibt MMSYSERR_NOERROR zurück, wenn erfolgreich oder andernfalls ein Fehler aufgetreten ist. Mögliche Fehlerwerte sind:
Rückgabecode | Beschreibung |
---|---|
|
Das von wFlags angegebene Flag ist ungültig. |
|
Das angegebene Gerätehandle ist ungültig. |
|
Das Array, auf das vom lpKeyArray-Array verwiesen wird, ist ungültig. |
|
Das Gerät verfügt nicht über genügend Arbeitsspeicher, um alle angeforderten Patches zwischenzuspeichern. |
|
Das angegebene Gerät unterstützt keine Patchzwischenspeicherung. |
Hinweise
Einige Synthesizer sind nicht in der Lage, alle Schlagzeug-Patches gleichzeitig geladen zu halten. Zwischenspeichern von Patches stellt sicher, dass die angegebenen Patches verfügbar sind.
Jedes Element des KEYARRAY-Arrays stellt einen der 128 tastenbasierten Perkussionspatches dar und verfügt über Bits für jeden der 16 MIDI-Kanäle, die den jeweiligen Patch verwenden. Das am wenigsten signifikante Bit stellt den physischen Kanal 0 und das wichtigste Bit den physischen Kanal 15 dar. Wenn beispielsweise der Patch für die Schlüsselnummer 60 von den physischen Kanälen 9 und 15 verwendet wird, wird Element 60 auf 0x8200 festgelegt.
Diese Funktion gilt nur für interne MIDI-Synthesizergeräte. Nicht alle internen Synthesizer unterstützen die Patchzwischenspeicherung. Um zu ermitteln, ob ein Gerät das Patchzwischenspeichern unterstützt, verwenden Sie das flag MIDICAPS_CACHE, um das dwSupport-Element der MIDIOUTCAPS-Struktur zu testen, die von der midiOutGetDevCaps-Funktion gefüllt wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | mmeapi.h (einschließlich Windows.h) |
Bibliothek | Winmm.lib |
DLL | Winmm.dll |