midiOutCachePatches
The midiOutCachePatches
function requests that an internal MIDI synthesizer device preload and cache a
specified set of patches.
MMRESULT midiOutCachePatches(
HMIDIOUT hmo, |
|
UINT wBank, |
|
WORD * lpPatchArray, |
|
UINT wFlags |
|
); |
|
Parameters
hmo
Handle of the
opened MIDI output device. This device must be an internal MIDI synthesizer.
This parameter can also be the handle of a MIDI stream, cast to HMIDIOUT.
wBank
Bank of
patches that should be used. This parameter should be set to zero to cache the
default patch bank.
lpPatchArray
Address of a PATCHARRAY
wFlags
Options for
the cache operation. It can be one of the following flags:
MIDI_CACHE_ALL
Caches all of
the specified patches. If they cannot all be cached, it caches none, clears the
PATCHARRAY
MIDI_CACHE_BESTFIT
Caches all of
the specified patches. If they cannot all be cached, it caches as many patches
as possible, changes the PATCHARRAY array to reflect which patches were cached,
and returns MMSYSERR_NOMEM.
MIDI_CACHE_QUERY
Changes the PATCHARRAY
MIDI_UNCACHE
Uncaches the
specified patches and clears the PATCHARRAY array.
Return Values
Returns
MMSYSERR_NOERROR if successful or an error otherwise. Possible error values
include the following:
MMSYSERR_INVALFLAG |
The flag
specified by wFlags is invalid. |
MMSYSERR_INVALHANDLE |
The
specified device handle is invalid. |
MMSYSERR_INVALPARAM |
The array
pointed to by lpPatchArray is invalid. |
MMSYSERR_NOMEM |
The device
does not have enough memory to cache all of the requested patches. |
MMSYSERR_NOTSUPPORTED |
The
specified device does not support patch caching. |
Remarks
Some
synthesizers are not capable of keeping all patches loaded simultaneously and
must load data from disk when they receive MIDI program change messages.
Caching patches ensures that the specified patches are immediately available.
Each element
of the PATCHARRAY
This function
applies only to internal MIDI synthesizer devices. Not all internal
synthesizers support patch caching. To see if a device supports patch caching,
use the MIDICAPS_CACHE flag to test the dwSupport member of the MIDIOUTCAPS
structure filled by the midiOutGetDevCaps function.
See Also