23#ifndef _AWECOREINSTANCE_H
24#define _AWECOREINSTANCE_H
30#include "TargetProcessor.h"
38#include "AWELoggingDefs.h"
245#ifdef AWEINSTANCE_FRAMEWORK
246 AWEINSTANCE_FRAMEWORK
292INT32
awe_initPin(IOPinDescriptor *pPin, UINT32 channels,
const char *name);
302typedef INT32 packetProcessFunction(
AWEInstance * pAWE);
INT32 awe_layoutGetInputSampleRate(const AWEInstance *pAWE, UINT32 pinIdx, FLOAT32 *sampleRate)
Returns the sample rate of an input pin.
INT32 awe_loadAWBfromFlash(AWEInstance *pAWE, const char *binaryFile, UINT32 *pPos)
Load an AWB file from the flash.
INT32 awe_fwSetLayoutCoreAffinity(AWEInstance *pAWE, INT32 layoutNumber, INT32 coreAffinity)
Set the core affinity of the layout in layoutNumber.
INT32 awe_initPin(IOPinDescriptor *pPin, UINT32 channels, const char *name)
Initialize an input or output pin.
INT32 awe_ctrlGetStatus(const AWEInstance *pAWE, UINT32 handle, UINT32 *status)
Get the runtime status of a module.
INT32 awe_ctrlSetValue(const AWEInstance *pAWE, UINT32 handle, const void *value, INT32 arrayOffset, UINT32 length)
Set a scalar or array value of a module variable by handle.
void(* cbAweLogging_t)(struct _AWEInstance *pAWE, INT32 level, UINT32 type, void *payload, INT32 payloadSizeInBytes)
OPTIONAL This callback is invoked from multiple places in the AWE framework to log any message to the...
Definition: AWEInstance.h:44
INT32 awe_packetProcessMulti(AWEInstance *pAWE, BOOL isTuningInstance)
Multi-instance Wrapper for tuning packet processing.
INT32 awe_deferredSetCall(AWEInstance *pAWE)
Perform deferred awe set on a module.
INT32 awe_registerEventCallbacks(AWEInstance *pAWE, cbAweEventTrigger_t cbAweEventTrigger, cbAweEventRegister_t cbAweEventRegister, cbAweEventDeregister_t cbAweEventDeregister)
Register the event callbacks used by the Event Module.
INT32 awe_getBuildVersionInfo(AWEBuildVersionInfo_t *pBuildVersionInfo)
Get the AWECore build number and version information.
INT32 awe_audioPump(AWEInstance *pAWE, UINT32 layoutIndex)
Audio pump function.
void awe_setInstancesInfo(AWEInstance **pInstances, INT32 numAweInstancesOnCore)
Setup function only intended for systems with multiple AWE Instances in a single core.
void awe_layoutGetChannelCount(const AWEInstance *pAWE, UINT32 pinIdx, UINT32 *inCount, UINT32 *outCount)
Returns the number of channels in the Layout's input and output pins.
INT32 awe_registerLoggingCallback(AWEInstance *pAWE, cbAweLogging_t cbAweLogging, INT32 logLevel, UINT32 logTypeMask)
Register the logging callback with required logging level and logging type mask.
INT32(* cbAweEventRegister_t)(struct _AWEInstance *pAWE, INT32 eventType, UINT32 moduleObjId, INT32 payloadSizeInBytes, void **userHandle)
The Event Register callback is called by an Event Module when it is constructed.
Definition: AWEInstance.h:64
INT32 awe_getAverageLayoutCycles(AWEInstance *pAWE, UINT32 layoutIdx, UINT32 *averageCycles)
Get the average cycles of a running layout, in units of cycles at profileSpeed.
INT32 awe_setInstanceStandaloneAWBLoad(AWEInstance *pAWE, INT32 status)
This function can be used to achieve Progressive Loading on a multi-instance system.
INT32(* cbAweEventTrigger_t)(struct _AWEInstance *pAWE, INT32 eventType, UINT32 moduleObjId, void *payload, INT32 payloadSizeInBytes, void *userHandle)
OPTIONAL These callback are invoked only from the Event Module.
Definition: AWEInstance.h:58
void awe_initFlashFS(AWEInstance *pAWE, AWEFlashFSInstance *pAWEFlashFSInstance)
Initialize the file system.
INT32 awe_audioImportSamples(const AWEInstance *pAWE, const void *inSamples, INT32 inStride, INT32 channel, SampleType inType)
Import samples from a user buffer to a channel.
INT32 awe_layoutIsValid(const AWEInstance *pAWE)
Determines if a layout is loaded and valid.
INT32 awe_ctrlSetStatus(const AWEInstance *pAWE, UINT32 handle, UINT32 status)
Set the runtime status of a module.
INT32 awe_ctrlGetValue(const AWEInstance *pAWE, UINT32 handle, void *value, INT32 arrayOffset, UINT32 length)
Get a scalar or array value of a module variable by handle.
INT32 awe_loadAWBfromArray(AWEInstance *pAWE, const UINT32 *pCommands, UINT32 arraySize, UINT32 *pPos)
Executes packet commands from an in-memory array.
INT32 awe_audioExportSamples(const AWEInstance *pAWE, void *outSamples, INT32 outStride, INT32 channel, SampleType outType)
Export samples to a user buffer from a channel.
INT32 awe_audioGetPumpMask(AWEInstance *pAWE)
Test if AWE is ready to run.
INT32 awe_fwGetLayoutCoreAffinity(AWEInstance *pAWE, INT32 layoutNumber)
Get the core affinity of the layout in layoutNumber, initializes to 0 and can be set with awe_fwSetLa...
UINT32 awe_audioEndPreemption(AWEInstance *pAWE, UINT32 start_time, INT32 coreAffinity)
Function to correct overhead outside of the Audio Weaver, like Audio DMA ISR.
INT32 awe_setProfilingStatus(AWEInstance *pAWE, UINT32 status)
Enable or disable the profiling ability of the AWE Core.
INT32 awe_audioIsReadyToPumpMulti(AWEInstance *pAWE, UINT32 instanceID)
Test if AWE is ready to run on secondary instances (ID > 0).
UINT32 awe_audioStartPreemption(AWEInstance *pAWE, INT32 coreAffinity)
Function to correct overhead outside of the Audio Weaver, like Audio DMA ISR.
INT32(* cbAweEventDeregister_t)(struct _AWEInstance *pAWE, INT32 eventType, UINT32 moduleObjId, void **userHandle)
The Event Deregister callback is called by the Event Module when it is destroyed.
Definition: AWEInstance.h:70
INT32 awe_packetProcess(AWEInstance *pAWE)
Process an AWEInstance's newly received tuning packet.
INT32 awe_loadAWBfromFile(AWEInstance *pAWE, const char *binaryFile, UINT32 *pPos)
Load an AWB file from stdio.
INT32 awe_ctrlGetValueMask(const AWEInstance *pAWE, UINT32 handle, void *value, INT32 arrayOffset, UINT32 length, UINT32 mask)
Get a scalar or array value of a module variable by handle with mask.
INT32 awe_init(AWEInstance *pAWE)
Initialize the instance.
INT32 awe_layoutGetInputBlockSize(const AWEInstance *pAWE, UINT32 pinIdx, UINT32 *blockSize)
Returns the block size of a pin.
INT32 awe_ctrlSetValueMask(const AWEInstance *pAWE, UINT32 handle, const void *value, INT32 arrayOffset, UINT32 length, UINT32 mask)
Set a scalar or array value of a module variable by handle with mask.
struct AWEBuildVersionInfo AWEBuildVersionInfo_t
Build versioning structure returned by awe_getBuildVersionInfo.
INT32 awe_ctrlGetModuleClass(const AWEInstance *pAWE, UINT32 handle, UINT32 *pClassID)
Get an object class from its handle.
struct _AWEInstance AWEInstance
The AWE instance.
INT32 awe_audioIsStarted(const AWEInstance *pAWE)
Check if this instance is running.
enum _SampleType SampleType
Type of data for I/O.
The AWE instance.
Definition: AWEInstance.h:82
IOPinDescriptor * pInputPin
A BSP author must define/allocate an input pin in their BSP and assign it to this member NOTE: AudioW...
Definition: AWEInstance.h:146
INT32(* cbCacheInvalidate)(struct _AWEInstance *pAWE, void *nStartingAddress, UINT32 lengthInWords)
OPTIONAL This callback is invoked wherever cache flush or invalidation is required,...
Definition: AWEInstance.h:131
const char * pName
The name of the AWE Instance that will be displayed in Server.
Definition: AWEInstance.h:215
float profileSpeed
Profiling clock speed in Hz.
Definition: AWEInstance.h:207
UINT32 * pReplyBuffer
Reply buffer pointer.
Definition: AWEInstance.h:189
UINT32 * pFastHeapB
The second fast heap, B .
Definition: AWEInstance.h:94
UINT32 numThreads
Number of threads supported for multithreaded systems(1-4).
Definition: AWEInstance.h:219
IOPinDescriptor * pOutputPin
A BSP author must define/allocate an output pin in their BSP and assign it to this member NOTE: Audio...
Definition: AWEInstance.h:152
UINT32 * pPacketBuffer
The Packet buffer pointer.
Definition: AWEInstance.h:180
INT32(* cbAudioStart)(struct _AWEInstance *PAWE)
OPTIONAL This callback is invoked when a layout is run or when a StartAudio command is sent.
Definition: AWEInstance.h:116
INT32(* cbAudioStop)(struct _AWEInstance *pAWE)
OPTIONAL.
Definition: AWEInstance.h:122
UINT32 slowHeapSize
The slow heap size.
Definition: AWEInstance.h:108
UINT32 _Reserved[308]
Internal members.
Definition: AWEInstance.h:252
UINT32 fundamentalBlockSize
Base frame size of this instance.
Definition: AWEInstance.h:226
UINT32 * pSlowHeap
The slow heap.
Definition: AWEInstance.h:97
UINT32 userVersion
User Version word.
Definition: AWEInstance.h:201
float sampleRate
Default sample rate of this instance.
Definition: AWEInstance.h:222
UINT32 packetBufferSize
Packet buffer size.
Definition: AWEInstance.h:196
volatile UINT32 * pSharedHeap
AWE Core shared memory definitions.
Definition: AWEInstance.h:237
UINT32 fastHeapBSize
The fast heap B size.
Definition: AWEInstance.h:105
UINT32 numProcessingInstances
The number of audio processing instances of AWE Core configured on a single target.
Definition: AWEInstance.h:243
UINT32 sharedHeapSize
The shared heap size, in 32-bit words.
Definition: AWEInstance.h:240
AWEFlashFSInstance * pFlashFileSystem
DSPC Flash file system instance.
Definition: AWEInstance.h:231
INT32(* cbGetLayoutThreadPriority)(struct _AWEInstance *pAWE, INT32 layoutNum)
OPTIONAL This callback is invoked from a module which is going to split the internal processing into ...
Definition: AWEInstance.h:138
float coreSpeed
A BSP author will set this to the speed of the CPU they are integrating into.
Definition: AWEInstance.h:204
UINT32 instanceId
The ID of this instance.
Definition: AWEInstance.h:87
UINT32 numModules
Number of modules in module table.
Definition: AWEInstance.h:162
const ModClassModule ** pModuleDescriptorTable
Pointer to module table.
Definition: AWEInstance.h:170
UINT32 fastHeapASize
The fast heap A size in 32-bit words.
Definition: AWEInstance.h:102
UINT32 * pFastHeapA
Fast heap A.
Definition: AWEInstance.h:91
Build versioning structure returned by awe_getBuildVersionInfo.
Definition: AWEInstance.h:260
UINT32 buildNumber
Library build number.
Definition: AWEInstance.h:266
UINT32 minorVer
Minor API version.
Definition: AWEInstance.h:263
char hotFixVer
Hot fix version, if the build is a hot fix release.
Definition: AWEInstance.h:265
char majorVer
Major API version (single letter)
Definition: AWEInstance.h:262
UINT32 procVer
Processor specific version.
Definition: AWEInstance.h:264
UINT32 tuningVer
Tuning version.
Definition: AWEInstance.h:261
The DSPC Flash File System Instance.
Definition: FlashFSInstance.h:40