struct SHAPE_DMA_CONTEXT {
UINT32 timestamp : 21;
UINT32 reserved0 : 3;
UINT32 mixBufPeakMag : 4;
UINT32 peakMag : 4;
UINT32 readPointer : 5;
UINT32 reserved1 : 3;
UINT32 writePointer : 5;
UINT32 reserved2 : 3;
UINT32 full : 1;
UINT32 reserved3 : 15;
UINT32 reserved4 : 9;
UINT32 address : 23;
UINT32 numFrames : 5;
UINT32 reserved5 : 3;
UINT32 floatConvert : 1;
UINT32 reserved6 : 7;
UINT32 numChannels : 3;
UINT32 reserved7 : 5;
UINT32 channel : 3;
UINT32 reserved8 : 5;
};
timestamp
Read: Timestamp when the context processing was completed.
reserved0
Reserved.
mixBufPeakMag
Read: Peak Magnitude of output mix buffer.
peakMag
Read: Peak Magnitude of output.
readPointer
Read/write: Read pointer from the start of buffer, in units of frames per channel or frame-interleave groups.
reserved1
Reserved.
writePointer
Read/write: Write pointer from the start of buffer, in units of frames per channel or frame-interleave groups.
reserved2
Reserved.
full
Read/write: When readPointer == writePointer, this indicates if the buffer is empty of full (1 = full, 0 = empty).
reserved3
Reserved.
reserved4
Reserved.
address
Write: Buffer address, aligned to 128 samples.
numFrames
Write: numFrames + 1 equals the number of frames per channel, or the number of frame-interleave groups in the system-memory DMA buffer. A value of zero indicates one frame. The DMA block can derive from this the size of the DMA circular buffer. This field is set when the context and buffer is defined.
reserved5
Reserved.
floatConvert
Write: 1 if the data needs to be converted to/from float, 0 if it’s 32bit integer.
reserved6
Reserved.
numChannels
Write: numChannels + 1 = Number of channels of audio in the buffer, so a value of zero indicates one channel.
reserved7
Reserved.
channel
Write: The channel to read/write.
reserved8
Reserved.
The fields marked as Read: are written to by the ACP library and should only be read by your application. The fields marked Write: are set by your application and not changed by the ACP library. The fields marked Read:write are set by your application but can be changed by the ACP library.
Refer to the SHAPE Overview for a description of peak magnitude.
Header: Declared in shapedmacontext.h.
Library: Use acphal.lib.