LES RÉGLAGES DU VOLUME
Déchargement
:
Deux exemples sont proposés ici :
Notes :
Les
Mixers :
Un ordinateur peut comporter plusieurs carets son. Chaque carte
son possède un Mixer qui permet d'effectuer tous les réglages
de volume d'entrées et sorties.
Le nombre de cartes son présentes
est obtenu avec l'API :
NombreDeMixers = mixerGetNumDevs
Cette API renvoie juste le nombre
de Mixers installés, et l'identificateur de chaque Mixer est un
nombre entier dont le premier est 0, et qui peut donc prerndre
une valeur comprise entre : 0 et NombreDeMixers - 1
Le Mixer 0 est toujours le Mixer par défaut, c'est à dire,
celui qui a été choisi dans les options multimedia du panenau
de configuration.
Pour accéder à un Mixer, il faut
ouvrir une instance et obtenir un handle (ou descripteur)
rc = mixerOpen(hmixer,
NumMixer, Me.hWnd, 0, CALLBACK_WINDOW)
La variable hmixer contient un handle pour le Mixer référencé
par NumMixer (0 si on veut le mixer par défaut)
Me.hwnd et CALLBACK_WINDOW ne sont utiles que si on désire
sous-classer la fenêtre active pour intercepter les messages
provenant du Mixer (par exemple, si les réglages du volume ont
été modifiés depuis une autre application).
Lorsque l'application se termine, il faut fermer l'instance avec : mixerClose
Les
lignes :
Chaque Mixer possède plusieurs lignes (généralement 3). Chaque
ligne est définie par une sortie (ou destination) et plusieurs
entrées (ou sources). Exemple : la sortie vers les haut-parleurs
et toutes les entrées (Wave, Midi, CD, Modem, ...) définissent
une ligne. La sortie vers l'enregistreur et les différentes
entrées définissent une autre ligne.
rc = mixerGetDevCaps(hmixer, mxCAP, Len(mxCAP))
' Nombre de
lignes disponibles
NbLines = mxCAP.cDestinations
' Informations
sur la carte son et le driver
Nom du driver : mxCAP.szPname
Version du driver : mxCAP.vDriverVersion
Les
contrôles :
Chaque composant d'une ligne (destination ou source) qui accepte
un réglage du volume est un contrôle et possède un numéro
d'identification unique qu'il est indispensable de connaître si
on veut le manipuler..
mxl.dwDestination
= IndLine '
(peut varier de 0 à NbLines - 1)
rc = mixerGetLineInfo(hmixer, mxl,
MIXER_GETLINEINFOF_DESTINATION)
et on
récupère le nombre de contrôles source pour cette ligne :
' Nombre de
contrôles source pour cette ligne
NbControlSource = mxl.cConnections
L'API suivante permet de
récupérer le numéro d'identification de chaque contrôle
rc = mixerGetLineControls(hmixer,
mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE)