KSAUDIO_MIXCAP_TABLE structure (ksmedia.h)
La structure KSAUDIO_MIXCAP_TABLE spécifie les fonctionnalités de mélange d’un nœud de supermixeur (KSNODETYPE_SUPERMIX). Cette structure permet d’obtenir ou de définir la valeur de données de la propriété KSPROPERTY_AUDIO_MIX_LEVEL_CAPS .
Syntaxe
typedef struct {
ULONG InputChannels;
ULONG OutputChannels;
KSAUDIO_MIX_CAPS Capabilities[1];
} KSAUDIO_MIXCAP_TABLE, *PKSAUDIO_MIXCAP_TABLE;
Membres
InputChannels
Spécifie le nombre de canaux d’entrée.
OutputChannels
Spécifie le nombre de canaux de sortie.
Capabilities[1]
Contient la première entrée d’un tableau à deux dimensions de structures KSAUDIO_MIX_CAPS . Étant donné un nœud de supermixeur avec m canaux d’entrée et n canaux de sortie, le tableau contient des éléments m*. Chaque élément décrit les fonctionnalités de niveau mix du chemin d’accès d’un canal d’entrée particulier à un canal de sortie particulier.
Remarques
La table Capabilities est stockée sous la forme d’un tableau à deux dimensions :
KSAUDIO_MIX_CAPS Capabilities[M*N];
La table est une matrice M par N qui mappe les canaux d’entrée M en N canaux de sortie. Le tableau suivant montre le mappage des éléments du tableau Capabilities aux chemins d’entrée-sortie M*N du nœud de supermixeur.
Élément de tableau | Chemin d’entrée-sortie |
---|---|
Fonctionnalités[0] | Canal d’entrée 0 vers canal de sortie 0 |
Fonctionnalités[1] | Canal d’entrée 0 vers canal de sortie 1 |
Fonctionnalités[N-1] | Canal d’entrée 0 vers canal de sortie N-1 |
Fonctionnalités[N] | Canal d’entrée 1 vers canal de sortie 0 |
Fonctionnalités[N+1] | Canal d’entrée 1 vers canal de sortie 1 |
Fonctionnalités[2N-1] | Canal d’entrée 1 vers canal de sortie N-1 |
Fonctionnalités[M*N-1] | Canal d’entrée M-1 vers canal de sortie N-1 |
En d’autres termes, les majuscules de mélangeur pour le chemin d’accès du canal d’entrée i au canal de sortie j sont contenues dans Capabilities[i * N + j]. S’il n’existe aucun chemin d’accès entre l’entrée i et la sortie j, définissez le membre Muet de l’élément de matrice (i,j) sur TRUE.
La taille de la table est calculée à partir de la structure KSAUDIO_MIXCAP_TABLE récupérée par une demande de propriété KSPROPERTY_AUDIO_MIX_LEVEL_CAPS obtenir. Si les membres InputChannels et OutputChannels de la structure ont les valeurs m et n, le stockage total requis pour la structure KSAUDIO_MIXCAP_TABLE plus le tableau KSAUDIO_MIX_CAPS est calculé comme suit :
sizeof(KSAUDIO_MIXCAP_TABLE) + (mn - 1)sizeof(KSAUDIO_MIX_CAPS)
Si le client envoie une requête KSPROPERTY_AUDIO_MIX_LEVEL_CAPS initiale dans laquelle la taille de propriété est spécifiée comme 2*sizeof(ULONG), le pilote miniport doit renseigner uniquement les deux premiers membres de la structure KSAUDIO_MIXCAP_TABLE, InputChannels et OutputChannels. Le client peut ensuite envoyer une deuxième demande de propriété avec suffisamment de stockage alloué pour contenir les fonctionnalités de tous les canaux.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ksmedia.h (incluez Ksmedia.h) |