Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Visão geral
Os dispositivos podem ser utilizados em diferentes posturas. Para um tablet, postura significa basicamente a orientação que ele é mantido, como retrato ou paisagem. A experiência de áudio para estes dispositivos pode ser otimizada para posturas específicas. Por exemplo, os pontos finais de áudio podem remapear os canais esquerdo/direito para uma experiência estéreo adequada em orientações diferentes. Também é possível calibrar microfones para supressão de ruído, cancelamento de eco, etc., com base em locais alterados de alto-falante/microfone após mudanças de postura.
Suporte ao sistema operacional Windows
A postura de áudio é suportada no Windows 11, versão 22000 e posterior.
Arquitetura
Os cenários associados à postura para terminais de áudio são baseados nas respostas do Shell às mudanças de postura. O Shell trabalha com sensores e entrada do usuário (por exemplo, bloqueio de orientação) para determinar a postura geral do sistema. A Audio Stack do Sistema Operativo recebe notificações de postura do Shell e informa os endpoints de áudio que suportam o DDI de Postura Áudio.
A pilha de áudio não altera o conteúdo do fluxo de áudio em resposta a alterações de postura. Em vez disso, é a pilha de áudio que informa o driver de áudio sobre essas alterações. A expectativa é que os componentes de áudio IHV se adaptem a essas mudanças com processamento de sinal implementado em hardware (DSP) ou como um software APO.
Para PCs desktop, os cenários relacionados à postura para pontos finais de áudio se alinham com a tela. A pilha de áudio do SO recebe notificações de postura do monitor e informa os pontos finais de áudio que suportam o DDI de postura de áudio.
O diagrama a seguir mostra a relação e o fluxo de controle entre os componentes envolvidos no manuseio de mudanças de postura para dispositivos de áudio.
Componentes
Shell e sensores do SO
O Shell monitora várias informações do sensor fornecidas pelos drivers do sensor. Juntamente com as informações do sensor, o Shell considera as preferências do utilizador, como o bloqueio de orientação e as exceções de aplicativos, para determinar a postura do sistema.
Pilha de áudio do Sistema Operativo
O OS Audio Stack recebe informações de postura do Shell. Quando ocorre uma alteração na postura do sistema, a pilha de áudio informa os terminais de áudio sensíveis à postura usando uma propriedade KS.
Driver de áudio IHV e APO
O driver de áudio IHV, juntamente com um APO opcional, lida com mudanças de postura a partir da pilha de áudio do sistema operacional. Apenas os dispositivos de áudio integrados localizados diretamente no chassi principal da máquina, que são impactados por mudanças de postura, devem indicar que suportam mudanças de postura.
Requisitos de suporte de ponto final de áudio
A tabela a seguir mostra os tipos de terminais de áudio que devem ou não fornecer suporte posicional.
| Tipo de ponto final de áudio | Apoio à Postura |
|---|---|
| Built-In Palestrantes | Sim |
| Built-In Conjunto de microfones/microfones | Sim |
| Wired-Headset | Não |
| HDMI/DisplayPort | Não |
| Áudio USB externo | Não |
| Áudio Bluetooth | Não |
Requisitos do driver de áudio
As informações de postura são fornecidas ao driver de áudio IHV na forma de orientação. Espera-se que o driver de áudio IHV tenha conhecimento implícito sobre o fator de forma do dispositivo e deve ser capaz de identificar a orientação padrão e as posições relativas do alto-falante/microfone. Esta informação pode ser obtida a partir da ACPI ou por outro mecanismo IHV.
Estruturas de dados e constantes
PROPSETID
Este é o GUID utilizado para o conjunto de propriedades KS id.
KSPROPSETID_AudioPosture =A3FB7B0D-474E-4F51-A379-51282DD4FA8F
IDENTIFICAÇÃO DO IMÓVEL
Este é o valor usado para KSPROPERTY ID.
KSPROPERTY_AUDIOPOSTURE_ORIENTATION = 1
DESCRIÇÃO DO IMÓVEL - AUDIOPOSTURE_ORIENTATION
Esta propriedade especifica a orientação atual do sistema. A orientação é representada pelos graus de rotação da orientação padrão. As informações de orientação estão sincronizadas com o Shell do SO, que inclui o bloqueio de orientação do usuário/aplicativo. O driver de áudio recebe essa enumeração ao manipular a solicitação de propriedade Set para KSPROPERTY_AUDIOPOSTURE_ORIENTATION.
typedef enum
{
AUDIOPOSTURE_PANEL_ORIENTATION_NOTROTATED = 0,
AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED90DEGREESCOUNTERCLOCKWISE,
AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED180DEGREESCOUNTERCLOCKWISE,
AUDIOPOSTURE_PANEL_ORIENTATION_ROTATED270DEGREESCOUNTERCLOCKWISE,
} AUDIOPOSTURE_ORIENTATION;
Para obter mais informações, consulte o AUDIOPOSTURE_ORIENTATION enum.
GESTÃO DE PROPRIEDADES
O driver de áudio deve implementar KSPROPSETID_AudioPosture – KSPROPERTY_AUDIOPOSTURE_ORIENTATION como uma propriedade pin-wise que é acessada através da alça de filtro. A propriedade deve ser suportada no pino de ligação, ou seja, o pino que representa a extremidade de hardware no ponto de extremidade.
SUPORTE BÁSICO – KSPROPERTY_TYPE_BASICSUPPORT
O driver de áudio deve retornar o suporte para definir e acessar sinalizadores.
SET – KSPROPERTY_TYPE_SET
O controlador de áudio recebe um ponteiro para AUDIOPOSTURE_ORIENTATION como parâmetro de valor da solicitação de propriedade. Em resposta a essa solicitação de propriedade, o driver de áudio pode aplicar as alterações de hardware ou software necessárias para o novo estado de postura. O retorno bem-sucedido indica que o driver terminou de processar a alteração. Se um APO IHV precisar receber informações de postura do controlador de áudio, os Módulos de Áudio podem ser usados para fornecer o mecanismo de notificação. Os controladores devem armazenar em cache o valor para que ele possa ser aplicado ao sair do modo de baixo consumo de energia/hibernação
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
.
.
}