DeviceTopology API

Ознакомьтесь с примером высококачественной голосовой записи Майкрософт DMO.

API DeviceTopology предоставляет клиентским приложениям возможность обхода функциональных аппаратных топологий устройств отрисовки и захвата звука. С помощью интерфейсов и методов в API DeviceTopology клиенты могут обнаруживать функциональные подсоедины (например, управление громкостью), лежащие вдоль путей данных, которые приводят к устройствам конечной точки аудио и из нее. Клиенты могут проходить через внутренние топологии устройств аудиоадаптера и конечных точек звука, а также выполнять шаги между подключениями, которые связывают одно устройство с другим. Дополнительные сведения см. в разделе "Топологии устройств".

Файл заголовка Devicetopology.h определяет интерфейсы в API DeviceTopology.

Чтобы получить доступ к интерфейсам API DeviceTopology, клиент сначала получает ссылку на интерфейс IDeviceTopology для устройства звуковой конечной точки, выполнив следующие действия:

  1. Используя один из методов, описанных в интерфейсе IMMDevice, получите ссылку на интерфейс IMMDevice для устройства конечной точки аудио.
  2. Вызовите метод IMMDevice::Activate с параметром iid , равным REFIID IID_IDeviceTopology.

Клиент может получить ссылки на другие интерфейсы в API DeviceTopology, вызвав методы в интерфейсе IDeviceTopology .

API DeviceTopology реализует следующие интерфейсы.

Интерфейс Описание
IAudioAutoGainControl Предоставляет доступ к аппаратному автоматическому управлению получением (AGC).
IAudioBass Предоставляет доступ к аппаратному элементу управления уровня баса.
IAudioChannelConfig Предоставляет доступ к элементу управления конфигурации канала оборудования.
IAudioInputSelector Предоставляет доступ к аппаратному элементу управления мультиплексором (селектор ввода).
IAudioLoudness Предоставляет доступ к "громкому" контролю компенсации.
IAudioMidrange Предоставляет доступ к аппаратному элементу управления среднего уровня.
IAudioMute Предоставляет доступ к аппаратному отключению.
IAudioOutputSelector Предоставляет доступ к аппаратному элементу управления demultiplexer (селектор вывода).
IAudioPeakMeter Предоставляет доступ к аппаратному элементу управления пиковых показателей.
IAudioTreble Предоставляет доступ к аппаратному элементу управления требовательного уровня.
IAudioVolumeLevel Предоставляет доступ к аппаратному элементу управления громкости.
IConnector Представляет точку соединения между компонентами.
IControlInterface Представляет интерфейс элемента управления (подунить или соединитель).
IDeviceSpecificProperty Представляет свойство соединителя или подъединения, относящееся к устройству.
IDeviceTopology Предоставляет доступ к топологии звукового устройства.
IKsFormatSupport Предоставляет сведения о форматах аудиоданных, поддерживаемых программным подключением ввода-вывода (обычно канал DMA) между звуковым устройством и системной памятью.
IKsJackDescription Предоставляет сведения о разъемах или внутренних соединителях, которые обеспечивают физическое соединение между устройством на звуковом адаптере и внешним или внутренним устройством конечной точки (например, микрофоном или проигрывателем компакт-дисков).
Параметрической детали Представляет часть (соединитель или вложенный элемент) топологии устройства.
IPartsList Представляет список частей (соединителей и вложенных элементов).
IPerChannelDbLevel Представляет универсальный интерфейс управления подсоединения, который обеспечивает управление на уровне громкости в децибелах аудиопотока или полосы частоты в звуковом потоке.
ISubunit Представляет аппаратное подсоединение (например, элемент управления уровня громкости), лежащий в пути к данным между клиентом и устройством звуковой конечной точки.

 

Клиенты API DeviceTopology, требующие уведомления о событиях изменения элемента управления в соединителях и вложенных элементах, должны реализовать следующий интерфейс.

Интерфейс Описание
IControlChangeNotify Предоставляет уведомления при изменении состояния части (соединителя или подуниверсии).

 

Топологии устройств

Справочник по программированию