AAX SDK 2.6.1
Avid Audio Extensions Development Kit
Loading...
Searching...
No Matches
AAX_IDma.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2014-2015, 2023 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * CONFIDENTIAL: this document contains confidential information of Avid. Do
8 * not disclose to any third party. Use of the information contained in this
9 * document is subject to an Avid SDK license.
10 *
11 */
12
19/*================================================================================================*/
20
21
22#pragma once
23
24#ifndef AAX_IDMA_H
25#define AAX_IDMA_H
26
27#include "AAX.h"
28
29
30#ifndef AAX_DMA_API
31# ifdef _MSC_VER
32# define AAX_DMA_API __cdecl
33# else
34# define AAX_DMA_API
35# endif
36#endif // AAX_DMA_API
37
50{
51public:
52 enum EState
53 {
59 };
60
61 // WARNING! These need to be kept in sync with the TI dMAX microcode EventType IDs!
67 enum EMode
68 {
70
74
75 };
76
77
78public:
79 virtual ~AAX_IDma() {}
80
82
112 virtual int32_t AAX_DMA_API IsTransferComplete() = 0;
122 virtual EState AAX_DMA_API GetDmaState() const = 0;
127 virtual EMode AAX_DMA_API GetDmaMode() const = 0;
129
130
132
145 virtual AAX_Result AAX_DMA_API SetSrc( int8_t * iSrc ) = 0;
148 virtual int8_t * AAX_DMA_API GetSrc() = 0;
157 virtual AAX_Result AAX_DMA_API SetDst( int8_t * iDst ) = 0;
160 virtual int8_t * AAX_DMA_API GetDst() = 0;
161
169 virtual AAX_Result AAX_DMA_API SetBurstLength( int32_t iBurstLengthBytes ) = 0;
172 virtual int32_t AAX_DMA_API GetBurstLength() = 0;
185 virtual AAX_Result AAX_DMA_API SetNumBursts( int32_t iNumBursts ) = 0;
188 virtual int32_t AAX_DMA_API GetNumBursts() = 0;
196 virtual AAX_Result AAX_DMA_API SetTransferSize( int32_t iTransferSizeBytes ) = 0;
199 virtual int32_t AAX_DMA_API GetTransferSize() = 0;
201
202
204
214 virtual AAX_Result AAX_DMA_API SetFifoBuffer( int8_t * iFifoBase ) = 0;
217 virtual int8_t * AAX_DMA_API GetFifoBuffer() = 0;
222 virtual AAX_Result AAX_DMA_API SetLinearBuffer( int8_t * iLinearBase ) = 0;
225 virtual int8_t * AAX_DMA_API GetLinearBuffer() = 0;
238 virtual AAX_Result AAX_DMA_API SetOffsetTable( const int32_t * iOffsetTable ) = 0;
241 virtual const int32_t * AAX_DMA_API GetOffsetTable() = 0;
248 virtual AAX_Result AAX_DMA_API SetNumOffsets( int32_t iNumOffsets ) = 0;
251 virtual int32_t AAX_DMA_API GetNumOffsets() = 0;
261 virtual AAX_Result AAX_DMA_API SetBaseOffset( int32_t iBaseOffsetBytes ) = 0;
264 virtual int32_t AAX_DMA_API GetBaseOffset() = 0;
272 virtual AAX_Result AAX_DMA_API SetFifoSize( int32_t iSizeBytes ) = 0;
275 virtual int32_t AAX_DMA_API GetFifoSize() = 0;
277};
278
279
280
281#endif // AAX_IDMA_H
Various utility definitions for AAX.
int32_t AAX_Result
Definition: AAX.h:334
#define AAX_DMA_API
Definition: AAX_IDma.h:34
Cross-platform interface for access to the host's direct memory access (DMA) facilities.
Definition: AAX_IDma.h:50
virtual AAX_Result AAX_DMA_API SetNumBursts(int32_t iNumBursts)=0
Sets the number of bursts to perform before giving up priority to other DMA transfers.
virtual int32_t AAX_DMA_API GetBaseOffset()=0
Gets the relative base offset into the FIFO where transfers will begin.
virtual int8_t *AAX_DMA_API GetLinearBuffer()=0
Gets the address of the linear buffer for the DMA transfer.
virtual int32_t AAX_DMA_API GetTransferSize()=0
Gets the size of the whole transfer, in Bytes.
virtual int8_t *AAX_DMA_API GetSrc()=0
Gets the address of the source buffer.
virtual int32_t AAX_DMA_API IsTransferComplete()=0
Query whether a transfer has completed.
virtual AAX_Result AAX_DMA_API SetDmaState(EState iState)=0
Sets the DMA State.
virtual AAX_Result AAX_DMA_API SetTransferSize(int32_t iTransferSizeBytes)=0
Sets the size of the whole transfer.
virtual int32_t AAX_DMA_API GetNumOffsets()=0
Gets the number of offets in the offset table.
virtual AAX_Result AAX_DMA_API SetNumOffsets(int32_t iNumOffsets)=0
Sets the number of offets in the offset table.
EState
Definition: AAX_IDma.h:53
@ eState_Complete
Definition: AAX_IDma.h:57
@ eState_Init
Definition: AAX_IDma.h:55
@ eState_Error
Definition: AAX_IDma.h:54
@ eState_Running
Definition: AAX_IDma.h:56
@ eState_Pending
Definition: AAX_IDma.h:58
virtual ~AAX_IDma()
Definition: AAX_IDma.h:79
virtual AAX_Result AAX_DMA_API SetDst(int8_t *iDst)=0
Sets the address of the destination buffer.
virtual AAX_Result AAX_DMA_API SetSrc(int8_t *iSrc)=0
Sets the address of the source buffer.
virtual int8_t *AAX_DMA_API GetFifoBuffer()=0
Gets the address of the FIFO buffer for the DMA transfer.
virtual AAX_Result AAX_DMA_API SetFifoSize(int32_t iSizeBytes)=0
Sets the size of the FIFO buffer, in bytes.
virtual AAX_Result AAX_DMA_API SetOffsetTable(const int32_t *iOffsetTable)=0
Sets the offset table for the DMA transfer.
virtual EMode AAX_DMA_API GetDmaMode() const =0
Inquire to find the mode of the DMA instance.
virtual const int32_t *AAX_DMA_API GetOffsetTable()=0
Gets the offset table for the DMA transfer.
virtual int8_t *AAX_DMA_API GetDst()=0
Gets the address of the destination buffer.
virtual int32_t AAX_DMA_API GetFifoSize()=0
Gets the size of the FIFO buffer, in bytes.
virtual EState AAX_DMA_API GetDmaState() const =0
Inquire to find the state of the DMA instance.
virtual AAX_Result AAX_DMA_API SetBaseOffset(int32_t iBaseOffsetBytes)=0
Sets the relative base offset into the FIFO where transfers will begin.
virtual int32_t AAX_DMA_API GetBurstLength()=0
Gets the length of each burst.
virtual AAX_Result AAX_DMA_API PostRequest()=0
Posts the transfer request to the DMA server.
virtual AAX_Result AAX_DMA_API SetBurstLength(int32_t iBurstLengthBytes)=0
Sets the length of each burst.
virtual AAX_Result AAX_DMA_API SetLinearBuffer(int8_t *iLinearBase)=0
Sets the address of the linear buffer for the DMA transfer (usually the internal memory block)
virtual int32_t AAX_DMA_API GetNumBursts()=0
Gets the number of bursts to perform before giving up priority to other DMA transfers.
EMode
DMA mode IDs.
Definition: AAX_IDma.h:68
@ eMode_Burst
Burst mode (uncommon)
Definition: AAX_IDma.h:71
@ eMode_Error
Definition: AAX_IDma.h:69
@ eMode_Scatter
Scatter mode.
Definition: AAX_IDma.h:73
@ eMode_Gather
Gather mode.
Definition: AAX_IDma.h:72
virtual AAX_Result AAX_DMA_API SetFifoBuffer(int8_t *iFifoBase)=0
Sets the address of the FIFO buffer for the DMA transfer (usually the external memory block)