Nœuds de topologie

Les applications audio peuvent accéder aux contrôles mixer via la fonction multimédia Microsoft Windows mixerGetLineControls. Cette fonction récupère un tableau d’une ou plusieurs structures MIXERCONTROL, chacune décrivant l’état et les métriques d’un nœud de contrôle unique sur une ligne audio. Le membre dwControlType de la structure MIXERCONTROL est défini sur une valeur d’énumération qui spécifie le type du contrôle. Un certain nombre de types mixer-control ont été spécifiés pour les VxD audio, mais seul un sous-ensemble de ces contrôles est disponible pour les pilotes audio WDM.

WDMAud traduit certains nœuds de topologie, mais pas tous, en contrôles de ligne de mixage correspondants. Les types de nœud de topologie répertoriés dans le tableau suivant ont des équivalents qui sont des contrôles de ligne de mixage.

Type de nœud nom du type Topology-Node nom du type Mixer-Control

AGC

KSNODETYPE_AGC

MIXERCONTROL_CONTROLTYPE_ONOFF

Volume

KSNODETYPE_LOUDNESS

MIXERCONTROL_CONTROLTYPE_LOUDNESS

Désactiver le son

KSNODETYPE_MUTE

MIXERCONTROL_CONTROLTYPE_MUTE

Tonalité (multiple)

KSNODETYPE_TONE

MIXERCONTROL_CONTROLTYPE_ONOFF (si KSPROPERTY_AUDIO_BASS_BOOST est pris en charge)

MIXERCONTROL_CONTROLTYPE_BASS (si KSPROPERTY_AUDIO_BASS est pris en charge)

MIXERCONTROL_CONTROLTYPE_TREBLE (si KSPROPERTY_AUDIO_TREBLE est pris en charge)

Volume

KSNODETYPE_VOLUME

MIXERCONTROL_CONTROLTYPE_VOLUME

Peakmeter

KSNODETYPE_PEAKMETER

MIXERCONTROL_CONTROLTYPE_PEAKMETER

MUX

KSNODETYPE_MUX

MIXERCONTROL_CONTROLTYPE_MUX

Stéréo large

KSNODETYPE_STEREO_WIDE

MIXERCONTROL_CONTROLTYPE_FADER

Chœur

KSNODETYPE_CHORUS

MIXERCONTROL_CONTROLTYPE_FADER

Reverb

KSNODETYPE_REVERB

MIXERCONTROL_CONTROLTYPE_FADER

Supermix (multiple)

KSNODETYPE_SUPERMIX

MIXERCONTROL_CONTROLTYPE_MUTE (si KSPROPERTY_AUDIO_MUTE est pris en charge dans le nœud supermix)

MIXERCONTROL_CONTROLTYPE_VOLUME (voir les commentaires dans le texte)

Les types de nœuds de topologie manquants dans le tableau précédent ne sont pas traduits en contrôles de ligne de mixage, et les contrôles de ligne de mixage manquants dans la table ne sont pas pris en charge par les pilotes audio WDM.

Notez que MIXERCONTROL_CONTROLTYPE_CUSTOM est manquant dans la table. Cela signifie que les pilotes audio WDM ne prennent pas en charge les contrôles de mixage personnalisés.

Un nœud de tonalité prend en charge quatre propriétés : graves, aigus, fréquence moyenne et impulsion de basse. La propriété de fréquence moyenne n’a pas d’équivalent de ligne de mélangeur, mais les trois autres propriétés le font. Pour chaque nœud de tonalité découvert dans la topologie, une requête est effectuée pour chacune des propriétés prises en charge :

KSPROPERTY_AUDIO_BASS

KSPROPERTY_AUDIO_TREBLE

KSPROPERTY_AUDIO_BASS_BOOST

Chaque requête de propriété qui réussit génère un contrôle de ligne de mixage. En raison de problèmes de nommage, un nœud de tonalité unique ne doit prendre en charge qu’une seule propriété. Si un appareil prend en charge à la fois les graves et les aigus, par exemple, il doit avoir deux nœuds de tonalité afin que les nœuds puissent avoir des noms différents.

Un nœud supermix prend en charge jusqu’à deux contrôles : muet et volume. Un nœud supermix peut être utilisé comme contrôle de désactivation lorsqu’il remplit au moins l’une de ces deux conditions pour chaque entrée dans la table des fonctionnalités du nœud supermix :

  • L’entrée prend en charge la propriété muet, comme spécifié par les fonctionnalités. Désactiver l’indicateur .

  • L’entrée est entièrement atténuée (atténuation des décibels infinis) et ne peut pas être activée, ce qui est spécifié par les deux fonctionnalités. Minimum et Fonctionnalités. Valeur maximale LONG_MIN (0x80000000).

Un nœud supermix peut être utilisé comme contrôle de volume lorsque chaque entrée de la table de fonctionnalités supermix a une plage différente de zéro. Tous les autres contrôles sont traduits un à un. Lorsqu’un nœud reconnu est rencontré, le pilote de ligne de mixage interroge la propriété respective pour ce nœud.

Pour case activée pour la prise en charge stéréo ou mono, le canal gauche est interrogé, suivi du canal droit, et enfin, si ces deux canaux échouent, le canal master (-1) est essayé. Si aucune de ces requêtes ne réussit, aucun contrôle n’est généré pour ce nœud. Notez que le nœud MUX n’est pas interrogé pour chaque canal. Au lieu de cela, une seule requête pour récupérer la sélection MUX actuelle est effectuée.

Le nom du contrôle est retourné sous forme de chaîne lorsque le nœud est interrogé pour sa propriété KSPROPERTY_TOPOLOGY_NAME . Si un nœud génère plusieurs contrôles, tous les contrôles partagent le même nom.