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:
- Rufen Sie mithilfe einer der unter IMMDevice Interface beschriebenen Techniken einen Verweis auf die IMMDevice-Schnittstelle für ein Audioendpunktgerät ab.
- 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. |
Zugehörige Themen