funzione midiOutCacheDrumPatches (mmeapi.h)
La funzione midiOutCacheDrumPatches richiede che un dispositivo sintetizzatore MIDI interno preload e memorizza nella cache un set specificato di patch di percussioni basate su chiave.
Sintassi
MMRESULT midiOutCacheDrumPatches(
HMIDIOUT hmo,
UINT uPatch,
LPWORD pwkya,
UINT fuCache
);
Parametri
hmo
Handle per 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, eseguito il cast a HMIDIOUT.
uPatch
Numero di patch del tamburo da usare. Questo parametro deve essere impostato su zero per memorizzare nella cache la patch del tamburo predefinita.
pwkya
Puntatore a una matrice KEYARRAY che indica i numeri chiave delle patch di percussione specificate da memorizzare o rimuovere dalla 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 memorizza nella cache nessuno, cancella la matrice KEYARRAY 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 KEYARRAY in modo da riflettere quali patch sono state memorizzate nella cache e restituisce MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | Modifica la matrice KEYARRAY per indicare quali patch sono attualmente memorizzate nella cache. |
MIDI_UNCACHE | Rimuove le patch specificate e cancella la matrice KEYARRAY. |
Valore restituito
Restituisce MMSYSERR_NOERROR se l'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 a cui punta la matrice lpKeyArray 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 di percussione caricate contemporaneamente. La memorizzazione nella cache delle patch garantisce che siano disponibili le patch specificate.
Ogni elemento della matrice KEYARRAY rappresenta uno dei 128 patch di percussioni basate su tasti e ha bit impostati per ognuno dei 16 canali MIDI che utilizzano la patch specifica. Il bit meno significativo rappresenta il canale fisico 0 e il bit più significativo rappresenta il canale fisico 15. Ad esempio, se la patch sul numero di chiave 60 viene usata dai canali fisici 9 e 15, l'elemento 60 verrà impostato su 0x8200.
Questa funzione si applica solo ai dispositivi sintetizzatori 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 riempito 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 (include Windows.h) |
Libreria | Winmm.lib |
DLL | Winmm.dll |