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
MMSYSERR_INVALFLAG
L’indicateur spécifié par wFlags n’est pas valide.
MMSYSERR_INVALHANDLE
Le handle d’appareil spécifié n’est pas valide.
MMSYSERR_INVALPARAM
Le tableau pointé par le tableau lpKeyArray n’est pas valide.
MMSYSERR_NOMEM
L’appareil ne dispose pas de suffisamment de mémoire pour mettre en cache tous les correctifs demandés.
MMSYSERR_NOTSUPPORTED
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

Voir aussi

Fonctions MIDI