SetShapeDmaCommand
Initialise une commande DMA SHAPE.Syntaxe
Paramètres
command _Inout_Type : SHAPE_FLOWGRAPH_COMMAND* La commande SHAPE_FLOWGRAPH_COMMAND à initialiser. contextId
Type : UINT32 ID du contexte DMA (c’est-à-dire l’index) auquel cette commande fera référence. mixBuffer
Type : UINT32 La mémoire tampon de mixage dans laquelle lire ou écrire, selon la valeur de l’indicateur writeToMemory. writeToMixBuffer
Type : bool True si la commande DMA doit écrire dans la mémoire tampon de mixage spécifiée et lire depuis la mémoire principale. False si la commande DMA doit lire depuis la mémoire tampon de mixage spécifiée et écrire dans la mémoire principale.
Valeur de retour
Type : HRESULT Si la fonction réussit, elle retourneS_OK. Si un ou plusieurs arguments ne sont pas valides, la fonction retourne E_INVALIDARG.
## Remarques
Le système d’accès direct à la mémoire (DMA) prend en charge les fonctionnalités de lecture et d’écriture avec conversion automatique de flottant en entier et d’entier en flottant. Le système DMA utilise des mémoires tampons circulaires contenant des échantillons désentrelacés par blocs de 128 échantillons.
Le processeur DMA permet au moteur SHAPE (Scalable Hardware Audio Processing Engine) d’envoyer des données des mémoires tampons de mixage vers la mémoire système principale et de récupérer des données de la mémoire système principale dans les mémoires tampons de mixage pour un traitement ultérieur. Le DMA s’effectue par blocs, en transférant une trame audio de données à la fois. Pour permettre les données entrelacées par blocs, une valeur de saut indique le nombre de blocs de trames audio à ignorer dans la mémoire système à partir de l’adresse de base lors de la lecture ou de l’écriture d’échantillons. Les flux multicanaux nécessitent un contexte DMA par canal. Les échantillons de données audio sont toujours lus et écrits sous forme de valeurs 32 bits, entières ou flottantes, comme indiqué par l’indicateur floatConvert du contexte DMA.
la direction du DMA (lecture ou écriture) est spécifiée dans la commande DMA, et non dans le contexte DMA. Cela permet de réduire la quantité de bande passante de données. Le moteur DMA n’effectue aucun traitement du signal, mais il peut effectuer une conversion de flottant en entier ou d’entier en flottant. Cela permet au processeur de l’application de traiter les échantillons de données au format à virgule flottante.
