[all] Function Switches renamed to Custom Functions

[voice] No more PREC2 in prompts (optimization done - 50bytes flash - for en and fr, not other languages!)
This commit is contained in:
bsongis
2012-10-31 16:38:49 +00:00
parent 721e64c993
commit 42650540ca
14 changed files with 71 additions and 95 deletions
+1 -1
View File
@@ -90,7 +90,7 @@ void menuGeneralSetup(uint8_t event);
void menuGeneralCalib(uint8_t event);
void menuModelSelect(uint8_t event);
void menuModelFunctionSwitches(uint8_t event);
void menuModelCustomFunctions(uint8_t event);
void menuStatisticsView(uint8_t event);
void menuStatisticsDebug(uint8_t event);
+20 -18
View File
@@ -47,7 +47,7 @@ enum EnumTabModel {
e_Limits,
IF_CURVES(e_CurvesAll)
e_CustomSwitches,
e_FunctionSwitches,
e_CustomFunctions,
IF_FRSKY(e_Telemetry)
IF_TEMPLATES(e_Templates)
};
@@ -65,7 +65,7 @@ void menuModelMixAll(uint8_t event);
void menuModelLimits(uint8_t event);
void menuModelCurvesAll(uint8_t event);
void menuModelCustomSwitches(uint8_t event);
void menuModelFunctionSwitches(uint8_t event);
void menuModelCustomFunctions(uint8_t event);
#ifdef FRSKY
void menuModelTelemetry(uint8_t event);
#endif
@@ -84,7 +84,7 @@ const MenuFuncP_PROGMEM menuTabModel[] PROGMEM = {
menuModelLimits,
IF_CURVES(menuModelCurvesAll)
menuModelCustomSwitches,
menuModelFunctionSwitches,
menuModelCustomFunctions,
IF_FRSKY(menuModelTelemetry)
IF_TEMPLATES(menuModelTemplates)
};
@@ -2649,7 +2649,9 @@ void menuModelCustomSwitches(uint8_t event)
}
#endif
void menuModelFunctionSwitches(uint8_t event)
#define MODEL_CUSTOM_FUNC_3RD_COLUMN (15*FW+2)
void menuModelCustomFunctions(uint8_t event)
{
#if defined(PCBSKY9X) && defined(SDCARD)
uint8_t _event = event;
@@ -2658,7 +2660,7 @@ void menuModelFunctionSwitches(uint8_t event)
}
#endif
MENU(STR_MENUFUNCSWITCHES, menuTabModel, e_FunctionSwitches, NUM_FSW+1, {0, 3/*repeated*/});
MENU(STR_MENUCUSTOMFUNC, menuTabModel, e_CustomFunctions, NUM_FSW+1, {0, 3/*repeated*/});
uint8_t y = 0;
uint8_t k = 0;
@@ -2731,7 +2733,7 @@ void menuModelFunctionSwitches(uint8_t event)
if (sd->func == FUNC_PLAY_SOUND) {
#if defined(AUDIO)
val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1;
lcd_putsiAtt(15*FW, y, STR_FUNCSOUNDS, val_displayed, attr);
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);
#else
break;
#endif
@@ -2739,15 +2741,15 @@ void menuModelFunctionSwitches(uint8_t event)
#if defined(HAPTIC)
else if (sd->func == FUNC_HAPTIC) {
val_max = 3;
lcd_outdezAtt(21*FW, y, val_displayed, attr);
lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT);
}
#endif
#if defined(PCBSKY9X) && defined(SDCARD)
else if (sd->func == FUNC_PLAY_TRACK || sd->func == FUNC_BACKGND_MUSIC) {
if (sd->param[0] && sd->param[1])
lcd_putsnAtt(15*FW, y, sd->param, sizeof(sd->param), attr);
lcd_putsnAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, sd->param, sizeof(sd->param), attr);
else
lcd_putsiAtt(15*FW, y, STR_VCSWFUNC, 0, attr);
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VCSWFUNC, 0, attr);
if (active && event==EVT_KEY_BREAK(KEY_MENU)) {
s_editMode = 0;
if (!listSdFiles(SOUNDS_PATH, SOUNDS_EXT, 6, sd->param)) {
@@ -2759,42 +2761,42 @@ void menuModelFunctionSwitches(uint8_t event)
}
else if (sd->func == FUNC_PLAY_VALUE) {
val_max = NUM_XCHNPLAY-1;
putsChnRaw(17*FW, y, val_displayed+1, attr);
putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr);
}
#endif
#if defined(PCBSKY9X)
else if (sd->func == FUNC_VOLUME) {
val_max = NUM_XCHNRAW-1;
putsChnRaw(17*FW, y, val_displayed+1, attr);
putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr);
}
#elif defined(VOICE)
else if (sd->func == FUNC_PLAY_TRACK) {
lcd_outdezAtt(21*FW, y, val_displayed+PROMPT_CUSTOM_BASE, attr);
lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT);
}
else if (sd->func == FUNC_PLAY_VALUE) {
val_max = NUM_XCHNPLAY-1;
putsChnRaw(17*FW, y, val_displayed+1, attr);
putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr);
}
#endif
#if defined(SDCARD)
else if (sd->func == FUNC_LOGS) {
if (val_displayed) {
lcd_outdezAtt(21*FW-3, y, val_displayed, attr|PREC1);
lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|PREC1|LEFT);
lcd_putc(lcdLastPos, y, 's');
}
else {
lcd_putsiAtt(19*FW-4, y, STR_MMMINV, 0, attr);
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_MMMINV, 0, attr);
}
}
#endif
else if (sd->func == FUNC_RESET) {
val_max = 3;
lcd_putsiAtt(15*FW, y, STR_VFSWRESET, FSW_PARAM(sd), attr);
lcd_putsiAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, FSW_PARAM(sd), attr);
}
else if (sd->func <= FUNC_SAFETY_CH16) {
val_displayed = (int8_t)FSW_PARAM(sd);
val_min = -125; val_max = 125;
lcd_outdezAtt(18*FW, y, val_displayed, attr);
lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT);
}
#if defined(GVARS)
else if (sd->func >= FUNC_ADJUST_GV1
@@ -2803,7 +2805,7 @@ void menuModelFunctionSwitches(uint8_t event)
#endif
) {
val_max = NUM_XCHNRAW-1;
putsChnRaw(17*FW, y, val_displayed+1, attr);
putsChnRaw(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+1, attr);
}
#endif
else {
+6 -15
View File
@@ -1876,25 +1876,16 @@ PLAY_FUNCTION(playValue, uint8_t idx)
// A1 and A2
{
uint8_t att = 0;
int16_t converted_value = applyChannelRatio(idx, val);
if (g_model.frsky.channels[idx].type >= UNIT_RAW) {
converted_value /= 10;
}
else {
if (converted_value < 1000) {
att |= PREC2;
}
else {
converted_value /= 10;
att |= PREC1;
}
int16_t converted_value = applyChannelRatio(idx, val) / 10;
if (g_model.frsky.channels[idx].type < UNIT_RAW) {
att = PREC1;
}
PLAY_NUMBER(converted_value, 1+g_model.frsky.channels[idx].type, att);
break;
}
case NUM_XCHNRAW+TELEM_CELL-1:
PLAY_NUMBER(val, 1+UNIT_VOLTS, PREC2);
PLAY_NUMBER(val/10, 1+UNIT_VOLTS, PREC1);
break;
case NUM_XCHNRAW+TELEM_VFAS-1:
@@ -1910,11 +1901,11 @@ PLAY_FUNCTION(playValue, uint8_t idx)
case NUM_XCHNRAW+TELEM_ACCx-1:
case NUM_XCHNRAW+TELEM_ACCy-1:
case NUM_XCHNRAW+TELEM_ACCz-1:
PLAY_NUMBER(val, 1+UNIT_G, PREC2);
PLAY_NUMBER(val/10, 1+UNIT_G, PREC1);
break;
case NUM_XCHNRAW+TELEM_VSPD-1:
PLAY_NUMBER(val, 1+UNIT_METERS_PER_SECOND, PREC2);
PLAY_NUMBER(val/10, 1+UNIT_METERS_PER_SECOND, PREC1);
break;
case NUM_XCHNRAW+TELEM_CONSUMPTION-1:
+1 -1
View File
@@ -261,7 +261,7 @@ const pm_char STR_MENUCURVES[] PROGMEM = TR_MENUCURVES;
const pm_char STR_MENUCURVE[] PROGMEM = TR_MENUCURVE;
const pm_char STR_MENUCUSTOMSWITCH[] PROGMEM = TR_MENUCUSTOMSWITCH;
const pm_char STR_MENUCUSTOMSWITCHES[] PROGMEM = TR_MENUCUSTOMSWITCHES;
const pm_char STR_MENUFUNCSWITCHES[] PROGMEM = TR_MENUFUNCSWITCHES;
const pm_char STR_MENUCUSTOMFUNC[] PROGMEM = TR_MENUCUSTOMFUNC;
#if defined(FRSKY)
const pm_char STR_MENUTELEMETRY[] PROGMEM = TR_MENUTELEMETRY;
+1 -1
View File
@@ -357,7 +357,7 @@ extern const pm_char STR_MENUCURVES[];
extern const pm_char STR_MENUCURVE[];
extern const pm_char STR_MENUCUSTOMSWITCH[];
extern const pm_char STR_MENUCUSTOMSWITCHES[];
extern const pm_char STR_MENUFUNCSWITCHES[];
extern const pm_char STR_MENUCUSTOMFUNC[];
extern const pm_char STR_MENUTELEMETRY[];
extern const pm_char STR_MENUTEMPLATES[];
extern const pm_char STR_MENUSTAT[];
+1 -1
View File
@@ -381,7 +381,7 @@
#define TR_MENUCURVE "\003CV"
#define TR_MENUCUSTOMSWITCH "VLASTN\214 SP\214NA\201"
#define TR_MENUCUSTOMSWITCHES "VLASTN\214 SP\214NA\201E"
#define TR_MENUFUNCSWITCHES "FUNK\201.SP\214NA\201E"
#define TR_MENUCUSTOMFUNC "FUNK\201.SP\214NA\201E"
#define TR_MENUTELEMETRY "TELEMETRIE"
#define TR_MENUTEMPLATES "\207ABLONY"
#define TR_MENUSTAT "STATISTIKA"
+1 -1
View File
@@ -382,7 +382,7 @@
#define TR_MENUCURVE "KURVE"
#define TR_MENUCUSTOMSWITCH "CUSTOM SWITCH"
#define TR_MENUCUSTOMSWITCHES "CUSTOM SWITCHES"
#define TR_MENUFUNCSWITCHES "FUNC SWITCHES"
#define TR_MENUCUSTOMFUNC "FUNC SWITCHES"
#define TR_MENUTELEMETRY "TELEMETRY"
#define TR_MENUTEMPLATES "TEMPLATES"
#define TR_MENUSTAT "STATS"
+10 -10
View File
@@ -87,9 +87,9 @@
#define LEN_VFSWFUNC "\015"
#if defined(VARIO)
#define TR_VVARIO "Vario "
#define TR_VVARIO "Vario\0 "
#else
#define TR_VVARIO "[Vario] "
#define TR_VVARIO "[Vario]\0 "
#endif
#if defined(AUDIO)
#define TR_SOUND "Play Sound\0 "
@@ -110,17 +110,17 @@
#endif
#if defined(PCBSKY9X)
#if defined(SDCARD)
#define TR_SDCLOGS "SDCARD Logs\0 "
#define TR_SDCLOGS "SD Logs\0 "
#else
#define TR_SDCLOGS "[SDCARD Logs]"
#define TR_SDCLOGS "[SD Logs]\0 "
#endif
#define TR_FSW_VOLUME "Volume\0 "
#define TR_FSW_BG_MUSIC "BgMusic\0 ""BgMusic Pause"
#elif defined(PCBGRUVIN9X)
#if defined(SDCARD)
#define TR_SDCLOGS "SDCARD Logs "
#define TR_SDCLOGS "SD Logs\0 "
#else
#define TR_SDCLOGS "[SDCARD Logs]"
#define TR_SDCLOGS "[SD Logs]\0 "
#endif
#define TR_FSW_VOLUME
#define TR_FSW_BG_MUSIC
@@ -135,12 +135,12 @@
#define TR_FSW_ADJUST_GVAR
#endif
#ifdef DEBUG
#define TR_FSW_TEST "Test\0"
#define TR_FSW_TEST "Test\0"
#else
#define TR_FSW_TEST
#endif
#define TR_VFSWFUNC "Safety\0 ""Trainer \0 ""Instant Trim " TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Backlight\0 " TR_FSW_BG_MUSIC TR_FSW_ADJUST_GVAR TR_FSW_TEST
#define TR_VFSWFUNC "Safety\0 ""Trainer \0 ""Instant Trim\0" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Backlight\0 " TR_FSW_BG_MUSIC TR_FSW_ADJUST_GVAR TR_FSW_TEST
#define LEN_VFSWRESET "\006"
#define TR_VFSWRESET "Timer1""Timer2""All ""Telem."
@@ -220,7 +220,7 @@
#else
#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]"
#endif
#define TR_VSRCRAW "Rud ""Ele ""Thr ""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW
#define TR_VSRCRAW "Rud\0""Ele\0""Thr\0""Ail\0""P1\0 ""P2\0 ""P3\0 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW
#define LEN_VTMRMODES "\003"
#define TR_VTMRMODES "OFF""ABS""THs""TH%""THt"
@@ -387,7 +387,7 @@
#define TR_MENUCURVE "CURVE"
#define TR_MENUCUSTOMSWITCH "CUSTOM SWITCH"
#define TR_MENUCUSTOMSWITCHES "CUSTOM SWITCHES"
#define TR_MENUFUNCSWITCHES "FUNC SWITCHES"
#define TR_MENUCUSTOMFUNC "CUSTOM FUNCTIONS"
#define TR_MENUTELEMETRY "TELEMETRY"
#define TR_MENUTEMPLATES "TEMPLATES"
#define TR_MENUSTAT "STATS"
+8 -11
View File
@@ -289,25 +289,22 @@
#define TR_USRDATA "UsrData"
#define TR_BLADES INDENT"Palas"
#define TR_SCREEN "Screen "
#ifdef AUDIO
#define TR_BEEPERMODE "Modo Altavoz"
#define TR_BEEPERLEN "Talla Altavoz"
#define TR_SOUND_LABEL "Sound"
#define TR_LENGTH INDENT"Length"
#define TR_SPKRPITCH "Speaker Pitch"
#else
#define TR_BEEPERMODE "Modo Pitido"
#define TR_BEEPERLEN "Talla Pitido"
#endif
#define TR_HAPTICMODE "Haptic Modo"
#define TR_HAPTICSTRENGTH "Haptic Strength"
#define TR_HAPTICLENGTH "Haptic Length"
#define TR_HAPTIC_LABEL "Haptic"
#define TR_HAPTICSTRENGTH INDENT"Strength"
#define TR_CONTRAST "Contraste"
#define TR_ALARMS_LABEL "Alarms"
#define TR_BATTERYWARNING "Aviso Bateria"
#define TR_INACTIVITYALARM "Alarma Reposo"
#define TR_RENAVIG "Navig RotEnc"
#define TR_FILTERADC "Filtro ADC"
#define TR_THROTTLEREVERSE "Inversion Acel."
#define TR_BEEP_LABEL "Timer events"
#define TR_MINUTEBEEP "Pitido/minuto"
#define TR_BEEPCOUNTDOWN "Pitido ctaatras"
#define TR_BACKLIGHT_LABEL "Backlight"
#define TR_FLASHONBEEP "Flash al pitido"
#define TR_BLMODE "Modo P.Luminoso"
#define TR_BLDELAY "Tiempo de Luz"
@@ -384,7 +381,7 @@
#define TR_MENUCURVE "CURVA"
#define TR_MENUCUSTOMSWITCH "AJUSTES PROPIOS"
#define TR_MENUCUSTOMSWITCHES "AJUSTE PROPIO"
#define TR_MENUFUNCSWITCHES "AJUSTAR FUNCIONES"
#define TR_MENUCUSTOMFUNC "AJUSTAR FUNCIONES"
#define TR_MENUTELEMETRY "TELEMETRIA"
#define TR_MENUTEMPLATES "PLANTILLAS"
#define TR_MENUSTAT "REGISTRO"
+1 -1
View File
@@ -387,7 +387,7 @@
#define TR_MENUCURVE "COURBE"
#define TR_MENUCUSTOMSWITCH "INTER PERS"
#define TR_MENUCUSTOMSWITCHES "INTERS PERS"
#define TR_MENUFUNCSWITCHES "INTERS FONCTION"
#define TR_MENUCUSTOMFUNC "INTERS FONCTION"
#define TR_MENUTELEMETRY "TELEMESURE"
#define TR_MENUTEMPLATES "GABARITS"
#define TR_MENUSTAT "STATS"
+1 -1
View File
@@ -382,7 +382,7 @@
#define TR_MENUCURVE "CURVA"
#define TR_MENUCUSTOMSWITCH "SWITCH PERSON."
#define TR_MENUCUSTOMSWITCHES "SWITCH PERSON."
#define TR_MENUFUNCSWITCHES "SWITCH FUNZIONE"
#define TR_MENUCUSTOMFUNC "SWITCH FUNZIONE"
#define TR_MENUTELEMETRY "TELEMETRIA"
#define TR_MENUTEMPLATES "TEMPLATES"
#define TR_MENUSTAT "STATS"
+1 -1
View File
@@ -390,7 +390,7 @@
#define TR_MENUCURVE "KURVA"
#define TR_MENUCUSTOMSWITCH "LOGISKA BRYTAR"
#define TR_MENUCUSTOMSWITCHES "LOGISKA BRYTARE"
#define TR_MENUFUNCSWITCHES "BRYTAR-EFFEKTER"
#define TR_MENUCUSTOMFUNC "BRYTAR-EFFEKTER"
#define TR_MENUTELEMETRY "TELEMETRI"
#define TR_MENUTEMPLATES "MALLAR"
#define TR_MENUSTAT "STATSISTIK"
+11 -25
View File
@@ -63,7 +63,7 @@ enum EnglishPrompts {
PROMPT_RPMS = PROMPT_UNITS_BASE+(UNIT_RPMS*2),
PROMPT_G = PROMPT_UNITS_BASE+(UNIT_G*2),
PROMPT_POINT_NUMBER = PROMPT_NUMBERS_BASE+160, //.1 - .9
PROMPT_POINT_BASE = 160, //.0 - .9
};
@@ -85,16 +85,6 @@ PLAY_FUNCTION(pushUnitPrompt, int16_t number, uint8_t unitprompt)
PLAY_FUNCTION(playNumber, int16_t number, uint8_t unit, uint8_t att)
{
/* if digit >= 1000000000:
temp_digit, digit = divmod(digit, 1000000000)
prompts.extend(self.getNumberPrompt(temp_digit))
prompts.append(Prompt(GUIDE_00_BILLION, dir=2))
if digit >= 1000000:
temp_digit, digit = divmod(digit, 1000000)
prompts.extend(self.getNumberPrompt(temp_digit))
prompts.append(Prompt(GUIDE_00_MILLION, dir=2))
*/
if (number < 0) {
PUSH_PROMPT(PROMPT_MINUS);
number = -number;
@@ -102,20 +92,16 @@ PLAY_FUNCTION(playNumber, int16_t number, uint8_t unit, uint8_t att)
int8_t mode = MODE(att);
if (mode > 0) {
div_t qr = div(number, (mode == 1 ? 10 : 100));
if (qr.rem) {
PLAY_NUMBER(qr.quot, 0, 0);
if (mode == 2 ) {
if (qr.rem >= 10)
PUSH_PROMPT(PROMPT_POINT_NUMBER + (qr.rem/10));
}
else
PUSH_PROMPT(PROMPT_POINT_NUMBER + qr.rem);
PUSH_PROMPT(PROMPT_UNITS_BASE+((unit-1)*2)+1);
}
else
PLAY_NUMBER(qr.quot, unit, 0);
return;
// we assume that we are PREC1
div_t qr = div(number, 10);
if (qr.rem) {
PLAY_NUMBER(qr.quot, 0, 0);
PUSH_PROMPT(PROMPT_POINT_BASE + qr.rem);
number = -1;
}
else {
number = qr.quot;
}
}
int16_t tmp = number;
+8 -8
View File
@@ -98,6 +98,8 @@ enum FrenchPrompts {
PROMPT_ACCELz = PROMPT_LABELS_BASE+TELEM_ACCz,
PROMPT_HDG = PROMPT_LABELS_BASE+TELEM_HDG,
PROMPT_VARIO = PROMPT_LABELS_BASE+TELEM_VSPD,
PROMPT_VIRGULE_BASE = 180, //,0 - ,9
};
#if defined(VOICE)
@@ -123,18 +125,16 @@ PLAY_FUNCTION(playNumber, int16_t number, uint8_t unit, uint8_t att)
int8_t mode = MODE(att);
if (mode > 0) {
div_t qr = div(number, (mode == 1 ? 10 : 100));
if (qr.rem > 0) {
// we assume that we are PREC1
div_t qr = div(number, 10);
if (qr.rem) {
PLAY_NUMBER(qr.quot, 0, 0);
PUSH_PROMPT(PROMPT_VIRGULE);
if (mode==2 && qr.rem < 10)
PUSH_PROMPT(PROMPT_ZERO);
PLAY_NUMBER(qr.rem, unit, 0);
PUSH_PROMPT(PROMPT_VIRGULE_BASE + qr.rem);
number = -1;
}
else {
PLAY_NUMBER(qr.quot, unit, 0);
number = qr.quot;
}
return;
}
if (number >= 1000) {