From a1883db8898f6454454136535894d43c0ce55ea8 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Thu, 14 Jan 2016 23:13:26 +0100 Subject: [PATCH] Curve names used instead of CV when available --- radio/src/gui/9x/lcd.cpp | 16 ++++----- radio/src/gui/9x/lcd.h | 4 +-- radio/src/gui/9x/menu_general_diaganas.cpp | 2 +- radio/src/gui/9x/menu_model_curves.cpp | 4 +-- .../gui/9x/menu_model_custom_functions.cpp | 6 ++-- radio/src/gui/9x/menu_model_flightmodes.cpp | 2 +- radio/src/gui/9x/menu_model_inputs_mixes.cpp | 8 ++--- radio/src/gui/9x/menu_model_setup.cpp | 4 +-- radio/src/gui/9x/menu_model_telemetry.cpp | 6 ++-- radio/src/gui/9x/view_telemetry.cpp | 4 +-- radio/src/gui/9x/widgets.cpp | 4 +-- radio/src/gui/horus/lcd.cpp | 29 ++++++++------- radio/src/gui/horus/lcd.h | 4 +-- radio/src/gui/horus/menu_model_curves.cpp | 4 +-- .../gui/horus/menu_model_custom_functions.cpp | 8 ++--- .../gui/horus/menu_model_custom_scripts.cpp | 4 +-- radio/src/gui/horus/menu_model_gvars.cpp | 2 +- radio/src/gui/horus/menu_model_limits.cpp | 2 +- radio/src/gui/horus/menu_model_setup.cpp | 6 ++-- radio/src/gui/horus/menu_model_telemetry.cpp | 4 +-- radio/src/gui/horus/view_main.cpp | 4 +-- radio/src/gui/horus/widgets.cpp | 4 +-- radio/src/gui/taranis/lcd.cpp | 35 ++++++++++--------- radio/src/gui/taranis/lcd.h | 4 +-- .../src/gui/taranis/menu_general_diaganas.cpp | 2 +- radio/src/gui/taranis/menu_model_curves.cpp | 6 ++-- .../taranis/menu_model_custom_functions.cpp | 8 ++--- .../gui/taranis/menu_model_custom_scripts.cpp | 4 +-- radio/src/gui/taranis/menu_model_gvars.cpp | 6 ++-- radio/src/gui/taranis/menu_model_limits.cpp | 2 +- radio/src/gui/taranis/menu_model_setup.cpp | 4 +-- .../src/gui/taranis/menu_model_telemetry.cpp | 6 ++-- radio/src/gui/taranis/view_main.cpp | 2 +- radio/src/gui/taranis/view_statistics.cpp | 2 +- radio/src/gui/taranis/view_telemetry.cpp | 2 +- radio/src/gui/taranis/widgets.cpp | 2 +- radio/src/tests/lcd.cpp | 6 ++-- 37 files changed, 114 insertions(+), 108 deletions(-) diff --git a/radio/src/gui/9x/lcd.cpp b/radio/src/gui/9x/lcd.cpp index 7a03907ef..6208ba615 100644 --- a/radio/src/gui/9x/lcd.cpp +++ b/radio/src/gui/9x/lcd.cpp @@ -638,7 +638,7 @@ void putsVBat(coord_t x, coord_t y, LcdFlags att) putsVolts(x, y, g_vbat100mV, att); } -void putsStrIdx(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att) +void drawStringWithIndex(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att) { lcdDrawText(x, y, str, att & ~LEADING0); lcdDrawNumber(lcdNextPos, y, idx, att|LEFT, 2); @@ -653,13 +653,13 @@ void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att) else if (idx <= MIXSRC_LAST_LOGICAL_SWITCH) putsSwitches(x, y, SWSRC_SW1+idx-MIXSRC_SW1, att); else if (idx < MIXSRC_CH1) - putsStrIdx(x, y, STR_PPM_TRAINER, idx-MIXSRC_FIRST_TRAINER+1, att); + drawStringWithIndex(x, y, STR_PPM_TRAINER, idx-MIXSRC_FIRST_TRAINER+1, att); else if (idx <= MIXSRC_LAST_CH) { - putsStrIdx(x, y, STR_CH, idx-MIXSRC_CH1+1, att); + drawStringWithIndex(x, y, STR_CH, idx-MIXSRC_CH1+1, att); } #if defined(GVARS) || !defined(PCBSTD) else if (idx <= MIXSRC_LAST_GVAR) - putsStrIdx(x, y, STR_GV, idx-MIXSRC_GVAR1+1, att); + drawStringWithIndex(x, y, STR_GV, idx-MIXSRC_GVAR1+1, att); #endif else if (idx < MIXSRC_FIRST_TELEM) { lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx-MIXSRC_Rud+1-(MIXSRC_SW1-MIXSRC_THR)-NUM_LOGICAL_SWITCH-NUM_TRAINER-NUM_CHNOUT-MAX_GVARS, att); @@ -687,7 +687,7 @@ void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att) uint8_t len = sizeof(g_model.header.name); while (len>0 && !name[len-1]) --len; if (len==0) { - putsStrIdx(x, y, STR_MODEL, id+1, att|LEADING0); + drawStringWithIndex(x, y, STR_MODEL, id+1, att|LEADING0); } else { lcdDrawSizedText(x, y, name, sizeof(g_model.header.name), ZCHAR|att); @@ -704,7 +704,7 @@ void putsSwitches(coord_t x, coord_t y, int8_t idx, LcdFlags att) } #if defined(CPUARM) && defined(FLIGHT_MODES) if (idx >= SWSRC_FIRST_FLIGHT_MODE) { - return putsStrIdx(x, y, STR_FP, idx-SWSRC_FIRST_FLIGHT_MODE, att); + return drawStringWithIndex(x, y, STR_FP, idx-SWSRC_FIRST_FLIGHT_MODE, att); } #endif return lcdDrawTextAtIndex(x, y, STR_VSWITCHES, idx, att); @@ -718,11 +718,11 @@ void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att) if (att & CONDENSED) lcdDrawNumber(x+FW*1, y, idx-1, (att & ~CONDENSED), 1); else - putsStrIdx(x, y, STR_FP, idx-1, att); + drawStringWithIndex(x, y, STR_FP, idx-1, att); } #endif -void putsCurve(coord_t x, coord_t y, int8_t idx, LcdFlags att) +void drawCurveName(coord_t x, coord_t y, int8_t idx, LcdFlags att) { if (idx < 0) { lcdDrawChar(x-3, y, '!', att); diff --git a/radio/src/gui/9x/lcd.h b/radio/src/gui/9x/lcd.h index 415e333d1..fbb973f3e 100644 --- a/radio/src/gui/9x/lcd.h +++ b/radio/src/gui/9x/lcd.h @@ -167,12 +167,12 @@ void lcdDrawNumber(coord_t x, coord_t y, lcdint_t val, LcdFlags mode, uint8_t le void lcdDrawNumber(coord_t x, coord_t y, lcdint_t val, LcdFlags mode=0); void lcdDraw8bitsNumber(coord_t x, coord_t y, int8_t val); -void putsStrIdx(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att=0); +void drawStringWithIndex(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att=0); void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att); void putsSwitches(coord_t x, coord_t y, int8_t swtch, LcdFlags att=0); void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0); void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); -void putsCurve(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); +void drawCurveName(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); void putsTimerMode(coord_t x, coord_t y, int8_t mode, LcdFlags att=0); void putsTrimMode(coord_t x, coord_t y, uint8_t phase, uint8_t idx, LcdFlags att); #if defined(ROTARY_ENCODERS) diff --git a/radio/src/gui/9x/menu_general_diaganas.cpp b/radio/src/gui/9x/menu_general_diaganas.cpp index 832f70aab..38191f641 100644 --- a/radio/src/gui/9x/menu_general_diaganas.cpp +++ b/radio/src/gui/9x/menu_general_diaganas.cpp @@ -44,7 +44,7 @@ void menuGeneralDiagAna(uint8_t event) #else coord_t y = MENU_HEADER_HEIGHT + 1 + (i/2)*FH; uint8_t x = i&1 ? 64+5 : 0; - putsStrIdx(x, y, PSTR("A"), i+1); + drawStringWithIndex(x, y, PSTR("A"), i+1); lcdDrawChar(lcdNextPos, y, ':'); #endif lcdDrawHexNumber(x+3*FW-1, y, anaIn(i)); diff --git a/radio/src/gui/9x/menu_model_curves.cpp b/radio/src/gui/9x/menu_model_curves.cpp index 32464a118..321a646f0 100644 --- a/radio/src/gui/9x/menu_model_curves.cpp +++ b/radio/src/gui/9x/menu_model_curves.cpp @@ -238,7 +238,7 @@ void menuModelCurvesAll(uint8_t event) uint8_t attr = (sub == k ? INVERS : 0); #if defined(GVARS) && defined(PCBSTD) if (k >= MAX_CURVES) { - putsStrIdx(0, y, STR_GV, k-MAX_CURVES+1); + drawStringWithIndex(0, y, STR_GV, k-MAX_CURVES+1); if (GVAR_SELECTED()) { if (attr && s_editMode>0) attr |= BLINK; lcdDrawNumber(10*FW, y, GVAR_VALUE(k-MAX_CURVES, -1), attr); @@ -248,7 +248,7 @@ void menuModelCurvesAll(uint8_t event) else #endif { - putsStrIdx(0, y, STR_CV, k+1, attr); + drawStringWithIndex(0, y, STR_CV, k+1, attr); } } diff --git a/radio/src/gui/9x/menu_model_custom_functions.cpp b/radio/src/gui/9x/menu_model_custom_functions.cpp index 32bd6e9d4..455b9c124 100644 --- a/radio/src/gui/9x/menu_model_custom_functions.cpp +++ b/radio/src/gui/9x/menu_model_custom_functions.cpp @@ -140,7 +140,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu #if defined(GVARS) else if (func == FUNC_ADJUST_GVAR) { maxParam = MAX_GVARS-1; - putsStrIdx(lcdNextPos, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr); + drawStringWithIndex(lcdNextPos, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr); #if defined(CPUARM) if (active) CFN_GVAR_INDEX(cfn) = checkIncDec(event, CFN_GVAR_INDEX(cfn), 0, maxParam, eeFlags); #else @@ -262,7 +262,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu val_displayed = (val_displayed > 250 ? 0 : 251); } if (val_displayed > 250) { - putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed-250, attr); + drawStringWithIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed-250, attr); } else { lcdDrawNumber(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT); @@ -309,7 +309,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu break; case FUNC_ADJUST_GVAR_GVAR: val_max = MAX_GVARS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); + drawStringWithIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); break; default: // FUNC_ADJUST_GVAR_INC val_max = 1; diff --git a/radio/src/gui/9x/menu_model_flightmodes.cpp b/radio/src/gui/9x/menu_model_flightmodes.cpp index ee677a0a4..3dcf9b135 100644 --- a/radio/src/gui/9x/menu_model_flightmodes.cpp +++ b/radio/src/gui/9x/menu_model_flightmodes.cpp @@ -150,7 +150,7 @@ void menuModelPhaseOne(uint8_t event) uint8_t posHorz = menuHorizontalPosition; if (attr && posHorz > 0 && s_currIdx==0) posHorz++; - putsStrIdx(INDENT_WIDTH, y, STR_GV, idx+1); + drawStringWithIndex(INDENT_WIDTH, y, STR_GV, idx+1); editName(4*FW, y, g_model.gvars[idx].name, LEN_GVAR_NAME, event, posHorz==0 ? attr : 0); diff --git a/radio/src/gui/9x/menu_model_inputs_mixes.cpp b/radio/src/gui/9x/menu_model_inputs_mixes.cpp index 31ea21903..63d01a10a 100644 --- a/radio/src/gui/9x/menu_model_inputs_mixes.cpp +++ b/radio/src/gui/9x/menu_model_inputs_mixes.cpp @@ -307,7 +307,7 @@ void menuModelExpoOne(uint8_t event) case EXPO_FIELD_CURVE: lcd_putsLeft(y, STR_CURVE); if (ed->curveMode!=MODE_EXPO || ed->curveParam==0) { - putsCurve(EXPO_ONE_2ND_COLUMN-3*FW, y, ed->curveParam, attr); + drawCurveName(EXPO_ONE_2ND_COLUMN-3*FW, y, ed->curveParam, attr); if (attr) { CHECK_INCDEC_MODELVAR_ZERO(event, ed->curveParam, CURVE_BASE+MAX_CURVES-1); if (ed->curveParam) ed->curveMode = MODE_CURVE; @@ -532,7 +532,7 @@ void menuModelMixOne(uint8_t event) lcd_putsColumnLeft(COLUMN_X, y, STR_CURVE); int8_t curveParam = md2->curveParam; if (md2->curveMode == MODE_CURVE) { - putsCurve(COLUMN_X+MIXES_2ND_COLUMN, y, curveParam, attr); + drawCurveName(COLUMN_X+MIXES_2ND_COLUMN, y, curveParam, attr); if (attr) { if (event==EVT_KEY_LONG(KEY_ENTER) && (curveParam<0 || curveParam>=CURVE_BASE)){ s_curveChan = (curveParam<0 ? -curveParam-1 : curveParam-CURVE_BASE); @@ -666,7 +666,7 @@ void displayMixInfos(coord_t y, MixData *md) { if (md->curveParam) { if (md->curveMode == MODE_CURVE) - putsCurve(MIX_LINE_CURVE_POS, y, md->curveParam); + drawCurveName(MIX_LINE_CURVE_POS, y, md->curveParam); else displayGVar(MIX_LINE_CURVE_POS+3*FW, y, md->curveParam, -100, 100); } @@ -693,7 +693,7 @@ void displayMixLine(coord_t y, MixData *md) void displayExpoInfos(coord_t y, ExpoData *ed) { if (ed->curveMode == MODE_CURVE) - putsCurve(EXPO_LINE_EXPO_POS-3*FW, y, ed->curveParam); + drawCurveName(EXPO_LINE_EXPO_POS-3*FW, y, ed->curveParam); else displayGVar(EXPO_LINE_EXPO_POS, y, ed->curveParam, -100, 100); diff --git a/radio/src/gui/9x/menu_model_setup.cpp b/radio/src/gui/9x/menu_model_setup.cpp index e4c5b8271..da2c2852c 100644 --- a/radio/src/gui/9x/menu_model_setup.cpp +++ b/radio/src/gui/9x/menu_model_setup.cpp @@ -179,7 +179,7 @@ void menuModelSetup(uint8_t event) { unsigned int timerIdx = (k>=ITEM_MODEL_TIMER3 ? 2 : (k>=ITEM_MODEL_TIMER2 ? 1 : 0)); TimerData * timer = &g_model.timers[timerIdx]; - putsStrIdx(0*FW, y, STR_TIMER, timerIdx+1); + drawStringWithIndex(0*FW, y, STR_TIMER, timerIdx+1); putsTimerMode(MODEL_SETUP_2ND_COLUMN, y, timer->mode, menuHorizontalPosition==0 ? attr : 0); putsTimer(MODEL_SETUP_2ND_COLUMN+5*FW-2+5*FWNUM+1, y, timer->start, menuHorizontalPosition==1 ? attr : 0, menuHorizontalPosition==2 ? attr : 0); if (attr && (editMode>0 || p1valdiff)) { @@ -269,7 +269,7 @@ void menuModelSetup(uint8_t event) timer->countdownBeep = editCheckBox(timer->countdownBeep, MODEL_SETUP_2ND_COLUMN, y, STR_BEEPCOUNTDOWN, attr, event); } else { - putsStrIdx(0*FW, y, STR_TIMER, k>=ITEM_MODEL_TIMER2 ? 2 : 1); + drawStringWithIndex(0*FW, y, STR_TIMER, k>=ITEM_MODEL_TIMER2 ? 2 : 1); putsTimerMode(MODEL_SETUP_2ND_COLUMN, y, timer->mode, menuHorizontalPosition==0 ? attr : 0); putsTimer(MODEL_SETUP_2ND_COLUMN+5*FW-2+5*FWNUM+1, y, timer->start, menuHorizontalPosition==1 ? attr : 0, menuHorizontalPosition==2 ? attr : 0); if (attr && (editMode>0 || p1valdiff)) { diff --git a/radio/src/gui/9x/menu_model_telemetry.cpp b/radio/src/gui/9x/menu_model_telemetry.cpp index c193fbf4e..517356126 100644 --- a/radio/src/gui/9x/menu_model_telemetry.cpp +++ b/radio/src/gui/9x/menu_model_telemetry.cpp @@ -436,7 +436,7 @@ void menuModelSensor(uint8_t event) case SENSOR_FIELD_PARAM4: { - putsStrIdx(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1); + drawStringWithIndex(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1); int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1]; if (attr) { source = checkIncDec(event, source, -MAX_SENSORS, MAX_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable); @@ -854,7 +854,7 @@ void menuModelTelemetry(uint8_t event) case ITEM_TELEMETRY_SCREEN_LABEL4: { uint8_t screenIndex = TELEMETRY_CURRENT_SCREEN(k); - putsStrIdx(0*FW, y, STR_SCREEN, screenIndex+1); + drawStringWithIndex(0*FW, y, STR_SCREEN, screenIndex+1); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType newScreenType = (TelemetryScreenType)selectMenuItem(TELEM_SCRTYPE_COL, y, PSTR(""), STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event); if (newScreenType != oldScreenType) { @@ -866,7 +866,7 @@ void menuModelTelemetry(uint8_t event) #else { uint8_t screenIndex = (k < ITEM_TELEMETRY_SCREEN_LABEL2 ? 1 : 2); - putsStrIdx(0*FW, y, STR_SCREEN, screenIndex); + drawStringWithIndex(0*FW, y, STR_SCREEN, screenIndex); #if defined(GAUGES) bool screenType = g_model.frsky.screensType & screenIndex; if (screenType != (bool)selectMenuItem(TELEM_SCRTYPE_COL, y, PSTR(""), STR_VTELEMSCREENTYPE, screenType, 0, 1, attr, event)) diff --git a/radio/src/gui/9x/view_telemetry.cpp b/radio/src/gui/9x/view_telemetry.cpp index 40c28eaa3..b2ed9cac2 100644 --- a/radio/src/gui/9x/view_telemetry.cpp +++ b/radio/src/gui/9x/view_telemetry.cpp @@ -110,7 +110,7 @@ NOINLINE uint8_t getRssiAlarmValue(uint8_t alarm) #if !defined(CPUARM) void displayVoltageScreenLine(uint8_t y, uint8_t index) { - putsStrIdx(0, y, STR_A, index+1, 0); + drawStringWithIndex(0, y, STR_A, index+1, 0); if (TELEMETRY_STREAMING()) { putsTelemetryChannelValue(3*FW+6*FW+4, y-FH, index+TELEM_A1-1, frskyData.analog[index].value, DBLSIZE); lcdDrawChar(12*FW-1, y-FH, '<'); putsTelemetryChannelValue(17*FW, y-FH, index+TELEM_A1-1, frskyData.analog[index].min, NO_UNIT); @@ -333,7 +333,7 @@ bool displayNumbersTelemetryScreen(FrSkyScreenData & screen) coord_t pos[] = {0, 65, 130}; if (field >= MIXSRC_FIRST_TIMER && field <= MIXSRC_LAST_TIMER && i!=3) { // there is not enough space on LCD for displaying "Tmr1" or "Tmr2" and still see the - sign, we write "T1" or "T2" instead - putsStrIdx(pos[j], 1+FH+2*FH*i, "T", field-MIXSRC_FIRST_TIMER+1, 0); + drawStringWithIndex(pos[j], 1+FH+2*FH*i, "T", field-MIXSRC_FIRST_TIMER+1, 0); } else if (field >= MIXSRC_FIRST_TELEM && isGPSSensor(1+(field-MIXSRC_FIRST_TELEM)/3) && telemetryItems[(field-MIXSRC_FIRST_TELEM)/3].isAvailable()) { // we don't display GPS name, no space for it diff --git a/radio/src/gui/9x/widgets.cpp b/radio/src/gui/9x/widgets.cpp index d0f00a594..8caa85de6 100644 --- a/radio/src/gui/9x/widgets.cpp +++ b/radio/src/gui/9x/widgets.cpp @@ -158,7 +158,7 @@ int16_t editGVarFieldValue(coord_t x, coord_t y, int16_t value, int16_t min, int else { value = (int16_t) GV_CALC_VALUE_IDX_POS(idx-1, delta); } - putsStrIdx(x, y, STR_GV, idx, attr); + drawStringWithIndex(x, y, STR_GV, idx, attr); } else { lcdDrawNumber(x, y, value, attr); @@ -198,7 +198,7 @@ int16_t editGVarFieldValue(coord_t x, coord_t y, int16_t value, int16_t min, int value = (int16_t) GV_CALC_VALUE_IDX_POS(idx, delta); idx++; } - putsStrIdx(x, y, STR_GV, idx, attr); + drawStringWithIndex(x, y, STR_GV, idx, attr); } else { lcdDrawNumber(x, y, value, attr); diff --git a/radio/src/gui/horus/lcd.cpp b/radio/src/gui/horus/lcd.cpp index deb7d88c0..7c80e8d34 100644 --- a/radio/src/gui/horus/lcd.cpp +++ b/radio/src/gui/horus/lcd.cpp @@ -442,7 +442,7 @@ void putsVBat(coord_t x, coord_t y, LcdFlags att) putsVolts(x, y, g_vbat100mV, att); } -void putsStrIdx(coord_t x, coord_t y, const pm_char *str, int idx, LcdFlags att, const char *prefix) +void drawStringWithIndex(coord_t x, coord_t y, const pm_char *str, int idx, LcdFlags att, const char *prefix) { // TODO quick & dirty, dangerous char s[32]; @@ -503,9 +503,9 @@ void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att) else if (idx <= MIXSRC_LAST_LOGICAL_SWITCH) putsSwitches(x, y, SWSRC_SW1+idx-MIXSRC_SW1, att); else if (idx < MIXSRC_CH1) - putsStrIdx(x, y, STR_PPM_TRAINER, idx-MIXSRC_FIRST_TRAINER+1, att); + drawStringWithIndex(x, y, STR_PPM_TRAINER, idx-MIXSRC_FIRST_TRAINER+1, att); else if (idx <= MIXSRC_LAST_CH) { - putsStrIdx(x, y, STR_CH, idx-MIXSRC_CH1+1, att); + drawStringWithIndex(x, y, STR_CH, idx-MIXSRC_CH1+1, att); #if 0 if (ZEXIST(g_model.limitData[idx-MIXSRC_CH1].name) && (att & STREXPANDED)) { lcdDrawChar(lcdNextPos, y, ' ', att); @@ -514,7 +514,7 @@ void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att) #endif } else if (idx <= MIXSRC_LAST_GVAR) - putsStrIdx(x, y, STR_GV, idx-MIXSRC_GVAR1+1, att); + drawStringWithIndex(x, y, STR_GV, idx-MIXSRC_GVAR1+1, att); else if (idx < MIXSRC_FIRST_TELEM) { lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx-MIXSRC_Rud+1-NUM_LOGICAL_SWITCH-NUM_TRAINER-NUM_CHNOUT-MAX_GVARS, att); } @@ -540,7 +540,7 @@ void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att) uint8_t len = sizeof(g_model.header.name); while (len>0 && !name[len-1]) --len; if (len==0) { - putsStrIdx(x, y, STR_MODEL, id+1, att|LEADING0); + drawStringWithIndex(x, y, STR_MODEL, id+1, att|LEADING0); } else { lcdDrawSizedText(x, y, name, sizeof(g_model.header.name), ZCHAR|att); @@ -629,7 +629,7 @@ void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att) lcdDrawTextAtIndex(x, y, STR_MMMINV, 0, att); } else { - putsStrIdx(x, y, STR_FP, abs(idx)-1, att); + drawStringWithIndex(x, y, STR_FP, abs(idx)-1, att); } } @@ -652,27 +652,30 @@ void putsCurveRef(coord_t x, coord_t y, CurveRef &curve, LcdFlags att) break; case CURVE_REF_CUSTOM: - putsCurve(x, y, curve.value, att); + drawCurveName(x, y, curve.value, att); break; } } } -void putsCurve(coord_t x, coord_t y, int8_t idx, LcdFlags att) +void drawCurveName(coord_t x, coord_t y, int8_t idx, LcdFlags flags) { if (idx == 0) { - return lcdDrawTextAtIndex(x, y, STR_MMMINV, 0, att); + return lcdDrawTextAtIndex(x, y, STR_MMMINV, 0, flags); } bool neg = false; if (idx < 0) { idx = -idx; neg = true; } - putsStrIdx(x, y, STR_CV, idx, att); + if (ZEXIST(g_model.curves[idx-1].name)) + lcdDrawSizedText(x, y, g_model.curves[idx-1].name, LEN_CURVE_NAME, ZCHAR|flags); + else + drawStringWithIndex(x, y, STR_CV, idx, flags); if (neg) { - if ((att&INVERS) && ((~att&BLINK) || BLINK_ON_PHASE)) - att &= ~(INVERS|BLINK); - lcdDrawChar(x-3, y, '!', att); + if ((flags&INVERS) && ((~flags&BLINK) || BLINK_ON_PHASE)) + flags &= ~(INVERS|BLINK); + lcdDrawChar(x-3, y, '!', flags); } } diff --git a/radio/src/gui/horus/lcd.h b/radio/src/gui/horus/lcd.h index 93cddcfce..b5c0998d0 100644 --- a/radio/src/gui/horus/lcd.h +++ b/radio/src/gui/horus/lcd.h @@ -179,14 +179,14 @@ void lcd_putsCenter(coord_t y, const pm_char * s, LcdFlags attr=0); void lcdDrawHexNumber(coord_t x, coord_t y, uint32_t val, LcdFlags mode=0); void lcdDrawNumber(coord_t x, coord_t y, int32_t val, LcdFlags flags=0, uint8_t len=0, const char * prefix=NULL, const char * suffix=NULL); -void putsStrIdx(coord_t x, coord_t y, const pm_char *str, int idx, LcdFlags att=0, const char *prefix=""); +void drawStringWithIndex(coord_t x, coord_t y, const pm_char *str, int idx, LcdFlags att=0, const char *prefix=""); void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att); void putsStickName(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0); void putsSwitches(coord_t x, coord_t y, swsrc_t swtch, LcdFlags flags=0); void putsMixerSource(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0); void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); void putsCurveRef(coord_t x, coord_t y, CurveRef &curve, LcdFlags att=0); -void putsCurve(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); +void drawCurveName(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); void putsTimerMode(coord_t x, coord_t y, int8_t mode, LcdFlags att=0); void putsTrimMode(coord_t x, coord_t y, uint8_t phase, uint8_t idx, LcdFlags att); diff --git a/radio/src/gui/horus/menu_model_curves.cpp b/radio/src/gui/horus/menu_model_curves.cpp index 133bfc61c..47cafb7b3 100644 --- a/radio/src/gui/horus/menu_model_curves.cpp +++ b/radio/src/gui/horus/menu_model_curves.cpp @@ -314,7 +314,7 @@ void editCurveRef(coord_t x, coord_t y, CurveRef & curve, evt_t event, uint8_t a if (attr && menuHorizontalPosition==1) CHECK_INCDEC_MODELVAR_ZERO(event, curve.value, CURVE_BASE-1); break; case CURVE_REF_CUSTOM: - putsCurve(lcdNextPos+10, y, curve.value, (menuHorizontalPosition==1 ? attr : 0)); + drawCurveName(lcdNextPos+10, y, curve.value, (menuHorizontalPosition==1 ? attr : 0)); if (attr && menuHorizontalPosition==1) { if (event==EVT_KEY_LONG(KEY_ENTER) && curve.value!=0) { s_curveChan = (curve.value<0 ? -curve.value-1 : curve.value-1); @@ -351,7 +351,7 @@ bool menuModelCurvesAll(evt_t event) uint8_t k = i + menuVerticalOffset; LcdFlags attr = (sub == k ? INVERS : 0); { - putsStrIdx(MENUS_MARGIN_LEFT, y, STR_CV, k+1, attr); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, STR_CV, k+1, attr); CurveData & crv = g_model.curves[k]; editName(CURVES_NAME_POS, y, crv.name, sizeof(crv.name), 0, 0); lcdDrawNumber(CURVES_POINTS_POS, y, 5+crv.points, LEFT, 0, NULL, STR_PTS); diff --git a/radio/src/gui/horus/menu_model_custom_functions.cpp b/radio/src/gui/horus/menu_model_custom_functions.cpp index b06258342..aa0bbfc4b 100644 --- a/radio/src/gui/horus/menu_model_custom_functions.cpp +++ b/radio/src/gui/horus/menu_model_custom_functions.cpp @@ -125,7 +125,7 @@ bool menuCustomFunctions(evt_t event, CustomFunctionData * functions, CustomFunc coord_t y = MENU_CONTENT_TOP + i*FH; unsigned int k = i+menuVerticalOffset; - putsStrIdx(MENUS_MARGIN_LEFT, y, functions == g_model.customFn ? STR_SF : STR_GF, k+1, (sub==k && menuHorizontalPosition<0) ? INVERS : 0); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, functions == g_model.customFn ? STR_SF : STR_GF, k+1, (sub==k && menuHorizontalPosition<0) ? INVERS : 0); CustomFunctionData *cfn = &functions[k]; unsigned int func = CFN_FUNC(cfn); @@ -170,14 +170,14 @@ bool menuCustomFunctions(evt_t event, CustomFunctionData * functions, CustomFunc #if defined(GVARS) else if (func == FUNC_ADJUST_GVAR) { maxParam = MAX_GVARS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN_EXT, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr); + drawStringWithIndex(MODEL_CUSTOM_FUNC_2ND_COLUMN_EXT, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr); if (active) CFN_GVAR_INDEX(cfn) = checkIncDec(event, CFN_GVAR_INDEX(cfn), 0, maxParam, eeFlags); break; } #endif else if (func == FUNC_SET_TIMER) { maxParam = MAX_TIMERS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_2ND_COLUMN_EXT, y, STR_TIMER, CFN_TIMER_INDEX(cfn)+1, attr); + drawStringWithIndex(MODEL_CUSTOM_FUNC_2ND_COLUMN_EXT, y, STR_TIMER, CFN_TIMER_INDEX(cfn)+1, attr); if (active) CFN_TIMER_INDEX(cfn) = checkIncDec(event, CFN_TIMER_INDEX(cfn), 0, maxParam, eeFlags); break; } @@ -294,7 +294,7 @@ bool menuCustomFunctions(evt_t event, CustomFunctionData * functions, CustomFunc break; case FUNC_ADJUST_GVAR_GVAR: val_max = MAX_GVARS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); + drawStringWithIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); break; default: // FUNC_ADJUST_GVAR_INC val_max = 1; diff --git a/radio/src/gui/horus/menu_model_custom_scripts.cpp b/radio/src/gui/horus/menu_model_custom_scripts.cpp index e608a283a..27a84f301 100644 --- a/radio/src/gui/horus/menu_model_custom_scripts.cpp +++ b/radio/src/gui/horus/menu_model_custom_scripts.cpp @@ -51,7 +51,7 @@ bool menuModelCustomScriptOne(evt_t event) { ScriptData &sd = g_model.scriptsData[s_currIdx]; - // putsStrIdx(lcdLastPos+FW, 0, "LUA", s_currIdx+1, 0); + // drawStringWithIndex(lcdLastPos+FW, 0, "LUA", s_currIdx+1, 0); SUBMENU(STR_MENUCUSTOMSCRIPTS, 3+scriptInputsOutputs[s_currIdx].inputsCount, 0, { 0, 0, LABEL(inputs), 0/*repeated*/ }); @@ -141,7 +141,7 @@ bool menuModelCustomScripts(evt_t event) ScriptData &sd = g_model.scriptsData[i]; // LUAx header - putsStrIdx(MENUS_MARGIN_LEFT, y, "LUA", i+1, sub==i ? INVERS : 0); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, "LUA", i+1, sub==i ? INVERS : 0); // LUA script if (ZEXIST(sd.file)) { diff --git a/radio/src/gui/horus/menu_model_gvars.cpp b/radio/src/gui/horus/menu_model_gvars.cpp index 8d2743899..b1b74e491 100644 --- a/radio/src/gui/horus/menu_model_gvars.cpp +++ b/radio/src/gui/horus/menu_model_gvars.cpp @@ -52,7 +52,7 @@ bool menuModelGVars(evt_t event) int i = l+menuVerticalOffset; coord_t y = MENU_CONTENT_TOP + l*FH; if (g_model.gvars[i].popup) lcdDrawText(MENUS_MARGIN_LEFT+25, y, "!"); - putsStrIdx(MENUS_MARGIN_LEFT, y, STR_GV, i+1, ((sub==i && menuHorizontalPosition<0) ? INVERS : 0)); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, STR_GV, i+1, ((sub==i && menuHorizontalPosition<0) ? INVERS : 0)); for (int j=0; j<1+MAX_FLIGHT_MODES; j++) { LcdFlags attr = ((sub==i && menuHorizontalPosition==j) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0); diff --git a/radio/src/gui/horus/menu_model_limits.cpp b/radio/src/gui/horus/menu_model_limits.cpp index 58b5d09aa..4e13ec4ea 100644 --- a/radio/src/gui/horus/menu_model_limits.cpp +++ b/radio/src/gui/horus/menu_model_limits.cpp @@ -226,7 +226,7 @@ bool menuModelLimits(evt_t event) #if defined(CURVES) case ITEM_LIMITS_CURVE: - putsCurve(LIMITS_CURVE_POS, y, ld->curve, attr); + drawCurveName(LIMITS_CURVE_POS, y, ld->curve, attr); if (attr && event==EVT_KEY_LONG(KEY_ENTER) && ld->curve>0) { s_curveChan = (ld->curve<0 ? -ld->curve-1 : ld->curve-1); pushMenu(menuModelCurveOne); diff --git a/radio/src/gui/horus/menu_model_setup.cpp b/radio/src/gui/horus/menu_model_setup.cpp index 078fa0973..9f7de484c 100644 --- a/radio/src/gui/horus/menu_model_setup.cpp +++ b/radio/src/gui/horus/menu_model_setup.cpp @@ -105,7 +105,7 @@ void editTimerMode(int timerIdx, coord_t y, LcdFlags attr, evt_t event) if (attr && menuHorizontalPosition < 0) { lcdDrawSolidFilledRect(MODEL_SETUP_2ND_COLUMN-INVERT_HORZ_MARGIN, y-INVERT_VERT_MARGIN+1, 90+2*INVERT_HORZ_MARGIN, INVERT_LINE_HEIGHT, TEXT_INVERTED_BGCOLOR); } - putsStrIdx(MENUS_MARGIN_LEFT, y, STR_TIMER, timerIdx+1); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, STR_TIMER, timerIdx+1); putsTimerMode(MODEL_SETUP_2ND_COLUMN, y, timer->mode, (menuHorizontalPosition<=0 ? attr : 0)); putsTimer(MODEL_SETUP_2ND_COLUMN+50, y, timer->start, (menuHorizontalPosition!=0 ? attr : 0)); if (attr && s_editMode>0) { @@ -583,9 +583,9 @@ bool menuModelSetup(evt_t event) ModuleData & moduleData = g_model.moduleData[moduleIdx]; lcdDrawText(MENUS_MARGIN_LEFT, y, STR_CHANNELRANGE); if ((int8_t)PORT_CHANNELS_ROWS(moduleIdx) >= 0) { - putsStrIdx(MODEL_SETUP_2ND_COLUMN, y, STR_CH, moduleData.channelsStart+1, menuHorizontalPosition==0 ? attr : 0); + drawStringWithIndex(MODEL_SETUP_2ND_COLUMN, y, STR_CH, moduleData.channelsStart+1, menuHorizontalPosition==0 ? attr : 0); lcdDrawText(MODEL_SETUP_2ND_COLUMN+30, y, "-"); - putsStrIdx(MODEL_SETUP_2ND_COLUMN+40, y, STR_CH, moduleData.channelsStart+NUM_CHANNELS(moduleIdx), menuHorizontalPosition==1 ? attr : 0); + drawStringWithIndex(MODEL_SETUP_2ND_COLUMN+40, y, STR_CH, moduleData.channelsStart+NUM_CHANNELS(moduleIdx), menuHorizontalPosition==1 ? attr : 0); if (attr && s_editMode>0) { switch (menuHorizontalPosition) { case 0: diff --git a/radio/src/gui/horus/menu_model_telemetry.cpp b/radio/src/gui/horus/menu_model_telemetry.cpp index 21aa3d7f9..7b9f361f7 100644 --- a/radio/src/gui/horus/menu_model_telemetry.cpp +++ b/radio/src/gui/horus/menu_model_telemetry.cpp @@ -392,7 +392,7 @@ bool menuModelSensor(evt_t event) case SENSOR_FIELD_PARAM4: { - putsStrIdx(MENUS_MARGIN_LEFT, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1); int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1]; if (attr) { source = checkIncDec(event, source, -MAX_SENSORS, MAX_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable); @@ -695,7 +695,7 @@ bool menuModelTelemetry(evt_t event) case ITEM_TELEMETRY_SCREEN_LABEL4: { uint8_t screenIndex = TELEMETRY_CURRENT_SCREEN(k); - putsStrIdx(MENUS_MARGIN_LEFT, y, STR_SCREEN, screenIndex+1); + drawStringWithIndex(MENUS_MARGIN_LEFT, y, STR_SCREEN, screenIndex+1); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType newScreenType = (TelemetryScreenType)selectMenuItem(TELEM_COL2, y, STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event); if (newScreenType != oldScreenType) { diff --git a/radio/src/gui/horus/view_main.cpp b/radio/src/gui/horus/view_main.cpp index 07357c7ff..8d55f4f17 100644 --- a/radio/src/gui/horus/view_main.cpp +++ b/radio/src/gui/horus/view_main.cpp @@ -164,7 +164,7 @@ void drawTimer(coord_t x, coord_t y, int index) if (ZLEN(timerData.name) > 0) { lcdDrawSizedText(x+78, y+20, timerData.name, LEN_TIMER_NAME, ZCHAR|SMLSIZE|TEXT_COLOR); } - putsStrIdx(x+137, y+17, "TMR", index+1, SMLSIZE|TEXT_COLOR); + drawStringWithIndex(x+137, y+17, "TMR", index+1, SMLSIZE|TEXT_COLOR); } @@ -391,7 +391,7 @@ bool menuMainView(evt_t event) if (gvarDisplayTimer > 0) { gvarDisplayTimer--; displayMessageBox(); - putsStrIdx(WARNING_LINE_X, WARNING_LINE_Y, STR_GV, gvarLastChanged+1, DBLSIZE|YELLOW); + drawStringWithIndex(WARNING_LINE_X, WARNING_LINE_Y, STR_GV, gvarLastChanged+1, DBLSIZE|YELLOW); lcdDrawSizedText(WARNING_LINE_X+45, WARNING_LINE_Y, g_model.gvars[gvarLastChanged].name, LEN_GVAR_NAME, DBLSIZE|YELLOW|ZCHAR); lcdDrawNumber(WARNING_LINE_X, WARNING_INFOLINE_Y, GVAR_VALUE(gvarLastChanged, getGVarFlightMode(mixerCurrentFlightMode, gvarLastChanged)), DBLSIZE|LEFT); } diff --git a/radio/src/gui/horus/widgets.cpp b/radio/src/gui/horus/widgets.cpp index a76bc3ee6..ea166f3c0 100644 --- a/radio/src/gui/horus/widgets.cpp +++ b/radio/src/gui/horus/widgets.cpp @@ -302,10 +302,10 @@ int16_t editGVarFieldValue(coord_t x, coord_t y, int16_t value, int16_t min, int if (idx < 0) { value = (int16_t) GV_CALC_VALUE_IDX_NEG(idx, delta); idx = -idx; - putsStrIdx(x, y, STR_GV, idx, attr, "-"); + drawStringWithIndex(x, y, STR_GV, idx, attr, "-"); } else { - putsStrIdx(x, y, STR_GV, idx, attr); + drawStringWithIndex(x, y, STR_GV, idx, attr); value = (int16_t) GV_CALC_VALUE_IDX_POS(idx-1, delta); } } diff --git a/radio/src/gui/taranis/lcd.cpp b/radio/src/gui/taranis/lcd.cpp index 9e7697f90..1e20ee9ee 100644 --- a/radio/src/gui/taranis/lcd.cpp +++ b/radio/src/gui/taranis/lcd.cpp @@ -601,7 +601,7 @@ void putsVBat(coord_t x, coord_t y, LcdFlags att) putsVolts(x, y, g_vbat100mV, att); } -void putsStrIdx(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att) +void drawStringWithIndex(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att) { lcdDrawText(x, y, str, att & ~LEADING0); lcdDrawNumber(lcdNextPos, y, idx, att|LEFT, 2); @@ -638,7 +638,7 @@ void putsMixerSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att) else #endif { - putsStrIdx(x, y, "LUA", qr.quot+1, att); + drawStringWithIndex(x, y, "LUA", qr.quot+1, att); lcdDrawChar(lcdLastPos, y, 'a'+qr.rem, att); } } @@ -671,16 +671,16 @@ void putsMixerSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att) else if (idx <= MIXSRC_LAST_LOGICAL_SWITCH) putsSwitches(x, y, SWSRC_SW1+idx-MIXSRC_SW1, att); else if (idx < MIXSRC_CH1) - putsStrIdx(x, y, STR_PPM_TRAINER, idx-MIXSRC_FIRST_TRAINER+1, att); + drawStringWithIndex(x, y, STR_PPM_TRAINER, idx-MIXSRC_FIRST_TRAINER+1, att); else if (idx <= MIXSRC_LAST_CH) { - putsStrIdx(x, y, STR_CH, idx-MIXSRC_CH1+1, att); + drawStringWithIndex(x, y, STR_CH, idx-MIXSRC_CH1+1, att); if (ZEXIST(g_model.limitData[idx-MIXSRC_CH1].name) && (att & STREXPANDED)) { lcdDrawChar(lcdLastPos, y, ' ', att|SMLSIZE); lcdDrawSizedText(lcdLastPos+3, y, g_model.limitData[idx-MIXSRC_CH1].name, LEN_CHANNEL_NAME, ZCHAR|att|SMLSIZE); } } else if (idx <= MIXSRC_LAST_GVAR) { - putsStrIdx(x, y, STR_GV, idx-MIXSRC_GVAR1+1, att); + drawStringWithIndex(x, y, STR_GV, idx-MIXSRC_GVAR1+1, att); } else if (idx < MIXSRC_FIRST_TELEM) { lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx-MIXSRC_Rud+1-NUM_LOGICAL_SWITCH-NUM_TRAINER-NUM_CHNOUT-MAX_GVARS, att); @@ -703,7 +703,7 @@ void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att) uint8_t len = sizeof(g_model.header.name); while (len>0 && !name[len-1]) --len; if (len==0) { - putsStrIdx(x, y, STR_MODEL, id+1, att|LEADING0); + drawStringWithIndex(x, y, STR_MODEL, id+1, att|LEADING0); } else { lcdDrawSizedText(x, y, name, sizeof(g_model.header.name), ZCHAR|att); @@ -738,25 +738,25 @@ void putsSwitches(coord_t x, coord_t y, int32_t idx, LcdFlags att) } else if (idx <= SWSRC_LAST_MULTIPOS_SWITCH) { div_t swinfo = div(idx - SWSRC_FIRST_MULTIPOS_SWITCH, XPOTS_MULTIPOS_COUNT); - putsStrIdx(x, y, "S", swinfo.quot*10+swinfo.rem+11, att); + drawStringWithIndex(x, y, "S", swinfo.quot*10+swinfo.rem+11, att); } else if (idx <= SWSRC_LAST_TRIM) { lcdDrawTextAtIndex(x, y, STR_VSWITCHES, idx-SWSRC_FIRST_TRIM+1, att); } else if (idx <= SWSRC_LAST_LOGICAL_SWITCH) { - putsStrIdx(x, y, "L", idx-SWSRC_FIRST_LOGICAL_SWITCH+1, att); + drawStringWithIndex(x, y, "L", idx-SWSRC_FIRST_LOGICAL_SWITCH+1, att); } else if (idx <= SWSRC_ONE) { lcdDrawTextAtIndex(x, y, STR_VSWITCHES, idx-SWSRC_ON+1+(2*NUM_STICKS), att); } else if (idx <= SWSRC_LAST_FLIGHT_MODE) { - putsStrIdx(x, y, STR_FP, idx-SWSRC_FIRST_FLIGHT_MODE, att); + drawStringWithIndex(x, y, STR_FP, idx-SWSRC_FIRST_FLIGHT_MODE, att); } else if (idx == SWSRC_TELEMETRY_STREAMING) { lcdDrawText(x, y, "Tele", att); } else if (idx <= SWSRC_LAST_FLIGHT_MODE) { - putsStrIdx(x, y, STR_FP, idx-SWSRC_FIRST_FLIGHT_MODE, att); + drawStringWithIndex(x, y, STR_FP, idx-SWSRC_FIRST_FLIGHT_MODE, att); } else if (idx == SWSRC_TELEMETRY_STREAMING) { lcdDrawText(x, y, "Tele", att); @@ -774,7 +774,7 @@ void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att) if (att & CONDENSED) lcdDrawNumber(x+FW*1, y, idx-1, (att & ~CONDENSED), 1); else - putsStrIdx(x, y, STR_FP, idx-1, att); + drawStringWithIndex(x, y, STR_FP, idx-1, att); } #endif @@ -797,24 +797,27 @@ void putsCurveRef(coord_t x, coord_t y, CurveRef &curve, LcdFlags att) break; case CURVE_REF_CUSTOM: - putsCurve(x, y, curve.value, att); + drawCurveName(x, y, curve.value, att); break; } } } -void putsCurve(coord_t x, coord_t y, int8_t idx, LcdFlags att) +void drawCurveName(coord_t x, coord_t y, int8_t idx, LcdFlags flags) { if (idx == 0) { - return lcdDrawTextAtIndex(x, y, STR_MMMINV, 0, att); + return lcdDrawTextAtIndex(x, y, STR_MMMINV, 0, flags); } if (idx < 0) { - lcdDrawChar(x-3, y, '!', att); + lcdDrawChar(x-3, y, '!', flags); idx = -idx; } - putsStrIdx(x, y, STR_CV, idx, att); + if (ZEXIST(g_model.curves[idx-1].name)) + lcdDrawSizedText(x, y, g_model.curves[idx-1].name, LEN_CURVE_NAME, ZCHAR|flags); + else + drawStringWithIndex(x, y, STR_CV, idx, flags); } void putsTimerMode(coord_t x, coord_t y, int32_t mode, LcdFlags att) diff --git a/radio/src/gui/taranis/lcd.h b/radio/src/gui/taranis/lcd.h index 4b84f0c4d..ee1fabffc 100644 --- a/radio/src/gui/taranis/lcd.h +++ b/radio/src/gui/taranis/lcd.h @@ -142,7 +142,7 @@ void lcdDrawNumber(coord_t x, coord_t y, int32_t val, LcdFlags mode, uint8_t len void lcdDrawNumber(coord_t x, coord_t y, int32_t val, LcdFlags mode=0); void lcdDraw8bitsNumber(coord_t x, coord_t y, int8_t val); -void putsStrIdx(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att=0); +void drawStringWithIndex(coord_t x, coord_t y, const pm_char *str, uint8_t idx, LcdFlags att=0); void putsModelName(coord_t x, coord_t y, char *name, uint8_t id, LcdFlags att); void putsSwitches(coord_t x, coord_t y, int32_t swtch, LcdFlags att=0); void putsStickName(coord_t x, coord_t y, uint8_t idx, LcdFlags att=0); @@ -151,7 +151,7 @@ void putsFlightMode(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); #if !defined(BOOT) void putsCurveRef(coord_t x, coord_t y, CurveRef &curve, LcdFlags att); #endif -void putsCurve(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); +void drawCurveName(coord_t x, coord_t y, int8_t idx, LcdFlags att=0); void putsTimerMode(coord_t x, coord_t y, int32_t mode, LcdFlags att=0); void putsTrimMode(coord_t x, coord_t y, uint8_t phase, uint8_t idx, LcdFlags att); diff --git a/radio/src/gui/taranis/menu_general_diaganas.cpp b/radio/src/gui/taranis/menu_general_diaganas.cpp index dd7a01422..2fa56de78 100644 --- a/radio/src/gui/taranis/menu_general_diaganas.cpp +++ b/radio/src/gui/taranis/menu_general_diaganas.cpp @@ -36,7 +36,7 @@ void menuGeneralDiagAna(uint8_t event) #else coord_t y = MENU_HEADER_HEIGHT + 1 + (i/2)*FH; uint8_t x = i&1 ? 64+5 : 0; - putsStrIdx(x, y, PSTR("A"), i+1); + drawStringWithIndex(x, y, PSTR("A"), i+1); lcdDrawChar(lcdNextPos, y, ':'); #endif lcdDrawHexNumber(x+3*FW-1, y, anaIn(i)); diff --git a/radio/src/gui/taranis/menu_model_curves.cpp b/radio/src/gui/taranis/menu_model_curves.cpp index 6790b21ff..baf1d4de7 100644 --- a/radio/src/gui/taranis/menu_model_curves.cpp +++ b/radio/src/gui/taranis/menu_model_curves.cpp @@ -129,7 +129,7 @@ void menuModelCurveOne(uint8_t event) int8_t * points = curveAddress(s_curveChan); lcdDrawText(11*FW+FW/2, 0, TR_PT "\002X\006Y"); - putsStrIdx(PSIZE(TR_MENUCURVES)*FW+FW, 0, "CV", s_curveChan+1); + drawStringWithIndex(PSIZE(TR_MENUCURVES)*FW+FW, 0, "CV", s_curveChan+1); lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); SIMPLE_SUBMENU(STR_MENUCURVES, 4 + 5+crv.points + (crv.type==CURVE_TYPE_CUSTOM ? 5+crv.points-2 : 0)); @@ -260,7 +260,7 @@ void editCurveRef(coord_t x, coord_t y, CurveRef & curve, uint8_t event, uint8_t if (attr && menuHorizontalPosition==1) CHECK_INCDEC_MODELVAR_ZERO(event, curve.value, CURVE_BASE-1); break; case CURVE_REF_CUSTOM: - putsCurve(x+5*FW+2, y, curve.value, menuHorizontalPosition==1 ? attr : 0); + drawCurveName(x+5*FW+2, y, curve.value, menuHorizontalPosition==1 ? attr : 0); if (attr && menuHorizontalPosition==1) { if (event==EVT_KEY_LONG(KEY_ENTER) && curve.value!=0) { s_curveChan = (curve.value<0 ? -curve.value-1 : curve.value-1); @@ -294,7 +294,7 @@ void menuModelCurvesAll(uint8_t event) int k = i + menuVerticalOffset; LcdFlags attr = (sub == k ? INVERS : 0); { - putsStrIdx(0, y, STR_CV, k+1, attr); + drawStringWithIndex(0, y, STR_CV, k+1, attr); CurveData & crv = g_model.curves[k]; editName(4*FW, y, crv.name, sizeof(crv.name), 0, 0); lcdDrawNumber(11*FW, y, 5+crv.points, LEFT); diff --git a/radio/src/gui/taranis/menu_model_custom_functions.cpp b/radio/src/gui/taranis/menu_model_custom_functions.cpp index 5ce51db8e..66c57084d 100644 --- a/radio/src/gui/taranis/menu_model_custom_functions.cpp +++ b/radio/src/gui/taranis/menu_model_custom_functions.cpp @@ -172,7 +172,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH; int k = i+menuVerticalOffset; - putsStrIdx(0, y, functions == g_model.customFn ? STR_SF : STR_GF, k+1, (sub==k && menuHorizontalPosition<0) ? INVERS : 0); + drawStringWithIndex(0, y, functions == g_model.customFn ? STR_SF : STR_GF, k+1, (sub==k && menuHorizontalPosition<0) ? INVERS : 0); CustomFunctionData *cfn = &functions[k]; uint8_t func = CFN_FUNC(cfn); @@ -220,14 +220,14 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu #if defined(GVARS) else if (func == FUNC_ADJUST_GVAR) { maxParam = MAX_GVARS-1; - putsStrIdx(lcdNextPos, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr); + drawStringWithIndex(lcdNextPos, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr); if (active) CFN_GVAR_INDEX(cfn) = checkIncDec(event, CFN_GVAR_INDEX(cfn), 0, maxParam, eeFlags); break; } #endif else if (func == FUNC_SET_TIMER) { maxParam = TIMERS-1; - putsStrIdx(lcdNextPos, y, STR_TIMER, CFN_TIMER_INDEX(cfn)+1, attr); + drawStringWithIndex(lcdNextPos, y, STR_TIMER, CFN_TIMER_INDEX(cfn)+1, attr); if (active) CFN_TIMER_INDEX(cfn) = checkIncDec(event, CFN_TIMER_INDEX(cfn), 0, maxParam, eeFlags); break; } @@ -358,7 +358,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu break; case FUNC_ADJUST_GVAR_GVAR: val_max = MAX_GVARS-1; - putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); + drawStringWithIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed+1, attr); break; default: // FUNC_ADJUST_GVAR_INC val_min = -100; val_max = +100; diff --git a/radio/src/gui/taranis/menu_model_custom_scripts.cpp b/radio/src/gui/taranis/menu_model_custom_scripts.cpp index 1bc30eb30..2c4a51827 100644 --- a/radio/src/gui/taranis/menu_model_custom_scripts.cpp +++ b/radio/src/gui/taranis/menu_model_custom_scripts.cpp @@ -51,7 +51,7 @@ void menuModelCustomScriptOne(uint8_t event) { ScriptData & sd = g_model.scriptsData[s_currIdx]; - putsStrIdx(PSIZE(TR_MENUCUSTOMSCRIPTS)*FW+FW, 0, "LUA", s_currIdx+1, 0); + drawStringWithIndex(PSIZE(TR_MENUCUSTOMSCRIPTS)*FW+FW, 0, "LUA", s_currIdx+1, 0); lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); SUBMENU(STR_MENUCUSTOMSCRIPTS, 3+scriptInputsOutputs[s_currIdx].inputsCount, { 0, 0, LABEL(inputs), 0/*repeated*/ }); @@ -137,7 +137,7 @@ void menuModelCustomScripts(uint8_t event) ScriptData &sd = g_model.scriptsData[i]; // LUAx header - putsStrIdx(0, y, "LUA", i+1, sub==i ? INVERS : 0); + drawStringWithIndex(0, y, "LUA", i+1, sub==i ? INVERS : 0); // LUA script if (ZEXIST(sd.file)) { diff --git a/radio/src/gui/taranis/menu_model_gvars.cpp b/radio/src/gui/taranis/menu_model_gvars.cpp index 8f78561a1..3d11651f9 100644 --- a/radio/src/gui/taranis/menu_model_gvars.cpp +++ b/radio/src/gui/taranis/menu_model_gvars.cpp @@ -66,7 +66,7 @@ void menuModelGVarOne(uint8_t event) { GVarData * gvar = &g_model.gvars[s_currIdx]; - putsStrIdx(PSIZE(TR_GVARS)*FW+FW, 0, STR_GV, s_currIdx+1, 0); + drawStringWithIndex(PSIZE(TR_GVARS)*FW+FW, 0, STR_GV, s_currIdx+1, 0); drawGVarValue(32*FW, 0, s_currIdx, getGVarValue(s_currIdx, getFlightMode())); lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); @@ -107,7 +107,7 @@ void menuModelGVarOne(uint8_t event) break; default: - putsStrIdx(0, y, STR_FP, k-GVAR_FIELD_FM0); + drawStringWithIndex(0, y, STR_FP, k-GVAR_FIELD_FM0); editGVarValue(GVAR_2ND_COLUMN, y, event, s_currIdx, k-GVAR_FIELD_FM0, LEFT|attr); break; } @@ -142,7 +142,7 @@ void menuModelGVars(uint8_t event) if (after2seconds) { menuTitle = STR_GVARS; for (int i=0; icurve, attr); + drawCurveName(LIMITS_CURVE_POS, y, ld->curve, attr); if (attr && event==EVT_KEY_LONG(KEY_ENTER) && ld->curve>0) { s_curveChan = (ld->curve<0 ? -ld->curve-1 : ld->curve-1); pushMenu(menuModelCurveOne); diff --git a/radio/src/gui/taranis/menu_model_setup.cpp b/radio/src/gui/taranis/menu_model_setup.cpp index e2a8a7fe3..a0a455cad 100644 --- a/radio/src/gui/taranis/menu_model_setup.cpp +++ b/radio/src/gui/taranis/menu_model_setup.cpp @@ -120,7 +120,7 @@ void onModelSetupBitmapMenu(const char *result) void editTimerMode(int timerIdx, coord_t y, LcdFlags attr, uint8_t event) { TimerData * timer = &g_model.timers[timerIdx]; - putsStrIdx(0*FW, y, STR_TIMER, timerIdx+1); + drawStringWithIndex(0*FW, y, STR_TIMER, timerIdx+1); putsTimerMode(MODEL_SETUP_2ND_COLUMN, y, timer->mode, menuHorizontalPosition==0 ? attr : 0); putsTimer(MODEL_SETUP_2ND_COLUMN+5*FW-2+5*FWNUM+1, y, timer->start, menuHorizontalPosition==1 ? attr : 0, menuHorizontalPosition==2 ? attr : 0); @@ -357,7 +357,7 @@ void menuModelSetup(uint8_t event) #if defined(REV9E) case ITEM_MODEL_TOP_LCD_TIMER: lcd_putsLeft(y, STR_TOPLCDTIMER); - putsStrIdx(MODEL_SETUP_2ND_COLUMN, y, STR_TIMER, g_model.toplcdTimer+1, attr); + drawStringWithIndex(MODEL_SETUP_2ND_COLUMN, y, STR_TIMER, g_model.toplcdTimer+1, attr); if (attr) { g_model.toplcdTimer = checkIncDec(event, g_model.toplcdTimer, 0, TIMERS-1, EE_MODEL); } diff --git a/radio/src/gui/taranis/menu_model_telemetry.cpp b/radio/src/gui/taranis/menu_model_telemetry.cpp index d3ba4c540..131518d58 100644 --- a/radio/src/gui/taranis/menu_model_telemetry.cpp +++ b/radio/src/gui/taranis/menu_model_telemetry.cpp @@ -204,7 +204,7 @@ void menuModelSensor(uint8_t event) { TelemetrySensor * sensor = &g_model.telemetrySensors[s_currIdx]; - putsStrIdx(PSIZE(TR_MENUSENSOR)*FW+FW, 0, STR_SENSOR, s_currIdx+1); + drawStringWithIndex(PSIZE(TR_MENUSENSOR)*FW+FW, 0, STR_SENSOR, s_currIdx+1); putsTelemetryChannelValue(32*FW, 0, s_currIdx, getValue(MIXSRC_FIRST_TELEM+3*s_currIdx)); lcdDrawFilledRect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); @@ -389,7 +389,7 @@ void menuModelSensor(uint8_t event) case SENSOR_FIELD_PARAM4: { - putsStrIdx(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1); + drawStringWithIndex(0, y, NO_INDENT(STR_SOURCE), k-SENSOR_FIELD_PARAM1+1); int8_t & source = sensor->calc.sources[k-SENSOR_FIELD_PARAM1]; if (attr) { source = checkIncDec(event, source, -MAX_SENSORS, MAX_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable); @@ -688,7 +688,7 @@ void menuModelTelemetry(uint8_t event) case ITEM_TELEMETRY_SCREEN_LABEL4: { uint8_t screenIndex = TELEMETRY_CURRENT_SCREEN(k); - putsStrIdx(0*FW, y, STR_SCREEN, screenIndex+1); + drawStringWithIndex(0*FW, y, STR_SCREEN, screenIndex+1); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType newScreenType = (TelemetryScreenType)selectMenuItem(TELEM_SCRTYPE_COL, y, PSTR(""), STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event); if (newScreenType != oldScreenType) { diff --git a/radio/src/gui/taranis/view_main.cpp b/radio/src/gui/taranis/view_main.cpp index 24e50e5a0..3fa688b54 100644 --- a/radio/src/gui/taranis/view_main.cpp +++ b/radio/src/gui/taranis/view_main.cpp @@ -576,7 +576,7 @@ void menuMainView(uint8_t event) gvarDisplayTimer--; lcdDrawFilledRect(BITMAP_X, BITMAP_Y, 64, 32, SOLID, ERASE); lcdDrawRect(BITMAP_X, BITMAP_Y, 64, 32); - putsStrIdx(BITMAP_X+FW, BITMAP_Y+FH-1, STR_GV, gvarLastChanged+1); + drawStringWithIndex(BITMAP_X+FW, BITMAP_Y+FH-1, STR_GV, gvarLastChanged+1); lcdDrawSizedText(BITMAP_X+4*FW+FW/2, BITMAP_Y+FH-1, g_model.gvars[gvarLastChanged].name, LEN_GVAR_NAME, ZCHAR); lcdDrawText(BITMAP_X+FW, BITMAP_Y+2*FH+3, PSTR("["), BOLD); drawGVarValue(BITMAP_X+2*FW, BITMAP_Y+2*FH+3, gvarLastChanged, GVAR_VALUE(gvarLastChanged, getGVarFlightMode(mixerCurrentFlightMode, gvarLastChanged)), LEFT|BOLD); diff --git a/radio/src/gui/taranis/view_statistics.cpp b/radio/src/gui/taranis/view_statistics.cpp index 9e44c86ff..f336518c1 100644 --- a/radio/src/gui/taranis/view_statistics.cpp +++ b/radio/src/gui/taranis/view_statistics.cpp @@ -61,7 +61,7 @@ void menuStatisticsView(uint8_t event) // Timers for (int i=0; i 3600) putsTimer(STATS_3RD_COLUMN + STATS_LABEL_WIDTH, FH*i+1, timersStates[i].val, TIMEHOUR, 0); else diff --git a/radio/src/gui/taranis/view_telemetry.cpp b/radio/src/gui/taranis/view_telemetry.cpp index a8bbc4cb3..ff3b537b3 100644 --- a/radio/src/gui/taranis/view_telemetry.cpp +++ b/radio/src/gui/taranis/view_telemetry.cpp @@ -127,7 +127,7 @@ bool displayNumbersTelemetryScreen(FrSkyScreenData & screen) LcdFlags att = (i==3 ? NO_UNIT : DBLSIZE|NO_UNIT); if (field >= MIXSRC_FIRST_TIMER && field <= MIXSRC_LAST_TIMER && i!=3) { // there is not enough space on LCD for displaying "Tmr1" or "Tmr2" and still see the - sign, we write "T1" or "T2" instead - putsStrIdx(pos[j], 1+FH+2*FH*i, "T", field-MIXSRC_FIRST_TIMER+1, 0); + drawStringWithIndex(pos[j], 1+FH+2*FH*i, "T", field-MIXSRC_FIRST_TIMER+1, 0); if (timersStates[field-MIXSRC_FIRST_TIMER].val > 3600) { att += TIMEHOUR - DBLSIZE; x -= 3*FW; diff --git a/radio/src/gui/taranis/widgets.cpp b/radio/src/gui/taranis/widgets.cpp index 9d7ec3013..e8932e3e6 100644 --- a/radio/src/gui/taranis/widgets.cpp +++ b/radio/src/gui/taranis/widgets.cpp @@ -165,7 +165,7 @@ void drawGVarName(coord_t x, coord_t y, int8_t index, LcdFlags flags) if (ZEXIST(g_model.gvars[index].name)) lcdDrawSizedText(x, y, g_model.gvars[index].name, LEN_GVAR_NAME, ZCHAR|flags); else - putsStrIdx(x, y, STR_GV, index+1, flags); + drawStringWithIndex(x, y, STR_GV, index+1, flags); } void drawGVarValue(coord_t x, coord_t y, uint8_t gvar, gvar_t value, LcdFlags flags) diff --git a/radio/src/tests/lcd.cpp b/radio/src/tests/lcd.cpp index 14a132927..751ed6317 100644 --- a/radio/src/tests/lcd.cpp +++ b/radio/src/tests/lcd.cpp @@ -182,11 +182,11 @@ TEST(Lcd, DblsizeBottomRight) } #if defined(CPUARM) -TEST(Lcd, Smlsize_putsStrIdx) +TEST(Lcd, Smlsize_drawStringWithIndex) { lcdClear(); - putsStrIdx(0, 0, "FM", 0, SMLSIZE); - EXPECT_TRUE(checkScreenshot("smlsize_putsstridx")); + drawStringWithIndex(0, 0, "FM", 0, SMLSIZE); + EXPECT_TRUE(checkScreenshot("smlsize_drawStringWithIndex")); } #endif