Função midiOutCachePatches (mmeapi.h)
A função midiOutCachePatches solicita que um dispositivo sintetizador MIDI interno pré-recarregue e armazene em cache um conjunto especificado de patches.
Sintaxe
MMRESULT midiOutCachePatches(
HMIDIOUT hmo,
UINT uBank,
LPWORD pwpa,
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.
uBank
Banco de patches que devem ser usados. Esse parâmetro deve ser definido como zero para armazenar em cache o banco de patch padrão.
pwpa
Ponteiro para uma matriz PATCHARRAY que indica os patches 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 não armazenará em cache nenhum, limpará a matriz PATCHARRAY 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 PATCHARRAY para refletir quais patches foram armazenados em cache e retornará MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | Altera a matriz PATCHARRAY para indicar quais patches estão armazenados em cache no momento. |
MIDI_UNCACHE | Limpa os patches especificados e limpa a matriz PATCHARRAY. |
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 por lpPatchArray é 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 carregados simultaneamente e devem carregar dados do disco quando receberem mensagens de alteração do programa MIDI. O cache de patches garante que os patches especificados estejam imediatamente disponíveis.
Cada elemento da matriz PATCHARRAY representa um dos 128 patches 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 (0x0F). Por exemplo, se o patch 0 for usado pelos canais físicos 0 e 8, o elemento 0 será definido como 0x0101.
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 |