Block Control API is added in this release to enable sending multiple control signals from one audio object (AO) to another in one functional call.
added APIs in AudioObject.h
- virtual xAF_Error controlSet(xSInt32 index, xUInt32 sizeBytes, const void * const pValues);
- void setControlOut(xSInt32 index, xUInt32 sizeBytes, const void * const pValues);
In GTT’s SFD, when an AO implements Block Control API, Block Control inputs and outputs are shown as dark orange dots. Block Control connections between two AOs are represented by think orange lines. Regular control inputs and outputs continue to be in light orange color. Regular control connections between two AOs continue to be in light orange colors.
Integration involves these steps. Please refer ControlGrouper implementation for reference
- declare support for Block Control in static meta data and dynamic metadata
- in the getObjectIo implementation specify control group as one control input
- in the createDynamicMetadata API, fill-in Group number appropriately.
-
typedef struct {xFloat32 Min; ///< min value for control signals for the selected modexFloat32 Max; ///< max value for control signals for the selected modestd::string Label; ///< label for current controlxSInt32 Group; ///< group number} metaDataControlDescription;
-
- to received Block Control input, use controlSet(xSInt32 index, xUInt32 sizeBytes, const void * const pValues) API in the implementation
- to send Block Control output, use setControlOut(xSInt32 index, xUInt32 sizeBytes, const void * const pValues) API in the implementation