midiOutCachePatches-Funktion (mmeapi.h)
Die midiOutCachePatches-Funktion fordert an, dass ein internes MIDI-Synthesizer-Gerät einen angegebenen Satz von Patches vorlädt und zwischenspeichert.
Syntax
MMRESULT midiOutCachePatches(
HMIDIOUT hmo,
UINT uBank,
LPWORD pwpa,
UINT fuCache
);
Parameter
hmo
Handle für das geöffnete MIDI-Ausgabegerät. Dieses Gerät muss ein interner MIDI-Synthesizer sein. Dieser Parameter kann auch der Handle eines MIDI-Streams sein, der in HMIDIOUT umgewandelt wird.
uBank
Bank von Patches, die verwendet werden sollten. Dieser Parameter sollte auf Null festgelegt werden, um die Standardpatchbank zwischenzuspeichern.
pwpa
Zeiger auf ein PATCHARRAY-Array , das die patches 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 PATCHARRAY-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 PATCHARRAY-Array geändert, um anzugeben, welche Patches zwischengespeichert wurden, und gibt MMSYSERR_NOMEM zurück. |
MIDI_CACHE_QUERY | Ändert das PATCHARRAY-Array , um anzugeben, welche Patches derzeit zwischengespeichert werden. |
MIDI_UNCACHE | Hebt den Cache der angegebenen Patches auf und löscht das PATCHARRAY-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 von lpPatchArray 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 können nicht alle Patches gleichzeitig geladen lassen und müssen Daten vom Datenträger laden, wenn sie MIDI-Programmänderungsmeldungen empfangen. Zwischenspeichern von Patches stellt sicher, dass die angegebenen Patches sofort verfügbar sind.
Jedes Element des PATCHARRAY-Arrays stellt einen der 128 Patches 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 (0x0F) dar. Wenn Patch 0 beispielsweise von den physischen Kanälen 0 und 8 verwendet wird, wird Element 0 auf 0x0101 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 |