midiOutCacheDrumPatches, fonction (mmeapi.h)
La fonction midiOutCacheDrumPatches demande à un appareil de synthétiseur MIDI interne de précharger et de mettre en cache un ensemble spécifié de correctifs de percussion basés sur la clé.
Syntaxe
MMRESULT midiOutCacheDrumPatches(
HMIDIOUT hmo,
UINT uPatch,
LPWORD pwkya,
UINT fuCache
);
Paramètres
hmo
Gérez le périphérique de sortie MIDI ouvert. Cet appareil doit être un synthétiseur MIDI interne. Ce paramètre peut également être le handle d’un flux MIDI, converti en HMIDIOUT.
uPatch
Numéro de correctif du tambour à utiliser. Ce paramètre doit être défini sur zéro pour mettre en cache le correctif du tambour par défaut.
pwkya
Pointeur vers un tableau KEYARRAY indiquant les numéros de clé des correctifs de percussion spécifiés à mettre en cache ou à mettre en cache.
fuCache
Options pour l’opération de cache. Il peut s’agir de l’un des indicateurs suivants.
Valeur | Signification |
---|---|
MIDI_CACHE_ALL | Met en cache tous les correctifs spécifiés. S’ils ne peuvent pas tous être mis en cache, aucun n’est mis en cache, efface le tableau KEYARRAY et retourne MMSYSERR_NOMEM. |
MIDI_CACHE_BESTFIT | Met en cache tous les correctifs spécifiés. S’ils ne peuvent pas tous être mis en cache, il met en cache autant de correctifs que possible, modifie le tableau KEYARRAY pour refléter les correctifs qui ont été mis en cache et retourne MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | Modifie le tableau KEYARRAY pour indiquer les correctifs actuellement mis en cache. |
MIDI_UNCACHE | Annule la mise en cache des correctifs spécifiés et efface le tableau KEYARRAY. |
Valeur retournée
Retourne MMSYSERR_NOERROR en cas de réussite ou une erreur dans le cas contraire. Les valeurs d’erreur possibles sont les suivantes.
Code de retour | Description |
---|---|
|
L’indicateur spécifié par wFlags n’est pas valide. |
|
Le handle d’appareil spécifié n’est pas valide. |
|
Le tableau pointé par le tableau lpKeyArray n’est pas valide. |
|
L’appareil ne dispose pas de suffisamment de mémoire pour mettre en cache tous les correctifs demandés. |
|
L’appareil spécifié ne prend pas en charge la mise en cache des correctifs. |
Remarques
Certains synthétiseurs ne sont pas capables de garder tous les patchs de percussion chargés simultanément. La mise en cache des correctifs garantit que les correctifs spécifiés sont disponibles.
Chaque élément du tableau KEYARRAY représente l’un des 128 correctifs de percussion basés sur des touches et a des bits définis pour chacun des 16 canaux MIDI qui utilisent le correctif particulier. Le bit le moins significatif représente le canal physique 0, et le bit le plus significatif représente le canal physique 15. Par exemple, si le correctif sur le numéro de clé 60 est utilisé par les canaux physiques 9 et 15, l’élément 60 est défini sur 0x8200.
Cette fonction s’applique uniquement aux appareils de synthétiseur MIDI internes. Tous les synthétiseurs internes ne prennent pas en charge la mise en cache des correctifs. Pour voir si un appareil prend en charge la mise en cache des correctifs, utilisez l’indicateur MIDICAPS_CACHE pour tester le membre dwSupport de la structure MIDIOUTCAPS remplie par la fonction midiOutGetDevCaps .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | mmeapi.h (inclure Windows.h) |
Bibliothèque | Winmm.lib |
DLL | Winmm.dll |