Функция midiOutCachePatches (mmeapi.h)
Функция midiOutCachePatches запрашивает , чтобы внутреннее устройство синтезатора MIDI предварительно загрузить и кэшировать указанный набор исправлений.
Синтаксис
MMRESULT midiOutCachePatches(
HMIDIOUT hmo,
UINT uBank,
LPWORD pwpa,
UINT fuCache
);
Параметры
hmo
Дескриптор для открытого устройства вывода MIDI. Это устройство должно быть внутренним синтезатором MIDI. Этот параметр также может быть дескриптором потока MIDI, приведения к HMIDIOUT.
uBank
Банк исправлений, которые следует использовать. Для этого параметра необходимо задать нулевое значение, чтобы кэшировать банк исправлений по умолчанию.
pwpa
Указатель на массив PATCHARRAY , указывающий исправления для кэширования или некэширования.
fuCache
Параметры операции кэша. Это может быть один из следующих флагов.
Значение | Значение |
---|---|
MIDI_CACHE_ALL | Кэширует все указанные исправления. Если все они не могут быть кэшироваться, он не кэширует их, очищает массив PATCHARRAY и возвращает MMSYSERR_NOMEM. |
MIDI_CACHE_BESTFIT | Кэширует все указанные исправления. Если они не могут быть кэшированы, он кэширует как можно больше исправлений, изменяет массив PATCHARRAY в соответствии с тем, какие исправления кэшировались, и возвращает MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | Изменяет массив PATCHARRAY , чтобы указать, какие исправления кэшируются в данный момент. |
MIDI_UNCACHE | Удаляет указанные исправления и очищает массив PATCHARRAY. |
Возвращаемое значение
Возвращает MMSYSERR_NOERROR в случае успешного выполнения или ошибку в противном случае. Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Недопустимый флаг , указанный wFlags . |
|
Указанный дескриптор устройства недопустим. |
|
Недопустимый массив, на который указывает lpPatchArray . |
|
У устройства недостаточно памяти для кэширования всех запрошенных исправлений. |
|
Указанное устройство не поддерживает кэширование исправлений. |
Комментарии
Некоторые синтезаторы не способны сохранять все исправления, загруженные одновременно, и должны загружать данные с диска при получении сообщений об изменении программы MIDI. Кэширование исправлений гарантирует, что указанные исправления будут немедленно доступны.
Каждый элемент массива PATCHARRAY представляет одно из 128 исправлений и имеет биты, заданные для каждого из 16 КАНАЛОВ MIDI, использующих конкретное исправление. Наименьший бит представляет физический канал 0, а самый значительный — физический канал 15 (0x0F). Например, если в физических каналах 0 и 8 используется исправление 0, для элемента 0 будет задано значение 0x0101.
Эта функция применяется только к внутренним устройствам синтезатора MIDI. Не все внутренние синтезаторы поддерживают кэширование исправлений. Чтобы узнать, поддерживает ли устройство кэширование исправлений, используйте флаг MIDICAPS_CACHE для тестирования члена dwSupport структуры MIDIOUTCAPS , заполненной функцией midiOutGetDevCaps .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | mmeapi.h (включая Windows.h) |
Библиотека | Winmm.lib |
DLL | Winmm.dll |