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