Condividi tramite


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)

Vedere anche

KSAUDIO_MIX_CAPS

KSNODETYPE_SUPERMIX

KSPROPERTY_AUDIO_MIX_LEVEL_CAPS

KSPROPERTY_AUDIO_MIX_LEVEL_TABLE