Skip to content

Commit e35d03a

Browse files
Merge branch 'andrea/cleanup_of_json_properties_after_assigning' into 'development'
HOTFIX: Cleaning up properties after assigning. See merge request VP/opentrackio-cpp!17
2 parents 0acab6d + 9355e26 commit e35d03a

3 files changed

Lines changed: 10 additions & 7 deletions

File tree

include/opentrackio-cpp/OpenTrackIOHelper.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,8 @@ namespace opentrackio
174174
};
175175

176176
template<>
177-
inline void OpenTrackIOHelpers::assignField<std::vector<double>>(nlohmann::json &json, std::string_view fieldStr,
178-
std::optional<std::vector<double>> &field,
177+
inline void OpenTrackIOHelpers::assignField<std::vector<std::string>>(nlohmann::json &json, std::string_view fieldStr,
178+
std::optional<std::vector<std::string>> &field,
179179
std::string_view typeStr, std::vector<std::string> &errors)
180180
{
181181
if (!json.contains(fieldStr) || !json[fieldStr].is_array())
@@ -184,10 +184,10 @@ namespace opentrackio
184184
return;
185185
}
186186

187-
std::vector<double> vec{};
187+
std::vector<std::string> vec{};
188188
if (!iterateJsonArrayAndPopulateVector(json[fieldStr], vec))
189189
{
190-
errors.emplace_back("field: {} had elements not of type: double");
190+
errors.emplace_back("field: {} had elements not of type: string");
191191
field = std::nullopt;
192192
return;
193193
}

include/opentrackio-cpp/OpenTrackIOTypes.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,9 @@ namespace opentrackio::opentrackiotypes
157157
return std::nullopt;
158158
}
159159

160-
std::optional<int> subFrame;
161-
OpenTrackIOHelpers::assignField(tcJson["format"], "subFrame", subFrame, "uint32", errors);
160+
std::optional<uint32_t> subFrame;
161+
OpenTrackIOHelpers::assignField(tcJson, "subFrame", subFrame, "uint32_t", errors);
162+
162163
return Timecode{hours.value(), minutes.value(), seconds.value(), frames.value(), frameRate.value(), subFrame};
163164
}
164165
};

src/OpenTrackIOProperties.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ namespace opentrackio::opentrackioproperties
177177
OpenTrackIOHelpers::assignField(lensJson, "serialNumber", lens.serialNumber, "string", errors);
178178
OpenTrackIOHelpers::assignField(lensJson, "distortionOverscanMax", lens.distortionOverscanMax, "double", errors);
179179
OpenTrackIOHelpers::assignField(lensJson, "undistortionOverscanMax", lens.undistortionOverscanMax, "double", errors);
180+
OpenTrackIOHelpers::assignField(lensJson, "calibrationHistory", lens.calibrationHistory, "string", errors);
180181

181182
OpenTrackIOHelpers::clearFieldIfEmpty(json["static"], "lens");
182183
}
@@ -666,6 +667,7 @@ namespace opentrackio::opentrackioproperties
666667
errors.emplace_back("field: timing/synchronization/ptp/leaderPriorities is required, however it is missing a subfield(s).");
667668
return std::nullopt;
668669
}
670+
OpenTrackIOHelpers::clearFieldIfEmpty(ptpJson, leaderPrioritiesStr);
669671

670672
outSync.ptp->leaderPriorities = Synchronization::Ptp::LeaderPriorities{
671673
priority1.value(),
@@ -710,7 +712,7 @@ namespace opentrackio::opentrackioproperties
710712
}
711713
}
712714

713-
json.erase("ptp");
715+
OpenTrackIOHelpers::clearFieldIfEmpty(syncJson, "ptp");
714716
}
715717

716718
return outSync;

0 commit comments

Comments
 (0)