diff --git a/companion/src/firmwares/customisation_data.h b/companion/src/firmwares/customisation_data.h index d7c71fb79..9fe6f58a8 100644 --- a/companion/src/firmwares/customisation_data.h +++ b/companion/src/firmwares/customisation_data.h @@ -30,7 +30,7 @@ */ -constexpr int MAX_CUSTOM_SCREENS {5}; +constexpr int MAX_CUSTOM_SCREENS {10}; constexpr int THEME_NAME_LEN {8}; constexpr int MAX_THEME_OPTIONS {5}; constexpr int LEN_ZONE_OPTION_STRING {8}; diff --git a/radio/src/bitmaps/480x272/default_theme/mask_theme_view10.png b/radio/src/bitmaps/480x272/default_theme/mask_theme_view10.png new file mode 100644 index 000000000..c7490aea1 Binary files /dev/null and b/radio/src/bitmaps/480x272/default_theme/mask_theme_view10.png differ diff --git a/radio/src/bitmaps/480x272/default_theme/mask_theme_view9.png b/radio/src/bitmaps/480x272/default_theme/mask_theme_view9.png new file mode 100644 index 000000000..5fe44287f Binary files /dev/null and b/radio/src/bitmaps/480x272/default_theme/mask_theme_view9.png differ diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 67d67d9a3..f147326a9 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -54,7 +54,7 @@ #define DEF_TRAINER_CHANNELS 8 #define MAX_TRAINER_CHANNELS 16 #define MAX_TELEMETRY_SENSORS 60 - #define MAX_CUSTOM_SCREENS 5 + #define MAX_CUSTOM_SCREENS 10 #elif defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) #define MAX_MODELS 60 #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32 diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 3e211bd3e..70ff8af95 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -140,14 +140,14 @@ static inline void check_struct() #elif defined(PCBHORUS) #if defined(PCBX10) CHKSIZE(RadioData, 924); - CHKSIZE(ModelData, 11128); + CHKSIZE(ModelData, 15378); #else CHKSIZE(RadioData, 906); - CHKSIZE(ModelData, 11126); + CHKSIZE(ModelData, 15376); #endif #elif defined(PCBNV14) CHKSIZE(RadioData, 852); - CHKSIZE(ModelData, 10942); + CHKSIZE(ModelData, 15192); #endif #undef CHKSIZE diff --git a/radio/src/gui/colorlcd/bitmaps.cpp b/radio/src/gui/colorlcd/bitmaps.cpp index 5c279b55f..90b887164 100644 --- a/radio/src/gui/colorlcd/bitmaps.cpp +++ b/radio/src/gui/colorlcd/bitmaps.cpp @@ -197,6 +197,21 @@ static const uint8_t mask_theme_view4[] = { static const uint8_t mask_theme_view5[] = { #include "mask_theme_view5.lbm" }; +static const uint8_t mask_theme_view6[] = { +#include "mask_theme_view6.lbm" +}; +static const uint8_t mask_theme_view7[] = { +#include "mask_theme_view7.lbm" +}; +static const uint8_t mask_theme_view8[] = { +#include "mask_theme_view8.lbm" +}; +static const uint8_t mask_theme_view9[] = { +#include "mask_theme_view9.lbm" +}; +static const uint8_t mask_theme_view10[] = { +#include "mask_theme_view10.lbm" +}; static const uint8_t stick_pointer[] = { #include "alpha_stick_pointer.lbm" }; @@ -337,6 +352,11 @@ static const _BuiltinIcon _builtinIcons[] = { {ICON_THEME_VIEW3, mask_theme_view3}, {ICON_THEME_VIEW4, mask_theme_view4}, {ICON_THEME_VIEW5, mask_theme_view5}, + {ICON_THEME_VIEW6, mask_theme_view6}, + {ICON_THEME_VIEW7, mask_theme_view7}, + {ICON_THEME_VIEW8, mask_theme_view8}, + {ICON_THEME_VIEW9, mask_theme_view9}, + {ICON_THEME_VIEW10, mask_theme_view10}, {ICON_THEME_ADD_VIEW, mask_theme_add_view}, {ICON_STATS, mask_menu_stats}, {ICON_STATS_THROTTLE_GRAPH, mask_stats_throttle_graph}, diff --git a/radio/src/gui/colorlcd/menus.h b/radio/src/gui/colorlcd/menus.h index 3192414e2..4d5350d1c 100644 --- a/radio/src/gui/colorlcd/menus.h +++ b/radio/src/gui/colorlcd/menus.h @@ -65,6 +65,11 @@ enum MenuIcons { ICON_THEME_VIEW3, ICON_THEME_VIEW4, ICON_THEME_VIEW5, + ICON_THEME_VIEW6, + ICON_THEME_VIEW7, + ICON_THEME_VIEW8, + ICON_THEME_VIEW9, + ICON_THEME_VIEW10, ICON_THEME_ADD_VIEW, ICON_STATS, ICON_STATS_THROTTLE_GRAPH, diff --git a/radio/src/gui/colorlcd/screen_setup.cpp b/radio/src/gui/colorlcd/screen_setup.cpp index a70cd2a41..e7c996760 100644 --- a/radio/src/gui/colorlcd/screen_setup.cpp +++ b/radio/src/gui/colorlcd/screen_setup.cpp @@ -150,7 +150,7 @@ void ScreenAddPage::build(FormWindow * window) menu->addTab(tab); menu->setCurrentTab(pageIndex); - if (menu->getTabs() < MAX_CUSTOM_SCREENS) { + if (menu->getTabs() <= MAX_CUSTOM_SCREENS) { menu->addTab(new ScreenAddPage(menu, menu->getTabs())); } } diff --git a/radio/src/gui/colorlcd/themes/flysky.cpp b/radio/src/gui/colorlcd/themes/flysky.cpp index afeb2006b..b99396881 100644 --- a/radio/src/gui/colorlcd/themes/flysky.cpp +++ b/radio/src/gui/colorlcd/themes/flysky.cpp @@ -150,6 +150,11 @@ class FlyskyTheme: public OpenTxTheme loadMenuIcon(ICON_THEME_VIEW3, "mask_theme_view3.png"); loadMenuIcon(ICON_THEME_VIEW4, "mask_theme_view4.png"); loadMenuIcon(ICON_THEME_VIEW5, "mask_theme_view5.png"); + loadMenuIcon(ICON_THEME_VIEW6, "mask_theme_view6.png"); + loadMenuIcon(ICON_THEME_VIEW7, "mask_theme_view7.png"); + loadMenuIcon(ICON_THEME_VIEW8, "mask_theme_view8.png"); + loadMenuIcon(ICON_THEME_VIEW9, "mask_theme_view9.png"); + loadMenuIcon(ICON_THEME_VIEW10, "mask_theme_view10.png"); loadMenuIcon(ICON_THEME_ADD_VIEW, "mask_theme_add_view.png"); loadMenuIcon(ICON_MONITOR, "mask_monitor.png"); loadMenuIcon(ICON_MONITOR_CHANNELS1, "mask_monitor_channels1.png"); diff --git a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 8e2dc464e..94d24b4dd 100644 --- a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -891,7 +891,7 @@ static const struct YamlNode struct_ModelData[] = { YAML_UNSIGNED( "potsWarnEnabled", 16 ), YAML_ARRAY("potsWarnPosition", 8, 5, struct_signed_8, NULL), YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL), + YAML_ARRAY("screenData", 6800, 10, struct_CustomScreenData, NULL), YAML_STRUCT("topbarData", 1248, struct_TopBarPersistentData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_STRING("modelRegistrationID", 8), diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 38a99757a..c0a7e4642 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -922,7 +922,7 @@ static const struct YamlNode struct_ModelData[] = { YAML_UNSIGNED( "potsWarnEnabled", 16 ), YAML_ARRAY("potsWarnPosition", 8, 11, struct_signed_8, NULL), YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL), + YAML_ARRAY("screenData", 6800, 10, struct_CustomScreenData, NULL), YAML_STRUCT("topbarData", 2400, struct_TopBarPersistentData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_STRING("modelRegistrationID", 8), diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index bb5a11898..3c5239b9d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -920,7 +920,7 @@ static const struct YamlNode struct_ModelData[] = { YAML_UNSIGNED( "potsWarnEnabled", 16 ), YAML_ARRAY("potsWarnPosition", 8, 9, struct_signed_8, NULL), YAML_ARRAY("telemetrySensors", 112, 60, struct_TelemetrySensor, NULL), - YAML_ARRAY("screenData", 6800, 5, struct_CustomScreenData, NULL), + YAML_ARRAY("screenData", 6800, 10, struct_CustomScreenData, NULL), YAML_STRUCT("topbarData", 2400, struct_TopBarPersistentData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_STRING("modelRegistrationID", 8),