Partager via


Prise en charge de la posture audio

Vue d’ensemble

Les appareils peuvent être utilisés dans différentes postures. Pour une tablette, la posture signifie essentiellement l’orientation qu’elle est tenue, comme le portrait ou le paysage. L’expérience audio de ces appareils peut être optimisée pour des postures spécifiques. Par exemple, les points de terminaison audio peuvent remapper les canaux gauche/droite pour une expérience stéréo appropriée dans différentes orientations. Il est également possible d’étalonner des microphones pour la suppression du bruit, l’annulation de l’écho, etc. en fonction de l’emplacement du haut-parleur/microphone modifié lors des changements de posture.

Prise en charge du système d’exploitation Windows

La posture audio est prise en charge dans Windows 11, version 22000 et ultérieure.

Architecture

Les scénarios liés à la posture pour les points de terminaison audio sont basés sur les réponses de l’interpréteur de commandes aux changements de posture. L’interpréteur de commandes fonctionne avec les capteurs et les entrées utilisateur (par exemple, verrouillage d’orientation) pour déterminer la posture globale du système. La pile audio du système d’exploitation reçoit des notifications de posture de l’interpréteur de commandes et informe les points de terminaison audio qui prennent en charge l’audio posture DDI.

La pile audio ne modifie pas le contenu du flux audio en réponse aux changements de posture. Au lieu de cela, la pile audio informe le pilote audio de ces modifications. L’attente est que les composants audio IHV s’adaptent à ces changements avec le traitement du signal implémenté dans le matériel (DSP) ou en tant qu’APO logicielle.

Pour les PC de bureau, les scénarios liés à la posture pour les points de terminaison audio s’alignent sur l’affichage. La pile audio du système d’exploitation reçoit des notifications de posture à partir de l’affichage et informe les points de terminaison audio qui prennent en charge le DDI audio posture.

Le diagramme suivant montre la relation et le flux de contrôle entre les composants impliqués dans la gestion des changements de posture pour les périphériques audio.

Diagramme montrant la relation entre OS Shell, OS Audio, APO, PortCls et Audio Driver dans la gestion des changements de posture pour les périphériques audio.

Composants

Interpréteur de commandes et capteurs du système d’exploitation

L’interpréteur de commandes surveille diverses informations de capteur fournies par les pilotes de capteur. Avec les informations du capteur, l’interpréteur de commandes prend en compte les préférences de l’utilisateur, telles que les verrous d’orientation et les remplacements d’application, pour déterminer la posture du système.

Pile audio du système d’exploitation

La pile audio du système d’exploitation reçoit des informations de posture de l’interpréteur de commandes. Lorsqu’une modification de la posture système se produit, la pile audio informe les points de terminaison audio prenant en compte la posture à l’aide d’une propriété KS.

Pilote audio IHV et APO

Le pilote audio IHV ainsi qu’une apo facultative gère les changements de posture de la pile audio du système d’exploitation. Seuls les périphériques audio intégrés situés directement sur le châssis main de la machine qui sont affectés par des changements de posture doivent indiquer la prise en charge de la posture.

Exigences de prise en charge des points de terminaison audio

Le tableau suivant présente les types de points de terminaison audio qui doivent et ne doivent pas fournir une prise en charge de la posture.

Type de point de terminaison audio Prise en charge de la posture
Built-In Haut-parleurs Yes
Built-In microphone/réseau de microphones Yes
Wired-Headset No
HDMI/DisplayPort No
Audio USB externe No
Bluetooth Audio No

Configuration requise pour le pilote audio

Les informations de posture sont fournies au pilote audio IHV sous forme d’orientation. Le pilote audio IHV est censé avoir des connaissances implicites sur le facteur de forme du périphérique, et il doit être en mesure d’identifier l’orientation par défaut et les positions relatives du haut-parleur/microphone. Ces informations peuvent être récupérées à partir d’ACPI ou par un autre mécanisme IHV.

Structures et constantes de données

PROPSETID

Il s’agit du GUID utilisé pour l’ID de jeu de propriétés KS.

KSPROPSETID_AudioPosture =A3FB7B0D-474E-4F51-A379-51282DD4FA8F

ID DE PROPRIÉTÉ

Il s’agit de la valeur utilisée pour l’ID KSPROPERTY.

KSPROPERTY_AUDIOPOSTURE_ORIENTATION = 1

DESCRIPTION DE LA PROPRIÉTÉ - AUDIOPOSTURE_ORIENTATION

Cette propriété spécifie l’orientation actuelle du système. L’orientation est représentée par les degrés de rotation de l’orientation par défaut. Les informations d’orientation sont synchronisées avec l’interpréteur de commandes du système d’exploitation, qui inclut le verrou d’orientation utilisateur/application. Le pilote audio reçoit cette énumération lors de la gestion de la demande de propriété Set pour KSPROPERTY_AUDIOPOSTURE_ORIENTATION.

typedef enum
{
    AUDIOPOSTURE_PANEL_ORIENTATION_NOTROTATED = 0,
    AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED90DEGREESCOUNTERCLOCKWISE,
    AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED180DEGREESCOUNTERCLOCKWISE,
    AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED270DEGREESCOUNTERCLOCKWISE,
} AUDIOPOSTURE_ORIENTATION;

Pour plus d’informations, consultez l’énumération AUDIOPOSTURE_ORIENTATION.

GESTION DES PROPRIÉTÉS

Le pilote audio doit implémenter KSPROPSETID_AudioPosture KSPROPERTY_AUDIOPOSTURE_ORIENTATION en tant que propriété de type broche accessible via la poignée de filtre. La propriété doit être prise en charge sur la broche de pont, c’est-à-dire la broche représentant le point de terminaison matériel, pour le point de terminaison.

SUPPORT DE BASE : KSPROPERTY_TYPE_BASICSUPPORT

Le pilote audio doit retourner la prise en charge des indicateurs Set et access.

SET : KSPROPERTY_TYPE_SET

Le pilote audio reçoit un pointeur vers AUDIOPOSTURE_ORIENTATION comme paramètre de valeur de requête de propriété. En réponse à cette demande de propriété, le pilote audio peut appliquer les modifications matérielles ou logicielles nécessaires pour le nouvel état de posture. Le retour de la réussite indique que le pilote a terminé le traitement de la modification. Si une apo IHV doit recevoir des informations de posture du pilote audio, les modules audio peuvent être utilisés pour fournir le mécanisme de notification. Les pilotes doivent mettre en cache la valeur afin qu’elle puisse être appliquée lors de la sortie d’une consommation d’énergie faible/mise en veille prolongée

AUDIOPOSTURE_ORIENTATION Orientation = *((AUDIOPOSTURE_ORIENTATION*)PropertyRequest->Value);

switch (Orientation)
{
    case AUDIOPOSTURE_ORIENTATION_NOTROTATED:
    //Cache and process the orientation
    .
    .
    case AUDIOPOSTURE_ORIENTATION_ROTATED90DEGREESCOUNTERCLOCKWISE:
    //Cache and process the orientation
    .
    .
    case AUDIOPOSTURE_ORIENTATION_ROTATED180DEGREESCOUNTERCLOCKWISE:
    //Cache and process the orientation
    .
    .
    case AUDIOPOSTURE_ORIENTATION_ROTATED270DEGREESCOUNTERCLOCKWISE:
    //Cache and process the orientation
    .
    .
}

Voir aussi

Windows Driver Model (WDM)

Vue d’ensemble des pilotes audio