fix: Display FS switch names and symbol (#1804)

This commit is contained in:
Batambatam
2022-04-05 21:17:28 +10:00
committed by GitHub
parent c8e9ca0a32
commit 9d27a6923c
2 changed files with 62 additions and 13 deletions
+31 -5
View File
@@ -730,14 +730,40 @@ void drawSource(coord_t x, coord_t y, uint32_t idx, LcdFlags att)
}
}
else if (idx >= MIXSRC_FIRST_SWITCH && idx <= MIXSRC_LAST_SWITCH) {
idx = idx-MIXSRC_FIRST_SWITCH;
if (ZEXIST(g_eeGeneral.switchNames[idx])) {
lcdDrawChar(x, y, '\212', att); //switch symbol
lcdDrawSizedText(lcdNextPos, y, g_eeGeneral.switchNames[idx], LEN_SWITCH_NAME, att);
#if defined(FUNCTION_SWITCHES)
if(idx >= MIXSRC_FIRST_FS_SWITCH) {
idx = idx-(MIXSRC_FIRST_SWITCH+NUM_REGULAR_SWITCHES);
if (ZEXIST(g_model.switchNames[idx])) {
lcdDrawChar(x, y, '\214', att); //switch symbol
lcdDrawSizedText(lcdNextPos, y, g_model.switchNames[idx], LEN_SWITCH_NAME, att);
}
else {
char s[LEN_SWITCH_NAME] = {'S', 'W'};
s[LEN_SWITCH_NAME-1] = '1' + idx;
lcdDrawChar(x, y, '\214', att); //switch symbol
lcdDrawSizedText(lcdNextPos, y, s, LEN_SWITCH_NAME, att);
}
}
else {
lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx + MIXSRC_FIRST_SWITCH - MIXSRC_Rud + 1, att);
idx = idx-MIXSRC_FIRST_SWITCH;
if (ZEXIST(g_eeGeneral.switchNames[idx])) {
lcdDrawChar(x, y, '\214', att); //switch symbol
lcdDrawSizedText(lcdNextPos, y, g_eeGeneral.switchNames[idx], LEN_SWITCH_NAME, att);
}
else
lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx + MIXSRC_FIRST_SWITCH - MIXSRC_Rud + 1, att);
}
#else
idx = idx-MIXSRC_FIRST_SWITCH;
if (ZEXIST(g_eeGeneral.switchNames[idx])) {
lcdDrawChar(x, y, '\214', att); //switch symbol
lcdDrawSizedText(lcdNextPos, y, g_eeGeneral.switchNames[idx], LEN_SWITCH_NAME, att);
}
else
lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx + MIXSRC_FIRST_SWITCH - MIXSRC_Rud + 1, att);
#endif
}
else if (idx < MIXSRC_SW1)
lcdDrawTextAtIndex(x, y, STR_VSRCRAW, idx-MIXSRC_Rud+1, att);
+31 -8
View File
@@ -470,13 +470,21 @@ char *getSwitchName(char *dest, swsrc_t idx)
if (g_eeGeneral.switchNames[swinfo.quot][0] != '\0') {
dest =
strAppend(dest, g_eeGeneral.switchNames[swinfo.quot], LEN_SWITCH_NAME);
} else {
#if defined(FUNCTIONS_SWITCHES)
}
else {
#if defined(FUNCTION_SWITCHES)
if (swinfo.quot >= NUM_REGULAR_SWITCHES) {
*dest++ = 'W';
*dest++ = '1' + swinfo.quot - 4;
int fsIdx = swinfo.quot - NUM_REGULAR_SWITCHES;
if(ZEXIST(g_model.switchNames[fsIdx])){
dest = strAppend(dest, g_model.switchNames[fsIdx], LEN_SWITCH_NAME);
}
else {
*dest++ = 'S';
*dest++ = 'W';
*dest++ = '1' + swinfo.quot - 4;
}
return dest;
}
}
#endif
*dest++ = 'S';
*dest++ = getRawSwitchFromIdx(swinfo.quot);
@@ -503,9 +511,24 @@ char *getSwitchPositionName(char *dest, swsrc_t idx)
(IDX_TRIMS_IN_STR_VSWITCHES + SWSRC_LAST_TRIM - SWSRC_FIRST_TRIM + 1)
if (idx <= SWSRC_LAST_SWITCH) {
div_t swinfo = switchInfo(idx);
s = getSwitchName(s, idx);
*s++ = (STR_CHAR_UP "-" STR_CHAR_DOWN)[swinfo.rem];
*s = '\0';
#if defined(FUNCTION_SWITCHES)
if (idx >= SWSRC_FIRST_FUNCTION_SWITCH && idx <= (SWSRC_FIRST_FUNCTION_SWITCH + NUM_FUNCTIONS_SWITCHES)) {
s = getSwitchName(s, idx);
*s++ = (STR_CHAR_UP "-" STR_CHAR_DOWN)[swinfo.rem];
*s = '\0';
}
else {
s = getSwitchName(s, idx);
*s++ = (STR_CHAR_UP "-" STR_CHAR_DOWN)[swinfo.rem];
*s = '\0';
}
#else
s = getSwitchName(s, idx);
*s++ = (STR_CHAR_UP "-" STR_CHAR_DOWN)[swinfo.rem];
*s = '\0';
#endif
}
#if NUM_XPOTS > 0