From 18b5fbf33e6dfb3dce84ef8c1fb228eac5d20b23 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 18 Feb 2020 11:11:52 +0100 Subject: [PATCH] Add copy min/max to outputs (#7396) * Add copy min/max to outputs * Also copy ppm center --- radio/src/gui/128x64/model_outputs.cpp | 4 ++++ radio/src/gui/212x64/model_outputs.cpp | 4 ++++ radio/src/gui/480x272/model_outputs.cpp | 4 ++++ radio/src/opentx.cpp | 19 +++++++++++++++++++ radio/src/opentx.h | 1 + radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/cz.h.txt | 1 + radio/src/translations/de.h.txt | 1 + radio/src/translations/en.h.txt | 1 + radio/src/translations/es.h.txt | 1 + radio/src/translations/fi.h.txt | 1 + radio/src/translations/fr.h.txt | 1 + radio/src/translations/it.h.txt | 1 + radio/src/translations/nl.h.txt | 1 + radio/src/translations/pl.h.txt | 1 + radio/src/translations/pt.h.txt | 1 + radio/src/translations/se.h.txt | 1 + 18 files changed, 45 insertions(+) diff --git a/radio/src/gui/128x64/model_outputs.cpp b/radio/src/gui/128x64/model_outputs.cpp index a069e2362..0fde67159 100644 --- a/radio/src/gui/128x64/model_outputs.cpp +++ b/radio/src/gui/128x64/model_outputs.cpp @@ -215,6 +215,9 @@ void onLimitsMenu(const char *result) else if (result == STR_EDIT) { pushMenu(menuModelLimitsOne); } + else if (result == STR_COPY_MIN_MAX_TO_OUTPUTS) { + copyMinMaxToOutputs(s_currIdx); + } } void menuModelLimits(event_t event) @@ -240,6 +243,7 @@ void menuModelLimits(event_t event) POPUP_MENU_ADD_ITEM(STR_RESET); POPUP_MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFS); POPUP_MENU_ADD_ITEM(STR_COPY_STICKS_TO_OFS); + POPUP_MENU_ADD_ITEM(STR_COPY_MIN_MAX_TO_OUTPUTS); POPUP_MENU_START(onLimitsMenu); } diff --git a/radio/src/gui/212x64/model_outputs.cpp b/radio/src/gui/212x64/model_outputs.cpp index f3f776285..c1cd1de04 100644 --- a/radio/src/gui/212x64/model_outputs.cpp +++ b/radio/src/gui/212x64/model_outputs.cpp @@ -86,6 +86,9 @@ void onLimitsMenu(const char *result) copyTrimsToOffset(ch); storageDirty(EE_MODEL); } + else if (result == STR_COPY_MIN_MAX_TO_OUTPUTS) { + copyMinMaxToOutputs(ch); + } } void menuModelLimits(event_t event) @@ -142,6 +145,7 @@ void menuModelLimits(event_t event) POPUP_MENU_ADD_ITEM(STR_RESET); POPUP_MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFS); POPUP_MENU_ADD_ITEM(STR_COPY_STICKS_TO_OFS); + POPUP_MENU_ADD_ITEM(STR_COPY_MIN_MAX_TO_OUTPUTS); POPUP_MENU_START(onLimitsMenu); } diff --git a/radio/src/gui/480x272/model_outputs.cpp b/radio/src/gui/480x272/model_outputs.cpp index af5128fd7..3dd2d8f21 100644 --- a/radio/src/gui/480x272/model_outputs.cpp +++ b/radio/src/gui/480x272/model_outputs.cpp @@ -80,6 +80,9 @@ void onLimitsMenu(const char *result) copyTrimsToOffset(ch); storageDirty(EE_MODEL); } + else if (result == STR_COPY_MIN_MAX_TO_OUTPUTS) { + copyMinMaxToOutputs(ch); + } } bool menuModelLimits(event_t event) @@ -133,6 +136,7 @@ bool menuModelLimits(event_t event) POPUP_MENU_ADD_ITEM(STR_RESET); POPUP_MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFS); POPUP_MENU_ADD_ITEM(STR_COPY_STICKS_TO_OFS); + POPUP_MENU_ADD_ITEM(STR_COPY_MIN_MAX_TO_OUTPUTS); POPUP_MENU_START(onLimitsMenu); } diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 1bf9e8342..258eb74f8 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1725,6 +1725,25 @@ void copyTrimsToOffset(uint8_t ch) storageDirty(EE_MODEL); } +void copyMinMaxToOutputs(uint8_t ch) +{ + LimitData *ld = limitAddress(ch); + int16_t min = ld->min; + int16_t max = ld->max; + int16_t center = ld->ppmCenter; + + pauseMixerCalculations(); + + for (uint8_t chan = 0; chan < MAX_OUTPUT_CHANNELS; chan++) { + ld = limitAddress(chan); + ld->min = min; + ld->max = max; + ld->ppmCenter = center; + } + + resumeMixerCalculations(); + storageDirty(EE_MODEL); +} #if defined(STARTUP_ANIMATION) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index cac27516d..8a8ea96a9 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -867,6 +867,7 @@ void instantTrim(); void evalTrims(); void copyTrimsToOffset(uint8_t ch); void copySticksToOffset(uint8_t ch); +void copyMinMaxToOutputs(uint8_t ch); void moveTrimsToOffsets(); typedef uint16_t ACTIVE_PHASES_TYPE; diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 8e333fcc4..1dfb9a692 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -536,6 +536,7 @@ const char STR_PT[] = TR_PT; const char STR_PTS[] = TR_PTS; const char STR_SMOOTH[] = TR_SMOOTH; const char STR_COPY_STICKS_TO_OFS[] = TR_COPY_STICKS_TO_OFS; +const char STR_COPY_MIN_MAX_TO_OUTPUTS[] = TR_COPY_MIN_MAX_TO_OUTPUTS; const char STR_COPY_TRIMS_TO_OFS[] = TR_COPY_TRIMS_TO_OFS; const char STR_INCDEC[] = TR_INCDEC; const char STR_GLOBALVAR[] = TR_GLOBALVAR; diff --git a/radio/src/translations.h b/radio/src/translations.h index 239fd7c71..df0cfd67d 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -821,6 +821,7 @@ extern const char STR_PT[]; extern const char STR_PTS[]; extern const char STR_SMOOTH[]; extern const char STR_COPY_STICKS_TO_OFS[]; +extern const char STR_COPY_MIN_MAX_TO_OUTPUTS[]; extern const char STR_COPY_TRIMS_TO_OFS[]; extern const char STR_INCDEC[]; extern const char STR_GLOBALVAR[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 2244f2fe9..cdcf5ae13 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -962,6 +962,7 @@ #define TR_PTS " b." #define TR_SMOOTH "Hladká" #define TR_COPY_STICKS_TO_OFS TR("Páky do subtrimu", "Kopie pák do subtrimu") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Trimy do subtrimu", "Kopíe trimů do subtrimu") #define TR_INCDEC "Zvěšit/Zmenšit" #define TR_GLOBALVAR "Glob. proměnná" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 98fd1df8e..effe773d7 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -968,6 +968,7 @@ #define TR_PTS "Pts" #define TR_SMOOTH "Runden" #define TR_COPY_STICKS_TO_OFS TR("Copy Stk ->Subtrim", "Kopie Stick to Servo-Mitte") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Copy Trim->Subtrim", "Kopie Trimm to Servo-Mitte") // "Trim to Subtrim" #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 7620e6bf3..f37006215 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -967,6 +967,7 @@ #define TR_PTS "pts" #define TR_SMOOTH "Smooth" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy sticks to subtrim") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global var" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 1b5b7c096..c1ae1f49c 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -987,6 +987,7 @@ #define TR_PTS "pts" #define TR_SMOOTH "Smooth" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 6bafcb221..839269089 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -981,6 +981,7 @@ #define TR_PTS "pts" #define TR_SMOOTH "Smooth" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 55548862c..2e6eb35df 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -983,6 +983,7 @@ #define TR_PTS "pts" #define TR_SMOOTH "Lissage" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Manche vers subtrim") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Trim vers subtrim") #define TR_INCDEC "Inc/décrementer" #define TR_GLOBALVAR "Var. globale" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index b5feb04b8..2125f0189 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -983,6 +983,7 @@ #define TR_PTS "pti" #define TR_SMOOTH "Smussa" #define TR_COPY_STICKS_TO_OFS TR(INDENT "Cp. stick->subtrim", INDENT "Copia Sticks su Subtrim") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR(INDENT "Cp. trim->subtrim", INDENT "Copia Trims su Subtrim") #define TR_INCDEC "Inc/Decrementa" #define TR_GLOBALVAR "Var Globale" diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index d28dcbca8..6e3388f4c 100644 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -969,6 +969,7 @@ #define TR_PTS "Ptn" #define TR_SMOOTH "Zacht" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Kopieer Sticks naar Subtrim") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Kopieer Trim naar Subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Globale Var" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index dc6a86aac..2fe3c84a3 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -982,6 +982,7 @@ #define TR_PTS "pkty" #define TR_SMOOTH "Gładka" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Skopiuj Drążki Do Offsetu") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Skopiuj Trymery Do subtrymerów") #define TR_INCDEC "Zwiększ/Zmnie" #define TR_GLOBALVAR "Zm.Global." diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 7b77891c6..33b3568e2 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -972,6 +972,7 @@ #define TR_PTS "pts" #define TR_SMOOTH "Smooth" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Copy Sticks To Offset") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Copy trims to subtrim") #define TR_INCDEC "Inc/Decrement" #define TR_GLOBALVAR "Global Var" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 8639b0378..8bbb15270 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -982,6 +982,7 @@ #define TR_PTS "pkt" #define TR_SMOOTH "Mjuk" #define TR_COPY_STICKS_TO_OFS TR("Cpy stick->subtrim", "Spara spakar som subtrim") +#define TR_COPY_MIN_MAX_TO_OUTPUTS TR("Cpy min/max to all", "Copy min/max/center to all outputs") #define TR_COPY_TRIMS_TO_OFS TR("Cpy trim->subtrim", "Spara trimmar som subtrim") #define TR_INCDEC "Inkr/Dekrement" #define TR_GLOBALVAR "Globala Var"