From b66fafbec3c2c4ced6c83db59ea788bfe6754fd7 Mon Sep 17 00:00:00 2001 From: mhotar Date: Fri, 24 Jan 2014 23:07:43 +0100 Subject: [PATCH 01/73] TR_VKEYS Left aligned #584 --- radio/src/translations/cz.h.txt | 2 +- radio/src/translations/de.h.txt | 2 +- radio/src/translations/en.h | 2 +- radio/src/translations/es.h.txt | 2 +- radio/src/translations/fr.h.txt | 2 +- radio/src/translations/it.h.txt | 2 +- radio/src/translations/pl.h.txt | 2 +- radio/src/translations/pt.h.txt | 2 +- radio/src/translations/se.h.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 723a7b82b..b53c10927 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit"" Dolů""Nhoru""Vprvo""Vlevo", " Menu"" Exit""Enter"" Page"" Plus""Mínus") +#define TR_VKEYS TR("Menu\0""Exit\0""Dolů\0""Nhoru""Vprvo""Vlevo", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Mínus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 8b5a40dc1..88cc93fa3 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit"" Down"" Up""Right"" Left", " Menu"" Exit""Enter"" Page"" Plus""Minus") +#define TR_VKEYS TR("Menu\0""Exit\0""Down\0""Up\0 ""Right""Left\0", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "DGa""DGb" //Digitalgeber a und b = Drehgeber diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 33eb7b97f..6636dfc96 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "---\0""120\0""120X""140\0""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit"" Down"" Up""Right"" Left", " Menu"" Exit""Enter"" Page"" Plus""Minus") +#define TR_VKEYS TR("Menu\0""Exit\0""Down\0""Up\0 ""Right""Left\0", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 01c95100b..f80fa9603 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "---\0""120\0""120X""140\0""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu""Salir""Abajo""Arrib""Dcha.""Izqd.", " Menu""Salir""Enter""Pgna.""Mas ""Menos") +#define TR_VKEYS TR("Menu\0""Salir""Abajo""Arrib""Dcha.""Izqd.", "Menu\0""Salir""Enter""Pgna.""Mas\0 ""Menos") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index c442dd40e..c126fef6b 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit"" Bas"" Haut""Droit""Gauch", " Menu"" Exit""Enter"" Page"" Plus""Minus") +#define TR_VKEYS TR("Menu\0""Exit\0""Bas\0 ""Haut\0""Droit""Gauch", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 85fc15843..ab98b0394 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menù"" EXIT"" DN "" UP"" SX"" DX", " Menu"" Exit""Enter"" Page"" Plus""Minus") +#define TR_VKEYS TR("Menù\0""EXIT\0""DN\0 ""UP\0 ""SX\0 ""DX\0 ", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index c93f2f129..9fa764ab4 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit""W dół""Wgórę""Wpraw""Wlewo", " Menu"" Exit""W dół""Wgórę""Wpraw""Wlewo") +#define TR_VKEYS TR("Menu\0""Exit\0""W dół""Wgórę""Wpraw""Wlewo", "Menu\0""Exit\0""W dół""Wgórę""Wpraw""Wlewo") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index fb51f22fe..6cb6b5b3e 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Sair""Desce"" Sobe""Direi""Esqda", " Menu"" Exit""Enter"" Page"" Plus""Minus") +#define TR_VKEYS TR("Menu\0""Sair\0""Desce""Sobe\0""Direi""Esqda", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 7d6965526..27a4f1775 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -301,7 +301,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit"" Ned"" Upp""Höger""Vänst", " Menu"" Exit""Enter"" Page"" Plus""Minus") +#define TR_VKEYS TR("Menu\0""Exit\0""Ned\0 ""Upp\0 ""Höger""Vänst", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" From 1d0ebe56427d3b1b55dc000b74a6482c0f8535ec Mon Sep 17 00:00:00 2001 From: mhotar Date: Sat, 25 Jan 2014 01:43:19 +0100 Subject: [PATCH 02/73] CFN alignments #584 costs 28B :( --- radio/src/gui/menu_model.cpp | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 4f9f6c139..9f3fb2d46 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4734,13 +4734,10 @@ void menuModelCustomFunctions(uint8_t event) if (sd->swtch) { uint8_t func_displayed; if (CFN_FUNC(sd) < FUNC_TRAINER) { - func_displayed = 0; - putsChn(MODEL_CUSTOM_FUNC_2ND_COLUMN+6*FW, y, CFN_CH_NUMBER(sd)+1, attr); + func_displayed = 0; } else if (CFN_FUNC(sd) <= FUNC_TRAINER + NUM_STICKS) { - func_displayed = 1; - if (CFN_FUNC(sd) != FUNC_TRAINER) - putsMixerSource(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, MIXSRC_Rud+CFN_FUNC(sd)-FUNC_TRAINER-1, attr); + func_displayed = 1; } #if defined(DEBUG) else if (CFN_FUNC(sd) == FUNC_TEST) { @@ -4753,14 +4750,27 @@ void menuModelCustomFunctions(uint8_t event) #endif #if defined(GVARS) else if (CFN_FUNC(sd) >= FUNC_ADJUST_GV1) { - func_displayed = FUNC_ADJUST_GV1 - FUNC_TRAINER - NUM_STICKS + 1; - putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, STR_GV, CFN_FUNC(sd)-FUNC_ADJUST_GV1+1, attr); + func_displayed = FUNC_ADJUST_GV1 - FUNC_TRAINER - NUM_STICKS + 1; } #endif else { func_displayed = 2 + CFN_FUNC(sd) - FUNC_TRAINER - NUM_STICKS - 1; } + lcd_putsiAtt(MODEL_CUSTOM_FUNC_2ND_COLUMN, y, STR_VFSWFUNC, func_displayed, attr); + if (CFN_FUNC(sd) < FUNC_TRAINER) { + putsChn(lcdNextPos, y, CFN_CH_NUMBER(sd)+1, attr); + } + else if (CFN_FUNC(sd) <= FUNC_TRAINER + NUM_STICKS) { + if (CFN_FUNC(sd) != FUNC_TRAINER) + putsMixerSource(lcdNextPos, y, MIXSRC_Rud+CFN_FUNC(sd)-FUNC_TRAINER-1, attr); + } +#if defined(GVARS) + else if (CFN_FUNC(sd) >= FUNC_ADJUST_GV1) { + putsStrIdx(lcdNextPos, y, STR_GV, CFN_FUNC(sd)-FUNC_ADJUST_GV1+1, attr); + } +#endif + if (active) { #if defined(CPUARM) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_FUNC(sd), FUNC_MAX-1); From f67658998995cb568b552206523a163a38a48735 Mon Sep 17 00:00:00 2001 From: mhotar Date: Sun, 26 Jan 2014 12:32:09 +0100 Subject: [PATCH 03/73] Flash savings 24B I am learning code optimisations, can someone check this comit please? This have not to change anything, only save flash. --- radio/src/Makefile | 2 +- radio/src/gui/menu_model.cpp | 3 ++- radio/src/lcd.cpp | 17 ++++++++--------- radio/src/opentx.cpp | 8 +++----- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/radio/src/Makefile b/radio/src/Makefile index 482cdbb21..1341f5cb6 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -285,7 +285,7 @@ ifeq ($(PCB), $(filter $(PCB), STD 9X 9XR)) ARCH = AVR TRGT = avr- MCU = atmega64 - OPT = s + OPT = s SDCARD = NO THR_TRACE = NO INCDIRS += targets/stock diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 9f3fb2d46..93d229ab8 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -2271,7 +2271,8 @@ void DrawCurve(uint8_t offset=0) uint8_t i = 0; do { - point_t point = getPoint(i++); + point_t point = getPoint(i); + i++; if (point.x == 0) break; lcd_filled_rect(point.x-offset, point.y-1, 3, 3, SOLID, FORCE); // do markup square } while(1); diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 3034f38ec..6613653f0 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -64,7 +64,8 @@ void lcd_img(xcoord_t x, uint8_t y, const pm_uchar * img, uint8_t idx, LcdFlags for (uint8_t yb = 0; yb < hb; yb++) { uint8_t *p = &displayBuf[ (y / 8 + yb) * LCD_W + x ]; for (xcoord_t i=0; i> 1) | 0x80; @@ -679,7 +679,6 @@ void lcd_hlineStip(xcoord_t x, uint8_t y, xcoord_t w, uint8_t pat, LcdFlags att) else { pat = pat >> 1; } - w--; p++; } } diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index cdefd2577..683cb886e 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -4817,7 +4817,8 @@ void stack_paint() q = &__bss_end ; p -= 2 ; while ( p > q ) - *p-- = 0x55 ; + *p = 0x55 ; + p--; } uint16_t stack_free() @@ -4825,10 +4826,7 @@ uint16_t stack_free() unsigned char *p ; p = &__bss_end + 1 ; - while ( *p == 0x55 ) - { - p+= 1 ; - } + while ( *p++ == 0x55 ); return p - &__bss_end ; } #endif From 5d9293e8f59425e798b77777d97876303f566846 Mon Sep 17 00:00:00 2001 From: mhotar Date: Sun, 26 Jan 2014 19:33:47 +0100 Subject: [PATCH 04/73] Version page realigned, 10B saved \036 -Newline code for all platforms stamp strings joined together to vers_stamp --- radio/src/gui/menu_general.cpp | 14 ++++++-------- radio/src/lcd.cpp | 6 ++---- radio/src/opentx.h | 5 +---- radio/src/stamp.cpp | 7 ++----- 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index ba165de4c..79b32f5ab 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1037,19 +1037,17 @@ void menuGeneralVersion(uint8_t event) { SIMPLE_MENU(STR_MENUVERSION, menuTabDiag, e_Vers, 1); - lcd_putsLeft(2*FH, stamp1); - lcd_putsLeft(3*FH, stamp2); - lcd_putsLeft(4*FH, stamp3); + lcd_putsLeft(2*FH, vers_stamp); + #if defined(PCBSKY9X) && !defined(REVA) if (Coproc_valid == 1) { - lcd_putsLeft(5*FH, PSTR("CoPr:")); - lcd_outdez8(10*FW, 5*FH, Coproc_read); + lcd_putsLeft(6*FH, PSTR("CoPr:")); + lcd_outdez8(10*FW, 6*FH, Coproc_read); } else { - lcd_putsLeft(5*FH, PSTR("CoPr: ---")); + lcd_putsLeft(6*FH, PSTR("CoPr: ---")); } -#endif - lcd_putsLeft(7*FH, eeprom_stamp); +#endif } void displayKeyState(uint8_t x, uint8_t y, EnumKeys key) diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 6613653f0..91ddedf49 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -361,9 +361,7 @@ void lcd_putsiAtt(xcoord_t x, uint8_t y,const pm_char * s,uint8_t idx, LcdFlags void lcd_putsnAtt(xcoord_t x, uint8_t y, const pm_char * s, uint8_t len, LcdFlags mode) { -#if defined(CPUARM) xcoord_t orig_x = x; -#endif bool setx = false; while(len--) { unsigned char c; @@ -395,16 +393,16 @@ void lcd_putsnAtt(xcoord_t x, uint8_t y, const pm_char * s, uint8_t len, LcdFlag else if (c == 0x1F) { //X-coord prefix setx = true; } -#if defined(CPUARM) else if (c == 0x1E) { //NEWLINE x = orig_x; y += FH; +#if defined(CPUARM) if (mode & DBLSIZE) y += FH; else if (mode & MIDSIZE) y += 4; else if (mode & SMLSIZE) y--; +#endif if (y >= LCD_H) break; } -#endif else { x += (c*FW/2); //EXTENDED SPACE } diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 1ce0294b7..8abd9e77f 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1181,10 +1181,7 @@ extern int8_t calcRESXto100(int16_t x); #define TMR_VAROFS 5 -extern const char stamp1[]; -extern const char stamp2[]; -extern const char stamp3[]; -extern const char eeprom_stamp[]; +extern const char vers_stamp[]; extern uint8_t g_vbat100mV; #define g_blinkTmr10ms (*(uint8_t*)&g_tmr10ms) diff --git a/radio/src/stamp.cpp b/radio/src/stamp.cpp index 72e1208bd..70147cb0c 100644 --- a/radio/src/stamp.cpp +++ b/radio/src/stamp.cpp @@ -40,11 +40,8 @@ #define STR2(s) #s #define DEFNUMSTR(s) STR2(s) -const pm_char stamp1[] PROGMEM = "VERS: " VERS_STR; -const pm_char stamp2[] PROGMEM = "DATE: " DATE_STR; -const pm_char stamp3[] PROGMEM = "TIME: " TIME_STR; #if defined(PCBSTD) -const pm_char eeprom_stamp[] PROGMEM = "EEPR: " DEFNUMSTR(EEPROM_VER) "-" DEFNUMSTR(EEPROM_VARIANT); +const pm_char vers_stamp[] PROGMEM = "VERS\037\045" VERS_STR "\036DATE\037\045" DATE_STR"\036TIME\037\045" TIME_STR "\036EEPR\037\045" DEFNUMSTR(EEPROM_VER) "-" DEFNUMSTR(EEPROM_VARIANT); #else -const pm_char eeprom_stamp[] PROGMEM = "EEPR: " DEFNUMSTR(EEPROM_VER); +const pm_char vers_stamp[] PROGMEM = "VERS\037\033: " VERS_STR "\036DATE\037\033: " DATE_STR"\036TIME\037\033: " TIME_STR "\036EEPR\037\033: " DEFNUMSTR(EEPROM_VER); #endif From 7c1ff4949e3513e63b5afd114cba37458d09cb8b Mon Sep 17 00:00:00 2001 From: mhotar Date: Sun, 26 Jan 2014 20:50:31 +0100 Subject: [PATCH 05/73] STATS page labels joined together, 20B saved --- radio/src/gui/view_statistics.cpp | 4 +--- radio/src/translations.cpp | 4 +--- radio/src/translations.h | 4 +--- radio/src/translations/cz.h.txt | 4 +--- radio/src/translations/de.h.txt | 4 +--- radio/src/translations/en.h | 4 +--- radio/src/translations/es.h.txt | 4 +--- radio/src/translations/fr.h.txt | 4 +--- radio/src/translations/it.h.txt | 4 +--- radio/src/translations/pl.h.txt | 4 +--- radio/src/translations/pt.h.txt | 4 +--- radio/src/translations/se.h.txt | 4 +--- 12 files changed, 12 insertions(+), 36 deletions(-) diff --git a/radio/src/gui/view_statistics.cpp b/radio/src/gui/view_statistics.cpp index b352b85da..10573b8bd 100644 --- a/radio/src/gui/view_statistics.cpp +++ b/radio/src/gui/view_statistics.cpp @@ -57,15 +57,13 @@ void menuStatisticsView(uint8_t event) return; } - lcd_puts( 1*FW, FH*1, STR_TM1TM2); + lcd_puts( 1*FW, FH*0, STR_TOTTM1TM2THRTHP); putsTime( 5*FW+5*FWNUM+1, FH*1, timersStates[0].val, 0, 0); putsTime( 12*FW+5*FWNUM+1, FH*1, timersStates[1].val, 0, 0); - lcd_puts( 1*FW, FH*2, STR_THRTHP); putsTime( 5*FW+5*FWNUM+1, FH*2, s_timeCumThr, 0, 0); putsTime( 12*FW+5*FWNUM+1, FH*2, s_timeCum16ThrP/16, 0, 0); - lcd_puts( 17*FW, FH*0, STR_TOT); putsTime( 12*FW+5*FWNUM+1, FH*0, s_timeCumTot, 0, 0); #if defined(PCBTARANIS) diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 842ec8090..f396a01b3 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -244,9 +244,7 @@ const pm_char STR_RXBATT[] PROGMEM = TR_RXBATT; const pm_char STR_TX[] PROGMEM = TR_TXnRX; const pm_char STR_ACCEL[] PROGMEM = TR_ACCEL; const pm_char STR_NODATA[] PROGMEM = TR_NODATA; -const pm_char STR_TM1TM2[] PROGMEM = TR_TM1TM2; -const pm_char STR_THRTHP[] PROGMEM = TR_THRTHP; -const pm_char STR_TOT[] PROGMEM = TR_TOT; +const pm_char STR_TOTTM1TM2THRTHP[] PROGMEM = TR_TOTTM1TM2THRTHP; const pm_char STR_TMR1LATMAXUS[] PROGMEM = TR_TMR1LATMAXUS; const pm_char STR_TMR1LATMINUS[] PROGMEM = TR_TMR1LATMINUS; const pm_char STR_TMR1JITTERUS[] PROGMEM = TR_TMR1JITTERUS; diff --git a/radio/src/translations.h b/radio/src/translations.h index d83e3c753..b3704f729 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -397,9 +397,7 @@ extern const pm_char STR_TX[]; #define STR_RX (STR_TX+OFS_RX) extern const pm_char STR_ACCEL[]; extern const pm_char STR_NODATA[]; -extern const pm_char STR_TM1TM2[]; -extern const pm_char STR_THRTHP[]; -extern const pm_char STR_TOT[]; +extern const pm_char STR_TOTTM1TM2THRTHP[]; extern const pm_char STR_TMR1LATMAXUS[]; extern const pm_char STR_TMR1LATMINUS[]; extern const pm_char STR_TMR1JITTERUS[]; diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index b53c10927..ae0c1fa36 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 88cc93fa3..ae6720810 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"NO DATA" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 6636dfc96..f5902ee6d 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -497,9 +497,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index f80fa9603..c01b2829b 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "SIN DATOS" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index c126fef6b..8e92baf19 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA "NO DATA" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index ab98b0394..cbcb0a00f 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"DATI ASSENTI" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 9fa764ab4..84f85850e 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 6cb6b5b3e..3506895b0 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -493,9 +493,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER"SEM DADOS" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 27a4f1775..c8344b4b8 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -497,9 +497,7 @@ #define OFS_RX 4 #define TR_ACCEL "Acc:" #define TR_NODATA CENTER "NO DATA" -#define TR_TM1TM2 "TM1\037\146TM2" -#define TR_THRTHP "THR\037\146TH%" -#define TR_TOT "TOT" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) #define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" From 746f9f93b7b20ead3705d016cb67bf61212dcbec Mon Sep 17 00:00:00 2001 From: mhotar Date: Sun, 26 Jan 2014 21:52:52 +0100 Subject: [PATCH 06/73] newline for [All] -comment --- radio/src/translations/cz.h.txt | 2 +- radio/src/translations/de.h.txt | 2 +- radio/src/translations/en.h | 2 +- radio/src/translations/es.h.txt | 2 +- radio/src/translations/fr.h.txt | 2 +- radio/src/translations/it.h.txt | 2 +- radio/src/translations/pl.h.txt | 2 +- radio/src/translations/pt.h.txt | 2 +- radio/src/translations/se.h.txt | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index d399a18e5..b1d47082f 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 430ce9962..84e817122 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 40d7f2144..b7cf30874 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 98b17b438..33773f30b 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 9748855a8..1fdcd9857 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 3a594a8d1..156a878fa 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 46b7bc434..327e53e04 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 0431c0751..f3aa2e7fd 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index c8748fc8f..6532d5489 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -35,7 +35,7 @@ */ /* Formatting octal codes available in TR_ strings: * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline (ARM boards only) + * \036 -newline * \001 to \035 -extended spacing (value * FW/2) * \0 -ends actual string */ From 046a4d253dc3e79f5d05d7e1e4e7254854cb978b Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 24 Jan 2014 16:49:33 +0100 Subject: [PATCH 07/73] [Taranis] Issue #554 Radio part done. We have now modes on trims. Let's say we are configuring the Rudder Trim on phase 1: - R:0 => Rudder trim = Rudder trim(phase 0) - R+0 => Rudder trim = Rudder trim(phase 0) + Rudder trim(phase 1) - R-- => Rudder trim is OFF Still needs to be done: - The result on screen is awful. I need ideas. Martin? - Companion conversions / UI for this feature - R+1 when configuring Rudder Trim on phase 1 should be impossible --- radio/src/gui/menu_model.cpp | 45 +++++++------------- radio/src/lcd.cpp | 25 ++++++++++- radio/src/myeeprom.h | 11 ++++- radio/src/opentx.cpp | 81 +++++++++++++++++++++++++++++++----- radio/src/opentx.h | 13 ++++-- 5 files changed, 128 insertions(+), 47 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 6f2309e1b..130f0cb72 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -1722,7 +1722,7 @@ FlightModesType editFlightModes(uint8_t x, uint8_t y, uint8_t event, FlightModes return value; } -#if LCD_W >= 212 +#if defined(PCBTARANIS) enum FlightModesItems { ITEM_PHASES_NAME, @@ -1739,7 +1739,7 @@ void editPhaseTrims(uint8_t x, uint8_t y, uint8_t phase, uint8_t event, uint8_t static uint8_t cursorPos = 0; for (uint8_t t=0; t 0) { if (p1valdiff || IS_ROTARY_RIGHT(event) || IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_DOWN) || event==EVT_KEY_REPT(KEY_UP)) { - int16_t v = getRawTrimValue(phase, cur); - if (v < TRIM_EXTENDED_MAX) v = TRIM_EXTENDED_MAX; - v = checkIncDec(event, v, TRIM_EXTENDED_MAX, TRIM_EXTENDED_MAX+MAX_PHASES-1, EE_MODEL); - if (checkIncDec_Ret) { - if (v == TRIM_EXTENDED_MAX) v = 0; - setTrimValue(phase, cur, v); - } + PhaseData *p = phaseAddress(phase); + trim_t & v = p->trim[cur]; + v.mode = checkIncDec(event, v.mode, -1, 2*MAX_PHASES-1, EE_MODEL); } switch (event) { -#if defined(ROTARY_ENCODER_NAVIGATION) || defined(PCBTARANIS) - case EVT_ROTARY_BREAK: + case EVT_KEY_BREAK(KEY_ENTER): if (s_editMode == EDIT_MODIFY_FIELD) { s_editMode = EDIT_MODIFY_STRING; cur = 0; @@ -1768,23 +1763,11 @@ void editPhaseTrims(uint8_t x, uint8_t y, uint8_t phase, uint8_t event, uint8_t else s_editMode = 0; break; -#endif -#if !defined(PCBTARANIS) - case EVT_KEY_BREAK(KEY_LEFT): - if (cur>0) cur--; - break; - case EVT_KEY_BREAK(KEY_RIGHT): - if (curname, sizeof(p->name), event, attr); + editName(4*FW-1, y, p->name, sizeof(p->name), event, attr); break; case ITEM_PHASES_SWITCH: if (k == 0) { - lcd_puts((5+LEN_FP_NAME)*FW+FW/2, y, STR_DEFAULT); + lcd_puts((5+LEN_FP_NAME)*FW-FW/2, y, STR_DEFAULT); } else { - putsSwitches((5+LEN_FP_NAME)*FW+FW/2, y, p->swtch, attr); + putsSwitches((5+LEN_FP_NAME)*FW-FW/2, y, p->swtch, attr); if (active) CHECK_INCDEC_MODELSWITCH(event, p->swtch, -MAX_SWITCH, MAX_SWITCH); } break; case ITEM_PHASES_TRIMS: if (k != 0) { - editPhaseTrims((10+LEN_FP_NAME)*FW+FW/2, y, k, event, attr); + editPhaseTrims((10+LEN_FP_NAME)*FW-2*FW, y, k, event, attr); } break; case ITEM_PHASES_FADE_IN: - lcd_outdezAtt(29*FW, y, (10/DELAY_STEP)*p->fadeIn, attr|PREC1); + lcd_outdezAtt(32*FW-2, y, (10/DELAY_STEP)*p->fadeIn, attr|PREC1); if (active) p->fadeIn = checkIncDec(event, p->fadeIn, 0, DELAY_MAX, EE_MODEL|NO_INCDEC_MARKS); break; case ITEM_PHASES_FADE_OUT: - lcd_outdezAtt(34*FW, y, (10/DELAY_STEP)*p->fadeOut, attr|PREC1); + lcd_outdezAtt(35*FW, y, (10/DELAY_STEP)*p->fadeOut, attr|PREC1); if (active) p->fadeOut = checkIncDec(event, p->fadeOut, 0, DELAY_MAX, EE_MODEL|NO_INCDEC_MARKS); break; @@ -1865,7 +1848,7 @@ void menuModelFlightModesAll(uint8_t event) } } -#else // LCD_W >= 212 +#else // PCBTARANIS enum menuModelPhaseItems { ITEM_MODEL_PHASE_NAME, diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 7b2cbe7f0..cdcf18323 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1162,9 +1162,31 @@ void putsTmrMode(xcoord_t x, uint8_t y, int8_t mode, LcdFlags att) putsSwitches(x, y, mode-(TMR_VAROFS-1), att); } +#if defined(PCBTARANIS) void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags att) { - int16_t v = getRawTrimValue(phase, idx); + trim_t v = getRawTrimValue(phase, idx); + + putsChnLetter(x, y, idx+1, att); + + if (v.mode < 0) { + lcd_putsAtt(x+FWNUM, y, "--", att); + } + else { + uint8_t p = v.mode >> 1; + if (v.mode % 2 == 0) { + lcd_putcAtt(x+FWNUM, y, '+', att); + } + else { + lcd_putcAtt(x+FWNUM, y, ':', att); + } + lcd_putcAtt(x+2*FWNUM, y, '0'+p, att); + } +} +#else +void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags att) +{ + trim_t v = getRawTrimValue(phase, idx); if (v > TRIM_EXTENDED_MAX) { uint8_t p = v - TRIM_EXTENDED_MAX - 1; @@ -1175,6 +1197,7 @@ void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags at putsChnLetter(x, y, idx+1, att); } } +#endif #if ROTARY_ENCODERS > 0 void putsRotaryEncoderMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags att) diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index d91b0d507..d0973c639 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1070,8 +1070,17 @@ PACK(typedef struct t_SwashRingData { // Swash Ring data #if defined(PCBSTD) #define TRIMS_ARRAY int8_t trim[4]; int8_t trim_ext:8 #define TRIMS_ARRAY_SIZE 5 + #define trim_t int16_t #else - #define TRIMS_ARRAY int16_t trim[4] + #if defined(PCBTARANIS) + PACK(typedef struct { + int16_t value:11; + int16_t mode:5; + }) trim_t; + #else + #define trim_t int16_t + #endif + #define TRIMS_ARRAY trim_t trim[4] #define TRIMS_ARRAY_SIZE 8 #endif diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index cdefd2577..50609e63d 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1640,38 +1640,83 @@ uint8_t getFlightPhase() } #endif -int16_t getRawTrimValue(uint8_t phase, uint8_t idx) +trim_t getRawTrimValue(uint8_t phase, uint8_t idx) { PhaseData *p = phaseAddress(phase); #if defined(PCBSTD) - return (((int16_t)p->trim[idx]) << 2) + ((p->trim_ext >> (2*idx)) & 0x03); + return (((trim_t)p->trim[idx]) << 2) + ((p->trim_ext >> (2*idx)) & 0x03); #else return p->trim[idx]; #endif } -int16_t getTrimValue(uint8_t phase, uint8_t idx) +int getTrimValue(uint8_t phase, uint8_t idx) { +#if defined(PCBTARANIS) + int result = 0; + for (uint8_t i=0; i> 1; + if (p == phase || phase == 0) { + return result + v.value; + } + else { + phase = p; + if (v.mode % 2 == 0) + result += v.value; + else + result = 0; + } + } + } + return 0; +#else return getRawTrimValue(getTrimFlightPhase(phase, idx), idx); +#endif } -void setTrimValue(uint8_t phase, uint8_t idx, int16_t trim) +void setTrimValue(uint8_t phase, uint8_t idx, int trim) { +#if defined(PCBTARANIS) + for (uint8_t i=0; itrim[idx]; + if (v.mode < 0) + return; + unsigned int p = v.mode >> 1; + if (p == phase || phase == 0) { + v.value = trim; + break;; + } + else if (v.mode % 2 == 0) { + v.value = limit(-500, trim - getTrimValue(p, idx), 500); + break; + } + else { + phase = p; + } + } +#elif defined(PCBSTD) PhaseData *p = phaseAddress(phase); -#if defined(PCBSTD) p->trim[idx] = (int8_t)(trim >> 2); - p->trim_ext = (p->trim_ext & ~(0x03 << (2*idx))) + (((trim & 0x03) << (2*idx))); + idx <<= 1; + p->trim_ext = (p->trim_ext & ~(0x03 << idx)) + (((trim & 0x03) << idx)); #else + PhaseData *p = phaseAddress(phase); p->trim[idx] = trim; #endif eeDirty(EE_MODEL); } +#if !defined(PCBTARANIS) uint8_t getTrimFlightPhase(uint8_t phase, uint8_t idx) { for (uint8_t i=0; i= phase) result++; @@ -1679,6 +1724,7 @@ uint8_t getTrimFlightPhase(uint8_t phase, uint8_t idx) } return 0; } +#endif #if defined(ROTARY_ENCODERS) uint8_t getRotaryEncoderFlightPhase(uint8_t idx) @@ -2309,7 +2355,7 @@ uint8_t checkTrim(uint8_t event) // LH_DWN LH_UP LV_DWN LV_UP RV_DWN RV_UP RH_DWN RH_UP uint8_t idx = CONVERT_MODE((uint8_t)k/2); uint8_t phase; - int16_t before; + int before; bool thro; #if defined(GVARS) @@ -2325,13 +2371,21 @@ uint8_t checkTrim(uint8_t event) } else { phase = getTrimFlightPhase(s_perout_flight_phase, idx); +#if defined(PCBTARANIS) + before = getTrimValue(phase, idx); +#else before = getRawTrimValue(phase, idx); +#endif thro = (idx==THR_STICK && g_model.thrTrim); } #else #define TRIM_REUSED() 0 phase = getTrimFlightPhase(s_perout_flight_phase, idx); +#if defined(PCBTARANIS) + before = getTrimValue(phase, idx); +#else before = getRawTrimValue(phase, idx); +#endif thro = (idx==THR_STICK && g_model.thrTrim); #endif int8_t trimInc = g_model.trimInc + 1; @@ -4671,7 +4725,7 @@ void instantTrim() if (i!=THR_STICK) { // don't instant trim the throttle stick uint8_t trim_phase = getTrimFlightPhase(s_perout_flight_phase, i); - int16_t trim = limit((int16_t)TRIM_EXTENDED_MIN, (int16_t)((anas[i] + trims[i]) / 2), (int16_t)TRIM_EXTENDED_MAX); + int16_t trim = limit(TRIM_EXTENDED_MIN, (anas[i] + trims[i]) / 2, TRIM_EXTENDED_MAX); setTrimValue(trim_phase, i, trim); } } @@ -4729,9 +4783,16 @@ void moveTrimsToOffsets() // copy state of 3 primary to subtrim if (i!=THR_STICK || !g_model.thrTrim) { int16_t original_trim = getTrimValue(s_perout_flight_phase, i); for (uint8_t phase=0; phase Date: Mon, 27 Jan 2014 09:26:02 +0100 Subject: [PATCH 08/73] [Taranis] Issue #554 - Default is now :0 (all trims linked to the default phase) --- radio/src/gui/menu_model.cpp | 69 ++++++++++-------------------------- radio/src/lcd.cpp | 16 ++++----- radio/src/opentx.cpp | 10 +++--- radio/src/translations/en.h | 2 +- 4 files changed, 30 insertions(+), 67 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 130f0cb72..9f7c2e8f4 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -1727,64 +1727,24 @@ FlightModesType editFlightModes(uint8_t x, uint8_t y, uint8_t event, FlightModes enum FlightModesItems { ITEM_PHASES_NAME, ITEM_PHASES_SWITCH, - ITEM_PHASES_TRIMS, + ITEM_PHASES_TRIM_RUD, + ITEM_PHASES_TRIM_ELE, + ITEM_PHASES_TRIM_THR, + ITEM_PHASES_TRIM_AIL, ITEM_PHASES_FADE_IN, ITEM_PHASES_FADE_OUT, ITEM_PHASES_COUNT, ITEM_PHASES_LAST = ITEM_PHASES_COUNT-1 }; -void editPhaseTrims(uint8_t x, uint8_t y, uint8_t phase, uint8_t event, uint8_t active) -{ - static uint8_t cursorPos = 0; - - for (uint8_t t=0; t 0) { - if (p1valdiff || IS_ROTARY_RIGHT(event) || IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_FIRST(KEY_UP) - || event==EVT_KEY_REPT(KEY_DOWN) || event==EVT_KEY_REPT(KEY_UP)) { - PhaseData *p = phaseAddress(phase); - trim_t & v = p->trim[cur]; - v.mode = checkIncDec(event, v.mode, -1, 2*MAX_PHASES-1, EE_MODEL); - } - - switch (event) { - case EVT_KEY_BREAK(KEY_ENTER): - if (s_editMode == EDIT_MODIFY_FIELD) { - s_editMode = EDIT_MODIFY_STRING; - cur = 0; - } - else if (cur 0) { posHorz += 2; } + if (sub==0 && posHorz > 0) { posHorz += 5; } if (sub=0) { displayColumnHeader(STR_PHASES_HEADERS, posHorz); @@ -1819,20 +1779,27 @@ void menuModelFlightModesAll(uint8_t event) case ITEM_PHASES_SWITCH: if (k == 0) { - lcd_puts((5+LEN_FP_NAME)*FW-FW/2, y, STR_DEFAULT); + lcd_puts((5+LEN_FP_NAME)*FW, y, STR_DEFAULT); } else { - putsSwitches((5+LEN_FP_NAME)*FW-FW/2, y, p->swtch, attr); + putsSwitches((5+LEN_FP_NAME)*FW, y, p->swtch, attr); if (active) CHECK_INCDEC_MODELSWITCH(event, p->swtch, -MAX_SWITCH, MAX_SWITCH); } break; - case ITEM_PHASES_TRIMS: + case ITEM_PHASES_TRIM_RUD: + case ITEM_PHASES_TRIM_ELE: + case ITEM_PHASES_TRIM_THR: + case ITEM_PHASES_TRIM_AIL: if (k != 0) { - editPhaseTrims((10+LEN_FP_NAME)*FW-2*FW, y, k, event, attr); + uint8_t t = j-ITEM_PHASES_TRIM_RUD; + putsTrimMode((4+LEN_FP_NAME)*FW+j*(5*FW/2), y, k, t, attr); + if (active) { + trim_t & v = p->trim[t]; + v.mode = checkIncDec(event, v.mode, -1, 2*MAX_PHASES-1, EE_MODEL); + } } break; - case ITEM_PHASES_FADE_IN: lcd_outdezAtt(32*FW-2, y, (10/DELAY_STEP)*p->fadeIn, attr|PREC1); if (active) p->fadeIn = checkIncDec(event, p->fadeIn, 0, DELAY_MAX, EE_MODEL|NO_INCDEC_MARKS); diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index cdcf18323..631715ec6 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1167,20 +1167,16 @@ void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags at { trim_t v = getRawTrimValue(phase, idx); - putsChnLetter(x, y, idx+1, att); - if (v.mode < 0) { - lcd_putsAtt(x+FWNUM, y, "--", att); + lcd_putsAtt(x, y, "--", att); } else { uint8_t p = v.mode >> 1; - if (v.mode % 2 == 0) { - lcd_putcAtt(x+FWNUM, y, '+', att); - } - else { - lcd_putcAtt(x+FWNUM, y, ':', att); - } - lcd_putcAtt(x+2*FWNUM, y, '0'+p, att); + if (v.mode % 2 == 0) + lcd_putcAtt(x+2, y, ':', att); + else + lcd_putcAtt(x, y, '+', att); + lcd_putcAtt(x+FW, y, '0'+p, att); } } #else diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 50609e63d..5ada1d63e 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1667,9 +1667,9 @@ int getTrimValue(uint8_t phase, uint8_t idx) else { phase = p; if (v.mode % 2 == 0) - result += v.value; - else result = 0; + else + result += v.value; } } } @@ -1692,11 +1692,11 @@ void setTrimValue(uint8_t phase, uint8_t idx, int trim) break;; } else if (v.mode % 2 == 0) { - v.value = limit(-500, trim - getTrimValue(p, idx), 500); - break; + phase = p; } else { - phase = p; + v.value = limit(-500, trim - getTrimValue(p, idx), 500); + break; } } #elif defined(PCBSTD) diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 9339ce7df..35d8f2f65 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -707,7 +707,7 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Name ", " Switch ", " Trims ", " Fade In ", " Fade Out " } +#define TR_PHASES_HEADERS { " Name ", " Switch ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Fade In ", " Fade Out " } #define TR_LIMITS_HEADERS { " Name ", " Subtrim ", " Min ", " Max ", " Direction ", " Curve ", " PPM Center ", " Subtrim mode " } #define TR_CSW_HEADERS { " Function ", " V1 ", " V2 ", " AND Switch ", " Duration ", " Delay " } From cb47c03f4fa4af4a71f1ea29c8c0fb27735e15d6 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 27 Jan 2014 12:25:13 +0100 Subject: [PATCH 09/73] [Taranis] Issue #554 - Bug fixes (radio part) --- radio/src/gui/menu_model.cpp | 9 +++++++-- radio/src/lcd.cpp | 7 ++++--- radio/src/myeeprom.h | 5 +++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 9f7c2e8f4..2520b5f90 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -1737,6 +1737,11 @@ enum FlightModesItems { ITEM_PHASES_LAST = ITEM_PHASES_COUNT-1 }; +bool isTrimModeAvailable(int16_t mode) +{ + return (mode == TRIM_MODE_NONE || (mode%2) == 0 || (mode/2) != (m_posVert-1)); +} + void menuModelFlightModesAll(uint8_t event) { MENU(STR_MENUFLIGHTPHASES, menuTabModel, e_FlightModesAll, 1+MAX_PHASES+1, {0, NAVIGATION_LINE_BY_LINE|(ITEM_PHASES_LAST-5), NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, NAVIGATION_LINE_BY_LINE|ITEM_PHASES_LAST, 0}); @@ -1796,7 +1801,7 @@ void menuModelFlightModesAll(uint8_t event) putsTrimMode((4+LEN_FP_NAME)*FW+j*(5*FW/2), y, k, t, attr); if (active) { trim_t & v = p->trim[t]; - v.mode = checkIncDec(event, v.mode, -1, 2*MAX_PHASES-1, EE_MODEL); + v.mode = checkIncDec(event, v.mode==TRIM_MODE_NONE ? -1 : v.mode, -1, 2*MAX_PHASES-1, EE_MODEL, isTrimModeAvailable); } } break; @@ -2858,7 +2863,7 @@ void menuModelExpoOne(uint8_t event) case EXPO_FIELD_SCALE: lcd_putsLeft(y, STR_SCALE); putsTelemetryChannel(EXPO_ONE_2ND_COLUMN, y, ed->srcRaw - MIXSRC_FIRST_TELEM, convertTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1, ed->scale), LEFT|attr); - if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL, NULL); + if (attr) ed->scale = checkIncDec(event, ed->scale, 0, maxTelemValue(ed->srcRaw - MIXSRC_FIRST_TELEM + 1), EE_MODEL); break; #endif diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 631715ec6..d8ac8aff0 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1166,13 +1166,14 @@ void putsTmrMode(xcoord_t x, uint8_t y, int8_t mode, LcdFlags att) void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags att) { trim_t v = getRawTrimValue(phase, idx); + unsigned int mode = v.mode; + unsigned int p = mode >> 1; - if (v.mode < 0) { + if (mode == TRIM_MODE_NONE) { lcd_putsAtt(x, y, "--", att); } else { - uint8_t p = v.mode >> 1; - if (v.mode % 2 == 0) + if (mode % 2 == 0) lcd_putcAtt(x+2, y, ':', att); else lcd_putcAtt(x, y, '+', att); diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index d0973c639..ba18118fc 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1074,9 +1074,10 @@ PACK(typedef struct t_SwashRingData { // Swash Ring data #else #if defined(PCBTARANIS) PACK(typedef struct { - int16_t value:11; - int16_t mode:5; + int16_t value:11; + uint16_t mode:5; }) trim_t; + #define TRIM_MODE_NONE 0b11111 #else #define trim_t int16_t #endif From 5c601a0bb7ce698da3b7848d26f6adf3800e1a70 Mon Sep 17 00:00:00 2001 From: mhotar Date: Mon, 27 Jan 2014 13:10:21 +0100 Subject: [PATCH 10/73] Font related alignments --- radio/src/lcd.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index d8ac8aff0..1354bde39 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1174,10 +1174,10 @@ void putsTrimMode(xcoord_t x, uint8_t y, uint8_t phase, uint8_t idx, LcdFlags at } else { if (mode % 2 == 0) - lcd_putcAtt(x+2, y, ':', att); + lcd_putcAtt(x, y, ':', att|FIXEDWIDTH); else - lcd_putcAtt(x, y, '+', att); - lcd_putcAtt(x+FW, y, '0'+p, att); + lcd_putcAtt(x, y, '+', att|FIXEDWIDTH); + lcd_putcAtt(lcdNextPos, y, '0'+p, att); } } #else From cde59a2b22799d087cd3e06c0904bcda1f43bc20 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 27 Jan 2014 14:32:19 +0100 Subject: [PATCH 11/73] [Taranis] Issue #554 - Automatic EEPROM conversions --- radio/src/eeprom_conversions.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index 24d4bb3a5..66b2a73c8 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -122,7 +122,7 @@ PACK(typedef struct { }) TimerData_v215; PACK(typedef struct { - TRIMS_ARRAY; + int16_t trim[4]; int8_t swtch; // swtch of phase[0] is not used char name[LEN_FP_NAME]; uint8_t fadeIn; @@ -437,6 +437,22 @@ void ConvertModel_215_to_216(ModelData &model) for (uint8_t i=0; i<9; i++) { memcpy(&g_model.phaseData[i], &oldModel.phaseData[i], sizeof(oldModel.phaseData[i])); // the last 4 gvars will remain blank +#if defined(PCBTARANIS) + for (uint8_t t=0; t<4; t++) { + int trim = oldModel.phaseData[i].trim[t]; + if (trim > 500) { + trim -= 501; + if (trim >= i) + trim += 1; + g_model.phaseData[i].trim[t].mode = 2*trim; + g_model.phaseData[i].trim[t].value = 0; + } + else { + g_model.phaseData[i].trim[t].mode = 2*i; + g_model.phaseData[i].trim[t].value = trim; + } + } +#endif } g_model.thrTraceSrc = oldModel.thrTraceSrc; g_model.switchWarningStates = oldModel.switchWarningStates; From 80a6c4727d6afadf492482cb4cc5f8be7fe7d8c6 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 27 Jan 2014 17:25:43 +0100 Subject: [PATCH 12/73] [Taranis] Issue #554 - Companion part done --- companion/src/eeprominterface.cpp | 52 ++++++++++-- companion/src/eeprominterface.h | 9 +- .../src/firmwares/er9x/er9xinterface.cpp | 1 - .../firmwares/ersky9x/ersky9xinterface.cpp | 1 - .../src/firmwares/opentx/opentxeeprom.cpp | 71 +++++++++++----- companion/src/helpers.cpp | 13 --- companion/src/helpers.h | 1 - companion/src/modeledit/flightmodes.cpp | 84 +++++++++---------- 8 files changed, 139 insertions(+), 93 deletions(-) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index ca6c86485..1b56e3ef5 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -624,17 +624,57 @@ void ModelData::setDefault(uint8_t id) sprintf(name, "MODEL%02d", id+1); } -unsigned int ModelData::getTrimFlightPhase(uint8_t idx, int8_t phase) +int ModelData::getTrimValue(int phaseIdx, int trimIdx) { - // if (phase == -1) phase = getFlightPhase(); - - for (uint8_t i=0; i 500) + trim = 500; + break; + } + } +} + void ModelData::removeGlobalVar(int & var) { if (var >= 126 && var <= 130) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 91da15e51..1e345bc60 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -655,7 +655,8 @@ class FuncSwData { // Function Switches data class PhaseData { public: PhaseData() { clear(); } - int trimRef[NUM_STICKS]; // + int trimMode[NUM_STICKS]; + int trimRef[NUM_STICKS]; int trim[NUM_STICKS]; RawSwitch swtch; char name[10+1]; @@ -663,7 +664,7 @@ class PhaseData { unsigned int fadeOut; int rotaryEncoders[2]; int gvars[C9X_MAX_GVARS]; - void clear() { memset(this, 0, sizeof(PhaseData)); for (int i=0; i(trimExt[i])); } + else if (board == BOARD_TARANIS && version >= 216) { + for (int i=0; i(phase.trim[i])); + internalField.Append(new UnsignedField<5>(trimMode[i])); + } + } else { for (int i=0; i(trimBase[i])); @@ -459,19 +465,27 @@ class PhaseField: public TransformedField { virtual void beforeExport() { for (int i=0; i= 0) { - trim = 501 + phase.trimRef[i] - (phase.trimRef[i] >= index ? 1 : 0); + if (board == BOARD_TARANIS && version >= 216) { + if (phase.trimMode[i] < 0) + trimMode[i] = 0b11111; + else + trimMode[i] = 2*phase.trimRef[i] + phase.trimMode[i]; } else { - trim = std::max(-500, std::min(500, phase.trim[i])); - } - if (board == BOARD_STOCK || (board == BOARD_M128 && version >= 215)) { - trimBase[i] = trim >> 2; - trimExt[i] = (trim & 0x03); - } - else { - trimBase[i] = trim; + int trim; + if (phase.trimMode[i] < 0) + trim = 0; + else if (phase.trimRef[i] != index) + trim = 501 + phase.trimRef[i] - (phase.trimRef[i] > index ? 1 : 0); + else + trim = std::max(-500, std::min(500, phase.trim[i])); + if (board == BOARD_STOCK || (board == BOARD_M128 && version >= 215)) { + trimBase[i] = trim >> 2; + trimExt[i] = (trim & 0x03); + } + else { + trimBase[i] = trim; + } } } } @@ -479,21 +493,31 @@ class PhaseField: public TransformedField { virtual void afterImport() { for (int i=0; i= 215)) - trim = ((trimBase[i]) << 2) + (trimExt[i] & 0x03); - else - trim = trimBase[i]; - if (trim > 500) { - phase.trimRef[i] = trim - 501; - if (phase.trimRef[i] >= index) - phase.trimRef[i] += 1; - phase.trim[i] = 0; + if (board == BOARD_TARANIS && version >= 216) { + if (trimMode[i] == 0b11111) { + phase.trimMode[i] = -1; + } + else { + phase.trimMode[i] = trimMode[i] % 2; + phase.trimRef[i] = trimMode[i] / 2; + } } else { - phase.trim[i] = trim; + int trim; + if (board == BOARD_STOCK || (board == BOARD_M128 && version >= 215)) + trim = ((trimBase[i]) << 2) + (trimExt[i] & 0x03); + else + trim = trimBase[i]; + if (trim > 500) { + phase.trimRef[i] = trim - 501; + if (phase.trimRef[i] >= index) + phase.trimRef[i] += 1; + phase.trim[i] = 0; + } + else { + phase.trim[i] = trim; + } } - } } @@ -506,6 +530,7 @@ class PhaseField: public TransformedField { int rotencCount; int trimBase[NUM_STICKS]; int trimExt[NUM_STICKS]; + unsigned int trimMode[NUM_STICKS]; }; diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index b150b0821..c997a3a03 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -682,19 +682,6 @@ void CurveGroup::valuesChanged() } } -void populateTrimUseCB(QComboBox *b, unsigned int phase) -{ - b->addItem(QObject::tr("Own trim")); - unsigned int num_phases = GetEepromInterface()->getCapability(FlightPhases); - if (num_phases>0) { - for (unsigned int i = 0; i < num_phases; i++) { - if (i != phase) { - b->addItem(QObject::tr("Flight mode %1 trim").arg(i)); - } - } - } -} - void populateGvarUseCB(QComboBox *b, unsigned int phase) { b->addItem(QObject::tr("Own value")); diff --git a/companion/src/helpers.h b/companion/src/helpers.h index d3141083d..b1c2e1726 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -89,7 +89,6 @@ QString FuncParam(uint function, int value, QString paramT="",unsigned int adjus void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode=0); void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QStringList & paramsList); void populatePhasesCB(QComboBox *b, int value); -void populateTrimUseCB(QComboBox *b, unsigned int phase); void populateGvarUseCB(QComboBox *b, unsigned int phase); void populateCustomScreenFieldCB(QComboBox *b, unsigned int value, bool last, int hubproto); void populateTimerSwitchCB(QComboBox *b, int value); diff --git a/companion/src/modeledit/flightmodes.cpp b/companion/src/modeledit/flightmodes.cpp index 4a4e5e651..a5cd400a0 100644 --- a/companion/src/modeledit/flightmodes.cpp +++ b/companion/src/modeledit/flightmodes.cpp @@ -17,9 +17,11 @@ FlightMode::FlightMode(QWidget * parent, ModelData & model, int phaseIdx, Genera { ui->setupUi(this); + int modesCount = GetEepromInterface()->getCapability(FlightPhases); + // Phase name QRegExp rx(CHAR_FOR_NAMES_REGEX); - if (GetEepromInterface()->getCapability(FlightPhases)) { + if (modesCount) { ui->name->setValidator(new QRegExpValidator(rx, this)); ui->name->setMaxLength(GetEepromInterface()->getCapability(FlightModesName)); connect(ui->name, SIGNAL(editingFinished()), this, SLOT(phaseName_editingFinished())); @@ -66,14 +68,19 @@ FlightMode::FlightMode(QWidget * parent, ModelData & model, int phaseIdx, Genera for (int i=0; i<4; i++) { trimsLabel[i]->setText(labels[CONVERT_MODE(i+1)-1]); - if (phaseIdx > 0) { - trimsUse[i]->setProperty("index", i); - populateTrimUseCB(trimsUse[i], phaseIdx); - connect(trimsUse[i], SIGNAL(currentIndexChanged(int)), this, SLOT(phaseTrimUse_currentIndexChanged(int))); - } - else { - trimsUse[i]->hide(); + QComboBox * cb = trimsUse[i]; + cb->setProperty("index", i); + cb->addItem(QObject::tr("Trim disabled"), -1); + for (int m=0; maddItem(QObject::tr("Own Trim"), m*2); + } + else if (phaseIdx > 0) { + cb->addItem(QObject::tr("Use Trim from Flight mode %1").arg(m), m*2); + cb->addItem(QObject::tr("Use Trim from Flight mode %1 + Own Trim as an offset").arg(m), m*2+1); + } } + connect(cb, SIGNAL(currentIndexChanged(int)), this, SLOT(phaseTrimUse_currentIndexChanged(int))); trimsValue[i]->setProperty("index", i); connect(trimsValue[i], SIGNAL(valueChanged(int)), this, SLOT(phaseTrim_valueChanged())); @@ -123,17 +130,6 @@ FlightMode::FlightMode(QWidget * parent, ModelData & model, int phaseIdx, Genera QLabel *label = new QLabel(ui->gvGB); label->setText(tr("GVAR%1").arg(i+1)); gvLayout->addWidget(label, i, col++, 1, 1); -#if 0 - // TODO remove this capability? - // GVar source (er9x/ersky9x) - if (GetEepromInterface()->getCapability(GvarsHaveSources)) { - QComboBox *source = new QComboBox(ui->gvGB); - source->setProperty("index", i); - populateGvSourceCB(source, model.gvsource[i]); - // connect(source, SIGNAL(currentIndexChanged(int)), this, SLOT(phaseGVSource_currentIndexChanged(int))); - gvLayout->addWidget(source, i, col++, 1, 1); - } -#endif // GVar name int nameLen = GetEepromInterface()->getCapability(GvarsName); if (nameLen > 0) { @@ -193,7 +189,6 @@ void FlightMode::update() int chn = CONVERT_MODE(i+1)-1; if (chn == 2/*TODO constant*/ && model.throttleReversed) trimsSlider[i]->setInvertedAppearance(true); - trimUpdate(i); } @@ -262,23 +257,22 @@ void FlightMode::phaseFadeOut_editingFinished() void FlightMode::trimUpdate(unsigned int trim) { - lock = true; - int chn = CONVERT_MODE(trim+1)-1; - int value = phase.trim[chn]; - if (phaseIdx > 0 && phase.trimRef[chn] >= 0) { - trimsUse[trim]->setCurrentIndex(1 + phase.trimRef[chn] - (phase.trimRef[chn] >= phaseIdx ? 1 : 0)); - value = model.phaseData[model.getTrimFlightPhase(chn, phaseIdx)].trim[chn]; - trimsValue[trim]->setEnabled(false); - trimsSlider[trim]->setEnabled(false); - } - else { - if (phaseIdx > 0) trimsUse[trim]->setCurrentIndex(0); - trimsValue[trim]->setEnabled(true); - trimsSlider[trim]->setEnabled(true); - } - trimsSlider[trim]->setValue(value); - trimsValue[trim]->setValue(value); - lock = false; + lock = true; + int chn = CONVERT_MODE(trim+1)-1; + int value = model.getTrimValue(phaseIdx, chn); + trimsSlider[trim]->setValue(value); + trimsValue[trim]->setValue(value); + if (phase.trimMode[chn] < 0) { + trimsUse[trim]->setCurrentIndex(0); + trimsValue[trim]->setEnabled(false); + trimsSlider[trim]->setEnabled(false); + } + else { + trimsUse[trim]->setCurrentIndex(1 + 2*phase.trimRef[chn] + phase.trimMode[chn] - (phase.trimRef[chn] > phaseIdx ? 1 : 0)); + trimsValue[trim]->setEnabled(true); + trimsSlider[trim]->setEnabled(true); + } + lock = false; } void FlightMode::phaseGVValue_editingFinished() @@ -380,15 +374,17 @@ void FlightMode::phaseTrimUse_currentIndexChanged(int index) QComboBox *comboBox = qobject_cast(sender()); int trim = comboBox->property("index").toInt(); int chn = CONVERT_MODE(trim+1)-1; - if (index == 0) { - phase.trim[chn] = model.phaseData[model.getTrimFlightPhase(chn, phaseIdx)].trim[chn]; - phase.trimRef[chn] = -1; + int data = comboBox->itemData(index).toInt(); + if (data < 0) { + phase.trimMode[chn] = -1; + phase.trimRef[chn] = 0; + phase.trim[chn] = 0; } else { + phase.trimMode[chn] = data % 2; + phase.trimRef[chn] = data / 2; phase.trim[chn] = 0; - phase.trimRef[chn] = index - 1 + (index > (int)phaseIdx ? 1 : 0); } - trimUpdate(trim); emit modified(); } @@ -401,7 +397,7 @@ void FlightMode::phaseTrim_valueChanged() int trim = spinBox->property("index").toInt(); int chn = CONVERT_MODE(trim+1)-1; int value = spinBox->value(); - phase.trim[chn] = value; + model.setTrimValue(phaseIdx, chn, value); lock = true; trimsSlider[trim]->setValue(value); lock = false; @@ -416,7 +412,7 @@ void FlightMode::phaseTrimSlider_valueChanged() int trim = slider->property("index").toInt(); int chn = CONVERT_MODE(trim+1)-1; int value = slider->value(); - phase.trim[chn] = value; + model.setTrimValue(phaseIdx, chn, value); lock = true; trimsValue[trim]->setValue(value); lock = false; From b44fa1432edd8321c249d04041bcbf35091e436d Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 27 Jan 2014 17:30:50 +0100 Subject: [PATCH 13/73] [Taranis] Issue #554 - Constant used instead of hardcoded value --- radio/src/gui/menu_model.cpp | 3 +-- radio/src/opentx.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 2520b5f90..0bce00e1c 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -1776,8 +1776,7 @@ void menuModelFlightModesAll(uint8_t event) for (uint8_t j=0; j0) ? BLINK|INVERS : INVERS) : 0); uint8_t active = (attr && (s_editMode>0 || p1valdiff)) ; - switch(j) - { + switch (j) { case ITEM_PHASES_NAME: editName(4*FW-1, y, p->name, sizeof(p->name), event, attr); break; diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 5ada1d63e..2c63a88e4 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1695,7 +1695,7 @@ void setTrimValue(uint8_t phase, uint8_t idx, int trim) phase = p; } else { - v.value = limit(-500, trim - getTrimValue(p, idx), 500); + v.value = limit(TRIM_EXTENDED_MIN, trim - getTrimValue(p, idx), TRIM_EXTENDED_MAX); break; } } From 7430620a8baa1ed8fb6cf8f0773f2da84a98d8ab Mon Sep 17 00:00:00 2001 From: mhotar Date: Thu, 30 Jan 2014 21:03:06 +0100 Subject: [PATCH 14/73] EXPO_LINE_WEIGHT_POS shifted to fit into copy-box --- radio/src/gui/menu_model.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 09f3f65e5..6bf42f2e7 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -3240,7 +3240,7 @@ static uint8_t s_copySrcCh; #define MIX_LINE_SRC_POS 4*FW-1 #if LCD_W >= 212 - #define EXPO_LINE_WEIGHT_POS 8*FW+1 + #define EXPO_LINE_WEIGHT_POS 8*FW+3 #define EXPO_LINE_SRC_POS 9*FW-2 #define EXPO_LINE_CURVE_POS 12*FW+4 #define EXPO_LINE_SWITCH_POS 17*FW-1 @@ -3252,7 +3252,7 @@ static uint8_t s_copySrcCh; #define MIX_LINE_SWITCH_POS 16*FW+1 #define MIX_LINE_DELAY_POS 19*FW+2 #elif defined(CPUARM) - #define EXPO_LINE_WEIGHT_POS 7*FW-1 + #define EXPO_LINE_WEIGHT_POS 7*FW+1 #define EXPO_LINE_EXPO_POS 10*FW+5 #define EXPO_LINE_SWITCH_POS 11*FW+2 #define EXPO_LINE_SIDE_POS 14*FW+2 @@ -3264,7 +3264,7 @@ static uint8_t s_copySrcCh; #define MIX_LINE_SWITCH_POS 16*FW #define MIX_LINE_DELAY_POS 19*FW+7 #else - #define EXPO_LINE_WEIGHT_POS 7*FW-1 + #define EXPO_LINE_WEIGHT_POS 7*FW+1 #define EXPO_LINE_EXPO_POS 11*FW #define EXPO_LINE_SWITCH_POS 11*FW+4 #if MAX_PHASES == 6 From 670bb0a0c5b6cec69dd6537c670231133d619568 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 1 Feb 2014 16:23:57 +0100 Subject: [PATCH 15/73] Avoid recursive calls to getTrimValue --- radio/src/opentx.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 921ab3384..f97e47537 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1666,10 +1666,9 @@ int getTrimValue(uint8_t phase, uint8_t idx) } else { phase = p; - if (v.mode % 2 == 0) - result = 0; - else + if (v.mode % 2 != 0) { result += v.value; + } } } } From 0b77d9921de8256cd4a8e4a5afacdb0d4a113a18 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Sat, 1 Feb 2014 10:47:21 +0100 Subject: [PATCH 16/73] VC doesn't like binary constants --- companion/src/firmwares/opentx/opentxeeprom.cpp | 4 ++-- companion/src/helpers.h | 2 ++ radio/src/myeeprom.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index b94134043..5658598a4 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -467,7 +467,7 @@ class PhaseField: public TransformedField { for (int i=0; i= 216) { if (phase.trimMode[i] < 0) - trimMode[i] = 0b11111; + trimMode[i] = TRIM_MODE_NONE; else trimMode[i] = 2*phase.trimRef[i] + phase.trimMode[i]; } @@ -494,7 +494,7 @@ class PhaseField: public TransformedField { { for (int i=0; i= 216) { - if (trimMode[i] == 0b11111) { + if (trimMode[i] == TRIM_MODE_NONE) { phase.trimMode[i] = -1; } else { diff --git a/companion/src/helpers.h b/companion/src/helpers.h index aa424e482..2d7f08ad6 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -23,6 +23,8 @@ #define TRIM_OFF 1 #define TRIM_OFFSET 2 +#define TRIM_MODE_NONE 0x1F // 0b11111 + void populateGvSourceCB(QComboBox *b, int value); void populateVoiceLangCB(QComboBox *b, QString language); void populateTTraceCB(QComboBox *b, int value); diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index ba18118fc..cf9cc61ec 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1077,7 +1077,7 @@ PACK(typedef struct t_SwashRingData { // Swash Ring data int16_t value:11; uint16_t mode:5; }) trim_t; - #define TRIM_MODE_NONE 0b11111 + #define TRIM_MODE_NONE 0x1F // 0b11111 #else #define trim_t int16_t #endif From 9730f8d190a432c625ad342cce50771353b59bcf Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 3 Feb 2014 11:19:17 +0100 Subject: [PATCH 17/73] [Taranis] Issue #592 - Sticky switches --- radio/src/gui/menu_model.cpp | 29 ++++++++++++------------ radio/src/opentx.cpp | 43 +++++++++++++++++++++++++++++++----- radio/src/opentx.h | 14 +++++++++++- radio/src/translations/en.h | 10 ++++++++- 4 files changed, 73 insertions(+), 23 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 55f61707f..a335c535b 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4184,10 +4184,10 @@ enum CustomSwitchFields { #if LCD_W >= 212 #define CSW_1ST_COLUMN (4*FW-3) - #define CSW_2ND_COLUMN (8*FW+1) - #define CSW_3RD_COLUMN (14*FW) - #define CSW_4TH_COLUMN (21*FW+1) - #define CSW_5TH_COLUMN (26*FW+1) + #define CSW_2ND_COLUMN (8*FW+2+FW/2) + #define CSW_3RD_COLUMN (14*FW+1+FW/2) + #define CSW_4TH_COLUMN (22*FW) + #define CSW_5TH_COLUMN (26*FW+3) #define CSW_6TH_COLUMN (31*FW+1) #else #define CSW_1ST_COLUMN (4*FW-3) @@ -4442,15 +4442,15 @@ void menuModelCustomSwitches(uint8_t event) #endif #if defined(PCBTARANIS) - if (sub>=0 && horz<0 && event==EVT_KEY_LONG(KEY_ENTER) && !READ_ONLY()) { - killEvents(event); - CustomSwData * cs = cswAddress(sub); - if (cs->func) MENU_ADD_ITEM(STR_COPY); - if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH) - MENU_ADD_ITEM(STR_PASTE); - if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) MENU_ADD_ITEM(STR_DELETE); - menuHandler = onCustomSwitchesMenu; - } + if (sub>=0 && horz<0 && event==EVT_KEY_LONG(KEY_ENTER) && !READ_ONLY()) { + killEvents(event); + CustomSwData * cs = cswAddress(sub); + if (cs->func) MENU_ADD_ITEM(STR_COPY); + if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH) + MENU_ADD_ITEM(STR_PASTE); + if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) MENU_ADD_ITEM(STR_DELETE); + menuHandler = onCustomSwitchesMenu; + } #endif for (uint8_t i=0; iv1, attr1); putsSwitches(CSW_3RD_COLUMN, y, cs->v2, attr2); v1_min = SWSRC_OFF+1; v1_max = SWSRC_ON-1; @@ -4585,7 +4585,6 @@ void menuModelCustomSwitches(uint8_t event) if (cstate==CS_VOFS && cs->v1!=0 && event==EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); getvalue_t x = getValue(cs->v1); - TRACE("AUTO x=%d", x); if (cs->v1 < MIXSRC_GVAR1) cs->v2 = calcRESXto100(x); else if (cs->v1 - MIXSRC_FIRST_TELEM + 1 == TELEM_ALT) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 5a33763be..67a9e16c0 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -448,7 +448,13 @@ CustomSwData *cswAddress(uint8_t idx) uint8_t cswFamily(uint8_t func) { - return (funcv1); getvalue_t y; @@ -3460,8 +3469,6 @@ void perOut(uint8_t mode, uint8_t tick10ms) do { - // TRACE("[pass %d]", pass); - bitfield_channels_t passDirtyChannels = 0; for (uint8_t i=0; ifunc == CS_STICKY) { + uint16_t & lastValue = (uint16_t &)csLastValue[i]; + bool before = (lastValue & (1<<15)); + if (lastValue & (1<<0)) { + bool now = getSwitch(cs->v2); + if (now != before) { + lastValue ^= (1<<15); + if (!before) { + lastValue &= ~(1<<0); + } + } + } + else { + bool now = getSwitch(cs->v1); + if (before != now) { + lastValue ^= (1<<15); + if (!before) { + lastValue |= (1<<0); + } + } + } + } +#endif } if (s_cnt_1s >= 10) { // 1sec diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 981d360bd..6b704b30b 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -639,7 +639,11 @@ enum CswFunctions { CS_DIFFEGREATER, CS_ADIFFEGREATER, CS_TIMER, - CS_MAXF = CS_TIMER +#if defined(CPUARM) + CS_STICKY, +#endif + CS_COUNT, + CS_MAXF = CS_COUNT-1 }; #define CS_VOFS 0 @@ -647,9 +651,17 @@ enum CswFunctions { #define CS_VCOMP 2 #define CS_VDIFF 3 #define CS_VTIMER 4 +#define CS_VSTICKY 5 + uint8_t cswFamily(uint8_t func); int16_t cswTimerValue(int8_t val); +#if defined(CPUARM) + #define IS_VSTICKY(val) ((val) == CS_VSTICKY) +#else + #define IS_VSTICKY(val) (0) +#endif + #define NUM_CYC 3 #define NUM_CAL_PPM 4 #define NUM_PPM 8 diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 3fd7c07f2..6e228f79b 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -150,8 +150,16 @@ #define LEN_VMIXTRIMS "\003" #define TR_VMIXTRIMS "OFF""ON\0""Rud""Ele""Thr""Ail" +#if defined(CPUARM) + #define TR_CSWTIMER "Timer" + #define TR_CSWSTICKY "Stcky" +#else + #define TR_CSWTIMER "TIM\0" + #define TR_CSWSTICKY +#endif + #define LEN_VCSWFUNC "\005" -#define TR_VCSWFUNC "---\0 ""a{x\0 ""a>x\0 ""ax""|a|b\0 ""ax\0 ""ax""|a|b\0 ""a Date: Mon, 3 Feb 2014 14:05:05 +0100 Subject: [PATCH 18/73] [all] Issue #592 - Sticky switches on all boards. Saves 62bytes on stock! --- radio/src/gui/menu_model.cpp | 2 +- radio/src/lcd.cpp | 25 --------- radio/src/myeeprom.h | 22 ++------ radio/src/opentx.cpp | 103 +---------------------------------- radio/src/opentx.h | 8 --- radio/src/translations/en.h | 6 +- 6 files changed, 10 insertions(+), 156 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index a335c535b..3fbf74e30 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4476,7 +4476,7 @@ void menuModelCustomSwitches(uint8_t event) int8_t v1_min=0, v1_max=MIXSRC_LAST_TELEM, v2_min=0, v2_max=MIXSRC_LAST_TELEM; #endif - if (cstate == CS_VBOOL || IS_VSTICKY(cstate)) { + if (cstate == CS_VBOOL || cstate == CS_VSTICKY) { putsSwitches(CSW_2ND_COLUMN, y, cs->v1, attr1); putsSwitches(CSW_3RD_COLUMN, y, cs->v2, attr2); v1_min = SWSRC_OFF+1; v1_max = SWSRC_ON-1; diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index e1de61641..7bfabb139 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1053,31 +1053,6 @@ void putsSwitches(xcoord_t x, uint8_t y, int8_t idx, LcdFlags att) } #endif -#if !defined(PCBSTD) - else if (idx >= SWSRC_TRAINER_SHORT) { - idx -= SWSRC_TRAINER_SHORT; - char suffix = (idx & 1) ? CHR_LONG : CHR_SHORT; -#if ROTARY_ENCODERS > 0 - if (idx >= 2) { - idx -= 2; - lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); - } - else -#endif - { - lcd_putsiAtt(x, y, STR_VSWITCHES, SWSRC_TRAINER-1, att); - } - return lcd_putcAtt(lcdLastPos, y, suffix, att); - } -#endif - - if (idx > SWSRC_ON) { - idx -= SWSRC_ON; - if (idx != SWSRC_ON && (~att & STRCONDENSED)) { - lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); - return lcd_putcAtt(lcdLastPos, y, CHR_TOGGLE, att); - } - } lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 8bb233a52..70ea3a89a 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1198,26 +1198,12 @@ enum SwitchSources { #endif SWSRC_ON, - - SWSRC_FIRST_MOMENT_SWITCH, - SWSRC_LAST_MOMENT_SWITCH = SWSRC_FIRST_MOMENT_SWITCH+SWSRC_LAST_CSW, - -#if !defined(PCBSTD) - SWSRC_TRAINER_SHORT, - SWSRC_TRAINER_LONG, -#endif - -#if ROTARY_ENCODERS > 0 - SWSRC_FIRST_ROTENC_SWITCH, - SWSRC_LAST_ROTENC_SWITCH = SWSRC_FIRST_ROTENC_SWITCH+(2*ROTARY_ENCODERS)-1, -#endif - - SWSRC_COUNT, - SWSRC_FIRST = -SWSRC_LAST_MOMENT_SWITCH, - SWSRC_LAST = SWSRC_COUNT-1, - SWSRC_OFF = -SWSRC_ON, + SWSRC_TRAINER = SWSRC_SW1-1, + + SWSRC_FIRST = SWSRC_OFF, + SWSRC_LAST = SWSRC_ON }; enum MixSources { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 67a9e16c0..48c82bb39 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -448,13 +448,7 @@ CustomSwData *cswAddress(uint8_t idx) uint8_t cswFamily(uint8_t func) { - return (funcv1); getvalue_t y; @@ -3093,100 +3085,11 @@ void evalFunctions() if (swtch) { MASK_FUNC_TYPE function_mask = (CFN_FUNC(sd) >= FUNC_TRAINER ? ((MASK_FUNC_TYPE)1 << (CFN_FUNC(sd)-FUNC_TRAINER)) : 0); MASK_CFN_TYPE switch_mask = ((MASK_CFN_TYPE)1 << i); - uint8_t momentary = 0; - -#if !defined(PCBSTD) - - #define MOMENTARY_START_TEST() ( (momentary && !(activeSwitches & switch_mask) && active) || \ - (short_long==1 && !active && mSwitchDuration[mswitch]>0 && mSwitchDuration[mswitch] NUM_SWITCH+1) { - momentary = 1; - swtch -= NUM_SWITCH+1; - } - if (swtch < -NUM_SWITCH-1) { - momentary = 1; - swtch += NUM_SWITCH+1; - } bool active = getSwitch(swtch); if (active) newActiveSwitches |= switch_mask; - if (momentary || short_long) { -#if !defined(PCBSTD) - bool swState = active; -#endif - - if (MOMENTARY_START_TEST()) { - - if (short_long) { - active = false; - momentary = true; - } - else { - active = !(activeFnSwitches & switch_mask); -#if !defined(CPUARM) - if (CFN_FUNC(sd) == FUNC_PLAY_BOTH && !active) { - momentary = true; - } - else -#endif - { - momentary = false; - } - } - } - else if (swtch == SWSRC_ON) { - active = false; - momentary = false; - } - else { - active = (activeFnSwitches & switch_mask); - momentary = false; - } -#if !defined(PCBSTD) - if (short_long && !(mSwitchDurationIncremented & (1<func == CS_STICKY) { uint16_t & lastValue = (uint16_t &)csLastValue[i]; bool before = (lastValue & (1<<15)); @@ -4075,7 +3977,6 @@ void doMixerCalculations() } } } -#endif } if (s_cnt_1s >= 10) { // 1sec diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 6b704b30b..7cbbd4aaa 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -639,9 +639,7 @@ enum CswFunctions { CS_DIFFEGREATER, CS_ADIFFEGREATER, CS_TIMER, -#if defined(CPUARM) CS_STICKY, -#endif CS_COUNT, CS_MAXF = CS_COUNT-1 }; @@ -656,12 +654,6 @@ enum CswFunctions { uint8_t cswFamily(uint8_t func); int16_t cswTimerValue(int8_t val); -#if defined(CPUARM) - #define IS_VSTICKY(val) ((val) == CS_VSTICKY) -#else - #define IS_VSTICKY(val) (0) -#endif - #define NUM_CYC 3 #define NUM_CAL_PPM 4 #define NUM_PPM 8 diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 6e228f79b..045062458 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -150,12 +150,12 @@ #define LEN_VMIXTRIMS "\003" #define TR_VMIXTRIMS "OFF""ON\0""Rud""Ele""Thr""Ail" -#if defined(CPUARM) +#if defined(PCBTARANIS) #define TR_CSWTIMER "Timer" #define TR_CSWSTICKY "Stcky" #else - #define TR_CSWTIMER "TIM\0" - #define TR_CSWSTICKY + #define TR_CSWTIMER "Tim\0 " + #define TR_CSWSTICKY "Stky\0" #endif #define LEN_VCSWFUNC "\005" From e48c27d30abb230b8663c7a668409b712f2d944f Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 3 Feb 2014 14:05:05 +0100 Subject: [PATCH 19/73] [all] Issue #592 - Sticky switches on all boards. Saves 62bytes on stock! --- radio/src/gui/menu_model.cpp | 2 +- radio/src/lcd.cpp | 25 --------- radio/src/myeeprom.h | 28 ++++------ radio/src/opentx.cpp | 103 +---------------------------------- radio/src/opentx.h | 8 --- radio/src/translations/en.h | 6 +- 6 files changed, 16 insertions(+), 156 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index a335c535b..3fbf74e30 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4476,7 +4476,7 @@ void menuModelCustomSwitches(uint8_t event) int8_t v1_min=0, v1_max=MIXSRC_LAST_TELEM, v2_min=0, v2_max=MIXSRC_LAST_TELEM; #endif - if (cstate == CS_VBOOL || IS_VSTICKY(cstate)) { + if (cstate == CS_VBOOL || cstate == CS_VSTICKY) { putsSwitches(CSW_2ND_COLUMN, y, cs->v1, attr1); putsSwitches(CSW_3RD_COLUMN, y, cs->v2, attr2); v1_min = SWSRC_OFF+1; v1_max = SWSRC_ON-1; diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index e1de61641..7bfabb139 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1053,31 +1053,6 @@ void putsSwitches(xcoord_t x, uint8_t y, int8_t idx, LcdFlags att) } #endif -#if !defined(PCBSTD) - else if (idx >= SWSRC_TRAINER_SHORT) { - idx -= SWSRC_TRAINER_SHORT; - char suffix = (idx & 1) ? CHR_LONG : CHR_SHORT; -#if ROTARY_ENCODERS > 0 - if (idx >= 2) { - idx -= 2; - lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); - } - else -#endif - { - lcd_putsiAtt(x, y, STR_VSWITCHES, SWSRC_TRAINER-1, att); - } - return lcd_putcAtt(lcdLastPos, y, suffix, att); - } -#endif - - if (idx > SWSRC_ON) { - idx -= SWSRC_ON; - if (idx != SWSRC_ON && (~att & STRCONDENSED)) { - lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); - return lcd_putcAtt(lcdLastPos, y, CHR_TOGGLE, att); - } - } lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 8bb233a52..ba75d686b 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -740,6 +740,12 @@ enum Functions { FUNC_MAX }; +#if defined(CPUARM) + #define IS_PLAY_BOTH_FUNC(sd) (0) +#else + #define IS_PLAY_BOTH_FUNC(sd) (CFN_FUNC(sd) == FUNC_PLAY_BOTH) +#endif + #if defined(GVARS) #define IS_ADJUST_GV_FUNCTION(sd) (CFN_FUNC(sd) >= FUNC_ADJUST_GV1 && CFN_FUNC(sd) <= FUNC_ADJUST_GVLAST) #else @@ -1198,26 +1204,12 @@ enum SwitchSources { #endif SWSRC_ON, - - SWSRC_FIRST_MOMENT_SWITCH, - SWSRC_LAST_MOMENT_SWITCH = SWSRC_FIRST_MOMENT_SWITCH+SWSRC_LAST_CSW, - -#if !defined(PCBSTD) - SWSRC_TRAINER_SHORT, - SWSRC_TRAINER_LONG, -#endif - -#if ROTARY_ENCODERS > 0 - SWSRC_FIRST_ROTENC_SWITCH, - SWSRC_LAST_ROTENC_SWITCH = SWSRC_FIRST_ROTENC_SWITCH+(2*ROTARY_ENCODERS)-1, -#endif - - SWSRC_COUNT, - SWSRC_FIRST = -SWSRC_LAST_MOMENT_SWITCH, - SWSRC_LAST = SWSRC_COUNT-1, - SWSRC_OFF = -SWSRC_ON, + SWSRC_TRAINER = SWSRC_SW1-1, + + SWSRC_FIRST = SWSRC_OFF, + SWSRC_LAST = SWSRC_ON }; enum MixSources { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 67a9e16c0..27dd80868 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -448,13 +448,7 @@ CustomSwData *cswAddress(uint8_t idx) uint8_t cswFamily(uint8_t func) { - return (funcv1); getvalue_t y; @@ -3093,100 +3085,11 @@ void evalFunctions() if (swtch) { MASK_FUNC_TYPE function_mask = (CFN_FUNC(sd) >= FUNC_TRAINER ? ((MASK_FUNC_TYPE)1 << (CFN_FUNC(sd)-FUNC_TRAINER)) : 0); MASK_CFN_TYPE switch_mask = ((MASK_CFN_TYPE)1 << i); - uint8_t momentary = 0; - -#if !defined(PCBSTD) - - #define MOMENTARY_START_TEST() ( (momentary && !(activeSwitches & switch_mask) && active) || \ - (short_long==1 && !active && mSwitchDuration[mswitch]>0 && mSwitchDuration[mswitch] NUM_SWITCH+1) { - momentary = 1; - swtch -= NUM_SWITCH+1; - } - if (swtch < -NUM_SWITCH-1) { - momentary = 1; - swtch += NUM_SWITCH+1; - } bool active = getSwitch(swtch); if (active) newActiveSwitches |= switch_mask; - if (momentary || short_long) { -#if !defined(PCBSTD) - bool swState = active; -#endif - - if (MOMENTARY_START_TEST()) { - - if (short_long) { - active = false; - momentary = true; - } - else { - active = !(activeFnSwitches & switch_mask); -#if !defined(CPUARM) - if (CFN_FUNC(sd) == FUNC_PLAY_BOTH && !active) { - momentary = true; - } - else -#endif - { - momentary = false; - } - } - } - else if (swtch == SWSRC_ON) { - active = false; - momentary = false; - } - else { - active = (activeFnSwitches & switch_mask); - momentary = false; - } -#if !defined(PCBSTD) - if (short_long && !(mSwitchDurationIncremented & (1<func == CS_STICKY) { uint16_t & lastValue = (uint16_t &)csLastValue[i]; bool before = (lastValue & (1<<15)); @@ -4075,7 +3977,6 @@ void doMixerCalculations() } } } -#endif } if (s_cnt_1s >= 10) { // 1sec diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 6b704b30b..7cbbd4aaa 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -639,9 +639,7 @@ enum CswFunctions { CS_DIFFEGREATER, CS_ADIFFEGREATER, CS_TIMER, -#if defined(CPUARM) CS_STICKY, -#endif CS_COUNT, CS_MAXF = CS_COUNT-1 }; @@ -656,12 +654,6 @@ enum CswFunctions { uint8_t cswFamily(uint8_t func); int16_t cswTimerValue(int8_t val); -#if defined(CPUARM) - #define IS_VSTICKY(val) ((val) == CS_VSTICKY) -#else - #define IS_VSTICKY(val) (0) -#endif - #define NUM_CYC 3 #define NUM_CAL_PPM 4 #define NUM_PPM 8 diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 6e228f79b..045062458 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -150,12 +150,12 @@ #define LEN_VMIXTRIMS "\003" #define TR_VMIXTRIMS "OFF""ON\0""Rud""Ele""Thr""Ail" -#if defined(CPUARM) +#if defined(PCBTARANIS) #define TR_CSWTIMER "Timer" #define TR_CSWSTICKY "Stcky" #else - #define TR_CSWTIMER "TIM\0" - #define TR_CSWSTICKY + #define TR_CSWTIMER "Tim\0 " + #define TR_CSWSTICKY "Stky\0" #endif #define LEN_VCSWFUNC "\005" From c4251c4ee2babd3743b7f358d1dac4bb156a1cb1 Mon Sep 17 00:00:00 2001 From: Jacek Drewniak Date: Mon, 3 Feb 2014 19:09:51 +0100 Subject: [PATCH 20/73] fix according to (#646) --- companion/src/translations/companion_pl.ts | 386 ++++----------------- 1 file changed, 64 insertions(+), 322 deletions(-) diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts index 9a73c401b..13fdd8f0c 100644 --- a/companion/src/translations/companion_pl.ts +++ b/companion/src/translations/companion_pl.ts @@ -9354,282 +9354,162 @@ Mode 4: LS1 - PL1 + PL1 LS2 - PL2 + PL2 LS3 - PL3 + PL3 LS4 - PL4 + PL4 LS5 - PL5 + PL5 LS6 - PL6 + PL6 LS7 - PL7 + PL7 LS8 - PL8 + PL8 LS9 - PL9 + PL9 LSA - PLA + PLA LSB - PLB + PLB LSC - PLC + PLC LSD - PLD + PLD LSE - PLE + PLE LSF - PLF + PLF LSG - PLG + PLG LSH - PLH + PLH LSI - PLI + PLI LSJ - PLJ + PLJ LSK - PLK + PLK LSL - PLL + PLL LSM - PLM, + PLM, LSN - PLN + PLN LSO - PLO + PLO LSP - PLP + PLP LSQ - PLQ + PLQ LSR - PLR + PLR LSS - PLS + PLS LST - PLT + PLT LSU - PLU + PLU LSV - PLV + PLV LSW - PLW - - - CS1 - PL1 - - - CS2 - PL2 - - - CS3 - PL3 - - - CS4 - PL4 - - - CS5 - PL5 - - - CS6 - PL6 - - - CS7 - PL7 - - - CS8 - PL8 - - - CS9 - PL9 - - - CSA - PLA - - - CSB - PLB - - - CSC - PLC - - - CSD - PLD - - - CSE - PLE - - - CSF - PLF - - - CSG - PLG - - - CSH - PLH - - - CSI - PLI - - - CSJ - PLJ - - - CSL - PLL - - - CSM - PLM - - - CSN - PLN - - - CSO - PLO - - - CSP - PLP - - - CSQ - PLQ - - - CSR - PLR - - - CSS - PLS - - - CST - PLT - - - CSU - PLU - - - CSV - PLV + PLW @@ -9641,16 +9521,6 @@ Mode 4: Companion Simulator Symulator Companion - - CSK - SWK - PLK - - - CSW - SWW - PLW - CH1 @@ -10055,290 +9925,162 @@ Mode 4: LSK - PLK + PLK LSC - PLC + PLC LSD - PLD + PLD LS7 - PL7 + PL7 LSL - PLL + PLL LSB - PLB + PLB LS1 - PL1 + PL1 LSH - PLH + PLH LSG - PLG + PLG LSE - PLE + PLE LSF - PLF + PLF LS8 - PL8 + PL8 LS9 - PL9 + PL9 LSA - PLA + PLA LSM - PLM, + PLM, LSJ - PLJ + PLJ LSI - PLI + PLI LS4 - PL4 + PL4 LS5 - PL5 + PL5 LS2 - PL2 + PL2 LS3 - PL3 + PL3 LS6 - PL6 + PL6 LSN - PLN + PLN LSO - PLO + PLO LSP - PLP + PLP LSQ - PLQ + PLQ LSR - PLR + PLR LSS - PLS + PLS LST - PLT + PLT LSU - PLU + PLU LSV - PLV + PLV LSW - PLW - - - CSK - PLK - - - CSC - PLC - - - CSD - PLD - - - CS7 - PL7 - - - CSL - PLL - - - CSB - PLB - - - CS1 - PL1 - - - CSH - PLH - - - CSG - PLG - - - CSE - PLE - - - CSF - PLF - - - CS8 - PL8 - - - CS9 - PL9 - - - CSA - PLA - - - CSM - PLM - - - CSJ - PLJ - - - CSI - PLI - - - CS4 - PL4 - - - CS5 - PL5 - - - CS2 - PL2 - - - CS3 - PL3 - - - CS6 - PL6 - - - CSN - PLN - - - CSO - PLO - - - CSP - PLP - - - CSQ - PLQ - - - CSR - PLR - - - CSS - PLS - - - CST - PLT - - - CSU - PLU - - - CSV - PLV - - - CSW - PLW + PLW From 71ef6d54575d9986eb384c08328e1bc98613ef1b Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Mon, 3 Feb 2014 23:17:55 +0100 Subject: [PATCH 21/73] Changed names for Master/Slave in Swedsih translation --- radio/src/translations/se.h.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 4ef12f2f8..f9f6d6b4b 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -362,7 +362,7 @@ #define TR_VTMRMODES "Av\0""ABS""GAs""GA%""GAt" #define LEN_VTRAINERMODES "\006" -#define TR_VTRAINERMODES "Master""Slav\0." +#define TR_VTRAINERMODES "Lärare""Elev\0." #define LEN_VFAILSAFE "\011" #define TR_VFAILSAFE "Håll\0 ""Special\0 ""Pulsfritt" @@ -488,7 +488,7 @@ #define TR_SWITCHWARNING TR("Bryt.varn.","Brytarvarning") #define TR_TIMEZONE TR("Tidszon","GPS Tidszon") #define TR_RXCHANNELORD "Kanaler i RX" -#define TR_SLAVE "Slav" +#define TR_SLAVE "Elev" #define TR_MODESRC " Läge\004% Källa" #define TR_MULTIPLIER "Styrka" #define TR_CAL "Kalib." @@ -548,7 +548,7 @@ #define TR_MENUHELISETUP "Helikopter" #if defined(PCBTARANIS) - #define TR_MENUINPUTS "Filter" + #define TR_MENUINPUTS TR("Filter","Filtrerad Insignal") #define TR_MENULIMITS "Gränser" #elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "Spakar" From a48d76504adf650d293d04bfb13b43cae28237d4 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 3 Feb 2014 23:20:49 +0100 Subject: [PATCH 22/73] [all] Issue #592 - Sticky switches: more code rewritten, more flash saved on 9x stock. Logical Switches Delay and Duration modified on Taranis and Sky9x --- radio/src/audio_arm.cpp | 2 +- radio/src/eeprom_conversions.cpp | 2 +- radio/src/eeprom_raw.cpp | 1 - radio/src/eeprom_rlc.cpp | 1 - radio/src/gui/menu_model.cpp | 374 ++++++++++++++----------------- radio/src/gui/menus.cpp | 10 + radio/src/gui/menus.h | 3 +- radio/src/gui/view_main.cpp | 2 +- radio/src/logs.cpp | 2 +- radio/src/maths.cpp | 2 +- radio/src/myeeprom.h | 93 +++----- radio/src/opentx.cpp | 319 ++++++++++++++------------ radio/src/opentx.h | 33 ++- radio/src/translations/en.h | 17 +- 14 files changed, 429 insertions(+), 432 deletions(-) diff --git a/radio/src/audio_arm.cpp b/radio/src/audio_arm.cpp index dc16ff64a..5d2fb1be9 100644 --- a/radio/src/audio_arm.cpp +++ b/radio/src/audio_arm.cpp @@ -571,7 +571,7 @@ void AudioQueue::wakeup() } // mix the background context - if (!isFunctionActive(FUNC_BACKGND_MUSIC_PAUSE)) { + if (!isFunctionActive(FUNCTION_BACKGND_MUSIC_PAUSE)) { result = mixAudioContext(backgroundContext, buffer, g_eeGeneral.varioVolume, g_eeGeneral.backgroundVolume, fade); if (result > 0) { size = max(size, result); diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index b78db9acb..f06e02e09 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -435,7 +435,7 @@ void ConvertModel_215_to_216(ModelData &model) for (uint8_t i=0; i<32; i++) { g_model.funcSw[i] = oldModel.funcSw[i]; CustomFnData *sd = &g_model.funcSw[i]; - if (CFN_FUNC(sd) == FUNC_PLAY_VALUE || CFN_FUNC(sd) == FUNC_VOLUME || (IS_ADJUST_GV_FUNCTION(sd) && CFN_GVAR_MODE(sd) == FUNC_ADJUST_GVAR_SOURCE)) { + if (CFN_FUNC(sd) == FUNC_PLAY_VALUE || CFN_FUNC(sd) == FUNC_VOLUME || (IS_ADJUST_GV_FUNC(CFN_FUNC(sd)) && CFN_GVAR_MODE(sd) == FUNC_ADJUST_GVAR_SOURCE)) { #if defined(PCBTARANIS) CFN_PARAM(sd) += 1 + MAX_INPUTS + MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS; #endif diff --git a/radio/src/eeprom_raw.cpp b/radio/src/eeprom_raw.cpp index 5439e89a9..718fe3558 100644 --- a/radio/src/eeprom_raw.cpp +++ b/radio/src/eeprom_raw.cpp @@ -383,7 +383,6 @@ void eeLoadModel(uint8_t id) resumePulses(); } - activeSwitches = 0; activeFnSwitches = 0; activeFunctions = 0; memclear(lastFunctionTime, sizeof(lastFunctionTime)); diff --git a/radio/src/eeprom_rlc.cpp b/radio/src/eeprom_rlc.cpp index a56834186..f6f62502e 100644 --- a/radio/src/eeprom_rlc.cpp +++ b/radio/src/eeprom_rlc.cpp @@ -948,7 +948,6 @@ void eeLoadModel(uint8_t id) resumePulses(); } - activeSwitches = 0; activeFnSwitches = 0; activeFunctions = 0; memclear(lastFunctionTime, sizeof(lastFunctionTime)); diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 3fbf74e30..a6e64c67d 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4687,7 +4687,7 @@ void onCustomFunctionsMenu(const char *result) void menuModelCustomFunctions(uint8_t event) { - MENU(STR_MENUCUSTOMFUNC, menuTabModel, e_CustomFunctions, NUM_CFN+1, {0, NAVIGATION_LINE_BY_LINE|3/*repeated*/}); + MENU(STR_MENUCUSTOMFUNC, menuTabModel, e_CustomFunctions, NUM_CFN+1, {0, NAVIGATION_LINE_BY_LINE|4/*repeated*/}); uint8_t y; uint8_t k = 0; @@ -4720,7 +4720,8 @@ void menuModelCustomFunctions(uint8_t event) #endif CustomFnData *sd = &g_model.funcSw[k]; - for (uint8_t j=0; j<4; j++) { + uint8_t func = CFN_FUNC(sd); + for (uint8_t j=0; j<5; j++) { uint8_t attr = ((sub==k && m_posHorz==j) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0); uint8_t active = (attr && (s_editMode>0 || p1valdiff)); switch (j) { @@ -4731,228 +4732,197 @@ void menuModelCustomFunctions(uint8_t event) case 1: if (sd->swtch) { - uint8_t func_displayed; - if (CFN_FUNC(sd) < FUNC_TRAINER) { - func_displayed = 0; - putsChn(MODEL_CUSTOM_FUNC_2ND_COLUMN+6*FW, y, CFN_CH_NUMBER(sd)+1, attr); - } - else if (CFN_FUNC(sd) <= FUNC_TRAINER + NUM_STICKS) { - func_displayed = 1; - if (CFN_FUNC(sd) != FUNC_TRAINER) - putsMixerSource(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, MIXSRC_Rud+CFN_FUNC(sd)-FUNC_TRAINER-1, attr); - } -#if defined(DEBUG) - else if (CFN_FUNC(sd) == FUNC_TEST) { -#if defined(GVARS) - func_displayed = FUNC_TEST - FUNC_TRAINER - NUM_STICKS - MAX_GVARS + 2; -#else - func_displayed = FUNC_TEST - FUNC_TRAINER - NUM_STICKS + 1; -#endif - } -#endif -#if defined(GVARS) - else if (CFN_FUNC(sd) >= FUNC_ADJUST_GV1) { - func_displayed = FUNC_ADJUST_GV1 - FUNC_TRAINER - NUM_STICKS + 1; - putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, STR_GV, CFN_FUNC(sd)-FUNC_ADJUST_GV1+1, attr); - } -#endif - else { - func_displayed = 2 + CFN_FUNC(sd) - FUNC_TRAINER - NUM_STICKS - 1; - } - lcd_putsiAtt(MODEL_CUSTOM_FUNC_2ND_COLUMN, y, STR_VFSWFUNC, func_displayed, attr); + lcd_putsiAtt(MODEL_CUSTOM_FUNC_2ND_COLUMN, y, STR_VFSWFUNC, func, attr); if (active) { -#if defined(CPUARM) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_FUNC(sd), FUNC_MAX-1); -#else - if (CFN_FUNC(sd) < FUNC_TRAINER) { - CHECK_INCDEC_MODELVAR_ZERO(event, sd->internal.func_safety.func, 16); - } - else { - CHECK_INCDEC_MODELVAR_ZERO(event, CFN_FUNC(sd), FUNC_MAX-1); - if (CFN_FUNC(sd) < FUNC_TRAINER) - sd->internal.func_safety.func = 15; - } -#endif if (checkIncDec_Ret) CFN_RESET(sd); } } - else if (attr) { - REPEAT_LAST_CURSOR_MOVE(); + else { + j = 4; // skip other fields + if (attr && m_posHorz > 0) { + REPEAT_LAST_CURSOR_MOVE(); + } } break; case 2: - if (sd->swtch) { - INCDEC_DECLARE_VARS(); - int16_t val_displayed = CFN_PARAM(sd); - int8_t val_min = 0; - uint8_t val_max = 255; - if (CFN_FUNC(sd) == FUNC_PLAY_SOUND) { -#if defined(AUDIO) - val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1; - lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr); -#else - break; -#endif - } -#if defined(HAPTIC) - else if (CFN_FUNC(sd) == FUNC_HAPTIC) { - val_max = 3; - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); - } -#endif -#if defined(CPUARM) && defined(SDCARD) - else if (CFN_FUNC(sd) == FUNC_PLAY_TRACK || CFN_FUNC(sd) == FUNC_BACKGND_MUSIC) { -#if LCD_W >= 212 - xcoord_t x = MODEL_CUSTOM_FUNC_3RD_COLUMN; -#else - xcoord_t x = (CFN_FUNC(sd) == FUNC_PLAY_TRACK ? MODEL_CUSTOM_FUNC_2ND_COLUMN + FW + FW*strlen(TR_PLAY_TRACK) : MODEL_CUSTOM_FUNC_3RD_COLUMN); -#endif - if (ZEXIST(sd->param.name)) - lcd_putsnAtt(x, y, sd->param.name, sizeof(sd->param.name), attr); - else - lcd_putsiAtt(x, y, STR_VCSWFUNC, 0, attr); - if (active && event==EVT_KEY_BREAK(KEY_ENTER)) { - s_editMode = 0; - char directory[] = SOUNDS_PATH; - strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - if (listSdFiles(directory, SOUNDS_EXT, sizeof(sd->param.name), sd->param.name)) { - menuHandler = onCustomFunctionsFileSelectionMenu; - } - else { - POPUP_WARNING(STR_NO_SOUNDS_ON_SD); - s_menu_flags = 0; - } - } - break; - } - else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { - val_max = MIXSRC_FIRST_TELEM + TELEM_DISPLAY_MAX - 1; - putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); - INCDEC_ENABLE_CHECK(isSourceAvailable); - } -#endif -#if defined(CPUARM) - else if (CFN_FUNC(sd) == FUNC_VOLUME) { - val_max = MIXSRC_LAST_CH; - putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); - INCDEC_ENABLE_CHECK(isSourceAvailable); - } -#elif defined(VOICE) - else if (CFN_FUNC(sd) == FUNC_PLAY_TRACK) { -#if defined(GVARS) - if (attr && event==EVT_KEY_LONG(KEY_ENTER)) { - killEvents(event); - s_editMode = !s_editMode; - active = true; - val_displayed = (val_displayed > 250 ? 0 : 251); - } - if (val_displayed > 250) { - putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed-250, attr); - } - else { - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT); - } -#else - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT); -#endif - } - else if (CFN_FUNC(sd) == FUNC_PLAY_BOTH) { - lcd_putcAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+3*FWNUM, y, '|', attr); - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+3*FWNUM, y, val_displayed+PROMPT_CUSTOM_BASE, attr); - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+2+3*FWNUM, y, (val_displayed+PROMPT_CUSTOM_BASE+1)%10, attr|LEFT); - } - else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { - val_max = MIXSRC_FIRST_TELEM + TELEM_DISPLAY_MAX - 1; - putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); - INCDEC_ENABLE_CHECK(isSourceAvailable); - } -#endif -#if defined(SDCARD) - else if (CFN_FUNC(sd) == FUNC_LOGS) { - if (val_displayed) { - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|PREC1|LEFT); - lcd_putc(lcdLastPos, y, 's'); - } - else { - lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_MMMINV, 0, attr); - } - } -#endif - else if (CFN_FUNC(sd) == FUNC_RESET) { - val_max = FUNC_RESET_PARAM_LAST; - lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(sd), attr); - } - else if (CFN_FUNC(sd) < FUNC_TRAINER) { - val_displayed = (int8_t)CFN_PARAM(sd); - val_min = -125; val_max = 125; - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); - } -#if defined(GVARS) - else if (CFN_FUNC(sd) >= FUNC_ADJUST_GV1 -#if defined(DEBUG) - && CFN_FUNC(sd) <= FUNC_ADJUST_GVLAST -#endif - ) { - switch (CFN_GVAR_MODE(sd)) { - case FUNC_ADJUST_GVAR_CONSTANT: - val_displayed = (int8_t)CFN_PARAM(sd); - val_min = -125; val_max = 125; - lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); - break; - case FUNC_ADJUST_GVAR_SOURCE: - val_max = MIXSRC_LAST_CH; - putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); - INCDEC_ENABLE_CHECK(isSourceAvailable); - break; - case FUNC_ADJUST_GVAR_GVAR: - val_max = MAX_GVARS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); - break; - default: // FUNC_ADJUST_GVAR_INC - val_max = 1; - lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, PSTR("\002-1+1"), val_displayed, attr); - break; - } - - if (attr && event==EVT_KEY_LONG(KEY_ENTER)) { - killEvents(event); - s_editMode = !s_editMode; - active = true; - CFN_GVAR_MODE(sd) += 1; - val_displayed = 0; - } - } -#endif - else { - if (attr) m_posHorz = (CURSOR_MOVED_LEFT(event) ? 1 : 3); - break; - } - - if (active) { - CFN_PARAM(sd) = CHECK_INCDEC_PARAM(event, val_displayed, val_min, val_max); - } + { + int8_t maxParam = NUM_CHNOUT-1; + if (func == FUNC_SAFETY_CHANNEL) { + putsChn(MODEL_CUSTOM_FUNC_2ND_COLUMN+6*FW, y, CFN_CH_NUMBER(sd)+1, attr); } + else if (func == FUNC_TRAINER) { + maxParam = 4; + putsMixerSource(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, MIXSRC_Rud+CFN_CH_NUMBER(sd)-1, attr); + } +#if defined(GVARS) + else if (func == FUNC_ADJUST_GVAR) { + maxParam = MAX_GVARS-1; + putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, STR_GV, CFN_CH_NUMBER(sd)+1, attr); + } +#endif else if (attr) { REPEAT_LAST_CURSOR_MOVE(); } + if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_CH_NUMBER(sd), maxParam); break; + } case 3: - if (sd->swtch && (CFN_FUNC(sd) <= FUNC_INSTANT_TRIM || CFN_FUNC(sd) == FUNC_RESET -#if defined(GVARS) - // TODO #define - || CFN_FUNC(sd) >= FUNC_ADJUST_GV1 + { + INCDEC_DECLARE_VARS(); + int16_t val_displayed = CFN_PARAM(sd); + int8_t val_min = 0; + uint8_t val_max = 255; + if (func == FUNC_SAFETY_CHANNEL) { + val_displayed = (int8_t)CFN_PARAM(sd); + val_min = -125; val_max = 125; + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); + } +#if defined(AUDIO) + else if (func == FUNC_PLAY_SOUND) { + val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1; + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr); + break; + } +#endif +#if defined(HAPTIC) + else if (func == FUNC_HAPTIC) { + val_max = 3; + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); + } +#endif +#if defined(CPUARM) && defined(SDCARD) + else if (func == FUNC_PLAY_TRACK || func == FUNC_BACKGND_MUSIC) { +#if LCD_W >= 212 + xcoord_t x = MODEL_CUSTOM_FUNC_3RD_COLUMN; +#else + xcoord_t x = (func == FUNC_PLAY_TRACK ? MODEL_CUSTOM_FUNC_2ND_COLUMN + FW + FW*strlen(TR_PLAY_TRACK) : MODEL_CUSTOM_FUNC_3RD_COLUMN); +#endif + if (ZEXIST(sd->param.name)) + lcd_putsnAtt(x, y, sd->param.name, sizeof(sd->param.name), attr); + else + lcd_putsiAtt(x, y, STR_VCSWFUNC, 0, attr); + if (active && event==EVT_KEY_BREAK(KEY_ENTER)) { + s_editMode = 0; + char directory[] = SOUNDS_PATH; + strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); + if (listSdFiles(directory, SOUNDS_EXT, sizeof(sd->param.name), sd->param.name)) { + menuHandler = onCustomFunctionsFileSelectionMenu; + } + else { + POPUP_WARNING(STR_NO_SOUNDS_ON_SD); + s_menu_flags = 0; + } + } + break; + } + else if (func == FUNC_PLAY_VALUE) { + val_max = MIXSRC_FIRST_TELEM + TELEM_DISPLAY_MAX - 1; + putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); + INCDEC_ENABLE_CHECK(isSourceAvailable); + } #endif #if defined(CPUARM) - // TODO #define - || CFN_FUNC(sd) == FUNC_VOLUME + else if (func == FUNC_VOLUME) { + val_max = MIXSRC_LAST_CH; + putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); + INCDEC_ENABLE_CHECK(isSourceAvailable); + } +#elif defined(VOICE) + else if (func == FUNC_PLAY_TRACK) { +#if defined(GVARS) + if (attr && event==EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + s_editMode = !s_editMode; + active = true; + val_displayed = (val_displayed > 250 ? 0 : 251); + } + if (val_displayed > 250) { + putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed-250, attr); + } + else { + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT); + } +#else + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT); #endif - )) { + } + else if (func == FUNC_PLAY_BOTH) { + lcd_putcAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+3*FWNUM, y, '|', attr); + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+3*FWNUM, y, val_displayed+PROMPT_CUSTOM_BASE, attr); + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+2+3*FWNUM, y, (val_displayed+PROMPT_CUSTOM_BASE+1)%10, attr|LEFT); + } + else if (func == FUNC_PLAY_VALUE) { + val_max = MIXSRC_FIRST_TELEM + TELEM_DISPLAY_MAX - 1; + putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); + INCDEC_ENABLE_CHECK(isSourceAvailable); + } +#endif +#if defined(SDCARD) + else if (func == FUNC_LOGS) { + if (val_displayed) { + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|PREC1|LEFT); + lcd_putc(lcdLastPos, y, 's'); + } + else { + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_MMMINV, 0, attr); + } + } +#endif + else if (func == FUNC_RESET) { + val_max = FUNC_RESET_PARAM_LAST; + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(sd), attr); + } +#if defined(GVARS) + else if (func == FUNC_ADJUST_GVAR) { + switch (CFN_GVAR_MODE(sd)) { + case FUNC_ADJUST_GVAR_CONSTANT: + val_displayed = (int8_t)CFN_PARAM(sd); + val_min = -125; val_max = 125; + lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT); + break; + case FUNC_ADJUST_GVAR_SOURCE: + val_max = MIXSRC_LAST_CH; + putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr); + INCDEC_ENABLE_CHECK(isSourceAvailable); + break; + case FUNC_ADJUST_GVAR_GVAR: + val_max = MAX_GVARS-1; + putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); + break; + default: // FUNC_ADJUST_GVAR_INC + val_max = 1; + lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, PSTR("\002-1+1"), val_displayed, attr); + break; + } + + if (attr && event==EVT_KEY_LONG(KEY_ENTER)) { + killEvents(event); + s_editMode = !s_editMode; + active = true; + CFN_GVAR_MODE(sd) += 1; + val_displayed = 0; + } + } +#endif + else if (attr) { + REPEAT_LAST_CURSOR_MOVE(); + } + + if (active) { + CFN_PARAM(sd) = CHECK_INCDEC_PARAM(event, val_displayed, val_min, val_max); + } + break; + } + + case 4: + if (func <= FUNC_INSTANT_TRIM || func == FUNC_RESET || IS_ADJUST_GV_FUNC(func) || IS_VOLUME_FUNC(func)) { menu_lcd_onoff(MODEL_CUSTOM_FUNC_4TH_COLUMN_ONOFF, y, CFN_ACTIVE(sd), attr); if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_ACTIVE(sd), 1); } - else if (sd->swtch && HAS_REPEAT_PARAM(sd)) { + else if (HAS_REPEAT_PARAM(sd)) { if (CFN_PLAY_REPEAT(sd) == 0) { #if LCD_W >= 212 lcd_putsAtt(MODEL_CUSTOM_FUNC_4TH_COLUMN+2, y, "1x", attr); diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 9277f05b3..69916bc19 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -1046,6 +1046,16 @@ int16_t gvarMenuItem(uint8_t x, uint8_t y, int16_t value, int16_t min, int16_t m } #endif +void repeatLastCursorMove(uint8_t event) +{ + if (CURSOR_MOVED_LEFT(event) || CURSOR_MOVED_RIGHT(event)) { + putEvent(event); + } + else { + m_posHorz = 0; + } +} + #if LCD_W >= 212 #define MENU_X 30 #define MENU_Y 16 diff --git a/radio/src/gui/menus.h b/radio/src/gui/menus.h index 872af4fa3..15080b7f2 100644 --- a/radio/src/gui/menus.h +++ b/radio/src/gui/menus.h @@ -400,7 +400,8 @@ void pushMenuTextView(const char *filename); #define REPEAT_LAST_CURSOR_MOVE() { if (EVT_KEY_MASK(event) >= 0x0e) putEvent(event); else m_posHorz = 0; } #define MOVE_CURSOR_FROM_HERE() if (m_posHorz > 0) REPEAT_LAST_CURSOR_MOVE() #else - #define REPEAT_LAST_CURSOR_MOVE() m_posHorz = 0; + void repeatLastCursorMove(uint8_t event); + #define REPEAT_LAST_CURSOR_MOVE() repeatLastCursorMove(event) #define MOVE_CURSOR_FROM_HERE() REPEAT_LAST_CURSOR_MOVE() #endif diff --git a/radio/src/gui/view_main.cpp b/radio/src/gui/view_main.cpp index 93c6e0dfa..d618414ec 100644 --- a/radio/src/gui/view_main.cpp +++ b/radio/src/gui/view_main.cpp @@ -295,7 +295,7 @@ void displayTopBar() x -= 12; } - if (isFunctionActive(FUNC_LOGS)) { + if (isFunctionActive(FUNCTION_LOGS)) { LCD_NOTIF_ICON(x, ICON_LOGS); x -= 12; } diff --git a/radio/src/logs.cpp b/radio/src/logs.cpp index 58c47eacc..41cf29b8d 100644 --- a/radio/src/logs.cpp +++ b/radio/src/logs.cpp @@ -175,7 +175,7 @@ void writeLogs() { static const pm_char * error_displayed = NULL; - if (isFunctionActive(FUNC_LOGS) && logDelay > 0) { + if (isFunctionActive(FUNCTION_LOGS) && logDelay > 0) { tmr10ms_t tmr10ms = get_tmr10ms(); if (lastLogTime == 0 || (tmr10ms_t)(tmr10ms - lastLogTime) >= (tmr10ms_t)logDelay*10) { lastLogTime = tmr10ms; diff --git a/radio/src/maths.cpp b/radio/src/maths.cpp index 6cee8d2d7..346a7dba7 100644 --- a/radio/src/maths.cpp +++ b/radio/src/maths.cpp @@ -120,7 +120,7 @@ void varioWakeup() static tmr10ms_t s_varioTmr; tmr10ms_t tmr10ms = get_tmr10ms(); - if (isFunctionActive(FUNC_VARIO)) { + if (isFunctionActive(FUNCTION_VARIO)) { #if defined(AUDIO) cli(); int16_t verticalSpeed = frskyData.hub.varioSpeed; diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index ba75d686b..0aae1e8c5 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -693,63 +693,54 @@ PACK(typedef struct t_CustomSwData { // Custom Switches data #endif enum Functions { -#if defined(CPUARM) - FUNC_SAFETY_CH1, - FUNC_SAFETY_CH16=FUNC_SAFETY_CH1+15, -#else - FUNC_SAFETY_GROUP1, - FUNC_SAFETY_GROUP2, - FUNC_SAFETY_GROUP3, - FUNC_SAFETY_GROUP4, -#endif + // first the functions which need a checkbox + FUNC_SAFETY_CHANNEL, FUNC_TRAINER, - FUNC_TRAINER_RUD, - FUNC_TRAINER_ELE, - FUNC_TRAINER_THR, - FUNC_TRAINER_AIL, FUNC_INSTANT_TRIM, - FUNC_PLAY_SOUND, -#if !defined(PCBTARANIS) - FUNC_HAPTIC, -#endif FUNC_RESET, - FUNC_VARIO, + FUNC_ADJUST_GVAR, +#if defined(CPUARM) + FUNC_VOLUME, +#endif + + // then the other functions + FUNC_FIRST_WITHOUT_ENABLE, + FUNC_PLAY_SOUND = FUNC_FIRST_WITHOUT_ENABLE, FUNC_PLAY_TRACK, #if !defined(CPUARM) FUNC_PLAY_BOTH, #endif FUNC_PLAY_VALUE, -#if !defined(PCBSTD) - FUNC_LOGS, -#endif -#if defined(CPUARM) - FUNC_VOLUME, -#endif - FUNC_BACKLIGHT, #if defined(CPUARM) FUNC_BACKGND_MUSIC, FUNC_BACKGND_MUSIC_PAUSE, #endif -#if defined(GVARS) - FUNC_ADJUST_GV1, - FUNC_ADJUST_GVLAST = (FUNC_ADJUST_GV1 + (MAX_GVARS-1)), + FUNC_VARIO, + FUNC_HAPTIC, +#if !defined(PCBSTD) + FUNC_LOGS, #endif + FUNC_BACKLIGHT, #if defined(DEBUG) FUNC_TEST, // should remain the last before MAX as not added in companion9x #endif FUNC_MAX }; +#define HAS_ENABLE_PARAM(func) (func < FUNC_FIRST_WITHOUT_ENABLE) + #if defined(CPUARM) - #define IS_PLAY_BOTH_FUNC(sd) (0) + #define IS_PLAY_BOTH_FUNC(func) (0) + #define IS_VOLUME_FUNC(func) (func == FUNC_VOLUME) #else - #define IS_PLAY_BOTH_FUNC(sd) (CFN_FUNC(sd) == FUNC_PLAY_BOTH) + #define IS_PLAY_BOTH_FUNC(func) (func == FUNC_PLAY_BOTH) + #define IS_VOLUME_FUNC(func) (0) #endif #if defined(GVARS) - #define IS_ADJUST_GV_FUNCTION(sd) (CFN_FUNC(sd) >= FUNC_ADJUST_GV1 && CFN_FUNC(sd) <= FUNC_ADJUST_GVLAST) + #define IS_ADJUST_GV_FUNC(func) (func == FUNC_ADJUST_GVAR) #else - #define IS_ADJUST_GV_FUNCTION(sd) (0) + #define IS_ADJUST_GV_FUNC(func) (0) #endif #if defined(VOICE) @@ -814,34 +805,20 @@ PACK(typedef struct t_CustomFnData { // Function Switches data #define CFN_RESET(p) (p->active = 0, memset(&(p)->param, 0, sizeof((p)->param))) #else PACK(typedef struct t_CustomFnData { - int8_t swtch; // input - union { - struct { - uint8_t param:3; - uint8_t func:5; - } func_param; - - struct { - uint8_t active:1; - uint8_t param:2; - uint8_t func:5; - } func_param_enable; - - struct { - uint8_t active:1; - uint8_t func:7; - } func_safety; - } internal; - uint8_t param; + uint8_t value; + uint8_t func:5; + uint8_t active:1; + int16_t swtch:6; + uint8_t param:4; }) CustomFnData; -#define CFN_FUNC(p) ((p)->internal.func_param.func) -#define CFN_ACTIVE(p) ((p)->internal.func_param_enable.active) -#define CFN_CH_NUMBER(p) ((p)->internal.func_safety.func) -#define CFN_PLAY_REPEAT(p) ((p)->internal.func_param.param) +#define CFN_FUNC(p) ((p)->func) +#define CFN_ACTIVE(p) ((p)->active) +#define CFN_CH_NUMBER(p) ((p)->param) +#define CFN_PLAY_REPEAT(p) ((p)->param) #define CFN_PLAY_REPEAT_MUL 10 -#define CFN_GVAR_MODE(p) ((p)->internal.func_param_enable.param) -#define CFN_PARAM(p) ((p)->param) -#define CFN_RESET(p) ((p)->internal.func_param_enable.active = 0, CFN_PARAM(p) = 0) +#define CFN_GVAR_MODE(p) ((p)->param) +#define CFN_PARAM(p) ((p)->value) +#define CFN_RESET(p) ((p)->active = 0, CFN_PARAM(p) = 0) #endif enum TelemetryUnit { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 27dd80868..f8a4eb4f5 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1531,15 +1531,17 @@ bool getSwitch(int8_t swtch) cswDelays[cs_idx] = get_tmr10ms() + (cs->delay*50); } } + if (cs->duration) { - if (result && !cswStates[cs_idx]) + if (result && !cswStates[cs_idx]) { cswDurations[cs_idx] = get_tmr10ms() + (cs->duration*50); + } cswStates[cs_idx] = result; + result = false; if (cswDurations[cs_idx] > get_tmr10ms()) { result = true; - if (cs->delay) cswDelays[cs_idx] = get_tmr10ms() + (cs->delay*50); } } #endif @@ -2031,7 +2033,7 @@ void checkBacklight() backlightOn(); } - bool backlightOn = (g_eeGeneral.backlightMode == e_backlight_mode_on || lightOffCounter || isFunctionActive(FUNC_BACKLIGHT)); + bool backlightOn = (g_eeGeneral.backlightMode == e_backlight_mode_on || lightOffCounter || isFunctionActive(FUNCTION_BACKLIGHT)); if (flashCounter) backlightOn = !backlightOn; if (backlightOn) BACKLIGHT_ON(); @@ -2841,7 +2843,7 @@ void evalInputs(uint8_t mode) } if (ch < NUM_STICKS) { //only do this for sticks - if (mode <= e_perout_mode_inactive_phase && (isFunctionActive(FUNC_TRAINER) || isFunctionActive(FUNC_TRAINER_RUD+ch))) { + if (mode <= e_perout_mode_inactive_phase && isFunctionActive(FUNCTION_TRAINER+ch)) { // trainer mode TrainerMix* td = &g_eeGeneral.trainer.mix[ch]; if (td->mode) { @@ -2899,7 +2901,6 @@ void testFunc() #endif MASK_FUNC_TYPE activeFunctions = 0; -MASK_CFN_TYPE activeSwitches = 0; MASK_CFN_TYPE activeFnSwitches = 0; tmr10ms_t lastFunctionTime[NUM_CFN] = { 0 }; @@ -3060,175 +3061,90 @@ bool evalFunctionsFirstTime = true; void evalFunctions() { MASK_FUNC_TYPE newActiveFunctions = 0; - MASK_CFN_TYPE newActiveSwitches = 0; MASK_CFN_TYPE newActiveFnSwitches = 0; #if defined(ROTARY_ENCODERS) && defined(GVARS) static rotenc_t rePreviousValues[ROTARY_ENCODERS]; #endif - for (uint8_t i=0; iswtch; if (swtch) { - MASK_FUNC_TYPE function_mask = (CFN_FUNC(sd) >= FUNC_TRAINER ? ((MASK_FUNC_TYPE)1 << (CFN_FUNC(sd)-FUNC_TRAINER)) : 0); MASK_CFN_TYPE switch_mask = ((MASK_CFN_TYPE)1 << i); bool active = getSwitch(swtch); - if (active) newActiveSwitches |= switch_mask; - if (active || IS_PLAY_BOTH_FUNC(sd)) { + if (HAS_ENABLE_PARAM(CFN_FUNC(sd))) { + active &= CFN_ACTIVE(sd); + } - if (CFN_ACTIVE(sd)) { - if (CFN_FUNC(sd) < FUNC_TRAINER) { + if (active || IS_PLAY_BOTH_FUNC(CFN_FUNC(sd))) { + + switch(CFN_FUNC(sd)) { + + case FUNC_SAFETY_CHANNEL: safetyCh[CFN_CH_NUMBER(sd)] = CFN_PARAM(sd); + break; + + case FUNC_TRAINER: + { + uint8_t mask = 0x0f; + if (CFN_CH_NUMBER(sd) > 0) { + mask = (1<<(CFN_CH_NUMBER(sd)-1)); + } + newActiveFunctions |= mask; + break; } - if (!(activeFunctions & function_mask)) { - if (CFN_FUNC(sd) == FUNC_INSTANT_TRIM) { + case FUNC_INSTANT_TRIM: + if (!isFunctionActive(FUNCTION_INSTANT_TRIM)) { + newActiveFunctions |= (1 << FUNCTION_INSTANT_TRIM); if (g_menuStack[0] == menuMainView #if defined(FRSKY) || g_menuStack[0] == menuTelemetryFrsky #endif - ) + ) instantTrim(); } - } - } - else if (CFN_FUNC(sd) <= FUNC_INSTANT_TRIM || CFN_FUNC(sd) == FUNC_RESET) { - active = false; - } + break; - if (CFN_FUNC(sd) == FUNC_RESET) { - switch (CFN_PARAM(sd)) { - case FUNC_RESET_TIMER1: - case FUNC_RESET_TIMER2: - resetTimer(CFN_PARAM(sd)); - break; - case FUNC_RESET_ALL: - resetAll(); - break; + case FUNC_RESET: + switch (CFN_PARAM(sd)) { + case FUNC_RESET_TIMER1: + case FUNC_RESET_TIMER2: + resetTimer(CFN_PARAM(sd)); + break; + case FUNC_RESET_ALL: + resetAll(); + break; #if defined(FRSKY) - case FUNC_RESET_TELEMETRY: - resetTelemetry(); - break; + case FUNC_RESET_TELEMETRY: + resetTelemetry(); + break; #endif #if ROTARY_ENCODERS > 0 - case FUNC_RESET_ROTENC1: + case FUNC_RESET_ROTENC1: #if ROTARY_ENCODERS > 1 - case FUNC_RESET_ROTENC2: + case FUNC_RESET_ROTENC2: #endif - g_rotenc[CFN_PARAM(sd)-FUNC_RESET_ROTENC1] = 0; - break; + g_rotenc[CFN_PARAM(sd)-FUNC_RESET_ROTENC1] = 0; + break; #endif - } - } - -#if defined(SDCARD) - else if (CFN_FUNC(sd) == FUNC_LOGS) { - logDelay = CFN_PARAM(sd); - } -#endif - -#if defined(HAPTIC) - else if (CFN_FUNC(sd) == FUNC_HAPTIC) { - haptic.event(AU_FRSKY_LAST+CFN_PARAM(sd)); - } -#endif - -#if defined(CPUARM) && defined(SDCARD) - else if (CFN_FUNC(sd) == FUNC_PLAY_SOUND || CFN_FUNC(sd) == FUNC_PLAY_TRACK || CFN_FUNC(sd) == FUNC_PLAY_VALUE) { - tmr10ms_t tmr10ms = get_tmr10ms(); - uint8_t repeatParam = CFN_PLAY_REPEAT(sd); - if (evalFunctionsFirstTime && repeatParam == CFN_PLAY_REPEAT_NOSTART) - lastFunctionTime[i] = tmr10ms; - if (!lastFunctionTime[i] || (repeatParam && repeatParam!=CFN_PLAY_REPEAT_NOSTART && (signed)(tmr10ms-lastFunctionTime[i])>=100*repeatParam)) { - if (!IS_PLAYING(i+1)) { - lastFunctionTime[i] = tmr10ms; - if (CFN_FUNC(sd) == FUNC_PLAY_SOUND) { - AUDIO_PLAY(AU_FRSKY_FIRST+CFN_PARAM(sd)); - } - else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { - PLAY_VALUE(CFN_PARAM(sd), i+1); - } - else { - playCustomFunctionFile(sd, i+1); - } } - } - } - else if (CFN_FUNC(sd) == FUNC_BACKGND_MUSIC) { - if (!IS_PLAYING(i+1)) { - playCustomFunctionFile(sd, i+1); - } - } - else if (CFN_FUNC(sd) == FUNC_VOLUME) { - if (CFN_ACTIVE(sd)) { - getvalue_t raw = getValue(CFN_PARAM(sd)); - //only set volume if input changed more than hysteresis - if (abs(requiredSpeakerVolumeRawLast - raw) > VOLUME_HYSTERESIS) { - requiredSpeakerVolumeRawLast = raw; - } - requiredSpeakerVolume = ((1024 + requiredSpeakerVolumeRawLast) * VOLUME_LEVEL_MAX) / 2048; - } - else { - active = false; - } - } -#elif defined(VOICE) - else if (CFN_FUNC(sd) == FUNC_PLAY_SOUND || CFN_FUNC(sd) == FUNC_PLAY_TRACK || CFN_FUNC(sd) == FUNC_PLAY_BOTH || CFN_FUNC(sd) == FUNC_PLAY_VALUE) { - tmr10ms_t tmr10ms = get_tmr10ms(); - uint8_t repeatParam = CFN_PLAY_REPEAT(sd); - if (!lastFunctionTime[i] || (CFN_FUNC(sd)==FUNC_PLAY_BOTH && active!=(bool)(activeFnSwitches&switch_mask)) || (repeatParam && (signed)(tmr10ms-lastFunctionTime[i])>=1000*repeatParam)) { - lastFunctionTime[i] = tmr10ms; - uint8_t param = CFN_PARAM(sd); - if (CFN_FUNC(sd) == FUNC_PLAY_SOUND) { - AUDIO_PLAY(AU_FRSKY_FIRST+param); - } - else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { - PLAY_VALUE(param, i+1); - } - else { -#if defined(GVARS) - if (CFN_FUNC(sd) == FUNC_PLAY_TRACK && param > 250) - param = GVAR_VALUE(param-251, getGVarFlightPhase(s_perout_flight_phase, param-251)); -#endif - PUSH_CUSTOM_PROMPT(active ? param : param+1, i+1); - } - } - } -#else - else if (CFN_FUNC(sd) == FUNC_PLAY_SOUND) { - tmr10ms_t tmr10ms = get_tmr10ms(); - uint8_t repeatParam = CFN_PLAY_REPEAT(sd); - if (!lastFunctionTime[i] || (repeatParam && (signed)(tmr10ms-lastFunctionTime[i])>=1000*repeatParam)) { - lastFunctionTime[i] = tmr10ms; - AUDIO_PLAY(AU_FRSKY_FIRST+CFN_PARAM(sd)); - } - } -#endif - -#if defined(DEBUG) - else if (CFN_FUNC(sd) == FUNC_TEST) { - testFunc(); - } -#endif + break; #if defined(GVARS) - else if (CFN_FUNC(sd) >= FUNC_ADJUST_GV1) { - if (CFN_ACTIVE(sd)) { + case FUNC_ADJUST_GVAR: if (CFN_GVAR_MODE(sd) == 0) { SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, CFN_PARAM(sd), s_perout_flight_phase); } @@ -3254,17 +3170,130 @@ void evalFunctions() else { SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, limit((getvalue_t)-1250, getValue(CFN_PARAM(sd)), (getvalue_t)1250) / 10, s_perout_flight_phase); } - } - else { - active = false; - } - } + break; #endif - if (active) { - newActiveFnSwitches |= switch_mask; - newActiveFunctions |= function_mask; +#if defined(CPUARM) && defined(SDCARD) + case FUNC_VOLUME: + { + getvalue_t raw = getValue(CFN_PARAM(sd)); + //only set volume if input changed more than hysteresis + if (abs(requiredSpeakerVolumeRawLast - raw) > VOLUME_HYSTERESIS) { + requiredSpeakerVolumeRawLast = raw; + } + requiredSpeakerVolume = ((1024 + requiredSpeakerVolumeRawLast) * VOLUME_LEVEL_MAX) / 2048; + break; + } +#endif + +#if defined(CPUARM) && defined(SDCARD) + case FUNC_PLAY_SOUND: + case FUNC_PLAY_TRACK: + case FUNC_PLAY_VALUE: + { + tmr10ms_t tmr10ms = get_tmr10ms(); + uint8_t repeatParam = CFN_PLAY_REPEAT(sd); + if (evalFunctionsFirstTime && repeatParam == CFN_PLAY_REPEAT_NOSTART) + lastFunctionTime[i] = tmr10ms; + if (!lastFunctionTime[i] || (repeatParam && repeatParam!=CFN_PLAY_REPEAT_NOSTART && (signed)(tmr10ms-lastFunctionTime[i])>=100*repeatParam)) { + if (!IS_PLAYING(i+1)) { + lastFunctionTime[i] = tmr10ms; + if (CFN_FUNC(sd) == FUNC_PLAY_SOUND) { + AUDIO_PLAY(AU_FRSKY_FIRST+CFN_PARAM(sd)); + } + else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { + PLAY_VALUE(CFN_PARAM(sd), i+1); + } + else { + playCustomFunctionFile(sd, i+1); + } + } + } + break; + } + + case FUNC_BACKGND_MUSIC: + newActiveFunctions |= (1 << FUNCTION_BACKGND_MUSIC); + if (!IS_PLAYING(i+1)) { + playCustomFunctionFile(sd, i+1); + } + break; + + case FUNC_BACKGND_MUSIC_PAUSE: + newActiveFunctions |= (1 << FUNCTION_BACKGND_MUSIC_PAUSE); + break; + +#elif defined(VOICE) + case FUNC_PLAY_SOUND: + case FUNC_PLAY_TRACK: + case FUNC_PLAY_BOTH: + case FUNC_PLAY_VALUE: + { + tmr10ms_t tmr10ms = get_tmr10ms(); + uint8_t repeatParam = CFN_PLAY_REPEAT(sd); + if (!lastFunctionTime[i] || (CFN_FUNC(sd)==FUNC_PLAY_BOTH && active!=(bool)(activeFnSwitches&switch_mask)) || (repeatParam && (signed)(tmr10ms-lastFunctionTime[i])>=1000*repeatParam)) { + lastFunctionTime[i] = tmr10ms; + uint8_t param = CFN_PARAM(sd); + if (CFN_FUNC(sd) == FUNC_PLAY_SOUND) { + AUDIO_PLAY(AU_FRSKY_FIRST+param); + } + else if (CFN_FUNC(sd) == FUNC_PLAY_VALUE) { + PLAY_VALUE(param, i+1); + } + else { +#if defined(GVARS) + if (CFN_FUNC(sd) == FUNC_PLAY_TRACK && param > 250) + param = GVAR_VALUE(param-251, getGVarFlightPhase(s_perout_flight_phase, param-251)); +#endif + PUSH_CUSTOM_PROMPT(active ? param : param+1, i+1); + } + } + break; + } +#else + case FUNC_PLAY_SOUND: + { + tmr10ms_t tmr10ms = get_tmr10ms(); + uint8_t repeatParam = CFN_PLAY_REPEAT(sd); + if (!lastFunctionTime[i] || (repeatParam && (signed)(tmr10ms-lastFunctionTime[i])>=1000*repeatParam)) { + lastFunctionTime[i] = tmr10ms; + AUDIO_PLAY(AU_FRSKY_FIRST+CFN_PARAM(sd)); + } + break; + } +#endif + +#if defined(FRSKY) && defined(VARIO) + case FUNC_VARIO: + newActiveFunctions |= (1 << FUNCTION_VARIO); + break; +#endif + +#if defined(HAPTIC) + case FUNC_HAPTIC: + haptic.event(AU_FRSKY_LAST+CFN_PARAM(sd)); + break; +#endif + +#if defined(SDCARD) + case FUNC_LOGS: + newActiveFunctions |= (1 << FUNCTION_LOGS); + logDelay = CFN_PARAM(sd); + break; +#endif + + case FUNC_BACKLIGHT: + newActiveFunctions |= (1 << FUNCTION_BACKLIGHT); + break; + +#if defined(DEBUG) + case FUNC_TEST: + testFunc(); + break; +#endif } + + newActiveFnSwitches |= switch_mask; } else { lastFunctionTime[i] = 0; @@ -3272,7 +3301,7 @@ void evalFunctions() fnSwitchDuration[i] = 0; #endif #if defined(CPUARM) && defined(SDCARD) - if (CFN_FUNC(sd) == FUNC_BACKGND_MUSIC && isFunctionActive(FUNC_BACKGND_MUSIC)) { + if (CFN_FUNC(sd) == FUNC_BACKGND_MUSIC && isFunctionActive(FUNCTION_BACKGND_MUSIC)) { STOP_PLAY(i+1); } #endif @@ -3280,13 +3309,13 @@ void evalFunctions() } } - activeSwitches = newActiveSwitches; activeFnSwitches = newActiveFnSwitches; activeFunctions = newActiveFunctions; #if defined(ROTARY_ENCODERS) && defined(GVARS) - for (uint8_t i=0; i Date: Tue, 4 Feb 2014 07:16:33 +0100 Subject: [PATCH 23/73] Update DONATIONS.txt --- DONATIONS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 8436823af..d38356161 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -312,3 +312,4 @@ Dietmar Drees Bradley Murchie Richard Fahie James Kaufman +Henry Deucker From 98eb42a77cf70112433eec12bb86131bf686bcb7 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 4 Feb 2014 07:35:46 +0100 Subject: [PATCH 24/73] Issue #592 - Corrections for ARM boards --- radio/src/gui/menu_model.cpp | 4 ++++ radio/src/myeeprom.h | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index a6e64c67d..ddb5a5692 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4754,7 +4754,11 @@ void menuModelCustomFunctions(uint8_t event) } else if (func == FUNC_TRAINER) { maxParam = 4; +#if defined(CPUARM) + putsMixerSource(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, CFN_CH_NUMBER(sd)==0 ? 0 : MIXSRC_Rud+CFN_CH_NUMBER(sd)-1, attr); +#else putsMixerSource(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, MIXSRC_Rud+CFN_CH_NUMBER(sd)-1, attr); +#endif } #if defined(GVARS) else if (func == FUNC_ADJUST_GVAR) { diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 0aae1e8c5..535b65fe1 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -786,23 +786,23 @@ PACK(typedef struct t_CustomFnData { // Function Switches data char name[LEN_CFN_NAME]; struct { int16_t val; - int16_t ext1; - int16_t ext2; + uint8_t mode; + uint8_t spare1; + int16_t spare2; } composite; }) param; - uint8_t mode:2; - uint8_t active:6; + uint8_t active; }) CustomFnData; #define CFN_EMPTY(p) (!(p)->swtch) #define CFN_FUNC(p) ((p)->func) #define CFN_ACTIVE(p) ((p)->active) -#define CFN_CH_NUMBER(p) (CFN_FUNC(p)) +#define CFN_CH_NUMBER(p) ((p)->param.composite.mode) #define CFN_PLAY_REPEAT(p) ((p)->active) #define CFN_PLAY_REPEAT_MUL 1 #define CFN_PLAY_REPEAT_NOSTART 0x3F -#define CFN_GVAR_MODE(p) ((p)->mode) +#define CFN_GVAR_MODE(p) ((p)->param.composite.mode) #define CFN_PARAM(p) ((p)->param.composite.val) -#define CFN_RESET(p) (p->active = 0, memset(&(p)->param, 0, sizeof((p)->param))) +#define CFN_RESET(p) ((p)->active=0, (p)->param.composite.val=0, (p)->param.composite.mode=0, (p)->param.composite.spare1=0, (p)->param.composite.spare2=0) #else PACK(typedef struct t_CustomFnData { uint8_t value; From 9c82e62cc7ca8d4581c6572d473a4d37626057dc Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 4 Feb 2014 10:28:11 +0100 Subject: [PATCH 25/73] [all] Issue #592 - Corrections (GVARS) --- radio/src/gui/menu_model.cpp | 24 +++++++------- radio/src/lcd.cpp | 10 ------ radio/src/myeeprom.h | 64 +++++++++++++++++++++++++----------- radio/src/opentx.cpp | 20 +++++------ 4 files changed, 68 insertions(+), 50 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index ddb5a5692..49d240209 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4640,14 +4640,14 @@ void onCustomFunctionsFileSelectionMenu(const char *result) if (result == STR_UPDATE_LIST) { char directory[] = SOUNDS_PATH; strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - if (!listSdFiles(directory, SOUNDS_EXT, sizeof(g_model.funcSw[sub].param), NULL)) { + if (!listSdFiles(directory, SOUNDS_EXT, sizeof(g_model.funcSw[sub].play.name), NULL)) { POPUP_WARNING(STR_NO_SOUNDS_ON_SD); s_menu_flags = 0; } } else { // The user choosed a wav file in the list - memcpy(g_model.funcSw[sub].param.name, result, sizeof(g_model.funcSw[sub].param.name)); + memcpy(g_model.funcSw[sub].play.name, result, sizeof(g_model.funcSw[sub].play.name)); eeDirty(EE_MODEL); } } @@ -4726,12 +4726,12 @@ void menuModelCustomFunctions(uint8_t event) uint8_t active = (attr && (s_editMode>0 || p1valdiff)); switch (j) { case 0: - putsSwitches(MODEL_CUSTOM_FUNC_1ST_COLUMN, y, sd->swtch, attr | ((activeFnSwitches & ((MASK_CFN_TYPE)1 << k)) ? BOLD : 0)); - if (active || AUTOSWITCH_ENTER_LONG()) CHECK_INCDEC_MODELSWITCH(event, sd->swtch, SWSRC_FIRST, SWSRC_LAST); + putsSwitches(MODEL_CUSTOM_FUNC_1ST_COLUMN, y, CFN_SWITCH(sd), attr | ((activeFnSwitches & ((MASK_CFN_TYPE)1 << k)) ? BOLD : 0)); + if (active || AUTOSWITCH_ENTER_LONG()) CHECK_INCDEC_MODELSWITCH(event, CFN_SWITCH(sd), SWSRC_FIRST, SWSRC_LAST); break; case 1: - if (sd->swtch) { + if (CFN_SWITCH(sd)) { lcd_putsiAtt(MODEL_CUSTOM_FUNC_2ND_COLUMN, y, STR_VFSWFUNC, func, attr); if (active) { CHECK_INCDEC_MODELVAR_ZERO(event, CFN_FUNC(sd), FUNC_MAX-1); @@ -4740,7 +4740,7 @@ void menuModelCustomFunctions(uint8_t event) } else { j = 4; // skip other fields - if (attr && m_posHorz > 0) { + if (sub==k && m_posHorz > 0) { REPEAT_LAST_CURSOR_MOVE(); } } @@ -4763,7 +4763,9 @@ void menuModelCustomFunctions(uint8_t event) #if defined(GVARS) else if (func == FUNC_ADJUST_GVAR) { maxParam = MAX_GVARS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, STR_GV, CFN_CH_NUMBER(sd)+1, attr); + putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN+7*FW, y, STR_GV, CFN_GVAR_NUMBER(sd)+1, attr); + if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_GVAR_NUMBER(sd), maxParam); + break; } #endif else if (attr) { @@ -4804,15 +4806,15 @@ void menuModelCustomFunctions(uint8_t event) #else xcoord_t x = (func == FUNC_PLAY_TRACK ? MODEL_CUSTOM_FUNC_2ND_COLUMN + FW + FW*strlen(TR_PLAY_TRACK) : MODEL_CUSTOM_FUNC_3RD_COLUMN); #endif - if (ZEXIST(sd->param.name)) - lcd_putsnAtt(x, y, sd->param.name, sizeof(sd->param.name), attr); + if (ZEXIST(sd->play.name)) + lcd_putsnAtt(x, y, sd->play.name, sizeof(sd->play.name), attr); else lcd_putsiAtt(x, y, STR_VCSWFUNC, 0, attr); if (active && event==EVT_KEY_BREAK(KEY_ENTER)) { s_editMode = 0; char directory[] = SOUNDS_PATH; strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - if (listSdFiles(directory, SOUNDS_EXT, sizeof(sd->param.name), sd->param.name)) { + if (listSdFiles(directory, SOUNDS_EXT, sizeof(sd->play.name), sd->play.name)) { menuHandler = onCustomFunctionsFileSelectionMenu; } else { @@ -4922,7 +4924,7 @@ void menuModelCustomFunctions(uint8_t event) } case 4: - if (func <= FUNC_INSTANT_TRIM || func == FUNC_RESET || IS_ADJUST_GV_FUNC(func) || IS_VOLUME_FUNC(func)) { + if (HAS_ENABLE_PARAM(func)) { menu_lcd_onoff(MODEL_CUSTOM_FUNC_4TH_COLUMN_ONOFF, y, CFN_ACTIVE(sd), attr); if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_ACTIVE(sd), 1); } diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index 7bfabb139..c4532dcad 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1043,16 +1043,6 @@ void putsSwitches(xcoord_t x, uint8_t y, int8_t idx, LcdFlags att) lcd_vlineStip(x-2, y, 8, 0x5E/*'!'*/); idx = -idx; } - -#if ROTARY_ENCODERS > 0 - else if (idx >= SWSRC_FIRST_ROTENC_SWITCH) { - idx -= SWSRC_FIRST_ROTENC_SWITCH; - char suffix = (idx & 1) ? CHR_LONG : CHR_SHORT; - lcd_putsiAtt(x, y, STR_VRENCODERS, idx/2, att); - return lcd_putcAtt(lcdLastPos, y, suffix, att); - } -#endif - lcd_putsiAtt(x, y, STR_VSWITCHES, idx-1, att); } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 535b65fe1..b95760e55 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -783,42 +783,68 @@ PACK(typedef struct t_CustomFnData { // Function Switches data int8_t swtch; uint8_t func; PACK(union { - char name[LEN_CFN_NAME]; + struct { + char name[LEN_CFN_NAME]; + } play; + struct { int16_t val; uint8_t mode; - uint8_t spare1; + uint8_t param; int16_t spare2; - } composite; - }) param; + } all; + + struct { + int32_t val1; + int16_t val2; + } clear; + }); uint8_t active; }) CustomFnData; #define CFN_EMPTY(p) (!(p)->swtch) +#define CFN_SWITCH(p) ((p)->swtch) #define CFN_FUNC(p) ((p)->func) #define CFN_ACTIVE(p) ((p)->active) -#define CFN_CH_NUMBER(p) ((p)->param.composite.mode) +#define CFN_CH_NUMBER(p) ((p)->all.param) #define CFN_PLAY_REPEAT(p) ((p)->active) #define CFN_PLAY_REPEAT_MUL 1 #define CFN_PLAY_REPEAT_NOSTART 0x3F -#define CFN_GVAR_MODE(p) ((p)->param.composite.mode) -#define CFN_PARAM(p) ((p)->param.composite.val) -#define CFN_RESET(p) ((p)->active=0, (p)->param.composite.val=0, (p)->param.composite.mode=0, (p)->param.composite.spare1=0, (p)->param.composite.spare2=0) +#define CFN_GVAR_NUMBER(p) ((p)->all.param) +#define CFN_GVAR_MODE(p) ((p)->all.mode) +#define CFN_PARAM(p) ((p)->all.val) +#define CFN_RESET(p) ((p)->active=0, (p)->clear.val1=0, (p)->clear.val2=0) #else PACK(typedef struct t_CustomFnData { - uint8_t value; - uint8_t func:5; - uint8_t active:1; - int16_t swtch:6; - uint8_t param:4; + PACK(union { + struct { + int8_t swtch:6; + uint16_t func:4; + uint8_t mode:2; + uint8_t param:3; + uint8_t active:1; + } gvar; + + struct { + int8_t swtch:6; + uint16_t func:4; + uint8_t param:4; + uint8_t spare:1; + uint8_t active:1; + } all; + }); + + uint8_t value; }) CustomFnData; -#define CFN_FUNC(p) ((p)->func) -#define CFN_ACTIVE(p) ((p)->active) -#define CFN_CH_NUMBER(p) ((p)->param) -#define CFN_PLAY_REPEAT(p) ((p)->param) +#define CFN_SWITCH(p) ((p)->all.swtch) +#define CFN_FUNC(p) ((p)->all.func) +#define CFN_ACTIVE(p) ((p)->all.active) +#define CFN_CH_NUMBER(p) ((p)->all.param) +#define CFN_PLAY_REPEAT(p) ((p)->all.param) #define CFN_PLAY_REPEAT_MUL 10 -#define CFN_GVAR_MODE(p) ((p)->param) +#define CFN_GVAR_NUMBER(p) ((p)->gvar.param) +#define CFN_GVAR_MODE(p) ((p)->gvar.mode) #define CFN_PARAM(p) ((p)->value) -#define CFN_RESET(p) ((p)->active = 0, CFN_PARAM(p) = 0) +#define CFN_RESET(p) ((p)->all.active = 0, CFN_PARAM(p) = 0) #endif enum TelemetryUnit { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index f8a4eb4f5..c3e19f4fb 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -3045,10 +3045,10 @@ uint8_t fnSwitchDuration[NUM_CFN] = { 0 }; inline void playCustomFunctionFile(CustomFnData *sd, uint8_t id) { - char filename[sizeof(SOUNDS_PATH)+sizeof(sd->param.name)+sizeof(SOUNDS_EXT)] = SOUNDS_PATH "/"; + char filename[sizeof(SOUNDS_PATH)+sizeof(sd->play.name)+sizeof(SOUNDS_EXT)] = SOUNDS_PATH "/"; strncpy(filename+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - strncpy(filename+sizeof(SOUNDS_PATH), sd->param.name, sizeof(sd->param.name)); - filename[sizeof(SOUNDS_PATH)+sizeof(sd->param.name)] = '\0'; + strncpy(filename+sizeof(SOUNDS_PATH), sd->play.name, sizeof(sd->play.name)); + filename[sizeof(SOUNDS_PATH)+sizeof(sd->play.name)] = '\0'; strcat(filename+sizeof(SOUNDS_PATH), SOUNDS_EXT); PLAY_FILE(filename, sd->func==FUNC_BACKGND_MUSIC ? PLAY_BACKGROUND : 0, id); } @@ -3078,7 +3078,7 @@ void evalFunctions() for (uint8_t i=0; iswtch; + int8_t swtch = CFN_SWITCH(sd); if (swtch) { MASK_CFN_TYPE switch_mask = ((MASK_CFN_TYPE)1 << i); @@ -3146,29 +3146,29 @@ void evalFunctions() #if defined(GVARS) case FUNC_ADJUST_GVAR: if (CFN_GVAR_MODE(sd) == 0) { - SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, CFN_PARAM(sd), s_perout_flight_phase); + SET_GVAR(CFN_GVAR_NUMBER(sd), CFN_PARAM(sd), s_perout_flight_phase); } else if (CFN_GVAR_MODE(sd) == 2) { - SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, GVAR_VALUE(CFN_PARAM(sd), s_perout_flight_phase), s_perout_flight_phase); + SET_GVAR(CFN_GVAR_NUMBER(sd), GVAR_VALUE(CFN_PARAM(sd), s_perout_flight_phase), s_perout_flight_phase); } else if (CFN_GVAR_MODE(sd) == 3) { if (!(activeFnSwitches & switch_mask)) { - SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, GVAR_VALUE(CFN_FUNC(sd)-FUNC_ADJUST_GV1, getGVarFlightPhase(s_perout_flight_phase, CFN_FUNC(sd)-FUNC_ADJUST_GV1)) + (CFN_PARAM(sd) ? +1 : -1), s_perout_flight_phase); + SET_GVAR(CFN_GVAR_NUMBER(sd), GVAR_VALUE(CFN_GVAR_NUMBER(sd), getGVarFlightPhase(s_perout_flight_phase, CFN_GVAR_NUMBER(sd))) + (CFN_PARAM(sd) ? +1 : -1), s_perout_flight_phase); } } else if (CFN_PARAM(sd) >= MIXSRC_TrimRud && CFN_PARAM(sd) <= MIXSRC_TrimAil) { - trimGvar[CFN_PARAM(sd)-MIXSRC_TrimRud] = CFN_FUNC(sd)-FUNC_ADJUST_GV1; + trimGvar[CFN_PARAM(sd)-MIXSRC_TrimRud] = CFN_GVAR_NUMBER(sd); } #if defined(ROTARY_ENCODERS) else if (CFN_PARAM(sd) >= MIXSRC_REa && CFN_PARAM(sd) < MIXSRC_TrimRud) { int8_t scroll = rePreviousValues[CFN_PARAM(sd)-MIXSRC_REa] - (g_rotenc[CFN_PARAM(sd)-MIXSRC_REa] / ROTARY_ENCODER_GRANULARITY); if (scroll) { - SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, GVAR_VALUE(CFN_FUNC(sd)-FUNC_ADJUST_GV1, getGVarFlightPhase(s_perout_flight_phase, CFN_FUNC(sd)-FUNC_ADJUST_GV1)) + scroll, s_perout_flight_phase); + SET_GVAR(CFN_GVAR_NUMBER(sd), GVAR_VALUE(CFN_GVAR_NUMBER(sd), getGVarFlightPhase(s_perout_flight_phase, CFN_GVAR_NUMBER(sd))) + scroll, s_perout_flight_phase); } } #endif else { - SET_GVAR(CFN_FUNC(sd)-FUNC_ADJUST_GV1, limit((getvalue_t)-1250, getValue(CFN_PARAM(sd)), (getvalue_t)1250) / 10, s_perout_flight_phase); + SET_GVAR(CFN_GVAR_NUMBER(sd), limit((getvalue_t)-1250, getValue(CFN_PARAM(sd)), (getvalue_t)1250) / 10, s_perout_flight_phase); } break; #endif From b18a642de662d9b3a87d808fc9fa70771094237d Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 4 Feb 2014 10:48:48 +0100 Subject: [PATCH 26/73] Test Companion automatic compilation --- CREDITS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CREDITS.txt b/CREDITS.txt index c9f3d46c8..4d36d8d36 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -19,3 +19,4 @@ Grootwitbaas - 9xforums.com (mac) Adrian Amberg (splash screens) Wallaguest1 - 9xforums.com (splash screens) HC1969 - 9xforums.com (splash screens) + From 49bcb3b0fc2a95dd059c6e31276f52571836070b Mon Sep 17 00:00:00 2001 From: mhotar Date: Tue, 4 Feb 2014 13:01:59 +0100 Subject: [PATCH 27/73] Centered strings #584 --- radio/src/translations/cz.h.txt | 6 +++--- radio/src/translations/de.h.txt | 8 ++++---- radio/src/translations/en.h | 4 ++-- radio/src/translations/es.h.txt | 10 +++++----- radio/src/translations/it.h.txt | 8 ++++---- radio/src/translations/pl.h.txt | 4 ++-- radio/src/translations/pt.h.txt | 6 +++--- radio/src/translations/se.h.txt | 8 ++++---- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index b1d47082f..53c5f7d5c 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -490,9 +490,9 @@ #define TR_CAL "Kal." #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER "\007" TR_ENTER " = START" -#define TR_SETMIDPOINT TR(CENTER "\001Nastav páky na střed", CENTER "\002Nastav páky na střed") -#define TR_MOVESTICKSPOTS TR(CENTER "\004Hýbej pákami/poty", "\007Hýbej pákami i potenciometry") +#define TR_MENUTOSTART CENTER "\010" TR_ENTER " = START" +#define TR_SETMIDPOINT TR(CENTER "\003Nastav páky na střed", CENTER "\004Nastav páky na střed") +#define TR_MOVESTICKSPOTS TR(CENTER "\005Hýbej pákami/poty", "\010Hýbej pákami i potenciometry") #define TR_RXBATT "Rx Bat.:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 84e817122..9db35f2a1 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -386,7 +386,7 @@ #define TR_POPUPS TR_ENTER"\010[EXIT]" #define OFS_EXIT sizeof(TR_ENTER) -#define TR_MENUWHENDONE CENTER"\006"TR_ENTER" > Weiter" +#define TR_MENUWHENDONE CENTER"\010"TR_ENTER" > Weiter" #define TR_FREE "frei" #define TR_DELETEMODEL "Modell l\203schen?" #define TR_COPYINGMODEL "Kopiere Modell" @@ -490,9 +490,9 @@ #define TR_CAL "Kal." #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER"\006"TR_ENTER" zum Start" -#define TR_SETMIDPOINT CENTER"Sticks+Potis auf Mitte" -#define TR_MOVESTICKSPOTS CENTER"Sticks+Potis bewegen" +#define TR_MENUTOSTART CENTER"\007"TR_ENTER" zum Start" +#define TR_SETMIDPOINT CENTER"\002Sticks+Potis auf Mitte" +#define TR_MOVESTICKSPOTS CENTER"\003Sticks+Potis bewegen" #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index b7cf30874..3ef49c4a2 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -490,8 +490,8 @@ #define TR_CAL "Cal" #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER "\006" TR_ENTER " TO START" -#define TR_SETMIDPOINT TR(CENTER "\003SET STICKS MIDPOINT",CENTER "\003CENTER STICKS/SLIDERS") +#define TR_MENUTOSTART CENTER "\010" TR_ENTER " TO START" +#define TR_SETMIDPOINT TR(CENTER "\004SET STICKS MIDPOINT",CENTER "\004CENTER STICKS/SLIDERS") #define TR_MOVESTICKSPOTS CENTER "\006MOVE STICKS/POTS" #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 33773f30b..b16454824 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -386,7 +386,7 @@ #define TR_POPUPS TR_ENTER "\010[SALIR]" #define OFS_EXIT sizeof(TR_ENTER) -#define TR_MENUWHENDONE CENTER "\006" TR_ENTER "AL ACABAR " +#define TR_MENUWHENDONE CENTER "\007" TR_ENTER " AL ACABAR" #define TR_FREE "libre" #define TR_DELETEMODEL "BORRAR MODELO" #define TR_COPYINGMODEL "Copiando modelo.." @@ -490,9 +490,9 @@ #define TR_CAL "Cal" #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER "\006" TR_ENTER "EMPEZAR" -#define TR_SETMIDPOINT CENTER "\003STICKS AL CENTRO" -#define TR_MOVESTICKSPOTS CENTER "\006MOVER STICKS/POTS" +#define TR_MENUTOSTART CENTER "\010" TR_ENTER " EMPEZAR" +#define TR_SETMIDPOINT TR(CENTER "\007STICKS AL CENTRO",CENTER "\010STICKS AL CENTRO") +#define TR_MOVESTICKSPOTS TR(CENTER "\005MOVER STICKS/POTS",CENTER "\006MOVER STICKS/POTS") #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 @@ -521,7 +521,7 @@ #define TR_EEPROMLOWMEM "EEPROM mem.baja" #define TR_ALERT "\016ALERTA" #define TR_PRESSANYKEYTOSKIP "Pulsar tecla omitir" -#define TR_THROTTLENOTIDLE "Aceler.Activado" +#define TR_THROTTLENOTIDLE "Aceler. Activado" #define TR_ALARMSDISABLED "Alarmas Desact." #define TR_PRESSANYKEY TR("\010Pulsa una Tecla", "Pulsa una Tecla") #define TR_BADEEPROMDATA "Datos EEprom mal" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 156a878fa..87f564c05 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -386,7 +386,7 @@ #define TR_POPUPS TR_ENTER"\004[EXIT]" #define OFS_EXIT sizeof(TR_ENTER) -#define TR_MENUWHENDONE CENTER"\006"TR_ENTER" Conferma" +#define TR_MENUWHENDONE CENTER"\007"TR_ENTER" Conferma" #define TR_FREE " Disp." #define TR_DELETEMODEL "Elimina modello?" #define TR_COPYINGMODEL "Copia in corso.." @@ -490,9 +490,9 @@ #define TR_CAL "Cal" #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER"\006" TR_ENTER " per Cal." -#define TR_SETMIDPOINT CENTER"\011SETTA CENTRO" -#define TR_MOVESTICKSPOTS CENTER"\006MUOVI STICK/POT" +#define TR_MENUTOSTART CENTER"\011" TR_ENTER " per Cal." +#define TR_SETMIDPOINT CENTER"\012SETTA CENTRO" +#define TR_MOVESTICKSPOTS CENTER"\010MUOVI STICK/POT" #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 327e53e04..21b0e641d 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -386,7 +386,7 @@ #define TR_POPUPS TR_ENTER"\010[EXIT]" #define OFS_EXIT sizeof(TR_ENTER) -#define TR_MENUWHENDONE CENTER "\007"TR_ENTER" > DALEJ" +#define TR_MENUWHENDONE CENTER "\011"TR_ENTER" > DALEJ" #define TR_FREE TR("wolne:", "wolne") #define TR_DELETEMODEL "SKASUJ MODEL" #define TR_COPYINGMODEL "Kopiuj model.." @@ -490,7 +490,7 @@ #define TR_CAL "Kal." #define TR_VTRIM "Trymer- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER "\007" TR_ENTER " = START" +#define TR_MENUTOSTART CENTER "\011" TR_ENTER " = START" #define TR_SETMIDPOINT TR(CENTER "\001Ustaw drążki/potencj na środku","\005Ustaw drązki/potencj na środku") #define TR_MOVESTICKSPOTS TR(CENTER "\004Poruszaj drążkami i potenc.","\010Poruszaj drążkami i potenc.") #define TR_RXBATT "Rx Bat.:" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index f3aa2e7fd..01c0545f3 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -490,9 +490,9 @@ #define TR_CAL "Cal" #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER"\006" TR_ENTER " INICIAR" -#define TR_SETMIDPOINT CENTER"\005CENTRAR STICK/POT" -#define TR_MOVESTICKSPOTS CENTER"\005MOVER STICKS/POTs" +#define TR_MENUTOSTART CENTER"\011" TR_ENTER " INICIAR" +#define TR_SETMIDPOINT TR(CENTER"\005CENTRAR STICK/POT",CENTER"\006CENTRAR STICK/POT") +#define TR_MOVESTICKSPOTS TR(CENTER"\005MOVER STICKS/POTs",CENTER"\006MOVER STICKS/POTs") #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 6532d5489..8aa956dc6 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -386,7 +386,7 @@ #define TR_POPUPS TR_ENTER"\010[EXIT]" #define OFS_EXIT sizeof(TR_ENTER) -#define TR_MENUWHENDONE CENTER "\006" TR_ENTER " Avslutar " +#define TR_MENUWHENDONE CENTER "\011" TR_ENTER " Avslutar " #define TR_FREE "kvar" #define TR_DELETEMODEL "Radera Modell" #define TR_COPYINGMODEL "Kopierar Modell " @@ -490,9 +490,9 @@ #define TR_CAL "Kalib." #define TR_VTRIM "Trim- +" #define TR_BG "BG:" -#define TR_MENUTOSTART CENTER "\006" TR_ENTER " Startar " -#define TR_SETMIDPOINT CENTER "\010Centrera Allt" -#define TR_MOVESTICKSPOTS CENTER "\004Rör Rattar/Spakar" +#define TR_MENUTOSTART CENTER "\011" TR_ENTER " Startar " +#define TR_SETMIDPOINT TR(CENTER "\012Centrera Allt",CENTER "\013Centrera Allt") +#define TR_MOVESTICKSPOTS TR(CENTER "\005Rör Rattar/Spakar",CENTER "\006Rör Rattar/Spakar") #define TR_RXBATT "Rx Batt:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 From 0a45a71ea087f7c55ffcdeb5c199a470c30fb31b Mon Sep 17 00:00:00 2001 From: mhotar Date: Tue, 4 Feb 2014 14:43:16 +0100 Subject: [PATCH 28/73] merge ate PL,FR,ES translations files --- radio/src/translations/es.h.txt | 1558 +++++++++++++++---------------- radio/src/translations/fr.h.txt | 1558 +++++++++++++++---------------- radio/src/translations/pl.h.txt | 8 +- 3 files changed, 1562 insertions(+), 1562 deletions(-) diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index d315aaa6a..d1c923ea7 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1,779 +1,779 @@ -/* - * Authors (alphabetical order) - * - Bertrand Songis - * - Bernet Andre - * - Jose Moreno - * - Kjell Kernen - * - Martin Hotar - * - Romolo Manfredini - * - * opentx is based on code named - * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, - * er9x by Erez Raviv: http://code.google.com/p/er9x/, - * and the original (and ongoing) project by - * Thomas Husterer, th9x: http://code.google.com/p/th9x/ - * - * 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. - * - * - * - * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! - * - * In order to make translations easier es.h.txt is parsed and national - * characters are replaced by bitmap codes. The result is es.h. - * - * See translate.py in the util catalog for the list of character codes - * - * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! - */ - /* Formatting octal codes available in TR_ strings: - * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline - * \001 to \035 -extended spacing (value * FW/2) - * \0 -ends actual string - */ - -// NON ZERO TERMINATED STRINGS -#define LEN_OFFON "\003" -#define TR_OFFON "OFF""ON\0" - -#define LEN_MMMINV "\003" -#define TR_MMMINV "---""INV" - -#define LEN_NCHANNELS "\004" -#define TR_NCHANNELS "\0014CH\0016CH\0018CH10CH12CH14CH16CH" - -#define LEN_VBEEPMODE "\005" -#define TR_VBEEPMODE "Mudo ""Alarm""NoKey""Todo " - -#define LEN_VBEEPLEN "\005" -#define TR_VBEEPLEN "0====""=0===""==0==""===0=""====0" - -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "No REaREb" - -#define LEN_VBLMODE "\004" -#define TR_VBLMODE "OFF ""Keys""Stks""Both""ON\0" - -#define LEN_TRNMODE "\003" -#define TR_TRNMODE "OFF"" +="" :=" - -#define LEN_TRNCHN "\003" -#define TR_TRNCHN "CH1CH2CH3CH4" - -#define LEN_UART3MODES "\017" -#define TR_UART3MODES "OFF\0 ""S-Port Mirror\0 ""Debug\0 " - -#define LEN_POTTYPES "\017" -#define TR_POTTYPES "Pot\0 ""Multipos Switch" - -#define LEN_DATETIME "\005" -#define TR_DATETIME "DATA:""HORA:" - -#define LEN_VLCD "\006" -#define TR_VLCD "NormalOptrex" - -#define LEN_COUNTRYCODES TR("\002", "\007") -#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0") - -#define LEN_VTRIMINC TR("\006", "\013") -#define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") - -#define LEN_VBEEPCOUNTDOWN "\006" -#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voz\0" - -#define LEN_RETA123 "\001" - -#if defined(PCBGRUVIN9X) - #if ROTARY_ENCODERS > 2 - #define TR_RETA123 "RETA123abcd" - #else - #define TR_RETA123 "RETA123ab" - #endif -#elif defined(PCBTARANIS) - #define TR_RETA123 "RETA12LR" -#else - #define TR_RETA123 "RETA123" -#endif - -#define LEN_VPROTOS "\006" - -#if defined(PXX) - #define TR_PXX "PXX\0 " -#elif defined(DSM2) || defined(IRPROTOS) - #define TR_PXX "[PXX]\0" -#else - #define TR_PXX -#endif - -#if defined(DSM2) - #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " -#elif defined(IRPROTOS) - #define TR_DSM2 "[LP45]""[DSM2]""[DSMX]" -#else - #define TR_DSM2 -#endif - -#if defined(IRPROTOS) - #define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0" -#else - #define TR_IRPROTOS -#endif - -#if defined(CPUARM) - #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif - -#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS - -#define LEN_POSNEG "\003" -#define TR_POSNEG "POS""NEG" - -#define LEN_VCURVEFUNC "\003" -#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|" - -#define LEN_VMLTPX "\010" -#define TR_VMLTPX "A\201adir ""Multipl.""Cambiar\0" - -#define LEN_VMLTPX2 "\002" -#define TR_VMLTPX2 "+=""*="":=" - -#define LEN_VMIXTRIMS "\003" -#define TR_VMIXTRIMS "OFF""ON\0""Dir""Ele""Ace""Ale" - -#define LEN_VCSWFUNC "\005" -#define TR_VCSWFUNC "---\0 ""a{x\0 ""a>x\0 ""ax""|a|b\0 ""a" - -#define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh" - -#define LEN_VOLTSRC "\003" -#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" - -#define LEN_VARIOSRC "\005" -#if defined(FRSKY_SPORT) - #define TR_VARIOSRC "Vario""A1\0 ""A2\0" -#else - #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" -#endif - -#define LEN_VSCREEN "\004" -#define TR_VSCREEN "Nums""Bars" - -#define LEN_GPSFORMAT "\004" -#define TR_GPSFORMAT "HMS NMEA" - -#define LEN2_VTEMPLATES 13 -#define LEN_VTEMPLATES "\015" -#define TR_VTEMPLATES "Elim Mezcla\0\0""Simple 4-CH \0""Anular Motor\0""Cola en V \0""Elevon\\Delta\0""eCCPM \0""Heli Setup \0""Servo Test \0" - -#define LEN_VSWASHTYPE "\004" -#define TR_VSWASHTYPE "---\0""120\0""120X""140\0""90\0" - -#define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu""Salir""Abajo""Arrib""Dcha.""Izqd.", " Menu""Salir""Enter""Pgna.""Mas ""Menos") - -#define LEN_VRENCODERS "\003" -#define TR_VRENCODERS "REa""REb" - -#define LEN_VSWITCHES "\003" -#define LEN_VSRCRAW "\004" - -#if defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 " - #define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 " -#elif defined(EXTRA_3POS) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 " - #define TR_SW_VSRCRAW "3P1\0""3P2\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2""ID3""ID4""ID5" -#else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" -#endif - -#if defined(CPUARM) - #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW" -#elif defined(PCBGRUVIN9X) || defined(CPUM2561) || defined(CPUM128) - #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF" -#else - #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC" -#endif - -#if defined(PCBTARANIS) - #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "Uno" -#else - #define TR_VSWITCHES TR_9X_3POS_SWITCHES "ACE""DIR""ELE""ALE""GEA""TRN" TR_CUSTOMSW "Uno" -#endif - -#if defined(PCBSKY9X) - #define TR_ROTARY_ENCODERS_VSRCRAW "REnc" -#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2 - #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd " -#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2 - #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb " -#else - #define TR_ROTARY_ENCODERS_VSRCRAW -#endif - -#if defined(HELI) - #define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3" -#else - #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" -#endif - -#define TR_VSRCRAW "---\0""Dir\0""Ele\0""Thr\0""Ale\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "MAX\0" TR_CYC_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" TR_SW_VSRCRAW - -#define LEN_VTMRMODES "\003" -#define TR_VTMRMODES "OFF""ABS""THs""TH%""THt" - -#define LEN_VTRAINERMODES "\006" -#define TR_VTRAINERMODES "Master""Esclav" - -#define LEN_VFAILSAFE "\011" -#define TR_VFAILSAFE "Guardar\0 ""Adaptar\0 ""Sin pulsos" - -#if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Estabilizar""Acrobat. ""Alt Hold ""Auto ""Guiado ""Loiter ""RTL ""Circulo ""Pos Hold ""Tierra ""OF Loiter""Toy A ""Toy M ""INVALIDO " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circulo ""Estabilizar ""Entrenamiento""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guiado ""Inicialisando""INVALID " -#endif - -// ZERO TERMINATED STRINGS -#define INDENT "\001" -#define LEN_INDENT 1 -#define INDENT_WIDTH (FW/2) - -#if defined(PCBTARANIS) - #define TR_ENTER "[ENTER]" -#else - #define TR_ENTER "[MENU]" -#endif - -#define TR_POPUPS TR_ENTER "\010[SALIR]" -#define OFS_EXIT sizeof(TR_ENTER) - -#define TR_MENUWHENDONE CENTER "\007" TR_ENTER " AL ACABAR" -#define TR_FREE "libre" -#define TR_DELETEMODEL "BORRAR MODELO" -#define TR_COPYINGMODEL "Copiando modelo.." -#define TR_MOVINGMODEL "Mover modelo..." -#define TR_LOADINGMODEL "Cargar modelo..." -#define TR_NAME "Nom." -#define TR_MODELNAME "Nom.Modelo" -#define TR_PHASENAME "Nom.Fase " -#define TR_MIXNAME "Nom.Mezcla" -#define TR_INPUTNAME "Input Name" -#if defined(PCBTARANIS) - #define TR_EXPONAME "Line Name" -#else - #define TR_EXPONAME "Nom. Expo" -#endif -#define TR_BITMAP "Imagen Modelo" -#define TR_TIMER TR("Reloj","Reloj ") -#define TR_ELIMITS TR("E.Limite","Ampliar Limites") -#define TR_ETRIMS TR("E.Trims","Ampliar Trims") -#define TR_TRIMINC "Paso Trim" -#define TR_TTRACE TR("Fuente-A","Fuente Acelerad") -#define TR_TTRIM TR("Trim-A","Trim Acelerad") -#define TR_BEEPCTR TR("Ctr Beep","Center Beep") -#define TR_PROTO TR(INDENT"Proto",INDENT"Protocol") -#define TR_PPMFRAME "Trama PPM" -#define TR_MS "ms" -#define TR_SWITCH "Interr" -#define TR_TRIMS "Trims" -#define TR_FADEIN "Inicio" -#define TR_FADEOUT "Final" -#define TR_DEFAULT "(defecto)" -#define TR_CHECKTRIMS CENTER "\006Check\012Trims" -#define OFS_CHECKTRIMS CENTER_OFS+(9*FW) -#define TR_SWASHTYPE "Tipo ciclico" -#define TR_COLLECTIVE TR("Colectivo","Fuente Colectivo") -#define TR_SWASHRING "Ciclico" -#define TR_ELEDIRECTION TR("ELE Direccion","Largo cyc. direccion") -#define TR_AILDIRECTION TR("AIL Direccion","Lateral cyc. direccion") -#define TR_COLDIRECTION TR("PIT Direccion","Coll. pitch direccion") -#define TR_MODE INDENT"Modo" -#define TR_NOFREEEXPO "No expo libre!" -#define TR_NOFREEMIXER "No mezcla lib!" -#define TR_INSERTMIX "INSERTAR MIX" -#define TR_EDITMIX "EDITAR MIX " -#define TR_SOURCE INDENT"Fuente" -#define TR_WEIGHT "Cantidad" -#define TR_EXPO TR("Expo","Exponencial") -#define TR_SIDE "Lado" -#define TR_DIFFERENTIAL "Diferenc" -#define TR_OFFSET INDENT"Offset" -#define TR_TRIM "Trim" -#define TR_DREX "DRex" -#define TR_CURVE "Curva" -#define TR_FLMODE TR("Modo","Modos") -#define TR_MIXWARNING "Aviso" -#define TR_OFF "OFF" -#define TR_MULTPX "Multpx" -#define TR_DELAYDOWN "Delay Dn" -#define TR_DELAYUP "Delay Up" -#define TR_SLOWDOWN "Slow Dn" -#define TR_SLOWUP "Slow Up" -#define TR_MIXER "Mezclas" -#define TR_CV "CV" -#define TR_GV "GV" -#define TR_ACHANNEL "A\004canal" -#define TR_RANGE INDENT"Alcance" -#define TR_BAR "Bar" -#define TR_ALARM INDENT"Alarma" -#define TR_USRDATA "UsrData" -#define TR_BLADES INDENT"Palas" -#define TR_SCREEN "Pantalla" -#define TR_SOUND_LABEL "Sonido" -#define TR_LENGTH INDENT"Longitud" -#define TR_SPKRPITCH INDENT"Tono" -#define TR_HAPTIC_LABEL "Tactil" -#define TR_HAPTICSTRENGTH INDENT"Intensidad" -#define TR_CONTRAST "Contraste" -#define TR_ALARMS_LABEL "Alarmas" -#define TR_BATTERY_RANGE TR("Rango bateria","Rango medidor Bater") -#define TR_BATTERYWARNING INDENT"Bateria Baja" -#define TR_INACTIVITYALARM INDENT"Inactividad" -#define TR_MEMORYWARNING INDENT"Memoria Baja" -#define TR_ALARMWARNING INDENT"Sin Sonido" -#define TR_RENAVIG "RotEnc Navig" -#define TR_THROTTLEREVERSE TR("Invert_Acel", "Invertir Acel.") -#define TR_MINUTEBEEP TR(INDENT"Minuto",INDENT"Cada Minuto") -#define TR_BEEPCOUNTDOWN INDENT"Cuentaatras" -#define TR_PERSISTENT TR(INDENT"Persist.",INDENT"Persistente") -#define TR_BACKLIGHT_LABEL "Luz Fondo" -#define TR_BLDELAY INDENT"Duracion" -#define TR_BLONBRIGHTNESS INDENT"MAS Brillo" -#define TR_BLOFFBRIGHTNESS INDENT"MENOS Brillo" -#define TR_SPLASHSCREEN "Ptalla.inicio" -#define TR_THROTTLEWARNING TR("Aviso-A", "Aviso Acelerador") -#define TR_SWITCHWARNING TR("Aviso-I", "Aviso Intrptor") -#define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora") -#define TR_RXCHANNELORD TR("Rx Orden canal", "Orden habitual canales") -#define TR_SLAVE "Esclavo" -#define TR_MODESRC "Modo\006% Fuente" -#define TR_MULTIPLIER "Multiplicar" -#define TR_CAL "Cal" -#define TR_VTRIM "Trim- +" -#define TR_BG "BG:" -#define TR_MENUTOSTART CENTER "\010" TR_ENTER " EMPEZAR" -#define TR_SETMIDPOINT TR(CENTER "\007STICKS AL CENTRO",CENTER "\010STICKS AL CENTRO") -#define TR_MOVESTICKSPOTS TR(CENTER "\005MOVER STICKS/POTS",CENTER "\006MOVER STICKS/POTS") -#define TR_RXBATT "Rx Batt:" -#define TR_TXnRX "Tx:\0Rx:" -#define OFS_RX 4 -#define TR_ACCEL "Acc:" -#define TR_NODATA CENTER "SIN DATOS" -#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" -#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" -#define STR_US (STR_TMR1LATMAXUS+13) -#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" - -#if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max" - #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Pila LIbre\037\124b" -#endif - -#define TR_MENUTORESET CENTER TR_ENTER "Resetear" -#define TR_PPM "PPM" -#define TR_CH "CH" -#define TR_MODEL "MODELO" -#define TR_FP "FM" -#define TR_MIX "MIX" -#define TR_EEPROMLOWMEM "EEPROM mem.baja" -#define TR_ALERT "\016ALERTA" -#define TR_PRESSANYKEYTOSKIP "Pulsar tecla omitir" -#define TR_THROTTLENOTIDLE "Aceler. Activado" -#define TR_ALARMSDISABLED "Alarmas Desact." -#define TR_PRESSANYKEY TR("\010Pulsa una Tecla", "Pulsa una Tecla") -#define TR_BADEEPROMDATA "Datos EEprom mal" -#define TR_EEPROMFORMATTING "Formateo EEPROM" -#define TR_EEPROMOVERFLOW "Desborde EEPROM" -#define TR_MENURADIOSETUP "CONFIGURACION" -#define TR_MENUDATEANDTIME "FECHA Y HORA" -#define TR_MENUTRAINER "APRENDIZ" -#define TR_MENUVERSION "VERSION" -#define TR_MENUDIAG TR("INTERUPTS", "TEST INTERUP.") -#define TR_MENUANA TR("ANAS", "ENTRADAS ANALOG") -#define TR_MENUCALIBRATION "CALIBRACION" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" -#define TR_MENUMODELSEL TR("MODELSEL", "SELECCION MODELO") -#define TR_MENUSETUP TR("CONF.", "CONF.MODELO") -#define TR_MENUFLIGHTPHASE "MODO VUELO" -#define TR_MENUFLIGHTPHASES "MODOS VUELO" -#define TR_MENUHELISETUP "CONF. HELI" - - -// Alignment - -#if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... - #define TR_MENUINPUTS "STICKS" - #define TR_MENULIMITS "SERVOS" -#else - #define TR_MENUINPUTS "DR/EXPO" - #define TR_MENULIMITS "LIMITES" -#endif - -#define TR_MENUCURVES "CURVAS" -#define TR_MENUCURVE "CURVA" -#define TR_MENUCUSTOMSWITCH "AJTE.INTERUP." -#define TR_MENUCUSTOMSWITCHES "AJTE.INTERUPTS." -#define TR_MENUCUSTOMFUNC "AJTE. FUNCIONES" -#define TR_MENUTELEMETRY "TELEMETRIA" -#define TR_MENUTEMPLATES "PLANTILLAS" -#define TR_MENUSTAT "STATS" -#define TR_MENUDEBUG "DEBUG" -#define TR_RXNUM TR("RxNum", INDENT"Receptor No.") -#define TR_SYNCMENU "Sync "TR_ENTER -#define TR_LIMIT INDENT"Limite" -#define TR_MINRSSI "Min Rssi" -#define TR_LATITUDE "Latitud" -#define TR_LONGITUDE "Longitud" -#define TR_GPSCOORD TR("GPS Coords", "GPS formato coordenadas") -#define TR_VARIO TR("Vario", "Variometro") -#define TR_SHUTDOWN "APAGANDO" -#define TR_BATT_CALIB "Calib.bateria" -#define TR_CURRENT_CALIB "Calib. actual" -#define TR_VOLTAGE INDENT"Voltaje" -#define TR_CURRENT INDENT"Actual" -#define TR_SELECT_MODEL "Selec Modelo" -#define TR_CREATE_MODEL "Crear Modelo" -#define TR_COPY_MODEL "Copiar Modelo" -#define TR_MOVE_MODEL "Mover Modelo" -#define TR_BACKUP_MODEL "Copia Sgdad Mod." -#define TR_DELETE_MODEL "Borrar Modelo" -#define TR_RESTORE_MODEL "Restaurar Modelo" -#define TR_SDCARD_ERROR "SDCARD Error" -#define TR_NO_SDCARD "No SDCARD" -#define TR_INCOMPATIBLE "Incompatible" -#define TR_WARNING "AVISO" -#define TR_EEPROMWARN "EEPROM" -#define TR_THROTTLEWARN "ACELERADOR" -#define TR_ALARMSWARN "ALARMAS" -#define TR_SWITCHWARN "INTERPTOR" -#define TR_INVERT_THR TR("Invertir Acel?", "Invertir Acel.?") -#define TR_SPEAKER_VOLUME INDENT "Volumen" -#define TR_LCD "LCD" -#define TR_BRIGHTNESS INDENT "Brillo" -#define TR_CPU_TEMP "CPU Temp.\016>" -#define TR_CPU_CURRENT "Actual\022>" -#define TR_CPU_MAH "Consumo" -#define TR_COPROC "CoProc." -#define TR_COPROC_TEMP "MB Temp. \016>" -#define TR_CAPAWARNING INDENT "Capacidad Baja" -#define TR_TEMPWARNING INDENT "Sobrecalent" -#define TR_FUNC "Func" -#define TR_V1 "V1" -#define TR_V2 "V2" -#define TR_DURATION "Duracion" -#define TR_DELAY "Atraso" -#define TR_SD_CARD "SD CARD" -#define TR_SDHC_CARD "SD-HC CARD" -#define TR_NO_SOUNDS_ON_SD "Sin sonidos en SD" -#define TR_NO_MODELS_ON_SD "Sin Modelos en SD" -#define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD" -#define TR_PLAY_FILE "Play" -#define TR_DELETE_FILE "Borrar" -#define TR_COPY_FILE "Copiar" -#define TR_RENAME_FILE "Renombrar" -#define TR_ASSIGN_BITMAP "Asignar Imagen" -#define TR_REMOVED "Borrado" -#define TR_SD_INFO "Informacion" -#define TR_SD_FORMAT "Formatear" -#define TR_NA "N/A" -#define TR_HARDWARE "COMPONENTES" -#define TR_FORMATTING "Formateando.." -#define TR_TEMP_CALIB "Temp. Calib" -#define TR_TIME "Hora" -#define TR_BAUDRATE "BT Baudrate" -#define TR_SD_INFO_TITLE "SD INFO" -#define TR_SD_TYPE "Tipo:" -#define TR_SD_SPEED "Velocidad:" -#define TR_SD_SECTORS "Sectores:" -#define TR_SD_SIZE "Tamaño:" -#define TR_TYPE "Tipo" -#define TR_GLOBAL_VARS "Global Variables" -#define TR_GLOBAL_VAR "Global Variable" -#define TR_MENUGLOBALVARS "GLOBAL VARIABLES" -#define TR_OWN "Propio" -#define TR_DATE "Fecha" -#define TR_ROTARY_ENCODER "R.Encs" -#define TR_CHANNELS_MONITOR "MONITOR CANALES" -#define TR_INTERNALRF "Interna RF" -#define TR_EXTERNALRF "Externa RF" -#define TR_FAILSAFE INDENT"Modo sgdad." -#define TR_FAILSAFESET "AJUSTES SGDAD." -#define TR_COUNTRYCODE "Codigo Pais" -#define TR_VOICELANG "Idioma voces" -#define TR_UNITSSYSTEM "Unidades" -#define TR_EDIT "Editar" -#define TR_INSERT_BEFORE "Insertar antes" -#define TR_INSERT_AFTER "Insertar despues" -#define TR_COPY "Copiar" -#define TR_MOVE "Mover" -#define TR_PASTE "Pegar" -#define TR_DELETE "Borrar" -#define TR_INSERT "Insertar" -#define TR_RESET_FLIGHT "Reset Vuelo" -#define TR_RESET_TIMER1 "Reset Reloj1" -#define TR_RESET_TIMER2 "Reset Reloj2" -#define TR_RESET_TELEMETRY "Reset Telemetria" -#define TR_STATISTICS "Estadisticas" -#define TR_ABOUT_US "Nosotros" -#define TR_AND_SWITCH "AND Inter." -#define TR_CF "CF" -#define TR_SPEAKER INDENT"Altavoz" -#define TR_BUZZER INDENT"Zumbador" -#define TR_BYTES "bytes" -#define TR_MODULE_BIND "[Enlace]" -#define TR_MODULE_RANGE "[Limites]" -#define TR_RESET_BTN "[Reset]" -#define TR_SET "[Ajuste]" -#define TR_TRAINER "Aprendiz" -#define TR_ANTENNAPROBLEM CENTER "¡Problema antena TX!" -#define TR_MODELIDUSED TR("ID en uso", "ID modelo en uso") -#define TR_MODULE INDENT "Modulo" -#define TR_CHANNELRANGE INDENT "Gama de canales" -#define TR_LOWALARM INDENT "Alarma baja" -#define TR_CRITICALALARM INDENT "Alarma Critica" -#define TR_PERSISTENT_MAH INDENT "Valor mAh" -#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") -#define TR_UART3MODE "Serial port" -#define TR_POT1TYPE "S1 Type" -#define TR_POT2TYPE "S2 Type" - -#if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODO" - #define TR_MAVLINK_CUR_MODE "Modo actual" - #define TR_MAVLINK_ARMED "Armad0" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Estado Bateria de vuelo" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Carrera" - #define TR_MAVLINK_HEADING "Titulo" - #define TR_MAVLINK_BEARING "Soporte" - #define TR_MAVLINK_ALTITUDE "Altitud" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif - -// Taranis column headers -#define TR_PHASES_HEADERS { " Nombre ", " Interrup.", " Trims ", " Aparecer ", " Desparecer " } -#define TR_LIMITS_HEADERS { " Nombre ", " Compensacion", " Min ", " Max ", " Direccion ", " Curve ", " Centrado PPM ", " Simetrica " } -#define TR_CSW_HEADERS { " Funcion ", " V1 ", " V2 ", " AND Interrup. ", " Duracion ", " Retardo " } - -//Taranis About screen -#define TR_ABOUTUS "Nosotros" - -#define TR_ABOUT_OPENTX_1 "OpenTX es open source, no-" -#define TR_ABOUT_OPENTX_2 "comercial y viene sin " -#define TR_ABOUT_OPENTX_3 "garantias. Fue desarrollado" -#define TR_ABOUT_OPENTX_4 "libremente. Ayudas a traves" -#define TR_ABOUT_OPENTX_5 "de donaciones son bienvenidas!" - -#define TR_ABOUT_BERTRAND_1 "Bertrand Songis" -#define TR_ABOUT_BERTRAND_2 "Autor principal OpenTX" -#define TR_ABOUT_BERTRAND_3 "Companion9x codesarrollador" - -#define TR_ABOUT_MIKE_1 "Mike Blandford" -#define TR_ABOUT_MIKE_2 "Guru de codigo y drivers" -#define TR_ABOUT_MIKE_3 "Seguramente uno de los" -#define TR_ABOUT_MIKE_4 "mejores inspiradores" - -#define TR_ABOUT_ROMOLO_1 "Romolo Manfredini" -#define TR_ABOUT_ROMOLO_2 "Desarrollador principal" -#define TR_ABOUT_ROMOLO_3 "Companion9x" - -#define TR_ABOUT_ANDRE_1 "Andre Bernet" -#define TR_ABOUT_ANDRE_2 "Funcionalidad, usabilidad," -#define TR_ABOUT_ANDRE_3 "depurado, documentacion" - -#define TR_ABOUT_ROB_1 "Rob Thomson" -#define TR_ABOUT_ROB_2 "openrcforums webmaster" - -#define TR_ABOUT_MARTIN_1 "Martin Hotar" -#define TR_ABOUT_MARTIN_2 "Dise\201o grafico" - -#if defined(PCBTARANIS) - #define TR_ABOUT_HARDWARE_1 "FrSky" - #define TR_ABOUT_HARDWARE_2 "Productor dise\201o de hardware" - #define TR_ABOUT_HARDWARE_3 "Firmware contributor" -#else - #define TR_ABOUT_HARDWARE_1 "Brent Nelson" - #define TR_ABOUT_HARDWARE_2 "Sky9x dise\201ador/productor" - #define TR_ABOUT_HARDWARE_3 "" -#endif - -#define TR_ABOUT_PARENTS_1 "Padres del proyecto" -#define TR_ABOUT_PARENTS_2 "ersky9x (Mike Blandford)" -#define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)" -#define TR_ABOUT_PARENTS_4 "TH9X (Thomas Husterer)" - -#define TR_CHR_SHORT 's' -#define TR_CHR_LONG 'l' -#define TR_CHR_TOGGLE 't' -#define TR_CHR_HOUR 'h' -#define TR_CHR_INPUT 'I' // Values between A-I will work - -#define TR_BEEP_VOLUME "Volumen Beep" -#define TR_WAV_VOLUME "Volumen Wav" -#define TR_VARIO_VOLUME "Volumen Vario" -#define TR_BG_VOLUME "Volumen Bg" - -#define TR_TOP_BAR "Top Bar" -#define TR_ALTITUDE INDENT "Altitude" -#define TR_MODS_FORBIDDEN "Modifications forbidden!" -#define TR_UNLOCKED "Unlocked" +/* + * Authors (alphabetical order) + * - Bertrand Songis + * - Bernet Andre + * - Jose Moreno + * - Kjell Kernen + * - Martin Hotar + * - Romolo Manfredini + * + * opentx is based on code named + * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, + * er9x by Erez Raviv: http://code.google.com/p/er9x/, + * and the original (and ongoing) project by + * Thomas Husterer, th9x: http://code.google.com/p/th9x/ + * + * 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. + * + * + * + * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! + * + * In order to make translations easier es.h.txt is parsed and national + * characters are replaced by bitmap codes. The result is es.h. + * + * See translate.py in the util catalog for the list of character codes + * + * !!!!! DO NOT EDIT es.h - EDIT es.h.txt INSTEAD !!!!!!! + */ + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ + +// NON ZERO TERMINATED STRINGS +#define LEN_OFFON "\003" +#define TR_OFFON "OFF""ON\0" + +#define LEN_MMMINV "\003" +#define TR_MMMINV "---""INV" + +#define LEN_NCHANNELS "\004" +#define TR_NCHANNELS "\0014CH\0016CH\0018CH10CH12CH14CH16CH" + +#define LEN_VBEEPMODE "\005" +#define TR_VBEEPMODE "Mudo ""Alarm""NoKey""Todo " + +#define LEN_VBEEPLEN "\005" +#define TR_VBEEPLEN "0====""=0===""==0==""===0=""====0" + +#define LEN_VRENAVIG "\003" +#define TR_VRENAVIG "No REaREb" + +#define LEN_VBLMODE "\004" +#define TR_VBLMODE "OFF ""Keys""Stks""Both""ON\0" + +#define LEN_TRNMODE "\003" +#define TR_TRNMODE "OFF"" +="" :=" + +#define LEN_TRNCHN "\003" +#define TR_TRNCHN "CH1CH2CH3CH4" + +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""S-Port Mirror\0 ""Debug\0 " + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + +#define LEN_DATETIME "\005" +#define TR_DATETIME "DATA:""HORA:" + +#define LEN_VLCD "\006" +#define TR_VLCD "NormalOptrex" + +#define LEN_COUNTRYCODES TR("\002", "\007") +#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0") + +#define LEN_VTRIMINC TR("\006", "\013") +#define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") + +#define LEN_VBEEPCOUNTDOWN "\006" +#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voz\0" + +#define LEN_RETA123 "\001" + +#if defined(PCBGRUVIN9X) + #if ROTARY_ENCODERS > 2 + #define TR_RETA123 "RETA123abcd" + #else + #define TR_RETA123 "RETA123ab" + #endif +#elif defined(PCBTARANIS) + #define TR_RETA123 "RETA12LR" +#else + #define TR_RETA123 "RETA123" +#endif + +#define LEN_VPROTOS "\006" + +#if defined(PXX) + #define TR_PXX "PXX\0 " +#elif defined(DSM2) || defined(IRPROTOS) + #define TR_PXX "[PXX]\0" +#else + #define TR_PXX +#endif + +#if defined(DSM2) + #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " +#elif defined(IRPROTOS) + #define TR_DSM2 "[LP45]""[DSM2]""[DSMX]" +#else + #define TR_DSM2 +#endif + +#if defined(IRPROTOS) + #define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0" +#else + #define TR_IRPROTOS +#endif + +#if defined(CPUARM) + #define TR_XPPM +#else + #define TR_XPPM "PPM16\0""PPMsim" +#endif + +#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS + +#define LEN_POSNEG "\003" +#define TR_POSNEG "POS""NEG" + +#define LEN_VCURVEFUNC "\003" +#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|" + +#define LEN_VMLTPX "\010" +#define TR_VMLTPX "A\201adir ""Multipl.""Cambiar\0" + +#define LEN_VMLTPX2 "\002" +#define TR_VMLTPX2 "+=""*="":=" + +#define LEN_VMIXTRIMS "\003" +#define TR_VMIXTRIMS "OFF""ON\0""Dir""Ele""Ace""Ale" + +#define LEN_VCSWFUNC "\005" +#define TR_VCSWFUNC "---\0 ""a{x\0 ""a>x\0 ""ax""|a|b\0 ""a" + +#define LEN_VTELPROTO "\007" +#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh" + +#define LEN_VOLTSRC "\003" +#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" + +#define LEN_VARIOSRC "\005" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif + +#define LEN_VSCREEN "\004" +#define TR_VSCREEN "Nums""Bars" + +#define LEN_GPSFORMAT "\004" +#define TR_GPSFORMAT "HMS NMEA" + +#define LEN2_VTEMPLATES 13 +#define LEN_VTEMPLATES "\015" +#define TR_VTEMPLATES "Elim Mezcla\0\0""Simple 4-CH \0""Anular Motor\0""Cola en V \0""Elevon\\Delta\0""eCCPM \0""Heli Setup \0""Servo Test \0" + +#define LEN_VSWASHTYPE "\004" +#define TR_VSWASHTYPE "---\0""120\0""120X""140\0""90\0" + +#define LEN_VKEYS "\005" +#define TR_VKEYS TR("Menu\0""Salir""Abajo""Arrib""Dcha.""Izqd.", "Menu\0""Salir""Enter""Pgna.""Mas\0 ""Menos") + +#define LEN_VRENCODERS "\003" +#define TR_VRENCODERS "REa""REb" + +#define LEN_VSWITCHES "\003" +#define LEN_VSRCRAW "\004" + +#if defined(PCBTARANIS) + #define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 " + #define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 " +#elif defined(EXTRA_3POS) + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 " + #define TR_SW_VSRCRAW "3P1\0""3P2\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2""ID3""ID4""ID5" +#else + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" +#endif + +#if defined(CPUARM) + #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW" +#elif defined(PCBGRUVIN9X) || defined(CPUM2561) || defined(CPUM128) + #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF" +#else + #define TR_CUSTOMSW "CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC" +#endif + +#if defined(PCBTARANIS) + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "Uno" +#else + #define TR_VSWITCHES TR_9X_3POS_SWITCHES "ACE""DIR""ELE""ALE""GEA""TRN" TR_CUSTOMSW "Uno" +#endif + +#if defined(PCBSKY9X) + #define TR_ROTARY_ENCODERS_VSRCRAW "REnc" +#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2 + #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd " +#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2 + #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb " +#else + #define TR_ROTARY_ENCODERS_VSRCRAW +#endif + +#if defined(HELI) + #define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3" +#else + #define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" +#endif + +#define TR_VSRCRAW "---\0""Dir\0""Ele\0""Thr\0""Ale\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "MAX\0" TR_CYC_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" TR_SW_VSRCRAW + +#define LEN_VTMRMODES "\003" +#define TR_VTMRMODES "OFF""ABS""THs""TH%""THt" + +#define LEN_VTRAINERMODES "\006" +#define TR_VTRAINERMODES "Master""Esclav" + +#define LEN_VFAILSAFE "\011" +#define TR_VFAILSAFE "Guardar\0 ""Adaptar\0 ""Sin pulsos" + +#if defined(MAVLINK) + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Estabilizar""Acrobat. ""Alt Hold ""Auto ""Guiado ""Loiter ""RTL ""Circulo ""Pos Hold ""Tierra ""OF Loiter""Toy A ""Toy M ""INVALIDO " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circulo ""Estabilizar ""Entrenamiento""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guiado ""Inicialisando""INVALID " +#endif + +// ZERO TERMINATED STRINGS +#define INDENT "\001" +#define LEN_INDENT 1 +#define INDENT_WIDTH (FW/2) + +#if defined(PCBTARANIS) + #define TR_ENTER "[ENTER]" +#else + #define TR_ENTER "[MENU]" +#endif + +#define TR_POPUPS TR_ENTER "\010[SALIR]" +#define OFS_EXIT sizeof(TR_ENTER) + +#define TR_MENUWHENDONE CENTER "\007" TR_ENTER " AL ACABAR " +#define TR_FREE "libre" +#define TR_DELETEMODEL "BORRAR MODELO" +#define TR_COPYINGMODEL "Copiando modelo.." +#define TR_MOVINGMODEL "Mover modelo..." +#define TR_LOADINGMODEL "Cargar modelo..." +#define TR_NAME "Nom." +#define TR_MODELNAME "Nom.Modelo" +#define TR_PHASENAME "Nom.Fase " +#define TR_MIXNAME "Nom.Mezcla" +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Line Name" +#else + #define TR_EXPONAME "Nom. Expo" +#endif +#define TR_BITMAP "Imagen Modelo" +#define TR_TIMER TR("Reloj","Reloj ") +#define TR_ELIMITS TR("E.Limite","Ampliar Limites") +#define TR_ETRIMS TR("E.Trims","Ampliar Trims") +#define TR_TRIMINC "Paso Trim" +#define TR_TTRACE TR("Fuente-A","Fuente Acelerad") +#define TR_TTRIM TR("Trim-A","Trim Acelerad") +#define TR_BEEPCTR TR("Ctr Beep","Center Beep") +#define TR_PROTO TR(INDENT"Proto",INDENT"Protocol") +#define TR_PPMFRAME "Trama PPM" +#define TR_MS "ms" +#define TR_SWITCH "Interr" +#define TR_TRIMS "Trims" +#define TR_FADEIN "Inicio" +#define TR_FADEOUT "Final" +#define TR_DEFAULT "(defecto)" +#define TR_CHECKTRIMS CENTER "\006Check\012Trims" +#define OFS_CHECKTRIMS CENTER_OFS+(9*FW) +#define TR_SWASHTYPE "Tipo ciclico" +#define TR_COLLECTIVE TR("Colectivo","Fuente Colectivo") +#define TR_SWASHRING "Ciclico" +#define TR_ELEDIRECTION TR("ELE Direccion","Largo cyc. direccion") +#define TR_AILDIRECTION TR("AIL Direccion","Lateral cyc. direccion") +#define TR_COLDIRECTION TR("PIT Direccion","Coll. pitch direccion") +#define TR_MODE INDENT"Modo" +#define TR_NOFREEEXPO "No expo libre!" +#define TR_NOFREEMIXER "No mezcla lib!" +#define TR_INSERTMIX "INSERTAR MIX" +#define TR_EDITMIX "EDITAR MIX " +#define TR_SOURCE INDENT"Fuente" +#define TR_WEIGHT "Cantidad" +#define TR_EXPO TR("Expo","Exponencial") +#define TR_SIDE "Lado" +#define TR_DIFFERENTIAL "Diferenc" +#define TR_OFFSET INDENT"Offset" +#define TR_TRIM "Trim" +#define TR_DREX "DRex" +#define TR_CURVE "Curva" +#define TR_FLMODE TR("Modo","Modos") +#define TR_MIXWARNING "Aviso" +#define TR_OFF "OFF" +#define TR_MULTPX "Multpx" +#define TR_DELAYDOWN "Delay Dn" +#define TR_DELAYUP "Delay Up" +#define TR_SLOWDOWN "Slow Dn" +#define TR_SLOWUP "Slow Up" +#define TR_MIXER "Mezclas" +#define TR_CV "CV" +#define TR_GV "GV" +#define TR_ACHANNEL "A\004canal" +#define TR_RANGE INDENT"Alcance" +#define TR_BAR "Bar" +#define TR_ALARM INDENT"Alarma" +#define TR_USRDATA "UsrData" +#define TR_BLADES INDENT"Palas" +#define TR_SCREEN "Pantalla" +#define TR_SOUND_LABEL "Sonido" +#define TR_LENGTH INDENT"Longitud" +#define TR_SPKRPITCH INDENT"Tono" +#define TR_HAPTIC_LABEL "Tactil" +#define TR_HAPTICSTRENGTH INDENT"Intensidad" +#define TR_CONTRAST "Contraste" +#define TR_ALARMS_LABEL "Alarmas" +#define TR_BATTERY_RANGE TR("Rango bateria","Rango medidor Bater") +#define TR_BATTERYWARNING INDENT"Bateria Baja" +#define TR_INACTIVITYALARM INDENT"Inactividad" +#define TR_MEMORYWARNING INDENT"Memoria Baja" +#define TR_ALARMWARNING INDENT"Sin Sonido" +#define TR_RENAVIG "RotEnc Navig" +#define TR_THROTTLEREVERSE TR("Invert_Acel", "Invertir Acel.") +#define TR_MINUTEBEEP TR(INDENT"Minuto",INDENT"Cada Minuto") +#define TR_BEEPCOUNTDOWN INDENT"Cuentaatras" +#define TR_PERSISTENT TR(INDENT"Persist.",INDENT"Persistente") +#define TR_BACKLIGHT_LABEL "Luz Fondo" +#define TR_BLDELAY INDENT"Duracion" +#define TR_BLONBRIGHTNESS INDENT"MAS Brillo" +#define TR_BLOFFBRIGHTNESS INDENT"MENOS Brillo" +#define TR_SPLASHSCREEN "Ptalla.inicio" +#define TR_THROTTLEWARNING TR("Aviso-A", "Aviso Acelerador") +#define TR_SWITCHWARNING TR("Aviso-I", "Aviso Intrptor") +#define TR_TIMEZONE TR("Zona Hora", "GPS Zona Hora") +#define TR_RXCHANNELORD TR("Rx Orden canal", "Orden habitual canales") +#define TR_SLAVE "Esclavo" +#define TR_MODESRC "Modo\006% Fuente" +#define TR_MULTIPLIER "Multiplicar" +#define TR_CAL "Cal" +#define TR_VTRIM "Trim- +" +#define TR_BG "BG:" +#define TR_MENUTOSTART CENTER "\010" TR_ENTER " EMPEZAR" +#define TR_SETMIDPOINT TR(CENTER "\007STICKS AL CENTRO",CENTER "\010STICKS AL CENTRO") +#define TR_MOVESTICKSPOTS CENTER "\006MOVER STICKS/POTS" +#define TR_RXBATT "Rx Batt:" +#define TR_TXnRX "Tx:\0Rx:" +#define OFS_RX 4 +#define TR_ACCEL "Acc:" +#define TR_NODATA CENTER "SIN DATOS" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" + +#if defined(CPUARM) + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" +#else + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Pila LIbre\037\124b" +#endif + +#define TR_MENUTORESET CENTER TR_ENTER "Resetear" +#define TR_PPM "PPM" +#define TR_CH "CH" +#define TR_MODEL "MODELO" +#define TR_FP "FM" +#define TR_MIX "MIX" +#define TR_EEPROMLOWMEM "EEPROM mem.baja" +#define TR_ALERT "\016ALERTA" +#define TR_PRESSANYKEYTOSKIP "Pulsar tecla omitir" +#define TR_THROTTLENOTIDLE "Aceler. Activado" +#define TR_ALARMSDISABLED "Alarmas Desact." +#define TR_PRESSANYKEY TR("\010Pulsa una Tecla", "Pulsa una Tecla") +#define TR_BADEEPROMDATA "Datos EEprom mal" +#define TR_EEPROMFORMATTING "Formateo EEPROM" +#define TR_EEPROMOVERFLOW "Desborde EEPROM" +#define TR_MENURADIOSETUP "CONFIGURACION" +#define TR_MENUDATEANDTIME "FECHA Y HORA" +#define TR_MENUTRAINER "APRENDIZ" +#define TR_MENUVERSION "VERSION" +#define TR_MENUDIAG TR("INTERUPTS", "TEST INTERUP.") +#define TR_MENUANA TR("ANAS", "ENTRADAS ANALOG") +#define TR_MENUCALIBRATION "CALIBRACION" +#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#define TR_MENUMODELSEL TR("MODELSEL", "SELECCION MODELO") +#define TR_MENUSETUP TR("CONF.", "CONF.MODELO") +#define TR_MENUFLIGHTPHASE "MODO VUELO" +#define TR_MENUFLIGHTPHASES "MODOS VUELO" +#define TR_MENUHELISETUP "CONF. HELI" + + +// Alignment + +#if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... + #define TR_MENUINPUTS "STICKS" + #define TR_MENULIMITS "SERVOS" +#else + #define TR_MENUINPUTS "DR/EXPO" + #define TR_MENULIMITS "LIMITES" +#endif + +#define TR_MENUCURVES "CURVAS" +#define TR_MENUCURVE "CURVA" +#define TR_MENUCUSTOMSWITCH "AJTE.INTERUP." +#define TR_MENUCUSTOMSWITCHES "AJTE.INTERUPTS." +#define TR_MENUCUSTOMFUNC "AJTE. FUNCIONES" +#define TR_MENUTELEMETRY "TELEMETRIA" +#define TR_MENUTEMPLATES "PLANTILLAS" +#define TR_MENUSTAT "STATS" +#define TR_MENUDEBUG "DEBUG" +#define TR_RXNUM TR("RxNum", INDENT"Receptor No.") +#define TR_SYNCMENU "Sync "TR_ENTER +#define TR_LIMIT INDENT"Limite" +#define TR_MINRSSI "Min Rssi" +#define TR_LATITUDE "Latitud" +#define TR_LONGITUDE "Longitud" +#define TR_GPSCOORD TR("GPS Coords", "GPS formato coordenadas") +#define TR_VARIO TR("Vario", "Variometro") +#define TR_SHUTDOWN "APAGANDO" +#define TR_BATT_CALIB "Calib.bateria" +#define TR_CURRENT_CALIB "Calib. actual" +#define TR_VOLTAGE INDENT"Voltaje" +#define TR_CURRENT INDENT"Actual" +#define TR_SELECT_MODEL "Selec Modelo" +#define TR_CREATE_MODEL "Crear Modelo" +#define TR_COPY_MODEL "Copiar Modelo" +#define TR_MOVE_MODEL "Mover Modelo" +#define TR_BACKUP_MODEL "Copia Sgdad Mod." +#define TR_DELETE_MODEL "Borrar Modelo" +#define TR_RESTORE_MODEL "Restaurar Modelo" +#define TR_SDCARD_ERROR "SDCARD Error" +#define TR_NO_SDCARD "No SDCARD" +#define TR_INCOMPATIBLE "Incompatible" +#define TR_WARNING "AVISO" +#define TR_EEPROMWARN "EEPROM" +#define TR_THROTTLEWARN "ACELERADOR" +#define TR_ALARMSWARN "ALARMAS" +#define TR_SWITCHWARN "INTERPTOR" +#define TR_INVERT_THR TR("Invertir Acel?", "Invertir Acel.?") +#define TR_SPEAKER_VOLUME INDENT "Volumen" +#define TR_LCD "LCD" +#define TR_BRIGHTNESS INDENT "Brillo" +#define TR_CPU_TEMP "CPU Temp.\016>" +#define TR_CPU_CURRENT "Actual\022>" +#define TR_CPU_MAH "Consumo" +#define TR_COPROC "CoProc." +#define TR_COPROC_TEMP "MB Temp. \016>" +#define TR_CAPAWARNING INDENT "Capacidad Baja" +#define TR_TEMPWARNING INDENT "Sobrecalent" +#define TR_FUNC "Func" +#define TR_V1 "V1" +#define TR_V2 "V2" +#define TR_DURATION "Duracion" +#define TR_DELAY "Atraso" +#define TR_SD_CARD "SD CARD" +#define TR_SDHC_CARD "SD-HC CARD" +#define TR_NO_SOUNDS_ON_SD "Sin sonidos en SD" +#define TR_NO_MODELS_ON_SD "Sin Modelos en SD" +#define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD" +#define TR_PLAY_FILE "Play" +#define TR_DELETE_FILE "Borrar" +#define TR_COPY_FILE "Copiar" +#define TR_RENAME_FILE "Renombrar" +#define TR_ASSIGN_BITMAP "Asignar Imagen" +#define TR_REMOVED "Borrado" +#define TR_SD_INFO "Informacion" +#define TR_SD_FORMAT "Formatear" +#define TR_NA "N/A" +#define TR_HARDWARE "COMPONENTES" +#define TR_FORMATTING "Formateando.." +#define TR_TEMP_CALIB "Temp. Calib" +#define TR_TIME "Hora" +#define TR_BAUDRATE "BT Baudrate" +#define TR_SD_INFO_TITLE "SD INFO" +#define TR_SD_TYPE "Tipo:" +#define TR_SD_SPEED "Velocidad:" +#define TR_SD_SECTORS "Sectores:" +#define TR_SD_SIZE "Tamaño:" +#define TR_TYPE "Tipo" +#define TR_GLOBAL_VARS "Global Variables" +#define TR_GLOBAL_VAR "Global Variable" +#define TR_MENUGLOBALVARS "GLOBAL VARIABLES" +#define TR_OWN "Propio" +#define TR_DATE "Fecha" +#define TR_ROTARY_ENCODER "R.Encs" +#define TR_CHANNELS_MONITOR "MONITOR CANALES" +#define TR_INTERNALRF "Interna RF" +#define TR_EXTERNALRF "Externa RF" +#define TR_FAILSAFE INDENT"Modo sgdad." +#define TR_FAILSAFESET "AJUSTES SGDAD." +#define TR_COUNTRYCODE "Codigo Pais" +#define TR_VOICELANG "Idioma voces" +#define TR_UNITSSYSTEM "Unidades" +#define TR_EDIT "Editar" +#define TR_INSERT_BEFORE "Insertar antes" +#define TR_INSERT_AFTER "Insertar despues" +#define TR_COPY "Copiar" +#define TR_MOVE "Mover" +#define TR_PASTE "Pegar" +#define TR_DELETE "Borrar" +#define TR_INSERT "Insertar" +#define TR_RESET_FLIGHT "Reset Vuelo" +#define TR_RESET_TIMER1 "Reset Reloj1" +#define TR_RESET_TIMER2 "Reset Reloj2" +#define TR_RESET_TELEMETRY "Reset Telemetria" +#define TR_STATISTICS "Estadisticas" +#define TR_ABOUT_US "Nosotros" +#define TR_AND_SWITCH "AND Inter." +#define TR_CF "CF" +#define TR_SPEAKER INDENT"Altavoz" +#define TR_BUZZER INDENT"Zumbador" +#define TR_BYTES "bytes" +#define TR_MODULE_BIND "[Enlace]" +#define TR_MODULE_RANGE "[Limites]" +#define TR_RESET_BTN "[Reset]" +#define TR_SET "[Ajuste]" +#define TR_TRAINER "Aprendiz" +#define TR_ANTENNAPROBLEM CENTER "¡Problema antena TX!" +#define TR_MODELIDUSED TR("ID en uso", "ID modelo en uso") +#define TR_MODULE INDENT "Modulo" +#define TR_CHANNELRANGE INDENT "Gama de canales" +#define TR_LOWALARM INDENT "Alarma baja" +#define TR_CRITICALALARM INDENT "Alarma Critica" +#define TR_PERSISTENT_MAH INDENT "Valor mAh" +#define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") +#define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" + +#if defined(MAVLINK) + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Mavlink Setup" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODO" + #define TR_MAVLINK_CUR_MODE "Modo actual" + #define TR_MAVLINK_ARMED "Armad0" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Estado Bateria de vuelo" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Carrera" + #define TR_MAVLINK_HEADING "Titulo" + #define TR_MAVLINK_BEARING "Soporte" + #define TR_MAVLINK_ALTITUDE "Altitud" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" +#endif + +// Taranis column headers +#define TR_PHASES_HEADERS { " Nombre ", " Interrup.", " Trims ", " Aparecer ", " Desparecer " } +#define TR_LIMITS_HEADERS { " Nombre ", " Compensacion", " Min ", " Max ", " Direccion ", " Curve ", " Centrado PPM ", " Simetrica " } +#define TR_CSW_HEADERS { " Funcion ", " V1 ", " V2 ", " AND Interrup. ", " Duracion ", " Retardo " } + +//Taranis About screen +#define TR_ABOUTUS "Nosotros" + +#define TR_ABOUT_OPENTX_1 "OpenTX es open source, no-" +#define TR_ABOUT_OPENTX_2 "comercial y viene sin " +#define TR_ABOUT_OPENTX_3 "garantias. Fue desarrollado" +#define TR_ABOUT_OPENTX_4 "libremente. Ayudas a traves" +#define TR_ABOUT_OPENTX_5 "de donaciones son bienvenidas!" + +#define TR_ABOUT_BERTRAND_1 "Bertrand Songis" +#define TR_ABOUT_BERTRAND_2 "Autor principal OpenTX" +#define TR_ABOUT_BERTRAND_3 "Companion9x codesarrollador" + +#define TR_ABOUT_MIKE_1 "Mike Blandford" +#define TR_ABOUT_MIKE_2 "Guru de codigo y drivers" +#define TR_ABOUT_MIKE_3 "Seguramente uno de los" +#define TR_ABOUT_MIKE_4 "mejores inspiradores" + +#define TR_ABOUT_ROMOLO_1 "Romolo Manfredini" +#define TR_ABOUT_ROMOLO_2 "Desarrollador principal" +#define TR_ABOUT_ROMOLO_3 "Companion9x" + +#define TR_ABOUT_ANDRE_1 "Andre Bernet" +#define TR_ABOUT_ANDRE_2 "Funcionalidad, usabilidad," +#define TR_ABOUT_ANDRE_3 "depurado, documentacion" + +#define TR_ABOUT_ROB_1 "Rob Thomson" +#define TR_ABOUT_ROB_2 "openrcforums webmaster" + +#define TR_ABOUT_MARTIN_1 "Martin Hotar" +#define TR_ABOUT_MARTIN_2 "Dise\201o grafico" + +#if defined(PCBTARANIS) + #define TR_ABOUT_HARDWARE_1 "FrSky" + #define TR_ABOUT_HARDWARE_2 "Productor dise\201o de hardware" + #define TR_ABOUT_HARDWARE_3 "Firmware contributor" +#else + #define TR_ABOUT_HARDWARE_1 "Brent Nelson" + #define TR_ABOUT_HARDWARE_2 "Sky9x dise\201ador/productor" + #define TR_ABOUT_HARDWARE_3 "" +#endif + +#define TR_ABOUT_PARENTS_1 "Padres del proyecto" +#define TR_ABOUT_PARENTS_2 "ersky9x (Mike Blandford)" +#define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)" +#define TR_ABOUT_PARENTS_4 "TH9X (Thomas Husterer)" + +#define TR_CHR_SHORT 's' +#define TR_CHR_LONG 'l' +#define TR_CHR_TOGGLE 't' +#define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // Values between A-I will work + +#define TR_BEEP_VOLUME "Volumen Beep" +#define TR_WAV_VOLUME "Volumen Wav" +#define TR_VARIO_VOLUME "Volumen Vario" +#define TR_BG_VOLUME "Volumen Bg" + +#define TR_TOP_BAR "Top Bar" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications forbidden!" +#define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index ce57fc13d..e018ef0a5 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1,779 +1,779 @@ -/* - * Authors (alphabetical order) - * - Bertrand Songis - * - Bernet Andre - * - Kjell Kernen - * - Martin Hotar - * - Romolo Manfredini - * - * opentx is based on code named - * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, - * er9x by Erez Raviv: http://code.google.com/p/er9x/, - * and the original (and ongoing) project by - * Thomas Husterer, th9x: http://code.google.com/p/th9x/ - * - * 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. - * - * - * - * - * !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!! - * - * In order to make translations easier fr.h.txt is parsed and national - * characters are replaced by bitmap codes. The result is fr.h. - * - * See translate.py in the util catalog for the list of character codes - * - * !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!! - */ - /* Formatting octal codes available in TR_ strings: - * \037\x -sets LCD x-coord (x value in octal) - * \036 -newline - * \001 to \035 -extended spacing (value * FW/2) - * \0 -ends actual string - */ - -// NON ZERO TERMINATED STRINGS -#define LEN_OFFON "\003" -#define TR_OFFON "OFF""ON\0" - -#define LEN_MMMINV "\003" -#define TR_MMMINV "---""INV" - -#define LEN_NCHANNELS "\004" -#define TR_NCHANNELS "\0014CH\0016CH\0018CH10CH12CH14CH16CH" - -#define LEN_VBEEPMODE "\005" -#define TR_VBEEPMODE "Aucun""Alarm""NoKey""Tout\0" - -#define LEN_VBEEPLEN "\005" -#define TR_VBEEPLEN "0====""=0===""==0==""===0=""====0" - -#define LEN_VRENAVIG "\003" -#define TR_VRENAVIG "NonREaREb" - -#define LEN_VBLMODE TR("\004","\011") -#define TR_VBLMODE TR("OFF\0""Btns""Ctrl""Tous""ON\0","OFF\0 ""Touches\0 ""Controles""Tous\0 ""ON\0 ") - -#define LEN_TRNMODE "\003" -#define TR_TRNMODE "OFF"" +="" :=" - -#define LEN_TRNCHN "\003" -#define TR_TRNCHN "CH1CH2CH3CH4" - -#define LEN_UART3MODES "\017" -#define TR_UART3MODES "OFF\0 ""Recopie S-Port\0""Debug\0 " - -#define LEN_POTTYPES "\017" -#define TR_POTTYPES "Potentiomètre\0 ""Inter multi-pos" - -#define LEN_DATETIME "\005" -#define TR_DATETIME "DATE:""HEURE" - -#define LEN_VLCD "\006" -#define TR_VLCD "NormalOptrex" - -#define LEN_COUNTRYCODES TR("\002", "\006") -#define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe") - -#define LEN_VTRIMINC TR("\006","\013") -#define TR_VTRIMINC TR("Expo\0 ""ExFin\0""Fin\0 ""Moyen\0""Gros\0 ","Exponentiel""Extra Fin\0 ""Fin\0 ""Moyen\0 ""Grossier\0 ") - -#define LEN_VBEEPCOUNTDOWN "\006" -#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0" - -#define LEN_RETA123 "\001" - -#if defined(PCBGRUVIN9X) - #if ROTARY_ENCODERS > 2 - #define TR_RETA123 "DPGA123abcd" - #else - #define TR_RETA123 "DPGA123ab" - #endif -#elif defined(PCBTARANIS) - #define TR_RETA123 "DPGA12LR" -#else - #define TR_RETA123 "DPGA123" -#endif - -#define LEN_VPROTOS "\006" - -#if defined(PXX) - #define TR_PXX "PXX\0 " -#elif defined(DSM2) || defined(IRPROTOS) - #define TR_PXX "[PXX]\0" -#else - #define TR_PXX -#endif - -#if defined(DSM2) - #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " -#elif defined(IRPROTOS) - #define TR_DSM2 "[LP45]""[DSM2]""[DSMX]" -#else - #define TR_DSM2 -#endif - -#if defined(IRPROTOS) - #define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0" -#else - #define TR_IRPROTOS -#endif - -#if defined(CPUARM) - #define TR_XPPM -#else - #define TR_XPPM "PPM16\0""PPMsim" -#endif - -#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS - -#define LEN_POSNEG "\003" -#define TR_POSNEG "POS""NEG" - -#define LEN_VCURVEFUNC "\003" -#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|" - -#define LEN_VMLTPX TR("\010","\013") -#define TR_VMLTPX TR("Ajoute\0 ""Multipl.""Remplace","Additionner""Multiplier\0""Remplacer\0 ") - -#define LEN_VMLTPX2 "\002" -#define TR_VMLTPX2 "+=""*="":=" - -#define LEN_VMIXTRIMS "\003" -#define TR_VMIXTRIMS "OFF""ON\0""Dir""Prf""Gaz""Ail" - -#define LEN_VCSWFUNC "\005" -#define TR_VCSWFUNC "---\0 ""a{x\0 ""a>x\0 ""ax""|a|b\0 ""a" - -#define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh""Halcyon" - -#define LEN_VOLTSRC "\003" -#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" - -#define LEN_VARIOSRC "\005" -#if defined(FRSKY_SPORT) - #define TR_VARIOSRC "Vario""A1\0 ""A2\0" -#else - #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" -#endif - -#define LEN_VSCREEN TR("\004","\007") -#define TR_VSCREEN TR("Val.""Bars","Valeurs""Barres\0") - -#define LEN_GPSFORMAT "\004" -#define TR_GPSFORMAT "DMS\0NMEA" - -#define LEN2_VTEMPLATES 15 -#define LEN_VTEMPLATES "\017" -#define TR_VTEMPLATES "Suppr Mixages\0 ""4 Voies simple\0""Coupure Gaz\0 ""Empennage V\0 ""Elevon\\Delta\0 ""eCCPM\0 ""Conf. Hélico\0 ""Test Servo\0 " - -#define LEN_VSWASHTYPE "\004" -#define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" - -#define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu"" Exit"" Bas"" Haut""Droit""Gauch", " Menu"" Exit""Enter"" Page"" Plus""Minus") - -#define LEN_VRENCODERS "\003" -#define TR_VRENCODERS "REa""REb" - -#define LEN_VSWITCHES "\003" -#define LEN_VSRCRAW "\004" - -#if defined(PCBTARANIS) - #define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 " - #define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 " -#elif defined(EXTRA_3POS) - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 " - #define TR_SW_VSRCRAW "3P1\0""3P2\0" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2""ID3""ID4""ID5" -#else - #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " - #define TR_SW_VSRCRAW "3POS" - #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" -#endif - -#if defined(CPUARM) - #define TR_CUSTOMSW "IP1""IP2""IP3""IP4""IP5""IP6""IP7""IP8""IP9""IPA""IPB""IPC""IPD""IPE""IPF""IPG""IPH""IPI""IPJ""IPK""IPL""IPM""IPN""IPO""IPP""IPQ""IPR""IPS""IPT""IPU""IPV""IPW" -#elif defined(PCBGRUVIN9X) || defined(CPUM2561) || defined(CPUM128) - #define TR_CUSTOMSW "IP1""IP2""IP3""IP4""IP5""IP6""IP7""IP8""IP9""IPA""IPB""IPC""IPD""IPE""IPF" -#else - #define TR_CUSTOMSW "IP1""IP2""IP3""IP4""IP5""IP6""IP7""IP8""IP9""IPA""IPB""IPC" -#endif - -#if defined(PCBTARANIS) - #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" -#else - #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "1*\0" -#endif - -#if defined(PCBSKY9X) - #define TR_ROTARY_ENCODERS_VSRCRAW "REnc" -#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2 - #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd " -#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2 - #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb " -#else - #define TR_ROTARY_ENCODERS_VSRCRAW -#endif - -#if defined(HELI) -#define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3" -#else -#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" -#endif - -#define TR_VSRCRAW "---\0""Dir\0""Prf\0""Gaz\0""Ail\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "MAX\0" TR_CYC_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" TR_SW_VSRCRAW - -#define LEN_VTMRMODES "\003" -#define TR_VTMRMODES "OFF""ABS""GZs""GZ%""GZt" - -#define LEN_VTRAINERMODES "\006" -#define TR_VTRAINERMODES "Maître""Elève\0" - -#define LEN_VFAILSAFE "\011" -#define TR_VFAILSAFE "Maintien\0""Prédéfini""Pas d'imp" - -#if defined(MAVLINK) - #define LEN_MAVLINK_BAUDS "\006" - #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" - #define LEN_MAVLINK_AC_MODES "\011" - #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " - #define LEN_MAVLINK_AP_MODES "\015" - #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " -#endif - -// ZERO TERMINATED STRINGS -#define INDENT "\001" -#define LEN_INDENT 1 -#define INDENT_WIDTH (FW/2) - -#if defined(PCBTARANIS) - #define TR_ENTER "[ENTER]" -#else - #define TR_ENTER "[MENU]" -#endif - -#define TR_POPUPS TR_ENTER"\010[EXIT]" -#define OFS_EXIT sizeof(TR_ENTER) - -#define TR_MENUWHENDONE CENTER"\006"TR_ENTER" QUAND PRET" -#define TR_FREE "disp" -#define TR_DELETEMODEL "SUPPRIMER MODELE" -#define TR_COPYINGMODEL "Copie..." -#define TR_MOVINGMODEL "Déplacement..." -#define TR_LOADINGMODEL "Chargement..." -#define TR_NAME "Nom" -#define TR_MODELNAME TR("Nom modèle","Nom du modèle") -#define TR_PHASENAME "Nom phase" -#define TR_MIXNAME TR("Nom mix.","Nom du mixeur") -#define TR_INPUTNAME "Input Name" -#if defined(PCBTARANIS) - #define TR_EXPONAME "Nom ligne" -#else - #define TR_EXPONAME "Nom expo" -#endif -#define TR_BITMAP "Image du modèle" -#define TR_TIMER "Chrono " -#define TR_ELIMITS TR("Limites ét","Limites étendues") -#define TR_ETRIMS TR("Trims ét.","Trims étendus") -#define TR_TRIMINC TR("Pas Trim","Pas des trims") -#define TR_TTRACE "Source gaz" -#define TR_TTRIM "Trim gaz" -#define TR_BEEPCTR TR("Bips centr","Bips centrage") -#define TR_PROTO TR(INDENT"Proto.",INDENT"Protocole") -#define TR_PPMFRAME INDENT"Trame PPM" -#define TR_MS "ms" -#define TR_SWITCH TR("Inter","Interrupteur") -#define TR_TRIMS "Trims" -#define TR_FADEIN "Fondu ON" -#define TR_FADEOUT "Fondu OFF" -#define TR_DEFAULT "(défaut)" -#define TR_CHECKTRIMS "\006Vérif\012Trims" -#define OFS_CHECKTRIMS (9*FW) -#define TR_SWASHTYPE TR("Type de Plat.","Type de plateau") -#define TR_COLLECTIVE TR("Collectif","Voie du pas collectif") -#define TR_SWASHRING TR("Limite Cycl.","Limite du cyclique") -#define TR_ELEDIRECTION TR("Inv. longitud.","Inversion longitudinal") -#define TR_AILDIRECTION TR("Inv. latéral","Inversion latéral") -#define TR_COLDIRECTION TR("Inv. collectif","Inversion collectif") -#define TR_MODE INDENT"Mode" -#define TR_NOFREEEXPO "Max expos atteint!" -#define TR_NOFREEMIXER "Max mixages atteint!" -#define TR_INSERTMIX "INSERER MIXAGE" -#define TR_EDITMIX "EDITER MIXAGE" -#define TR_SOURCE INDENT"Source" -#define TR_WEIGHT "Ratio" -#define TR_EXPO TR("Expo","Exponentiel") -#define TR_SIDE "Coté" -#define TR_DIFFERENTIAL "Différentiel" -#define TR_OFFSET INDENT"Décalage" -#define TR_TRIM "Trim" -#define TR_DREX "DRex" -#define TR_CURVE "Courbe" -#define TR_FLMODE TR("Phase","Phases") -#define TR_MIXWARNING "Alerte" -#define TR_OFF "OFF" -#define TR_MULTPX "Opération" -#define TR_DELAYDOWN "Retard bas" -#define TR_DELAYUP "Retard haut" -#define TR_SLOWDOWN "Ralenti bas" -#define TR_SLOWUP "Ralenti haut" -#define TR_MIXER "MIXEUR" -#define TR_CV "CB" -#define TR_GV "VG" -#define TR_ACHANNEL "A" -#define TR_RANGE INDENT"Plage" -#define TR_BAR "Barre" -#define TR_ALARM INDENT"Alarme" -#define TR_USRDATA "Données" -#define TR_BLADES INDENT"Pales" -#define TR_SCREEN "Ecran " -#define TR_SOUND_LABEL "Son" -#define TR_LENGTH INDENT"Durée" -#define TR_SPKRPITCH INDENT"Tonalité" -#define TR_HAPTIC_LABEL "Vibreur" -#define TR_HAPTICSTRENGTH INDENT"Force" -#define TR_CONTRAST "Contraste" -#define TR_ALARMS_LABEL "Alarmes" -#define TR_BATTERY_RANGE "Plage batterie" -#define TR_BATTERYWARNING TR(INDENT"Batterie",INDENT"Batterie faible") -#define TR_INACTIVITYALARM INDENT"Inactivité" -#define TR_MEMORYWARNING INDENT"Mémoire pleine" -#define TR_ALARMWARNING TR(INDENT"Silence",INDENT"Sons désactivés") -#define TR_RENAVIG "Navig EncRot" -#define TR_THROTTLEREVERSE TR("Inv. gaz","Inversion gaz") -#define TR_MINUTEBEEP TR(INDENT"Bip min.",INDENT"Annonces minutes") -#define TR_BEEPCOUNTDOWN TR(INDENT"Bip fin",INDENT"Compte à rebours") -#define TR_PERSISTENT TR(INDENT"Persist.",INDENT"Persistant") -#define TR_BACKLIGHT_LABEL "Rétroéclairage" -#define TR_BLDELAY INDENT"Durée" -#define TR_BLONBRIGHTNESS INDENT"Luminosité ON" -#define TR_BLOFFBRIGHTNESS INDENT"Luminosité OFF" -#define TR_SPLASHSCREEN "Logo d'accueil" -#define TR_THROTTLEWARNING "Alerte gaz" -#define TR_SWITCHWARNING TR("Alerte int","Alerte interrupt.") -#define TR_TIMEZONE "Fuseau horaire" -#define TR_RXCHANNELORD TR("Ordre voies RX","Ordre des voies préféré") -#define TR_SLAVE "Elève" -#define TR_MODESRC "Mode\006% Source" -#define TR_MULTIPLIER "Multiplieur" -#define TR_CAL "Cal" -#define TR_VTRIM "Trim- +" -#define TR_BG "BG:" -#define TR_MENUTOSTART CENTER"\006" TR_ENTER " POUR DEBUT" -#define TR_SETMIDPOINT CENTER"\010REGLER NEUTRES" -#define TR_MOVESTICKSPOTS CENTER"\004BOUGER STICKS/POTS" -#define TR_RXBATT "Batt.RX" -#define TR_TXnRX "Tx:\0Rx:" -#define OFS_RX 4 -#define TR_ACCEL "Acc:" -#define TR_NODATA "NO DATA" -#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" -#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" -#define STR_US (STR_TMR1LATMAXUS+13) -#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" -#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" - -#if defined(CPUARM) - #define TR_TMIXMAXMS "Tmix max" - #define TR_FREESTACKMINB "Free Stack" -#else - #define TR_TMIXMAXMS "Tmix max\037\124ms" - #define TR_FREESTACKMINB "Free Stack\037\124b" -#endif - -#define TR_MENUTORESET CENTER TR_ENTER" pour reset" -#define TR_PPM "PPM" -#define TR_CH "CH" -#define TR_MODEL "MODELE" -#define TR_FP "PV" -#define TR_MIX "MIX" -#define TR_EEPROMLOWMEM "EEPROM pleine!" -#define TR_ALERT "\014ALERTE" -#define TR_PRESSANYKEYTOSKIP "Touche pour ignorer" -#define TR_THROTTLENOTIDLE "Gaz pas à zéro" -#define TR_ALARMSDISABLED "Alarmes Désactivées" -#define TR_PRESSANYKEY TR("Touche pour continuer","Touche pour continuer") -#define TR_BADEEPROMDATA "EEPROM corrompue" -#define TR_EEPROMFORMATTING "Formatage EEPROM" -#define TR_EEPROMOVERFLOW "Dépassement EEPROM" -#define TR_MENURADIOSETUP "CONFIG RADIO" -#define TR_MENUDATEANDTIME "DATE ET HEURE" -#define TR_MENUTRAINER "ECOLAGE" -#define TR_MENUVERSION "VERSION" -#define TR_MENUDIAG TR("INTERS","TEST INTERRUPTEURS") -#define TR_MENUANA TR("ANAS","ENTREES ANALOGIQUES") -#define TR_MENUCALIBRATION "CALIBRATION" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" -#define TR_MENUMODELSEL "MODELES" -#define TR_MENUSETUP TR("CONF. MODELE","CONFIGURATION") -#define TR_MENUFLIGHTPHASE "PHASE DE VOL" -#define TR_MENUFLIGHTPHASES "PHASES DE VOL" -#define TR_MENUHELISETUP TR("CONF.HELI","CONFIGURATION HELICO") - -#if defined(PCBTARANIS) - #define TR_MENUINPUTS "ENTREES" - #define TR_MENULIMITS "SORTIES" -#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... - #define TR_MENUINPUTS "MANCHES" - #define TR_MENULIMITS "SORTIES" -#else - #define TR_MENUINPUTS "DR/EXPO" - #define TR_MENULIMITS "LIMITES" -#endif - -#define TR_MENUCURVES "COURBES" -#define TR_MENUCURVE "COURBE" -#define TR_MENUCUSTOMSWITCH "INTER PERS." -#define TR_MENUCUSTOMSWITCHES "INTERS PERS." -#define TR_MENUCUSTOMFUNC TR("FONCTIONS SPEC.","FONCTIONS SPECIALES") -#define TR_MENUTELEMETRY "TELEMESURE" -#define TR_MENUTEMPLATES "GABARITS" -#define TR_MENUSTAT TR("STATS","STATISTIQUES") -#define TR_MENUDEBUG "DEBUG" -#define TR_RXNUM TR(INDENT"NumRx",INDENT"No. récepteur") -#define TR_SYNCMENU "Sync [MENU]" -#define TR_LIMIT INDENT"Limite" -#define TR_MINRSSI "RSSI Min." -#define TR_LATITUDE "Latitude" -#define TR_LONGITUDE "Longitude" -#define TR_GPSCOORD TR("Coordonnées","Coordonnées GPS") -#define TR_VARIO TR("Vario","Variomètre") -#define TR_SHUTDOWN "ARRET EN COURS" -#define TR_BATT_CALIB "Calib. Batterie" -#define TR_CURRENT_CALIB "Calib. Courant" -#define TR_VOLTAGE INDENT"Tension" -#define TR_CURRENT INDENT"Courant" -#define TR_SELECT_MODEL "Sélect. Modèle" -#define TR_CREATE_MODEL "Créer Modèle" -#define TR_COPY_MODEL "Copier Modèle" -#define TR_MOVE_MODEL "Déplacer Modèle" -#define TR_BACKUP_MODEL "Archiver Modèle" -#define TR_DELETE_MODEL "Supprimer Modèle" -#define TR_RESTORE_MODEL "Restaurer Modèle" -#define TR_SDCARD_ERROR "Erreur carte SD" -#define TR_NO_SDCARD "Pas de carte SD" -#define TR_INCOMPATIBLE "Incompatible" -#define TR_WARNING "ALERTE" -#define TR_EEPROMWARN "EEPROM" -#define TR_THROTTLEWARN "GAZ" -#define TR_ALARMSWARN "SON" -#define TR_SWITCHWARN "INTERS" -#define TR_INVERT_THR "Inverser Gaz?" -#define TR_SPEAKER_VOLUME INDENT "Volume" -#define TR_LCD "Afficheur" -#define TR_BRIGHTNESS INDENT "Luminosité" -#define TR_CPU_TEMP "Temp. CPU\016>" -#define TR_CPU_CURRENT "Courant\022>" -#define TR_CPU_MAH "Consomm." -#define TR_COPROC "CoProc." -#define TR_COPROC_TEMP "Temp. MB \016>" -#define TR_CAPAWARNING INDENT "Capacité Basse" -#define TR_TEMPWARNING INDENT "Surchauffe" -#define TR_FUNC TR("Fonc", "Fonction") -#define TR_V1 "V1" -#define TR_V2 "V2" -#define TR_DURATION "Durée" -#define TR_DELAY "Délai" -#define TR_SD_CARD "Carte SD" -#define TR_SDHC_CARD "Carte SD-HC" -#define TR_NO_SOUNDS_ON_SD "Aucun son sur SD" -#define TR_NO_MODELS_ON_SD "Aucun modèle SD" -#define TR_NO_BITMAPS_ON_SD "Aucun Bitmap SD" -#define TR_PLAY_FILE "Lire" -#define TR_DELETE_FILE "Supprimer" -#define TR_COPY_FILE "Copier" -#define TR_RENAME_FILE "Renommer" -#define TR_ASSIGN_BITMAP "Sélectionner image" -#define TR_REMOVED " supprimé" -#define TR_SD_INFO "Information" -#define TR_SD_FORMAT "Formater" -#define TR_NA "N/D" -#define TR_HARDWARE "MATERIEL" -#define TR_FORMATTING "Formatage..." -#define TR_TEMP_CALIB "Calib. temp" -#define TR_TIME "Heure" -#define TR_BAUDRATE "Baudrate BT" -#define TR_SD_INFO_TITLE "INFO SD" -#define TR_SD_TYPE "Type:" -#define TR_SD_SPEED "Vitesse:" -#define TR_SD_SECTORS "Secteurs:" -#define TR_SD_SIZE "Taille:" -#define TR_TYPE "Type" -#define TR_GLOBAL_VARS "Variables Globales" -#define TR_GLOBAL_VAR "Variable globale" -#define TR_MENUGLOBALVARS "VARIABLES GLOBALES" -#define TR_OWN "Pers" -#define TR_DATE "Date" -#define TR_ROTARY_ENCODER "Enc.Rot." -#define TR_CHANNELS_MONITOR "MONITEUR CANAUX" -#define TR_INTERNALRF "HF interne" -#define TR_EXTERNALRF "HF externe" -#define TR_FAILSAFE INDENT"Type failsafe" -#define TR_FAILSAFESET "REGLAGES FAILSAFE" -#define TR_COUNTRYCODE "Zone géo." -#define TR_VOICELANG TR("Langue voix","Langue annonces vocales") -#define TR_UNITSSYSTEM "Unités" -#define TR_EDIT "Editer" -#define TR_INSERT_BEFORE "Insérer avant" -#define TR_INSERT_AFTER "Insérer après" -#define TR_COPY "Copier" -#define TR_MOVE "Déplacer" -#define TR_PASTE "Coller" -#define TR_DELETE "Effacer" -#define TR_INSERT "Insérer" -#define TR_RESET_FLIGHT TR("Réinit. vol","Réinitialiser vol") -#define TR_RESET_TIMER1 TR("Réinit. Timer1","Réinitialiser Timer1") -#define TR_RESET_TIMER2 TR("Réinit. Timer2","Réinitialiser Timer2") -#define TR_RESET_TELEMETRY TR("Réinit. Télém.","Réinit. Télémesure") -#define TR_STATISTICS "Statistiques" -#define TR_ABOUT_US "A propos" -#define TR_AND_SWITCH "ET suppl." -#define TR_CF "FS" -#define TR_SPEAKER INDENT"Haut-p." -#define TR_BUZZER INDENT"Bipeur" -#define TR_BYTES "bytes" -#define TR_MODULE_BIND "[Bind]" -#define TR_MODULE_RANGE "[Port.]" -#define TR_RESET_BTN "[RAZ]" -#define TR_SET "[Déf.]" -#define TR_TRAINER "Ecolage" -#define TR_ANTENNAPROBLEM CENTER "Antenne radio défectueuse!" -#define TR_MODELIDUSED TR("ID déjà affecté","No de modèle déjà utilisé") -#define TR_MODULE INDENT "Type de module" -#define TR_CHANNELRANGE INDENT "Plage de canaux" -#define TR_LOWALARM INDENT "Alarme basse" -#define TR_CRITICALALARM INDENT "Alarme critique" -#define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh",INDENT "Enregistrer mAh") -#define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS") -#define TR_UART3MODE "Port série" -#define TR_POT1TYPE "Type S1" -#define TR_POT2TYPE "Type S2" - -#if defined(MAVLINK) - #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max" - #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" - #define TR_MAVMENUSETUP_TITLE "Config Mavlink" - #define TR_MAVLINK_BAUD_LABEL "Baudrate" - #define TR_MAVLINK_INFOS "INFOS" - #define TR_MAVLINK_MODE "MODE" - #define TR_MAVLINK_CUR_MODE "Mode courant" - #define TR_MAVLINK_ARMED "Armé" - #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" - #define TR_MAVLINK_BATTERY_LABEL "Accu propulsion" - #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" - #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" - #define TR_MAVLINK_NAV_MENU_TITLE "NAV" - #define TR_MAVLINK_COURSE "Course" - #define TR_MAVLINK_HEADING "Cap" - #define TR_MAVLINK_BEARING "Relèv." - #define TR_MAVLINK_ALTITUDE "Altitude" - #define TR_MAVLINK_GPS "GPS" - #define TR_MAVLINK_NO_FIX "NO Fix" - #define TR_MAVLINK_SAT "SAT" - #define TR_MAVLINK_HDOP "HDOP" - #define TR_MAVLINK_LAT "LAT" - #define TR_MAVLINK_LON "LON" -#endif - -// Taranis column headers -#define TR_PHASES_HEADERS { " Nom ", " Inter ", " Trims ", " Fondu ON ", " Fondu OFF " } -#define TR_LIMITS_HEADERS { " Nom ", " Subtrim ", " Min ", " Max ", " Direction ", " Curve ", " Neutre PPM ", " Mode subtrim " } -#define TR_CSW_HEADERS { " Fonction ", " V1 ", " V2 ", " ET suppl. ", " Durée ", " Délai " } - -//Taranis About screen -#define TR_ABOUTUS TR(" A PROPOS ","A PROPOS") - -#define TR_ABOUT_OPENTX_1 TR("OpenTX\001est\001libre,\001non-","OpenTX est libre, non-") -#define TR_ABOUT_OPENTX_2 TR("commercial,\001et\001offert\001sans","commercial et n'offre aucune") -#define TR_ABOUT_OPENTX_3 TR("garantie.\001Il\001est\001développé","garantie. Il a été développé") -#define TR_ABOUT_OPENTX_4 TR("gratuitement.\001Donations","gratuitement. Vos donations") -#define TR_ABOUT_OPENTX_5 TR("bienvenues!","sont bienvenues!") - -#define TR_ABOUT_BERTRAND_1 "Bertrand Songis" -#define TR_ABOUT_BERTRAND_2 TR("Auteur\001principal\001d'openTx","Auteur principal d'openTx") -#define TR_ABOUT_BERTRAND_3 TR("Codéveloppeur\001de\001C9X","Codéveloppeur de Companion9x") - -#define TR_ABOUT_MIKE_1 "Mike Blandford" -#define TR_ABOUT_MIKE_2 "Maître du code et des" -#define TR_ABOUT_MIKE_3 "drivers" -#define TR_ABOUT_MIKE_4 "" - -#define TR_ABOUT_ROMOLO_1 "Romolo Manfredini" -#define TR_ABOUT_ROMOLO_2 "Développeur principal de" -#define TR_ABOUT_ROMOLO_3 "Companion9x" - -#define TR_ABOUT_ANDRE_1 "André Bernet" -#define TR_ABOUT_ANDRE_2 TR("Fonctionsé,\001usabilité,","Fonctionnalités, usabilité,") -#define TR_ABOUT_ANDRE_3 TR("débogage,\001documentation","débogage, documentation") - -#define TR_ABOUT_ROB_1 "Rob Thomson" -#define TR_ABOUT_ROB_2 "Webmaster d'openrcforums" - -#define TR_ABOUT_MARTIN_1 "Martin Hotar" -#define TR_ABOUT_MARTIN_2 "Design graphique" - -#if defined(PCBTARANIS) - #define TR_ABOUT_HARDWARE_1 "FrSky" - #define TR_ABOUT_HARDWARE_2 "Développeur/fabricant" - #define TR_ABOUT_HARDWARE_3 "du matériel" -#else - #define TR_ABOUT_HARDWARE_1 "Brent Nelson" - #define TR_ABOUT_HARDWARE_2 "Développeur/fabricant" - #define TR_ABOUT_HARDWARE_3 "de la carte Sky9x" -#endif - -#define TR_ABOUT_PARENTS_1 "Projets parents" -#define TR_ABOUT_PARENTS_2 "ersky9x (Mike Blandford)" -#define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)" -#define TR_ABOUT_PARENTS_4 "TH9X (Thomas Husterer)" - -#define TR_CHR_SHORT 's' -#define TR_CHR_LONG 'l' -#define TR_CHR_TOGGLE 't' -#define TR_CHR_HOUR 'h' -#define TR_CHR_INPUT 'I' // Values between A-I will work - -#define TR_BEEP_VOLUME "Beep Volume" -#define TR_WAV_VOLUME "Wav Volume" -#define TR_VARIO_VOLUME "Vario Volume" -#define TR_BG_VOLUME "Bg Volume" - -#define TR_TOP_BAR "Barre titre" -#define TR_ALTITUDE INDENT "Altitude" -#define TR_MODS_FORBIDDEN "Modifications désactivées!" -#define TR_UNLOCKED "Déverrouillé" +/* + * Authors (alphabetical order) + * - Bertrand Songis + * - Bernet Andre + * - Kjell Kernen + * - Martin Hotar + * - Romolo Manfredini + * + * opentx is based on code named + * gruvin9x by Bryan J. Rentoul: http://code.google.com/p/gruvin9x/, + * er9x by Erez Raviv: http://code.google.com/p/er9x/, + * and the original (and ongoing) project by + * Thomas Husterer, th9x: http://code.google.com/p/th9x/ + * + * 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. + * + * + * + * + * !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!! + * + * In order to make translations easier fr.h.txt is parsed and national + * characters are replaced by bitmap codes. The result is fr.h. + * + * See translate.py in the util catalog for the list of character codes + * + * !!!!! DO NOT EDIT fr.h - EDIT fr.h.txt INSTEAD !!!!!!! + */ + /* Formatting octal codes available in TR_ strings: + * \037\x -sets LCD x-coord (x value in octal) + * \036 -newline + * \001 to \035 -extended spacing (value * FW/2) + * \0 -ends actual string + */ + +// NON ZERO TERMINATED STRINGS +#define LEN_OFFON "\003" +#define TR_OFFON "OFF""ON\0" + +#define LEN_MMMINV "\003" +#define TR_MMMINV "---""INV" + +#define LEN_NCHANNELS "\004" +#define TR_NCHANNELS "\0014CH\0016CH\0018CH10CH12CH14CH16CH" + +#define LEN_VBEEPMODE "\005" +#define TR_VBEEPMODE "Aucun""Alarm""NoKey""Tout\0" + +#define LEN_VBEEPLEN "\005" +#define TR_VBEEPLEN "0====""=0===""==0==""===0=""====0" + +#define LEN_VRENAVIG "\003" +#define TR_VRENAVIG "NonREaREb" + +#define LEN_VBLMODE TR("\004","\011") +#define TR_VBLMODE TR("OFF\0""Btns""Ctrl""Tous""ON\0","OFF\0 ""Touches\0 ""Controles""Tous\0 ""ON\0 ") + +#define LEN_TRNMODE "\003" +#define TR_TRNMODE "OFF"" +="" :=" + +#define LEN_TRNCHN "\003" +#define TR_TRNCHN "CH1CH2CH3CH4" + +#define LEN_UART3MODES "\017" +#define TR_UART3MODES "OFF\0 ""Recopie S-Port\0""Debug\0 " + +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Potentiomètre\0 ""Inter multi-pos" + +#define LEN_DATETIME "\005" +#define TR_DATETIME "DATE:""HEURE" + +#define LEN_VLCD "\006" +#define TR_VLCD "NormalOptrex" + +#define LEN_COUNTRYCODES TR("\002", "\006") +#define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe") + +#define LEN_VTRIMINC TR("\006","\013") +#define TR_VTRIMINC TR("Expo\0 ""ExFin\0""Fin\0 ""Moyen\0""Gros\0 ","Exponentiel""Extra Fin\0 ""Fin\0 ""Moyen\0 ""Grossier\0 ") + +#define LEN_VBEEPCOUNTDOWN "\006" +#define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0" + +#define LEN_RETA123 "\001" + +#if defined(PCBGRUVIN9X) + #if ROTARY_ENCODERS > 2 + #define TR_RETA123 "DPGA123abcd" + #else + #define TR_RETA123 "DPGA123ab" + #endif +#elif defined(PCBTARANIS) + #define TR_RETA123 "DPGA12LR" +#else + #define TR_RETA123 "DPGA123" +#endif + +#define LEN_VPROTOS "\006" + +#if defined(PXX) + #define TR_PXX "PXX\0 " +#elif defined(DSM2) || defined(IRPROTOS) + #define TR_PXX "[PXX]\0" +#else + #define TR_PXX +#endif + +#if defined(DSM2) + #define TR_DSM2 "LP45\0 ""DSM2\0 ""DSMX\0 " +#elif defined(IRPROTOS) + #define TR_DSM2 "[LP45]""[DSM2]""[DSMX]" +#else + #define TR_DSM2 +#endif + +#if defined(IRPROTOS) + #define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0" +#else + #define TR_IRPROTOS +#endif + +#if defined(CPUARM) + #define TR_XPPM +#else + #define TR_XPPM "PPM16\0""PPMsim" +#endif + +#define TR_VPROTOS "PPM\0 " TR_XPPM TR_PXX TR_DSM2 TR_IRPROTOS + +#define LEN_POSNEG "\003" +#define TR_POSNEG "POS""NEG" + +#define LEN_VCURVEFUNC "\003" +#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|" + +#define LEN_VMLTPX TR("\010","\013") +#define TR_VMLTPX TR("Ajoute\0 ""Multipl.""Remplace","Additionner""Multiplier\0""Remplacer\0 ") + +#define LEN_VMLTPX2 "\002" +#define TR_VMLTPX2 "+=""*="":=" + +#define LEN_VMIXTRIMS "\003" +#define TR_VMIXTRIMS "OFF""ON\0""Dir""Prf""Gaz""Ail" + +#define LEN_VCSWFUNC "\005" +#define TR_VCSWFUNC "---\0 ""a{x\0 ""a>x\0 ""ax""|a|b\0 ""a" + +#define LEN_VTELPROTO "\007" +#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh""Halcyon" + +#define LEN_VOLTSRC "\003" +#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" + +#define LEN_VARIOSRC "\005" +#if defined(FRSKY_SPORT) + #define TR_VARIOSRC "Vario""A1\0 ""A2\0" +#else + #define TR_VARIOSRC "Alti\0""Alti+""Vario""A1\0 ""A2\0" +#endif + +#define LEN_VSCREEN TR("\004","\007") +#define TR_VSCREEN TR("Val.""Bars","Valeurs""Barres\0") + +#define LEN_GPSFORMAT "\004" +#define TR_GPSFORMAT "DMS\0NMEA" + +#define LEN2_VTEMPLATES 15 +#define LEN_VTEMPLATES "\017" +#define TR_VTEMPLATES "Suppr Mixages\0 ""4 Voies simple\0""Coupure Gaz\0 ""Empennage V\0 ""Elevon\\Delta\0 ""eCCPM\0 ""Conf. Hélico\0 ""Test Servo\0 " + +#define LEN_VSWASHTYPE "\004" +#define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" + +#define LEN_VKEYS "\005" +#define TR_VKEYS TR("Menu\0""Exit\0""Bas\0 ""Haut\0""Droit""Gauch", "Menu\0""Exit\0""Enter""Page\0""Plus\0""Minus") + +#define LEN_VRENCODERS "\003" +#define TR_VRENCODERS "REa""REb" + +#define LEN_VSWITCHES "\003" +#define LEN_VSRCRAW "\004" + +#if defined(PCBTARANIS) + #define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 " + #define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 " +#elif defined(EXTRA_3POS) + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 " + #define TR_SW_VSRCRAW "3P1\0""3P2\0" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2""ID3""ID4""ID5" +#else + #define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 " + #define TR_SW_VSRCRAW "3POS" + #define TR_9X_3POS_SWITCHES "ID0""ID1""ID2" +#endif + +#if defined(CPUARM) + #define TR_CUSTOMSW "IP1""IP2""IP3""IP4""IP5""IP6""IP7""IP8""IP9""IPA""IPB""IPC""IPD""IPE""IPF""IPG""IPH""IPI""IPJ""IPK""IPL""IPM""IPN""IPO""IPP""IPQ""IPR""IPS""IPT""IPU""IPV""IPW" +#elif defined(PCBGRUVIN9X) || defined(CPUM2561) || defined(CPUM128) + #define TR_CUSTOMSW "IP1""IP2""IP3""IP4""IP5""IP6""IP7""IP8""IP9""IPA""IPB""IPC""IPD""IPE""IPF" +#else + #define TR_CUSTOMSW "IP1""IP2""IP3""IP4""IP5""IP6""IP7""IP8""IP9""IPA""IPB""IPC" +#endif + +#if defined(PCBTARANIS) + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" +#else + #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "1*\0" +#endif + +#if defined(PCBSKY9X) + #define TR_ROTARY_ENCODERS_VSRCRAW "REnc" +#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2 + #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd " +#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2 + #define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb " +#else + #define TR_ROTARY_ENCODERS_VSRCRAW +#endif + +#if defined(HELI) +#define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3" +#else +#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]" +#endif + +#define TR_VSRCRAW "---\0""Dir\0""Prf\0""Gaz\0""Ail\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "MAX\0" TR_CYC_VSRCRAW "TrmD" "TrmP" "TrmG" "TrmA" TR_SW_VSRCRAW + +#define LEN_VTMRMODES "\003" +#define TR_VTMRMODES "OFF""ABS""GZs""GZ%""GZt" + +#define LEN_VTRAINERMODES "\006" +#define TR_VTRAINERMODES "Maître""Elève\0" + +#define LEN_VFAILSAFE "\011" +#define TR_VFAILSAFE "Maintien\0""Prédéfini""Pas d'imp" + +#if defined(MAVLINK) + #define LEN_MAVLINK_BAUDS "\006" + #define TR_MAVLINK_BAUDS "4800 ""9600 ""14400 ""19200 ""38400 ""57600 ""76800 ""115200" + #define LEN_MAVLINK_AC_MODES "\011" + #define TR_MAVLINK_AC_MODES "Stabilize""Acro ""Alt Hold ""Auto ""Guided ""Loiter ""RTL ""Circle ""Pos Hold ""Land ""OF Loiter""Toy A ""Toy M ""INVALID " + #define LEN_MAVLINK_AP_MODES "\015" + #define TR_MAVLINK_AP_MODES "Manual ""Circle ""Stabilize ""Training ""Fly by Wire A""Fly by Wire A""Auto ""RTL ""Loiter ""Guided ""Initialising ""INVALID " +#endif + +// ZERO TERMINATED STRINGS +#define INDENT "\001" +#define LEN_INDENT 1 +#define INDENT_WIDTH (FW/2) + +#if defined(PCBTARANIS) + #define TR_ENTER "[ENTER]" +#else + #define TR_ENTER "[MENU]" +#endif + +#define TR_POPUPS TR_ENTER"\010[EXIT]" +#define OFS_EXIT sizeof(TR_ENTER) + +#define TR_MENUWHENDONE CENTER"\006"TR_ENTER" QUAND PRET" +#define TR_FREE "disp" +#define TR_DELETEMODEL "SUPPRIMER MODELE" +#define TR_COPYINGMODEL "Copie..." +#define TR_MOVINGMODEL "Déplacement..." +#define TR_LOADINGMODEL "Chargement..." +#define TR_NAME "Nom" +#define TR_MODELNAME TR("Nom modèle","Nom du modèle") +#define TR_PHASENAME "Nom phase" +#define TR_MIXNAME TR("Nom mix.","Nom du mixeur") +#define TR_INPUTNAME "Input Name" +#if defined(PCBTARANIS) + #define TR_EXPONAME "Nom ligne" +#else + #define TR_EXPONAME "Nom expo" +#endif +#define TR_BITMAP "Image du modèle" +#define TR_TIMER "Chrono " +#define TR_ELIMITS TR("Limites ét","Limites étendues") +#define TR_ETRIMS TR("Trims ét.","Trims étendus") +#define TR_TRIMINC TR("Pas Trim","Pas des trims") +#define TR_TTRACE "Source gaz" +#define TR_TTRIM "Trim gaz" +#define TR_BEEPCTR TR("Bips centr","Bips centrage") +#define TR_PROTO TR(INDENT"Proto.",INDENT"Protocole") +#define TR_PPMFRAME INDENT"Trame PPM" +#define TR_MS "ms" +#define TR_SWITCH TR("Inter","Interrupteur") +#define TR_TRIMS "Trims" +#define TR_FADEIN "Fondu ON" +#define TR_FADEOUT "Fondu OFF" +#define TR_DEFAULT "(défaut)" +#define TR_CHECKTRIMS "\006Vérif\012Trims" +#define OFS_CHECKTRIMS (9*FW) +#define TR_SWASHTYPE TR("Type de Plat.","Type de plateau") +#define TR_COLLECTIVE TR("Collectif","Voie du pas collectif") +#define TR_SWASHRING TR("Limite Cycl.","Limite du cyclique") +#define TR_ELEDIRECTION TR("Inv. longitud.","Inversion longitudinal") +#define TR_AILDIRECTION TR("Inv. latéral","Inversion latéral") +#define TR_COLDIRECTION TR("Inv. collectif","Inversion collectif") +#define TR_MODE INDENT"Mode" +#define TR_NOFREEEXPO "Max expos atteint!" +#define TR_NOFREEMIXER "Max mixages atteint!" +#define TR_INSERTMIX "INSERER MIXAGE" +#define TR_EDITMIX "EDITER MIXAGE" +#define TR_SOURCE INDENT"Source" +#define TR_WEIGHT "Ratio" +#define TR_EXPO TR("Expo","Exponentiel") +#define TR_SIDE "Coté" +#define TR_DIFFERENTIAL "Différentiel" +#define TR_OFFSET INDENT"Décalage" +#define TR_TRIM "Trim" +#define TR_DREX "DRex" +#define TR_CURVE "Courbe" +#define TR_FLMODE TR("Phase","Phases") +#define TR_MIXWARNING "Alerte" +#define TR_OFF "OFF" +#define TR_MULTPX "Opération" +#define TR_DELAYDOWN "Retard bas" +#define TR_DELAYUP "Retard haut" +#define TR_SLOWDOWN "Ralenti bas" +#define TR_SLOWUP "Ralenti haut" +#define TR_MIXER "MIXEUR" +#define TR_CV "CB" +#define TR_GV "VG" +#define TR_ACHANNEL "A" +#define TR_RANGE INDENT"Plage" +#define TR_BAR "Barre" +#define TR_ALARM INDENT"Alarme" +#define TR_USRDATA "Données" +#define TR_BLADES INDENT"Pales" +#define TR_SCREEN "Ecran " +#define TR_SOUND_LABEL "Son" +#define TR_LENGTH INDENT"Durée" +#define TR_SPKRPITCH INDENT"Tonalité" +#define TR_HAPTIC_LABEL "Vibreur" +#define TR_HAPTICSTRENGTH INDENT"Force" +#define TR_CONTRAST "Contraste" +#define TR_ALARMS_LABEL "Alarmes" +#define TR_BATTERY_RANGE "Plage batterie" +#define TR_BATTERYWARNING TR(INDENT"Batterie",INDENT"Batterie faible") +#define TR_INACTIVITYALARM INDENT"Inactivité" +#define TR_MEMORYWARNING INDENT"Mémoire pleine" +#define TR_ALARMWARNING TR(INDENT"Silence",INDENT"Sons désactivés") +#define TR_RENAVIG "Navig EncRot" +#define TR_THROTTLEREVERSE TR("Inv. gaz","Inversion gaz") +#define TR_MINUTEBEEP TR(INDENT"Bip min.",INDENT"Annonces minutes") +#define TR_BEEPCOUNTDOWN TR(INDENT"Bip fin",INDENT"Compte à rebours") +#define TR_PERSISTENT TR(INDENT"Persist.",INDENT"Persistant") +#define TR_BACKLIGHT_LABEL "Rétroéclairage" +#define TR_BLDELAY INDENT"Durée" +#define TR_BLONBRIGHTNESS INDENT"Luminosité ON" +#define TR_BLOFFBRIGHTNESS INDENT"Luminosité OFF" +#define TR_SPLASHSCREEN "Logo d'accueil" +#define TR_THROTTLEWARNING "Alerte gaz" +#define TR_SWITCHWARNING TR("Alerte int","Alerte interrupt.") +#define TR_TIMEZONE "Fuseau horaire" +#define TR_RXCHANNELORD TR("Ordre voies RX","Ordre des voies préféré") +#define TR_SLAVE "Elève" +#define TR_MODESRC "Mode\006% Source" +#define TR_MULTIPLIER "Multiplieur" +#define TR_CAL "Cal" +#define TR_VTRIM "Trim- +" +#define TR_BG "BG:" +#define TR_MENUTOSTART CENTER"\006" TR_ENTER " POUR DEBUT" +#define TR_SETMIDPOINT CENTER"\010REGLER NEUTRES" +#define TR_MOVESTICKSPOTS CENTER"\004BOUGER STICKS/POTS" +#define TR_RXBATT "Batt.RX" +#define TR_TXnRX "Tx:\0Rx:" +#define OFS_RX 4 +#define TR_ACCEL "Acc:" +#define TR_NODATA "NO DATA" +#define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" +#define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" +#define STR_US (STR_TMR1LATMAXUS+13) +#define TR_TMR1LATMINUS "Tmr1Lat min\037\124us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\037\124us" + +#if defined(CPUARM) + #define TR_TMIXMAXMS "Tmix max" + #define TR_FREESTACKMINB "Free Stack" +#else + #define TR_TMIXMAXMS "Tmix max\037\124ms" + #define TR_FREESTACKMINB "Free Stack\037\124b" +#endif + +#define TR_MENUTORESET CENTER TR_ENTER" pour reset" +#define TR_PPM "PPM" +#define TR_CH "CH" +#define TR_MODEL "MODELE" +#define TR_FP "PV" +#define TR_MIX "MIX" +#define TR_EEPROMLOWMEM "EEPROM pleine!" +#define TR_ALERT "\014ALERTE" +#define TR_PRESSANYKEYTOSKIP "Touche pour ignorer" +#define TR_THROTTLENOTIDLE "Gaz pas à zéro" +#define TR_ALARMSDISABLED "Alarmes Désactivées" +#define TR_PRESSANYKEY TR("Touche pour continuer","Touche pour continuer") +#define TR_BADEEPROMDATA "EEPROM corrompue" +#define TR_EEPROMFORMATTING "Formatage EEPROM" +#define TR_EEPROMOVERFLOW "Dépassement EEPROM" +#define TR_MENURADIOSETUP "CONFIG RADIO" +#define TR_MENUDATEANDTIME "DATE ET HEURE" +#define TR_MENUTRAINER "ECOLAGE" +#define TR_MENUVERSION "VERSION" +#define TR_MENUDIAG TR("INTERS","TEST INTERRUPTEURS") +#define TR_MENUANA TR("ANAS","ENTREES ANALOGIQUES") +#define TR_MENUCALIBRATION "CALIBRATION" +#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#define TR_MENUMODELSEL "MODELES" +#define TR_MENUSETUP TR("CONF. MODELE","CONFIGURATION") +#define TR_MENUFLIGHTPHASE "PHASE DE VOL" +#define TR_MENUFLIGHTPHASES "PHASES DE VOL" +#define TR_MENUHELISETUP TR("CONF.HELI","CONFIGURATION HELICO") + +#if defined(PCBTARANIS) + #define TR_MENUINPUTS "ENTREES" + #define TR_MENULIMITS "SORTIES" +#elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... + #define TR_MENUINPUTS "MANCHES" + #define TR_MENULIMITS "SORTIES" +#else + #define TR_MENUINPUTS "DR/EXPO" + #define TR_MENULIMITS "LIMITES" +#endif + +#define TR_MENUCURVES "COURBES" +#define TR_MENUCURVE "COURBE" +#define TR_MENUCUSTOMSWITCH "INTER PERS." +#define TR_MENUCUSTOMSWITCHES "INTERS PERS." +#define TR_MENUCUSTOMFUNC TR("FONCTIONS SPEC.","FONCTIONS SPECIALES") +#define TR_MENUTELEMETRY "TELEMESURE" +#define TR_MENUTEMPLATES "GABARITS" +#define TR_MENUSTAT TR("STATS","STATISTIQUES") +#define TR_MENUDEBUG "DEBUG" +#define TR_RXNUM TR(INDENT"NumRx",INDENT"No. récepteur") +#define TR_SYNCMENU "Sync [MENU]" +#define TR_LIMIT INDENT"Limite" +#define TR_MINRSSI "RSSI Min." +#define TR_LATITUDE "Latitude" +#define TR_LONGITUDE "Longitude" +#define TR_GPSCOORD TR("Coordonnées","Coordonnées GPS") +#define TR_VARIO TR("Vario","Variomètre") +#define TR_SHUTDOWN "ARRET EN COURS" +#define TR_BATT_CALIB "Calib. Batterie" +#define TR_CURRENT_CALIB "Calib. Courant" +#define TR_VOLTAGE INDENT"Tension" +#define TR_CURRENT INDENT"Courant" +#define TR_SELECT_MODEL "Sélect. Modèle" +#define TR_CREATE_MODEL "Créer Modèle" +#define TR_COPY_MODEL "Copier Modèle" +#define TR_MOVE_MODEL "Déplacer Modèle" +#define TR_BACKUP_MODEL "Archiver Modèle" +#define TR_DELETE_MODEL "Supprimer Modèle" +#define TR_RESTORE_MODEL "Restaurer Modèle" +#define TR_SDCARD_ERROR "Erreur carte SD" +#define TR_NO_SDCARD "Pas de carte SD" +#define TR_INCOMPATIBLE "Incompatible" +#define TR_WARNING "ALERTE" +#define TR_EEPROMWARN "EEPROM" +#define TR_THROTTLEWARN "GAZ" +#define TR_ALARMSWARN "SON" +#define TR_SWITCHWARN "INTERS" +#define TR_INVERT_THR "Inverser Gaz?" +#define TR_SPEAKER_VOLUME INDENT "Volume" +#define TR_LCD "Afficheur" +#define TR_BRIGHTNESS INDENT "Luminosité" +#define TR_CPU_TEMP "Temp. CPU\016>" +#define TR_CPU_CURRENT "Courant\022>" +#define TR_CPU_MAH "Consomm." +#define TR_COPROC "CoProc." +#define TR_COPROC_TEMP "Temp. MB \016>" +#define TR_CAPAWARNING INDENT "Capacité Basse" +#define TR_TEMPWARNING INDENT "Surchauffe" +#define TR_FUNC TR("Fonc", "Fonction") +#define TR_V1 "V1" +#define TR_V2 "V2" +#define TR_DURATION "Durée" +#define TR_DELAY "Délai" +#define TR_SD_CARD "Carte SD" +#define TR_SDHC_CARD "Carte SD-HC" +#define TR_NO_SOUNDS_ON_SD "Aucun son sur SD" +#define TR_NO_MODELS_ON_SD "Aucun modèle SD" +#define TR_NO_BITMAPS_ON_SD "Aucun Bitmap SD" +#define TR_PLAY_FILE "Lire" +#define TR_DELETE_FILE "Supprimer" +#define TR_COPY_FILE "Copier" +#define TR_RENAME_FILE "Renommer" +#define TR_ASSIGN_BITMAP "Sélectionner image" +#define TR_REMOVED " supprimé" +#define TR_SD_INFO "Information" +#define TR_SD_FORMAT "Formater" +#define TR_NA "N/D" +#define TR_HARDWARE "MATERIEL" +#define TR_FORMATTING "Formatage..." +#define TR_TEMP_CALIB "Calib. temp" +#define TR_TIME "Heure" +#define TR_BAUDRATE "Baudrate BT" +#define TR_SD_INFO_TITLE "INFO SD" +#define TR_SD_TYPE "Type:" +#define TR_SD_SPEED "Vitesse:" +#define TR_SD_SECTORS "Secteurs:" +#define TR_SD_SIZE "Taille:" +#define TR_TYPE "Type" +#define TR_GLOBAL_VARS "Variables Globales" +#define TR_GLOBAL_VAR "Variable globale" +#define TR_MENUGLOBALVARS "VARIABLES GLOBALES" +#define TR_OWN "Pers" +#define TR_DATE "Date" +#define TR_ROTARY_ENCODER "Enc.Rot." +#define TR_CHANNELS_MONITOR "MONITEUR CANAUX" +#define TR_INTERNALRF "HF interne" +#define TR_EXTERNALRF "HF externe" +#define TR_FAILSAFE INDENT"Type failsafe" +#define TR_FAILSAFESET "REGLAGES FAILSAFE" +#define TR_COUNTRYCODE "Zone géo." +#define TR_VOICELANG TR("Langue voix","Langue annonces vocales") +#define TR_UNITSSYSTEM "Unités" +#define TR_EDIT "Editer" +#define TR_INSERT_BEFORE "Insérer avant" +#define TR_INSERT_AFTER "Insérer après" +#define TR_COPY "Copier" +#define TR_MOVE "Déplacer" +#define TR_PASTE "Coller" +#define TR_DELETE "Effacer" +#define TR_INSERT "Insérer" +#define TR_RESET_FLIGHT TR("Réinit. vol","Réinitialiser vol") +#define TR_RESET_TIMER1 TR("Réinit. Timer1","Réinitialiser Timer1") +#define TR_RESET_TIMER2 TR("Réinit. Timer2","Réinitialiser Timer2") +#define TR_RESET_TELEMETRY TR("Réinit. Télém.","Réinit. Télémesure") +#define TR_STATISTICS "Statistiques" +#define TR_ABOUT_US "A propos" +#define TR_AND_SWITCH "ET suppl." +#define TR_CF "FS" +#define TR_SPEAKER INDENT"Haut-p." +#define TR_BUZZER INDENT"Bipeur" +#define TR_BYTES "bytes" +#define TR_MODULE_BIND "[Bind]" +#define TR_MODULE_RANGE "[Port.]" +#define TR_RESET_BTN "[RAZ]" +#define TR_SET "[Déf.]" +#define TR_TRAINER "Ecolage" +#define TR_ANTENNAPROBLEM CENTER "Antenne radio défectueuse!" +#define TR_MODELIDUSED TR("ID déjà affecté","No de modèle déjà utilisé") +#define TR_MODULE INDENT "Type de module" +#define TR_CHANNELRANGE INDENT "Plage de canaux" +#define TR_LOWALARM INDENT "Alarme basse" +#define TR_CRITICALALARM INDENT "Alarme critique" +#define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh",INDENT "Enregistrer mAh") +#define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS") +#define TR_UART3MODE "Port série" +#define TR_POT1TYPE "Type S1" +#define TR_POT2TYPE "Type S2" + +#if defined(MAVLINK) + #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max" + #define TR_MAVLINK_PC_RSSI_EN_LABEL "PC RSSI EN" + #define TR_MAVMENUSETUP_TITLE "Config Mavlink" + #define TR_MAVLINK_BAUD_LABEL "Baudrate" + #define TR_MAVLINK_INFOS "INFOS" + #define TR_MAVLINK_MODE "MODE" + #define TR_MAVLINK_CUR_MODE "Mode courant" + #define TR_MAVLINK_ARMED "Armé" + #define TR_MAVLINK_BAT_MENU_TITLE "BAT RSSI" + #define TR_MAVLINK_BATTERY_LABEL "Accu propulsion" + #define TR_MAVLINK_RC_RSSI_LABEL "RC RSSI" + #define TR_MAVLINK_PC_RSSI_LABEL "PC RSSI" + #define TR_MAVLINK_NAV_MENU_TITLE "NAV" + #define TR_MAVLINK_COURSE "Course" + #define TR_MAVLINK_HEADING "Cap" + #define TR_MAVLINK_BEARING "Relèv." + #define TR_MAVLINK_ALTITUDE "Altitude" + #define TR_MAVLINK_GPS "GPS" + #define TR_MAVLINK_NO_FIX "NO Fix" + #define TR_MAVLINK_SAT "SAT" + #define TR_MAVLINK_HDOP "HDOP" + #define TR_MAVLINK_LAT "LAT" + #define TR_MAVLINK_LON "LON" +#endif + +// Taranis column headers +#define TR_PHASES_HEADERS { " Nom ", " Inter ", " Trims ", " Fondu ON ", " Fondu OFF " } +#define TR_LIMITS_HEADERS { " Nom ", " Subtrim ", " Min ", " Max ", " Direction ", " Curve ", " Neutre PPM ", " Mode subtrim " } +#define TR_CSW_HEADERS { " Fonction ", " V1 ", " V2 ", " ET suppl. ", " Durée ", " Délai " } + +//Taranis About screen +#define TR_ABOUTUS TR(" A PROPOS ","A PROPOS") + +#define TR_ABOUT_OPENTX_1 TR("OpenTX\001est\001libre,\001non-","OpenTX est libre, non-") +#define TR_ABOUT_OPENTX_2 TR("commercial,\001et\001offert\001sans","commercial et n'offre aucune") +#define TR_ABOUT_OPENTX_3 TR("garantie.\001Il\001est\001développé","garantie. Il a été développé") +#define TR_ABOUT_OPENTX_4 TR("gratuitement.\001Donations","gratuitement. Vos donations") +#define TR_ABOUT_OPENTX_5 TR("bienvenues!","sont bienvenues!") + +#define TR_ABOUT_BERTRAND_1 "Bertrand Songis" +#define TR_ABOUT_BERTRAND_2 TR("Auteur\001principal\001d'openTx","Auteur principal d'openTx") +#define TR_ABOUT_BERTRAND_3 TR("Codéveloppeur\001de\001C9X","Codéveloppeur de Companion9x") + +#define TR_ABOUT_MIKE_1 "Mike Blandford" +#define TR_ABOUT_MIKE_2 "Maître du code et des" +#define TR_ABOUT_MIKE_3 "drivers" +#define TR_ABOUT_MIKE_4 "" + +#define TR_ABOUT_ROMOLO_1 "Romolo Manfredini" +#define TR_ABOUT_ROMOLO_2 "Développeur principal de" +#define TR_ABOUT_ROMOLO_3 "Companion9x" + +#define TR_ABOUT_ANDRE_1 "André Bernet" +#define TR_ABOUT_ANDRE_2 TR("Fonctionsé,\001usabilité,","Fonctionnalités, usabilité,") +#define TR_ABOUT_ANDRE_3 TR("débogage,\001documentation","débogage, documentation") + +#define TR_ABOUT_ROB_1 "Rob Thomson" +#define TR_ABOUT_ROB_2 "Webmaster d'openrcforums" + +#define TR_ABOUT_MARTIN_1 "Martin Hotar" +#define TR_ABOUT_MARTIN_2 "Design graphique" + +#if defined(PCBTARANIS) + #define TR_ABOUT_HARDWARE_1 "FrSky" + #define TR_ABOUT_HARDWARE_2 "Développeur/fabricant" + #define TR_ABOUT_HARDWARE_3 "du matériel" +#else + #define TR_ABOUT_HARDWARE_1 "Brent Nelson" + #define TR_ABOUT_HARDWARE_2 "Développeur/fabricant" + #define TR_ABOUT_HARDWARE_3 "de la carte Sky9x" +#endif + +#define TR_ABOUT_PARENTS_1 "Projets parents" +#define TR_ABOUT_PARENTS_2 "ersky9x (Mike Blandford)" +#define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)" +#define TR_ABOUT_PARENTS_4 "TH9X (Thomas Husterer)" + +#define TR_CHR_SHORT 's' +#define TR_CHR_LONG 'l' +#define TR_CHR_TOGGLE 't' +#define TR_CHR_HOUR 'h' +#define TR_CHR_INPUT 'I' // Values between A-I will work + +#define TR_BEEP_VOLUME "Beep Volume" +#define TR_WAV_VOLUME "Wav Volume" +#define TR_VARIO_VOLUME "Vario Volume" +#define TR_BG_VOLUME "Bg Volume" + +#define TR_TOP_BAR "Barre titre" +#define TR_ALTITUDE INDENT "Altitude" +#define TR_MODS_FORBIDDEN "Modifications désactivées!" +#define TR_UNLOCKED "Déverrouillé" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 8a4088fd5..8f006b74b 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -304,7 +304,7 @@ #define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0" #define LEN_VKEYS "\005" -#define TR_VKEYS TR(" Menu""Wyjdź""W dół""Wgórę""Wpraw""Wlewo", " Menu""Wyjdź""W dół""Wgórę""Wpraw""Wlewo") +#define TR_VKEYS TR("Menu\0""Wyjdź""W dół""Wgórę""Wpraw""Wlewo", "Menu\0""Wyjdź""W dół""Wgórę""Wpraw""Wlewo") #define LEN_VRENCODERS "\003" #define TR_VRENCODERS "REa""REb" @@ -390,7 +390,7 @@ #define TR_POPUPS TR_ENTER"\010[WYJŚCIE]" #define OFS_EXIT sizeof(TR_ENTER) -#define TR_MENUWHENDONE CENTER "\011"TR_ENTER" > DALEJ" +#define TR_MENUWHENDONE CENTER "\012"TR_ENTER" > DALEJ" #define TR_FREE TR("wolne:", "wolne") #define TR_DELETEMODEL "SKASUJ MODEL" #define TR_COPYINGMODEL "Kopiuj model.." @@ -495,8 +495,8 @@ #define TR_VTRIM "Trymer- +" #define TR_BG "BG:" #define TR_MENUTOSTART CENTER "\011" TR_ENTER " = START" -#define TR_SETMIDPOINT TR(CENTER "\001Ustaw drążki/potencj na środku","\005Ustaw drązki/potencj na środku") -#define TR_MOVESTICKSPOTS TR(CENTER "\004Poruszaj drążkami i potenc.","\010Poruszaj drążkami i potenc.") +#define TR_SETMIDPOINT TR(CENTER "\002Ustaw drążki/potencj","\010Ustaw drązki/potencj na środku") +#define TR_MOVESTICKSPOTS TR(CENTER "Poruszaj drążkami i pot","\014Poruszaj drążkami i potenc.") #define TR_RXBATT "Rx Bat.:" #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 From 9744eb966c33e9fc34081ccc198fc1bcedb9482e Mon Sep 17 00:00:00 2001 From: mhotar Date: Tue, 4 Feb 2014 20:25:35 +0100 Subject: [PATCH 29/73] pointer and ":" fix --- radio/src/opentx.cpp | 6 +++--- radio/src/stamp.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 88a79d328..0aeccb617 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -4884,9 +4884,9 @@ void stack_paint() p = (unsigned char *) STACKPTR ; q = &__bss_end ; p -= 2 ; - while ( p > q ) - *p = 0x55 ; - p--; + while ( p > q ) { + *p-- = 0x55 ; + } } uint16_t stack_free() diff --git a/radio/src/stamp.cpp b/radio/src/stamp.cpp index 70147cb0c..cce6febc4 100644 --- a/radio/src/stamp.cpp +++ b/radio/src/stamp.cpp @@ -41,7 +41,7 @@ #define DEFNUMSTR(s) STR2(s) #if defined(PCBSTD) -const pm_char vers_stamp[] PROGMEM = "VERS\037\045" VERS_STR "\036DATE\037\045" DATE_STR"\036TIME\037\045" TIME_STR "\036EEPR\037\045" DEFNUMSTR(EEPROM_VER) "-" DEFNUMSTR(EEPROM_VARIANT); +const pm_char vers_stamp[] PROGMEM = "VERS\037\033: " VERS_STR "\036DATE\037\033: " DATE_STR"\036TIME\037\033: " TIME_STR "\036EEPR\037\033: " DEFNUMSTR(EEPROM_VER) "-" DEFNUMSTR(EEPROM_VARIANT); #else const pm_char vers_stamp[] PROGMEM = "VERS\037\033: " VERS_STR "\036DATE\037\033: " DATE_STR"\036TIME\037\033: " TIME_STR "\036EEPR\037\033: " DEFNUMSTR(EEPROM_VER); #endif From cfa5382969a5842dd1b9bde69b956be23e83785b Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 4 Feb 2014 22:26:08 +0100 Subject: [PATCH 30/73] Update DONATIONS.txt --- DONATIONS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index d38356161..95ccf5c4a 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -313,3 +313,4 @@ Bradley Murchie Richard Fahie James Kaufman Henry Deucker +Christian Fuchs From 0ecadadeb42dd8d9fe1c50fcbf7a990d02a4c78d Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Tue, 4 Feb 2014 22:37:13 +0100 Subject: [PATCH 31/73] Settings menu created which will hold all configurations and settings. Language, theme and icon size broken out of the preferences and put into the menu, where they belong. --- companion/src/mainwindow.cpp | 160 +++- companion/src/mainwindow.h | 49 +- companion/src/preferencesdialog.cpp | 32 - companion/src/preferencesdialog.ui | 367 +++------ companion/src/translations/companion_cs.ts | 778 +++++++++++-------- companion/src/translations/companion_de.ts | 838 +++++++++++++-------- companion/src/translations/companion_fr.ts | 778 +++++++++++-------- companion/src/translations/companion_he.ts | 796 +++++++++++-------- companion/src/translations/companion_it.ts | 778 +++++++++++-------- companion/src/translations/companion_pl.ts | 758 ++++++++++++------- companion/src/translations/companion_pt.ts | 782 +++++++++++-------- companion/src/translations/companion_ru.ts | 780 +++++++++++-------- companion/src/translations/companion_sv.ts | 464 +++++++++--- 13 files changed, 4506 insertions(+), 2854 deletions(-) diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index 720a003a5..c9857bf05 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -641,6 +641,42 @@ void MainWindow::closeEvent(QCloseEvent *event) } } +void MainWindow::setLanguage(QString langString) +{ + QSettings settings; + settings.setValue("locale", langString ); + + QMessageBox msgBox; + msgBox.setText(tr("The selected language will be used the next time you start Companion.")); + msgBox.setIcon(QMessageBox::Information); + msgBox.addButton(tr("OK"), QMessageBox::AcceptRole); + msgBox.exec(); +} + +void MainWindow::setTheme(int index) +{ + QSettings settings; + settings.setValue("theme", index ); + + QMessageBox msgBox; + msgBox.setText(tr("The new theme will be loaded the next time you start Companion.")); + msgBox.setIcon(QMessageBox::Information); + msgBox.addButton(tr("OK"), QMessageBox::AcceptRole); + msgBox.exec(); +} + +void MainWindow::setIconThemeSize(int index) +{ + QSettings settings; + settings.setValue("icon_size", index ); + + QMessageBox msgBox; + msgBox.setText(tr("The icon size will be used the next time you start Companion.")); + msgBox.setIcon(QMessageBox::Information); + msgBox.addButton(tr("OK"), QMessageBox::AcceptRole); + msgBox.exec(); +} + void MainWindow::newFile() { MdiChild *child = createMdiChild(); @@ -648,6 +684,7 @@ void MainWindow::newFile() child->show(); } + void MainWindow::openFile() { QSettings settings; @@ -1630,7 +1667,7 @@ void MainWindow::createActions() logsAct->setStatusTip(tr("Open log file")); connect(logsAct, SIGNAL(triggered()), this, SLOT(logFile())); - preferencesAct = new QAction(CompanionIcon("preferences.png"), tr("&Preferences..."), this); + preferencesAct = new QAction(CompanionIcon("preferences.png"), tr("&General Preferences..."), this); preferencesAct->setStatusTip(tr("Edit general preferences")); connect(preferencesAct, SIGNAL(triggered()), this, SLOT(preferences())); @@ -1655,7 +1692,7 @@ void MainWindow::createActions() compareAct->setEnabled(false); connect(compareAct, SIGNAL(triggered()), this, SLOT(compare())); - customizeSplashAct = new QAction(CompanionIcon("paintbrush.png"), tr("Customize your &TX..."), this); + customizeSplashAct = new QAction(CompanionIcon("paintbrush.png"), tr("Configure transmitter start screen..."), this); customizeSplashAct->setStatusTip(tr("Customize the splash screen of your TX")); connect(customizeSplashAct, SIGNAL(triggered()), this, SLOT(customizeSplash())); @@ -1708,7 +1745,7 @@ void MainWindow::createActions() burnFromFlashAct->setStatusTip(tr("Read firmware from transmitter")); connect(burnFromFlashAct,SIGNAL(triggered()),this,SLOT(burnFromFlash())); - burnConfigAct = new QAction(CompanionIcon("configure.png"), tr("&Configure..."), this); + burnConfigAct = new QAction(CompanionIcon("configure.png"), tr("&Configure connection software..."), this); burnConfigAct->setStatusTip(tr("Configure software for reading from and writing to the transmitter")); connect(burnConfigAct,SIGNAL(triggered()),this,SLOT(burnConfig())); EEPROMInterface *eepromInterface = GetEepromInterface(); @@ -1754,6 +1791,79 @@ void MainWindow::createActions() connect(profileActs[i], SIGNAL(triggered()), this, SLOT(loadProfile())); } updateProfilesActions(); + + classicThemeAct = new QAction(tr("Classic"), this); + classicThemeAct->setStatusTip(tr("The multicolor classical Companion icon theme")); + connect(classicThemeAct, SIGNAL(triggered()), this, SLOT(setClassicTheme())); + monoThemeAct = new QAction("Monochrome",this); + monoThemeAct->setStatusTip(tr("A monochrome black icon theme")); + connect(monoThemeAct, SIGNAL(triggered()), this, SLOT(setMonochromeTheme())); + monoWhiteThemeAct = new QAction("MonoWhite",this); + monoWhiteThemeAct->setStatusTip(tr("A monochrome white icon theme")); + connect(monoWhiteThemeAct, SIGNAL(triggered()), this, SLOT(setMonoWhiteTheme())); + monoBlueThemeAct = new QAction("MonoBlue",this); + monoBlueThemeAct->setStatusTip(tr("A monochrome blue icon theme")); + connect(monoBlueThemeAct, SIGNAL(triggered()), this, SLOT(setMonoBlueTheme())); + + smallIconAct = new QAction(tr("Small"),this); + smallIconAct->setStatusTip(tr("Use small toolbar icons")); + connect(smallIconAct, SIGNAL(triggered()), this, SLOT(setSmallIconThemeSize())); + normalIconAct = new QAction(this); + normalIconAct->setStatusTip(tr("Use normal size toolbar icons")); + normalIconAct->setText(tr("Normal")); + connect(normalIconAct, SIGNAL(triggered()), this, SLOT(setNormalIconThemeSize())); + bigIconAct = new QAction(this); + bigIconAct->setStatusTip(tr("Use big toolbar icons")); + bigIconAct->setText(tr("Big")); + connect(bigIconAct, SIGNAL(triggered()), this, SLOT(setBigIconThemeSize())); + hugeIconAct = new QAction(this); + hugeIconAct->setStatusTip(tr("Use huge toolbar icons")); + hugeIconAct->setText(tr("Huge")); + connect(hugeIconAct, SIGNAL(triggered()), this, SLOT(setHugeIconThemeSize())); + + defaultLanguageAct = new QAction(tr("System default language"),this); + defaultLanguageAct->setStatusTip(tr("Use system default language in menus")); + connect(defaultLanguageAct, SIGNAL(triggered()), this, SLOT(setDefaultLanguage())); + + czechLanguageAct = new QAction(tr("Czech"),this); + czechLanguageAct->setStatusTip(tr("Use Czech in menus")); + connect(czechLanguageAct, SIGNAL(triggered()), this, SLOT(setCZLanguage())); + + germanLanguageAct = new QAction(tr("German"),this); + germanLanguageAct->setStatusTip(tr("Use German in menus")); + connect(germanLanguageAct, SIGNAL(triggered()), this, SLOT(setDELanguage())); + + englishLanguageAct = new QAction(tr("English"),this); + englishLanguageAct->setStatusTip(tr("Use English in menus")); + connect(englishLanguageAct, SIGNAL(triggered()), this, SLOT(setENLanguage())); + + frenchLanguageAct = new QAction(tr("French"),this); + frenchLanguageAct->setStatusTip(tr("Use French in menus")); + connect(frenchLanguageAct, SIGNAL(triggered()), this, SLOT(setFRLanguage())); + + italianLanguageAct = new QAction(tr("Italian"),this); + italianLanguageAct->setStatusTip(tr("Use Italian in menus")); + connect(italianLanguageAct, SIGNAL(triggered()), this, SLOT(setITLanguage())); + + hebrewLanguageAct = new QAction(tr("Hebrew"),this); + hebrewLanguageAct->setStatusTip(tr("Use Hebrew in menus")); + connect(hebrewLanguageAct, SIGNAL(triggered()), this, SLOT(setHELanguage())); + + polishLanguageAct = new QAction(tr("Polish"),this); + polishLanguageAct->setStatusTip(tr("Use Polish in menus")); + connect(polishLanguageAct, SIGNAL(triggered()), this, SLOT(setPLLanguage())); + + portugueseLanguageAct = new QAction(tr("Portuguese"),this); + portugueseLanguageAct->setStatusTip(tr("Use Portuguese in menus")); + connect(portugueseLanguageAct, SIGNAL(triggered()), this, SLOT(setPTLanguage())); + + swedishLanguageAct = new QAction(tr("Swedish"),this); + swedishLanguageAct->setStatusTip(tr("Use Swedish in menus")); + connect(swedishLanguageAct, SIGNAL(triggered()), this, SLOT(setSELanguage())); + + russianLanguageAct = new QAction(tr("Russian"),this); + russianLanguageAct->setStatusTip(tr("Use Russian in menus")); + connect(russianLanguageAct, SIGNAL(triggered()), this, SLOT(setRULanguage())); } void MainWindow::createMenus() @@ -1761,6 +1871,9 @@ void MainWindow::createMenus() { QMenu *recentFileMenu=new QMenu(tr("Recent Files")); QMenu *profilesMenu=new QMenu(tr("Firmware Profiles")); + QMenu *languageMenu=new QMenu(tr("Set Menu Language")); + QMenu *themeMenu=new QMenu(tr("Set Icon Theme")); + QMenu *iconThemeSizeMenu=new QMenu(tr("Set Icon Size")); fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); @@ -1778,7 +1891,6 @@ void MainWindow::createMenus() fileMenu->addAction(printAct); fileMenu->addAction(compareAct); fileMenu->addSeparator(); - fileMenu->addAction(preferencesAct); fileMenu->addMenu(profilesMenu); profilesMenu->setIcon(CompanionIcon("profiles.png")); @@ -1791,6 +1903,34 @@ void MainWindow::createMenus() editMenu->addAction(copyAct); editMenu->addAction(pasteAct); + settingsMenu = menuBar()->addMenu(tr("&Settings")); + settingsMenu->addMenu(languageMenu); + languageMenu->addAction(defaultLanguageAct); + languageMenu->addAction(englishLanguageAct); + languageMenu->addAction(czechLanguageAct); + languageMenu->addAction(germanLanguageAct); + languageMenu->addAction(frenchLanguageAct); + languageMenu->addAction(hebrewLanguageAct); + languageMenu->addAction(italianLanguageAct); + languageMenu->addAction(polishLanguageAct); + languageMenu->addAction(portugueseLanguageAct); + languageMenu->addAction(swedishLanguageAct); + languageMenu->addAction(russianLanguageAct); + settingsMenu->addMenu(themeMenu); + themeMenu->addAction(classicThemeAct); + themeMenu->addAction(monoThemeAct); + themeMenu->addAction(monoBlueThemeAct); + themeMenu->addAction(monoWhiteThemeAct); + settingsMenu->addMenu(iconThemeSizeMenu); + iconThemeSizeMenu->addAction(smallIconAct); + iconThemeSizeMenu->addAction(normalIconAct); + iconThemeSizeMenu->addAction(bigIconAct); + iconThemeSizeMenu->addAction(hugeIconAct); + settingsMenu->addSeparator(); + settingsMenu->addAction(preferencesAct); + settingsMenu->addAction(customizeSplashAct); + settingsMenu->addAction(burnConfigAct); + burnMenu = menuBar()->addMenu(tr("&Read/Write")); burnMenu->addAction(burnToAct); burnMenu->addAction(burnFromAct); @@ -1801,9 +1941,7 @@ void MainWindow::createMenus() burnMenu->addAction(burnToFlashAct); burnMenu->addAction(burnFromFlashAct); burnMenu->addSeparator(); - burnMenu->addAction(customizeSplashAct); burnMenu->addSeparator(); - burnMenu->addAction(burnConfigAct); EEPROMInterface *eepromInterface = GetEepromInterface(); if (!IS_ARM(eepromInterface->getBoard())) { burnMenu->addAction(burnFusesAct); @@ -1968,14 +2106,6 @@ QMdiSubWindow *MainWindow::findMdiChild(const QString &fileName) return 0; } -void MainWindow::switchLayoutDirection() -{ - if (layoutDirection() == Qt::LeftToRight) - qApp->setLayoutDirection(Qt::RightToLeft); - else - qApp->setLayoutDirection(Qt::LeftToRight); -} - void MainWindow::setActiveSubWindow(QWidget *window) { if (!window) @@ -2143,3 +2273,5 @@ void MainWindow::autoClose() { this->close(); } + + diff --git a/companion/src/mainwindow.h b/companion/src/mainwindow.h index bdcdcd018..170ebd939 100644 --- a/companion/src/mainwindow.h +++ b/companion/src/mainwindow.h @@ -82,6 +82,31 @@ public slots: void unloadProfile(); private slots: + void setLanguage(QString langString); + void setDefaultLanguage() {setLanguage("");}; + void setCZLanguage() {setLanguage("cs_CZ");}; + void setDELanguage() {setLanguage("de_DE");}; + void setENLanguage() {setLanguage("en");}; + void setFRLanguage() {setLanguage("fr_FR");}; + void setITLanguage() {setLanguage("it_IT");}; + void setHELanguage() {setLanguage("he_IL");}; + void setPLLanguage() {setLanguage("pl_PL");}; + void setPTLanguage() {setLanguage("pt_PT");}; + void setRULanguage() {setLanguage("ru_RU");}; + void setSELanguage() {setLanguage("sv_SE");}; + + void setTheme(int index); + void setClassicTheme() {setTheme(0);}; + void setMonochromeTheme(){setTheme(1);}; + void setMonoWhiteTheme() {setTheme(2);}; + void setMonoBlueTheme() {setTheme(3);}; + + void setIconThemeSize(int index); + void setSmallIconThemeSize() {setIconThemeSize(0);}; + void setNormalIconThemeSize() {setIconThemeSize(1);}; + void setBigIconThemeSize() {setIconThemeSize(2);}; + void setHugeIconThemeSize() {setIconThemeSize(3);}; + void checkForUpdates(bool ignoreSettings, QString & fwId); void checkForUpdateFinished(QNetworkReply * reply); void displayWarnings(); @@ -121,12 +146,11 @@ private slots: void preferences(); void updateMenus(); MdiChild *createMdiChild(); - void switchLayoutDirection(); void setActiveSubWindow(QWidget *window); QMenu * createRecentFileMenu(); QMenu * createProfilesMenu(); void autoClose(); - + private: void createActions(); void createMenus(); @@ -153,7 +177,6 @@ private: QStringList GetSendFlashCommand(const QString &filename); int getEpromVersion(QString fileName); - bool convertEEPROM(QString backupFile, QString restoreFile, QString flashFile); bool isValidEEPROM(QString eepromfile); @@ -183,6 +206,7 @@ private: QMenu *fileMenu; QMenu *editMenu; + QMenu *settingsMenu; QMenu *burnMenu; QMenu *helpMenu; QToolBar *fileToolBar; @@ -222,6 +246,25 @@ private: QAction *logsAct; QAction *recentFileActs[MAX_RECENT]; QAction *profileActs[MAX_PROFILES]; + QAction *classicThemeAct; + QAction *monoThemeAct; + QAction *monoBlueThemeAct; + QAction *monoWhiteThemeAct; + QAction *smallIconAct; + QAction *normalIconAct; + QAction *bigIconAct; + QAction *hugeIconAct; + QAction *defaultLanguageAct; + QAction *englishLanguageAct; + QAction *czechLanguageAct; + QAction *germanLanguageAct; + QAction *frenchLanguageAct; + QAction *italianLanguageAct; + QAction *hebrewLanguageAct; + QAction *polishLanguageAct; + QAction *portugueseLanguageAct; + QAction *swedishLanguageAct; + QAction *russianLanguageAct; QString fwToUpdate; QToolButton * profileButton; }; diff --git a/companion/src/preferencesdialog.cpp b/companion/src/preferencesdialog.cpp index a8c50452c..c69672349 100644 --- a/companion/src/preferencesdialog.cpp +++ b/companion/src/preferencesdialog.cpp @@ -40,7 +40,6 @@ preferencesDialog::preferencesDialog(QWidget *parent) : connect(OptionCheckBox[i], SIGNAL(toggled(bool)), this, SLOT(firmwareOptionChanged(bool))); } - populateLocale(); initSettings(); connect(ui->downloadVerCB, SIGNAL(currentIndexChanged(int)), this, SLOT(baseFirmwareChanged())); connect(this, SIGNAL(accepted()), this, SLOT(writeValues())); @@ -254,11 +253,6 @@ void preferencesDialog::firmwareChanged() void preferencesDialog::writeValues() { QSettings settings; - if (ui->locale_QB->currentIndex() > 0) - settings.setValue("locale", ui->locale_QB->itemData(ui->locale_QB->currentIndex())); - else - settings.remove("locale"); - settings.setValue("default_channel_order", ui->channelorderCB->currentIndex()); settings.setValue("default_mode", ui->stickmodeCB->currentIndex()); settings.setValue("cpu_id", ui->CPU_ID_LE->text()); @@ -267,8 +261,6 @@ void preferencesDialog::writeValues() settings.setValue("rename_firmware_files", ui->renameFirmware->isChecked()); settings.setValue("wizardEnable", ui->wizardEnable_ChkB->isChecked()); settings.setValue("show_splash", ui->showSplash->isChecked()); - settings.setValue("theme", ui->theme_CB->currentIndex()); - settings.setValue("icon_size", ui->iconSize_CB->currentIndex()); settings.setValue("simuSW", ui->simuSW->isChecked()); settings.setValue("history_size", ui->historySize->value()); settings.setValue("burnFirmware", ui->burnFirmware->isChecked()); @@ -387,9 +379,6 @@ void preferencesDialog::populateFirmwareOptions(const FirmwareInfo * firmware) void preferencesDialog::initSettings() { QSettings settings; - int i = ui->locale_QB->findData(settings.value("locale")); - if (i < 0) i = 0; - ui->locale_QB->setCurrentIndex(i); ui->snapshotClipboardCKB->setChecked(settings.value("snapshot_to_clipboard", false).toBool()); if (ui->snapshotClipboardCKB->isChecked()) { ui->snapshotPath->setDisabled(true); @@ -408,8 +397,6 @@ void preferencesDialog::initSettings() ui->renameFirmware->setChecked(settings.value("rename_firmware_files", false).toBool()); ui->wizardEnable_ChkB->setChecked(settings.value("wizardEnable", true).toBool()); ui->showSplash->setChecked(settings.value("show_splash", true).toBool()); - ui->theme_CB->setCurrentIndex(settings.value("theme", 1).toInt()); - ui->iconSize_CB->setCurrentIndex(settings.value("icon_size", 2).toInt()); ui->historySize->setValue(settings.value("history_size", 10).toInt()); ui->backLightColor->setCurrentIndex(settings.value("backLight", 0).toInt()); ui->startupCheck_fw->setChecked(settings.value("startup_check_fw", true).toBool()); @@ -501,25 +488,6 @@ void preferencesDialog::initSettings() firmwareChanged(); } -void preferencesDialog::populateLocale() -{ - ui->ProfSave_PB->setEnabled(true); - ui->locale_QB->clear(); - ui->locale_QB->addItem("System default language", ""); - ui->locale_QB->addItem("English", "en"); - - QStringList strl = QApplication::arguments(); - if (!strl.count()) return; - - QDir directory = QDir(":/"); - QStringList files = directory.entryList(QStringList("companion_*.qm"), QDir::Files | QDir::NoSymLinks); - - foreach(QString file, files) { - QLocale loc(file.mid(10, 2)); - ui->locale_QB->addItem(QLocale::languageToString(loc.language()), loc.name()); - } -} - void preferencesDialog::on_fw_dnld_clicked() { MainWindow * mw = (MainWindow *)this->parent(); diff --git a/companion/src/preferencesdialog.ui b/companion/src/preferencesdialog.ui index 31acbd438..3ec09eaf9 100644 --- a/companion/src/preferencesdialog.ui +++ b/companion/src/preferencesdialog.ui @@ -25,7 +25,7 @@ Preferences - + QLayout::SetMinimumSize @@ -35,7 +35,84 @@ 4 - + + + + Mode selection: + +Mode 1: + Left stick: Elevator, Rudder + Right stick: Throttle, Aileron + +Mode 2: + Left stick: Throttle, Rudder + Right stick: Elevator, Aileron + +Mode 3: + Left stick: Elevator, Aileron + Right stick: Throttle, Rudder + +Mode 4: + Left stick: Throttle, Aileron + Right stick: Elevator, Rudder + + + + + 1 + + + + Mode 1 (RUD ELE THR AIL) + + + + + Mode 2 (RUD THR ELE AIL) + + + + + Mode 3 (AIL ELE THR RUD) + + + + + Mode 4 (AIL THR ELE RUD) + + + + + + + + + Blue + + + + + Green + + + + + Red + + + + + Orange + + + + + Yellow + + + + + @@ -60,7 +137,14 @@ - + + + + Automatic Backup Folder + + + + @@ -73,7 +157,7 @@ - + @@ -101,14 +185,7 @@ - - - - Automatic Backup Folder - - - - + @@ -151,14 +228,14 @@ - + Qt::Horizontal - + @@ -174,7 +251,7 @@ - + @@ -229,43 +306,14 @@ - + Remember switches in simulator - - - - - Blue - - - - - Green - - - - - Red - - - - - Orange - - - - - Yellow - - - - - + 6 @@ -302,27 +350,21 @@ - + Simulator capture folder - - - - - 0 - 0 - - - - Language (requires restart) + + + + Qt::Horizontal - + @@ -466,7 +508,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -479,7 +521,7 @@ This is used by the templated to determine which channel goes to what number out - + 1 @@ -503,7 +545,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -527,7 +569,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -540,7 +582,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -583,7 +625,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -610,7 +652,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -658,7 +700,7 @@ This is used by the templated to determine which channel goes to what number out - + 1 @@ -689,7 +731,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -702,7 +744,7 @@ This is used by the templated to determine which channel goes to what number out - + @@ -718,62 +760,14 @@ This is used by the templated to determine which channel goes to what number out - - - - Mode selection: - -Mode 1: - Left stick: Elevator, Rudder - Right stick: Throttle, Aileron - -Mode 2: - Left stick: Throttle, Rudder - Right stick: Elevator, Aileron - -Mode 3: - Left stick: Elevator, Aileron - Right stick: Throttle, Rudder - -Mode 4: - Left stick: Throttle, Aileron - Right stick: Elevator, Rudder - - - - - 1 - - - - Mode 1 (RUD ELE THR AIL) - - - - - Mode 2 (RUD THR ELE AIL) - - - - - Mode 3 (AIL ELE THR RUD) - - - - - Mode 4 (AIL THR ELE RUD) - - - - - + Profile slot - + Qt::Vertical @@ -789,7 +783,7 @@ Mode 4: - + @@ -816,7 +810,7 @@ Mode 4: - + QLayout::SetMaximumSize @@ -907,7 +901,7 @@ May be different from firmware language - + @@ -947,7 +941,7 @@ May be different from firmware language - + @@ -960,14 +954,7 @@ May be different from firmware language - - - - Qt::Horizontal - - - - + QLayout::SetMaximumSize @@ -1520,7 +1507,7 @@ May be different from firmware language - + @@ -1533,7 +1520,7 @@ May be different from firmware language - + @@ -1554,116 +1541,6 @@ May be different from firmware language - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Theme - - - - - - - Requires restart - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 40 - 20 - - - - - - - - - - - Icon size - - - - - - - Requires restart - - - - Small - - - - - Normal - - - - - Big - - - - - Huge - - - - - - - @@ -1710,7 +1587,7 @@ May be different from firmware language - + @@ -1723,14 +1600,14 @@ May be different from firmware language - + Google Earth Executable - + diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index da792cef7..ed78401ac 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -2019,9 +2019,9 @@ Opravdu to takto chcete ? - - - + + + File loaded Soubor byl načten @@ -2087,24 +2087,24 @@ Opravdu to takto chcete ? - - - - - - - - - + + + + + + + + + Error Chyba - - - + + + Error opening file %1: %2. Chyba při otevírání souboru %1: @@ -2209,47 +2209,47 @@ Chcete ji stáhnout nyní ? Poznámky k vydání mohou obsahovat důležité informace. Chcete si je přečíst nyní ? - + Open Otevřít - - + + File saved Soubor byl uložen - + Firmware updates Aktualizace firmwaru - + Current firmware does not provide release notes informations. K tomuto firmwaru nejsou poznámky k vydání. - + Cannot write file %1: %2. Nelze zapsat soubor %1: %2. - - - - - + + + + + Taranis radio not found Radio Taranis nenalezeno - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Nebylo možné identifikovat rádio ve vašem systému, zkontrolujte zda je eeprom disk připojen. @@ -2270,16 +2270,16 @@ nebyl rozpoznán jako platná EEPROM Chcete ji přesto naprogramovat? - - - + + + Backup is impossible Není možné zálohovat - - - + + + The backup dir set in preferences does not exist Složka pro zálohování zvolená v předvolbách neexistuje @@ -2292,8 +2292,8 @@ Chcete ji přesto naprogramovat? Nelze ověřit kompatibilitu EEprom! Mám přesto pokračovat? - - + + Warning Varování @@ -2314,7 +2314,7 @@ Chcete ji přesto naprogramovat? Zapsat do paměti FLASH rádia - + Conversion failed Porovnání selhalo @@ -2327,7 +2327,7 @@ Chcete ji přesto naprogramovat? Zapsat EEPROM do rádia - + Restore failed Zápis selhal @@ -2344,7 +2344,7 @@ Chcete ji přesto naprogramovat? Nemohu naprogramovat rádio, původní EEPROM najdete zde: %1 - + Backup failed Zálohování selhalo @@ -2374,10 +2374,10 @@ Chcete ji přesto naprogramovat? Chcete zapsat firmware do rádia nyní ? - - - - + + + + Read Models and Settings From Tx Načíst modely a nastavení z rádia @@ -2388,16 +2388,16 @@ Chcete ji přesto naprogramovat? - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2418,12 +2418,34 @@ Chcete ji přesto naprogramovat? Firmware s těmito vybranými součástmi, se již nevejde do rádia - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + Write Models and settings from %1 to the Tx? Zapsat modely a nastavení z %1 do rádia? - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -2432,91 +2454,96 @@ neobsahuje platná data modelů a nastavení Chcete ho přesto zapsat ? - - - - - - + + + + + + Backup Models and Settings From Tx Zálohovat modely a nastavení z rádia - + Cannot check Models and Settings compatibility! Continue anyway? Nelze ověřit kompatibilitu dat modelů a nastavení! Chcete přesto pokračovat? - + The transmitter firmware belongs to another product family, check file and preferences! Firmware patří do jiné produktové rodiny, zkontrolujte nastavení předvoleb! - + The transmitter firmware is outdated, please upgrade! Firmware rádia je zastaralý, aktualizujte ho prosím! - + Write Models and Settings To Tx Zapsat modely a nastavení do rádia - - + + Write Firmware To Tx Zapsat firmware do rádia - + Cannot convert Models and Settings for use with this firmware, original data will be used Nemohu konvertovat modely a nastavení pro použití s tímto firmwarem, budou použita původní data - + Restore Models and Settings To Tx Obnovit modely a nastavení do rádia - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 Nelze obnovit modely a nastavení do rádia. Soubor s modely a nastavením najdete v: %1 - + Firmware write failed Zápis firmware selhal - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 Nelze zapsat firmware do rádio. Data modelů a nastavení najdete v: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted Nemohu zálohovat stávající modely a nastavení z rádia. Zápis firmware byl přerušen - + Save transmitter Models and Settings to File Uložit modely a nastavení do souboru - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. Nebylo možné identifikovat rádio ve vašem systému, zkontrolujte zda je eeprom disk připojen. - + Read Tx Firmware to File Načíst firmware z rádia a uložit do souboru - + Copyright + + + Configure transmitter start screen... + + Version %1 (revision %2), %3 Verze %1 (revize %2), %3 @@ -2538,88 +2565,87 @@ Chcete ho přesto zapsat ? O aplikaci Companion9x - - + + &%1 %2 - + &New &Nový - + Create a new file Vytvořit nový soubor - + &Open... &Otevřít... - + Open an existing file Otevřít existující soubor - + &loadBackup... &Načíst zálohu... - + Load backup from file Načíst zálohu ze souboru - + &Save &Uložit - + Save the document to disk Uložit dokument na disk - + Save &As... Uložit j&ako... - + Save the document under a new name Uložit dokument s novým jménem - + Lo&gs Lo&gy - + Ctrl+G - + Open log file Otevřít soubor s logy - &Preferences... - &Předvolby... + &Předvolby... - + Edit general preferences Nastavení obecných předvoleb - + &Check for updates... &Zkontrolovat aktualizace... @@ -2628,7 +2654,7 @@ Chcete ho přesto zapsat ? Zkontolovat dostupnost nové verze companion9x/er9x - + Contributors &List... &Seznam přispěvatelů... @@ -2637,7 +2663,7 @@ Chcete ho přesto zapsat ? Zobrazit seznam přispěvatelů companion9x - + ChangeLog... Změny... @@ -2651,198 +2677,402 @@ Chcete ho přesto zapsat ? - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + About Companion - + + &General Preferences... + + + + Check for new version of Companion - + Show Companion contributors list - + Show Companion changelog - + Firmware ChangeLog... Změny firmware... - + Show firmware changelog Zobrazit změny ve firmware - + Compare... Porovnat... - + Compare models Porovnat modely - Customize your &TX... - &Přizpůsobení loga... + &Přizpůsobení loga... - + Customize the splash screen of your TX Přizpůsobení úvodního logo vašeho rádia - + E&xit U&končit - + Exit the application Ukončit aplikaci companion9x - + Cu&t &Vyjmout - + Cut the current selection's contents to the clipboard Vyjmout aktuální výběr a uložit do schránky - + &Copy &Kopírovat - + Copy the current selection's contents to the clipboard Kopírovat aktuální výběr do schránky - + &Paste &Vložit - + Paste the clipboard's contents into the current selection Vložit obsah schránky na aktuální pozici - + &Write Models and Settings To Tx &Zapsat modely a nastavení do rádia - + Write Models and Settings to transmitter Zapsat modely a nastavení do rádia - + &Read Models and Settings From Tx &Načíst modely a nastavení z rádia - + Read Models and Settings from transmitter Načíst modely a nastavení z rádia - + Write Firmware Zapsat firmware - + Write firmware to transmitter Zapsat firmware do rádia - + Write Models and Settings from file to Tx Zapsat modely a nastavení ze souboru do rádia - + Write Models and Settings from file to transmitter Zapsat modely a nastavení ze souboru do rádia - + Save transmitter Models and Settings to file Uložit modely a nastavení z rádia do souboru - + Save the Models and Settings from the transmitter to a file Uložit modely a nastavení z rádia do souboru - + Read Firmware Načíst firmware - + Read firmware from transmitter Načíst firmware z rádia - + + &Configure connection software... + + + + Configure software for reading from and writing to the transmitter Nastavení softwaru pro čtení a zápis do rádia - + + Classic + + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + Normální + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + + + + + Use Czech in menus + + + + + German + + + + + Use German in menus + + + + + English + + + + + Use English in menus + + + + + French + + + + + Use French in menus + + + + + Italian + + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + + + + + Use Portuguese in menus + + + + + Swedish + + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + + &Settings + + + + &Read/Write Čtení/&Zápis - + Write Zápis - - + + Invalid Models and Settings File %1 Neplatný soubor modelů a nastavení %1 - + Invalid binary Models and Settings File %1 Neplatný binární soubor modelů a nastavení %1 @@ -2851,7 +3081,7 @@ Chcete ho přesto zapsat ? &Zapsat do EEPROM rádia - + Ctrl+Alt+W @@ -2864,7 +3094,7 @@ Chcete ho přesto zapsat ? &Načíst EEPROM z rádia - + Ctrl+Alt+R @@ -2905,61 +3135,60 @@ Chcete ho přesto zapsat ? Načíst paměť FLASH z rádia - &Configure... - &Konfigurace... + &Konfigurace... Configure burning software Konfigurace programátoru - + &List programmers &Seznam programátorů - + List available programmers Seznam použitelných programátorů - + &Fuses... Pojistky &mikrokontroléru... - + Show fuses dialog Zobrazit dialog nastavení pojistek mikrokontroléru - + &Simulate &Simulátor - + Alt+S - + Simulate selected model. Simulovat vybraný model. - + &Print &Tisk - + Ctrl+P - + Print current model. Vytisknout aktuální model. @@ -3012,12 +3241,12 @@ Chcete ho přesto zapsat ? Aktivovat předchozí okno - + &About &O aplikaci - + Show the application's About box O aplikaci companion9x @@ -3030,24 +3259,24 @@ Chcete ho přesto zapsat ? Přepnout styl rozložení panelu vlevo/vpravo - - + + Recent Files Nedávné soubory - - + + Firmware Profiles Profily firmwaru - + &File &Soubor - + &Edit &Úpravy @@ -3060,17 +3289,17 @@ Chcete ho přesto zapsat ? &Okno - + &Help &Nápověda - + File Soubor - + Edit Úpravy @@ -3079,17 +3308,17 @@ Chcete ho přesto zapsat ? Programátor - + Help Nápověda - + Ready Připraven - + Unable to find file %1! Nemohu nalézt soubor %1! @@ -3098,7 +3327,7 @@ Chcete ho přesto zapsat ? Neplatný soubor EEPROM %1 - + Error reading file %1: %2. Chyba při otevírání souboru %1: @@ -10717,88 +10946,89 @@ Tlačítkem Zrušit přerušíte kalibraci Předvolby - + Check for selected Fw updates Aktualizace vybraného firmware - + Ask use of wizard for new models Zeptat se na použití průvodce pro nový model - + Invert Pixels Invertovat - - + + ... - + Remember switches in simulator Pamatovat si přepínače v simulátoru - + Enable Povolit - + Calibrate Kalibrovat - - - - + + + + Open Folder Vybrat složku - + FwInfo - + Check for updates Zkontrolovat aktualizace - + Open Image Načíst obrázek - + Language Jazyk - - + + Download Stáhnout - + Set language of voice. May be different from firmware language Vyberte jazykovou verzi hlasu tts(voice). Může být jiná než verze firmwaru - + Voice Hlas tts + @@ -10840,73 +11070,72 @@ Může být jiná než verze firmwaru - CheckBox - + Ask for flashing after Download Po stažení firmwaru se zeptat, zda ho hned zapsat do rádia - + Export Profile Exportovat profil - + Import Profile Importovat profil - + Profile Name Název profilu - + Automatically add version number to the filename after download Přidat číslo verze do názvu souboru staženého firmwaru - + Save Profile Uložit profil - + Show Splash At Start - + Simu BackLight BackLight Color Barva podsvětlení Simu - + Blue Modrá - + Green Zelená - + Red Červená - + Orange Oranžová - + Yellow Žlutá @@ -10915,22 +11144,21 @@ Může být jiná než verze firmwaru Kontrolovat aktualizace vybraného firmwaru - + Check for updates on startup Aktualizace při spuštění - Language (requires restart) - Jazyk companion (vyžaduje restart) + Jazyk companion (vyžaduje restart) - + Custom TX splash screen Vlastní úvodní logo - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -10940,17 +11168,17 @@ Toto je použito šablonami k určení který kanál patří ke kterému výstupu. - + Firmware - + Default Stick Mode Výchozí mód vysílačky - + Default Channel Order Výchozí pořadí kanálů @@ -10959,7 +11187,7 @@ který kanál patří ke kterému výstupu. Zobrazit úvodní logo - + Personal splash library Vlastní knihovna s logy @@ -10968,7 +11196,7 @@ který kanál patří ke kterému výstupu. Pamatovat polohu přepínačů - + Mode selection: Mode 1: @@ -11009,133 +11237,81 @@ Mode 4: - + Mode 1 (RUD ELE THR AIL) Mode 1 (Směr.Výšk.Plyn.Křid) - + Mode 2 (RUD THR ELE AIL) Mode 2 (Směr.Plyn.Výšk.Křid) - + Mode 3 (AIL ELE THR RUD) Mode 3 (Křid.Výšk.Plyn.Směr) - + Mode 4 (AIL THR ELE RUD) Mode 4 (Křid.Plyn.Výšk.Směr) - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - Normal - Normální + Normální - - Big - - - - - Huge - - - - + Joystick - + Include companion splashes Zahrnout i výchozí loga - + Only user defined splashes Jen vlastní loga - + Splash library behaviour Chování knihovny s logy - + Automatic Backup Folder Složka pro automatické zálohy - + SD Structure path Cesta k obsahu SD karty - + Processor ID ID procesoru - + Recent History Size Počet položek nedávné historie - + Find Executable - + Google Earth Executable - + Profile slot Slot profilu @@ -11144,7 +11320,7 @@ Mode 4: Složka pro zálohy EEprom - + auto backup before write zálohovat před zápisem @@ -11153,17 +11329,17 @@ Mode 4: Složka zvukových dat - + Simulator capture folder Složka pro snímky obrazovky Simu - + Use clipboard only Kopírovat pouze do schránky - + Last downloaded release: %1 Naposledy stažené vydání: %1 @@ -11176,43 +11352,43 @@ Mode 4: Companion9x nemůže stáhnout zvolený firmware. - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Image stored in settings Logo nastavené v předvolbách - - + + No joysticks found Joystick nenalezen - + Select your Models and Settings backup folder Zvolte složku pro automatické zálohy modelů a nastavení - + Select Google Earth executable - + Select the folder replicating your SD structure Vyberte složku která představuje obsah SD karty rádia - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? Název profilu je prázdný, slot %1 bude smazán.<br>Jste si jist ? @@ -11279,7 +11455,7 @@ zatim ve zkušební verzi Podpora DSM2 modulů s použitím PPM místo sériového protokolu - + Select your library folder Support for SD memory card Vyberte složkus s logy @@ -11358,7 +11534,7 @@ nutno zastavět hlasový modul Bez uživatelsky definovatelných křivek - + Select your snapshot folder Vyberte složku pro snímky obrazovky simulátoru @@ -11367,14 +11543,14 @@ nutno zastavět hlasový modul Vyber složku pro zálohování eeprom - - + + Error Chyba - - + + Cannot load %1. Nemohu načíst %1. @@ -11387,27 +11563,27 @@ nutno zastavět hlasový modul Název profilu je prázdný, slot %1 bude odstraněn.<br>Souhlasíte ? - + Export profile As Exportovat profil jako - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? Slot profilu není prázdný, slot %1 bude přepsán.<br>Jste si jist ? - + Open Profile to import Zvolte profil k importu - + Open Image to load Otevřít soubor - + Images (%1) obrázky (%1) diff --git a/companion/src/translations/companion_de.ts b/companion/src/translations/companion_de.ts index f609f3fc0..e5fde4969 100644 --- a/companion/src/translations/companion_de.ts +++ b/companion/src/translations/companion_de.ts @@ -6,7 +6,7 @@ Name - Name + Name @@ -59,12 +59,12 @@ Diff - Diff + Diff Expo - Expo + Expo @@ -74,7 +74,7 @@ Curve - Kurve + Kurve @@ -117,7 +117,7 @@ Curve %1 - Kurve %1 + Kurve %1 @@ -132,7 +132,7 @@ Editing curve %1 - Kurve %1 bearbeiten + Kurve %1 bearbeiten @@ -145,7 +145,7 @@ Switch - Schalter + Schalter @@ -160,7 +160,7 @@ Enable - aktivieren + Aktivieren @@ -170,7 +170,7 @@ Error - Fehler + Fehler @@ -180,17 +180,17 @@ &Delete - &Löschen + &Löschen Delete - Löschen + Löschen &Copy - &Kopieren + &Kopieren @@ -200,7 +200,7 @@ &Cut - &Ausschneiden + &Ausschneiden @@ -259,17 +259,17 @@ &Delete - &Löschen + &Löschen Delete - Löschen + Löschen &Copy - &Kopieren + &Kopieren @@ -279,7 +279,7 @@ &Cut - &Ausschneiden + &Ausschneiden @@ -317,17 +317,17 @@ Both - + Beide x>0 - + x>0 x<0 - + x<0 @@ -565,12 +565,12 @@ Anzahl Sekunden fest, welche der Mischer für einen Durchgang von -100 bis +100 No - Nein + Nein Yes - Ja + Ja @@ -651,32 +651,32 @@ Anzahl Sekunden fest, welche der Mischer für einen Durchgang von -100 bis +100 Name - Name + Name Switch - Schalter + Schalter trim1 - Trimmung1 + Trimmung1 trim2 - Trimmung2 + Trimmung2 trim4 - Trimmung4 + Trimmung4 trim3 - Trimmung3 + Trimmung3 @@ -2093,9 +2093,9 @@ Are you sure ? - - - + + + File loaded Datei geladen @@ -2172,7 +2172,7 @@ Do you want to download it now ? Möchten Sie sie jetzt herunterladen? - + Open Öffnen @@ -2181,8 +2181,8 @@ Möchten Sie sie jetzt herunterladen? EEPROM Dateien (*.bin *.hex);;BIN Dateien (*.bin);;HEX Dateien (*.hex) - - + + File saved Datei gespeichert @@ -2223,7 +2223,7 @@ Möchten Sie sie jetzt herunterladen? Lese Flash und speichere in Datei - + Copyright Copyright @@ -2241,8 +2241,8 @@ Möchten Sie sie jetzt herunterladen? Über eePe - - + + &%1 %2 &%1 %2 @@ -2251,57 +2251,56 @@ Möchten Sie sie jetzt herunterladen? %1 %2 - + &New &Neu - + Create a new file Neue Datei erstellen - + &Open... Datei ö&ffnen... - + Open an existing file Öffne eine bestehende Datei - + &Save Datei &speichern - + Save the document to disk Speichere das Dokument auf Festplatte - + Save &As... Speichern &unter... - + Save the document under a new name Speichere das Dokument unter einem neuen Namen - &Preferences... - &Einstellungen... + &Einstellungen... - + Edit general preferences Bearbeite generelle Einstellungen - + &Check for updates... &Überprüfe auf Updates... @@ -2329,24 +2328,24 @@ Möchten Sie sie jetzt herunterladen? - - - - - - - - - + + + + + + + + + Error Fehler - - - + + + Error opening file %1: %2. Fehler beim Öffnen der Datei %1: @@ -2364,16 +2363,16 @@ Möchten Sie sie jetzt herunterladen? - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2422,13 +2421,13 @@ Möchten Sie sie jetzt herunterladen? Yes - Ja + Ja No - Nein + Nein @@ -2448,39 +2447,66 @@ Möchten Sie sie jetzt herunterladen? - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + Firmware updates - + Current firmware does not provide release notes informations. - + Cannot write file %1: %2. Kann Datei %1: %2 nicht schreiben. - - - - - + + + + + Taranis radio not found - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. + + + Configure transmitter start screen... + + The file %1 has not been recognized as a valid EEPROM @@ -2490,16 +2516,16 @@ wurde nicht als gültige EEPROM Datei erkannt. Trotzdem brennen? - - - + + + Backup is impossible - - - + + + The backup dir set in preferences does not exist @@ -2508,8 +2534,8 @@ Trotzdem brennen? Sicherung EEPROM von Tx - - + + Warning Warnung @@ -2518,7 +2544,7 @@ Trotzdem brennen? Brenne Flash in den Tx - + Conversion failed Umwandlung gescheitert @@ -2531,7 +2557,7 @@ Trotzdem brennen? EEPROM in Tx zurückspeichern - + Restore failed Zurückspeicherung gescheitert @@ -2548,7 +2574,7 @@ Trotzdem brennen? Flashen des Tx nicht möglich, ursprüngliche EEProm Dateil ist verfügbar unter: %1 - + Backup failed Sicherung fehlgeschlagen @@ -2562,103 +2588,103 @@ Trotzdem brennen? - - - - + + + + Read Models and Settings From Tx - + Write Models and settings from %1 to the Tx? - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? - - - - - - + + + + + + Backup Models and Settings From Tx - + Cannot check Models and Settings compatibility! Continue anyway? - + The transmitter firmware belongs to another product family, check file and preferences! - + The transmitter firmware is outdated, please upgrade! - + Write Models and Settings To Tx - - + + Write Firmware To Tx - + Cannot convert Models and Settings for use with this firmware, original data will be used - + Restore Models and Settings To Tx - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 - + Firmware write failed - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted - + Save transmitter Models and Settings to File - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. - + Read Tx Firmware to File @@ -2679,27 +2705,27 @@ Write anyway ? Über companion9x - + &loadBackup... - + Load backup from file - + Lo&gs - + Ctrl+G - + Open log file @@ -2708,7 +2734,7 @@ Write anyway ? Überprüfe auf neue Version von companion9x/er9x - + Contributors &List... &Mitwirkende... @@ -2717,193 +2743,397 @@ Write anyway ? Zeige die Liste der Mitwirkenden von 'companion9x' - + ChangeLog... - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + About Companion - + + &General Preferences... + + + + Check for new version of Companion - + Show Companion contributors list - + Show Companion changelog - + Firmware ChangeLog... - + Show firmware changelog - + Compare... - + Compare models - Customize your &TX... - Passe Deinen &TX an... + Passe Deinen &TX an... - + Customize the splash screen of your TX Persönliche Anpassung des Tx Startbildschirmes - + E&xit Be&enden - + Exit the application Beendet die Anwendung - + Cu&t &Ausschneiden - + Cut the current selection's contents to the clipboard Scheidet die momentane Auwahl aus und kopiert den Inhalt in den Zwischenspeicher - + &Copy &Kopieren - + Copy the current selection's contents to the clipboard Kopiert die momentane Auswahl in den Zwischenspeicher - + &Paste &Einfügen - + Paste the clipboard's contents into the current selection Fügt den Inhalt des Zwischenspeichers in die momentane Auswahl ein - + &Write Models and Settings To Tx - + Write Models and Settings to transmitter - + &Read Models and Settings From Tx - + Read Models and Settings from transmitter - + Write Firmware - + Write firmware to transmitter - + Write Models and Settings from file to Tx - + Write Models and Settings from file to transmitter - + Save transmitter Models and Settings to file - + Save the Models and Settings from the transmitter to a file - + Read Firmware - + Read firmware from transmitter - + + &Configure connection software... + + + + Configure software for reading from and writing to the transmitter - - + + Classic + + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + Normal + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + + + + + Use Czech in menus + + + + + German + Deutch + + + + Use German in menus + + + + + English + + + + + Use English in menus + + + + + French + + + + + Use French in menus + + + + + Italian + + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + + + + + Use Portuguese in menus + + + + + Swedish + + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + + &Settings + + + + + Invalid Models and Settings File %1 - + Invalid binary Models and Settings File %1 @@ -2912,7 +3142,7 @@ Write anyway ? &Schreibe EEPROM in den Sender - + Ctrl+Alt+W Ctrl+Alt+W @@ -2925,7 +3155,7 @@ Write anyway ? &Lese EEPROM vom Sender - + Ctrl+Alt+R Ctrl+Alt+R @@ -2966,61 +3196,60 @@ Write anyway ? Lese Flash Speicher und schreibe in den Sender - &Configure... - &Einstellungen... + &Einstellungen... Configure burning software Einstellungen Brennsoftware - + &List programmers &Programmiergeräte - + List available programmers Programmiergeräte - + &Fuses... &Fuses... - + Show fuses dialog Zeige Fuses Einstellungen - + &Simulate &Simulation - + Alt+S Alt+S - + Simulate selected model. Simuliert das ausgewählte Modell. - + &Print &Drucken - + Ctrl+P Ctrl+P - + Print current model. Drucke momentane Modelleinstellungen. @@ -3073,33 +3302,33 @@ Write anyway ? Vorhergehendes Fenster aufrufen - + &About &Über - + Show the application's About box Zeige das Infofenster - - + + Recent Files Letzte Dateien - + &Read/Write - + Write - + Unable to find file %1! Kann die Datei %1 nicht finden ! @@ -3108,7 +3337,7 @@ Write anyway ? Ungültige EEPROM Datei %1 - + Error reading file %1: %2. Fehler beim Lesen der Datei %1: @@ -3131,13 +3360,13 @@ Write anyway ? Schalte Layout um Rechts/Links - - + + Firmware Profiles - + &File &Datei @@ -3164,7 +3393,7 @@ Write anyway ? Eine neue Version von eePe ist vorhanden /r%1)<br>Möchtest Du diese herunterladen ? - + &Edit &Bearbeiten @@ -3177,17 +3406,17 @@ Write anyway ? &Fenster - + &Help &Hilfe - + File Datei - + Edit Bearbeiten @@ -3196,12 +3425,12 @@ Write anyway ? Brennen - + Help Hilfe - + Ready Fertig @@ -10687,9 +10916,8 @@ Wähle "abbrechen", um die Kalibration abzubrechen Einstellungen - Language (requires restart) - Sprache (Benötigt Neustart) + Sprache (Benötigt Neustart) er9x @@ -10720,23 +10948,23 @@ Wähle "abbrechen", um die Kalibration abzubrechen er9x - Ardupilot - + Recent History Size Anzahl zuletzt geöffnete Dateien - - + + Download Download - + Default Channel Order Standardeinstellung Kanalzuordnung - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -10745,12 +10973,12 @@ This is used by the templated to determine which channel goes to what number out Hier wird die Zuordnung der Kanäle zum Ausgang festgelegt. - + Default Stick Mode Standard Knüppelmodus - + Mode selection: Mode 1: @@ -10795,177 +11023,126 @@ Mode 4: Prüfe ausgewählte Fw Updates - + Mode 1 (RUD ELE THR AIL) Mode 1 (RUD ELE THR AIL) - + Mode 2 (RUD THR ELE AIL) Mode 2 (RUD THR ELE AIL) - + Mode 3 (AIL ELE THR RUD) Mode 3 (AIL ELE THR RUD) - + Mode 4 (AIL THR ELE RUD) Mode 4 (AIL THR ELE RUD) - + Automatic Backup Folder - + Automatically add version number to the filename after download - + Voice - + Set language of voice. May be different from firmware language - + Firmware Firmware - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - Normal - Normal + Normal - - Big - - - - - Huge - - - - + Check for updates on startup Überprüfe auf Aktualisierung beim Start - - + + ... ... - + Splash library behaviour Verhalten Startbild Bibliothek - + Include companion splashes 'companion' Startbilder einschliessen - + Only user defined splashes Nur Benutzer Startbilder - + Custom TX splash screen Benutzer Startbild - + Personal splash library Benutzer Startbild Bibliothek - + Joystick Joystick - - - - + + + + Open Folder Verzeichnis öffnen - + SD Structure path - + Processor ID - + Simulator capture folder - + Use clipboard only + @@ -11007,133 +11184,132 @@ May be different from firmware language - CheckBox CheckBox - + Check for updates Prüfe für Updates - + Language - + Profile Name - + Export Profile - + Save Profile - + Import Profile - + Simu BackLight - + Check for selected Fw updates - + Ask use of wizard for new models - + Show Splash At Start - + Remember switches in simulator - + Blue Blu blau - + Green grün - + Red rot - + Orange orange - + Yellow gelb - + Profile slot - + auto backup before write - + Find Executable - + Google Earth Executable - + Ask for flashing after Download - + Enable aktivieren - + Calibrate kalibrieren - + Open Image Bild öffnen - + Invert Pixels Pixel invertieren @@ -11142,12 +11318,12 @@ May be different from firmware language HG Beleuchtung - + FwInfo FwInfo - + Last downloaded release: %1 Letzte geladene Version: %1 @@ -11160,48 +11336,48 @@ May be different from firmware language Die gewählte Firmware kann von companio9x nicht geladen werden. - + Image stored in settings Gewähltes Bild in Einstellungen - - + + No joysticks found kein Joystick gefunden - + Select your Models and Settings backup folder - + Select Google Earth executable - + Select the folder replicating your SD structure - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? - + Export profile As - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? - + Open Profile to import @@ -11210,44 +11386,44 @@ May be different from firmware language Bitte Bibliothek Verzeichnis wählen - + Open Image to load Bilddatei öffnen - + Images (%1) Bilder (%1) - - + + Error Fehler - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Select your library folder - + Select your snapshot folder - - + + Cannot load %1. Kann %1 nicht laden. diff --git a/companion/src/translations/companion_fr.ts b/companion/src/translations/companion_fr.ts index f693dd9da..af4be870b 100644 --- a/companion/src/translations/companion_fr.ts +++ b/companion/src/translations/companion_fr.ts @@ -1990,7 +1990,7 @@ Are you sure ? MainWindow - + &New &Nouveau @@ -1999,17 +1999,17 @@ Are you sure ? Flasher - + Cu&t C&ouper - + Edit Edition - + File Fichier @@ -2036,24 +2036,24 @@ Are you sure ? - - - - - - - - - + + + + + + + + + Error Erreur - - - + + + Error opening file %1: %2. Erreur à l'ouverture du fichier %1: @@ -2136,41 +2136,41 @@ Are you sure ? Les notes de version contiennent des informations très importantes. Voulez-vous les voir maintenant? - + Open Ouvrir - + Firmware updates Mises à jour de firmware - + Current firmware does not provide release notes informations. Le firmware actuel ne contient pas de notes de version. - + Cannot write file %1: %2. Ecriture fichier %1 impossible: %2. - - - - - + + + + + Taranis radio not found Radio Taranis non détectée - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Impossible de trouver la radio, vérifiez qu'elle est bien sous tension et connectée. @@ -2181,16 +2181,16 @@ Burn anyway ? Le fichier %1 n'est pas reconnu comme une EEPROM valide. Confirmer le transfert ? - - - + + + Backup is impossible Sauvegarde impossible - - - + + + The backup dir set in preferences does not exist Le dossier de sauvegarde configuré dans les préférences n'existe pas @@ -2203,8 +2203,8 @@ Burn anyway ? Impossible de vérifier la compatibilité de l'EEPROM! Continuer quand même? - - + + Warning Avertissement @@ -2225,7 +2225,7 @@ Burn anyway ? Flasher l'émetteur - + Conversion failed La conversion a échoué @@ -2238,7 +2238,7 @@ Burn anyway ? Restaurer l'EEPROM vers l'émetteur - + Restore failed Erreur lors de la restauration @@ -2255,7 +2255,7 @@ Burn anyway ? Impossible de flasher l'émetteur, l'EEPROM d'origine se trouve dans : %1 - + Backup failed Erreur lors de la sauvegarde @@ -2264,32 +2264,32 @@ Burn anyway ? Impossible de sauvegarder l'EEPROM. Flashage annulé - + &loadBackup... c&harger sauvegarde... - + Load backup from file Charger une sauvegarde à partir du fichier - + Lo&gs - + Ctrl+G - + Open log file Ouvrir fichier de log - + ChangeLog... Historique des changements... @@ -2298,47 +2298,252 @@ Burn anyway ? Historique des changements de companion9x - + Firmware ChangeLog... Historique des changements du firmware... - + Show firmware changelog Montrer l'historique des changements du firmware - + Compare... Comparer... - + Compare models Comparer les modèles - + + Configure transmitter start screen... + + + + + &Configure connection software... + + + + Configure software for reading from and writing to the transmitter Configure le programme pour communiquer correctement avec la radio - + Show fuses dialog Afficher les réglages des fusibles - + + Classic + + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + Normal + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + Tchèque + + + + Use Czech in menus + + + + + German + Allemand + + + + Use German in menus + + + + + English + Anglais + + + + Use English in menus + + + + + French + Français + + + + Use French in menus + + + + + Italian + Italien + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + Portugais + + + + Use Portuguese in menus + + + + + Swedish + Suédois + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + + &Settings + + + + &Read/Write &Lire/Ecrire - + Write Ecrire - + Unable to find file %1! Fichier %1 introuvable! @@ -2347,7 +2552,7 @@ Burn anyway ? Fichier EEPROM %1 invalide - + Error reading file %1: %2. Fichier %1 corrompu: @@ -2366,27 +2571,27 @@ Burn anyway ? Fl&asher - + &Copy &Copier - + &Edit Éditio&n - + &File &Fichier - + &Help &Aide - + &Save &Enregistrer @@ -2395,32 +2600,32 @@ Burn anyway ? &Mosaïque - + E&xit &Quitter - + Alt+S - + &Simulate &Simulation - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2446,37 +2651,42 @@ Burn anyway ? Le firmware sélectionné est trop gros pour la mémoire de la radio, veuillez sélectionner moins d'options - + Write Models and settings from %1 to the Tx? Ecrire les réglages et modèles de %1 dans la radio? - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + + &General Preferences... + + + + Show Companion contributors list - + Show Companion changelog @@ -2485,13 +2695,13 @@ Burn anyway ? Sui&vante - - + + Firmware Profiles Profils de firmware - + Ready Prêt @@ -2500,18 +2710,18 @@ Burn anyway ? Enregistrer la mémoire Flash sous - + Show the application's About box Afficher la fenêtre "A propos" de l'application - - + + &%1 %2 - + &About &À Propos @@ -2521,17 +2731,17 @@ Burn anyway ? - + &Paste Co&ller - + &Print Im&primer - + Save &As... Enregistrer &Sous... @@ -2544,31 +2754,30 @@ Burn anyway ? Lire la mémoire Flash - + Paste the clipboard's contents into the current selection Coller le contenu du presse-papier à l'emplacement sélectionné - + Open an existing file Ouvrir un fichier existant - &Configure... - &Configurer la communication... + &Configurer la communication... Cl&ose &Fermer - + Ctrl+P - + Print current model. Imprimer les données du modèle sélectionné. @@ -2589,12 +2798,12 @@ Burn anyway ? don - + &Open... &Ouvrir... - + Create a new file Créer un nouveau fichier @@ -2604,15 +2813,15 @@ Burn anyway ? - - - + + + File loaded Fichier chargé - - + + File saved Fichier sauvegardé @@ -2629,7 +2838,7 @@ Burn anyway ? P&récédente - + Exit the application Quitter l'application @@ -2638,12 +2847,12 @@ Burn anyway ? Écrire la mémoire Flash - + List available programmers Lister les programmateurs supportés - + Save the document to disk Enregistrer sur le disque @@ -2656,7 +2865,7 @@ Burn anyway ? &Cascade - + Simulate selected model. Simuler le modèle sélectionné @@ -2669,7 +2878,7 @@ Burn anyway ? Lire la mémoire Flash de l'émetteur - + Save the document under a new name Enregistrer sous un nom différent @@ -2678,26 +2887,25 @@ Burn anyway ? Fe&nêtre - + Edit general preferences Définir les préférences générales - &Preferences... - &Préférences... + &Préférences... About companion9x À propos de companion9x - + &Fuses... &Fusibles... - + Copy the current selection's contents to the clipboard Copier la sélection dans le presse-papier @@ -2706,7 +2914,7 @@ Burn anyway ? Activer la fenêtre suivante - + &List programmers &Programmateurs supportés @@ -2715,17 +2923,17 @@ Burn anyway ? Transférer l'EEPROM vers l'émetteur - + Cut the current selection's contents to the clipboard Couper la sélection et la copier dans le presse-papier - + Ctrl+Alt+R - + Ctrl+Alt+W @@ -2754,12 +2962,11 @@ Burn anyway ? Le projet companion9x a été créé à partir de eePe - Customize your &TX... - &Personnaliser votre émetteur... + &Personnaliser votre émetteur... - + Customize the splash screen of your TX Personnaliser l'écran de démarrage de votre émetteur @@ -2825,7 +3032,7 @@ Voulez vous la télécharger maintenant ? Transférer %1 dans la mémoire EEPROM de l'émetteur ? - + &Check for updates... Re&chercher des mises à jour... @@ -2834,7 +3041,7 @@ Voulez vous la télécharger maintenant ? Vérifier l'existence d'une nouvelle version de companion9x et du firmware sélectionné - + Copyright Copyright @@ -2848,7 +3055,7 @@ Voulez vous la télécharger maintenant ? Ignorer cette version (r%1)? - + Help Aide @@ -2884,15 +3091,37 @@ La version %2 est disponible. Voulez-vous la télécharger maintenant ? - - - - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + + + + Read Models and Settings From Tx Lire les réglages et modèles depuis la radio - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -2901,83 +3130,83 @@ n'a pas été reconnu comme un fichier de réglage et modèles valide. Ecrire quand même? - - - - - - + + + + + + Backup Models and Settings From Tx Sauvegarder les réglages et modèles depuis la radio - + Cannot check Models and Settings compatibility! Continue anyway? Impossible de vérifier la compatibilité des réglages et modèles. Continuer quand même? - + The transmitter firmware belongs to another product family, check file and preferences! Le firmware sélectionné est destiné à un différent type de radio, veuillez vérifier le fichier et les préférences! - + The transmitter firmware is outdated, please upgrade! Le firmware de la radio est obsolète, veuillez mettre à jour! - + Write Models and Settings To Tx Ecrire les réglages et modèles dans la radio - - + + Write Firmware To Tx Flasher le firmware de la radio - + Cannot convert Models and Settings for use with this firmware, original data will be used Impossible de convertir les réglages et modèles pour ce firmware, les données originales vont être utilisées - + Restore Models and Settings To Tx Restaurer une sauvegarde de réglages et modèles - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 Impossible de restaurerles réglages et modèles. Une copie du fichier est placée ici: %1 - + Firmware write failed L'écriture du firmware a échoué. - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 Impossible de flasher le firmware. Une copie du fichier de réglages et modèles est placée ici: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted Impossible de sauvegarder les réglages et modèles de la radio. Le flashage est abandonné. - + Save transmitter Models and Settings to File Sauvegarder les réglages et modèles depuis la radio dans un fichier - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. Impossible de trouver la radio, veuillez vérifier que la radio est sous tension sur la page d'accueil et connectée. - + Read Tx Firmware to File Sauvegarder le firmware de la radio dans un fichier @@ -2986,17 +3215,17 @@ Ecrire quand même? Si vous trouvez ce programme utile, merci d'apporter votre soutien en effectuant un - + About Companion - + Check for new version of Companion - + Contributors &List... &Liste des contributeurs... @@ -3005,62 +3234,62 @@ Ecrire quand même? Lister les contributeurs de companion9x - + &Write Models and Settings To Tx &Transférer les réglages et modèles à la radio - + Write Models and Settings to transmitter Transférer les réglages et modèles à la radio - + &Read Models and Settings From Tx &Lire les réglages et modèles depuis la radio - + Read Models and Settings from transmitter Lire les réglages et modèles depuis la radio - + Write Firmware Flasher le firmware - + Write firmware to transmitter Flasher le firmware de la radio - + Write Models and Settings from file to Tx Restaurer les réglages et modèles depuis un fichier - + Write Models and Settings from file to transmitter Restaurer les réglages et modèles depuis un fichier - + Save transmitter Models and Settings to file Sauvegarder les réglages et modèles dans un fichier - + Save the Models and Settings from the transmitter to a file Sauvegarder les réglages et modèles dans un fichier - + Read Firmware Lire le firmware de la radio - + Read firmware from transmitter Lire le firmware de la radio @@ -3073,19 +3302,19 @@ Ecrire quand même? Configure le programme pour communiquer correctement avec la radio - - + + Recent Files Derniers documents utilisés - - + + Invalid Models and Settings File %1 Fichier de réglages et modèles invalide: %1 - + Invalid binary Models and Settings File %1 Fichier binaire de réglages et modèles invalide: %1 @@ -10397,17 +10626,17 @@ Press cancel to abort joystick calibration preferencesDialog - + Mode 2 (RUD THR ELE AIL) Mode 2 (DIR GAZ PROF AIL) - + Mode 4 (AIL THR ELE RUD) Mode 4 (AIL GAZ PROF DIR) - + Mode selection: Mode 1: @@ -10448,92 +10677,93 @@ Manche Droit: Profondeur, Direction - + Mode 3 (AIL ELE THR RUD) Mode 3 (AIL PROF GAZ DIR) - + Firmware - - + + ... - + Enable Actif - + Calibrate Calibrer - - - - + + + + Open Folder Ouvrir le répertoire - + Set language of voice. May be different from firmware language Langue des voix. Peut être différente de la langue du firmware - + Export Profile Exporter le profil - + Import Profile Importer le profil - + Custom TX splash screen Personnaliser l'écran d'accueil - + Automatic Backup Folder Dossier de sauvegardes automatiques - + Automatically add version number to the filename after download Ajouter le numéro de version au nom de fichier après téléchargement - + SD Structure path Chemin de la structure de la carte SD - + Processor ID ID du processeur - + Simulator capture folder Dossier de sauvegarde des captures d'écran - + Use clipboard only Utiliser le presse-papiers + @@ -10575,17 +10805,16 @@ Peut être différente de la langue du firmware - CheckBox - + Check for updates Vérifier les mises à jour - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -10593,149 +10822,97 @@ This is used by the templated to determine which channel goes to what number out Indique l'affectation voie / numéro de canal par défaut utilisée lors de la création d'un modèle. - + Language Langue - + Voice Voix - + Profile Name Nom du profil - + Save Profile Sauvegarder profil - + Simu BackLight Rétroéclairage simu - + Check for selected Fw updates Vérifier les mises à jour de firmwares au démarrage - + Ask use of wizard for new models Utiliser l'assistant de configuration de modèle - + Show Splash At Start - + Remember switches in simulator Mémoriser les inters pour le simulateur - + Blue Blu Bleu - + Green Vert - + Red Rouge - + Orange Orange - + Yellow Jaune - + Personal splash library Bibliothèque de splashs personnalisés - + Profile slot Numéro de profil - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - Normal - Normal + Normal - - Big - - - - - Huge - - - - + Find Executable - + Google Earth Executable @@ -10744,58 +10921,57 @@ Indique l'affectation voie / numéro de canal par défaut utilisée lors de Dossier de sauvegarde de l'EEPROM - + auto backup before write Sauvegarde automatique avant programmation - + Ask for flashing after Download Demander pour flasher après téléchargement - + Splash library behaviour Utilisation de la bibliothèque de Splashes - + Include companion splashes Inclure les écrans d'accueil de companion9x - + Only user defined splashes Seulement vos écrans d'accueil - + Joystick Joystick - + Open Image Charger une image - + Invert Pixels Inverser les couleurs - + FwInfo - Language (requires restart) Version française par Pascal Dugué / Octobre 2010. - Langue (nécessite un redémarrage de companion9x) + Langue (nécessite un redémarrage de companion9x) - + Default Channel Order Ordre des voies par défaut @@ -10805,17 +10981,17 @@ Indique l'affectation voie / numéro de canal par défaut utilisée lors de Préférences - + Default Stick Mode Mode par défaut - + Mode 1 (RUD ELE THR AIL) Mode 1 (DIR PROF GAZ AIL) - + Check for updates on startup Vérifier les mises à jour au démarrage @@ -10824,18 +11000,18 @@ Indique l'affectation voie / numéro de canal par défaut utilisée lors de Afficher l'écran d'accueil au démarrage - + Recent History Size Taille de l'historique des derniers documents utilisés - - + + Download Télécharger - + Last downloaded release: %1 Dernière version téléchargée : %1 @@ -10848,84 +11024,84 @@ Indique l'affectation voie / numéro de canal par défaut utilisée lors de Le firmware sélectionné ne peut pas être téléchargé par companion9x. - + Image stored in settings Image enregistrée dans les paramètres - - + + No joysticks found Aucun joystick - + Select your Models and Settings backup folder Sélectionner le dossier dans lequel une sauvegarde des réglages et modèles sera placée automatiquement lors de chaque opération - + Select Google Earth executable - + Select the folder replicating your SD structure Sélectionner un dossier contenant une copie des dossiers de la carte SD - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? Le nom du profil est vide, le profil %1 va être effacé.<br>Etes-vous sûr? - + Export profile As Exporter le profil sous - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? L'emplacement %1 n'est pas vide, il va être écrasé. Continuer? - + Open Profile to import Ouvrir le profil à importer - + Open Image to load Ouvre l'image à charger - + Images (%1) Images (%1) - - + + Error Erreur - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Select your library folder Sélectionner le dossier de bibliothèque - + Select your snapshot folder Sélectionner le dossier où stocker les captures d'écran @@ -10934,8 +11110,8 @@ Indique l'affectation voie / numéro de canal par défaut utilisée lors de Sélectionner le dossier de sauvegarde d'EEPROM - - + + Cannot load %1. Impossible de charger %1. diff --git a/companion/src/translations/companion_he.ts b/companion/src/translations/companion_he.ts index d50bb0331..86423d5c5 100644 --- a/companion/src/translations/companion_he.ts +++ b/companion/src/translations/companion_he.ts @@ -1871,9 +1871,9 @@ Are you sure ? MainWindow - - - + + + File loaded @@ -1929,99 +1929,94 @@ Do you want to download it now ? - + Open - - + + File saved - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + Copyright - - + + &%1 %2 - + &New - + Create a new file - + &Open... - + Open an existing file - + &Save - + Save the document to disk - + Save &As... - + Save the document under a new name - - &Preferences... - - - - + Edit general preferences - + &Check for updates... @@ -2040,24 +2035,24 @@ Do you want to download it now ? - - - - - - - - - + + + + + + + + + Error - - - + + + Error opening file %1: %2. @@ -2145,307 +2140,297 @@ Do you want to download it now ? - + Firmware updates - + Current firmware does not provide release notes informations. - + Cannot write file %1: %2. - - - - - + + + + + Taranis radio not found - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. - + Write Models and settings from %1 to the Tx? - - - + + + Backup is impossible - - - + + + The backup dir set in preferences does not exist - - + + Warning - + Conversion failed - + Restore failed - + Backup failed - + &loadBackup... - + Load backup from file - + Lo&gs - + Ctrl+G - + Open log file - + Contributors &List... - + ChangeLog... - + Firmware ChangeLog... - + Show firmware changelog - + Compare... - + Compare models - - Customize your &TX... - - - - + Customize the splash screen of your TX - + E&xit - + Exit the application - + Cu&t - + Cut the current selection's contents to the clipboard - + &Copy - + Copy the current selection's contents to the clipboard - + &Paste - + Paste the clipboard's contents into the current selection - + Ctrl+Alt+W - + Ctrl+Alt+R - - &Configure... - - - - + Configure software for reading from and writing to the transmitter - + &List programmers - + List available programmers - + &Fuses... - + Show fuses dialog - + &Simulate - + Alt+S - + Simulate selected model. - + &Print - + Ctrl+P - + Print current model. - + &About - + Show the application's About box - - + + Recent Files - + &Read/Write - + Write - + Unable to find file %1! - + Error reading file %1: %2. - + &File - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2461,225 +2446,457 @@ Do you want to download it now ? - - - - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + + + + Read Models and Settings From Tx - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? - - - - - - + + + + + + Backup Models and Settings From Tx - + Cannot check Models and Settings compatibility! Continue anyway? - + The transmitter firmware belongs to another product family, check file and preferences! - + The transmitter firmware is outdated, please upgrade! - + Write Models and Settings To Tx - - + + Write Firmware To Tx - + Cannot convert Models and Settings for use with this firmware, original data will be used - + Restore Models and Settings To Tx - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 - + Firmware write failed - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted - + Save transmitter Models and Settings to File - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. - + Read Tx Firmware to File - + About Companion - + + &General Preferences... + + + + Check for new version of Companion - + Show Companion contributors list - + Show Companion changelog - + + Configure transmitter start screen... + + + + &Write Models and Settings To Tx - + Write Models and Settings to transmitter - + &Read Models and Settings From Tx - + Read Models and Settings from transmitter - + Write Firmware - + Write firmware to transmitter - + Write Models and Settings from file to Tx - + Write Models and Settings from file to transmitter - + Save transmitter Models and Settings to file - + Save the Models and Settings from the transmitter to a file - + Read Firmware - + Read firmware from transmitter - - - Firmware Profiles + + &Configure connection software... - - &Edit + + Classic - - - Invalid Models and Settings File %1 + + The multicolor classical Companion icon theme - - Invalid binary Models and Settings File %1 + + A monochrome black icon theme - - &Help + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + + + + + Use Czech in menus + + + + + German + + + + + Use German in menus + + + + + English + + + + + Use English in menus + + + + + French + + + + + Use French in menus + + + + + Italian + + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + + + + + Use Portuguese in menus + + + + + Swedish + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + + Firmware Profiles + + + + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + + &Edit + + + + + &Settings + + + + + + Invalid Models and Settings File %1 + + + + + Invalid binary Models and Settings File %1 + + + + + &Help + + + + File - + Edit - + Help - + Ready @@ -8064,65 +8281,60 @@ Press cancel to abort joystick calibration - - Language (requires restart) - - - - + SD Structure path - + Processor ID - + Simulator capture folder - + Use clipboard only - + Recent History Size - - + + Download - + Default Channel Order - + Default Stick Mode - + Channel order This is used by the templated to determine which channel goes to what number output. - + FwInfo - + Mode selection: Mode 1: @@ -8145,167 +8357,112 @@ Mode 4: - + Mode 1 (RUD ELE THR AIL) - + Mode 2 (RUD THR ELE AIL) - + Mode 3 (AIL ELE THR RUD) - + Mode 4 (AIL THR ELE RUD) - + Automatic Backup Folder - + Automatically add version number to the filename after download - + Voice - + Set language of voice. May be different from firmware language - + Firmware - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - - Normal - - - - - Big - - - - - Huge - - - - + Find Executable - + Google Earth Executable - + Check for updates on startup - - + + ... - + Splash library behaviour - + Include companion splashes - + Only user defined splashes - + Custom TX splash screen - + Personal splash library - + Joystick - - - - + + + + Open Folder + @@ -8347,216 +8504,215 @@ May be different from firmware language - CheckBox - + Check for updates - + Language - + Profile Name - + Export Profile - + Save Profile - + Import Profile - + Blue Blu - + Simu BackLight - + Check for selected Fw updates - + Ask use of wizard for new models - + Show Splash At Start - + Remember switches in simulator - + Green - + Red - + Orange - + Yellow - + Profile slot - + auto backup before write - + Ask for flashing after Download - + Enable - + Calibrate - + Open Image - + Invert Pixels - + Last downloaded release: %1 - + Image stored in settings - - + + No joysticks found - + Select your Models and Settings backup folder - + Select Google Earth executable - + Select the folder replicating your SD structure - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? - + Export profile As - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? - + Open Profile to import - + Open Image to load - + Images (%1) - - + + Error - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Select your library folder - + Select your snapshot folder - - + + Cannot load %1. diff --git a/companion/src/translations/companion_it.ts b/companion/src/translations/companion_it.ts index e510c9c16..b0e2120a0 100644 --- a/companion/src/translations/companion_it.ts +++ b/companion/src/translations/companion_it.ts @@ -1998,9 +1998,9 @@ Siete sicuri ? MainWindow - - - + + + File loaded Documento caricato @@ -2064,9 +2064,9 @@ Siete sicuri ? - - - + + + Error opening file %1: %2. Errore durante l'apertura del file %1: @@ -2131,13 +2131,13 @@ Volete scaricarla ora ? Ignorare questa versione (r%1) ? - + Open Apri - - + + File saved Documento salvato @@ -2146,15 +2146,15 @@ Volete scaricarla ora ? - - - - - - - - - + + + + + + + + + Error Errore @@ -2223,36 +2223,36 @@ Volete scaricarla ora ? Le note di rilascio includono informazioni molto importanti. Volete vederle ora ? - + Firmware updates Aggiornamenti firmware - + Current firmware does not provide release notes informations. Il firmware selezionato non fornisce note di aggiornamento. - + Cannot write file %1: %2. Non posso scrivere il file %1: %2. - - - - - + + + + + Taranis radio not found Radio taranis non trovata - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Impossibile identificare la radio sul vostro sistema, verificate che il disco della eeprom sia connesso. @@ -2273,16 +2273,16 @@ non è stato riconosciuto come una EEProm valida Scriverlo ugualmente ? - - - + + + Backup is impossible Impossibile effettuare il Backup - - - + + + The backup dir set in preferences does not exist La directory per i backup impostata in preferenze non esiste @@ -2295,8 +2295,8 @@ Scriverlo ugualmente ? Non posso controllare la compatibilità delle impostazioni! Continuare ugualmente ? - - + + Warning Avviso @@ -2317,7 +2317,7 @@ Scriverlo ugualmente ? Scrivi il fimware sulla radio - + Conversion failed Conversione fallita @@ -2330,7 +2330,7 @@ Scriverlo ugualmente ? Ripristina memoria sulla Radio - + Restore failed Ripristino fallito @@ -2347,7 +2347,7 @@ Scriverlo ugualmente ? Non posso aggiornare il firmware, la memoria dei settaggi originale può essere trovata in %1 - + Backup failed Salvataggio fallito @@ -2364,10 +2364,10 @@ Scriverlo ugualmente ? Scrivi il firmware in un documento - - - - + + + + Read Models and Settings From Tx Leggi le impostazioni dalla radio @@ -2386,12 +2386,34 @@ Scriverlo ugualmente ? Il firmware richiesto è troppo grande per la radio a causa delle opzioni selezionate - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + Write Models and settings from %1 to the Tx? Scrivere le impostazioni sulla radio da %1? - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -2400,91 +2422,271 @@ non è stato riconosciuto come un file di impostazioni valido. Scriverlo ugualmente ? - - - - - - + + + + + + Backup Models and Settings From Tx Salva impostazioni della radio - + Cannot check Models and Settings compatibility! Continue anyway? Non posso controllare la compatibilità delle impostazioni! Continuare ugualmente ? - + The transmitter firmware belongs to another product family, check file and preferences! Il firmware nella radio è di una famiglia differente\n rispetto a quello delle impostazioni che si stanno scrivendo.\n Controllare il documento e le preferenze! - + The transmitter firmware is outdated, please upgrade! Il firmware della radio è obsoleto, pianificate un aggiornamento! - + Write Models and Settings To Tx Scrivi le impostazioni nella radio - - + + Write Firmware To Tx Scrivi il fimware sulla radio - + Cannot convert Models and Settings for use with this firmware, original data will be used Non posso convertire le impostazioni per questo firmware, verranno usate le impostazioni originali - + Restore Models and Settings To Tx Ripristina le impostazioni sulla Radio - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 Non posso ripristinare le impostazioni sulla radio, il file originale può essere trovato in %1 - + Firmware write failed Scrittura del firmware fallita - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 Non posso aggiornare il firmware, le impostazioni originali possono essere trovate nel file %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted Non riesco a salvare le impostazioni della radio, l'aggiornamento firmware viene annullato - + Save transmitter Models and Settings to File Salva le impostazioni dalla radio e scrivile in un documento - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. Impossibile identificare la radio sul vostro sistema, verificate che il disco della eeprom sia connesso. - + Read Tx Firmware to File Scrivi il firmware in un documento - + Copyright Copyright + + + Classic + + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + Normale + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + Ceco + + + + Use Czech in menus + + + + + German + Tedesco + + + + Use German in menus + + + + + English + Inglese + + + + Use English in menus + + + + + French + Francese + + + + Use French in menus + + + + + Italian + Italiano + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + Portoghese + + + + Use Portuguese in menus + + + + + Swedish + Svedese + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + &Settings + + Version %1 (revision %2), %3 Versione %1 (revisione %2), %3 @@ -2506,88 +2708,87 @@ Scriverlo ugualmente ? Informazioni su companion9x - - + + &%1 %2 - + &New &Nuovo - + Create a new file Crea un nuovo documento - + &Open... &Apri... - + Open an existing file Apri un documente esistente - + &loadBackup... carica&Backup... - + Load backup from file Carica backup da file - + &Save &Salva - + Save the document to disk Salva il documento su disco - + Save &As... S&alva come... - + Save the document under a new name Salva il documento con un nuovo nome - + Lo&gs Lo&gs - + Ctrl+G - + Open log file Apri file di log - &Preferences... - &Preferenze... + &Preferenze... - + Edit general preferences Modifica preferenze - + &Check for updates... &Controlla aggiornamenti... @@ -2596,7 +2797,7 @@ Scriverlo ugualmente ? Controlla per nuove versioni di companion9x - + Contributors &List... E&lenco collaboratori... @@ -2605,7 +2806,7 @@ Scriverlo ugualmente ? Mostra l'elenco di quelli che hanno contribuito a companion9x - + ChangeLog... Cambiamenti... @@ -2619,157 +2820,161 @@ Scriverlo ugualmente ? - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + Firmware ChangeLog... Cambiamenti del firmware... - + Show firmware changelog Mostra l'elenco dei cambiamenti del firmware - + Compare... Confronta... - + Compare models Confronta due modelli - Customize your &TX... - Personalizza il &TX... + Personalizza il &TX... - + Customize the splash screen of your TX Personalizza la schermata di avvio della radio - + E&xit Es&ci - + Exit the application Esci dall'applicazione - + Cu&t Ta&glia - + Cut the current selection's contents to the clipboard Taglia la selezione negli appunti - + &Copy &Copia - + Copy the current selection's contents to the clipboard Copia la selezione negli appunti - + &Paste &Incolla - + Paste the clipboard's contents into the current selection Incolla gli appunti nella selezione corrente - + &Write Models and Settings To Tx Scri&vi le impostazioni nella radio - + Write Models and Settings to transmitter Scrivi le impostazioni nella radio - + &Read Models and Settings From Tx &Leggi le impostazioni dalla radio - + Read Models and Settings from transmitter Leggi le impostazioni dalla radio - + Write Firmware Scrivi il fimware - + Write firmware to transmitter Scrivi il firmware nella radio - + Write Models and Settings from file to Tx Scrivi le impostazioni nella radio da un documento - + Write Models and Settings from file to transmitter Scrivi le impostazioni nella radio da un documento - + Save transmitter Models and Settings to file Salva le impostazioni dalla radio e scrivile in un documento - + Save the Models and Settings from the transmitter to a file Leggi le impostazioni dalla radio e scrivile in un file - + Read Firmware Leggi firmware - + Read firmware from transmitter Leggi il firmware dalla radio - + + &Configure connection software... + + + + Configure software for reading from and writing to the transmitter Configura il software per la lettura/scrittura del microprocessore @@ -2782,23 +2987,23 @@ Scriverlo ugualmente ? Configura il programmatore del microprocessore - + &Read/Write &Leggi/Scrivi - + Write Scrivi - - + + Invalid Models and Settings File %1 File impostazioni non valido %1 - + Invalid binary Models and Settings File %1 File binario delle impostazioni non valido %1 @@ -2807,7 +3012,7 @@ Scriverlo ugualmente ? &Scrivi la memoria nella radio - + Ctrl+Alt+W Ctrl+Alt+W @@ -2820,7 +3025,7 @@ Scriverlo ugualmente ? &Leggi la memoria dalla radio - + Ctrl+Alt+R Ctrl+Alt+R @@ -2861,9 +3066,8 @@ Scriverlo ugualmente ? Leggi il firmware dalla radio - &Configure... - &Configura... + &Configura... Configure burning software @@ -2871,16 +3075,16 @@ Scriverlo ugualmente ? - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2896,72 +3100,82 @@ Scriverlo ugualmente ? - + About Companion - + + &General Preferences... + + + + Check for new version of Companion - + Show Companion contributors list - + Show Companion changelog - + + Configure transmitter start screen... + + + + &List programmers E&lenco programmatori - + List available programmers Lista dei programmatori supportati - + &Fuses... &Fuses... - + Show fuses dialog Mostra finestra di dialogo Fuses - + &Simulate Si&mula - + Alt+S - + Simulate selected model. Simula modello selezionato. - + &Print Stam&pa - + Ctrl+P - + Print current model. Stampa modello corrente. @@ -3014,12 +3228,12 @@ Scriverlo ugualmente ? Sposta il fuoco sulla finestra precedente - + &About &Informazioni su - + Show the application's About box Mostra la finestra Informazioni Su @@ -3032,24 +3246,39 @@ Scriverlo ugualmente ? Cambia orientazione Sinistra/Destra - - + + Recent Files Documenti Recenti - - + + Firmware Profiles Profili personalizzati - + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + &File &Documento - + &Edit &Modifica @@ -3062,17 +3291,17 @@ Scriverlo ugualmente ? &Finestra - + &Help &Aiuto - + File Documento - + Edit Modifica @@ -3081,17 +3310,17 @@ Scriverlo ugualmente ? Scrivi - + Help Aiuto - + Ready Pronto - + Unable to find file %1! Impossibile trovare il file %1! @@ -3100,7 +3329,7 @@ Scriverlo ugualmente ? File impostazioni non valido %1 - + Error reading file %1: %2. Error durante la lettura del file %1: @@ -10541,22 +10770,21 @@ Premere annulla per cancellare l'operazione Preferenze - Language (requires restart) - Lingua (richiede il riavvio) + Lingua (richiede il riavvio) - + Firmware Firmware - + Check for updates on startup Controllo aggiornamenti all'avvio - + FwInfo @@ -10565,23 +10793,23 @@ Premere annulla per cancellare l'operazione Mostra schermata iniziale - + Recent History Size File recenti - - + + Download Scarica - + Default Channel Order Ordine canali predefinito - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -10590,12 +10818,12 @@ This is used by the templated to determine which channel goes to what number out Utilizzato dai Modelli per stabilire quale uscita viene assegnata ai canali. - + Default Stick Mode Modalità Stick - + Mode selection: Mode 1: @@ -10636,63 +10864,63 @@ Mode 4: - - + + ... - + Enable Abilita - + Calibrate Calibrazione - - - - + + + + Open Folder Apri Cartella - + Automatic Backup Folder Cartella per backup - + Set language of voice. May be different from firmware language Impostazione del linguaggio della voce. Può essere differente dalla lingua del firmware - + Voice Voce - + Ask for flashing after Download Scrivere dopo aggiornamento - + Export Profile Esporta Profilo - + Import Profile Importa Profilo - + Custom TX splash screen Schermo personalizzato @@ -10701,36 +10929,37 @@ Può essere differente dalla lingua del firmware Cartella per backup - + auto backup before write Esegui backup prima di ogni scrittura - + Automatically add version number to the filename after download Aggiungi automaticamente il numero di versione al nome del file dopo il download - + SD Structure path Cartella Struttura Scheda SD - + Processor ID ID del processore - + Simulator capture folder Cartella per cattura schermate - + Use clipboard only Usa solo gli appunti + @@ -10772,208 +11001,155 @@ Può essere differente dalla lingua del firmware - CheckBox CheckBox - + Check for updates Verifica aggiornamenti - + Check for selected Fw updates Controlla aggiornamenti Fw - + Ask use of wizard for new models Chiedi l'utilizzo dell'assistente per i nuovi modelli - + Remember switches in simulator Ricorda la posizione degli switches nel simulatore - + Mode 1 (RUD ELE THR AIL) Modo 1 (DIR ELE MOT ALE) - + Mode 2 (RUD THR ELE AIL) Modo 2 (DIR MOTO ELE ALE) - + Mode 3 (AIL ELE THR RUD) Modo 3 (ALE ELE MOT DIR) - + Mode 4 (AIL THR ELE RUD) Modo 4 (ALE MOT ELE DIR) - + Profile slot Profilo personalizzato - + Find Executable - + Google Earth Executable - + Profile Name Descrizione - + Save Profile Salva Profilo - + Blue Blu - + Language Lingua - + Green Verde - + Show Splash At Start - + Red Rosso - + Orange Arancione - + Yellow Giallo - + Personal splash library Libreria sfondi personale - + Splash library behaviour Caratteristiche libreria sfondi - + Include companion splashes Includi sfondi predefiniti - + Only user defined splashes Solamente sfondi utente - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - Normal - Normale + Normale - - Big - - - - - Huge - - - - + Joystick Joystick - + Open Image Apri immagine - + Invert Pixels Negativo - + Simu BackLight Colore Retroilluminazione - + Last downloaded release: %1 Ultima versione scaricata: %1 @@ -10986,48 +11162,48 @@ Può essere differente dalla lingua del firmware Il firmware selezionato non può essere scaricato da companion9x. - + Image stored in settings Immagine predefinita - - + + No joysticks found Nessun joystick trovato - + Select your Models and Settings backup folder Selezionare la cartella per i backup - + Select Google Earth executable - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? La descrizione del profilo è vuota. Il profilo %1 sarà cancellato.<br>Siete sicuri ? - + Select your library folder Selezionare la cartella degli sfondi - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Select your snapshot folder Selezionare la cartella per le schermate del simulatore @@ -11036,44 +11212,44 @@ Può essere differente dalla lingua del firmware Selezionare la cartella per i backup - + Select the folder replicating your SD structure Selezionare la cartella contenente la struttura della scheda SD - + Export profile As Esporta il profilo come - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? La descrizione del profilo è vuota. Il profilo %1 sarà sovrascritto.<br>Siete sicuri ? - + Open Profile to import Apri il profile da importare - + Open Image to load Apri l'immagine da caricare - + Images (%1) Immagini (%1) - - + + Error Errore - - + + Cannot load %1. Non posso caricare %1. diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts index 9a73c401b..68eaa64ed 100644 --- a/companion/src/translations/companion_pl.ts +++ b/companion/src/translations/companion_pl.ts @@ -1937,9 +1937,9 @@ Jesteś pewien ? MainWindow - - - + + + File loaded Plik załadowany @@ -1997,24 +1997,24 @@ Jesteś pewien ? - - - - - - - - - + + + + + + + + + Error Błąd - - - + + + Error opening file %1: %2. Błąd otwarcia pliku %1: @@ -2100,103 +2100,313 @@ Chcesz pobrać teraz? Opis wydania zawiera bardzo ważne informacje. Chcesz je przeczytać teraz? - - + + File saved Plik zapisany - + Firmware updates Aktualizacja firmware - + Current firmware does not provide release notes informations. Aktualny firmware nie zawiera opisu wydania. - + Cannot write file %1: %2. Nie mogę zapisać pliku %1: %2. - - - - - + + + + + Taranis radio not found Nie znaleziono Radia Taranis - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. - - - + + + Backup is impossible Backup jest niemożliwy do wykonania - - - + + + The backup dir set in preferences does not exist Brak ustawień ścieżki backupu - - + + Warning Ostrzeżenie - + Conversion failed Konwersja nieudana - + Restore failed Zapis nieudany - + Backup failed Backup nieudany - + Copyright - - + + &General Preferences... + + + + + Configure transmitter start screen... + + + + + &Configure connection software... + + + + + Classic + Klasyczna + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + Mała + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + Normalna + + + + Use big toolbar icons + + + + + Big + Duża + + + + Use huge toolbar icons + + + + + Huge + Olbrzymia + + + + System default language + + + + + Use system default language in menus + + + + + Czech + Czeski + + + + Use Czech in menus + + + + + German + Niemiecki + + + + Use German in menus + + + + + English + Angielski + + + + Use English in menus + + + + + French + Francuski + + + + Use French in menus + + + + + Italian + Włoski + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + Polski + + + + Use Polish in menus + + + + + Portuguese + Portugalski + + + + Use Portuguese in menus + + + + + Swedish + Szwedzki + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + + &Settings + + + + + &%1 %2 - - + + Companion - Models and Settings Editor - %1 - profile %2 Companion - Edytor Modeli i Ustawień - %1 - profil %2 - - - + + + Companion - Models and Settings Editor - %1 Companion - Edytor Modeli i Ustawień - %1 @@ -2232,25 +2442,47 @@ Chcesz pobrać teraz? Chcesz wgrać firmware do radia teraz? - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + Open Otwórz - - - - + + + + Read Models and Settings From Tx Wczytaj Modele i Ustawienia z radia - + Write Models and settings from %1 to the Tx? Czy zapisać Modele i Ustawienia z %1 do radia ? - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? @@ -2259,501 +2491,498 @@ nie został rozpoznany jako prawidłowy pli Modeli i Ustawień. Czy mimo wszystko zapisać? - - - - - - + + + + + + Backup Models and Settings From Tx Zbakupuj Modele i Ustawienia z radia - + Cannot check Models and Settings compatibility! Continue anyway? Nie mogę potwierdzić kompatybilności Modeli i Ustawień. Kontynuować? - + The transmitter firmware belongs to another product family, check file and preferences! Firmwqare radia nalezy do innej rodziny produktów, sprawdź plik i preferencje ! - + The transmitter firmware is outdated, please upgrade! Firmware radia jest przestarzały, proszę zaktualizować! - + Write Models and Settings To Tx Zapisz Modele i Ustawienia do radia - - + + Write Firmware To Tx Zapisz firmware do radia - + Cannot convert Models and Settings for use with this firmware, original data will be used Nie mogę skonwertować Modeli i Ustawień na ten rodzaj firmware, zostaną użyte oryginalne dane - + Restore Models and Settings To Tx Odtwórz Modele i Ustawienia do radia - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 Nie mogę odtworzyć Modeli i Ustawień do radia. Plik modeli i ustawień mozna znaleźć w: %1 - + Firmware write failed Zapis firmawe nie powiódł się - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 Nie mogę zapisać Firmware do radia. Plik modeli i ustawień mozna znaleźć w: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted Nie mogę zbackupować Modeli i Ustawień z radia, Zapis Firmawe przerwany - + Save transmitter Models and Settings to File Zapisz Modele i Ustawienia z radia do pliku - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. - + Read Tx Firmware to File Odczytaj firmware z radia do pliku - + OpenTX Home Page: <a href='%1'>%1</a> Strona domowa OpenTX: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> Projekt Companion odłączony z oryginalnego <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> Jeśli uważasz, że ten program jest użyteczny, wesprzyj poprzez <a href='%1'>donację</a> - + Version %1, %3 Wersja %1, %3 - + About Companion O aplikacji Companion - + &New &Nowy - + Create a new file Utwórz nowy plik - + &Open... &Otwórz... - + Open an existing file Otwórz istniejący plik - + &loadBackup... &Załaduj backup... - + Load backup from file Załaduj backup z pliku - + &Save &Zapisz - + Save the document to disk Zapisz dokument na dysku - + Save &As... Zapisz j&ako... - + Save the document under a new name Zapisz dokument pod nową nazwą - + Lo&gs Lo&gi - + Ctrl+G - + Open log file Otwórz plik logów - &Preferences... - &Preferencje... + &Preferencje... - + Edit general preferences Edycja głównych ustawień - + &Check for updates... &Sprawdź aktualizacje... - + Check for new version of Companion Sprawdź nową wersję Companion - + Show Companion contributors list Pokaz listę twórców Companion - + Show Companion changelog Zobacz zmiany w Companion - + &Write Models and Settings To Tx &Zapisz Modele i Ustawienia do radia - + Write Models and Settings to transmitter Zapisz Modele i Ustawienia do radia - + &Read Models and Settings From Tx &Wczytaj Modele i Ustawienia z radia - + Read Models and Settings from transmitter Wczytaj Modele i Ustawienia z radia - + Write Firmware Zapisz firmware - + Write firmware to transmitter Zapisz firmware do radia - + Write Models and Settings from file to Tx Zapisz Modele i Ustawienia z pliku do radia - + Write Models and Settings from file to transmitter Zapisz Modele i Ustawienia z pliku do radia - + Save transmitter Models and Settings to file Zapisz Modele i Ustawienia do pliku - + Save the Models and Settings from the transmitter to a file Zapisz Modele i Ustawienia z radia do pliku - + Read Firmware Wczytaj Firmware - + Read firmware from transmitter Wczytaj Firmware z radia - + Configure software for reading from and writing to the transmitter Ustawienia oprogramowania do odczytu i zapisu radia - + &Read/Write &Odczyt/Zapis - + Write Zapis - - + + Invalid Models and Settings File %1 Błędny plik %1 Modeli i Ustawień - + Invalid binary Models and Settings File %1 Błędny binarny plik %1 Modeli i Ustawień - + Contributors &List... &Lista twórców... - + ChangeLog... Zmiany... - + Firmware ChangeLog... Zmiany firmware... - + Show firmware changelog Zobacz zmiany w firmware - + Compare... Porównaj... - + Compare models Porównaj modele - Customize your &TX... - &Personalizuj swoje radio... + &Personalizuj swoje radio... - + Customize the splash screen of your TX Personalizuj obrazek na swoim radiu - + E&xit Za&kończ - + Exit the application Zakończ aplikację companion9x - + Cu&t &Wytnij - + Cut the current selection's contents to the clipboard Wytnij zaznaczenie do schowka - + &Copy &Kopiuj - + Copy the current selection's contents to the clipboard Kopiuj zaznaczenie do schowka - + &Paste &Wklej - + Paste the clipboard's contents into the current selection Wklej zawartość schowka na aktualnej pozycji - + Ctrl+Alt+W - + Ctrl+Alt+R - &Configure... - &Konfiguracja... + &Konfiguracja... - + &List programmers &Lista programatorów - + List available programmers Lista dostępnych programatorów - + &Fuses... Ustawienia &mikro-kontrolera... - + Show fuses dialog Pokaż okno ustawień mikro-kontrolera - + &Simulate &Symulator - + Alt+S - + Simulate selected model. Symulacja wybranego modelu. - + &Print &Drukuj - + Ctrl+P - + Print current model. Wydrukuj aktualny model. - + &About &O aplikacji - + Show the application's About box O aplikacji companion9x - - + + Recent Files Poprzednie pliki - - + + Firmware Profiles Profile firmware - + &File &Plik - + &Edit &Edycja - + &Help &Pomoc - + File Plik - + Edit Edycja - + Help Pomoc - + Ready Gotowe - + Unable to find file %1! Nie mogę znaleźć pliku %1! - + Error reading file %1: %2. Błąd odczytu pliku %1: @@ -8257,88 +8486,89 @@ Tlačítkem Zrušit přerušíte kalibraci Preferencje - + Check for selected Fw updates Sprawdź aktualizacje firmware - + Ask use of wizard for new models Zapytać czy używać konfiguratora nowych modeli - + Invert Pixels Odwrócić piksele - - + + ... - + Remember switches in simulator Zapamietać przaełaczniki w symulatorze - + Enable Włącz - + Calibrate Kalibruj - - - - + + + + Open Folder Otwórz katalog - + FwInfo - + Check for updates Sprawdź aktualizacje - + Open Image Otwórz obrazek - + Language Język - - + + Download Pobierz - + Set language of voice. May be different from firmware language Ustaw język komuniaktów głosowych (). Moze być inny od języka firmware - + Voice Komuniakty głosowe + @@ -8380,164 +8610,150 @@ Moze być inny od języka firmware - CheckBox - + Ask for flashing after Download Zapytaj o flaszowanie po pobraniu - + Export Profile Eksport profili - + Import Profile Import profili - + Profile Name Nazwa profilu - + Automatically add version number to the filename after download Automatycznie dodaj numer wersji do nazwy pliku po pobraniu - + Save Profile Zapisz profil - + Show Splash At Start Pokazuj ekran startowy z logo - + Automatic Backup Folder Automatyczny Katalog Backupów - + Simu BackLight BackLight Color Kolor podświetlenia - + Blue Niebieski - + Green Zielony - + Red Czerwony - + Orange Pomarańczowy - + Yellow Żółty - Theme - Skórka + Skórka - - Requires restart - Wymagany restart + Wymagany restart - Classic - Klasyczna + Klasyczna - Monochrome - Monochromatyczna + Monochromatyczna - MonoWhite - Mono-Biała + Mono-Biała - MonoBlue - Mono-Niebieska + Mono-Niebieska - Icon size - Wielkość Ikon + Wielkość Ikon - Small - Mała + Mała - Normal - Normalna + Normalna - Big - Duża + Duża - Huge - Olbrzymia + Olbrzymia - + Check for updates on startup Sprawdź aktualizacje na przy uruchomieniu - + Google Earth Executable Wykonywalny plik Google Earth - + Find Executable Znajdź wykonywalny plik - Language (requires restart) - Język programu (wymaga restartu) + Język programu (wymaga restartu) - + Custom TX splash screen Własny obrazek na wyświetlaczu - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -8545,27 +8761,27 @@ This is used by the templated to determine which channel goes to what number out To ustawienie jest używane przez szablony, jakie wyjście przypisane jest do kanałów. - + Firmware - + Default Stick Mode Bazowy mod drążków - + Default Channel Order Bazowa kolejność kanałów - + Personal splash library Własna biblioteka obrazków - + Mode selection: Mode 1: @@ -8606,171 +8822,171 @@ Mode 4: - + Mode 1 (RUD ELE THR AIL) Mod 1 (SK.SW.Gaz.Lot) - + Mode 2 (RUD THR ELE AIL) Mod 2 (SK.Gaz.SW.Lot) - + Mode 3 (AIL ELE THR RUD) Mod 3 (LOT.SW.Gaz.SK) - + Mode 4 (AIL THR ELE RUD) Mod 4 (Lot.Gaz.SW.SK) - + Joystick - + Include companion splashes Załącz bazowe logo - + Only user defined splashes Własne logo - + Splash library behaviour Zachowanie bibliteki obrazków - + SD Structure path Struktura karty SD - + Processor ID ID procesora - + Recent History Size Wielkość zapamietanej historii - + Profile slot Slot profilu - + auto backup before write Automatyczny backup przed zapisem - + Simulator capture folder Katalog zapisu symulatora - + Use clipboard only Użycie schowka do kopiowania - + Last downloaded release: %1 Ostatnie pobrane wydanie: %1 - + Image stored in settings Logo zapamietane w ustawieniach - - + + No joysticks found Brak oysticka - + Select the folder replicating your SD structure Wybierz folder do zreplikowania struktury Twojej karty SD - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? Nazwa profilu jest pusta, slot %1 będzie skasowany.<br>Jesteś pewien ? - + Select your library folder Support for SD memory card Wybierz katalog bibliteki - + Select your snapshot folder Katalog obrazków dla symulatora - + The selected firmware has never been downloaded by Companion. Wybrany firmware nie został nigdy pobrany przez Companion. - + The selected firmware cannot be downloaded by Companion. Companion nie moze pobrac wybranego firmware. - + Select your Models and Settings backup folder Wybierz folder do backupowania Modeli i Ustawień - + Select Google Earth executable Wybierz wykonywalny plik Google Earth - - + + Error Błąd - - + + Cannot load %1. nie mogę wczytać %1. - + Export profile As Wyeksportuj profil jako - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? Slot profilu nie jest pusty, slot %1 zostanie zapisany.<br>Jesteś pewien ? - + Open Profile to import Otworzyć PRofil do zaimportowania - + Open Image to load Otworzyć obrazek - + Images (%1) Obrazki (%1) diff --git a/companion/src/translations/companion_pt.ts b/companion/src/translations/companion_pt.ts index 4112ecd3d..c6c4b760f 100644 --- a/companion/src/translations/companion_pt.ts +++ b/companion/src/translations/companion_pt.ts @@ -1971,9 +1971,9 @@ Are you sure ? - - - + + + File loaded Ficheiro carregado @@ -2024,13 +2024,13 @@ Are you sure ? Ficheiros EEPROM (*.bin *.hex);;BIN files (*.bin);;HEX files (*.hex) - + Open Abrir - - + + File saved Ficheiro gravado @@ -2051,7 +2051,7 @@ Are you sure ? Ficheiros HEX (*.hex);;BIN files (*.bin);;FLASH files (*.bin *.hex) - + Copyright @@ -2070,24 +2070,24 @@ Are you sure ? - - - - - - - - - + + + + + + + + + Error Erro - - - + + + Error opening file %1: %2. @@ -2104,16 +2104,16 @@ Are you sure ? - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2190,75 +2190,75 @@ Do you want to download it now ? - + Firmware updates - + Current firmware does not provide release notes informations. - + Cannot write file %1: %2. - - - - - + + + + + Taranis radio not found - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. - + Write Models and settings from %1 to the Tx? - - - + + + Backup is impossible - - - + + + The backup dir set in preferences does not exist - - + + Warning Aviso - + Conversion failed - + Restore failed - + Backup failed @@ -2271,8 +2271,8 @@ Do you want to download it now ? Sobre o companion9x - - + + &%1 %2 &%1 %2 @@ -2281,198 +2281,197 @@ Do you want to download it now ? %1 %2 - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + &New &Novo - + Create a new file Criar um novo ficheiro - + &Open... &Abrir... - + Open an existing file Abrir um ficheiro existente - + &loadBackup... - + Load backup from file - + &Save &Gravar - + Save the document to disk Gravar o documento no disco - + Save &As... Gravar &Como... - + Save the document under a new name Gravar o documento com um novo nome - + Lo&gs - + Ctrl+G - + Open log file - &Preferences... - &Preferências + &Preferências - + Edit general preferences Editar preferências gerais - + &Check for updates... - + Contributors &List... - + ChangeLog... - + Firmware ChangeLog... - + Show firmware changelog - + Compare... - + Compare models - - Customize your &TX... - - - - + Customize the splash screen of your TX - + E&xit &Sair - + Exit the application Sair da aplicação - + Cu&t Cor&tar - + Cut the current selection's contents to the clipboard Cortar a selecção corrente para a zona de transferência - + &Copy &Copiar - + Copy the current selection's contents to the clipboard Copiar a selecção corrente para a zona de transferência - + &Paste Co&lar - + Paste the clipboard's contents into the current selection Colar o conteúdo na zona de transferência para a selecção corrente - + Configure software for reading from and writing to the transmitter - - + + &Settings + + + + + Invalid Models and Settings File %1 - + Invalid binary Models and Settings File %1 @@ -2481,7 +2480,7 @@ Do you want to download it now ? &Gravar EEPROM no Rádio - + Ctrl+Alt+W Ctrl+Alt+W @@ -2494,7 +2493,7 @@ Do you want to download it now ? &Ler EEPROM do Rádio - + Ctrl+Alt+R Ctrl-Alt-R @@ -2519,61 +2518,60 @@ Do you want to download it now ? Ler memória Flash do Rádio - &Configure... - &Configurar... + &Configurar... Configure burning software Configurar aplicação de gravação do Rádio - + &List programmers &Listar programadores - + List available programmers Lista os programadores disponíveis - + &Fuses... - + Show fuses dialog - + &Simulate &Simular - + Alt+S Alt+S - + Simulate selected model. Simular o modelo seleccionado - + &Print &Imprimir - + Ctrl+P Ctrl+P - + Print current model. Imprimir o modelo corrente @@ -2626,38 +2624,38 @@ Do you want to download it now ? Selecciona janela anterior - + &About A&cerca - + Show the application's About box Sobre a aplicação - - + + Recent Files - + &Read/Write - + Write - + Unable to find file %1! Impossível encontrar o ficheiro %1! - + Error reading file %1: %2. @@ -2671,7 +2669,7 @@ Do you want to download it now ? Lista de contribuidores do er9x/companion9x - + &File &Ficheiro @@ -2708,189 +2706,416 @@ Do you want to download it now ? - - - - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + + + + Read Models and Settings From Tx - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? - - - - - - + + + + + + Backup Models and Settings From Tx - + Cannot check Models and Settings compatibility! Continue anyway? - + The transmitter firmware belongs to another product family, check file and preferences! - + The transmitter firmware is outdated, please upgrade! - + Write Models and Settings To Tx - - + + Write Firmware To Tx - + Cannot convert Models and Settings for use with this firmware, original data will be used - + Restore Models and Settings To Tx - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 - + Firmware write failed - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted - + Save transmitter Models and Settings to File - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. - + Read Tx Firmware to File - + About Companion - + + &General Preferences... + + + + Check for new version of Companion - + Show Companion contributors list - + Show Companion changelog - + + Configure transmitter start screen... + + + + &Write Models and Settings To Tx - + Write Models and Settings to transmitter - + &Read Models and Settings From Tx - + Read Models and Settings from transmitter - + Write Firmware - + Write firmware to transmitter - + Write Models and Settings from file to Tx - + Write Models and Settings from file to transmitter - + Save transmitter Models and Settings to file - + Save the Models and Settings from the transmitter to a file - + Read Firmware - + Read firmware from transmitter - - + + &Configure connection software... + + + + + Classic + + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + + + + + Use Czech in menus + + + + + German + + + + + Use German in menus + + + + + English + + + + + Use English in menus + + + + + French + + + + + Use French in menus + + + + + Italian + + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + + + + + Use Portuguese in menus + + + + + Swedish + + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + Firmware Profiles - + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + &Edit &Editar @@ -2899,17 +3124,17 @@ Write anyway ? &Janela - + &Help &Ajuda - + File Ficheiro - + Edit Editar @@ -2918,12 +3143,12 @@ Write anyway ? Gravar - + Help - + Ready Pronto @@ -9252,33 +9477,32 @@ Press cancel to abort joystick calibration Preferências - Language (requires restart) - Língua (necessita uma reinicialização) + Língua (necessita uma reinicialização) - + Recent History Size - - + + Download - + Default Channel Order Ordem dos Canais por Defeito - + Default Stick Mode Modo do Rádio por Defeito - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -9289,7 +9513,7 @@ This is used by the templated to determine which channel goes to what number out companion9x - + Mode selection: Mode 1: @@ -9312,187 +9536,132 @@ Mode 4: - + Mode 1 (RUD ELE THR AIL) Modo 1 (RUD ELE THR AIL) - + Mode 2 (RUD THR ELE AIL) Modo 2 (RUD THR ELE AIL) - + Mode 3 (AIL ELE THR RUD) Modo 3 (AIL ELE THR RUD) - + Mode 4 (AIL THR ELE RUD) Modo 4 (AIL THR ELE RUD) - + Automatic Backup Folder - + Automatically add version number to the filename after download - + Voice - + Set language of voice. May be different from firmware language - + Firmware - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - - Normal - - - - - Big - - - - - Huge - - - - + Find Executable - + Google Earth Executable - + Check for updates on startup - - + + ... - + Splash library behaviour - + Include companion splashes - + Only user defined splashes - + Custom TX splash screen - + Personal splash library - + Joystick - - - - + + + + Open Folder - + SD Structure path - + Processor ID - + Simulator capture folder - + Use clipboard only + @@ -9534,221 +9703,220 @@ May be different from firmware language - CheckBox - + Check for updates - + Language - + Profile Name - + Export Profile - + Save Profile - + Import Profile - + Simu BackLight - + Check for selected Fw updates - + Ask use of wizard for new models - + Show Splash At Start - + Remember switches in simulator - + Blue Blu - + Green - + Red - + Orange - + Yellow - + Profile slot - + auto backup before write - + Ask for flashing after Download - + Enable - + Calibrate - + Open Image - + Invert Pixels - + FwInfo - + Last downloaded release: %1 - + Image stored in settings - - + + No joysticks found - + Select your snapshot folder - + Select your Models and Settings backup folder - + Select Google Earth executable - + Select the folder replicating your SD structure - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? - + Export profile As - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? - + Open Profile to import - + Open Image to load - + Images (%1) - - + + Error Erro - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Select your library folder - - + + Cannot load %1. diff --git a/companion/src/translations/companion_ru.ts b/companion/src/translations/companion_ru.ts index d57799c1a..e00d22de9 100644 --- a/companion/src/translations/companion_ru.ts +++ b/companion/src/translations/companion_ru.ts @@ -1969,9 +1969,9 @@ Are you sure ? MainWindow - - - + + + File loaded Файл загружен @@ -2014,13 +2014,13 @@ Are you sure ? файлы EEPROM (*.bin *.hex);;файлы BIN (*.bin);;файлы HEX (*.hex) - + Open Открыть - - + + File saved Файл записан @@ -2049,7 +2049,7 @@ Are you sure ? Считать прошивку в файл - + Copyright @@ -2067,63 +2067,62 @@ Are you sure ? О eePe - - + + &%1 %2 - + &New Новый - + Create a new file Создать новый файл - + &Open... Открыть - + Open an existing file Открыть файл - + &Save Сохранить - + Save the document to disk Записать на диск - + Save &As... Сохранить как... - + Save the document under a new name Записать с другим именем - &Preferences... - Настройки + Настройки - + Edit general preferences Редактировать основные настройки - + &Check for updates... @@ -2142,24 +2141,24 @@ Are you sure ? - - - - - - - - - + + + + + + + + + Error Ошибка - - - + + + Error opening file %1: %2. @@ -2176,16 +2175,16 @@ Are you sure ? - - + + Companion - Models and Settings Editor - %1 - profile %2 - - - + + + Companion - Models and Settings Editor - %1 @@ -2262,206 +2261,228 @@ Do you want to download it now ? - + + The selected language will be used the next time you start Companion. + + + + + + + OK + + + + + The new theme will be loaded the next time you start Companion. + + + + + The icon size will be used the next time you start Companion. + + + + Firmware updates - + Current firmware does not provide release notes informations. - + Cannot write file %1: %2. Не удается записать файл %1: %2. - - - - - + + + + + Taranis radio not found - - - - + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. - + Write Models and settings from %1 to the Tx? - - - + + + Backup is impossible - - - + + + The backup dir set in preferences does not exist - - + + Warning Звук - + Conversion failed - + Restore failed - + Backup failed - + OpenTX Home Page: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> - + Version %1, %3 - + &loadBackup... - + Load backup from file - + Lo&gs - + Ctrl+G - + Open log file - + + &General Preferences... + + + + Contributors &List... - + ChangeLog... - + Firmware ChangeLog... - + Show firmware changelog - + Compare... - + Compare models - - Customize your &TX... - - - - + Customize the splash screen of your TX - + E&xit Выход - + Exit the application Выйти из программы - + Cu&t Вырезать - + Cut the current selection's contents to the clipboard Вырезать выделение в буфер обмена - + &Copy Копировать - + Copy the current selection's contents to the clipboard Копировать выделение в буфер обмена - + &Paste Вставить - + Paste the clipboard's contents into the current selection Вставить выделение из буфера обмена - + Configure software for reading from and writing to the transmitter @@ -2470,7 +2491,7 @@ Do you want to download it now ? Записать EEPROM в TX - + Ctrl+Alt+W @@ -2483,7 +2504,7 @@ Do you want to download it now ? Считать EEPROM из TX - + Ctrl+Alt+R @@ -2524,61 +2545,60 @@ Do you want to download it now ? Считать прошивку из передатчика - &Configure... - Настройка + Настройка Configure burning software Настроить программатор - + &List programmers Список программаторов - + List available programmers Показать список программаторов - + &Fuses... Фьюзы - + Show fuses dialog Показать диалог установки фьюзов - + &Simulate Симуляция - + Alt+S - + Simulate selected model. Запустить симуляцию - + &Print Печать - + Ctrl+P - + Print current model. Распечатать текущую модель @@ -2631,38 +2651,38 @@ Do you want to download it now ? Переместить фокус на предыдущее окно - + &About О программе - + Show the application's About box Показать окно "О программе" - - + + Recent Files - + &Read/Write - + Write - + Unable to find file %1! Невозможно найти файл %1! - + Error reading file %1: %2. Ошибка при считывании файла %1: @@ -2673,7 +2693,7 @@ Do you want to download it now ? Авторы - + &File Файл @@ -2710,200 +2730,405 @@ Do you want to download it now ? - - - - + + + + Read Models and Settings From Tx - + The file %1 has not been recognized as a valid Models and Settings file Write anyway ? - - - - - - + + + + + + Backup Models and Settings From Tx - + Cannot check Models and Settings compatibility! Continue anyway? - + The transmitter firmware belongs to another product family, check file and preferences! - + The transmitter firmware is outdated, please upgrade! - + Write Models and Settings To Tx - - + + Write Firmware To Tx - + Cannot convert Models and Settings for use with this firmware, original data will be used - + Restore Models and Settings To Tx - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 - + Firmware write failed - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted - + Save transmitter Models and Settings to File - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. - + Read Tx Firmware to File - + About Companion - + Check for new version of Companion - + Show Companion contributors list - + Show Companion changelog - + + Configure transmitter start screen... + + + + &Write Models and Settings To Tx - + Write Models and Settings to transmitter - + &Read Models and Settings From Tx - + Read Models and Settings from transmitter - + Write Firmware - + Write firmware to transmitter - + Write Models and Settings from file to Tx - + Write Models and Settings from file to transmitter - + Save transmitter Models and Settings to file - + Save the Models and Settings from the transmitter to a file - + Read Firmware - + Read firmware from transmitter - - + + &Configure connection software... + + + + + Classic + + + + + The multicolor classical Companion icon theme + + + + + A monochrome black icon theme + + + + + A monochrome white icon theme + + + + + A monochrome blue icon theme + + + + + Small + + + + + Use small toolbar icons + + + + + Use normal size toolbar icons + + + + + Normal + нормально + + + + Use big toolbar icons + + + + + Big + + + + + Use huge toolbar icons + + + + + Huge + + + + + System default language + + + + + Use system default language in menus + + + + + Czech + + + + + Use Czech in menus + + + + + German + + + + + Use German in menus + + + + + English + + + + + Use English in menus + + + + + French + + + + + Use French in menus + + + + + Italian + + + + + Use Italian in menus + + + + + Hebrew + + + + + Use Hebrew in menus + + + + + Polish + + + + + Use Polish in menus + + + + + Portuguese + + + + + Use Portuguese in menus + + + + + Swedish + + + + + Use Swedish in menus + + + + + Russian + + + + + Use Russian in menus + + + + + Firmware Profiles - + + Set MenuLanguage + + + + + Set Icon Theme + + + + + Set Icon Size + + + + &Edit Правка - - + + &Settings + + + + + Invalid Models and Settings File %1 - + Invalid binary Models and Settings File %1 @@ -2916,17 +3141,17 @@ Write anyway ? Окна - + &Help Помощь - + File Файл - + Edit Правка @@ -2935,12 +3160,12 @@ Write anyway ? Запись - + Help - + Ready Готово @@ -8925,33 +9150,32 @@ Press cancel to abort joystick calibration Настройки - Language (requires restart) - Язык (треб. перезапуск) + Язык (треб. перезапуск) - + Recent History Size - - + + Download - + Default Channel Order Порядок следов. каналов - + Default Stick Mode Режим стиков - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -8960,12 +9184,12 @@ This is used by the templated to determine which channel goes to what number out Шаблон для определения порядка следования каналов. - + FwInfo - + Mode selection: Mode 1: @@ -8988,187 +9212,136 @@ Mode 4: - + Mode 1 (RUD ELE THR AIL) - + Mode 2 (RUD THR ELE AIL) - + Mode 3 (AIL ELE THR RUD) - + Mode 4 (AIL THR ELE RUD) - + Automatic Backup Folder - + Automatically add version number to the filename after download - + Voice - + Set language of voice. May be different from firmware language - + Firmware - - Theme - - - - - - Requires restart - - - - - Classic - - - - - Monochrome - - - - - MonoWhite - - - - - MonoBlue - - - - - Icon size - - - - - Small - - - - Normal - нормально + нормально - - Big - - - - - Huge - - - - + Find Executable - + Google Earth Executable - + Check for updates on startup Проверять обновления - - + + ... - + Splash library behaviour - + Include companion splashes - + Only user defined splashes - + Custom TX splash screen - + Personal splash library - + Joystick - - - - + + + + Open Folder - + SD Structure path - + Processor ID - + Simulator capture folder - + Use clipboard only + @@ -9210,216 +9383,215 @@ May be different from firmware language - CheckBox - + Check for updates - + Language - + Profile Name - + Export Profile - + Save Profile - + Import Profile - + Simu BackLight - + Check for selected Fw updates - + Ask use of wizard for new models - + Show Splash At Start - + Remember switches in simulator - + Blue Blu - + Green - + Red - + Orange - + Yellow - + Profile slot - + auto backup before write - + Ask for flashing after Download - + Enable - + Calibrate - + Open Image - + Invert Pixels - + Last downloaded release: %1 - + Image stored in settings - - + + No joysticks found - + Select your snapshot folder - + Select your Models and Settings backup folder - + Select Google Earth executable - + Select the folder replicating your SD structure - + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? - + Export profile As - + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? - + Open Profile to import - + Open Image to load - + Images (%1) - - + + Error Ошибка - + The selected firmware has never been downloaded by Companion. - + The selected firmware cannot be downloaded by Companion. - + Select your library folder - - + + Cannot load %1. diff --git a/companion/src/translations/companion_sv.ts b/companion/src/translations/companion_sv.ts index a215a0c56..749d60513 100644 --- a/companion/src/translations/companion_sv.ts +++ b/companion/src/translations/companion_sv.ts @@ -684,7 +684,7 @@ Dessa inställningar gäller för alla modeller. Setup - Sändarinställningar + Välj Sändarens Startbild @@ -1940,14 +1940,14 @@ FAI-funktionen kan inte slås av i sändaren. MainWindow - + - + File loaded Filen har laddats - + @@ -1993,7 +1993,7 @@ Do you want to download it now ? Vill du ladda ned den nya versionen nu ? - + Open Öppna @@ -2009,13 +2009,13 @@ Vill du ladda ned den nya versionen nu ? Copyright - + &%1 %2 &%1 %2 - + &New &Ny @@ -2055,14 +2055,13 @@ Vill du ladda ned den nya versionen nu ? Spara dokumentet under nytt namn - &Preferences... - &Inställningar... + &Konfiguration... - + Edit general preferences - Redigera sändarens generella inställningarna + Konfigurera Sökvägar och Firmware @@ -2070,7 +2069,7 @@ Vill du ladda ned den nya versionen nu ? &Sök efter uppdateringar... - + Display previous message again at startup ? Skall föregående varning visas igen vid uppstart ? @@ -2099,7 +2098,7 @@ Version %2 finns tillgänglig. Vill du ladda ned den nu ? - + Write Models and settings from %1 to the Tx? Skriv Modeller och Inställningar från %1 till sändaren? @@ -2119,14 +2118,13 @@ Vill du ladda ned den nu ? Säkerhetskopieringen misslyckades - Customize your &TX... - Sändari&nställningar... + &Välj Sändarens Startbild... - + Customize the splash screen of your TX - Ställ in din sändares startlbild + Ställ din sändares startbild @@ -2179,12 +2177,11 @@ Vill du ladda ned den nu ? Ctrl+Alt+R - &Configure... - &Kommunikationsinställningar... + &Kommunikationsinställningar... - + Configure software for reading from and writing to the transmitter Inställningar för mjukvaran som kommunicerar med sändaren @@ -2249,33 +2246,33 @@ Vill du ladda ned den nu ? Visa information om programmet - - + + Recent Files Senaste Filer - + &File &Arkiv - - + + Companion - Models and Settings Editor - %1 - profile %2 Companion - Editor för Modeller och Inställningar - %1 - profile %2 - - + + Companion - Models and Settings Editor - %1 Companion - Editor för Modeller och Inställningar - %1 - + Checking for updates Letar efter uppdateringar @@ -2290,7 +2287,7 @@ Vill du ladda ned den nu ? Ladda inte ned versionen (r%1)? - + OpenTX Home Page: <a href='%1'>%1</a> OpenTX Hemsida: <a href='%1'>%1</a> @@ -2375,12 +2372,12 @@ Vill du ladda ned den nu ? Läs firmware från sändaren - + &Edit &Redigera - + &Help &Hjälp @@ -2405,12 +2402,12 @@ Vill du ladda ned den nu ? Redo - + Contributors &List... &Bidragsgivare... - + Display previous warning again at startup ? SKall föregående varning visas igen vid uppstart ? @@ -2419,8 +2416,8 @@ Vill du ladda ned den nu ? - - + + @@ -2432,21 +2429,21 @@ Vill du ladda ned den nu ? Fel - + Cannot write file %1: %2. Filen %1 kunde inte skrivas: %2. - + New release available En ny version finns tillgänglig - + Error opening file %1: @@ -2455,7 +2452,7 @@ Vill du ladda ned den nu ? %2. - + Compilation server termporary failure, try later Tillfälligt fel i byggservern. Försök igen senare @@ -2472,7 +2469,7 @@ Vill du ladda ned den nu ? Okänt server-fel. Försök igen senare - + Compare... Jämför... @@ -2502,23 +2499,23 @@ Vill du ladda ned den nu ? Varning - - + + Firmware Profiles Profiler för Firmware - + &Read/Write &Läs/Skriv - + Write Skriv - + Unable to find file %1! Kan inte hitta filen %1 ! @@ -2530,7 +2527,7 @@ Vill du ladda ned den nu ? %2. - + &loadBackup... ladda&Backup... @@ -2572,7 +2569,7 @@ Vill du ladda ned den nu ? Det går inte att identifiera sändaren. Verifiera att EEPOROM-skivan är ansluteten. - + Yes Ja @@ -2612,7 +2609,29 @@ Vill du ladda ned den nu ? Release notes innehåller väldigt viktig information. Vill du läsa dem nu? - + + The selected language will be used the next time you start Companion. + Språket som valts kommer att användas nästa gång Companion startas. + + + + + + OK + OK + + + + The new theme will be loaded the next time you start Companion. + De nya ikonerna kommer att användas nästa gång Companion startas. + + + + The icon size will be used the next time you start Companion. + Ikonernas storlek kommer att justeras nästa gång Companion startas. + + + Firmware updates Firmware-uppdatering @@ -2725,7 +2744,12 @@ Starta skrivningen i alla fall ? Om Companion - + + &General Preferences... + &Generella Inställningar... + + + Check for new version of Companion Sök efter ny version av Companion @@ -2750,7 +2774,212 @@ Starta skrivningen i alla fall ? Visa firmware-förändringar - + + Configure transmitter start screen... + Konfigurera sändarens startbild... + + + + &Configure connection software... + Inställningar för &kommunikation... + + + + Classic + Klassiskt + + + + The multicolor classical Companion icon theme + Det flerfärgade klassiska Companion-temat + + + + A monochrome black icon theme + Ett monokromt svart tema + + + + A monochrome white icon theme + Ett monokromt vitt tema + + + + A monochrome blue icon theme + Ett monokromt blått tema + + + + Small + Liten + + + + Use small toolbar icons + Använd små ikoner i verktygsfälten + + + + Use normal size toolbar icons + Använd normalstora ikoner i verktygsfälten + + + + Normal + Normal + + + + Use big toolbar icons + Använd stora ikoner i verktygsfälten + + + + Big + Stor + + + + Use huge toolbar icons + Använd mycket stora ikoner i verktygsfälten + + + + Huge + Mycket Stor + + + + System default language + Systemspråk + + + + Use system default language in menus + Använd systemspråket i menyerna (om tillgängligt) + + + + Czech + Czeckiska + + + + Use Czech in menus + Använd Tjeckiska i menyerna + + + + German + Tyska + + + + Use German in menus + Använd Tyska i menyerna + + + + English + Engelska + + + + Use English in menus + Använd Engelska i menyerna + + + + French + Franska + + + + Use French in menus + Använd Franska i menyerna + + + + Italian + Italienska + + + + Use Italian in menus + Använd Italienska i menyerna + + + + Hebrew + Hebreiska + + + + Use Hebrew in menus + Använd Hebreiska i menyerna + + + + Polish + Polska + + + + Use Polish in menus + Använd Polska i menyerna + + + + Portuguese + Portugisiska + + + + Use Portuguese in menus + Använd Portugisiska i menyerna + + + + Swedish + Svenska + + + + Use Swedish in menus + Använd Svenska i menyerna + + + + Russian + Ryska + + + + Use Russian in menus + Använd Ryska i menyerna + + + + Set MenuLanguage + Ställ in menyspråk + + + + Set Icon Theme + Ställ in Ikontema + + + + Set Icon Size + Ställ in Ikonstorlek + + + + &Settings + &Inställningar + + + Invalid Models and Settings File %1 Filen innehåller inte Modeller och Inställningar: %1 @@ -2884,7 +3113,7 @@ Vill du spara förändringarna? The backup dir set in preferences does not exist - Katalog för säkerhetskopiering saknas i inställningarna + Den katalog som konfigurerats för säkerhetskopiering existerar inte @@ -2907,7 +3136,7 @@ Vill du spara förändringarna? Firmware in radio is of a different family of eeprom written, check file and preferences! - sändarens firmware är av en annan typ än den aktuella. Kontrollera Arkiv och Inställningar! + sändarens firmware är av en annan typ än den aktuella. Kontrollera konfigurationen! @@ -6468,7 +6697,7 @@ m2560 för v4.1-kort Customize Splash - Välj Startbild + Välj Sändarens Startbild @@ -8338,15 +8567,14 @@ Tryck på Avbryt för att avburyta kalibreringen Preferences - Inställningar + Konfiguration - Language (requires restart) - Språk (kräver omstart) + Språk (kräver omstart) - + Recent History Size Loggstorlek @@ -8357,7 +8585,7 @@ Tryck på Avbryt för att avburyta kalibreringen Nedladdning - + Default Channel Order Kanalordning @@ -8371,17 +8599,17 @@ This is used by the templated to determine which channel goes to what number out Detta används av mallen för att koppla kanal till output-nummer. - + Show Splash At Start Visa Startbild - + Default Stick Mode Spaktilldelning - + Mode selection: Mode 1: @@ -8442,73 +8670,61 @@ Mode 4: Mode 4 (SKE GAS HÖJ ROD) - + Automatic Backup Folder Säkerhetskopiera till folder - + Firmware Firmware - Theme - Tema + Tema - - Requires restart - Kräver omstart + Kräver omstart - Classic - Klassiskt + Klassiskt - Monochrome - Monokromt + Monokromt - MonoWhite - Monokromt Vitt + Monokromt Vitt - MonoBlue - Monokromt Blått + Monokromt Blått - Icon size - Ikonstorlek + Ikonstorlek - Small - Liten + Liten - Normal - Normal + Normal - Big - Stor + Stor - Huge - Enorm + Enorm - + Find Executable Sök Program @@ -8523,36 +8739,36 @@ Mode 4: Sök efter uppdateringar vid start - - + + ... ... - + Splash library behaviour Beteende för bildbibliotek - + Personal splash library Personligt bildbibliotek - + Joystick Joystick - - + + - + Open Folder Öppna katalog - + @@ -8598,12 +8814,12 @@ Mode 4: Kryssruta - + Check for updates Sök efter uppdateringar - + Blue Blu Blå @@ -8629,7 +8845,7 @@ Mode 4: Gul - + Enable Slå på @@ -8639,28 +8855,28 @@ Mode 4: Kalibrera - + Open Image Öppna bild - + Invert Pixels Invertera bild - + FwInfo Firmware-info - + Last downloaded release: %1 Senast nedladdade release: %1 - - + + No joysticks found Ingen joystick hittades @@ -8691,7 +8907,7 @@ Mode 4: Fel - + The selected firmware has never been downloaded by Companion. Firmware-filen har aldrig laddats ned av Companion. @@ -8701,18 +8917,18 @@ Mode 4: Firmware-filen kan inte laddas ned av Companion. - + Cannot load %1. %1 kunde inte laddas. - + Image stored in settings Bilden lagras i inställningar - + Include companion splashes Användarens bilder och companion-bilder @@ -8722,7 +8938,7 @@ Mode 4: Enbart användarens bilder - + Custom TX splash screen Egen uppstartsbild @@ -8732,12 +8948,12 @@ Mode 4: Fråga om skrivning efter Nedladdning - + Language Språk - + Profile Name Profilnamn @@ -8747,22 +8963,22 @@ Mode 4: Spara Profil - + Profile slot Profilplats - + auto backup before write säkerhetskopiera innan skrivning - + Select your library folder Välj bibliotekskatalog - + Export Profile Exportera Profil @@ -8772,7 +8988,7 @@ Mode 4: Importera Profil - + Automatically add version number to the filename after download Lägg automatiskt till ett versionsnummer till filnamnet @@ -8804,22 +9020,22 @@ Får skilja från språket för mjukvaran Öppna profil för import - + Simu BackLight Simulatorbelysning - + Processor ID Processortyp - + Simulator capture folder Katalog för simulator-data - + Use clipboard only Använd bara clipboard @@ -8834,12 +9050,12 @@ Får skilja från språket för mjukvaran Profilnamn saknas, profilplats %1 kommer att raderas.<br> Är du säker? - + Check for selected Fw updates Sök efter updatering av vald FW - + Ask use of wizard for new models Använd modell-guiden för nya modeller @@ -8849,7 +9065,7 @@ Får skilja från språket för mjukvaran Minns brytare i simulator - + SD Structure path Sökväg till SD-struktur From bb3335b555410431a77efdfe24479b995b6207f4 Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Tue, 4 Feb 2014 22:47:14 +0100 Subject: [PATCH 32/73] Updated translation files --- companion/src/translations/companion_cs.ts | 10 +++++----- companion/src/translations/companion_de.ts | 12 ++++++------ companion/src/translations/companion_fr.ts | 10 +++++----- companion/src/translations/companion_he.ts | 10 +++++----- companion/src/translations/companion_it.ts | 10 +++++----- companion/src/translations/companion_pl.ts | 10 +++++----- companion/src/translations/companion_pt.ts | 10 +++++----- companion/src/translations/companion_ru.ts | 10 +++++----- companion/src/translations/companion_sv.ts | 12 ++++++++---- 9 files changed, 49 insertions(+), 45 deletions(-) diff --git a/companion/src/translations/companion_cs.ts b/companion/src/translations/companion_cs.ts index ed78401ac..f932aaea4 100644 --- a/companion/src/translations/companion_cs.ts +++ b/companion/src/translations/companion_cs.ts @@ -3035,11 +3035,6 @@ Chcete ho přesto zapsat ? Use Russian in menus - - - Set MenuLanguage - - Set Icon Theme @@ -3270,6 +3265,11 @@ Chcete ho přesto zapsat ? Firmware Profiles Profily firmwaru + + + Set Menu Language + + &File diff --git a/companion/src/translations/companion_de.ts b/companion/src/translations/companion_de.ts index e5fde4969..c35c25d69 100644 --- a/companion/src/translations/companion_de.ts +++ b/companion/src/translations/companion_de.ts @@ -3106,11 +3106,6 @@ Write anyway ? Use Russian in menus - - - Set MenuLanguage - - Set Icon Theme @@ -3317,6 +3312,11 @@ Write anyway ? Recent Files Letzte Dateien + + + Set Menu Language + + &Read/Write @@ -6029,7 +6029,7 @@ Right German - + Deutch diff --git a/companion/src/translations/companion_fr.ts b/companion/src/translations/companion_fr.ts index af4be870b..125d6fbf2 100644 --- a/companion/src/translations/companion_fr.ts +++ b/companion/src/translations/companion_fr.ts @@ -2512,11 +2512,6 @@ Burn anyway ? Use Russian in menus - - - Set MenuLanguage - - Set Icon Theme @@ -3307,6 +3302,11 @@ Ecrire quand même? Recent Files Derniers documents utilisés + + + Set Menu Language + + diff --git a/companion/src/translations/companion_he.ts b/companion/src/translations/companion_he.ts index 86423d5c5..2ba45086a 100644 --- a/companion/src/translations/companion_he.ts +++ b/companion/src/translations/companion_he.ts @@ -2393,6 +2393,11 @@ Do you want to download it now ? Recent Files + + + Set Menu Language + + &Read/Write @@ -2839,11 +2844,6 @@ Write anyway ? Firmware Profiles - - - Set MenuLanguage - - Set Icon Theme diff --git a/companion/src/translations/companion_it.ts b/companion/src/translations/companion_it.ts index b0e2120a0..ed6baeae4 100644 --- a/companion/src/translations/companion_it.ts +++ b/companion/src/translations/companion_it.ts @@ -2682,6 +2682,11 @@ Scriverlo ugualmente ? Use Russian in menus + + + Set Menu Language + + &Settings @@ -3257,11 +3262,6 @@ Scriverlo ugualmente ? Firmware Profiles Profili personalizzati - - - Set MenuLanguage - - Set Icon Theme diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts index d43bc2d84..1e3e8e66f 100644 --- a/companion/src/translations/companion_pl.ts +++ b/companion/src/translations/companion_pl.ts @@ -2369,11 +2369,6 @@ Chcesz pobrać teraz? Use Russian in menus - - - Set MenuLanguage - - Set Icon Theme @@ -2941,6 +2936,11 @@ Czy mimo wszystko zapisać? Firmware Profiles Profile firmware + + + Set Menu Language + + &File diff --git a/companion/src/translations/companion_pt.ts b/companion/src/translations/companion_pt.ts index c6c4b760f..7cd2bc608 100644 --- a/companion/src/translations/companion_pt.ts +++ b/companion/src/translations/companion_pt.ts @@ -2459,6 +2459,11 @@ Do you want to download it now ? Configure software for reading from and writing to the transmitter + + + Set Menu Language + + &Settings @@ -3099,11 +3104,6 @@ Write anyway ? Firmware Profiles - - - Set MenuLanguage - - Set Icon Theme diff --git a/companion/src/translations/companion_ru.ts b/companion/src/translations/companion_ru.ts index e00d22de9..b58c7e001 100644 --- a/companion/src/translations/companion_ru.ts +++ b/companion/src/translations/companion_ru.ts @@ -2666,6 +2666,11 @@ Do you want to download it now ? Recent Files + + + Set Menu Language + + &Read/Write @@ -3096,11 +3101,6 @@ Write anyway ? Firmware Profiles - - - Set MenuLanguage - - Set Icon Theme diff --git a/companion/src/translations/companion_sv.ts b/companion/src/translations/companion_sv.ts index 749d60513..ed017dbc3 100644 --- a/companion/src/translations/companion_sv.ts +++ b/companion/src/translations/companion_sv.ts @@ -2372,7 +2372,12 @@ Vill du ladda ned den nu ? Läs firmware från sändaren - + + Set Menu Language + Ställ in Menyspråk + + + &Edit &Redigera @@ -2959,12 +2964,11 @@ Starta skrivningen i alla fall ? Använd Ryska i menyerna - Set MenuLanguage - Ställ in menyspråk + Ställ in menyspråk - + Set Icon Theme Ställ in Ikontema From 8ff61ef91545ed337881c3dea51755c5330d77b8 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 5 Feb 2014 07:22:12 +0100 Subject: [PATCH 33/73] Update DONATIONS.txt --- DONATIONS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 95ccf5c4a..219a89828 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -314,3 +314,4 @@ Richard Fahie James Kaufman Henry Deucker Christian Fuchs +Arold Reinders From d9f97016e2c65306a8f5baad267e43edc38871eb Mon Sep 17 00:00:00 2001 From: Kjell Kernen Date: Wed, 5 Feb 2014 17:44:49 +0100 Subject: [PATCH 34/73] Two new dialogs defined. --- companion/src/CMakeLists.txt | 6 + companion/src/apppreferencesdialog.cpp | 85 ++ companion/src/apppreferencesdialog.h | 30 + companion/src/apppreferencesdialog.ui | 250 ++++++ companion/src/fwpreferencesdialog.cpp | 518 +++++++++++ companion/src/fwpreferencesdialog.h | 50 ++ companion/src/fwpreferencesdialog.ui | 1092 +++++++++++++++++++++++ companion/src/mainwindow.cpp | 39 + companion/src/mainwindow.h | 5 + companion/src/preferences_simulation.ui | 481 ++++++++++ 10 files changed, 2556 insertions(+) create mode 100644 companion/src/apppreferencesdialog.cpp create mode 100644 companion/src/apppreferencesdialog.h create mode 100644 companion/src/apppreferencesdialog.ui create mode 100644 companion/src/fwpreferencesdialog.cpp create mode 100644 companion/src/fwpreferencesdialog.h create mode 100644 companion/src/fwpreferencesdialog.ui create mode 100644 companion/src/preferences_simulation.ui diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 0f7ca9cd5..3a8dd26b7 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -156,6 +156,8 @@ SET( companion_SRCS mountlist.cpp avroutputdialog.cpp preferencesdialog.cpp + apppreferencesdialog.cpp + fwpreferencesdialog.cpp burnconfigdialog.cpp comparedialog.cpp contributorsdialog.cpp @@ -177,6 +179,8 @@ SET( companion_SRCS SET( companion_MOC_HDRS avroutputdialog.h preferencesdialog.h + apppreferencesdialog.h + fwpreferencesdialog.h burnconfigdialog.h comparedialog.h printdialog.h @@ -211,6 +215,8 @@ SET( companion_UIS fusesdialog.ui logsdialog.ui preferencesdialog.ui + apppreferencesdialog.ui + fwpreferencesdialog.ui simulatordialog.ui xsimulatordialog.ui burnconfigdialog.ui diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp new file mode 100644 index 000000000..fcb6157bb --- /dev/null +++ b/companion/src/apppreferencesdialog.cpp @@ -0,0 +1,85 @@ +#include "apppreferencesdialog.h" +#include "ui_apppreferencesdialog.h" +#include "mainwindow.h" +#include "helpers.h" +#include +#include + +appPreferencesDialog::appPreferencesDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::appPreferencesDialog) +{ + ui->setupUi(this); + setWindowIcon(CompanionIcon("preferences.png")); + initSettings(); + connect(this, SIGNAL(accepted()), this, SLOT(writeValues())); +// resize(0,0); +} + +appPreferencesDialog::~appPreferencesDialog() +{ + delete ui; +} + +void appPreferencesDialog::writeValues() +{ + QSettings settings; + settings.setValue("startup_check_companion", ui->startupCheck_companion9x->isChecked()); + settings.setValue("startup_check_fw", ui->startupCheck_fw->isChecked()); + settings.setValue("wizardEnable", ui->wizardEnable_ChkB->isChecked()); + settings.setValue("show_splash", ui->showSplash->isChecked()); + settings.setValue("history_size", ui->historySize->value()); + settings.setValue("gePath", ui->ge_lineedit->text()); + settings.setValue("backupEnable", ui->backupEnable->isChecked()); + MainWindow * mw = (MainWindow *)this->parent(); + mw->unloadProfile(); +} + +void appPreferencesDialog::initSettings() +{ + QSettings settings; + ui->startupCheck_companion9x->setChecked(settings.value("startup_check_companion", true).toBool()); + ui->startupCheck_fw->setChecked(settings.value("startup_check_fw", true).toBool()); + ui->wizardEnable_ChkB->setChecked(settings.value("wizardEnable", true).toBool()); + ui->showSplash->setChecked(settings.value("show_splash", true).toBool()); + ui->historySize->setValue(settings.value("history_size", 10).toInt()); + + QString Path=settings.value("gePath", "").toString(); + if (QFile(Path).exists()) { + ui->ge_lineedit->setText(Path); + } + Path=settings.value("backupPath", "").toString(); + if (!Path.isEmpty()) { + if (QDir(Path).exists()) { + ui->backupPath->setText(Path); + ui->backupEnable->setEnabled(true); + ui->backupEnable->setChecked(settings.value("backupEnable", true).toBool()); + } else { + ui->backupEnable->setDisabled(true); + } + } else { + ui->backupEnable->setDisabled(true); + } +} + +void appPreferencesDialog::on_backupPathButton_clicked() +{ + QSettings settings; + QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your Models and Settings backup folder"), settings.value("backupPath").toString()); + if (!fileName.isEmpty()) { + settings.setValue("backupPath", fileName); + ui->backupPath->setText(fileName); + } + ui->backupEnable->setEnabled(true); +} + +void appPreferencesDialog::on_ge_pathButton_clicked() +{ + QSettings settings; + QString fileName = QFileDialog::getOpenFileName(this, tr("Select Google Earth executable"),ui->ge_lineedit->text()); + if (!fileName.isEmpty()) { + ui->ge_lineedit->setText(fileName); + } +} + + diff --git a/companion/src/apppreferencesdialog.h b/companion/src/apppreferencesdialog.h new file mode 100644 index 000000000..01b28f08a --- /dev/null +++ b/companion/src/apppreferencesdialog.h @@ -0,0 +1,30 @@ +#ifndef APPPREFERENCESDIALOG_H +#define APPPREFERENCESDIALOG_H + +#include +#include +#include "eeprominterface.h" + +namespace Ui { + class appPreferencesDialog; +} + +class appPreferencesDialog : public QDialog +{ + Q_OBJECT + +public: + explicit appPreferencesDialog(QWidget *parent = 0); + ~appPreferencesDialog(); + +private: + Ui::appPreferencesDialog *ui; + void initSettings(); + +private slots: + void writeValues(); + void on_backupPathButton_clicked(); + void on_ge_pathButton_clicked(); +}; + +#endif // APPPREFERENCESDIALOG_H diff --git a/companion/src/apppreferencesdialog.ui b/companion/src/apppreferencesdialog.ui new file mode 100644 index 000000000..c896b3c2e --- /dev/null +++ b/companion/src/apppreferencesdialog.ui @@ -0,0 +1,250 @@ + + + appPreferencesDialog + + + + 0 + 0 + 685 + 313 + + + + + 0 + 0 + + + + + 685 + 0 + + + + Application Preferences + + + + + + + 0 + 0 + + + + Recent Files + + + + + + + + 40 + 0 + + + + 15 + + + 10 + + + + + + + Show splash screen when Companion starts + + + true + + + + + + + Automatic check for Companion updates + + + true + + + + + + + Enable automatic backup before writing firmware + + + + + + + Automatic Backup Folder + + + + + + + Qt::Horizontal + + + + + + + true + + + + + + + Find Executable + + + + + + + Qt::Horizontal + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + Qt::Horizontal + + + + + + + Automatic check for OpenTX firmware updates + + + true + + + + + + + Offer to use wizard for new models + + + true + + + + + + + Google Earth Executable + + + + + + + Qt::Horizontal + + + + + + + (Number of recent Models&Settings files to remember) + + + + + + + Open Folder + + + + + + + true + + + + + historySize + startupCheck_companion9x + backupEnable + label_17 + ge_lineedit + line + buttonBox + backupPath + line_2 + startupCheck_fw + wizardEnable_ChkB + ge_label + label + label_5 + showSplash + line_3 + ge_pathButton + line_4 + backupPathButton + + + + + + + buttonBox + accepted() + appPreferencesDialog + accept() + + + 376 + 596 + + + 157 + 274 + + + + + buttonBox + rejected() + appPreferencesDialog + reject() + + + 396 + 596 + + + 286 + 274 + + + + + diff --git a/companion/src/fwpreferencesdialog.cpp b/companion/src/fwpreferencesdialog.cpp new file mode 100644 index 000000000..011da2ff7 --- /dev/null +++ b/companion/src/fwpreferencesdialog.cpp @@ -0,0 +1,518 @@ +#include "fwpreferencesdialog.h" +#include "ui_fwpreferencesdialog.h" +#include "mainwindow.h" +#include "eeprominterface.h" +#include "helpers.h" +#include +#include + +fwPreferencesDialog::fwPreferencesDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::fwPreferencesDialog), + updateLock(false) +{ + ui->setupUi(this); + setWindowIcon(CompanionIcon("preferences.png")); + + QCheckBox * OptionCheckBox[]= { + ui->optionCheckBox_1, ui->optionCheckBox_2, ui->optionCheckBox_3, ui->optionCheckBox_4, ui->optionCheckBox_5, ui->optionCheckBox_6, ui->optionCheckBox_7, + ui->optionCheckBox_8, ui->optionCheckBox_9, ui->optionCheckBox_10, ui->optionCheckBox_11, ui->optionCheckBox_12, ui->optionCheckBox_13, ui->optionCheckBox_14, + ui->optionCheckBox_15,ui->optionCheckBox_16, ui->optionCheckBox_17, ui->optionCheckBox_18, ui->optionCheckBox_19, ui->optionCheckBox_20, ui->optionCheckBox_21, + ui->optionCheckBox_22, ui->optionCheckBox_23, ui->optionCheckBox_24, ui->optionCheckBox_25, ui->optionCheckBox_26, ui->optionCheckBox_27, ui->optionCheckBox_28, + ui->optionCheckBox_29, ui->optionCheckBox_30, ui->optionCheckBox_31, ui->optionCheckBox_32, ui->optionCheckBox_33, ui->optionCheckBox_34, ui->optionCheckBox_35, + ui->optionCheckBox_36, ui->optionCheckBox_37, ui->optionCheckBox_38, ui->optionCheckBox_39, ui->optionCheckBox_40, ui->optionCheckBox_41, ui->optionCheckBox_42, + NULL }; + + voice=NULL; + + connect(ui->langCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(firmwareLangChanged())); + connect(ui->voiceCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(firmwareLangChanged())); + + for (int i=0; OptionCheckBox[i]; i++) { + optionsCheckBoxes.push_back(OptionCheckBox[i]); + connect(OptionCheckBox[i], SIGNAL(toggled(bool)), this, SLOT(firmwareOptionChanged(bool))); + } + + initSettings(); + + connect(ui->downloadVerCB, SIGNAL(currentIndexChanged(int)), this, SLOT(baseFirmwareChanged())); + connect(this, SIGNAL(accepted()), this, SLOT(writeValues())); + + resize(0,0); +} + + +fwPreferencesDialog::~fwPreferencesDialog() +{ + delete ui; +} + +void fwPreferencesDialog::baseFirmwareChanged() +{ + QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex()); + voice=NULL; + foreach(FirmwareInfo * firmware, firmwares) { + if (firmware->id == selected_firmware) { + if (firmware->voice) { + ui->voiceLabel->show(); + ui->voiceCombo->show(); + ui->voice_dnld->show(); + ui->sdPathButton->show(); + ui->sdPath->show(); + ui->sdPathLabel->show(); + ui->voiceLabel->setEnabled(true); + ui->voiceCombo->setEnabled(true); + ui->voice_dnld->setEnabled(true); + ui->sdPathButton->setEnabled(true); + ui->sdPath->setEnabled(true); + } else { + ui->voiceLabel->hide(); + ui->voiceCombo->hide(); + ui->voice_dnld->hide(); + ui->sdPathButton->hide(); + ui->sdPath->hide(); + ui->sdPathLabel->hide(); + } + populateFirmwareOptions(firmware); + break; + } + } + firmwareChanged(); +} + +FirmwareVariant fwPreferencesDialog::getFirmwareVariant() +{ + QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex()); + bool voice=false; + foreach(FirmwareInfo * firmware, firmwares) { + if (firmware->id == selected_firmware) { + QString id = firmware->id; + foreach(QCheckBox *cb, optionsCheckBoxes) { + if (cb->isChecked()) { + if (cb->text()=="voice" && cb->isChecked()) + voice=true; + id += QString("-") + cb->text(); + } + } + if (! firmware->eepromInterface->getCapability(MultiLangVoice)) { + if (ui->voiceCombo->count() && (voice || firmware->voice)) + id += QString("-tts") + ui->voiceCombo->currentText(); + } + if (ui->langCombo->count()) + id += QString("-") + ui->langCombo->currentText(); + + return GetFirmwareVariant(id); + } + } + + // Should never occur... + return default_firmware_variant; +} + +void fwPreferencesDialog::firmwareLangChanged() +{ + firmwareChanged(); +} + +void fwPreferencesDialog::firmwareOptionChanged(bool state) +{ + QCheckBox *cb = qobject_cast(sender()); + FirmwareInfo * firmware=NULL; + if (cb && state) { + QVariant selected_firmware = ui->downloadVerCB->itemData(ui->downloadVerCB->currentIndex()); + foreach(firmware, firmwares) { + if (firmware->id == selected_firmware) { + foreach(QList