From 2820f0da25399a869e16aba672233bf31bec39bf Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 13 Jan 2021 12:46:35 +0100 Subject: [PATCH] Some compile fixes --- radio/src/gui/colorlcd/radio_sdmanager.cpp | 48 +++++++++++++++++++++- radio/src/translations/cn.h.txt | 14 ++++--- radio/src/translations/tw.h.txt | 32 ++++++++++++--- 3 files changed, 81 insertions(+), 13 deletions(-) diff --git a/radio/src/gui/colorlcd/radio_sdmanager.cpp b/radio/src/gui/colorlcd/radio_sdmanager.cpp index 6a99ead4d..f30eaa553 100644 --- a/radio/src/gui/colorlcd/radio_sdmanager.cpp +++ b/radio/src/gui/colorlcd/radio_sdmanager.cpp @@ -123,6 +123,44 @@ class FlashDialog: public FullScreenDialog Progress progress; }; +template +class MultiFlashDialog: public FullScreenDialog +{ + public: + explicit MultiFlashDialog(ModuleIndex module, MultiModuleType type): + FullScreenDialog(WARNING_TYPE_INFO, "Flash device"), + device(module), + type(type), + progress(this, {LCD_W / 2 - 50, LCD_H / 2, 100, 15}) + { + } + + void deleteLater(bool detach = true, bool trash = true) override + { + if (_deleted) + return; + + progress.deleteLater(true, false); + + FullScreenDialog::deleteLater(detach, trash); + } + + void flash(const char * filename) + { + device.flashFirmware(filename, type, [=](const char * title, const char * message, int count, int total) -> void { + setMessage(message); + progress.setValue(total > 0 ? count * 100 / total : 0); + MainWindow::instance()->run(false); + }); + deleteLater(); + } + + protected: + T device; + MultiModuleType type; + Progress progress; +}; + void RadioSdManagerPage::build(FormWindow * window) { FormGridLayout grid; @@ -187,17 +225,23 @@ void RadioSdManagerPage::build(FormWindow * window) if (information.readMultiFirmwareInformation(name.data()) == nullptr) { #if defined(INTERNAL_MODULE_MULTI) menu->addLine(STR_FLASH_INTERNAL_MULTI, [=]() { - auto dialog = new FlashDialog(INTERNAL_MODULE); + auto dialog = new MultiFlashDialog(INTERNAL_MODULE, MULTI_TYPE_MULTIMODULE); dialog->flash(getFullPath(name)); }); #endif menu->addLine(STR_FLASH_EXTERNAL_MULTI, [=]() { - auto dialog = new FlashDialog(EXTERNAL_MODULE); + auto dialog = new MultiFlashDialog(EXTERNAL_MODULE, MULTI_TYPE_MULTIMODULE); dialog->flash(getFullPath(name)); }); } } #endif + else if (!READ_ONLY() && !strcasecmp(ext, ELRS_FIRMWARE_EXT)) { + menu->addLine(STR_FLASH_EXTERNAL_ELRS, [=]() { + auto dialog = new MultiFlashDialog(EXTERNAL_MODULE, MULTI_TYPE_ELRS); + dialog->flash(getFullPath(name)); + }); + } else if (isExtensionMatching(ext, BITMAPS_EXT)) { // TODO } diff --git a/radio/src/translations/cn.h.txt b/radio/src/translations/cn.h.txt index 2d9ac47ef..999bc1805 100644 --- a/radio/src/translations/cn.h.txt +++ b/radio/src/translations/cn.h.txt @@ -456,6 +456,8 @@ #define TR_BEEPCOUNTDOWN INDENT "倒数" #define TR_PERSISTENT TR(INDENT "Persist.", INDENT "关机保持") #define TR_BACKLIGHT_LABEL "背光" +#define TR_BLDELAY INDENT "Duration" +#define TR_GHOST_MENU_LABEL "GHOST MENU" #define TR_BLONBRIGHTNESS "背光开" #define TR_BLOFFBRIGHTNESS "背光关" #define TR_KEYS_BACKLIGHT "按键背光" @@ -643,6 +645,7 @@ #define TR_NO_SDCARD "存储卡未安装" #define TR_WAITING_FOR_RX "等待接收机响应..." #define TR_WAITING_FOR_TX "等待发射机响应..." +#define TR_WAITING_FOR_MODULE "Waiting for module..." #define TR_NO_TOOLS "无可用附加功能" #define TR_NORMAL "正常" #define TR_NOT_INVERTED "正向" @@ -779,11 +782,12 @@ #define TR_FLASH_FLIGHT_CONTROLLER_BY_INTERNAL_MODULE_OTA "Flash FC by int. OTA" #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "刷新蓝牙模块") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" -#define TR_CURRENT_VERSION "当前版本: " -#define TR_FLASH_INTERNAL_MODULE TR("Flash int. module", "更新内置模块固件") -#define TR_FLASH_INTERNAL_MULTI TR("Flash Int. Multi", "更新内置多协议模块固件") -#define TR_FLASH_EXTERNAL_MODULE TR("Flash ext. module", "更新外置模块固件") -#define TR_FLASH_EXTERNAL_MULTI TR("Flash Ext. Multi", "更新外置多协议模块固件") +#define TR_CURRENT_VERSION "当前版本: " +#define TR_FLASH_INTERNAL_MODULE "更新内置模块固件" +#define TR_FLASH_INTERNAL_MULTI "更新内置多协议模块固件" +#define TR_FLASH_EXTERNAL_MODULE "更新外置模块固件" +#define TR_FLASH_EXTERNAL_MULTI "更新外置多协议模块固件" +#define TR_FLASH_EXTERNAL_ELRS "Flash External ELRS" #define TR_FIRMWARE_UPDATE_ERROR TR("FW update error", "固件更新失败") #define TR_FIRMWARE_UPDATE_SUCCESS "固件更新成功" #define TR_WRITING "正在写入..." diff --git a/radio/src/translations/tw.h.txt b/radio/src/translations/tw.h.txt index 46482f977..1c4bbdd72 100644 --- a/radio/src/translations/tw.h.txt +++ b/radio/src/translations/tw.h.txt @@ -456,6 +456,8 @@ #define TR_BEEPCOUNTDOWN INDENT "倒數" #define TR_PERSISTENT TR(INDENT "Persist.", INDENT "關機保持") #define TR_BACKLIGHT_LABEL "背光" +#define TR_GHOST_MENU_LABEL "GHOST MENU" +#define TR_BLDELAY INDENT "Duration" #define TR_BLONBRIGHTNESS "背光開" #define TR_BLOFFBRIGHTNESS "背光關" #define TR_KEYS_BACKLIGHT "按鍵背光" @@ -643,6 +645,7 @@ #define TR_NO_SDCARD "存儲卡未安裝" #define TR_WAITING_FOR_RX "等待接收機響應..." #define TR_WAITING_FOR_TX "等待發射機響應..." +#define TR_WAITING_FOR_MODULE "Waiting for module..." #define TR_NO_TOOLS "無可用附加功能" #define TR_NORMAL "正常" #define TR_NOT_INVERTED "正向" @@ -780,11 +783,12 @@ #define TR_FLASH_BLUETOOTH_MODULE TR("Flash BT module", "刷新藍牙模塊") #define TR_FLASH_POWER_MANAGEMENT_UNIT "Flash pwr mngt unit" #define TR_CURRENT_VERSION "當前版本: " -#define TR_FLASH_INTERNAL_MODULE TR("Flash int. module", "更新內置模塊韌體") -#define TR_FLASH_INTERNAL_MULTI TR("Flash Int. Multi", "更新內置多協議模塊韌體") -#define TR_FLASH_EXTERNAL_MODULE TR("Flash ext. module", "更新外置模塊韌體") -#define TR_FLASH_EXTERNAL_MULTI TR("Flash Ext. Multi", "更新外置多協議模塊韌體") -#define TR_FIRMWARE_UPDATE_ERROR TR("FW update error", "韌體更新失敗韌體") +#define TR_FLASH_INTERNAL_MODULE TR("Flash int. module", "更新內置模塊韌體") +#define TR_FLASH_INTERNAL_MULTI TR("Flash Int. Multi", "更新內置多協議模塊韌體") +#define TR_FLASH_EXTERNAL_MODULE TR("Flash ext. module", "更新外置模塊韌體") +#define TR_FLASH_EXTERNAL_MULTI TR("Flash Ext. Multi", "更新外置多協議模塊韌體") +#define TR_FIRMWARE_UPDATE_ERROR TR("FW update error", "韌體更新失敗韌體") +#define TR_FLASH_EXTERNAL_ELRS TR("Flash Ext. ELRS", "Flash External ELRS") #define TR_FIRMWARE_UPDATE_SUCCESS "韌體更新成功" #define TR_WRITING "正在寫入..." #define TR_CONFIRM_FORMAT "是否格式化?" @@ -1046,10 +1050,26 @@ #define TR_ABOUT_MARTIN_1 "Martin Hotar" #define TR_ABOUT_MARTIN_2 "Graphics designer" -#if defined(PCBFRSKY) +#if defined(MANUFACTURER_FRSKY) #define TR_ABOUT_HARDWARE_1 "FrSky" #define TR_ABOUT_HARDWARE_2 TR("Hardware design/producer", "Hardware designer/producer") #define TR_ABOUT_HARDWARE_3 "Firmware contributor" +#elif defined(MANUFACTURER_RADIOMASTER) + #define TR_ABOUT_HARDWARE_1 "Radiomaster" + #define TR_ABOUT_HARDWARE_2 TR("Hardware design/producer", "Hardware designer/producer") + #define TR_ABOUT_HARDWARE_3 "Firmware contributor" +#elif defined(MANUFACTURER_JUMPER) + #define TR_ABOUT_HARDWARE_1 "JumperRC" + #define TR_ABOUT_HARDWARE_2 TR("Hardware design/producer", "Hardware designer/producer") + #define TR_ABOUT_HARDWARE_3 "Firmware contributor" +#elif defined(MANUFACTURER_RADIOMASTER) + #define TR_ABOUT_HARDWARE_1 "Radiomaster" + #define TR_ABOUT_HARDWARE_2 TR("Hardware design/producer", "Hardware designer/producer") + #define TR_ABOUT_HARDWARE_3 "Firmware contributor" +#elif defined(MANUFACTURER_JUMPER) + #define TR_ABOUT_HARDWARE_1 "JumperRC" + #define TR_ABOUT_HARDWARE_2 TR("Hardware design/producer", "Hardware designer/producer") + #define TR_ABOUT_HARDWARE_3 "Firmware contributor" #else #define TR_ABOUT_HARDWARE_1 "Brent Nelson" #define TR_ABOUT_HARDWARE_2 "Sky9x designer/producer"