DeviceTopology-API

Weitere Informationen finden Sie im Microsoft-DMO-Beispiel für die sprachaufzeichnung mit hoher Qualität.

Die DeviceTopology-API bietet Clientanwendungen die Möglichkeit, die funktionalen Hardwaretopologien von Audiorendering- und Aufzeichnungsgeräten zu durchlaufen. Über die Schnittstellen und Methoden in der DeviceTopology-API können Clients die funktionalen Untereinheiten (z. B. Volumesteuerung) ermitteln, die entlang der Datenpfade liegen, die zu und von Audioendpunktgeräten fü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 ausführt:

  1. Rufen Sie mithilfe einer der unter IMMDevice Interface beschriebenen Techniken einen Verweis auf die IMMDevice-Schnittstelle für ein Audioendpunktgerät ab.
  2. Rufen Sie die IMMDevice::Activate-Methode auf, wobei 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 Verstärkungssteuerung (Hardware Automatic Gain Control, AGC).
IAudioBass Ermöglicht den Zugriff auf eine Hardwaresteuerung auf Bassebene.
IAudioChannelConfig Ermöglicht den Zugriff auf ein Hardwarekanalkonfigurationssteuerelement.
IAudioInputSelector Ermöglicht den Zugriff auf ein Hardware-Multiplexer-Steuerelement (Eingabeauswahl).
IAudioLoudness Ermöglicht den Zugriff auf ein "Lautstärke"-Kompensationssteuerelement.
IAudioMidrange Ermöglicht den Zugriff auf ein Hardware-Midrange-Level-Steuerelement.
IAudioMute Ermöglicht den Zugriff auf ein Hardware stummschaltbares Steuerelement.
IAudioOutputSelector Ermöglicht den Zugriff auf ein Hardwaredemultiplexer-Steuerelement (Ausgabeauswahl).
IAudioPeakMeter Ermöglicht den Zugriff auf ein Hardware-Peak-Meter-Steuerelement.
IAudioTreble Ermöglicht den Zugriff auf ein Hardwaresteuerelement auf Dreifachebene.
IAudioVolumeLevel Ermöglicht den Zugriff auf eine Hardwarevolumesteuerung.
IConnector Stellt einen Verbindungspunkt zwischen Komponenten dar.
IControlInterface Stellt eine Steuerelementschnittstelle für ein 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 ein DMA-Kanal) zwischen dem Audiogerät und dem Systemspeicher unterstützt werden.
IKsJackDescription Stellt Informationen zu den Buchsen oder internen Anschlüssen bereit, die eine physische Verbindung zwischen einem Gerät auf einem Audioadapter und einem externen oder internen Endpunktgerät (z. B. 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 Steuerung über den Lautstärkepegel eines Audiodatenstroms oder eines Frequenzbands in einem Audiodatenstrom in Dezibel bietet.
ISubunit Stellt eine Hardwareuntereinheit (z. B. ein Steuerelement auf Volumeebene) dar, die sich im Datenpfad zwischen einem Client und einem Audioendpunktgerät befindet.

 

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

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

 

Gerätetopologien

Programmierverzeichnis