Freigeben über


Topologieknoten

Audioanwendungen können über den Microsoft Windows-MultimediafunktionsmischerGetLineControls auf Mixer-Steuerelemente zugreifen. Diese Funktion ruft ein Array von mindestens einer MIXERCONTROL-Struktur ab, die jeweils den Zustand und die Metriken eines einzelnen Steuerungsknotens in einer Audioleitung beschreibt. Das dwControlType-Element der MIXERCONTROL-Struktur ist auf einen Enumerationswert festgelegt, der den Typ des Steuerelements angibt. Für Audio-VxDs wurde eine Reihe von Mixersteuerungstypen angegeben, aber nur eine Teilmenge dieser Steuerelemente ist für WDM-Audiotreiber verfügbar.

WDMAud übersetzt einige, aber nicht alle Topologieknoten in entsprechende Mixerliniensteuerelemente. Die Topologieknotentypen, die in der folgenden Tabelle aufgeführt sind, verfügen über Entsprechungen, die Mischliniensteuerelemente sind.

Knotentyp Topology-Node Typname Mixer-Control Typname

AGC

KSNODETYPE_AGC

MIXERCONTROL_CONTROLTYPE_ONOFF

Lautstärke

KSNODETYPE_LOUDNESS

MIXERCONTROL_CONTROLTYPE_LOUDNESS

Mute

KSNODETYPE_MUTE

MIXERCONTROL_CONTROLTYPE_MUTE

Ton (mehrfach)

KSNODETYPE_TONE

MIXERCONTROL_CONTROLTYPE_ONOFF (wenn KSPROPERTY_AUDIO_BASS_BOOST unterstützt wird)

MIXERCONTROL_CONTROLTYPE_BASS (wenn KSPROPERTY_AUDIO_BASS unterstützt wird)

MIXERCONTROL_CONTROLTYPE_TREBLE (wenn KSPROPERTY_AUDIO_TREBLE unterstützt wird)

Volume

KSNODETYPE_VOLUME

MIXERCONTROL_CONTROLTYPE_VOLUME

Peakmeter

KSNODETYPE_PEAKMETER

MIXERCONTROL_CONTROLTYPE_PEAKMETER

MUX

KSNODETYPE_MUX

MIXERCONTROL_CONTROLTYPE_MUX

Stereo breit

KSNODETYPE_STEREO_WIDE

MIXERCONTROL_CONTROLTYPE_FADER

Chor

KSNODETYPE_CHORUS

MIXERCONTROL_CONTROLTYPE_FADER

Reverb

KSNODETYPE_REVERB

MIXERCONTROL_CONTROLTYPE_FADER

Supermix (mehrfach)

KSNODETYPE_SUPERMIX

MIXERCONTROL_CONTROLTYPE_MUTE (wenn KSPROPERTY_AUDIO_MUTE im Supermix-Knoten unterstützt wird)

MIXERCONTROL_CONTROLTYPE_VOLUME (siehe Kommentare im Text)

Topologieknotentypen, die in der vorherigen Tabelle fehlen, werden nicht in Mixerliniensteuerelemente übersetzt, und Mixerliniensteuerelemente, die in der Tabelle fehlen, werden von WDM-Audiotreibern nicht unterstützt.

Beachten Sie, dass MIXERCONTROL_CONTROLTYPE_CUSTOM in der Tabelle fehlt. Dies bedeutet, dass WDM-Audiotreiber keine benutzerdefinierten Mixersteuerelemente unterstützen.

Ein Tonknoten unterstützt vier Eigenschaften: Bass, Höhen, Mittelfrequenz und Bassverstärkung. Die Mid-Frequency-Eigenschaft hat kein Gegenstück für Mixerlinien, aber die anderen drei Eigenschaften tun dies. Für jeden in der Topologie ermittelten Tonknoten wird eine Abfrage für jede der unterstützten Eigenschaften erstellt:

KSPROPERTY_AUDIO_BASS

KSPROPERTY_AUDIO_TREBLE

KSPROPERTY_AUDIO_BASS_BOOST

Bei jeder erfolgreichen Eigenschaftenabfrage wird ein Mixer-Line-Steuerelement generiert. Aufgrund von Benennungsproblemen sollte ein einzelner Tonknoten nur eine einzelne Eigenschaft unterstützen. Wenn ein Gerät z. B. sowohl Bass als auch Höhen unterstützt, sollte es über zwei Tonknoten verfügen, damit die Knoten unterschiedliche Namen haben können.

Ein Supermix-Knoten unterstützt bis zu zwei Steuerelemente: Stummschaltung und Volume. Ein Supermix-Knoten kann als Stummschaltungssteuerelement verwendet werden, wenn es mindestens eine dieser beiden Bedingungen für jeden Eintrag in der Funktionstabelle des Supermix-Knotens erfüllt:

  • Der Eintrag unterstützt die Stummschaltungseigenschaft, wie in den Funktionen angegeben. Kennzeichen stummschalten .

  • Der Eintrag ist vollständig abgeschwächt (Dezibel-Infinity-Dämpfung) und kann nicht aktiviert werden, was von beiden Funktionen angegeben wird. Minimum und Funktionen. Maximal , wenn der Wert LONG_MIN (0x80000000).

Ein Supermix-Knoten kann als Lautstärkeregler verwendet werden, wenn jeder Eintrag in der Tabelle der Supermix-Funktionen einen Nonzero-Bereich aufweist. Alle anderen Steuerelemente werden 1:1 übersetzt. Wenn ein erkannter Knoten gefunden wird, fragt der Mixerzeilentreiber die entsprechende Eigenschaft für diesen Knoten ab.

Um nach Stereo- oder Monounterstützung zu suchen, wird der linke Kanal abgefragt, gefolgt vom rechten Kanal, und wenn beide Fehler auftreten, wird schließlich der master Kanal (-1) versucht. Wenn keine dieser Abfragen erfolgreich ist, wird für diesen Knoten kein Steuerelement generiert. Beachten Sie, dass der MUX-Knoten nicht für jeden Kanal abgefragt wird. Stattdessen wird eine einzelne Abfrage zum Abrufen der aktuellen MUX-Auswahl ausgeführt.

Der Name des Steuerelements wird als Zeichenfolge zurückgegeben, wenn der Knoten nach seiner KSPROPERTY_TOPOLOGY_NAME-Eigenschaft abgefragt wird. Wenn ein Knoten mehr als ein Steuerelement generiert, haben alle Steuerelemente den gleichen Namen.