fonction midiOutCachePatches (mmeapi.h)
La fonction midiOutCachePatches demande à un appareil de synthétiseur MIDI interne de précharger et de mettre en cache un ensemble spécifié de correctifs.
Syntaxe
MMRESULT midiOutCachePatches(
HMIDIOUT hmo,
UINT uBank,
LPWORD pwpa,
UINT fuCache
);
Paramètres
hmo
Gérez l’appareil 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, cast en HMIDIOUT.
uBank
Banque de correctifs à utiliser. Ce paramètre doit être défini sur zéro pour mettre en cache la banque de correctifs par défaut.
pwpa
Pointeur vers un tableau PATCHARRAY indiquant les correctifs à 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, il ne met pas en cache, efface le tableau PATCHARRAY 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 PATCHARRAY pour refléter les correctifs qui ont été mis en cache et retourne MMSYSERR_NOMEM. |
MIDI_CACHE_QUERY | Modifie le tableau PATCHARRAY pour indiquer quels correctifs sont actuellement mis en cache. |
MIDI_UNCACHE | Annule la mise en cache des correctifs spécifiés et efface le tableau PATCHARRAY. |
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é vers lpPatchArray 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 corrective. |
Remarques
Certains synthétiseurs ne sont pas capables de conserver tous les correctifs chargés simultanément et doivent charger des données à partir du disque lorsqu’ils reçoivent des messages de modification du programme MIDI. La mise en cache des correctifs garantit que les correctifs spécifiés sont immédiatement disponibles.
Chaque élément du tableau PATCHARRAY représente l’un des 128 correctifs et a des bits définis pour chacun des 16 canaux MIDI qui utilisent le correctif spécifique. Le bit le moins significatif représente le canal physique 0, et le bit le plus significatif représente le canal physique 15 (0x0F). Par exemple, si le correctif 0 est utilisé par les canaux physiques 0 et 8, l’élément 0 est défini sur 0x0101.
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 corrective. Pour voir si un appareil prend en charge la mise en cache corrective, 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 |