engage-engine 1.248.90880016 → 1.250.90900018
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engage.cpp +18 -1
- package/include/ConfigurationObjects.h +413 -3
- package/include/EngageInterface.h +22 -0
- package/lib/darwin.arm64/libengage-shared.dylib +0 -0
- package/lib/darwin.x64/libengage-shared.dylib +0 -0
- package/lib/linux.arm64/libengage-shared.so +0 -0
- package/lib/linux.x64/libengage-shared.so +0 -0
- package/lib/win32.ia32/engage-shared.dll +0 -0
- package/lib/win32.ia32/engage-shared.lib +0 -0
- package/lib/win32.ia32/rts-fips.dll +0 -0
- package/lib/win32.x64/engage-shared.dll +0 -0
- package/lib/win32.x64/engage-shared.lib +0 -0
- package/lib/win32.x64/rts-fips.dll +0 -0
- package/package.json +1 -1
package/engage.cpp
CHANGED
|
@@ -1201,6 +1201,20 @@ NAN_METHOD(getRiffDescriptor)
|
|
|
1201
1201
|
}
|
|
1202
1202
|
|
|
1203
1203
|
|
|
1204
|
+
//--------------------------------------------------------
|
|
1205
|
+
NAN_METHOD(beginGroupPcmPowerTracking)
|
|
1206
|
+
{
|
|
1207
|
+
NANRETI(engageBeginGroupPcmPowerTracking(STRVAL(0)));
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
|
|
1211
|
+
//--------------------------------------------------------
|
|
1212
|
+
NAN_METHOD(endGroupPcmPowerTracking)
|
|
1213
|
+
{
|
|
1214
|
+
NANRETI(engageEndGroupPcmPowerTracking(STRVAL(0)));
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
|
|
1204
1218
|
//--------------------------------------------------------
|
|
1205
1219
|
NAN_MODULE_INIT(Init)
|
|
1206
1220
|
{
|
|
@@ -1279,7 +1293,10 @@ NAN_MODULE_INIT(Init)
|
|
|
1279
1293
|
ENGAGE_BINDING(getDeviceId);
|
|
1280
1294
|
|
|
1281
1295
|
ENGAGE_BINDING(verifyRiff);
|
|
1282
|
-
ENGAGE_BINDING(getRiffDescriptor);
|
|
1296
|
+
ENGAGE_BINDING(getRiffDescriptor);
|
|
1297
|
+
|
|
1298
|
+
ENGAGE_BINDING(beginGroupPcmPowerTracking);
|
|
1299
|
+
ENGAGE_BINDING(endGroupPcmPowerTracking);
|
|
1283
1300
|
}
|
|
1284
1301
|
|
|
1285
1302
|
NODE_MODULE(engage, Init)
|
|
@@ -449,6 +449,52 @@ namespace AppConfigurationObjects
|
|
|
449
449
|
}
|
|
450
450
|
}
|
|
451
451
|
|
|
452
|
+
//-----------------------------------------------------------
|
|
453
|
+
JSON_SERIALIZED_CLASS(KvPair)
|
|
454
|
+
/**
|
|
455
|
+
* @brief Holds a key/value pair
|
|
456
|
+
*
|
|
457
|
+
* Helper C++ class to serialize and de-serialize KvPair JSON
|
|
458
|
+
*
|
|
459
|
+
*/
|
|
460
|
+
class KvPair : public ConfigurationObjectBase
|
|
461
|
+
{
|
|
462
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
463
|
+
IMPLEMENT_JSON_DOCUMENTATION(KvPair)
|
|
464
|
+
|
|
465
|
+
public:
|
|
466
|
+
/** @brief Key */
|
|
467
|
+
std::string key;
|
|
468
|
+
|
|
469
|
+
/** @brief Value */
|
|
470
|
+
std::string value;
|
|
471
|
+
|
|
472
|
+
KvPair()
|
|
473
|
+
{
|
|
474
|
+
clear();
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
void clear()
|
|
478
|
+
{
|
|
479
|
+
key.clear();
|
|
480
|
+
value.clear();
|
|
481
|
+
}
|
|
482
|
+
};
|
|
483
|
+
|
|
484
|
+
static void to_json(nlohmann::json& j, const KvPair& p)
|
|
485
|
+
{
|
|
486
|
+
j = nlohmann::json{
|
|
487
|
+
TOJSON_IMPL(key),
|
|
488
|
+
TOJSON_IMPL(value)
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
static void from_json(const nlohmann::json& j, KvPair& p)
|
|
492
|
+
{
|
|
493
|
+
p.clear();
|
|
494
|
+
getOptional<std::string>("key", p.key, j, EMPTY_STRING);
|
|
495
|
+
getOptional<std::string>("tags", p.value, j, EMPTY_STRING);
|
|
496
|
+
}
|
|
497
|
+
|
|
452
498
|
//-----------------------------------------------------------
|
|
453
499
|
JSON_SERIALIZED_CLASS(TuningSettings)
|
|
454
500
|
class TuningSettings : public ConfigurationObjectBase
|
|
@@ -8459,6 +8505,9 @@ namespace AppConfigurationObjects
|
|
|
8459
8505
|
/** @brief Certificate to be used for WebSockets */
|
|
8460
8506
|
SecurityCertificate certificate;
|
|
8461
8507
|
|
|
8508
|
+
/** @brief [Default: false] Indicates whether the client is required to present a certificate */
|
|
8509
|
+
bool requireClientCertificate;
|
|
8510
|
+
|
|
8462
8511
|
RallypointWebsocketSettings()
|
|
8463
8512
|
{
|
|
8464
8513
|
clear();
|
|
@@ -8469,6 +8518,7 @@ namespace AppConfigurationObjects
|
|
|
8469
8518
|
enabled = false;
|
|
8470
8519
|
listenPort = 8443;
|
|
8471
8520
|
certificate.clear();
|
|
8521
|
+
requireClientCertificate = false;
|
|
8472
8522
|
}
|
|
8473
8523
|
};
|
|
8474
8524
|
|
|
@@ -8477,7 +8527,8 @@ namespace AppConfigurationObjects
|
|
|
8477
8527
|
j = nlohmann::json{
|
|
8478
8528
|
TOJSON_IMPL(enabled),
|
|
8479
8529
|
TOJSON_IMPL(listenPort),
|
|
8480
|
-
TOJSON_IMPL(certificate)
|
|
8530
|
+
TOJSON_IMPL(certificate),
|
|
8531
|
+
TOJSON_IMPL(requireClientCertificate)
|
|
8481
8532
|
};
|
|
8482
8533
|
}
|
|
8483
8534
|
static void from_json(const nlohmann::json& j, RallypointWebsocketSettings& p)
|
|
@@ -8486,6 +8537,7 @@ namespace AppConfigurationObjects
|
|
|
8486
8537
|
getOptional<bool>("enabled", p.enabled, j, false);
|
|
8487
8538
|
getOptional<int>("listenPort", p.listenPort, j, 8443);
|
|
8488
8539
|
getOptional<SecurityCertificate>("certificate", p.certificate, j);
|
|
8540
|
+
getOptional<bool>("requireClientCertificate", p.requireClientCertificate, j, false);
|
|
8489
8541
|
}
|
|
8490
8542
|
|
|
8491
8543
|
|
|
@@ -9265,6 +9317,9 @@ namespace AppConfigurationObjects
|
|
|
9265
9317
|
/** @brief Array of certificates in this store */
|
|
9266
9318
|
std::vector<CertStoreCertificate> certificates;
|
|
9267
9319
|
|
|
9320
|
+
/** @brief [Optional] Array of KV pairs */
|
|
9321
|
+
std::vector<KvPair> kvp;
|
|
9322
|
+
|
|
9268
9323
|
CertStore()
|
|
9269
9324
|
{
|
|
9270
9325
|
clear();
|
|
@@ -9274,6 +9329,7 @@ namespace AppConfigurationObjects
|
|
|
9274
9329
|
{
|
|
9275
9330
|
id.clear();
|
|
9276
9331
|
certificates.clear();
|
|
9332
|
+
kvp.clear();
|
|
9277
9333
|
}
|
|
9278
9334
|
};
|
|
9279
9335
|
|
|
@@ -9281,7 +9337,8 @@ namespace AppConfigurationObjects
|
|
|
9281
9337
|
{
|
|
9282
9338
|
j = nlohmann::json{
|
|
9283
9339
|
TOJSON_IMPL(id),
|
|
9284
|
-
TOJSON_IMPL(certificates)
|
|
9340
|
+
TOJSON_IMPL(certificates),
|
|
9341
|
+
TOJSON_IMPL(kvp)
|
|
9285
9342
|
};
|
|
9286
9343
|
}
|
|
9287
9344
|
static void from_json(const nlohmann::json& j, CertStore& p)
|
|
@@ -9289,6 +9346,7 @@ namespace AppConfigurationObjects
|
|
|
9289
9346
|
p.clear();
|
|
9290
9347
|
getOptional<std::string>("id", p.id, j, EMPTY_STRING);
|
|
9291
9348
|
getOptional<std::vector<CertStoreCertificate>>("certificates", p.certificates, j);
|
|
9349
|
+
getOptional<std::vector<KvPair>>("kvp", p.kvp, j);
|
|
9292
9350
|
}
|
|
9293
9351
|
|
|
9294
9352
|
//-----------------------------------------------------------
|
|
@@ -9381,6 +9439,9 @@ namespace AppConfigurationObjects
|
|
|
9381
9439
|
/** @brief Array of certificate elements. */
|
|
9382
9440
|
std::vector<CertStoreCertificateElement> certificates;
|
|
9383
9441
|
|
|
9442
|
+
/** @brief Array of kv pairs. */
|
|
9443
|
+
std::vector<KvPair> kvp;
|
|
9444
|
+
|
|
9384
9445
|
CertStoreDescriptor()
|
|
9385
9446
|
{
|
|
9386
9447
|
clear();
|
|
@@ -9393,6 +9454,7 @@ namespace AppConfigurationObjects
|
|
|
9393
9454
|
version = 0;
|
|
9394
9455
|
flags = 0;
|
|
9395
9456
|
certificates.clear();
|
|
9457
|
+
kvp.clear();
|
|
9396
9458
|
}
|
|
9397
9459
|
};
|
|
9398
9460
|
|
|
@@ -9403,7 +9465,8 @@ namespace AppConfigurationObjects
|
|
|
9403
9465
|
TOJSON_IMPL(fileName),
|
|
9404
9466
|
TOJSON_IMPL(version),
|
|
9405
9467
|
TOJSON_IMPL(flags),
|
|
9406
|
-
TOJSON_IMPL(certificates)
|
|
9468
|
+
TOJSON_IMPL(certificates),
|
|
9469
|
+
TOJSON_IMPL(kvp)
|
|
9407
9470
|
};
|
|
9408
9471
|
}
|
|
9409
9472
|
static void from_json(const nlohmann::json& j, CertStoreDescriptor& p)
|
|
@@ -9414,6 +9477,7 @@ namespace AppConfigurationObjects
|
|
|
9414
9477
|
getOptional<int>("version", p.version, j, 0);
|
|
9415
9478
|
getOptional<int>("flags", p.flags, j, 0);
|
|
9416
9479
|
getOptional<std::vector<CertStoreCertificateElement>>("certificates", p.certificates, j);
|
|
9480
|
+
getOptional<std::vector<KvPair>>("kvp", p.kvp, j);
|
|
9417
9481
|
}
|
|
9418
9482
|
|
|
9419
9483
|
//-----------------------------------------------------------
|
|
@@ -11870,6 +11934,352 @@ namespace AppConfigurationObjects
|
|
|
11870
11934
|
getOptional<int>("maxPriority", p.maxPriority, j, 255);
|
|
11871
11935
|
}
|
|
11872
11936
|
|
|
11937
|
+
//-----------------------------------------------------------
|
|
11938
|
+
JSON_SERIALIZED_CLASS(EngateGroup)
|
|
11939
|
+
/**
|
|
11940
|
+
* @brief Engate configuration
|
|
11941
|
+
*
|
|
11942
|
+
* Helper C++ class to serialize and de-serialize EngateGroup JSON
|
|
11943
|
+
*
|
|
11944
|
+
* Example: @include[doc] examples/EngateGroup.json
|
|
11945
|
+
*
|
|
11946
|
+
* @see TODO: ConfigurationObjects::EngateGroupsConfiguration
|
|
11947
|
+
*/
|
|
11948
|
+
class EngateGroup : public Group
|
|
11949
|
+
{
|
|
11950
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
11951
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateGroup)
|
|
11952
|
+
|
|
11953
|
+
public:
|
|
11954
|
+
bool useVad;
|
|
11955
|
+
uint32_t inputHangMs;
|
|
11956
|
+
uint32_t inputActivationPowerThreshold;
|
|
11957
|
+
uint32_t inputDeactivationPowerThreshold;
|
|
11958
|
+
|
|
11959
|
+
EngateGroup()
|
|
11960
|
+
{
|
|
11961
|
+
clear();
|
|
11962
|
+
}
|
|
11963
|
+
|
|
11964
|
+
void clear()
|
|
11965
|
+
{
|
|
11966
|
+
Group::clear();
|
|
11967
|
+
useVad = false;
|
|
11968
|
+
inputHangMs = 750;
|
|
11969
|
+
inputActivationPowerThreshold = 700;
|
|
11970
|
+
inputDeactivationPowerThreshold = 125;
|
|
11971
|
+
}
|
|
11972
|
+
};
|
|
11973
|
+
|
|
11974
|
+
static void to_json(nlohmann::json& j, const EngateGroup& p)
|
|
11975
|
+
{
|
|
11976
|
+
nlohmann::json g;
|
|
11977
|
+
to_json(g, static_cast<const Group&>(p));
|
|
11978
|
+
|
|
11979
|
+
j = nlohmann::json{
|
|
11980
|
+
TOJSON_IMPL(useVad),
|
|
11981
|
+
TOJSON_IMPL(inputHangMs),
|
|
11982
|
+
TOJSON_IMPL(inputActivationPowerThreshold),
|
|
11983
|
+
TOJSON_IMPL(inputDeactivationPowerThreshold)
|
|
11984
|
+
};
|
|
11985
|
+
}
|
|
11986
|
+
static void from_json(const nlohmann::json& j, EngateGroup& p)
|
|
11987
|
+
{
|
|
11988
|
+
p.clear();
|
|
11989
|
+
from_json(j, static_cast<Group&>(p));
|
|
11990
|
+
getOptional<uint32_t>("inputHangMs", p.inputHangMs, j, 750);
|
|
11991
|
+
getOptional<uint32_t>("inputActivationPowerThreshold", p.inputActivationPowerThreshold, j, 700);
|
|
11992
|
+
getOptional<uint32_t>("inputDeactivationPowerThreshold", p.inputDeactivationPowerThreshold, j, 125);
|
|
11993
|
+
}
|
|
11994
|
+
|
|
11995
|
+
//-----------------------------------------------------------
|
|
11996
|
+
JSON_SERIALIZED_CLASS(EngateGroupsConfiguration)
|
|
11997
|
+
/**
|
|
11998
|
+
* @brief Engate configuration
|
|
11999
|
+
*
|
|
12000
|
+
* Helper C++ class to serialize and de-serialize EngateGroupsConfiguration JSON
|
|
12001
|
+
*
|
|
12002
|
+
* Example: @include[doc] examples/EngateGroupsConfiguration.json
|
|
12003
|
+
*
|
|
12004
|
+
* @see TODO: ConfigurationObjects::EngateGroupsConfiguration
|
|
12005
|
+
*/
|
|
12006
|
+
class EngateGroupsConfiguration : public ConfigurationObjectBase
|
|
12007
|
+
{
|
|
12008
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12009
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateGroupsConfiguration)
|
|
12010
|
+
|
|
12011
|
+
public:
|
|
12012
|
+
/** @brief Array of groups in the configuration */
|
|
12013
|
+
std::vector<EngateGroup> groups;
|
|
12014
|
+
|
|
12015
|
+
EngateGroupsConfiguration()
|
|
12016
|
+
{
|
|
12017
|
+
clear();
|
|
12018
|
+
}
|
|
12019
|
+
|
|
12020
|
+
void clear()
|
|
12021
|
+
{
|
|
12022
|
+
groups.clear();
|
|
12023
|
+
}
|
|
12024
|
+
};
|
|
12025
|
+
|
|
12026
|
+
static void to_json(nlohmann::json& j, const EngateGroupsConfiguration& p)
|
|
12027
|
+
{
|
|
12028
|
+
j = nlohmann::json{
|
|
12029
|
+
TOJSON_IMPL(groups)
|
|
12030
|
+
};
|
|
12031
|
+
}
|
|
12032
|
+
static void from_json(const nlohmann::json& j, EngateGroupsConfiguration& p)
|
|
12033
|
+
{
|
|
12034
|
+
p.clear();
|
|
12035
|
+
getOptional<std::vector<EngateGroup>>("groups", p.groups, j);
|
|
12036
|
+
}
|
|
12037
|
+
|
|
12038
|
+
//-----------------------------------------------------------
|
|
12039
|
+
JSON_SERIALIZED_CLASS(EngateServerStatusReportConfiguration)
|
|
12040
|
+
/**
|
|
12041
|
+
* @brief TODO: Configuration for the engate server status report file
|
|
12042
|
+
*
|
|
12043
|
+
* Helper C++ class to serialize and de-serialize EngateServerStatusReportConfiguration JSON
|
|
12044
|
+
*
|
|
12045
|
+
* Example: @include[doc] examples/EngateServerStatusReportConfiguration.json
|
|
12046
|
+
*
|
|
12047
|
+
* @see RallypointServer
|
|
12048
|
+
*/
|
|
12049
|
+
class EngateServerStatusReportConfiguration : public ConfigurationObjectBase
|
|
12050
|
+
{
|
|
12051
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12052
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateServerStatusReportConfiguration)
|
|
12053
|
+
|
|
12054
|
+
public:
|
|
12055
|
+
/** File name to use for the status report. */
|
|
12056
|
+
std::string fileName;
|
|
12057
|
+
|
|
12058
|
+
/** [Optional, Default: 30] The interval at which to write out the status report to file. */
|
|
12059
|
+
int intervalSecs;
|
|
12060
|
+
|
|
12061
|
+
/** [Optional, Default: false] Indicates if status reporting is enabled. */
|
|
12062
|
+
bool enabled;
|
|
12063
|
+
|
|
12064
|
+
/** [Optional, Default: null] Command to be executed every time the status report is produced. */
|
|
12065
|
+
std::string runCmd;
|
|
12066
|
+
|
|
12067
|
+
/** [Optional, Default: false] Indicates whether to include details of each group. */
|
|
12068
|
+
bool includeGroupDetail;
|
|
12069
|
+
|
|
12070
|
+
EngateServerStatusReportConfiguration()
|
|
12071
|
+
{
|
|
12072
|
+
clear();
|
|
12073
|
+
}
|
|
12074
|
+
|
|
12075
|
+
void clear()
|
|
12076
|
+
{
|
|
12077
|
+
fileName.clear();
|
|
12078
|
+
intervalSecs = 60;
|
|
12079
|
+
enabled = false;
|
|
12080
|
+
includeGroupDetail = false;
|
|
12081
|
+
runCmd.clear();
|
|
12082
|
+
}
|
|
12083
|
+
};
|
|
12084
|
+
|
|
12085
|
+
static void to_json(nlohmann::json& j, const EngateServerStatusReportConfiguration& p)
|
|
12086
|
+
{
|
|
12087
|
+
j = nlohmann::json{
|
|
12088
|
+
TOJSON_IMPL(fileName),
|
|
12089
|
+
TOJSON_IMPL(intervalSecs),
|
|
12090
|
+
TOJSON_IMPL(enabled),
|
|
12091
|
+
TOJSON_IMPL(includeGroupDetail),
|
|
12092
|
+
TOJSON_IMPL(runCmd)
|
|
12093
|
+
};
|
|
12094
|
+
}
|
|
12095
|
+
static void from_json(const nlohmann::json& j, EngateServerStatusReportConfiguration& p)
|
|
12096
|
+
{
|
|
12097
|
+
p.clear();
|
|
12098
|
+
getOptional<std::string>("fileName", p.fileName, j);
|
|
12099
|
+
getOptional<int>("intervalSecs", p.intervalSecs, j, 60);
|
|
12100
|
+
getOptional<bool>("enabled", p.enabled, j, false);
|
|
12101
|
+
getOptional<std::string>("runCmd", p.runCmd, j);
|
|
12102
|
+
getOptional<bool>("includeGroupDetail", p.includeGroupDetail, j, false);
|
|
12103
|
+
}
|
|
12104
|
+
|
|
12105
|
+
//-----------------------------------------------------------
|
|
12106
|
+
JSON_SERIALIZED_CLASS(EngateServerInternals)
|
|
12107
|
+
/**
|
|
12108
|
+
* @brief Internal engate server settings
|
|
12109
|
+
*
|
|
12110
|
+
* These settings are used to configure internal parameters.
|
|
12111
|
+
*
|
|
12112
|
+
* Helper C++ class to serialize and de-serialize EngateServerInternals JSON
|
|
12113
|
+
*
|
|
12114
|
+
* Example: @include[doc] examples/EngateServerInternals.json
|
|
12115
|
+
*
|
|
12116
|
+
* @see engageInitialize, ConfigurationObjects::EngateServerConfiguration
|
|
12117
|
+
*/
|
|
12118
|
+
class EngateServerInternals : public ConfigurationObjectBase
|
|
12119
|
+
{
|
|
12120
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12121
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateServerInternals)
|
|
12122
|
+
|
|
12123
|
+
public:
|
|
12124
|
+
/** @brief [Optional] Settings for the EAR's watchdog. */
|
|
12125
|
+
WatchdogSettings watchdog;
|
|
12126
|
+
|
|
12127
|
+
/** @brief [Optional, Default: 1000] Interval at which to run the housekeeper thread. */
|
|
12128
|
+
int housekeeperIntervalMs;
|
|
12129
|
+
|
|
12130
|
+
/** @brief [Optional] Low-level tuning */
|
|
12131
|
+
TuningSettings tuning;
|
|
12132
|
+
|
|
12133
|
+
EngateServerInternals()
|
|
12134
|
+
{
|
|
12135
|
+
clear();
|
|
12136
|
+
}
|
|
12137
|
+
|
|
12138
|
+
void clear()
|
|
12139
|
+
{
|
|
12140
|
+
watchdog.clear();
|
|
12141
|
+
tuning.clear();
|
|
12142
|
+
housekeeperIntervalMs = 1000;
|
|
12143
|
+
}
|
|
12144
|
+
};
|
|
12145
|
+
|
|
12146
|
+
static void to_json(nlohmann::json& j, const EngateServerInternals& p)
|
|
12147
|
+
{
|
|
12148
|
+
j = nlohmann::json{
|
|
12149
|
+
TOJSON_IMPL(watchdog),
|
|
12150
|
+
TOJSON_IMPL(housekeeperIntervalMs),
|
|
12151
|
+
TOJSON_IMPL(tuning)
|
|
12152
|
+
};
|
|
12153
|
+
}
|
|
12154
|
+
static void from_json(const nlohmann::json& j, EngateServerInternals& p)
|
|
12155
|
+
{
|
|
12156
|
+
p.clear();
|
|
12157
|
+
getOptional<WatchdogSettings>("watchdog", p.watchdog, j);
|
|
12158
|
+
getOptional<int>("housekeeperIntervalMs", p.housekeeperIntervalMs, j, 1000);
|
|
12159
|
+
getOptional<TuningSettings>("tuning", p.tuning, j);
|
|
12160
|
+
}
|
|
12161
|
+
|
|
12162
|
+
//-----------------------------------------------------------
|
|
12163
|
+
JSON_SERIALIZED_CLASS(EngateServerConfiguration)
|
|
12164
|
+
/**
|
|
12165
|
+
* @brief Configuration for the engate server
|
|
12166
|
+
*
|
|
12167
|
+
* Helper C++ class to serialize and de-serialize EngateServerConfiguration JSON
|
|
12168
|
+
*
|
|
12169
|
+
* Example: @include[doc] examples/EngateServerConfiguration.json
|
|
12170
|
+
*
|
|
12171
|
+
*/
|
|
12172
|
+
class EngateServerConfiguration : public ConfigurationObjectBase
|
|
12173
|
+
{
|
|
12174
|
+
IMPLEMENT_JSON_SERIALIZATION()
|
|
12175
|
+
IMPLEMENT_JSON_DOCUMENTATION(EngateServerConfiguration)
|
|
12176
|
+
|
|
12177
|
+
public:
|
|
12178
|
+
|
|
12179
|
+
/** @brief A unqiue identifier for the EAR server */
|
|
12180
|
+
std::string id;
|
|
12181
|
+
|
|
12182
|
+
/** @brief Number of seconds between checks to see if the service configuration has been updated. Default is 60.*/
|
|
12183
|
+
int serviceConfigurationFileCheckSecs;
|
|
12184
|
+
|
|
12185
|
+
/** @brief Name of a file containing the ear configuration. */
|
|
12186
|
+
std::string groupsConfigurationFileName;
|
|
12187
|
+
|
|
12188
|
+
/** @brief Command-line to execute that returns a configuration */
|
|
12189
|
+
std::string groupsConfigurationFileCommand;
|
|
12190
|
+
|
|
12191
|
+
/** @brief Number of seconds between checks to see if the configuration has been updated. Default is 60.*/
|
|
12192
|
+
int groupsConfigurationFileCheckSecs;
|
|
12193
|
+
|
|
12194
|
+
/** @brief Details for producing a status report. @see EngateServerStatusReportConfiguration */
|
|
12195
|
+
EngateServerStatusReportConfiguration statusReport;
|
|
12196
|
+
|
|
12197
|
+
/** @brief Details concerning the server's interaction with an external health-checker such as a load-balancer. @see ExternalHealthCheckResponder */
|
|
12198
|
+
ExternalHealthCheckResponder externalHealthCheckResponder;
|
|
12199
|
+
|
|
12200
|
+
/** @brief Internal settings */
|
|
12201
|
+
EngateServerInternals internals;
|
|
12202
|
+
|
|
12203
|
+
/** @brief Path to the certificate store */
|
|
12204
|
+
std::string certStoreFileName;
|
|
12205
|
+
|
|
12206
|
+
/** @brief Hex password for the certificate store (if any) */
|
|
12207
|
+
std::string certStorePasswordHex;
|
|
12208
|
+
|
|
12209
|
+
/** @brief The policy to be used for the underlying Engage Engine */
|
|
12210
|
+
EnginePolicy enginePolicy;
|
|
12211
|
+
|
|
12212
|
+
/** @brief Name to use for signalling a configuration check */
|
|
12213
|
+
std::string configurationCheckSignalName;
|
|
12214
|
+
|
|
12215
|
+
/** @brief [Optional] Settings for the FIPS crypto. */
|
|
12216
|
+
FipsCryptoSettings fipsCrypto;
|
|
12217
|
+
|
|
12218
|
+
/** @brief [Optional] Settings for NSM. */
|
|
12219
|
+
NsmConfiguration nsm;
|
|
12220
|
+
|
|
12221
|
+
EngateServerConfiguration()
|
|
12222
|
+
{
|
|
12223
|
+
clear();
|
|
12224
|
+
}
|
|
12225
|
+
|
|
12226
|
+
void clear()
|
|
12227
|
+
{
|
|
12228
|
+
id.clear();
|
|
12229
|
+
serviceConfigurationFileCheckSecs = 60;
|
|
12230
|
+
groupsConfigurationFileName.clear();
|
|
12231
|
+
groupsConfigurationFileCommand.clear();
|
|
12232
|
+
groupsConfigurationFileCheckSecs = 60;
|
|
12233
|
+
statusReport.clear();
|
|
12234
|
+
externalHealthCheckResponder.clear();
|
|
12235
|
+
internals.clear();
|
|
12236
|
+
certStoreFileName.clear();
|
|
12237
|
+
certStorePasswordHex.clear();
|
|
12238
|
+
enginePolicy.clear();
|
|
12239
|
+
configurationCheckSignalName = "rts.9a164fa.${id}";
|
|
12240
|
+
fipsCrypto.clear();
|
|
12241
|
+
nsm.clear();
|
|
12242
|
+
}
|
|
12243
|
+
};
|
|
12244
|
+
|
|
12245
|
+
static void to_json(nlohmann::json& j, const EngateServerConfiguration& p)
|
|
12246
|
+
{
|
|
12247
|
+
j = nlohmann::json{
|
|
12248
|
+
TOJSON_IMPL(id),
|
|
12249
|
+
TOJSON_IMPL(serviceConfigurationFileCheckSecs),
|
|
12250
|
+
TOJSON_IMPL(groupsConfigurationFileName),
|
|
12251
|
+
TOJSON_IMPL(groupsConfigurationFileCommand),
|
|
12252
|
+
TOJSON_IMPL(groupsConfigurationFileCheckSecs),
|
|
12253
|
+
TOJSON_IMPL(statusReport),
|
|
12254
|
+
TOJSON_IMPL(externalHealthCheckResponder),
|
|
12255
|
+
TOJSON_IMPL(internals),
|
|
12256
|
+
TOJSON_IMPL(certStoreFileName),
|
|
12257
|
+
TOJSON_IMPL(certStorePasswordHex),
|
|
12258
|
+
TOJSON_IMPL(enginePolicy),
|
|
12259
|
+
TOJSON_IMPL(configurationCheckSignalName),
|
|
12260
|
+
TOJSON_IMPL(fipsCrypto),
|
|
12261
|
+
TOJSON_IMPL(nsm)
|
|
12262
|
+
};
|
|
12263
|
+
}
|
|
12264
|
+
static void from_json(const nlohmann::json& j, EngateServerConfiguration& p)
|
|
12265
|
+
{
|
|
12266
|
+
p.clear();
|
|
12267
|
+
getOptional<std::string>("id", p.id, j);
|
|
12268
|
+
getOptional<int>("serviceConfigurationFileCheckSecs", p.serviceConfigurationFileCheckSecs, j, 60);
|
|
12269
|
+
getOptional<std::string>("groupsConfigurationFileName", p.groupsConfigurationFileName, j);
|
|
12270
|
+
getOptional<std::string>("groupsConfigurationFileCommand", p.groupsConfigurationFileCommand, j);
|
|
12271
|
+
getOptional<int>("groupsConfigurationFileCheckSecs", p.groupsConfigurationFileCheckSecs, j, 60);
|
|
12272
|
+
getOptional<EngateServerStatusReportConfiguration>("statusReport", p.statusReport, j);
|
|
12273
|
+
getOptional<ExternalHealthCheckResponder>("externalHealthCheckResponder", p.externalHealthCheckResponder, j);
|
|
12274
|
+
getOptional<EngateServerInternals>("internals", p.internals, j);
|
|
12275
|
+
getOptional<std::string>("certStoreFileName", p.certStoreFileName, j);
|
|
12276
|
+
getOptional<std::string>("certStorePasswordHex", p.certStorePasswordHex, j);
|
|
12277
|
+
j.at("enginePolicy").get_to(p.enginePolicy);
|
|
12278
|
+
getOptional<std::string>("configurationCheckSignalName", p.configurationCheckSignalName, j, "rts.9a164fa.${id}");
|
|
12279
|
+
getOptional<FipsCryptoSettings>("fipsCrypto", p.fipsCrypto, j);
|
|
12280
|
+
getOptional<NsmConfiguration>("nsm", p.nsm, j);
|
|
12281
|
+
}
|
|
12282
|
+
|
|
11873
12283
|
//-----------------------------------------------------------
|
|
11874
12284
|
static inline void dumpExampleConfigurations(const char *path)
|
|
11875
12285
|
{
|
|
@@ -292,6 +292,12 @@ typedef struct _EngageEvents_t
|
|
|
292
292
|
|
|
293
293
|
/** @brief Fired whenever the previously-registered high-resolution timer interval ticks. 'tickType' is 1, 2, or 3 for pre-tick, tick, and post-tick respectively */
|
|
294
294
|
// void (* _Nullable PFN_ENGAGE_ON_HIGH_RESOLUTION_TIMER_TICK)(uint32_t tickType, uint32_t ticksSoFarLow, uint32_t ticksSoFarHigh, const char * _Nullable eventExtraJson);
|
|
295
|
+
|
|
296
|
+
/** @brief Fired on a group-by-group pcm power report */
|
|
297
|
+
void (* _Nullable PFN_ENGAGE_ENGINE_GROUP_BY_GROUP_PCM_POWER_LEVEL_REPORT)(const char * _Nullable eventExtraJson);
|
|
298
|
+
|
|
299
|
+
/** @brief Fired on an audio device event */
|
|
300
|
+
void (* _Nullable PFN_ENGAGE_ENGINE_AUDIO_DEVICE_EVENT)(const char * _Nullable eventExtraJson);
|
|
295
301
|
} EngageEvents_t;
|
|
296
302
|
/** @} */
|
|
297
303
|
|
|
@@ -1781,6 +1787,22 @@ ENGAGE_API int engageRegisterForHighResolutionTimerNative(uint32_t durationMs, P
|
|
|
1781
1787
|
ENGAGE_API int engageUnregisterFromHighResolutionTimerNative(void);
|
|
1782
1788
|
#endif
|
|
1783
1789
|
|
|
1790
|
+
/**
|
|
1791
|
+
* @brief [ASYNC] Begins tracking of input and output PCM power for the group
|
|
1792
|
+
*
|
|
1793
|
+
* @param id The ID of the group on which to start pcm power tracking
|
|
1794
|
+
* @return ENGAGE_RESULT_OK if the submission request was successful
|
|
1795
|
+
*/
|
|
1796
|
+
ENGAGE_API int engageBeginGroupPcmPowerTracking(const char * _Nonnull id);
|
|
1797
|
+
|
|
1798
|
+
/**
|
|
1799
|
+
* @brief [ASYNC] End tracking of input and output PCM power for the group
|
|
1800
|
+
*
|
|
1801
|
+
* @param id The ID of the group on which to end pcm power tracking
|
|
1802
|
+
* @return ENGAGE_RESULT_OK if the submission request was successful
|
|
1803
|
+
*/
|
|
1804
|
+
ENGAGE_API int engageEndGroupPcmPowerTracking(const char * _Nonnull id);
|
|
1805
|
+
|
|
1784
1806
|
#endif
|
|
1785
1807
|
|
|
1786
1808
|
#ifdef __cplusplus
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED