feat: More rotary encoder options for B&W screens (see #2045)
* First build * Fix X9 * Update api_general.cpp * Update translations.h * clean up translations * fix: B&W option handling, remove magic numbers, cleanup - Remove references to invertRotary, change to RotEncDir or similar - Add compatabilty importing to companion, firmware - Rename Lua API call - Move magic numbers to enum - Improve B&W option handling so it doesn't apply changes while in menu * chore: yaml regen * fix: Add missing guards for X9D/X9D+ * fix: Wrong enum name in simu * fix(cpn): Use correct names for UI elements * fix: Translations * fix: Allow `rotEncMode` in all yaml due to x9d var Of the three X9D variants, the X9D+2019 is the only one that has a rotary encoder as standard. However, as the base config file is for the X9D, this meant it wasn't reading or writing the config value. Rather than add a seperate config file for it for a single variable, simple to just allow it across all targets. * fix: Companion string, change colorlcd to `Choice` Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
co-authored by
Peter Feerick
parent
5752cf4061
commit
62692dba6a
@@ -95,7 +95,7 @@ enum MenuRadioSetupItems {
|
||||
ITEM_RADIO_SETUP_SWITCHES_DELAY,
|
||||
ITEM_RADIO_SETUP_USB_MODE,
|
||||
ITEM_RADIO_SETUP_RX_CHANNEL_ORD,
|
||||
CASE_ROTARY_ENCODER(ITEM_RADIO_SETUP_ROTARY_INVERSE)
|
||||
CASE_ROTARY_ENCODER(ITEM_RADIO_SETUP_ROTARY_ENC_MODE)
|
||||
ITEM_RADIO_SETUP_STICK_MODE_LABELS,
|
||||
ITEM_RADIO_SETUP_STICK_MODE,
|
||||
ITEM_RADIO_SETUP_MAX
|
||||
@@ -124,7 +124,7 @@ void menuRadioSetup(event_t event)
|
||||
#endif
|
||||
|
||||
uint8_t old_editMode = s_editMode;
|
||||
|
||||
|
||||
MENU(STR_RADIO_SETUP, menuTabGeneral, MENU_RADIO_SETUP, ITEM_RADIO_SETUP_MAX, {
|
||||
2, // date
|
||||
2, // time
|
||||
@@ -183,6 +183,9 @@ void menuRadioSetup(event_t event)
|
||||
|
||||
if (event == EVT_ENTRY) {
|
||||
reusableBuffer.generalSettings.stickMode = g_eeGeneral.stickMode;
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
reusableBuffer.generalSettings.rotaryEncoderMode = g_eeGeneral.rotEncMode;
|
||||
#endif
|
||||
}
|
||||
|
||||
int sub = menuVerticalPosition;
|
||||
@@ -591,8 +594,21 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
case ITEM_RADIO_SETUP_ROTARY_INVERSE:
|
||||
g_eeGeneral.rotEncDirection = editCheckBox(g_eeGeneral.rotEncDirection, RADIO_SETUP_2ND_COLUMN, y, STR_INVERT_ROTARY, attr, event);
|
||||
case ITEM_RADIO_SETUP_ROTARY_ENC_MODE:
|
||||
lcdDrawTextAlignedLeft(y, STR_ROTARY_ENC_MODE);
|
||||
lcdDrawTextAtIndex(RADIO_SETUP_2ND_COLUMN, y, STR_ROTARY_ENC_OPT,
|
||||
reusableBuffer.generalSettings.rotaryEncoderMode,
|
||||
attr);
|
||||
if (attr && s_editMode > 0) {
|
||||
CHECK_INCDEC_GENVAR(event,
|
||||
reusableBuffer.generalSettings.rotaryEncoderMode,
|
||||
ROTARY_ENCODER_MODE_NORMAL,
|
||||
ROTARY_ENCODER_MODE_INVERT_VERT_HORZ_ALT);
|
||||
} else if (reusableBuffer.generalSettings.rotaryEncoderMode !=
|
||||
g_eeGeneral.rotEncMode) {
|
||||
g_eeGeneral.rotEncMode =
|
||||
reusableBuffer.generalSettings.rotaryEncoderMode;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user