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 реализует следующие интерфейсы.

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

 

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

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

 

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

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