Supporto della postura audio

Panoramica

I dispositivi possono essere usati in posizioni diverse. Per un tablet, il comportamento significa fondamentalmente l'orientamento tenuto, ad esempio il ritratto o il paesaggio. L'esperienza audio per questi dispositivi può essere ottimizzata per posizioni specifiche. Ad esempio, gli endpoint audio possono eseguire il mapping dei canali a sinistra/destra per un'esperienza stereo appropriata in diversi orientamenti. È anche possibile calibrare i microfoni per l'eliminazione del rumore, l'annullamento dell'eco e così via, in base alle posizioni del microfono/altoparlanti modificate in caso di cambiamenti di comportamento.

Supporto del sistema operativo Windows

Il comportamento audio è supportato in Windows 11, versione 22000 e successiva.

Architettura

Gli scenari correlati al comportamento per gli endpoint audio si basano sulle risposte di Shell ai cambiamenti di comportamento. Shell funziona con Sensori e input utente (ad esempio il blocco di orientamento) per determinare il comportamento complessivo del sistema. Lo stack audio del sistema operativo riceve notifiche di comportamento da Shell e informa gli endpoint audio che supportano l'DDI del comportamento audio.

Lo stack audio non modifica il contenuto del flusso audio in risposta alle modifiche del comportamento. Invece, lo stack audio informa il driver audio di queste modifiche. L'aspettativa è che i componenti audio IHV si adattino a queste modifiche con l'elaborazione dei segnali implementati nell'hardware (DSP) o come apo software.

Per i PC desktop, gli scenari correlati al comportamento per gli endpoint audio sono allineati alla visualizzazione. Lo stack audio del sistema operativo riceve le notifiche di comportamento dalla visualizzazione e informa gli endpoint audio che supportano l'DDI del comportamento audio.

Il diagramma seguente illustra il flusso di relazione e controllo tra i componenti coinvolti nella gestione delle modifiche del comportamento per i dispositivi audio.

Diagramma che mostra la relazione tra OS Shell, OS Audio, APO, PortCls e Audio Driver nella gestione delle modifiche del comportamento per i dispositivi audio.

Componenti

Shell e sensori del sistema operativo

Shell monitora varie informazioni sul sensore fornite dai driver del sensore. Oltre alle informazioni sul sensore, Shell considera le preferenze utente, ad esempio blocco orientamento e override dell'app, per determinare il comportamento del sistema.

Stack audio del sistema operativo

Lo stack audio del sistema operativo riceve informazioni sul comportamento da Shell. Quando si verifica una modifica al comportamento del sistema, lo stack audio informa gli endpoint audio consapevoli del comportamento usando una proprietà KS.

Driver audio IHV e APO

Il driver audio IHV insieme a un apo facoltativo gestisce le modifiche del comportamento dallo stack audio del sistema operativo. Solo i dispositivi audio di onboarding che si trovano direttamente nello chassis principale del computer che sono interessati dalle modifiche del comportamento devono indicare il supporto per il comportamento.

Requisiti di supporto dell'endpoint audio

La tabella seguente mostra i tipi di endpoint audio che devono e non devono fornire supporto per il comportamento.

Tipo di endpoint audio Supporto del comportamento
Built-In relatori
Built-In matrice microfono/microfono
Wired-Headset No
HDMI/DisplayPort No
Audio USB esterno No
Bluetooth Audio No

Requisiti del driver audio

Le informazioni sul comportamento vengono fornite al driver audio IHV sotto forma di orientamento. Il driver audio IHV dovrebbe avere conoscenze implicite sul fattore di forma del dispositivo e deve essere in grado di identificare l'orientamento predefinito e le posizioni relative del altoparlante/microfono. Queste informazioni possono essere recuperate da ACPI o da altri meccanismi IHV.

Strutture e costanti dei dati

PROPSETID

Si tratta del GUID usato per l'ID set di proprietà KS.

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

ID PROPRIETÀ

Questo è il valore usato per L'ID KSPROPERTY.

KSPROPERTY_AUDIOPOSTURE_ORIENTATION = 1

DESCRIZIONE PROPRIETÀ - AUDIOPOSTURE_ORIENTATION

Questa proprietà specifica l'orientamento corrente del sistema. L'orientamento è rappresentato dai gradi di rotazione dall'orientamento predefinito. Le informazioni sull'orientamento sono sincronizzate con os Shell, che include il blocco di orientamento utente/app. Il driver audio riceve questa enumerazione durante la gestione della richiesta di proprietà Set per KSPROPERTY_AUDIOPOSTURE_ORIENTATION.

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

Per altre informazioni, vedere l'enumerazione AUDIOPOSTURE_ORIENTATION.

GESTIONE DELLE PROPRIETÀ

Il driver audio deve implementare KSPROPSETID_AudioPosture: KSPROPERTY_AUDIOPOSTURE_ORIENTATION come proprietà pin-wise a cui si accede tramite l'handle di filtro. La proprietà deve essere supportata nel pin del bridge, ad esempio il pin che rappresenta l'endpoint hardware per l'endpoint.

SUPPORTO BASIC : KSPROPERTY_TYPE_BASICSUPPORT

Il driver audio deve restituire il supporto per set e flag di accesso.

SET – KSPROPERTY_TYPE_SET

Il driver audio riceve un puntatore a AUDIOPOSTURE_ORIENTATION come parametro del valore della richiesta di proprietà. In risposta a questa richiesta di proprietà, il driver audio può applicare le modifiche hardware o software necessarie per il nuovo stato di comportamento. La restituzione dell'esito positivo indica che il driver ha completato l'elaborazione della modifica. Se un apo IHV deve ricevere informazioni sul comportamento dal driver audio, i moduli audio possono essere usati per fornire il meccanismo di notifica. I driver devono memorizzare nella cache il valore in modo che possa essere applicato quando esce da bassa potenza/ibernazione

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
    .
    .
}

Vedi anche

Modello di driver Windows (WDM)

Panoramica dei driver audio