Share via


Función midiOutCacheDrumPatches (mmeapi.h)

La función midiOutCacheDrumPatches solicita que un dispositivo de sintetizador MIDI interno precargue y almacene en caché un conjunto especificado de revisiones de percusión basadas en claves.

Sintaxis

MMRESULT midiOutCacheDrumPatches(
  HMIDIOUT hmo,
  UINT     uPatch,
  LPWORD   pwkya,
  UINT     fuCache
);

Parámetros

hmo

Identificador del dispositivo de salida MIDI abierto. Este dispositivo debe ser un sintetizador MIDI interno. Este parámetro también puede ser el identificador de una secuencia MIDI, que se convierte en HMIDIOUT.

uPatch

Número de revisión de tambor que se debe usar. Este parámetro debe establecerse en cero para almacenar en caché la revisión de tambor predeterminada.

pwkya

Puntero a una matriz KEYARRAY que indica los números de clave de las revisiones de percusión especificadas que se almacenarán en caché o no se almacenarán en caché.

fuCache

Opciones para la operación de caché. Puede ser una de las siguientes marcas.

Valor Significado
MIDI_CACHE_ALL Almacena en caché todas las revisiones especificadas. Si no se pueden almacenar en caché, no almacena en caché ninguno, borra la matriz KEYARRAY y devuelve MMSYSERR_NOMEM.
MIDI_CACHE_BESTFIT Almacena en caché todas las revisiones especificadas. Si no se pueden almacenar en caché, almacena en caché tantas revisiones como sea posible, cambia la matriz KEYARRAY para reflejar qué revisiones se almacenaron en caché y devuelve MMSYSERR_NOMEM.
MIDI_CACHE_QUERY Cambia la matriz KEYARRAY para indicar qué revisiones se almacenan actualmente en caché.
MIDI_UNCACHE Quita la caché de las revisiones especificadas y borra la matriz KEYARRAY.

Valor devuelto

Devuelve MMSYSERR_NOERROR si se realiza correctamente o si se produce un error en caso contrario. Entre los valores de error posibles se incluyen los siguientes.

Código devuelto Descripción
MMSYSERR_INVALFLAG
La marca especificada por wFlags no es válida.
MMSYSERR_INVALHANDLE
El identificador de dispositivo especificado no es válido.
MMSYSERR_INVALPARAM
La matriz a la que apunta la matriz lpKeyArray no es válida.
MMSYSERR_NOMEM
El dispositivo no tiene suficiente memoria para almacenar en caché todas las revisiones solicitadas.
MMSYSERR_NOTSUPPORTED
El dispositivo especificado no admite el almacenamiento en caché de revisiones.

Comentarios

Algunos sintetizadores no son capaces de mantener todas las revisiones de percusión cargadas simultáneamente. Las revisiones de almacenamiento en caché garantizan que las revisiones especificadas estén disponibles.

Cada elemento de la matriz KEYARRAY representa una de las 128 revisiones de percusión basadas en teclas y tiene bits establecidos para cada uno de los 16 canales MIDI que usan la revisión concreta. El bit menos significativo representa el canal físico 0 y el bit más significativo representa el canal físico 15. Por ejemplo, si los canales físicos 9 y 15 usan la revisión en el número de clave 60, el elemento 60 se establecería en 0x8200.

Esta función solo se aplica a los dispositivos de sintetizador MIDI internos. No todos los sintetizadores internos admiten el almacenamiento en caché de revisiones. Para ver si un dispositivo admite el almacenamiento en caché de revisiones, use la marca MIDICAPS_CACHE para probar el miembro dwSupport de la estructura MIDIOUTCAPS rellenada por la función midiOutGetDevCaps .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mmeapi.h (incluya Windows.h)
Library Winmm.lib
Archivo DLL Winmm.dll

Consulte también

Funciones MIDI