Condividi tramite


funzione midiOutCachePatches (mmeapi.h)

La funzione midiOutCachePatches richiede che un dispositivo di sintesi MIDI interno preload e memorizza nella cache un set specificato di patch.

Sintassi

MMRESULT midiOutCachePatches(
  HMIDIOUT hmo,
  UINT     uBank,
  LPWORD   pwpa,
  UINT     fuCache
);

Parametri

hmo

Gestire il dispositivo di output MIDI aperto. Questo dispositivo deve essere un sintetizzatore MIDI interno. Questo parametro può anche essere l'handle di un flusso MIDI, eseguire il cast in HMIDIOUT.

uBank

Banca di patch che devono essere usate. Questo parametro deve essere impostato su zero per memorizzare nella cache la banca di patch predefinita.

pwpa

Puntatore a una matrice PATCHARRAY che indica che le patch devono essere memorizzate nella cache o non memorizzate nella cache.

fuCache

Opzioni per l'operazione di cache. Può essere uno dei flag seguenti.

Valore Significato
MIDI_CACHE_ALL Memorizza nella cache tutte le patch specificate. Se non possono essere memorizzati nella cache, non vengono memorizzati nella cache, cancella la matrice PATCHARRAY e restituisce MMSYSERR_NOMEM.
MIDI_CACHE_BESTFIT Memorizza nella cache tutte le patch specificate. Se non possono essere memorizzati nella cache, memorizza nella cache il maggior numero possibile di patch, modifica la matrice PATCHARRAY per riflettere le patch memorizzate nella cache e restituisce MMSYSERR_NOMEM.
MIDI_CACHE_QUERY Modifica la matrice PATCHARRAY per indicare quali patch sono attualmente memorizzate nella cache.
MIDI_UNCACHE Annulla le patch specificate e cancella la matrice PATCHARRAY.

Valore restituito

Restituisce MMSYSERR_NOERROR se ha esito positivo o un errore in caso contrario. I valori di errore possibili includono quanto segue.

Codice restituito Descrizione
MMSYSERR_INVALFLAG
Il flag specificato da wFlags non è valido.
MMSYSERR_INVALHANDLE
L'handle del dispositivo specificato non è valido.
MMSYSERR_INVALPARAM
La matrice puntata da lpPatchArray non è valida.
MMSYSERR_NOMEM
Il dispositivo non dispone di memoria sufficiente per memorizzare nella cache tutte le patch richieste.
MMSYSERR_NOTSUPPORTED
Il dispositivo specificato non supporta la memorizzazione nella cache delle patch.

Commenti

Alcuni sintetizzatori non sono in grado di mantenere tutte le patch caricate contemporaneamente e devono caricare i dati dal disco quando ricevono messaggi di modifica del programma MIDI. Le patch di memorizzazione nella cache garantiscono che le patch specificate siano immediatamente disponibili.

Ogni elemento della matrice PATCHARRAY rappresenta una delle patch 128 e ha bit impostati per ognuno dei 16 canali MIDI che usano la patch specifica. Il bit meno significativo rappresenta il canale 0 fisico e il bit più significativo rappresenta il canale 15 fisico (0x0F). Ad esempio, se la patch 0 viene usata dai canali fisici 0 e 8, l'elemento 0 verrà impostato su 0x0101.

Questa funzione si applica solo ai dispositivi di sintetizzazione MIDI interni. Non tutti i sintetizzatori interni supportano la memorizzazione nella cache delle patch. Per verificare se un dispositivo supporta la memorizzazione nella cache delle patch, usare il flag MIDICAPS_CACHE per testare il membro dwSupport della struttura MIDIOUTCAPS riempita dalla funzione midiOutGetDevCaps .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mmeapi.h (includere Windows.h)
Libreria Winmm.lib
DLL Winmm.dll

Vedi anche

Funzioni MIDI