#pragma once #include #include struct ModelCheck { bool LocalExists; bool LegacyExists; std::string Path; std::string LegacyPath; }; struct ETModel { std::wstring Name; std::wstring Location; int Type; }; enum class Model_Types { Legacy, Local, Remote }; class ModelDownloadManager { public: // Callback invoked when a model is ready (local filesystem path). std::function OnModelReady; std::vector MasterModelList() { return masterModelList; } ModelCheck ModelExists(std::wstring modelName); void OnModelSelected(ETModel model); void RebuildModelList(std::vector trainedModels); private: std::wstring legacyModelPath = L"/Godot/app_userdata/Beyond Eyetracking/models"; std::wstring modelPath = L"eyetracking/Models"; std::vector masterModelList; bool rebuildingModels; }; extern ModelDownloadManager modelManager;