Skip to content

Commit 65e0508

Browse files
authored
feat(bw128): add option to invert LCD/OLED display (#4933)
1 parent fb2188c commit 65e0508

15 files changed

+269
-185
lines changed

companion/src/firmwares/edgetx/yaml_generalsettings.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
261261
node["labelSingleSelect"] = rhs.labelSingleSelect;
262262
node["labelMultiMode"] = rhs.labelMultiMode;
263263
node["favMultiMode"] = rhs.favMultiMode;
264+
} else if (fw->getCapability(LcdWidth) == 128) {
265+
node["invertLCD"] = (int)rhs.invertLCD;
264266
}
265267

266268
Node serialPort;
@@ -513,6 +515,7 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
513515
node["backgroundVolume"] >> ioffset_int(rhs.backgroundVolume, 2);
514516
node["modelQuickSelect"] >> rhs.modelQuickSelect;
515517
node["dontPlayHello"] >> rhs.dontPlayHello;
518+
node["invertLCD"] >> rhs.invertLCD;
516519

517520
// depreciated v2.7 replaced by serialPort
518521
if (node["auxSerialMode"]) {

companion/src/firmwares/generalsettings.h

+2
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,8 @@ class GeneralSettings {
318318
int labelMultiMode;
319319
int favMultiMode;
320320

321+
bool invertLCD;
322+
321323
// v 2.10 ADC refactor
322324
// earlier version data is read into legacy structs to maintain older version compatibility
323325
// post reading the legacy structs are manipulated into the new structs

companion/src/generaledit/generalsetup.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,13 @@ void GeneralSetupPanel::setValues()
533533
ui->label_favMultiMode->hide();
534534
ui->favMultiMode_CB->hide();
535535
}
536+
537+
if (firmware->getCapability(LcdWidth) == 128) {
538+
ui->invertLCD_CB->setChecked(generalSettings.invertLCD);
539+
} else {
540+
ui->invertLCD_label->hide();
541+
ui->invertLCD_CB->hide();
542+
}
536543
}
537544

538545
void GeneralSetupPanel::showLabelSelectOptions()
@@ -928,3 +935,9 @@ void GeneralSetupPanel::on_startSoundCB_stateChanged(int)
928935
generalSettings.dontPlayHello = !ui->startSoundCB->isChecked();
929936
emit modified();
930937
}
938+
939+
void GeneralSetupPanel::on_invertLCD_CB_stateChanged(int)
940+
{
941+
generalSettings.invertLCD = ui->invertLCD_CB->isChecked();
942+
emit modified();
943+
}

companion/src/generaledit/generalsetup.h

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ class GeneralSetupPanel : public GeneralPanel
100100
void on_labelSingleSelect_CB_currentIndexChanged(int);
101101
void on_labelMultiMode_CB_currentIndexChanged(int);
102102
void on_favMultiMode_CB_currentIndexChanged(int);
103+
void on_invertLCD_CB_stateChanged(int);
103104

104105
private:
105106
Ui::GeneralSetup *ui;

0 commit comments

Comments
 (0)