DeviceTopology-API

Weitere Informationen finden Sie unter Microsoft High Quality Voice Capture DMO Sample.

Die DeviceTopology-API bietet Clientanwendungen die Möglichkeit, die funktionalen Hardwaretopologien von Audiorendering- und Erfassungsgeräten zu durchlaufen. Über die Schnittstellen und Methoden in der DeviceTopology-API können Clients die funktionalen Untereinheiten (z. B. volume control) ermitteln, die sich entlang der Datenpfade befinden, die zu und von Audioendpunktgerätenführen. Clients können die internen Topologien von Audioadaptergeräten und Audioendpunktgeräten durchlaufen und die Verbindungen durchlaufen, die ein Gerät mit einem anderen verbinden. Weitere Informationen finden Sie unter Gerätetopologien.

Die Headerdatei Devicetopology.h definiert die Schnittstellen in der DeviceTopology-API.

Um auf die DeviceTopology-API-Schnittstellen zuzugreifen, ruft ein Client zunächst einen Verweis auf die IDeviceTopology-Schnittstelle für ein Audioendpunktgerät ab, indem er die folgenden Schritte vornimmt:

  1. Rufen Sie mithilfe einer der unter IMMDevice-Schnittstelle beschriebenenVerfahren einen Verweis auf die IMMDevice-Schnittstelle für ein Audioendpunktgerät ab.
  2. Rufen Sie die IMMDevice::Activate-Methode auf, wobei der Parameter iid auf REFIID IID _ IDeviceTopology festgelegt ist.

Der Client kann Verweise auf die anderen Schnittstellen in der DeviceTopology-API abrufen, indem er die Methoden in der IDeviceTopology-Schnittstelle aufruft.

Die DeviceTopology-API implementiert die folgenden Schnittstellen.

Schnittstelle BESCHREIBUNG
IAudioAutoGainControl Ermöglicht den Zugriff auf eine automatische Hardwaregewinnsteuerung (Automatic Gain Control, AGC).
IAudioBass Ermöglicht den Zugriff auf eine Hardwaresteuerung auf Hardwareebene.
IAudioChannelConfig Ermöglicht den Zugriff auf eine Hardwarekanalkonfigurationssteuerung.
IAudioInputSelector Ermöglicht den Zugriff auf ein Hardware-Multiplexer-Steuerelement (Eingabeselektor).
IAudioLoudness Ermöglicht den Zugriff auf eine "Lautstärke"-Kompensationssteuerung.
IAudioMidrange Ermöglicht den Zugriff auf eine Hardwaresteuerung auf mittlerer Ebene.
IAudioMute Ermöglicht den Zugriff auf ein Hardware-Mute-Steuerelement.
IAudioOutputSelector Ermöglicht den Zugriff auf ein Hardwaredemultiplexer-Steuerelement (Ausgabeselektor).
IAudioPeakMeter Ermöglicht den Zugriff auf ein Hardware-Peak-Meter-Steuerelement.
IAudioTreble Ermöglicht den Zugriff auf eine Hardwaretreble-Level-Steuerung.
IAudioVolumeLevel Ermöglicht den Zugriff auf eine Hardwarevolumesteuerung.
IConnector Stellt einen Verbindungspunkt zwischen Komponenten dar.
IControlInterface Stellt eine Steuerelementschnittstelle für einen Teil (Untereinheit oder Connector) dar.
IDeviceSpecificProperty Stellt eine gerätespezifische Eigenschaft eines Connectors oder einer Untereinheit dar.
IDeviceTopology Ermöglicht den Zugriff auf die Topologie eines Audiogeräts.
IKsFormatSupport Stellt Informationen zu den Audiodatenformaten bereit, die von einer softwarekonfigurierten E/A-Verbindung (in der Regel einem DMA-Kanal) zwischen dem Audiogerät und dem Systemspeicher unterstützt werden.
IKsJackDescription Stellt Informationen zu den Buchsen oder internen Connectors bereit, die eine physische Verbindung zwischen einem Gerät auf einem Audioadapter und einem externen oder internen Endpunktgerät (z. B. einem Mikrofon oder CD-Player) bereitstellen.
Ipart Stellt einen Teil (Connector oder Untereinheit) einer Gerätetopologie dar.
IPartsList Stellt eine Liste von Teilen (Connectors und Untereinheiten) dar.
IPerChannelDbLevel Stellt eine generische Untereinheitssteuerungsschnittstelle dar, die kanalspezifische Steuerungen über die Lautstärkeebene eines Audiodatenstroms oder eines Frequenzbands in einem Audiostream in Decibeln bereitstellt.
ISubunit Stellt eine Hardwareuntereinheit (z. B. eine Steuerung auf Volumeebene) dar, die sich im Datenpfad zwischen einem Client und einem Audioendpunktgerät befindet.

DeviceTopology-API-Clients, die eine Benachrichtigung über Steuerungsänderungsereignisse in Connectors und Untereinheiten erfordern, sollten die folgende Schnittstelle implementieren.

Schnittstelle BESCHREIBUNG
IControlChangeNotify Stellt Benachrichtigungen bereit, wenn sich der Status eines Teils (Connector oder Untereinheit) ändert.

Gerätetopologien

Programmierverzeichnis