20#include <radio_tool/fw/fw.hpp>
21#include <radio_tool/fw/tyt_fw.hpp>
22#include <radio_tool/fw/tyt_fw_sgl.hpp>
23#include <radio_tool/fw/cs_fw.hpp>
24#include <radio_tool/fw/ailunce_fw.hpp>
25#include <radio_tool/fw/yaesu_fw.hpp>
37 std::function<
bool(
const std::string &)> &&fnFile,
38 std::function<
bool(
const std::string &)> &&fnRadio,
39 std::function<std::unique_ptr<FirmwareSupport>()> &&fnCreate
40 ) : SupportsFirmwareFile(fnFile), SupportsRadioModel(fnRadio), CreateHandler(fnCreate)
44 const std::function<bool(
const std::string &)> SupportsFirmwareFile;
46 const std::function<bool(
const std::string &)> SupportsRadioModel;
48 const std::function<std::unique_ptr<FirmwareSupport>()> CreateHandler;
74 if (fn.SupportsFirmwareFile(file))
76 return fn.CreateHandler();
79 throw std::runtime_error(
"Firmware file not supported");
90 if (fn.SupportsRadioModel(model))
92 return fn.CreateHandler();
95 throw std::runtime_error(
"Firmware model not supported");