feat(bw128): add option to invert LCD/OLED display (#4933)
This commit is contained in:
@@ -261,6 +261,8 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
|
||||
node["labelSingleSelect"] = rhs.labelSingleSelect;
|
||||
node["labelMultiMode"] = rhs.labelMultiMode;
|
||||
node["favMultiMode"] = rhs.favMultiMode;
|
||||
} else if (fw->getCapability(LcdWidth) == 128) {
|
||||
node["invertLCD"] = (int)rhs.invertLCD;
|
||||
}
|
||||
|
||||
Node serialPort;
|
||||
@@ -513,6 +515,7 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
|
||||
node["backgroundVolume"] >> ioffset_int(rhs.backgroundVolume, 2);
|
||||
node["modelQuickSelect"] >> rhs.modelQuickSelect;
|
||||
node["dontPlayHello"] >> rhs.dontPlayHello;
|
||||
node["invertLCD"] >> rhs.invertLCD;
|
||||
|
||||
// depreciated v2.7 replaced by serialPort
|
||||
if (node["auxSerialMode"]) {
|
||||
|
||||
@@ -318,6 +318,8 @@ class GeneralSettings {
|
||||
int labelMultiMode;
|
||||
int favMultiMode;
|
||||
|
||||
bool invertLCD;
|
||||
|
||||
// v 2.10 ADC refactor
|
||||
// earlier version data is read into legacy structs to maintain older version compatibility
|
||||
// post reading the legacy structs are manipulated into the new structs
|
||||
|
||||
@@ -533,6 +533,13 @@ void GeneralSetupPanel::setValues()
|
||||
ui->label_favMultiMode->hide();
|
||||
ui->favMultiMode_CB->hide();
|
||||
}
|
||||
|
||||
if (firmware->getCapability(LcdWidth) == 128) {
|
||||
ui->invertLCD_CB->setChecked(generalSettings.invertLCD);
|
||||
} else {
|
||||
ui->invertLCD_label->hide();
|
||||
ui->invertLCD_CB->hide();
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::showLabelSelectOptions()
|
||||
@@ -928,3 +935,9 @@ void GeneralSetupPanel::on_startSoundCB_stateChanged(int)
|
||||
generalSettings.dontPlayHello = !ui->startSoundCB->isChecked();
|
||||
emit modified();
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_invertLCD_CB_stateChanged(int)
|
||||
{
|
||||
generalSettings.invertLCD = ui->invertLCD_CB->isChecked();
|
||||
emit modified();
|
||||
}
|
||||
|
||||
@@ -100,6 +100,7 @@ class GeneralSetupPanel : public GeneralPanel
|
||||
void on_labelSingleSelect_CB_currentIndexChanged(int);
|
||||
void on_labelMultiMode_CB_currentIndexChanged(int);
|
||||
void on_favMultiMode_CB_currentIndexChanged(int);
|
||||
void on_invertLCD_CB_stateChanged(int);
|
||||
|
||||
private:
|
||||
Ui::GeneralSetup *ui;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>858</width>
|
||||
<height>992</height>
|
||||
<height>1018</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -554,105 +554,13 @@
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<layout class="QGridLayout" name="gridLayout_3" columnstretch="0,0">
|
||||
<item row="24" column="0">
|
||||
<widget class="QLabel" name="label_labelSingleSelect">
|
||||
<item row="21" column="1">
|
||||
<widget class="QComboBox" name="voiceLang_CB"/>
|
||||
</item>
|
||||
<item row="21" column="0">
|
||||
<widget class="QLabel" name="VoiceLang_label">
|
||||
<property name="text">
|
||||
<string>Label selection mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="0">
|
||||
<widget class="QLabel" name="label_labelMultiMode">
|
||||
<property name="text">
|
||||
<string>Label matching</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_OFFBright">
|
||||
<property name="text">
|
||||
<string>Backlight OFF Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="volume_SB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>23</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="1">
|
||||
<widget class="QComboBox" name="modelSelectLayout_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Large image (2 columns)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Small image (3 columns)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Name only (2 columns)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Name only (1 column)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="soundModeCB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Beeper</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Speaker</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>BeeperVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SpeakerVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stick reverse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="1">
|
||||
<widget class="QLineEdit" name="registrationId">
|
||||
<property name="maxLength">
|
||||
<number>8</number>
|
||||
<string>Voice Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -752,23 +660,122 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="18" column="0">
|
||||
<item row="26" column="0">
|
||||
<widget class="QLabel" name="label_labelSingleSelect">
|
||||
<property name="text">
|
||||
<string>Label selection mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="0">
|
||||
<widget class="QLabel" name="label_labelMultiMode">
|
||||
<property name="text">
|
||||
<string>Label matching</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="label_OFFBright">
|
||||
<property name="text">
|
||||
<string>Backlight OFF Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="volume_SB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>23</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="1">
|
||||
<widget class="QComboBox" name="modelSelectLayout_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Large image (2 columns)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Small image (3 columns)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Name only (2 columns)</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Name only (1 column)</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="soundModeCB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Beeper</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Speaker</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>BeeperVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SpeakerVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stick reverse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="1">
|
||||
<widget class="QLineEdit" name="registrationId">
|
||||
<property name="maxLength">
|
||||
<number>8</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<widget class="QLabel" name="label_timezone">
|
||||
<property name="text">
|
||||
<string>Timeshift from UTC</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="VoiceLang_label">
|
||||
<item row="15" column="1">
|
||||
<widget class="QCheckBox" name="keysBl_ChkB">
|
||||
<property name="text">
|
||||
<string>Voice Language</string>
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="1">
|
||||
<widget class="QComboBox" name="voiceLang_CB"/>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="blAlarm_LB">
|
||||
<property name="text">
|
||||
@@ -776,13 +783,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QCheckBox" name="keysBl_ChkB">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_BLBright">
|
||||
<property name="text">
|
||||
@@ -790,13 +790,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="varioR0_label">
|
||||
<property name="text">
|
||||
<string>Vario repeat at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="varioPMax_label">
|
||||
<property name="text">
|
||||
@@ -804,13 +797,54 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="0">
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="varioR0_label">
|
||||
<property name="text">
|
||||
<string>Vario repeat at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="0">
|
||||
<widget class="QLabel" name="label_modelSelectLayout">
|
||||
<property name="text">
|
||||
<string>Manage Models layout</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QComboBox" name="re_CB"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_volume">
|
||||
<property name="text">
|
||||
<string>Speaker Volume</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="0">
|
||||
<widget class="QLabel" name="label_registrationId">
|
||||
<property name="text">
|
||||
<string>Owner Registration ID</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="0">
|
||||
<widget class="QLabel" name="rotEncMode_label">
|
||||
<property name="text">
|
||||
<string>Rotary Encoder Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="23" column="1">
|
||||
<widget class="QComboBox" name="rotEncMode_CB"/>
|
||||
</item>
|
||||
<item row="24" column="0">
|
||||
<widget class="QLabel" name="label_modelQuickSelect">
|
||||
<property name="text">
|
||||
<string>Model quick select</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="speakerPitchSB">
|
||||
<property name="toolTip">
|
||||
@@ -838,41 +872,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_volume">
|
||||
<property name="text">
|
||||
<string>Speaker Volume</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<widget class="QLabel" name="label_registrationId">
|
||||
<property name="text">
|
||||
<string>Owner Registration ID</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QComboBox" name="re_CB"/>
|
||||
</item>
|
||||
<item row="21" column="0">
|
||||
<widget class="QLabel" name="rotEncMode_label">
|
||||
<property name="text">
|
||||
<string>Rotary Encoder Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="21" column="1">
|
||||
<widget class="QComboBox" name="rotEncMode_CB"/>
|
||||
</item>
|
||||
<item row="22" column="0">
|
||||
<widget class="QLabel" name="label_modelQuickSelect">
|
||||
<property name="text">
|
||||
<string>Model quick select</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="22" column="1">
|
||||
<item row="24" column="1">
|
||||
<widget class="QCheckBox" name="modelQuickSelect_CB">
|
||||
<property name="toolTip">
|
||||
<string>Enable this to quickly change model on the model select page (a long press can then be used to open the model edit menu).</string>
|
||||
@@ -882,7 +882,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="27" column="0">
|
||||
<item row="29" column="0">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
@@ -895,7 +895,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="17" column="1">
|
||||
<item row="19" column="1">
|
||||
<widget class="QComboBox" name="countrycode_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
@@ -933,20 +933,6 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="varioP0_label">
|
||||
<property name="text">
|
||||
<string>Vario pitch at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="re_label">
|
||||
<property name="text">
|
||||
<string>RotEnc Navigation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="varioP0_SB">
|
||||
<property name="suffix">
|
||||
@@ -966,7 +952,21 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="1">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="varioP0_label">
|
||||
<property name="text">
|
||||
<string>Vario pitch at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="re_label">
|
||||
<property name="text">
|
||||
<string>RotEnc Navigation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse1">
|
||||
@@ -1016,7 +1016,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="countrycode_label">
|
||||
<property name="text">
|
||||
<string>Country Code</string>
|
||||
@@ -1058,7 +1058,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="18" column="1">
|
||||
<item row="20" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="TimezoneEdit" name="timezoneLE"/>
|
||||
@@ -1092,7 +1092,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<item row="18" column="0">
|
||||
<widget class="QLabel" name="label_faimode">
|
||||
<property name="text">
|
||||
<string>FAI Mode</string>
|
||||
@@ -1118,7 +1118,7 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<item row="18" column="1">
|
||||
<widget class="QCheckBox" name="faimode_CB">
|
||||
<property name="toolTip">
|
||||
<string>If you enable FAI, only RSSI and RxBt sensors will keep working. This function cannot be disabled by the radio.</string>
|
||||
@@ -1128,14 +1128,14 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="backlightColor_label">
|
||||
<property name="text">
|
||||
<string>Backlight color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="12" column="1">
|
||||
<item row="13" column="1">
|
||||
<layout class="QHBoxLayout" name="backlightColor_Layout">
|
||||
<item>
|
||||
<widget class="QLabel" name="backlightColor1_label">
|
||||
@@ -1187,14 +1187,14 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="label_KeysBl">
|
||||
<property name="text">
|
||||
<string>Keys Backlight</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<item row="12" column="1">
|
||||
<widget class="QSpinBox" name="OFFBright_SB">
|
||||
<property name="minimum">
|
||||
<number>5</number>
|
||||
@@ -1204,14 +1204,14 @@ p, li { white-space: pre-wrap; }
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="0">
|
||||
<item row="28" column="0">
|
||||
<widget class="QLabel" name="label_favMultiMode">
|
||||
<property name="text">
|
||||
<string>Favorites matching</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="24" column="1">
|
||||
<item row="26" column="1">
|
||||
<widget class="QComboBox" name="labelSingleSelect_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
@@ -1225,7 +1225,7 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="25" column="1">
|
||||
<item row="27" column="1">
|
||||
<widget class="QComboBox" name="labelMultiMode_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
@@ -1239,7 +1239,7 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="26" column="1">
|
||||
<item row="28" column="1">
|
||||
<widget class="QComboBox" name="favMultiMode_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
@@ -1253,6 +1253,20 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="invertLCD_label">
|
||||
<property name="text">
|
||||
<string>Invert LCD</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QCheckBox" name="invertLCD_CB">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
|
||||
@@ -979,8 +979,11 @@ PACK(struct RadioData {
|
||||
|
||||
#if defined(COLORLCD)
|
||||
NOBACKUP(uint8_t space:7 SKIP);
|
||||
#elif LCD_W == 128
|
||||
uint8_t invertLCD:1; // Invert B&W LCD display
|
||||
NOBACKUP(uint8_t spare:4 SKIP);
|
||||
#else
|
||||
NOBACKUP(uint8_t space:5 SKIP);
|
||||
NOBACKUP(uint8_t spare:5 SKIP);
|
||||
#endif
|
||||
|
||||
NOBACKUP(uint8_t getBrightness() const
|
||||
|
||||
@@ -80,6 +80,10 @@ enum {
|
||||
ITEM_RADIO_HARDWARE_JITTER_FILTER,
|
||||
ITEM_RADIO_HARDWARE_RAS,
|
||||
ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER,
|
||||
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
|
||||
ITEM_RADIO_HARDWARE_SCREEN_LABEL,
|
||||
ITEM_RADIO_HARDWARE_SCREEN_INVERT,
|
||||
#endif
|
||||
ITEM_RADIO_HARDWARE_DEBUG,
|
||||
#if defined(FUNCTION_SWITCHES)
|
||||
ITEM_RADIO_HARDWARE_DEBUG_FS,
|
||||
@@ -211,6 +215,11 @@ static void _init_menu_tab_array(uint8_t* tab, size_t len)
|
||||
tab[ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER] = HIDDEN_ROW;
|
||||
}
|
||||
|
||||
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
|
||||
tab[ITEM_RADIO_HARDWARE_SCREEN_LABEL] = READONLY_ROW;
|
||||
tab[ITEM_RADIO_HARDWARE_SCREEN_INVERT] = 0;
|
||||
#endif
|
||||
|
||||
tab[ITEM_RADIO_HARDWARE_DEBUG] = 1;
|
||||
#if defined(FUNCTION_SWITCHES)
|
||||
tab[ITEM_RADIO_HARDWARE_DEBUG_FS] = 0;
|
||||
@@ -425,6 +434,21 @@ void menuRadioHardware(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
|
||||
case ITEM_RADIO_HARDWARE_SCREEN_LABEL:
|
||||
lcdDrawTextAlignedLeft(y, STR_SCREEN);
|
||||
break;
|
||||
case ITEM_RADIO_HARDWARE_SCREEN_INVERT:
|
||||
{
|
||||
lcdDrawText(INDENT_WIDTH, y, STR_MENU_INVERT);
|
||||
bool inv = g_eeGeneral.invertLCD;
|
||||
g_eeGeneral.invertLCD = editCheckBox(g_eeGeneral.invertLCD, HW_SETTINGS_COLUMN2, y, nullptr, attr, event);
|
||||
if (inv != g_eeGeneral.invertLCD)
|
||||
lcdSetInvert(g_eeGeneral.invertLCD);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_HARDWARE_DEBUG:
|
||||
lcdDrawTextAlignedLeft(y, STR_DEBUG);
|
||||
lcdDrawText(HW_SETTINGS_COLUMN2, y, STR_ANALOGS_BTN, menuHorizontalPosition == 0 ? attr : 0);
|
||||
|
||||
@@ -611,5 +611,9 @@ const char * restoreModel(uint8_t idx, char *model_name)
|
||||
bool storageReadRadioSettings(bool checks)
|
||||
{
|
||||
if (!sdMounted()) sdInit();
|
||||
return loadRadioSettingsYaml(checks) == nullptr;
|
||||
bool rv = loadRadioSettingsYaml(checks) == nullptr;
|
||||
#if LCD_W == 128
|
||||
lcdSetInvert(g_eeGeneral.invertLCD);
|
||||
#endif
|
||||
return rv;
|
||||
}
|
||||
|
||||
@@ -358,7 +358,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_unsigned_8[] = {
|
||||
|
||||
@@ -358,7 +358,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_unsigned_8[] = {
|
||||
|
||||
@@ -358,7 +358,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_unsigned_8[] = {
|
||||
|
||||
@@ -361,7 +361,8 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 4 ),
|
||||
YAML_END
|
||||
};
|
||||
static const struct YamlNode struct_unsigned_8[] = {
|
||||
|
||||
@@ -426,6 +426,12 @@ void lcdSetRefVolt(uint8_t val)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if LCD_W == 128
|
||||
void lcdSetInvert(bool invert)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
void boardInit()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -371,6 +371,9 @@ void lcdRefresh();
|
||||
void lcdRefresh(bool wait=true); // TODO uint8_t wait to simplify this
|
||||
#endif
|
||||
void lcdSetRefVolt(unsigned char val);
|
||||
#if LCD_W == 128
|
||||
void lcdSetInvert(bool invert);
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
void lcdSetContrast(bool useDefault = false);
|
||||
#endif
|
||||
|
||||
@@ -411,3 +411,10 @@ void lcdSetRefVolt(uint8_t val)
|
||||
lcdWriteCommand(0x81); // Set Vop
|
||||
lcdWriteCommand(val+LCD_CONTRAST_OFFSET); // 0-255
|
||||
}
|
||||
|
||||
#if LCD_W == 128
|
||||
void lcdSetInvert(bool invert)
|
||||
{
|
||||
lcdWriteCommand(invert ? 0xA7 : 0xA6);
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user