Nodi della topologia

Le applicazioni audio possono accedere ai controlli mixer tramite il mixer delle funzioni multimediali di Microsoft WindowsGetLineControls. Questa funzione recupera una matrice di una o più strutture MIXERCONTROL, ognuna delle quali descrive lo stato e le metriche di un singolo nodo di controllo in una riga audio. Il membro dwControlType della struttura MIXERCONTROL è impostato su un valore di enumerazione che specifica il tipo del controllo. Per i driver audio WDM sono stati specificati diversi tipi di controllo mixer, ma solo un subset di questi controlli è disponibile per i driver audio WDM.

WDMAud converte alcuni nodi della topologia ma non tutti i nodi della topologia nei controlli della riga di mixer corrispondenti. I tipi di nodo della topologia elencati nella tabella seguente hanno controparti che sono controlli line-mixer.

Tipo di nodo Topology-Node Nome tipo Mixer-Control Nome tipo

AGC

KSNODETYPE_AGC

MIXERCONTROL_CONTROLTYPE_ONOFF

Sonorità

KSNODETYPE_LOUDNESS

MIXERCONTROL_CONTROLTYPE_LOUDNESS

Disattiva audio

KSNODETYPE_MUTE

MIXERCONTROL_CONTROLTYPE_MUTE

Tono (più)

KSNODETYPE_TONE

MIXERCONTROL_CONTROLTYPE_ONOFF (se KSPROPERTY_AUDIO_BASS_BOOST è supportato)

MIXERCONTROL_CONTROLTYPE_BASS (se KSPROPERTY_AUDIO_BASS è supportato)

MIXERCONTROL_CONTROLTYPE_TREBLE (se KSPROPERTY_AUDIO_TREBLE è supportato)

Volume

KSNODETYPE_VOLUME

MIXERCONTROL_CONTROLTYPE_VOLUME

Piccometro

KSNODETYPE_PEAKMETER

MIXERCONTROL_CONTROLTYPE_PEAKMETER

MUX

KSNODETYPE_MUX

MIXERCONTROL_CONTROLTYPE_MUX

Stereo wide

KSNODETYPE_STEREO_WIDE

MIXERCONTROL_CONTROLTYPE_FADER

Coro

KSNODETYPE_CHORUS

MIXERCONTROL_CONTROLTYPE_FADER

Riverbero

KSNODETYPE_REVERB

MIXERCONTROL_CONTROLTYPE_FADER

Supermix (più)

KSNODETYPE_SUPERMIX

MIXERCONTROL_CONTROLTYPE_MUTE (se KSPROPERTY_AUDIO_MUTE è supportato nel nodo supermix)

MIXERCONTROL_CONTROLTYPE_VOLUME (vedere commenti nel testo)

I tipi di nodo della topologia mancanti dalla tabella precedente non vengono convertiti in controlli line di mixer e i controlli a riga di mixer mancanti dalla tabella non sono supportati dai driver audio WDM.

Si noti che MIXERCONTROL_CONTROLTYPE_CUSTOM manca dalla tabella. Ciò significa che i driver audio WDM non supportano controlli mixer personalizzati.

Un nodo tono supporta quattro proprietà: basso, treble, mid-frequency e basso boost. La proprietà a frequenza media non ha una controparte della linea di mixer, ma le altre tre proprietà fanno. Per ogni nodo tono individuato nella topologia, viene eseguita una query per ognuna delle proprietà supportate:

KSPROPERTY_AUDIO_BASS

KSPROPERTY_AUDIO_TREBLE

KSPROPERTY_AUDIO_BASS_BOOST

Ogni query di proprietà che ha esito positivo genera un controllo riga di mixer. A causa di problemi di denominazione, un singolo nodo tono deve supportare solo una singola proprietà. Se un dispositivo supporta sia basso che treble, ad esempio, deve avere due nodi di tono in modo che i nodi possano avere nomi diversi.

Un nodo supermix supporta fino a due controlli: mute e volume. Un nodo supermix può essere usato come controllo mute quando soddisfa almeno una di queste due condizioni per ogni voce della tabella delle funzionalità del nodo supermix:

  • La voce supporta la proprietà mute, come specificato dalle funzionalità. Contrassegno di disattivazione.

  • La voce è completamente attenuata (attenuazione decibel infinito) e non può essere attivata, che è specificata da entrambe le funzionalità. Funzionalità e minime.Valore massimo LONG_MIN (0x80000000).

Un nodo supermix può essere usato come controllo del volume quando ogni voce della tabella delle funzionalità supermix ha un intervallo diverso da zero. Tutti gli altri controlli vengono tradotti uno a uno. Quando viene rilevato un nodo riconosciuto, il driver line-mixer esegue una query sulla rispettiva proprietà per tale nodo.

Per verificare la presenza di supporto stereo o mono, il canale sinistro viene sottoposto a query, seguito dal canale destro e infine, se entrambi hanno esito negativo, viene provato il canale master (-1). Se nessuna di queste query ha esito positivo, non viene generato alcun controllo per tale nodo. Si noti che il nodo MUX non viene sottoposto a query per ogni canale. Viene invece eseguita una singola query per recuperare la selezione MUX corrente.

Il nome del controllo viene restituito come stringa quando il nodo viene sottoposto a query per la relativa proprietà KSPROPERTY_TOPOLOGY_NAME . Se un nodo genera più di un controllo, tutti i controlli condividono lo stesso nome.