diff --git a/companion/src/updates/CMakeLists.txt b/companion/src/updates/CMakeLists.txt index d7c8362b3..32ed0c069 100644 --- a/companion/src/updates/CMakeLists.txt +++ b/companion/src/updates/CMakeLists.txt @@ -12,6 +12,7 @@ set(${PROJECT_NAME}_NAMES reporeleases updatecloudbuild updatecompanion + updateexpresslrs updatefactories updatefirmware updateinterface diff --git a/companion/src/updates/updateexpresslrs.cpp b/companion/src/updates/updateexpresslrs.cpp new file mode 100644 index 000000000..53c3fab2c --- /dev/null +++ b/companion/src/updates/updateexpresslrs.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (C) EdgeTX + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "updateexpresslrs.h" + +UpdateExpressLRS::UpdateExpressLRS(QWidget * parent) : + UpdateInterface(parent, CID_ExpressLRS, tr("ExpressLRS"), Repo::REPO_TYPE_GITHUB, + QString(GH_API_REPOS).append("/ExpressLRS/ExpressLRS"), "", 100) +{ + init(); // call after UpdateInterface ctor due to virtual functions +} + +void UpdateExpressLRS::assetSettingsInit() +{ + if (!isSettingsIndexValid()) + return; + + g.component[id()].initAllAssets(); + + { + ComponentAssetData &cad = g.component[id()].asset[0]; + cad.desc("script"); + cad.processes(UPDFLG_Common_Asset &~ UPDFLG_Decompress); + cad.flags(cad.processes() | UPDFLG_CopyFiles); + cad.filterType(UpdateParameters::UFT_Pattern); + cad.filter("^elrs.*\\.lua$"); + cad.maxExpected(1); + cad.destSubDir("SCRIPTS/TOOLS"); + } + + qDebug() << "Asset settings initialised"; +} diff --git a/companion/src/updates/updateexpresslrs.h b/companion/src/updates/updateexpresslrs.h new file mode 100644 index 000000000..f1029a709 --- /dev/null +++ b/companion/src/updates/updateexpresslrs.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) EdgeTX + * + * Based on code named + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x + * gruvin9x - http://code.google.com/p/gruvin9x + * + * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#pragma once + +#include "updateinterface.h" + +class UpdateExpressLRS : public UpdateInterface +{ + Q_DECLARE_TR_FUNCTIONS(UpdateExpressLRS) + + public: + + explicit UpdateExpressLRS(QWidget * parent); + virtual ~UpdateExpressLRS() {} + + protected: + virtual void assetSettingsInit() override; +}; diff --git a/companion/src/updates/updatefactories.cpp b/companion/src/updates/updatefactories.cpp index 0d477893a..20cc5643d 100644 --- a/companion/src/updates/updatefactories.cpp +++ b/companion/src/updates/updatefactories.cpp @@ -27,6 +27,7 @@ #include "updatethemes.h" #include "updatemultiprotocol.h" #include "updatecloudbuild.h" +#include "updateexpresslrs.h" UpdateFactories::UpdateFactories(QWidget * parent) : QWidget(parent) @@ -94,6 +95,7 @@ void UpdateFactories::registerUpdateFactories() registerUpdateFactory(new UpdateFactory(this)); registerUpdateFactory(new UpdateFactory(this)); registerUpdateFactory(new UpdateFactory(this)); + registerUpdateFactory(new UpdateFactory(this)); // Note: Companion must be last as its install requires the app to be closed and thus would interrupt the update loop registerUpdateFactory(new UpdateFactory(this)); diff --git a/companion/src/updates/updateinterface.h b/companion/src/updates/updateinterface.h index 103ce5b4a..af6e17415 100644 --- a/companion/src/updates/updateinterface.h +++ b/companion/src/updates/updateinterface.h @@ -49,6 +49,7 @@ class UpdateInterface : public QWidget CID_MultiProtocol = 4, CID_Companion = 5, CID_CloudBuild = 6, + CID_ExpressLRS = 7, }; Q_ENUM(ComponentIdentity)