12#ifndef EngageInterface_h
13#define EngageInterface_h
17#if defined(__EMSCRIPTEN__)
18 #include <emscripten.h>
21#include "EngageConstants.h"
28#if defined(ENGAGE_ALLOW_NATIVE)
32#if !defined(ENGAGE_API)
36 #define ENGAGE_API __declspec(dllexport) extern
38 #define ENGAGE_API extern
41 #if defined(__EMSCRIPTEN__)
42 #define ENGAGE_API EMSCRIPTEN_KEEPALIVE __attribute__ ((visibility ("default")))
44 #define ENGAGE_API __attribute__ ((visibility ("default")))
49#if !defined(__clang__)
55typedef void (*
PFN_ENGAGE_LOG_HOOK)(
int level,
const char * _Nonnull tag,
const char * _Nonnull message);
79 void (*
_Nullable PFN_ENGAGE_RP_PAUSING_CONNECTION_ATTEMPT)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
82 void (*
_Nullable PFN_ENGAGE_RP_CONNECTING)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
85 void (*
_Nullable PFN_ENGAGE_RP_CONNECTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
88 void (*
_Nullable PFN_ENGAGE_RP_DISCONNECTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
91 void (*
_Nullable PFN_ENGAGE_RP_ROUNDTRIP_REPORT)(
const char * _Nonnull pId, uint32_t rtMs, uint32_t rtQualityRating,
const char *
_Nullable eventExtraJson);
95 void (*
_Nullable PFN_ENGAGE_GROUP_CREATED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
98 void (*
_Nullable PFN_ENGAGE_GROUP_CREATE_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
101 void (*
_Nullable PFN_ENGAGE_GROUP_DELETED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
105 void (*
_Nullable PFN_ENGAGE_GROUP_CONNECTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
108 void (*
_Nullable PFN_ENGAGE_GROUP_CONNECT_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
111 void (*
_Nullable PFN_ENGAGE_GROUP_DISCONNECTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
115 void (*
_Nullable PFN_ENGAGE_GROUP_JOINED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
118 void (*
_Nullable PFN_ENGAGE_GROUP_JOIN_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
121 void (*
_Nullable PFN_ENGAGE_GROUP_LEFT)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
125 void (*
_Nullable PFN_ENGAGE_GROUP_MEMBER_COUNT_CHANGED)(
const char * _Nonnull pId,
size_t newCount,
const char *
_Nullable eventExtraJson);
129 void (*
_Nullable PFN_ENGAGE_GROUP_NODE_DISCOVERED)(
const char * _Nonnull pId,
const char * _Nonnull nodeJson,
const char *
_Nullable eventExtraJson);
132 void (*
_Nullable PFN_ENGAGE_GROUP_NODE_REDISCOVERED)(
const char * _Nonnull pId,
const char * _Nonnull nodeJson,
const char *
_Nullable eventExtraJson);
135 void (*
_Nullable PFN_ENGAGE_GROUP_NODE_UNDISCOVERED)(
const char * _Nonnull pId,
const char * _Nonnull nodeJson,
const char *
_Nullable eventExtraJson);
139 void (*
_Nullable PFN_ENGAGE_GROUP_RX_STARTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
142 void (*
_Nullable PFN_ENGAGE_GROUP_RX_ENDED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
145 void (*
_Nullable PFN_ENGAGE_GROUP_RX_SPEAKERS_CHANGED)(
const char * _Nonnull pId,
const char * _Nonnull groupTalkerJson,
const char *
_Nullable eventExtraJson);
148 void (*
_Nullable PFN_ENGAGE_GROUP_RX_MUTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
151 void (*
_Nullable PFN_ENGAGE_GROUP_RX_UNMUTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
155 void (*
_Nullable PFN_ENGAGE_GROUP_TX_STARTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
158 void (*
_Nullable PFN_ENGAGE_GROUP_TX_ENDED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
161 void (*
_Nullable PFN_ENGAGE_GROUP_TX_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
164 void (*
_Nullable PFN_ENGAGE_GROUP_TX_USURPED_BY_PRIORITY)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
167 void (*
_Nullable PFN_ENGAGE_GROUP_MAX_TX_TIME_EXCEEDED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
170 void (*
_Nullable PFN_ENGAGE_GROUP_TX_MUTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
173 void (*
_Nullable PFN_ENGAGE_GROUP_TX_UNMUTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
176 void (*
_Nullable PFN_ENGAGE_GROUP_ASSET_DISCOVERED)(
const char * _Nonnull pId,
const char * _Nonnull nodeJson,
const char *
_Nullable eventExtraJson);
179 void (*
_Nullable PFN_ENGAGE_GROUP_ASSET_REDISCOVERED)(
const char * _Nonnull pId,
const char * _Nonnull nodeJson,
const char *
_Nullable eventExtraJson);
182 void (*
_Nullable PFN_ENGAGE_GROUP_ASSET_UNDISCOVERED)(
const char * _Nonnull pId,
const char * _Nonnull nodeJson,
const char *
_Nullable eventExtraJson);
192 void (*
_Nullable PFN_ENGAGE_LICENSE_EXPIRING)(
const char * _Nonnull pSecsLeft,
const char *
_Nullable eventExtraJson);
196 void (*
_Nullable PFN_ENGAGE_GROUP_BLOB_SENT)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
199 void (*
_Nullable PFN_ENGAGE_GROUP_BLOB_SEND_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
202 void (*
_Nullable PFN_ENGAGE_GROUP_BLOB_RECEIVED)(
const char * _Nonnull pId,
const char * _Nonnull blobInfoJson,
const uint8_t * _Nonnull blob,
size_t blobSize,
const char *
_Nullable eventExtraJson);
206 void (*
_Nullable PFN_ENGAGE_GROUP_RTP_SENT)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
209 void (*
_Nullable PFN_ENGAGE_GROUP_RTP_SEND_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
212 void (*
_Nullable PFN_ENGAGE_GROUP_RTP_RECEIVED)(
const char * _Nonnull pId,
const char * _Nonnull rtpHeaderJson,
const uint8_t * _Nonnull payload,
size_t payloadSize,
const char *
_Nullable eventExtraJson);
216 void (*
_Nullable PFN_ENGAGE_GROUP_RAW_SENT)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
219 void (*
_Nullable PFN_ENGAGE_GROUP_RAW_SEND_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
222 void (*
_Nullable PFN_ENGAGE_GROUP_RAW_RECEIVED)(
const char * _Nonnull pId,
const uint8_t * _Nonnull raw,
size_t rawSize,
const char *
_Nullable eventExtraJson);
226 void (*
_Nullable PFN_ENGAGE_GROUP_TIMELINE_EVENT_STARTED)(
const char * _Nonnull pId,
const char * _Nonnull eventJson,
const char *
_Nullable eventExtraJson);
229 void (*
_Nullable PFN_ENGAGE_GROUP_TIMELINE_EVENT_UPDATED)(
const char * _Nonnull pId,
const char * _Nonnull eventJson,
const char *
_Nullable eventExtraJson);
232 void (*
_Nullable PFN_ENGAGE_GROUP_TIMELINE_EVENT_ENDED)(
const char * _Nonnull pId,
const char * _Nonnull eventJson,
const char *
_Nullable eventExtraJson);
235 void (*
_Nullable PFN_ENGAGE_GROUP_TIMELINE_REPORT)(
const char * _Nonnull pId,
const char * _Nonnull timelineJson,
const char *
_Nullable eventExtraJson);
238 void (*
_Nullable PFN_ENGAGE_GROUP_TIMELINE_REPORT_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
241 void (*
_Nullable PFN_ENGAGE_GROUP_TIMELINE_GROOMED)(
const char * _Nonnull pId,
const char * _Nonnull eventListJson,
const char *
_Nullable eventExtraJson);
244 void (*
_Nullable PFN_ENGAGE_GROUP_HEALTH_REPORT)(
const char * _Nonnull pId,
const char * _Nonnull healthReportJson,
const char *
_Nullable eventExtraJson);
247 void (*
_Nullable PFN_ENGAGE_GROUP_HEALTH_REPORT_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
250 void (*
_Nullable PFN_ENGAGE_BRIDGE_CREATED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
253 void (*
_Nullable PFN_ENGAGE_BRIDGE_CREATE_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
256 void (*
_Nullable PFN_ENGAGE_BRIDGE_DELETED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
259 void (*
_Nullable PFN_ENGAGE_GROUP_STATS_REPORT)(
const char * _Nonnull pId,
const char * _Nonnull statsReportJson,
const char *
_Nullable eventExtraJson);
262 void (*
_Nullable PFN_ENGAGE_GROUP_STATS_REPORT_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
265 void (*
_Nullable PFN_ENGAGE_GROUP_RX_VOLUME_CHANGED)(
const char * _Nonnull pId, int16_t leftLevelPerc, int16_t rightLevelPerc,
const char *
_Nullable eventExtraJson);
268 void (*
_Nullable PFN_ENGAGE_GROUP_RX_DTMF)(
const char * _Nonnull pId,
const char * _Nonnull dtmfJson,
const char *
_Nullable eventExtraJson);
276 void (*
_Nullable PFN_ENGAGE_ENGINE_AUDIO_DEVICES_REFRESHED)(
const char *
_Nullable eventExtraJson);
279 void (*
_Nullable PFN_ENGAGE_GROUP_RECONFIGURED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
282 void (*
_Nullable PFN_ENGAGE_GROUP_RECONFIGURATION_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
285 void (*
_Nullable PFN_ENGAGE_AUDIO_RECORDING_STARTED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
288 void (*
_Nullable PFN_ENGAGE_AUDIO_RECORDING_FAILED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
291 void (*
_Nullable PFN_ENGAGE_AUDIO_RECORDING_ENDED)(
const char * _Nonnull pId,
const char *
_Nullable eventExtraJson);
301ENGAGE_API
void engageWin32LibraryInit();
302ENGAGE_API
void engageWin32LibraryDeinit();
306#if !defined(ENGAGEJNI)
407 const char * _Nullable userIdentity,
408 const char * _Nullable tempStoragePath);
837ENGAGE_API
int engageEncrypt(
const uint8_t * _Nonnull src,
size_t size, uint8_t * _Nonnull dst,
const char * _Nonnull passwordHexByteString);
854ENGAGE_API
int engageDecrypt(
const uint8_t * _Nonnull src,
size_t size, uint8_t * _Nonnull dst,
const char * _Nonnull passwordHexByteString);
914ENGAGE_API
const char * _Nonnull
engageGetLicenseDescriptor(
const char * _Nonnull entitlement,
const char * _Nonnull key,
const char * _Nullable activationCode,
const char * _Nullable manufacturerId);
934ENGAGE_API
int engageUpdateLicense(
const char * _Nonnull entitlement,
const char * _Nonnull key,
const char * _Nullable activationCode,
const char * _Nullable manufacturerId);
974ENGAGE_API
int engageSendGroupRtp(
const char * _Nonnull
id,
const uint8_t * _Nonnull payload,
size_t size,
const char * _Nonnull jsonParams);
1061ENGAGE_API
int engageSendGroupBlob(
const char * _Nonnull
id,
const uint8_t * _Nonnull blob,
size_t size,
const char * _Nonnull jsonParams);
1096ENGAGE_API
int engageSendGroupRaw(
const char * _Nonnull
id,
const uint8_t * _Nonnull raw,
size_t size,
const char * _Nonnull jsonParams);
1195ENGAGE_API
int engageLogMsg(
int level,
const char * _Nonnull tag,
const char * _Nonnull msg);
1232ENGAGE_API
const char * _Nonnull
engageGenerateMission(
const char * _Nonnull keyPhrase,
int audioGroupCount,
const char * _Nullable rallypointHost,
const char * _Nullable missionName);
1253 int audioGroupCount,
1254 const char * _Nullable rallypointHost,
1255 const char * _Nullable missionName,
1256 const char * _Nonnull certStoreFn,
1257 const char * _Nullable certStorePasswordHexByteString,
1258 const char * _Nullable certStoreElement);
1301ENGAGE_API
int engageOpenCertStore(
const char * _Nonnull fileName,
const char * _Nullable passwordHexByteString);
1338ENGAGE_API
int engageSetCertStoreCertificatePem(
const char * _Nonnull
id,
const char * _Nonnull certificatePem,
const char * _Nullable privateKeyPem,
const char * _Nullable tags);
1418ENGAGE_API
int engageImportCertStoreElementFromCertStore(
const char * _Nonnull
id,
const char * _Nonnull srcId,
const char * _Nonnull srcFileName,
const char * _Nonnull srcPasswordHexByteString,
const char * _Nullable tags);
1499ENGAGE_API
int engageAddGroupTimelineEvent(
const char * _Nonnull
id,
const char * _Nonnull jsonParams,
const uint8_t * _Nullable blobData,
size_t blobSize);
1652ENGAGE_API
int engageSetCertStore(
const uint8_t * _Nonnull buffer,
size_t size,
const char * _Nullable passwordHexByteString);
1690ENGAGE_API
const char * _Nonnull
engageGenerateSignature(
const uint8_t * _Nonnull block,
size_t size,
const char * _Nonnull securityCertificateJson);
1700ENGAGE_API
int engageVerifySignature(
const uint8_t * _Nonnull block,
size_t size,
const char * _Nonnull secureSignatureJson);
1725ENGAGE_API
int engageCompress(
const uint8_t * _Nonnull src,
size_t srcSize, uint8_t * _Nonnull dst,
size_t maxDstSize);
1741ENGAGE_API
int engageDecompress(
const uint8_t * _Nonnull src,
size_t srcSize, uint8_t * _Nonnull dst,
size_t maxDstSize);
1745#if defined(ENGAGE_ALLOW_NATIVE)
1753ENGAGE_API ILogger * _Nullable engageGetLoggerNative();
1781ENGAGE_API
int engageUnregisterFromHighResolutionTimerNative(
void);
ENGAGE_API int engageRegisterGroupRtpHandler(const char *_Nonnull id, uint16_t payloadId)
[ASYNC] Registers the application as the handler for an RTP payload
ENGAGE_API int engageMuteGroupRx(const char *_Nonnull id)
[ASYNC] Mutes play-out of received audio
ENGAGE_API int engageShutdown()
[SYNC] Shuts down the Engine
ENGAGE_API const char *_Nonnull engageGetLicenseDescriptor(const char *_Nonnull entitlement, const char *_Nonnull key, const char *_Nullable activationCode, const char *_Nullable manufacturerId)
[SYNC] Returns a license descriptor for the parameters passed in
ENGAGE_API int engageQueryGroupStats(const char *_Nonnull id)
[ASYNC] Requests that the Engine deliver a statistics report for the group
ENGAGE_API int engageSetCertStore(const uint8_t *_Nonnull buffer, size_t size, const char *_Nullable passwordHexByteString)
[SYNC] Set the certstore content via buffer
ENGAGE_API int engageDeleteGroup(const char *_Nonnull id)
[ASYNC] Deletes a previously-created group object
void(* PFN_ENGAGE_LOG_HOOK)(int level, const char *_Nonnull tag, const char *_Nonnull message)
Prototype for logging callbacks.
ENGAGE_API int engageIsCryptoFipsValidated(void)
[SYNC] Returns 1 if crypto is FIPS140-2 validated, otherwise 0
ENGAGE_API int engageUpdateGroupTimelineEvent(const char *_Nonnull id, const char *_Nonnull jsonParams, const uint8_t *_Nullable blobData, size_t blobSize)
[ASYNC] Requests that the Engine update a timeline event
ENGAGE_API const char *_Nonnull engageGetCertStoreDescriptor(void)
[SYNC] Returns a JSON descriptor of the currently opened certificate store.
ENGAGE_API int engageReconfigureGroup(const char *_Nonnull id, const char *_Nonnull jsonConfiguration)
[ASYNC] Requests that the Engine reconfigure a group
ENGAGE_API int engageCreateCertStore(const char *_Nonnull fileName, const char *_Nullable passwordHexByteString)
[SYNC] Creates a certificate store
ENGAGE_API int engageCreateBridge(const char *_Nonnull jsonConfiguration)
[ASYNC] Creates a bridge object
ENGAGE_API int engageSetFipsCrypto(const char *_Nonnull jsonParams)
[SYNC] Enable FIPS crypto
ENGAGE_API int engageVerifyRiff(const char *_Nonnull fn)
[SYNC] Verifies a recorded RIFF file.
ENGAGE_API int engageRegisterEventCallbacks(const EngageEvents_t *_Nonnull pEvents)
[SYNC] Registers application event handlers with the Engine
ENGAGE_API int engageVerifySignature(const uint8_t *_Nonnull block, size_t size, const char *_Nonnull secureSignatureJson)
[SYNC] Verifies a signature for a block using a certificate
ENGAGE_API int engageEnableNotifications(int enable)
[SYNC] Notifies Engage of app's willingness to receive notifications
ENGAGE_API int engageQueryGroupTimeline(const char *_Nonnull id, const char *_Nonnull jsonParams)
[ASYNC] Requests that the Engine deliver a timeline report for the group
ENGAGE_API int engageSetGroupRxVolume(const char *_Nonnull id, int left, int right)
[ASYNC] Sets the audio play-out volume of the group
ENGAGE_API int engageEndGroupTx(const char *_Nonnull id)
[ASYNC] Ends transmission on an audio group
ENGAGE_API int engagePlatformNotifyChanges(const char *_Nonnull jsonChangesArray)
[SYNC] Notifies Engage of changes reported by the application or platform
ENGAGE_API int engageRefreshAudioDevices(void)
[ASYNC] Requests that the Engine update its audio device registry
ENGAGE_API int engageBeginFileRecording(const char *_Nonnull jsonParams)
[ASYNC] Requests that the Engine begin recording audio to a file
ENGAGE_API int engageSendGroupRaw(const char *_Nonnull id, const uint8_t *_Nonnull raw, size_t size, const char *_Nonnull jsonParams)
[ASYNC] Send an application-structured byte array to a group with minimal Engine involvement
ENGAGE_API int engageStop(void)
[ASYNC] Stops the Engine's internal processing
ENGAGE_API const char *_Nonnull engageGetCertStoreCertificatePem(const char *_Nonnull id)
[SYNC] Returns a certificate in PEM format. The private key (if any) is NOT returned.
ENGAGE_API int engageEnableSyslog(int enable)
[SYNC] Enables or disables logging to syslog.
ENGAGE_API int engageCloseCertStore(void)
[SYNC] Closes the current certificate store (if any)
ENGAGE_API const char *_Nonnull engageGetActiveFeatureset()
[SYNC] Returns JSON object containing the currently active featureset
ENGAGE_API int engageUnregisterGroupRtpHandler(const char *_Nonnull id, uint16_t payloadId)
[ASYNC] Unregisters the application as the handler for an RTP payload
ENGAGE_API int engagePlatformServiceDiscovered(const char *_Nonnull id, const char *_Nonnull jsonParams)
[ASYNC] Informs the Engine that the application has discovered a service
ENGAGE_API const char *_Nonnull engageGetDeviceId()
[SYNC] Returns the device identifier
ENGAGE_API int engageLogMsg(int level, const char *_Nonnull tag, const char *_Nonnull msg)
[SYNC] Log a message via the Engine's logger
ENGAGE_API int engageJoinGroup(const char *_Nonnull id)
[ASYNC] Joins a group
ENGAGE_API int engageSetGroupRules(const char *_Nonnull id, const char *_Nonnull jsonParams)
[ASYNC] Sets the audio play-out volume of the group
ENGAGE_API int engageEndFileRecording(const char *_Nonnull id)
[ASYNC] Requests that the Engine end recording audio to a file
ENGAGE_API const char *_Nonnull engageGetHardwareReport()
[SYNC] Returns a hardware report
ENGAGE_API const char *_Nonnull engageGetArrayOfCertificateDescriptorsFromPem(const char *_Nonnull pem)
[SYNC] Returns a JSON array, with each element being an object describing the certificate PEM.
ENGAGE_API int engagePlatformServiceRediscovered(const char *_Nonnull id, const char *_Nonnull jsonParams)
[ASYNC] Informs the Engine that the application has rediscovered a service
void(* PFN_ENGAGE_HIGH_RES_TIMER_TICK)(uint32_t tickType, uint64_t ticksSoFar)
Prototype for the high-resolution timer callback.
ENGAGE_API int engageQueryGroupHealth(const char *_Nonnull id)
[ASYNC] Requests that the Engine deliver a health report for the group
ENGAGE_API int engageImportCertStoreElementFromCertStore(const char *_Nonnull id, const char *_Nonnull srcId, const char *_Nonnull srcFileName, const char *_Nonnull srcPasswordHexByteString, const char *_Nullable tags)
[SYNC] Adds/updates an element (certificate and optionally private key) from another certificate stor...
ENGAGE_API int engageSetCertStoreCertificateP12(const char *_Nonnull id, uint8_t *_Nonnull data, size_t size, const char *_Nullable password, const char *_Nullable tags)
[SYNC] Adds/updates a certificate and (optionally) private key using P12 content
ENGAGE_API int engageMuteGroupTx(const char *_Nonnull id)
[ASYNC] Mutes microphone audio capture
ENGAGE_API int engageSetGroupRxTag(const char *_Nonnull id, uint16_t tag)
[ASYNC] Sets/clear a audio stream subchannel tag
ENGAGE_API int engageEnableWatchdog(int enable)
[SYNC] Enables or disables the Engine watchdog.
ENGAGE_API int engageOpenCertStore(const char *_Nonnull fileName, const char *_Nullable passwordHexByteString)
[SYNC] Opens a certificate store
ENGAGE_API const char *_Nonnull engageGenerateMission(const char *_Nonnull keyPhrase, int audioGroupCount, const char *_Nullable rallypointHost, const char *_Nullable missionName)
[SYNC] Generates a mission based on a key phrase
ENGAGE_API const char *_Nonnull engageGetRiffDescriptor(const char *_Nonnull fn)
[SYNC] Returns a descriptor for a RIFF file
ENGAGE_API int engageBeginGroupTxAdvanced(const char *_Nonnull id, const char *_Nonnull jsonParams)
[ASYNC] Begin audio transmission on a group with additional parameters
ENGAGE_API int engageDecrypt(const uint8_t *_Nonnull src, size_t size, uint8_t *_Nonnull dst, const char *_Nonnull passwordHexByteString)
[SYNC] Decrypt data using the Engine's cryptography module
ENGAGE_API int engageBeginGroupTx(const char *_Nonnull id, int txPriority, uint32_t txFlags)
[ASYNC] Begin audio transmission on a group
ENGAGE_API int engageInitialize(const char *_Nullable enginePolicyConfiguration, const char *_Nullable userIdentity, const char *_Nullable tempStoragePath)
[SYNC] Initializes the Engine.
ENGAGE_API const char *_Nonnull engageGetNetworkInterfaceDevices()
[SYNC] Returns an array of network interface devices in JSON format
ENGAGE_API const char *_Nonnull engageGenerateSignature(const uint8_t *_Nonnull block, size_t size, const char *_Nonnull securityCertificateJson)
[SYNC] Generates a signature for a block using a certificate & its private key
ENGAGE_API int engageSetLoggingOutputOverride(const _Nullable PFN_ENGAGE_LOG_HOOK pfnHook)
[SYNC] Sets/clears the output override callback for log messages.
ENGAGE_API const char *_Nonnull engageGetActiveLicenseDescriptor()
[SYNC] Returns the currently-active license descriptor
ENGAGE_API int engageCreateGroup(const char *_Nonnull jsonConfiguration)
[ASYNC] Creates a group object
ENGAGE_API int engageUpdatePresenceDescriptor(const char *_Nonnull id, const char *_Nonnull descriptorJson, int forceBeacon)
[ASYNC] Updates the application-defined elements of a presence descriptor
ENGAGE_API int engageSendGroupRtp(const char *_Nonnull id, const uint8_t *_Nonnull payload, size_t size, const char *_Nonnull jsonParams)
[ASYNC] Send an application-structured byte array to a group as a specialized RTP payload
ENGAGE_API int engageEncrypt(const uint8_t *_Nonnull src, size_t size, uint8_t *_Nonnull dst, const char *_Nonnull passwordHexByteString)
[SYNC] Encrypt data using the Engine's cryptography module
ENGAGE_API int engageUnmuteGroupTx(const char *_Nonnull id)
[ASYNC] Unmutes microphone audio capture
ENGAGE_API int engageSendGroupBlob(const char *_Nonnull id, const uint8_t *_Nonnull blob, size_t size, const char *_Nonnull jsonParams)
[ASYNC] Send an application-structured byte array to a group as an Engine-managed blob
ENGAGE_API const char *_Nonnull engageGetVersion()
[SYNC] Returns the version of the Engine
ENGAGE_API const char *_Nonnull engageGetCertificateDescriptorFromPem(const char *_Nonnull pem)
[SYNC] Returns a JSON object describing the certificate PEM.
ENGAGE_API int engageSetCertStoreCertificateTags(const char *_Nonnull id, const char *_Nullable tags)
[SYNC] Updates a certificate's tags
ENGAGE_API int engageDeleteGroupTimelineEvent(const char *_Nonnull id, const char *_Nonnull jsonParams)
[ASYNC] Requests that the Engine delete timeline event
ENGAGE_API int engageLeaveGroup(const char *_Nonnull id)
[ASYNC] Leaves a group
ENGAGE_API int engageSetLogLevel(int level)
[SYNC] Sets the Engine's logging level.
ENGAGE_API int engageSetCertStoreCertificatePem(const char *_Nonnull id, const char *_Nonnull certificatePem, const char *_Nullable privateKeyPem, const char *_Nullable tags)
[SYNC] Adds/updates a certificate and (optionally) private key using PEM strings
ENGAGE_API int engageSetLogTagExtension(const char *_Nullable tagExtension)
[SYNC] Sets the Engine's log tag extension.
ENGAGE_API const char *_Nonnull engageGenerateMissionUsingCertStore(const char *_Nonnull keyPhrase, int audioGroupCount, const char *_Nullable rallypointHost, const char *_Nullable missionName, const char *_Nonnull certStoreFn, const char *_Nullable certStorePasswordHexByteString, const char *_Nullable certStoreElement)
[SYNC] Generates a mission based on a key phrase and using a specified certificate store
ENGAGE_API int engageAddGroupTimelineEvent(const char *_Nonnull id, const char *_Nonnull jsonParams, const uint8_t *_Nullable blobData, size_t blobSize)
[ASYNC] Requests that the Engine add a timeline event
ENGAGE_API int engageUpdateLicense(const char *_Nonnull entitlement, const char *_Nonnull key, const char *_Nullable activationCode, const char *_Nullable manufacturerId)
[ASYNC] Update the active license with new parameters
ENGAGE_API int engageDeleteBridge(const char *_Nonnull id)
[ASYNC] Deletes a bridge object
ENGAGE_API const char *_Nonnull engageQueryCertStoreContents(const char *_Nonnull fileName, const char *_Nullable passwordHexByteString)
[SYNC] Returns an extended descriptor of named certificate store
ENGAGE_API int engagePlatformServiceUndiscovered(const char *_Nonnull id)
[ASYNC] Informs that Engine that a previously-discovered service has disappeared
ENGAGE_API const char *_Nonnull engageGetAudioDevices()
[SYNC] Returns an array of audio device descriptor interface devices in JSON format
ENGAGE_API int engageSetMissionId(const char *_Nullable missionId)
[SYNC] Sets the (optional) mission ID for the Engine
ENGAGE_API int engageStart(void)
[ASYNC] Starts the Engine
ENGAGE_API int engageDeleteCertStoreCertificate(const char *_Nonnull id)
[SYNC] Deletes a certificate and its private key (if any)
ENGAGE_API int engageUnmuteGroupRx(const char *_Nonnull id)
[ASYNC] Unmutes play-out of received audio
struct _EngageEvents_t EngageEvents_t
Event Handlers Struct.
void(* _Nullable)(const char *_Nullable eventExtraJson)
The Engine has started.