Поделиться через


Поддержка звукового положения

Общие сведения

Устройства можно использовать в разных положениях. Для планшета положение в основном означает ориентацию, которую он проводит, например книжную или альбомную. Звуковой интерфейс для этих устройств можно оптимизировать для определенных поз. Например, конечные точки звука могут переназначить левый и правый каналы для правильного взаимодействия с стереосистемой в разных ориентациях. Кроме того, можно откалибровать микрофоны для подавления шума, подавления эха и т. д. в зависимости от измененных расположений динамиков и микрофонов при изменении положения.

Поддержка ОС Windows

Состояние звука поддерживается в Windows 11 версии 22000 и более поздних.

Архитектура

Сценарии, связанные с состоянием, для конечных точек звука основаны на ответах оболочки на изменения состояния. Оболочка работает с датчиками и вводом данных пользователем (например, блокировкой ориентации) для определения общего состояния системы. Звуковой стек ОС получает уведомления о позе из оболочки и информирует конечные точки звука, поддерживающие DDI состояния звука.

Звуковой стек не изменяет содержимое аудиопотока в ответ на изменения состояния. Вместо этого звуковой стек информирует звуковой драйвер об этих изменениях. Ожидается, что аудиокомпоненты IHV будут адаптироваться к этим изменениям с помощью обработки сигналов, реализованной в оборудовании (DSP) или в качестве программного APO.

Для настольных компьютеров сценарии, связанные с состоянием конечных точек звука, соответствуют дисплею. Звуковой стек ОС получает уведомления о позе от дисплея и информирует конечные точки звука, поддерживающие DDI состояния звука.

На следующей схеме показана связь и поток управления между компонентами, участвующими в обработке изменений состояния звуковых устройств.

Схема, показывающая связь между оболочкой ОС, звуком ОС, APO, PortCls и звуковым драйвером при обработке изменений состояния звуковых устройств.

Компоненты

Оболочка ОС и датчики

Оболочка отслеживает различные сведения о датчиках, предоставляемые драйверами датчиков. Наряду со сведениями о датчике оболочка учитывает пользовательские настройки, такие как блокировка ориентации и переопределения приложений, для определения состояния системы.

Звуковой стек ОС

Звуковой стек ОС получает сведения о состоянии из оболочки. При изменении состояния системы стек аудио информирует конечные точки звука с учетом состояния с помощью свойства KS.

Аудиодрайв IHV и APO

Звуковой драйвер IHV вместе с дополнительным APO обрабатывает изменения состояния из звукового стека ОС. Только подключенные звуковые устройства, расположенные непосредственно на корпусе main машины, на которые повлияли изменения положения, должны указывать на поддержку положения.

Требования к поддержке конечной точки аудио

В следующей таблице показаны типы конечных точек звука, которые должны и не должны обеспечивать поддержку состояния.

Тип конечной точки аудио Поддержка осанки
Докладчики Built-In Да
Built-In микрофон/массив микрофонов Да
Wired-Headset Нет
HDMI/DisplayPort Нет
Внешний USB-звук Нет
Bluetooth Audio Нет

Требования к аудиодрайву

Сведения о состоянии предоставляются звуковому драйверу IHV в виде ориентации. Предполагается, что звуковой драйвер IHV будет иметь неявные знания о форм-факторе устройства и должен уметь определять ориентацию по умолчанию и относительные положения динамиков и микрофонов. Эти сведения можно получить из ACPI или с помощью другого механизма IHV.

Структуры данных и константы

PROPSETID

Это GUID, используемый для идентификатора набора свойств KS.

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

ИДЕНТИФИКАТОР СВОЙСТВА

Это значение, используемое для идентификатора KSPROPERTY.

KSPROPERTY_AUDIOPOSTURE_ORIENTATION = 1

ОПИСАНИЕ СВОЙСТВА — AUDIOPOSTURE_ORIENTATION

Это свойство указывает текущую ориентацию системы. Ориентация представлена степенями поворота из ориентации по умолчанию. Сведения об ориентации синхронизируются с оболочкой ОС, которая включает блокировку ориентации пользователя или приложения. Звуковой драйвер получает это перечисление при обработке запроса свойства Set для KSPROPERTY_AUDIOPOSTURE_ORIENTATION.

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

Дополнительные сведения см . в перечислении AUDIOPOSTURE_ORIENTATION.

ОБРАБОТКА СВОЙСТВ

Звуковой драйвер должен реализовывать KSPROPSETID_AudioPosture — KSPROPERTY_AUDIOPOSTURE_ORIENTATION как свойство с закреплением, доступ к которому осуществляется через дескриптор фильтра. Свойство должно поддерживаться в контакте моста, т. е. контакте, представляющем конечную точку оборудования, для конечной точки.

БАЗОВАЯ ПОДДЕРЖКА — KSPROPERTY_TYPE_BASICSUPPORT

Звуковой драйвер должен возвращать поддержку флагов установки и доступа.

SET — KSPROPERTY_TYPE_SET

Аудиодрайвер получает указатель на AUDIOPOSTURE_ORIENTATION в качестве параметра значения запроса свойства. В ответ на запрос этого свойства звуковой драйвер может применить необходимые изменения оборудования или программного обеспечения для нового состояния состояния. Возврат успешного выполнения означает, что драйвер завершил обработку изменения. Если APO IHV требуется получать сведения о состоянии от звукового драйвера, для предоставления механизма уведомления можно использовать звуковые модули. Драйверы должны кэшировать значение, чтобы его можно было применить при выходе из режима низкой мощности или гибернации

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

См. также раздел

Модель драйвера Windows (WDM)

Обзор аудиодрайверов