struttura KSAUDIO_MIXCAP_TABLE (ksmedia.h)
La struttura KSAUDIO_MIXCAP_TABLE specifica le funzionalità di combinazione di un nodo supermixer (KSNODETYPE_SUPERMIX). Questa struttura viene utilizzata per ottenere o impostare il valore dei dati per la proprietà KSPROPERTY_AUDIO_MIX_LEVEL_CAPS.
Sintassi
typedef struct {
ULONG InputChannels;
ULONG OutputChannels;
KSAUDIO_MIX_CAPS Capabilities[1];
} KSAUDIO_MIXCAP_TABLE, *PKSAUDIO_MIXCAP_TABLE;
Membri
InputChannels
Specifica il numero di canali di input.
OutputChannels
Specifica il numero di canali di output.
Capabilities[1]
Contiene la prima voce in una matrice bidimensionale di strutture KSAUDIO_MIX_CAPS. Dato un nodo supermixer con canali di input m e n canali di output, la matrice contiene m* elementi. Ogni elemento descrive le funzionalità a livello di combinazione del percorso da un canale di input specifico a un determinato canale di output.
Osservazioni
La tabella Capabilities viene archiviata come matrice bidimensionale:
KSAUDIO_MIX_CAPS Capabilities[M*N];
La tabella è una matrice M-by-N che esegue il mapping dei canali di input M in canali di output N. La tabella seguente illustra il mapping di Capabilities elementi della matrice ai percorsi di input M*N del nodo supermixer.
Elemento Array | Percorso di input-output |
---|---|
Funzionalità[0] | Canale di input 0 per il canale di output 0 |
Funzionalità[1] | Canale di input 0 per il canale di output 1 |
Funzionalità[N-1] | Canale di input 0 per il canale di output N-1 |
Funzionalità[N] | Canale di input 1 per il canale di output 0 |
Funzionalità[N+1] | Canale di input 1 per il canale di output 1 |
Funzionalità[2N-1] | Canale di input 1 per il canale di output N-1 |
Funzionalità[M*N-1] | Canale di input M-1 per il canale di output N-1 |
In altre parole, i limiti del mixer per il percorso dal canale di input i al canale di output j sono contenuti in Capabilities[i * N + j]. Se non esiste alcun percorso dall'input i all'output j, impostare il membro mute dell'elemento matrice (i,j) su TRUE.
Le dimensioni della tabella vengono calcolate dalla struttura KSAUDIO_MIXCAP_TABLE recuperata da una richiesta di proprietà get KSPROPERTY_AUDIO_MIX_LEVEL_CAPS. Se i membri InputChannels e OutputChannels della struttura hanno i valori m e n, l'archiviazione totale necessaria per la struttura KSAUDIO_MIXCAP_TABLE più la matrice KSAUDIO_MIX_CAPS viene calcolata come
sizeof(KSAUDIO_MIXCAP_TABLE) + (mn - 1)sizeof(KSAUDIO_MIX_CAPS)
Se il client invia una richiesta di KSPROPERTY_AUDIO_MIX_LEVEL_CAPS iniziale in cui la dimensione della proprietà è specificata come 2*sizeof(ULONG), il driver miniport deve compilare solo i primi due membri della struttura KSAUDIO_MIXCAP_TABLE, InputChannels e OutputChannels. Il client può quindi inviare una seconda richiesta di proprietà con spazio di archiviazione sufficiente allocato per contenere le funzionalità di tutti i canali.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ksmedia.h (include Ksmedia.h) |