Partilhar via


Nós de topologia

Os aplicativos de áudio podem acessar controles de mixer por meio do mixer de funções multimídia do Microsoft WindowsGetLineControls. Essa função recupera uma matriz de uma ou mais estruturas MIXERCONTROL, cada uma das quais descreve o estado e as métricas de um único nó de controle em uma linha de áudio. O membro dwControlType da estrutura MIXERCONTROL é definido como um valor de enumeração que especifica o tipo do controle. Vários tipos de controle de mixer foram especificados para VxDs de áudio, mas apenas um subconjunto desses controles está disponível para drivers de áudio WDM.

O WDMAud converte alguns nós de topologia, mas não todos, em controles de linha de mixer correspondentes. Os tipos de nó de topologia listados na tabela a seguir têm equivalentes que são controles de linha de combinação.

Tipo de nó nome do tipo Topology-Node nome do tipo Mixer-Control

AGC

KSNODETYPE_AGC

MIXERCONTROL_CONTROLTYPE_ONOFF

Sonoridade

KSNODETYPE_LOUDNESS

MIXERCONTROL_CONTROLTYPE_LOUDNESS

Mute

KSNODETYPE_MUTE

MIXERCONTROL_CONTROLTYPE_MUTE

Tom (múltiplo)

KSNODETYPE_TONE

MIXERCONTROL_CONTROLTYPE_ONOFF (se KSPROPERTY_AUDIO_BASS_BOOST tiver suporte)

MIXERCONTROL_CONTROLTYPE_BASS (se KSPROPERTY_AUDIO_BASS tiver suporte)

MIXERCONTROL_CONTROLTYPE_TREBLE (se houver suporte para KSPROPERTY_AUDIO_TREBLE)

Volume

KSNODETYPE_VOLUME

MIXERCONTROL_CONTROLTYPE_VOLUME

Picometer

KSNODETYPE_PEAKMETER

MIXERCONTROL_CONTROLTYPE_PEAKMETER

MUX

KSNODETYPE_MUX

MIXERCONTROL_CONTROLTYPE_MUX

Estéreo largo

KSNODETYPE_STEREO_WIDE

MIXERCONTROL_CONTROLTYPE_FADER

Coro

KSNODETYPE_CHORUS

MIXERCONTROL_CONTROLTYPE_FADER

Reverb

KSNODETYPE_REVERB

MIXERCONTROL_CONTROLTYPE_FADER

Supermix (múltiplo)

KSNODETYPE_SUPERMIX

MIXERCONTROL_CONTROLTYPE_MUTE (se KSPROPERTY_AUDIO_MUTE tiver suporte no nó supermix)

MIXERCONTROL_CONTROLTYPE_VOLUME (consulte comentários em texto)

Os tipos de nó de topologia ausentes da tabela anterior não são convertidos em controles de linha de mixer e os controles de linha de mixer ausentes da tabela não são compatíveis com drivers de áudio WDM.

Observe que MIXERCONTROL_CONTROLTYPE_CUSTOM está ausente na tabela. Isso significa que os drivers de áudio WDM não dão suporte a controles de mixer personalizados.

Um nó de tom dá suporte a quatro propriedades: baixo, agudo, frequência média e aumento de baixo. A propriedade mid-frequency não tem nenhuma contraparte de linha de mixer, mas as outras três propriedades têm. Para cada nó de tom descoberto na topologia, uma consulta é feita para cada uma das propriedades com suporte:

KSPROPERTY_AUDIO_BASS

KSPROPERTY_AUDIO_TREBLE

KSPROPERTY_AUDIO_BASS_BOOST

Cada consulta de propriedade que é bem-sucedida gera um controle de linha de mixer. Devido a problemas de nomenclatura, um único nó de tom deve dar suporte apenas a uma única propriedade. Se um dispositivo der suporte a graves e agudos, por exemplo, ele deverá ter dois nós de tom para que os nós possam ter nomes diferentes.

Um nó supermix dá suporte a até dois controles: mudo e volume. Um nó supermix pode ser usado como um controle mute quando atende a pelo menos uma dessas duas condições para cada entrada na tabela de funcionalidades do nó supermix:

  • A entrada dá suporte à propriedade mute, conforme especificado pelos Capabilities. Ativar mudo do sinalizador.

  • A entrada é totalmente atenuada (atenuação de decibéis infinitos) e não pode ser exibida, o que é especificado por ambos os Recursos. Mínimo e Funcionalidades. Máximo com o valor LONG_MIN (0x80000000).

Um nó supermix pode ser usado como um controle de volume quando cada entrada na tabela de recursos supermix tem um intervalo diferente de zero. Todos os outros controles são convertidos um para um. Quando um nó reconhecido é encontrado, o driver de linha de mixer consulta a respectiva propriedade para esse nó.

Para marcar para suporte estéreo ou mono, o canal esquerdo é consultado, seguido pelo canal direito e, por fim, se ambos falharem, o canal de master (-1) será tentado. Se nenhuma dessas consultas for bem-sucedida, nenhum controle será gerado para esse nó. Observe que o nó MUX não é consultado para cada canal. Em vez disso, uma única consulta para recuperar a seleção atual do MUX é executada.

O nome do controle é retornado como uma cadeia de caracteres quando o nó é consultado para sua propriedade KSPROPERTY_TOPOLOGY_NAME . Se um nó gerar mais de um controle, todos os controles compartilharão o mesmo nome.