Share via


Función midiOutCachePatches (mmeapi.h)

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

Sintaxis

MMRESULT midiOutCachePatches(
  HMIDIOUT hmo,
  UINT     uBank,
  LPWORD   pwpa,
  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.

uBank

Banco de parches que se deben usar. Este parámetro debe establecerse en cero para almacenar en caché el banco de revisiones predeterminado.

pwpa

Puntero a una matriz PATCHARRAY que indica las revisiones que se van a almacenar en caché o no almacenar 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 PATCHARRAY 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 PATCHARRAY para reflejar qué revisiones se almacenaron en caché y devuelve MMSYSERR_NOMEM.
MIDI_CACHE_QUERY Cambia la matriz PATCHARRAY para indicar qué revisiones se almacenan actualmente en caché.
MIDI_UNCACHE Desencacha las revisiones especificadas y borra la matriz PATCHARRAY.

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 lpPatchArray 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 cargadas simultáneamente y deben cargar datos del disco cuando reciben mensajes de cambio de programa MIDI. Las revisiones de almacenamiento en caché garantizan que las revisiones especificadas estén disponibles inmediatamente.

Cada elemento de la matriz PATCHARRAY representa una de las 128 revisiones 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 (0x0F). Por ejemplo, si los canales físicos 0 y 8 usan la revisión 0, el elemento 0 se establecería en 0x0101.

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