10 #include <nlohmann/json.hpp>
12 #include "blink-lib.hpp"
19 using Json = nlohmann::json;
30 [[nodiscard]]
static bool parseConditions(
const Json& json,
Config& config);
31 [[nodiscard]]
static bool parseCondition(
const Json& json,
Config& config);
32 [[nodiscard]]
static bool parsePatterns(
const Json& json,
Config& config);
33 [[nodiscard]]
static bool parsePattern(
const Json& json,
Config& config);
34 [[nodiscard]]
static bool parseTopLevelVars(
const Json& json,
Config& config);
35 [[nodiscard]]
static std::shared_ptr<ProcessMonitorConfig> parseProcessMonitor(
const Json& json);
36 [[nodiscard]]
static std::shared_ptr<RollupConfig> parseRollup(
const Json& json);
37 [[nodiscard]]
static blink1_lib::RGBN parseRgb(
const std::string& rgbString);
38 static void readPattern(
const Json& json, std::vector<std::unique_ptr<PatternCommand>>& commands);
48 [[nodiscard]]
static std::optional<Config>
parseConfig(std::istream& instream);