Compartir a través de


Nodos de topología

Las aplicaciones de audio pueden acceder a los controles mezcladores a través de la mezclador de funciones multimedia de Microsoft WindowsGetLineControls. Esta función recupera una matriz de una o varias estructuras MIXERCONTROL, cada una de las cuales describe el estado y las métricas de un único nodo de control en una línea de audio. El miembro dwControlType de la estructura MIXERCONTROL se establece en un valor de enumeración que especifica el tipo del control. Se han especificado varios tipos de control mezclador para VxD de audio, pero solo hay disponible un subconjunto de estos controles para los controladores de audio WDM.

WDMAud traduce algunos nodos de topología, pero no todos, en los controles de línea mezclador correspondientes. Los tipos de nodo de topología que se enumeran en la tabla siguiente tienen homólogos que son controles de línea mezclador.

Tipo de nodo nombre de tipo de Topology-Node nombre de tipo de Mixer-Control

AGC

KSNODETYPE_AGC

MIXERCONTROL_CONTROLTYPE_ONOFF

Sonoridad

KSNODETYPE_LOUDNESS

MIXERCONTROL_CONTROLTYPE_LOUDNESS

Silencio

KSNODETYPE_MUTE

MIXERCONTROL_CONTROLTYPE_MUTE

Tono (múltiplo)

KSNODETYPE_TONE

MIXERCONTROL_CONTROLTYPE_ONOFF (si se admite KSPROPERTY_AUDIO_BASS_BOOST)

MIXERCONTROL_CONTROLTYPE_BASS (si se admite KSPROPERTY_AUDIO_BASS)

MIXERCONTROL_CONTROLTYPE_TREBLE (si se admite KSPROPERTY_AUDIO_TREBLE)

Volumen

KSNODETYPE_VOLUME

MIXERCONTROL_CONTROLTYPE_VOLUME

Peakmeter

KSNODETYPE_PEAKMETER

MIXERCONTROL_CONTROLTYPE_PEAKMETER

MUX

KSNODETYPE_MUX

MIXERCONTROL_CONTROLTYPE_MUX

Ancho estéreo

KSNODETYPE_STEREO_WIDE

MIXERCONTROL_CONTROLTYPE_FADER

Coro

KSNODETYPE_CHORUS

MIXERCONTROL_CONTROLTYPE_FADER

Reverberación

KSNODETYPE_REVERB

MIXERCONTROL_CONTROLTYPE_FADER

Supermezcla (múltiplo)

KSNODETYPE_SUPERMIX

MIXERCONTROL_CONTROLTYPE_MUTE (si se admite KSPROPERTY_AUDIO_MUTE en el nodo supermezcla)

MIXERCONTROL_CONTROLTYPE_VOLUME (ver comentarios en texto)

Los tipos de nodo de topología que faltan en la tabla anterior no se traducen en controles de línea mezcladora y los controles de línea de mezclador que faltan en la tabla no son compatibles con los controladores de audio WDM.

Tenga en cuenta que MIXERCONTROL_CONTROLTYPE_CUSTOM falta en la tabla. Esto significa que los controladores de audio WDM no admiten controles de mezclador personalizados.

Un nodo de tono admite cuatro propiedades: bass, treble, mid-frequency y bass boost. La propiedad mid-frequency no tiene homólogo de línea mezcladora, pero las otras tres propiedades sí. Para cada nodo de tono detectado en la topología, se realiza una consulta para cada una de las propiedades admitidas:

KSPROPERTY_AUDIO_BASS

KSPROPERTY_AUDIO_TREBLE

KSPROPERTY_AUDIO_BASS_BOOST

Cada consulta de propiedad que se realiza correctamente genera un control de línea mezcladora. Debido a problemas de nomenclatura, un único nodo de tono solo debe admitir una sola propiedad. Si un dispositivo admite graves y agudos, por ejemplo, debe tener dos nodos de tono para que los nodos puedan tener nombres diferentes.

Un nodo supermezcla admite hasta dos controles: silenciar y volumen. Un nodo de supermezcla se puede usar como control de exclusión cuando satisface al menos una de estas dos condiciones para cada entrada de la tabla de funcionalidades del nodo supermezcla:

  • La entrada admite la propiedad mute, tal como se especifica en Capabilities. Silenciar marca.

  • La entrada está totalmente atenuada (atenuación de decibelios infinitos) y no se puede activar, que se especifica en ambas funcionalidades. Mínimo y funcionalidades. Máximo que tiene el valor LONG_MIN (0x80000000).

Un nodo supermezcla se puede usar como control de volumen cuando cada entrada de la tabla de funcionalidades de supermezcla tiene un rango distinto de cero. Todos los demás controles se traducen uno a uno. Cuando se encuentra un nodo reconocido, el controlador de línea mezclador consulta la propiedad correspondiente para ese nodo.

Para comprobar la compatibilidad con estéreo o mono, se consulta el canal izquierdo, seguido del canal derecho y, por último, si se produce un error en ambos, se intenta el canal maestro (-1). Si ninguna de estas consultas se realiza correctamente, no se genera ningún control para ese nodo. Tenga en cuenta que el nodo MUX no se consulta para cada canal. En su lugar, se realiza una sola consulta para recuperar la selección MUX actual.

El nombre del control se devuelve como una cadena cuando se consulta el nodo para su propiedad KSPROPERTY_TOPOLOGY_NAME . Si un nodo genera más de un control, todos los controles comparten el mismo nombre.