MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / updateReceiverMetadataFromMsgToken

Function updateReceiverMetadataFromMsgToken

src/core/KiwiSdrProtocol.cpp:1060–1320  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1058}
1059
1060bool updateReceiverMetadataFromMsgToken(const MsgToken& token,
1061 ReceiverMetadata* metadata)
1062{
1063 if (!metadata || token.key.isEmpty()) {
1064 return false;
1065 }
1066
1067 const QString key = token.key.trimmed();
1068 const QString valueText = token.value.trimmed();
1069 if (key.isEmpty()) {
1070 return false;
1071 }
1072 if (!token.hasValue) {
1073 bool changed = false;
1074 bool structured = false;
1075 if (key == QStringLiteral("monitor")) {
1076 structured = true;
1077 changed = setBoolField(&metadata->busy, &metadata->hasBusy, true)
1078 || changed;
1079 changed = setCampStatusField(&metadata->campStatus,
1080 &metadata->hasCampStatus,
1081 CampStatus::Offered) || changed;
1082 } else if (key == QStringLiteral("camp_disconnect")) {
1083 structured = true;
1084 changed = setCampStatusField(&metadata->campStatus,
1085 &metadata->hasCampStatus,
1086 CampStatus::Disconnected) || changed;
1087 }
1088 if (structured) {
1089 trimStableStatusFields(&metadata->stableStatusFields);
1090 return changed;
1091 }
1092 changed = appendUniqueStatusField(&metadata->stableStatusFields,
1093 key,
1094 QString());
1095 trimStableStatusFields(&metadata->stableStatusFields);
1096 return changed;
1097 }
1098
1099 bool changed = false;
1100 bool structured = false;
1101 auto parseInt = [&valueText](bool* ok) {
1102 return valueText.toInt(ok);
1103 };
1104 auto parseDouble = [&valueText](bool* ok) {
1105 return valueText.toDouble(ok);
1106 };
1107
1108 if (key == QStringLiteral("users")) {
1109 structured = true;
1110 bool ok = false;
1111 const int value = parseInt(&ok);
1112 if (ok) {
1113 changed = setIntField(&metadata->users, &metadata->hasUsers, value)
1114 || changed;
1115 }
1116 } else if (key == QStringLiteral("users_max")) {
1117 structured = true;

Callers 3

handleTextMessageMethod · 0.85
parseStatusPayloadFunction · 0.85
mainFunction · 0.85

Calls 12

setBoolFieldFunction · 0.85
setCampStatusFieldFunction · 0.85
trimStableStatusFieldsFunction · 0.85
appendUniqueStatusFieldFunction · 0.85
setIntFieldFunction · 0.85
mergeStringFunction · 0.85
setDoubleFieldFunction · 0.85
metadataValueToMhzFunction · 0.85
apiPolicyForFunction · 0.85
isEmptyMethod · 0.45
valueMethod · 0.45

Tested by 1

mainFunction · 0.68