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 |
---|---|
|
Il flag specificato da wFlags non è valido. |
|
L'handle del dispositivo specificato non è valido. |
|
La matrice puntata da lpPatchArray non è valida. |
|
Il dispositivo non dispone di memoria sufficiente per memorizzare nella cache tutte le patch richieste. |
|
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 |