Função midiOutCacheDrumPatches (mmeapi.h)
A função midiOutCacheDrumPatches solicita que um dispositivo sintetizador MIDI interno pré-recarregue e armazene em cache um conjunto especificado de patches de percussão baseados em chave.
Sintaxe
MMRESULT midiOutCacheDrumPatches(
HMIDIOUT hmo,
UINT uPatch,
LPWORD pwkya,
UINT fuCache
);
Parâmetros
hmo
Identificador para o dispositivo de saída MIDI aberto. Esse dispositivo deve ser um sintetizador MIDI interno. Esse parâmetro também pode ser o identificador de um fluxo MIDI, convertido em HMIDIOUT.
uPatch
Número de patch de bateria que deve ser usado. Esse parâmetro deve ser definido como zero para armazenar em cache o patch de bateria padrão.
pwkya
Ponteiro para uma matriz KEYARRAY que indica os números de chave dos patches de percussão especificados a serem armazenados em cache ou não armazenados em cache.
fuCache
Opções para a operação de cache. Pode ser um dos sinalizadores a seguir.
Valor | Significado |
---|---|
MIDI_CACHE_ALL | Armazena em cache todos os patches especificados. Se todos eles não puderem ser armazenados em cache, ele armazenará em cache nenhum, limpará a matriz KEYARRAY e retornará MMSYSERR_NOMEM. |
MIDI_CACHE_BESTFIT | Armazena em cache todos os patches especificados. Se todos eles não puderem ser armazenados em cache, ele armazenará em cache o máximo possível de patches, alterará a matriz KEYARRAY para refletir quais patches foram armazenados em cache e retornará MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | Altera a matriz KEYARRAY para indicar quais patches estão armazenados em cache no momento. |
MIDI_UNCACHE | Limpa os patches especificados e limpa a matriz KEYARRAY. |
Retornar valor
Retorna MMSYSERR_NOERROR se tiver êxito ou um erro de outra forma. Os valores de erro possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O sinalizador especificado por wFlags é inválido. |
|
O identificador de dispositivo especificado é inválido. |
|
A matriz apontada pela matriz lpKeyArray é inválida. |
|
O dispositivo não tem memória suficiente para armazenar em cache todos os patches solicitados. |
|
O dispositivo especificado não dá suporte ao cache de patch. |
Comentários
Alguns sintetizadores não são capazes de manter todos os patches de percussão carregados simultaneamente. O cache de patches garante que os patches especificados estejam disponíveis.
Cada elemento da matriz KEYARRAY representa um dos 128 patches de percussão baseados em chave e tem bits definidos para cada um dos 16 canais MIDI que usam o patch específico. O bit menos significativo representa o canal físico 0 e o bit mais significativo representa o canal físico 15. Por exemplo, se o patch no número de chave 60 for usado pelos canais físicos 9 e 15, o elemento 60 será definido como 0x8200.
Essa função se aplica somente a dispositivos sintetizadores MIDI internos. Nem todos os sintetizadores internos dão suporte ao cache de patch. Para ver se um dispositivo dá suporte ao cache de patch, use o sinalizador MIDICAPS_CACHE para testar o membro dwSupport da estrutura MIDIOUTCAPS preenchida pela função midiOutGetDevCaps .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | mmeapi.h (inclua Windows.h) |
Biblioteca | Winmm.lib |
DLL | Winmm.dll |