feat: simple global control for backlight/brightness and volume (#6684)
This commit is contained in:
@@ -667,6 +667,62 @@ void FlexSwitchesItemModel::update(const int event)
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// ControlSourceItemModel
|
||||
//
|
||||
|
||||
ControlSourceItemModel::ControlSourceItemModel(const GeneralSettings * const generalSettings, const ModelData * const modelData,
|
||||
Firmware * firmware, const Boards * const board, const Board::Type boardType) :
|
||||
AbstractDynamicItemModel(generalSettings, modelData, firmware, board, boardType)
|
||||
{
|
||||
setId(IMID_ControlSource);
|
||||
setUpdateMask(IMUE_Hardware);
|
||||
|
||||
// Descending source direction: inverted (!) sources
|
||||
addItems(SOURCE_TYPE_SWITCH, -board->getCapability(Board::Switches));
|
||||
addItems(SOURCE_TYPE_INPUT, -board->getCapability(Board::Inputs), -board->getCapability(Board::Sticks));
|
||||
|
||||
// Ascending source direction (including zero)
|
||||
addItems(SOURCE_TYPE_NONE, 1);
|
||||
addItems(SOURCE_TYPE_INPUT, board->getCapability(Board::Inputs), board->getCapability(Board::Sticks));
|
||||
addItems(SOURCE_TYPE_SWITCH, board->getCapability(Board::Switches));
|
||||
}
|
||||
|
||||
void ControlSourceItemModel::setDynamicItemData(QStandardItem * item, const RawSource & src) const
|
||||
{
|
||||
item->setText(src.toString(modelData, generalSettings, boardType));
|
||||
item->setData(src.isAvailable(modelData, generalSettings, boardType, RawSource::AVAILABLE_CONTROLSRC), IMDR_Available);
|
||||
}
|
||||
|
||||
void ControlSourceItemModel::addItems(const RawSourceType & type, int count, const int start)
|
||||
{
|
||||
const int idxAdj = (type == SOURCE_TYPE_NONE ? -1 : 0);
|
||||
|
||||
int first = start + count < 0 ? start + count : start + 1;
|
||||
int last = start + count < 0 ? start : start + count + 1;
|
||||
|
||||
for (int i = first; i < last; ++i) {
|
||||
const RawSource src = RawSource(type, i + idxAdj);
|
||||
QStandardItem * modelItem = new QStandardItem();
|
||||
modelItem->setData(src.toValue(), IMDR_Id);
|
||||
modelItem->setData(type, IMDR_Type);
|
||||
setDynamicItemData(modelItem, src);
|
||||
appendRow(modelItem);
|
||||
}
|
||||
}
|
||||
|
||||
void ControlSourceItemModel::update(const int event)
|
||||
{
|
||||
if (doUpdate(event)) {
|
||||
emit aboutToBeUpdated();
|
||||
|
||||
for (int i = 0; i < rowCount(); ++i)
|
||||
setDynamicItemData(item(i), RawSource(item(i)->data(IMDR_Id).toInt()));
|
||||
|
||||
emit updateComplete();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// CompoundItemModelFactory
|
||||
//
|
||||
@@ -722,6 +778,9 @@ void CompoundItemModelFactory::addItemModel(const int id)
|
||||
case AbstractItemModel::IMID_FlexSwitches:
|
||||
registerItemModel(new FlexSwitchesItemModel(generalSettings, modelData, firmware, board, boardType));
|
||||
break;
|
||||
case AbstractItemModel::IMID_ControlSource:
|
||||
registerItemModel(new ControlSourceItemModel(generalSettings, modelData, firmware, board, boardType));
|
||||
break;
|
||||
default:
|
||||
qDebug() << "Error: unknown item model: id";
|
||||
break;
|
||||
|
||||
@@ -47,6 +47,7 @@ class AbstractItemModel: public QStandardItemModel
|
||||
IMID_CurveRefType,
|
||||
IMID_CurveRefFunc,
|
||||
IMID_FlexSwitches,
|
||||
IMID_ControlSource,
|
||||
IMID_ReservedCount,
|
||||
IMID_Custom
|
||||
};
|
||||
@@ -81,6 +82,7 @@ class AbstractItemModel: public QStandardItemModel
|
||||
IMUE_Timers = 1 << 9,
|
||||
IMUE_Modules = 1 << 10,
|
||||
IMUE_FunctionSwitches = 1 << 11,
|
||||
IMUE_Hardware = 1 << 12,
|
||||
IMUE_All = IMUE_SystemRefresh | IMUE_Channels | IMUE_Curves | IMUE_FlightModes | IMUE_GVars | IMUE_Inputs |
|
||||
IMUE_LogicalSwitches | IMUE_Scripts | IMUE_TeleSensors | IMUE_Timers | IMUE_Modules | IMUE_FunctionSwitches
|
||||
};
|
||||
@@ -349,6 +351,22 @@ class FlexSwitchesItemModel: public AbstractDynamicItemModel
|
||||
virtual void setDynamicItemData(QStandardItem * item, const int value) const;
|
||||
};
|
||||
|
||||
class ControlSourceItemModel: public AbstractDynamicItemModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ControlSourceItemModel(const GeneralSettings * const generalSettings, const ModelData * const modelData,
|
||||
Firmware * firmware, const Boards * const board, const Board::Type boardType);
|
||||
virtual ~ControlSourceItemModel() {};
|
||||
|
||||
public slots:
|
||||
virtual void update(const int event = IMUE_SystemRefresh) override;
|
||||
|
||||
protected:
|
||||
virtual void setDynamicItemData(QStandardItem * item, const RawSource & src) const;
|
||||
void addItems(const RawSourceType & type, int count, const int start = 0);
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// CompoundItemModelFactory
|
||||
|
||||
@@ -752,6 +752,11 @@ bool BoardJson::isInputFlex(const InputDefn & defn)
|
||||
return defn.type == Board::AIT_FLEX;
|
||||
}
|
||||
|
||||
const bool BoardJson::isInputFlexGyroAxis(int index) const
|
||||
{
|
||||
return (index >=0 && index < (int)m_inputs->size()) ? isInputFlexGyroAxis(m_inputs->at(index)) : false;
|
||||
}
|
||||
|
||||
// static
|
||||
bool BoardJson::isInputFlexGyroAxis(const InputDefn & defn)
|
||||
{
|
||||
@@ -761,6 +766,11 @@ bool BoardJson::isInputFlexGyroAxis(const InputDefn & defn)
|
||||
val[0] == 'T' && val[1] == 'I' && val[2] == 'L' && val[3] == 'T' && val[4] == '_' && (val[5] == 'X' || val[5] == 'Y'));
|
||||
}
|
||||
|
||||
const bool BoardJson::isInputFlexJoystickAxis(int index) const
|
||||
{
|
||||
return (index >=0 && index < (int)m_inputs->size()) ? isInputFlexJoystickAxis(m_inputs->at(index)) : false;
|
||||
}
|
||||
|
||||
// static
|
||||
bool BoardJson::isInputFlexJoystickAxis(const InputDefn & defn)
|
||||
{
|
||||
|
||||
@@ -130,6 +130,8 @@ class BoardJson
|
||||
const bool isInputCalibrated(int index) const;
|
||||
const bool isInputConfigurable(int index) const;
|
||||
const bool isInputIgnored(int index) const;
|
||||
const bool isInputFlexGyroAxis(int index) const;
|
||||
const bool isInputFlexJoystickAxis(int index) const;
|
||||
const bool isInputFlexPot(int index) const;
|
||||
const bool isInputFlexSwitch(int index) const;
|
||||
const bool isInputStick(int index) const;
|
||||
|
||||
@@ -1159,6 +1159,11 @@ bool Boards::isInputConfigurable(int index, Board::Type board)
|
||||
return getBoardJson(board)->isInputConfigurable(index);
|
||||
}
|
||||
|
||||
bool Boards::isInputGyroAxis(int index, Board::Type board)
|
||||
{
|
||||
return getBoardJson(board)->isInputFlexGyroAxis(index);
|
||||
}
|
||||
|
||||
bool Boards::isInputIgnored(int index, Board::Type board)
|
||||
{
|
||||
return getBoardJson(board)->isInputIgnored(index);
|
||||
|
||||
@@ -454,6 +454,7 @@ class Boards
|
||||
static bool isInputAvailable(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
static bool isInputCalibrated(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
static bool isInputConfigurable(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
static bool isInputGyroAxis(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
static bool isInputIgnored(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
static bool isInputPot(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
static bool isInputStick(int index, Board::Type board = Board::BOARD_UNKNOWN);
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "yaml_calibdata.h"
|
||||
#include "yaml_switchconfig.h"
|
||||
#include "yaml_moduledata.h"
|
||||
#include "yaml_rawsource.h"
|
||||
|
||||
#include "eeprominterface.h"
|
||||
#include "edgetxinterface.h"
|
||||
@@ -370,6 +371,9 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
|
||||
if (hasColorLcd)
|
||||
node["selectedTheme"] = rhs.selectedTheme;
|
||||
|
||||
node["backlightSrc"] = rhs.backlightSrc;
|
||||
node["volumeSrc"] = rhs.volumeSrc;
|
||||
|
||||
// Radio level tabs control (global settings)
|
||||
if (hasColorLcd)
|
||||
node["radioThemesDisabled"] = (int)rhs.radioThemesDisabled;
|
||||
@@ -694,6 +698,9 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
|
||||
|
||||
node["selectedTheme"] >> rhs.selectedTheme;
|
||||
|
||||
node["backlightSrc"] >> rhs.backlightSrc;
|
||||
node["volumeSrc"] >> rhs.volumeSrc;
|
||||
|
||||
// Radio level tabs control (global settings)
|
||||
node["radioThemesDisabled"] >> rhs.radioThemesDisabled;
|
||||
node["radioGFDisabled"] >> rhs.radioGFDisabled;
|
||||
|
||||
@@ -432,6 +432,11 @@ void GeneralSettings::convert(RadioDataConversionState & cstate)
|
||||
customFn[i].convert(cstate.withComponentIndex(i));
|
||||
}
|
||||
|
||||
cstate.setComponent("");
|
||||
cstate.setSubComp(tr("Backlight Source"));
|
||||
backlightSrc.convert(cstate);
|
||||
cstate.setSubComp(tr("Volume Source"));
|
||||
volumeSrc.convert(cstate);
|
||||
}
|
||||
|
||||
QString GeneralSettings::antennaModeToString() const
|
||||
|
||||
@@ -394,6 +394,9 @@ class GeneralSettings {
|
||||
|
||||
char selectedTheme[SELECTED_THEME_NAME_LEN + 1];
|
||||
|
||||
RawSource backlightSrc;
|
||||
RawSource volumeSrc;
|
||||
|
||||
// Radio level tabs control (global settings)
|
||||
bool radioThemesDisabled;
|
||||
bool radioGFDisabled;
|
||||
|
||||
@@ -280,7 +280,10 @@ bool RawSource::isStick(Board::Type board) const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool RawSource::isAvailable(const ModelData * const model, const GeneralSettings * const gs, Board::Type board) const
|
||||
bool RawSource::isAvailable(const ModelData * const model,
|
||||
const GeneralSettings * const gs,
|
||||
Board::Type board,
|
||||
const int flags) const
|
||||
{
|
||||
if (type == SOURCE_TYPE_NONE && index == 0)
|
||||
return true;
|
||||
@@ -392,6 +395,10 @@ bool RawSource::isAvailable(const ModelData * const model, const GeneralSettings
|
||||
gs->serialPort[GeneralSettings::SP_AUX2] == GeneralSettings::AUX_SERIAL_SPACEMOUSE))))
|
||||
return false;
|
||||
|
||||
if (type == SOURCE_TYPE_INPUT && (flags & AVAILABLE_CONTROLSRC) &&
|
||||
Boards::isInputGyroAxis(abs(index) - 1, board))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -248,6 +248,12 @@ class RawSource {
|
||||
AllSourceGroups = InputSourceGroups | GVarsGroup | TelemGroup | ScriptsGroup
|
||||
};
|
||||
|
||||
// flags to refine isAvailable
|
||||
enum AvailableFlags {
|
||||
AVAILABLE_ALL,
|
||||
AVAILABLE_CONTROLSRC = 0x001
|
||||
};
|
||||
|
||||
RawSource() { clear(); }
|
||||
|
||||
explicit RawSource(int value):
|
||||
@@ -272,7 +278,10 @@ class RawSource {
|
||||
RawSourceRange getRange(const ModelData * model, const GeneralSettings & settings, unsigned int flags=0) const;
|
||||
bool isStick(Board::Type board = Board::BOARD_UNKNOWN) const;
|
||||
bool isTimeBased(Board::Type board = Board::BOARD_UNKNOWN) const;
|
||||
bool isAvailable(const ModelData * const model = nullptr, const GeneralSettings * const gs = nullptr, Board::Type board = Board::BOARD_UNKNOWN) const;
|
||||
bool isAvailable(const ModelData * const model = nullptr,
|
||||
const GeneralSettings * const gs = nullptr,
|
||||
Board::Type board = Board::BOARD_UNKNOWN,
|
||||
const int flags = 0) const;
|
||||
bool isSet() const { return type != SOURCE_TYPE_NONE || index != 0; }
|
||||
void clear() { type = SOURCE_TYPE_NONE; index = 0; }
|
||||
static StringTagMappingTable getSpecialTypesLookupTable();
|
||||
|
||||
@@ -51,8 +51,9 @@ GeneralEdit::GeneralEdit(QWidget * parent, RadioData & radioData, Firmware * fir
|
||||
editorItemModels->addItemModel(AbstractItemModel::IMID_RawSwitch);
|
||||
editorItemModels->addItemModel(AbstractItemModel::IMID_CustomFuncAction);
|
||||
editorItemModels->addItemModel(AbstractItemModel::IMID_CustomFuncResetParam);
|
||||
editorItemModels->addItemModel(AbstractItemModel::IMID_ControlSource);
|
||||
|
||||
addTab(new GeneralSetupPanel(this, generalSettings, firmware), tr("Setup"));
|
||||
addTab(new GeneralSetupPanel(this, generalSettings, firmware, editorItemModels), tr("Setup"));
|
||||
addTab(new CustomFunctionsPanel(this, nullptr, generalSettings, firmware, editorItemModels), tr("Global Functions"));
|
||||
addTab(new TrainerPanel(this, generalSettings, firmware, editorItemModels), tr("Trainer"));
|
||||
auto hwpnl = new HardwarePanel(this, generalSettings, firmware, editorItemModels);
|
||||
|
||||
@@ -25,22 +25,22 @@
|
||||
#include "filtereditemmodels.h"
|
||||
#include "autocombobox.h"
|
||||
#include "namevalidator.h"
|
||||
#include "helpers.h"
|
||||
|
||||
constexpr char FIM_HATSMODE[] {"Hats Mode"};
|
||||
constexpr char FIM_STICKMODE[] {"Stick Mode"};
|
||||
constexpr char FIM_TEMPLATESETUP[] {"Template Setup"};
|
||||
constexpr char FIM_BACKLIGHTMODE[] {"Backlight Mode"};
|
||||
constexpr char FIM_CONTROLSRC[] {"Control Source"};
|
||||
|
||||
GeneralSetupPanel::GeneralSetupPanel(QWidget * parent, GeneralSettings & generalSettings, Firmware * firmware):
|
||||
GeneralSetupPanel::GeneralSetupPanel(QWidget * parent, GeneralSettings & generalSettings,
|
||||
Firmware * firmware, CompoundItemModelFactory * sharedItemModels):
|
||||
GeneralPanel(parent, generalSettings, firmware),
|
||||
ui(new Ui::GeneralSetup)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
Board::Type board = firmware->getBoard();
|
||||
|
||||
panelFilteredModels = new FilteredItemModelFactory();
|
||||
|
||||
panelFilteredModels->registerItemModel(new FilteredItemModel(GeneralSettings::hatsModeItemModel()), FIM_HATSMODE);
|
||||
panelFilteredModels->registerItemModel(new FilteredItemModel(GeneralSettings::stickModeItemModel()), FIM_STICKMODE);
|
||||
panelFilteredModels->registerItemModel(new FilteredItemModel(GeneralSettings::templateSetupItemModel(),
|
||||
@@ -48,6 +48,8 @@ ui(new Ui::GeneralSetup)
|
||||
GeneralSettings::RadioTypeContextSurface),
|
||||
FIM_TEMPLATESETUP);
|
||||
panelFilteredModels->registerItemModel(new FilteredItemModel(GeneralSettings::backlightModeItemModel()), FIM_BACKLIGHTMODE);
|
||||
panelFilteredModels->registerItemModel(new FilteredItemModel(sharedItemModels->getItemModel(AbstractItemModel::IMID_ControlSource)),
|
||||
FIM_CONTROLSRC);
|
||||
|
||||
QLabel *pmsl[] = {ui->ro_label, ui->ro1_label, ui->ro2_label, ui->ro3_label, ui->ro4_label, ui->ro5_label, ui->ro6_label, ui->ro7_label, ui->ro8_label, NULL};
|
||||
QSlider *tpmsld[] = {ui->chkSA, ui->chkSB, ui->chkSC, ui->chkSD, ui->chkSE, ui->chkSF, ui->chkSG, ui->chkSH, NULL};
|
||||
@@ -93,6 +95,18 @@ ui(new Ui::GeneralSetup)
|
||||
|
||||
lock = true;
|
||||
|
||||
ui->volumeCtrl_CB->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
ui->volumeCtrl_CB->setModel(panelFilteredModels->getItemModel(FIM_CONTROLSRC));
|
||||
ui->volumeCtrl_CB->setCurrentIndex(ui->volumeCtrl_CB->findData(generalSettings.volumeSrc.toValue()));
|
||||
if (ui->volumeCtrl_CB->currentIndex() < 0 && generalSettings.volumeSrc.toValue() == 0)
|
||||
ui->volumeCtrl_CB->setCurrentIndex(Helpers::getFirstPosValueIndex(ui->volumeCtrl_CB));
|
||||
|
||||
ui->brightCtrl_CB->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
ui->brightCtrl_CB->setModel(panelFilteredModels->getItemModel(FIM_CONTROLSRC));
|
||||
ui->brightCtrl_CB->setCurrentIndex(ui->brightCtrl_CB->findData(generalSettings.backlightSrc.toValue()));
|
||||
if (ui->brightCtrl_CB->currentIndex() < 0 && generalSettings.backlightSrc.toValue() == 0)
|
||||
ui->brightCtrl_CB->setCurrentIndex(Helpers::getFirstPosValueIndex(ui->brightCtrl_CB));
|
||||
|
||||
ui->backlightswCB->setModel(panelFilteredModels->getItemModel(FIM_BACKLIGHTMODE));
|
||||
ui->backlightswCB->setCurrentIndex(ui->backlightswCB->findData(generalSettings.backlightMode));
|
||||
|
||||
@@ -729,6 +743,22 @@ void GeneralSetupPanel::on_OFFBright_SB_editingFinished()
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_volumeCtrl_CB_currentIndexChanged(int index)
|
||||
{
|
||||
if (!lock) {
|
||||
generalSettings.volumeSrc = RawSource(ui->volumeCtrl_CB->itemData(ui->volumeCtrl_CB->currentIndex()).toInt());
|
||||
emit modified();
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_brightCtrl_CB_currentIndexChanged(int index)
|
||||
{
|
||||
if (!lock) {
|
||||
generalSettings.backlightSrc = RawSource(ui->brightCtrl_CB->itemData(ui->brightCtrl_CB->currentIndex()).toInt());
|
||||
emit modified();
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSetupPanel::on_volume_SL_valueChanged()
|
||||
{
|
||||
if (!lock) {
|
||||
|
||||
@@ -35,7 +35,7 @@ class GeneralSetupPanel : public GeneralPanel
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GeneralSetupPanel(QWidget *parent, GeneralSettings & generalSettings, Firmware * firmware);
|
||||
GeneralSetupPanel(QWidget *parent, GeneralSettings & generalSettings, Firmware * firmware, CompoundItemModelFactory * sharedItemModels);
|
||||
virtual ~GeneralSetupPanel();
|
||||
|
||||
private slots:
|
||||
@@ -47,6 +47,8 @@ class GeneralSetupPanel : public GeneralPanel
|
||||
void on_displayTypeCB_currentIndexChanged(int index);
|
||||
void on_BLBright_SB_editingFinished();
|
||||
void on_OFFBright_SB_editingFinished();
|
||||
void on_brightCtrl_CB_currentIndexChanged(int index);
|
||||
void on_volumeCtrl_CB_currentIndexChanged(int index);
|
||||
void on_countrycode_CB_currentIndexChanged(int index);
|
||||
void on_units_CB_currentIndexChanged(int index);
|
||||
void on_ppm_units_CB_currentIndexChanged(int index);
|
||||
|
||||
@@ -651,6 +651,10 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QComboBox" name="volumeCtrl_CB">
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QSpinBox" name="BLBright_SB">
|
||||
<property name="maximum">
|
||||
@@ -722,13 +726,20 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="label_OFFBright">
|
||||
<property name="text">
|
||||
<string>Backlight OFF Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="label_BrightCtrl">
|
||||
<property name="text">
|
||||
<string>Backlight Control</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QComboBox" name="backlightswCB">
|
||||
<property name="toolTip">
|
||||
@@ -932,7 +943,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<item row="15" column="1">
|
||||
<widget class="QSpinBox" name="OFFBright_SB">
|
||||
<property name="minimum">
|
||||
<number>5</number>
|
||||
@@ -942,6 +953,10 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QComboBox" name="brightCtrl_CB">
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
@@ -1147,6 +1162,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_volumeCtrl">
|
||||
<property name="text">
|
||||
<string>Volume Control</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="speakerPitchSB">
|
||||
<property name="toolTip">
|
||||
|
||||
@@ -365,6 +365,10 @@ HardwarePanel::HardwarePanel(QWidget * parent, GeneralSettings & generalSettings
|
||||
addParams();
|
||||
}
|
||||
|
||||
connect(this, &HardwarePanel::inputFlexTypeChanged, [=](AutoComboBox *cb, int index)
|
||||
{ setFlexTypeModel(cb, index); }
|
||||
);
|
||||
connect(this, &HardwarePanel::refreshItemModels, [=]() { updateItemModels(); });
|
||||
addVSpring(grid, 0, grid->rowCount());
|
||||
addHSpring(grid, grid->columnCount(), 0);
|
||||
disableMouseScrolling();
|
||||
@@ -446,6 +450,7 @@ void HardwarePanel::addFlex(int index)
|
||||
name->setValidator(new NameValidator(board, this));
|
||||
name->setField(config.name, HARDWARE_NAME_LEN, this);
|
||||
params->append(name);
|
||||
connect(name, &AutoLineEdit::editingFinished, [=] () { emit refreshItemModels(); });
|
||||
|
||||
AutoComboBox *type = new AutoComboBox(this);
|
||||
setFlexTypeModel(type, index);
|
||||
@@ -465,11 +470,10 @@ void HardwarePanel::addFlex(int index)
|
||||
} else {
|
||||
invertToggles[index - Boards::getCapability(board, Board::Sticks)]->show();
|
||||
}
|
||||
emit InputFlexTypeChanged();
|
||||
emit inputFlexTypeChanged(type, index);
|
||||
emit refreshItemModels();
|
||||
});
|
||||
|
||||
connect(this, &HardwarePanel::InputFlexTypeChanged, [=]() { setFlexTypeModel(type, index); });
|
||||
|
||||
params->append(type);
|
||||
|
||||
AutoCheckBox *inverted = new AutoCheckBox(this);
|
||||
@@ -508,6 +512,7 @@ void HardwarePanel::addSwitch(int index)
|
||||
name->setValidator(new NameValidator(board, this));
|
||||
name->setField(config.name, HARDWARE_NAME_LEN, this);
|
||||
params->append(name);
|
||||
connect(name, &AutoLineEdit::editingFinished, [=] () { emit refreshItemModels(); });
|
||||
|
||||
AutoComboBox *input = nullptr;
|
||||
|
||||
@@ -538,6 +543,12 @@ void HardwarePanel::addSwitch(int index)
|
||||
type->setField(config.type, this);
|
||||
params->append(type);
|
||||
|
||||
if (!generalSettings.isSwitchFunc(index)) {
|
||||
connect(type, &AutoComboBox::currentDataChanged, [=] (int val) {
|
||||
emit refreshItemModels();
|
||||
});
|
||||
}
|
||||
|
||||
if (generalSettings.isSwitchFlex(index)) {
|
||||
connect(input, &AutoComboBox::currentDataChanged, [=] (int val) {
|
||||
if (val < 0) {
|
||||
@@ -547,6 +558,8 @@ void HardwarePanel::addSwitch(int index)
|
||||
}
|
||||
else
|
||||
type->setModel(tabFilteredModels->getItemModel(FIM_SWITCHTYPE3POS));
|
||||
|
||||
emit refreshItemModels();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -562,6 +575,7 @@ void HardwarePanel::addSwitch(int index)
|
||||
|
||||
connect(type, &AutoComboBox::currentDataChanged, [=] (int val) {
|
||||
start->setEnabled(val == Board::SWITCH_2POS);
|
||||
emit refreshItemModels();
|
||||
});
|
||||
|
||||
if (Boards::getCapability(board, Board::FunctionSwitchColors)) {
|
||||
@@ -677,3 +691,8 @@ void HardwarePanel::updateSerialPortUSBVCP()
|
||||
view->setRowHidden(i, false);
|
||||
}
|
||||
}
|
||||
|
||||
void HardwarePanel::updateItemModels()
|
||||
{
|
||||
editorItemModels->update(AbstractItemModel::IMUE_Hardware);
|
||||
}
|
||||
|
||||
@@ -41,7 +41,8 @@ class HardwarePanel : public GeneralPanel
|
||||
|
||||
signals:
|
||||
void internalModuleChanged();
|
||||
void InputFlexTypeChanged();
|
||||
void inputFlexTypeChanged(AutoComboBox *cb, int index);
|
||||
void refreshItemModels();
|
||||
|
||||
private slots:
|
||||
void on_internalModuleChanged();
|
||||
@@ -73,4 +74,5 @@ class HardwarePanel : public GeneralPanel
|
||||
|
||||
void setFlexTypeModel(AutoComboBox * cb, int index);
|
||||
void updateSerialPortUSBVCP();
|
||||
void updateItemModels();
|
||||
};
|
||||
|
||||
@@ -77,15 +77,15 @@ static inline void check_struct()
|
||||
#endif
|
||||
|
||||
#if defined(PCBXLITES)
|
||||
CHKSIZE(RadioData, 945);
|
||||
CHKSIZE(RadioData, 948);
|
||||
#elif defined(RADIO_ST16) || defined(PCBPA01) || defined(RADIO_TX15) || defined(RADIO_T15PRO)
|
||||
CHKSIZE(RadioData, 1177);
|
||||
CHKSIZE(RadioData, 1179);
|
||||
#elif defined(COLORLCD)
|
||||
CHKSIZE(RadioData, 1057);
|
||||
CHKSIZE(RadioData, 1059);
|
||||
#elif defined(RADIO_GX12)
|
||||
CHKSIZE(RadioData, 1063);
|
||||
CHKSIZE(RadioData, 1066);
|
||||
#else
|
||||
CHKSIZE(RadioData, 943);
|
||||
CHKSIZE(RadioData, 946);
|
||||
#endif
|
||||
|
||||
#if defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_BUMBLEBEE)
|
||||
|
||||
@@ -1127,6 +1127,26 @@ PACK(struct RadioData {
|
||||
NOBACKUP(char selectedTheme[SELECTED_THEME_NAME_LEN]);
|
||||
#endif
|
||||
|
||||
NOBACKUP(int16_t backlightSrc:10 CUST(r_mixSrcRawEx,w_mixSrcRawEx));
|
||||
|
||||
NOBACKUP(int16_t radioGFDisabled:1);
|
||||
NOBACKUP(int16_t radioTrainerDisabled:1);
|
||||
NOBACKUP(int16_t modelHeliDisabled:1);
|
||||
NOBACKUP(int16_t modelFMDisabled:1);
|
||||
NOBACKUP(int16_t modelCurvesDisabled:1);
|
||||
NOBACKUP(int16_t modelGVDisabled:1);
|
||||
|
||||
NOBACKUP(int16_t volumeSrc:10 CUST(r_mixSrcRawEx,w_mixSrcRawEx));
|
||||
|
||||
NOBACKUP(int16_t modelLSDisabled:1);
|
||||
NOBACKUP(int16_t modelSFDisabled:1);
|
||||
NOBACKUP(int16_t modelCustomScriptsDisabled:1);
|
||||
NOBACKUP(int16_t modelTelemetryDisabled:1);
|
||||
NOBACKUP(int16_t disableTrainerPoweroffAlarm:1);
|
||||
NOBACKUP(int16_t disablePwrOnOffHaptic:1);
|
||||
|
||||
NOBACKUP(uint8_t modelQuickSelect:1);
|
||||
|
||||
#if defined(COLORLCD)
|
||||
NOBACKUP(uint8_t labelSingleSelect:1); // 0 = multi-select, 1 = single select labels
|
||||
NOBACKUP(uint8_t labelMultiMode:1); // 0 = match all labels (AND), 1 = match any labels (OR)
|
||||
@@ -1134,30 +1154,12 @@ PACK(struct RadioData {
|
||||
// Radio level tabs control (global settings)
|
||||
NOBACKUP(uint8_t modelSelectLayout:2);
|
||||
NOBACKUP(uint8_t radioThemesDisabled:1);
|
||||
#endif
|
||||
NOBACKUP(uint8_t radioGFDisabled:1);
|
||||
NOBACKUP(uint8_t radioTrainerDisabled:1);
|
||||
// Model level tabs control (global setting)
|
||||
NOBACKUP(uint8_t modelHeliDisabled:1);
|
||||
NOBACKUP(uint8_t modelFMDisabled:1);
|
||||
NOBACKUP(uint8_t modelCurvesDisabled:1);
|
||||
NOBACKUP(uint8_t modelGVDisabled:1);
|
||||
NOBACKUP(uint8_t modelLSDisabled:1);
|
||||
NOBACKUP(uint8_t modelSFDisabled:1);
|
||||
NOBACKUP(uint8_t modelCustomScriptsDisabled:1);
|
||||
NOBACKUP(uint8_t modelTelemetryDisabled:1);
|
||||
NOBACKUP(uint8_t disableTrainerPoweroffAlarm:1);
|
||||
NOBACKUP(uint8_t disablePwrOnOffHaptic:1);
|
||||
|
||||
NOBACKUP(uint8_t modelQuickSelect:1);
|
||||
|
||||
#if defined(COLORLCD)
|
||||
NOBACKUP(uint8_t spare:5 SKIP);
|
||||
NOBACKUP(uint8_t spare:1 SKIP);
|
||||
#elif LCD_W == 128
|
||||
uint8_t invertLCD:1; // Invert B&W LCD display
|
||||
NOBACKUP(uint8_t spare:2 SKIP);
|
||||
NOBACKUP(uint8_t spare:6 SKIP);
|
||||
#else
|
||||
NOBACKUP(uint8_t spare:3 SKIP);
|
||||
NOBACKUP(uint8_t spare:7 SKIP);
|
||||
#endif
|
||||
|
||||
NOBACKUP(uint8_t pwrOffIfInactive);
|
||||
|
||||
@@ -582,6 +582,34 @@ ls_telemetry_value_t maxTelemValue(source_t channel)
|
||||
return 30000;
|
||||
}
|
||||
|
||||
void calcBacklightValue(int16_t source)
|
||||
{
|
||||
getvalue_t raw = getValue(source);
|
||||
#if defined(COLORLCD)
|
||||
requiredBacklightBright = BACKLIGHT_LEVEL_MAX - (g_eeGeneral.blOffBright +
|
||||
((1024 + raw) * ((BACKLIGHT_LEVEL_MAX - g_eeGeneral.backlightBright) - g_eeGeneral.blOffBright) / 2048));
|
||||
#elif defined(OLED_SCREEN)
|
||||
requiredBacklightBright = (raw + 1024) * 254 / 2048;
|
||||
#else
|
||||
requiredBacklightBright = (1024 - raw) * 100 / 2048;
|
||||
#endif
|
||||
}
|
||||
|
||||
#define VOLUME_HYSTERESIS 10 // how much must a input value change to actually be considered for new volume setting
|
||||
getvalue_t requiredSpeakerVolumeRawLast = 1024 + 1; //initial value must be outside normal range
|
||||
|
||||
void calcVolumeValue(int16_t source)
|
||||
{
|
||||
getvalue_t raw = getValue(source);
|
||||
// only set volume if input changed more than hysteresis
|
||||
if (abs(requiredSpeakerVolumeRawLast - raw) > VOLUME_HYSTERESIS) {
|
||||
requiredSpeakerVolumeRawLast = raw;
|
||||
}
|
||||
requiredSpeakerVolume =
|
||||
((1024 + requiredSpeakerVolumeRawLast) * VOLUME_LEVEL_MAX) /
|
||||
2048;
|
||||
}
|
||||
|
||||
void checkBacklight()
|
||||
{
|
||||
static uint8_t tmr10ms ;
|
||||
|
||||
@@ -434,6 +434,7 @@ enum FunctionsActive {
|
||||
FUNCTION_RACING_MODE,
|
||||
FUNCTION_DISABLE_TOUCH,
|
||||
FUNCTION_DISABLE_AUDIO_AMP,
|
||||
FUNCTION_VOLUME,
|
||||
};
|
||||
|
||||
#define VARIO_FREQUENCY_ZERO 700/*Hz*/
|
||||
@@ -891,3 +892,6 @@ extern bool modelTelemetryEnabled();
|
||||
|
||||
int pwrDelayFromYaml(int delay);
|
||||
int pwrDelayToYaml(int delay);
|
||||
|
||||
void calcBacklightValue(int16_t source);
|
||||
void calcVolumeValue(int16_t source);
|
||||
|
||||
+4
-22
@@ -146,9 +146,6 @@ bool isRepeatDelayElapsed(const CustomFunctionData * functions, CustomFunctionsC
|
||||
}
|
||||
}
|
||||
|
||||
#define VOLUME_HYSTERESIS 10 // how much must a input value change to actually be considered for new volume setting
|
||||
getvalue_t requiredSpeakerVolumeRawLast = 1024 + 1; //initial value must be outside normal range
|
||||
|
||||
void evalFunctions(CustomFunctionData * functions, CustomFunctionsContext & functionsContext)
|
||||
{
|
||||
MASK_FUNC_TYPE newActiveFunctions = 0;
|
||||
@@ -315,14 +312,8 @@ void evalFunctions(CustomFunctionData * functions, CustomFunctionsContext & func
|
||||
|
||||
#if defined(AUDIO)
|
||||
case FUNC_VOLUME: {
|
||||
getvalue_t raw = getValue(CFN_PARAM(cfn));
|
||||
// only set volume if input changed more than hysteresis
|
||||
if (abs(requiredSpeakerVolumeRawLast - raw) > VOLUME_HYSTERESIS) {
|
||||
requiredSpeakerVolumeRawLast = raw;
|
||||
}
|
||||
requiredSpeakerVolume =
|
||||
((1024 + requiredSpeakerVolumeRawLast) * VOLUME_LEVEL_MAX) /
|
||||
2048;
|
||||
newActiveFunctions |= (1u << FUNCTION_VOLUME);
|
||||
calcVolumeValue(CFN_PARAM(cfn));
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
@@ -402,18 +393,9 @@ void evalFunctions(CustomFunctionData * functions, CustomFunctionsContext & func
|
||||
// like original backlight and turn on
|
||||
// regardless of backlight settings
|
||||
requiredBacklightBright = BACKLIGHT_FORCED_ON;
|
||||
break;
|
||||
} else {
|
||||
calcBacklightValue(CFN_PARAM(cfn));
|
||||
}
|
||||
|
||||
getvalue_t raw = limit(-RESX, (int)getValue(CFN_PARAM(cfn)), RESX);
|
||||
#if defined(COLORLCD)
|
||||
requiredBacklightBright = BACKLIGHT_LEVEL_MAX - (g_eeGeneral.blOffBright +
|
||||
((1024 + raw) * ((BACKLIGHT_LEVEL_MAX - g_eeGeneral.backlightBright) - g_eeGeneral.blOffBright) / 2048));
|
||||
#elif defined(OLED_SCREEN)
|
||||
requiredBacklightBright = (raw + 1024) * 254 / 2048;
|
||||
#else
|
||||
requiredBacklightBright = (1024 - raw) * 100 / 2048;
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -49,15 +49,17 @@ int8_t slider_5pos(coord_t y, int8_t value, event_t event, uint8_t attr, const c
|
||||
enum {
|
||||
CASE_RTCLOCK(ITEM_RADIO_SETUP_DATE)
|
||||
CASE_RTCLOCK(ITEM_RADIO_SETUP_TIME)
|
||||
ITEM_RADIO_SETUP_SOUND_LABEL,
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_SOUND_LABEL)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_BEEP_MODE)
|
||||
ITEM_RADIO_SETUP_SPEAKER_VOLUME,
|
||||
ITEM_RADIO_SETUP_BEEP_VOLUME,
|
||||
ITEM_RADIO_SETUP_BEEP_LENGTH,
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_SPEAKER_VOLUME)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_BEEP_VOLUME)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_BEEP_LENGTH)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_SPEAKER_PITCH)
|
||||
ITEM_RADIO_SETUP_WAV_VOLUME,
|
||||
ITEM_RADIO_SETUP_BACKGROUND_VOLUME,
|
||||
ITEM_RADIO_SETUP_START_SOUND,
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_WAV_VOLUME)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_BACKGROUND_VOLUME)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_VOLUME_SOURCE)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_VOLUME_SOURCE_OVRRIDE)
|
||||
CASE_AUDIO(ITEM_RADIO_SETUP_START_SOUND)
|
||||
CASE_VARIO(ITEM_RADIO_SETUP_VARIO_LABEL)
|
||||
CASE_VARIO(ITEM_RADIO_SETUP_VARIO_VOLUME)
|
||||
CASE_VARIO(ITEM_RADIO_SETUP_VARIO_PITCH)
|
||||
@@ -82,6 +84,8 @@ enum {
|
||||
CASE_BACKLIGHT(ITEM_RADIO_SETUP_BACKLIGHT_DELAY)
|
||||
CASE_BACKLIGHT(ITEM_RADIO_SETUP_BRIGHTNESS)
|
||||
CASE_CONTRAST(ITEM_RADIO_SETUP_CONTRAST)
|
||||
CASE_BACKLIGHT(ITEM_RADIO_SETUP_BACKLIGHT_SOURCE)
|
||||
CASE_BACKLIGHT(ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE)
|
||||
CASE_BACKLIGHT(ITEM_RADIO_SETUP_FLASH_BEEP)
|
||||
CASE_SPLASH_PARAM(ITEM_RADIO_SETUP_DISABLE_SPLASH)
|
||||
CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_ON_SPEED)
|
||||
@@ -130,6 +134,8 @@ PACK(struct ExpandState {
|
||||
static struct ExpandState expandState;
|
||||
|
||||
static uint8_t SOUND_ROW(uint8_t value) { return expandState.sound ? value : HIDDEN_ROW; }
|
||||
static uint8_t SOUND_WARNING_ROW(uint8_t value) { return expandState.sound && isFunctionActive(FUNCTION_VOLUME) ? value : HIDDEN_ROW; }
|
||||
static uint8_t BACKLIGHT_WARNING_ROW(uint8_t value) { return isFunctionActive(FUNCTION_BACKLIGHT) ? value : HIDDEN_ROW; }
|
||||
|
||||
static uint8_t ALARMS_ROW(uint8_t value) { return expandState.alarms ? value : HIDDEN_ROW; }
|
||||
|
||||
@@ -177,13 +183,15 @@ void menuRadioSetup(event_t event)
|
||||
// Sound
|
||||
0,
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
SOUND_ROW(0),
|
||||
SOUND_ROW(0),
|
||||
SOUND_ROW(0),
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
SOUND_ROW(0),
|
||||
SOUND_ROW(0),
|
||||
SOUND_ROW(0),
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
CASE_AUDIO(SOUND_WARNING_ROW(LABEL(0)))
|
||||
CASE_AUDIO(SOUND_ROW(0))
|
||||
// Vario
|
||||
CASE_VARIO(LABEL(VARIO))
|
||||
CASE_VARIO(0)
|
||||
@@ -214,6 +222,8 @@ void menuRadioSetup(event_t event)
|
||||
CASE_BACKLIGHT(0)
|
||||
CASE_CONTRAST(0)
|
||||
CASE_BACKLIGHT(0)
|
||||
CASE_BACKLIGHT(BACKLIGHT_WARNING_ROW(LABEL(0)))
|
||||
CASE_BACKLIGHT(0)
|
||||
CASE_SPLASH_PARAM(0)
|
||||
CASE_PWR_BUTTON_PRESS(0)
|
||||
CASE_PWR_BUTTON_PRESS(0)
|
||||
@@ -335,15 +345,14 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(AUDIO)
|
||||
case ITEM_RADIO_SETUP_SOUND_LABEL:
|
||||
expandState.sound = expandableSection(y, STR_SOUND_LABEL, expandState.sound, attr, event);
|
||||
break;
|
||||
|
||||
#if defined(AUDIO)
|
||||
case ITEM_RADIO_SETUP_BEEP_MODE:
|
||||
g_eeGeneral.beepMode = editChoice(LCD_W-2, y, STR_MODE, STR_VBEEPMODE, g_eeGeneral.beepMode, -2, 1, attr|RIGHT, event, INDENT_WIDTH);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_SETUP_SPEAKER_VOLUME:
|
||||
{
|
||||
@@ -375,7 +384,6 @@ void menuRadioSetup(event_t event)
|
||||
g_eeGeneral.beepLength = slider_5pos(y, g_eeGeneral.beepLength, event, attr, STR_BEEP_LENGTH);
|
||||
break;
|
||||
|
||||
#if defined(AUDIO)
|
||||
case ITEM_RADIO_SETUP_SPEAKER_PITCH:
|
||||
{
|
||||
lcdDrawTextIndented(y, STR_BEEP_PITCH);
|
||||
@@ -388,11 +396,24 @@ void menuRadioSetup(event_t event)
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_SETUP_VOLUME_SOURCE:
|
||||
lcdDrawTextIndented(y, STR_CONTROL);
|
||||
drawSource(LCD_W-2, y, g_eeGeneral.volumeSrc, STREXPANDED|RIGHT|attr);
|
||||
if (attr)
|
||||
g_eeGeneral.volumeSrc = checkIncDec(event, g_eeGeneral.volumeSrc,
|
||||
MIXSRC_NONE, MIXSRC_LAST_SWITCH, EE_MODEL|INCDEC_SOURCE|INCDEC_SOURCE_INVERT|NO_INCDEC_MARKS,
|
||||
isSourceAvailableForBacklightOrVolume);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_VOLUME_SOURCE_OVRRIDE:
|
||||
lcdDrawText(LCD_W, y, STR_SF_OVERRIDDEN, RIGHT);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_START_SOUND:
|
||||
g_eeGeneral.dontPlayHello = !editCheckBox(!g_eeGeneral.dontPlayHello, LCD_W-9, y, STR_PLAY_HELLO, attr, event, INDENT_WIDTH) ;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(VARIO)
|
||||
case ITEM_RADIO_SETUP_VARIO_LABEL:
|
||||
@@ -565,6 +586,19 @@ void menuRadioSetup(event_t event)
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_BACKLIGHT_SOURCE:
|
||||
lcdDrawTextIndented(y, STR_CONTROL);
|
||||
drawSource(LCD_W-2, y, g_eeGeneral.backlightSrc, STREXPANDED|RIGHT|attr);
|
||||
if (attr)
|
||||
g_eeGeneral.backlightSrc = checkIncDec(event, g_eeGeneral.backlightSrc,
|
||||
MIXSRC_NONE, MIXSRC_LAST_SWITCH, EE_MODEL|INCDEC_SOURCE|INCDEC_SOURCE_INVERT|NO_INCDEC_MARKS,
|
||||
isSourceAvailableForBacklightOrVolume);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE:
|
||||
lcdDrawText(LCD_W, y, STR_SF_OVERRIDDEN, RIGHT);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if !defined(OLED_SCREEN)
|
||||
|
||||
@@ -56,6 +56,8 @@ enum MenuRadioSetupItems {
|
||||
ITEM_RADIO_SETUP_SPEAKER_PITCH,
|
||||
ITEM_RADIO_SETUP_WAV_VOLUME,
|
||||
ITEM_RADIO_SETUP_BACKGROUND_VOLUME,
|
||||
ITEM_RADIO_SETUP_VOLUME_SOURCE,
|
||||
ITEM_RADIO_SETUP_VOLUME_SOURCE_OVRRIDE,
|
||||
ITEM_RADIO_SETUP_START_SOUND,
|
||||
CASE_VARIO(ITEM_RADIO_SETUP_VARIO_LABEL)
|
||||
CASE_VARIO(ITEM_RADIO_SETUP_VARIO_VOLUME)
|
||||
@@ -79,6 +81,8 @@ enum MenuRadioSetupItems {
|
||||
ITEM_RADIO_SETUP_BRIGHTNESS,
|
||||
ITEM_RADIO_SETUP_CONTRAST,
|
||||
CASE_PCBX9E_PCBX9DP(ITEM_RADIO_SETUP_BACKLIGHT_COLOR)
|
||||
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE,
|
||||
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE,
|
||||
ITEM_RADIO_SETUP_FLASH_BEEP,
|
||||
CASE_SPLASH_PARAM(ITEM_RADIO_SETUP_DISABLE_SPLASH)
|
||||
CASE_PWR_BUTTON_PRESS(ITEM_RADIO_SETUP_PWR_ON_SPEED)
|
||||
@@ -129,6 +133,8 @@ PACK(struct ExpandState {
|
||||
static struct ExpandState expandState;
|
||||
|
||||
static uint8_t SOUND_ROW(uint8_t value) { return expandState.sound ? value : HIDDEN_ROW; }
|
||||
static uint8_t SOUND_WARNING_ROW(uint8_t value) { return expandState.sound && isFunctionActive(FUNCTION_VOLUME) ? value : HIDDEN_ROW; }
|
||||
static uint8_t BACKLIGHT_WARNING_ROW(uint8_t value) { return isFunctionActive(FUNCTION_BACKLIGHT) ? value : HIDDEN_ROW; }
|
||||
|
||||
static uint8_t ALARMS_ROW(uint8_t value) { return expandState.alarms ? value : HIDDEN_ROW; }
|
||||
|
||||
@@ -186,6 +192,8 @@ void menuRadioSetup(event_t event)
|
||||
SOUND_ROW(0), // speaker piutch
|
||||
SOUND_ROW(0), // wav volume
|
||||
SOUND_ROW(0), // background volume
|
||||
SOUND_ROW(0), // volume control
|
||||
SOUND_WARNING_ROW(LABEL(0)), // volume control override warning
|
||||
SOUND_ROW(0), // startup sound
|
||||
// Vario
|
||||
CASE_VARIO(LABEL(VARIO))
|
||||
@@ -213,6 +221,8 @@ void menuRadioSetup(event_t event)
|
||||
0, // brightness
|
||||
0, // contrast
|
||||
CASE_PCBX9E_PCBX9DP(0) // backlight color
|
||||
0, // backlight control
|
||||
BACKLIGHT_WARNING_ROW(LABEL(0)), // backlight control override warning
|
||||
0, // flash beep
|
||||
CASE_SPLASH_PARAM(0) // disable splash
|
||||
CASE_PWR_BUTTON_PRESS(0) // pwr on speed
|
||||
@@ -407,6 +417,19 @@ void menuRadioSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_VOLUME_SOURCE:
|
||||
lcdDrawTextIndented(y, STR_CONTROL);
|
||||
drawSource(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.volumeSrc, STREXPANDED|attr);
|
||||
if (attr)
|
||||
g_eeGeneral.volumeSrc = checkIncDec(event, g_eeGeneral.volumeSrc,
|
||||
MIXSRC_NONE, MIXSRC_LAST_SWITCH, EE_MODEL|INCDEC_SOURCE|INCDEC_SOURCE_INVERT|NO_INCDEC_MARKS,
|
||||
isSourceAvailableForBacklightOrVolume);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_VOLUME_SOURCE_OVRRIDE:
|
||||
lcdDrawText(RADIO_SETUP_2ND_COLUMN, y, STR_SF_OVERRIDDEN, RIGHT);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_START_SOUND:
|
||||
g_eeGeneral.dontPlayHello = !editCheckBox(!g_eeGeneral.dontPlayHello, RADIO_SETUP_2ND_COLUMN, y, STR_PLAY_HELLO, attr, event, INDENT_WIDTH) ;
|
||||
break;
|
||||
@@ -562,6 +585,19 @@ void menuRadioSetup(event_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_RADIO_SETUP_BACKLIGHT_SOURCE:
|
||||
lcdDrawTextIndented(y, STR_CONTROL);
|
||||
drawSource(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.backlightSrc, STREXPANDED|attr);
|
||||
if (attr)
|
||||
g_eeGeneral.backlightSrc = checkIncDec(event, g_eeGeneral.backlightSrc,
|
||||
MIXSRC_NONE, MIXSRC_LAST_SWITCH, EE_MODEL|INCDEC_SOURCE|INCDEC_SOURCE_INVERT|NO_INCDEC_MARKS,
|
||||
isSourceAvailableForBacklightOrVolume);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE:
|
||||
lcdDrawText(RADIO_SETUP_2ND_COLUMN, y, STR_SF_OVERRIDDEN, RIGHT);
|
||||
break;
|
||||
|
||||
case ITEM_RADIO_SETUP_DISABLE_SPLASH:
|
||||
lcdDrawTextAlignedLeft(y, STR_SPLASHSCREEN);
|
||||
if (SPLASH_NEEDED()) {
|
||||
|
||||
@@ -87,7 +87,7 @@ class SubPage : public Page
|
||||
|
||||
Window* setupLine(const char* title, std::function<void(Window*, coord_t, coord_t)> createEdit, coord_t lblYOffset = 0);
|
||||
|
||||
static constexpr coord_t EDT_X = LCD_W * 9 / 20;
|
||||
static LAYOUT_SIZE(EDT_X, LCD_W * 9 / 20, LCD_W * 8 / 20)
|
||||
|
||||
protected:
|
||||
coord_t y = 0;
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "edgetx.h"
|
||||
#include "page.h"
|
||||
#include "storage/modelslist.h"
|
||||
#include "sourcechoice.h"
|
||||
#include "tasks/mixer_task.h"
|
||||
#include "slider.h"
|
||||
#include "key_shortcuts.h"
|
||||
@@ -189,6 +190,26 @@ class DateTimeWindow : public Window
|
||||
}
|
||||
};
|
||||
|
||||
class ControlTextOverride : public StaticText
|
||||
{
|
||||
public:
|
||||
ControlTextOverride(Window* parent, coord_t x, coord_t y, FunctionsActive func) :
|
||||
StaticText(parent, {x + XO, y + PAD_MEDIUM, 0, 0}, STR_SF_OVERRIDDEN, COLOR_THEME_WARNING_INDEX, FONT_SZ), func(func)
|
||||
{
|
||||
}
|
||||
|
||||
void checkEvents() override
|
||||
{
|
||||
show(isFunctionActive(func));
|
||||
}
|
||||
|
||||
static LAYOUT_SIZE(FONT_SZ, FONT(STD), FONT(XS))
|
||||
static LAYOUT_ORIENTATION(XO, PAD_LARGE * 12, PAD_LARGE * 8)
|
||||
|
||||
protected:
|
||||
FunctionsActive func;
|
||||
};
|
||||
|
||||
#if defined(AUDIO)
|
||||
static SetupLineDef soundPageSetupLines[] = {
|
||||
{
|
||||
@@ -255,6 +276,16 @@ static SetupLineDef soundPageSetupLines[] = {
|
||||
GET_SET_DEFAULT(g_eeGeneral.backgroundVolume)))->setPos(x, y);
|
||||
}
|
||||
},
|
||||
{
|
||||
// Volume source
|
||||
STR_DEF(STR_CONTROL),
|
||||
[](Window* parent, coord_t x, coord_t y) {
|
||||
auto choice = new SourceChoice(parent, {x, y, 0, 0}, MIXSRC_NONE, MIXSRC_LAST_SWITCH,
|
||||
GET_SET_DEFAULT(g_eeGeneral.volumeSrc), true);
|
||||
choice->setAvailableHandler(isSourceAvailableForBacklightOrVolume);
|
||||
new ControlTextOverride(parent, x, y, FUNCTION_VOLUME);
|
||||
}
|
||||
},
|
||||
#if defined(KCX_BTAUDIO)
|
||||
{
|
||||
STR_DEF(STR_BTAUDIO),
|
||||
@@ -496,6 +527,14 @@ class BacklightPage : public SubPage
|
||||
});
|
||||
#endif
|
||||
|
||||
// Backlight/Brightness source
|
||||
setupLine(STR_CONTROL, [=](Window* parent, coord_t x, coord_t y) {
|
||||
auto choice = new SourceChoice(parent, {x, y, 0, 0}, MIXSRC_NONE, MIXSRC_LAST_SWITCH,
|
||||
GET_SET_DEFAULT(g_eeGeneral.backlightSrc), true);
|
||||
choice->setAvailableHandler(isSourceAvailableForBacklightOrVolume);
|
||||
new ControlTextOverride(parent, x, y, FUNCTION_BACKLIGHT);
|
||||
});
|
||||
|
||||
// Flash beep
|
||||
setupLine(STR_ALARM, [=](Window* parent, coord_t x, coord_t y) {
|
||||
new ToggleSwitch(parent, {x, y, 0, 0}, GET_SET_DEFAULT(g_eeGeneral.alarmsFlash));
|
||||
|
||||
@@ -308,6 +308,11 @@ bool isSourceAvailable(int source)
|
||||
);
|
||||
}
|
||||
|
||||
bool isSourceAvailableForBacklightOrVolume(int source)
|
||||
{
|
||||
return checkSourceAvailable(source, SRC_SWITCH | SRC_POT | SRC_NONE);
|
||||
}
|
||||
|
||||
bool isLogicalSwitchAvailable(int index)
|
||||
{
|
||||
LogicalSwitchData * lsw = lswAddress(index);
|
||||
|
||||
@@ -60,6 +60,7 @@ bool isInputAvailable(int input);
|
||||
bool isThrottleSourceAvailable(int source);
|
||||
bool isLogicalSwitchAvailable(int index);
|
||||
bool isAssignableFunctionAvailable(int function);
|
||||
bool isSourceAvailableForBacklightOrVolume(int source);
|
||||
bool isSourceAvailable(int source);
|
||||
int timersSetupCount();
|
||||
bool isTimerSourceAvailable(int source);
|
||||
|
||||
@@ -93,6 +93,31 @@ void addPopupItem(int i_min, int i_max, int rangeMin, int rangeMax, IsValueAvail
|
||||
}
|
||||
}
|
||||
|
||||
struct popupCheckDef {
|
||||
MixSources first;
|
||||
MixSources last;
|
||||
const char* title;
|
||||
};
|
||||
|
||||
static const popupCheckDef popupChecks[] = {
|
||||
{ MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, STR_MENU_INPUTS },
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
{ MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, STR_MENU_LUA },
|
||||
#endif
|
||||
{ MIXSRC_FIRST_STICK, MIXSRC_LAST_STICK, STR_MENU_STICKS },
|
||||
{ MIXSRC_FIRST_POT, MIXSRC_LAST_POT, STR_MENU_POTS },
|
||||
{ MIXSRC_MIN, MIXSRC_MIN, STR_MENU_MIN },
|
||||
{ MIXSRC_MAX, MIXSRC_MAX, STR_MENU_MAX },
|
||||
#if defined(HELI)
|
||||
{ MIXSRC_FIRST_HELI, MIXSRC_LAST_HELI, STR_MENU_HELI },
|
||||
#endif
|
||||
{ MIXSRC_FIRST_TRIM, MIXSRC_LAST_TRIM, STR_MENU_TRIMS },
|
||||
{ MIXSRC_FIRST_SWITCH, MIXSRC_LAST_SWITCH, STR_MENU_SWITCHES },
|
||||
{ MIXSRC_FIRST_TRAINER, MIXSRC_LAST_TRAINER, STR_MENU_TRAINER },
|
||||
{ MIXSRC_FIRST_CH, MIXSRC_LAST_CH, STR_MENU_CHANNELS },
|
||||
{ MIXSRC_FIRST_GVAR, MIXSRC_LAST_GVAR, STR_MENU_GVARS },
|
||||
};
|
||||
|
||||
inline int showPopupMenus(event_t event, int newval, int i_min, int i_max,
|
||||
unsigned int i_flags, IsValueAvailable isValueAvailable,
|
||||
bool& isSource)
|
||||
@@ -105,23 +130,9 @@ inline int showPopupMenus(event_t event, int newval, int i_min, int i_max,
|
||||
POPUP_MENU_ADD_ITEM(STR_CONSTANT);
|
||||
}
|
||||
|
||||
addPopupItem(i_min, i_max, MIXSRC_FIRST_INPUT, MIXSRC_LAST_INPUT, isValueAvailable, STR_MENU_INPUTS);
|
||||
#if defined(LUA_MODEL_SCRIPTS)
|
||||
addPopupItem(i_min, i_max, MIXSRC_FIRST_LUA, MIXSRC_LAST_LUA, isValueAvailable, STR_MENU_LUA);
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_STICK && i_max >= MIXSRC_FIRST_STICK) POPUP_MENU_ADD_ITEM(STR_MENU_STICKS);
|
||||
if (i_min <= MIXSRC_FIRST_POT && i_max >= MIXSRC_FIRST_POT) POPUP_MENU_ADD_ITEM(STR_MENU_POTS);
|
||||
if (i_min <= MIXSRC_MIN && i_max >= MIXSRC_MIN) POPUP_MENU_ADD_ITEM(STR_MENU_MIN);
|
||||
if (i_min <= MIXSRC_MAX && i_max >= MIXSRC_MAX) POPUP_MENU_ADD_ITEM(STR_MENU_MAX);
|
||||
#if defined(HELI)
|
||||
if (modelHeliEnabled())
|
||||
addPopupItem(i_min, i_max, MIXSRC_FIRST_HELI, MIXSRC_LAST_HELI, isValueAvailable, STR_MENU_HELI);
|
||||
#endif
|
||||
if (i_min <= MIXSRC_FIRST_TRIM && i_max >= MIXSRC_FIRST_TRIM) POPUP_MENU_ADD_ITEM(STR_MENU_TRIMS);
|
||||
if (i_min <= MIXSRC_FIRST_SWITCH && i_max >= MIXSRC_FIRST_SWITCH) POPUP_MENU_ADD_ITEM(STR_MENU_SWITCHES);
|
||||
addPopupItem(i_min, i_max, MIXSRC_FIRST_TRAINER, MIXSRC_LAST_TRAINER, isValueAvailable, STR_MENU_TRAINER);
|
||||
if (i_min <= MIXSRC_FIRST_CH && i_max >= MIXSRC_FIRST_CH) POPUP_MENU_ADD_ITEM(STR_MENU_CHANNELS);
|
||||
addPopupItem(i_min, i_max, MIXSRC_FIRST_GVAR, MIXSRC_LAST_GVAR, isValueAvailable, STR_MENU_GVARS);
|
||||
for (size_t i = 0; i < DIM(popupChecks); i += 1) {
|
||||
addPopupItem(i_min, i_max, popupChecks[i].first, popupChecks[i].last, isValueAvailable, popupChecks[i].title);
|
||||
}
|
||||
|
||||
if (modelTelemetryEnabled() && i_min <= MIXSRC_FIRST_TELEM && i_max >= MIXSRC_FIRST_TELEM) {
|
||||
for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) {
|
||||
|
||||
+18
-6
@@ -1194,12 +1194,6 @@ void evalMixes(uint8_t tick10ms)
|
||||
// must be done after mixing because some functions use the inputs/channels values
|
||||
// must be done before limits because of the applyLimit function: it checks for safety switches which would be not initialized otherwise
|
||||
if (tick10ms) {
|
||||
#if defined(AUDIO)
|
||||
requiredSpeakerVolume = g_eeGeneral.speakerVolume + VOLUME_LEVEL_DEF;
|
||||
#endif
|
||||
|
||||
requiredBacklightBright = g_eeGeneral.getBrightness();
|
||||
|
||||
if (radioGFEnabled()) {
|
||||
evalFunctions(g_eeGeneral.customFn, globalFunctionsContext);
|
||||
} else {
|
||||
@@ -1217,6 +1211,24 @@ void evalMixes(uint8_t tick10ms)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(AUDIO)
|
||||
if (!isFunctionActive(FUNCTION_VOLUME)) {
|
||||
if (g_eeGeneral.volumeSrc) {
|
||||
calcVolumeValue(g_eeGeneral.volumeSrc);
|
||||
} else {
|
||||
requiredSpeakerVolume = g_eeGeneral.speakerVolume + VOLUME_LEVEL_DEF;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!isFunctionActive(FUNCTION_BACKLIGHT)) {
|
||||
if (g_eeGeneral.backlightSrc) {
|
||||
calcBacklightValue(g_eeGeneral.backlightSrc);
|
||||
} else {
|
||||
requiredBacklightBright = g_eeGeneral.getBrightness();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//========== LIMITS ===============
|
||||
|
||||
@@ -367,21 +367,23 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 2 ),
|
||||
YAML_PADDING( 6 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -427,25 +427,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -391,21 +391,23 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 2 ),
|
||||
YAML_PADDING( 6 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -418,25 +418,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_UNSIGNED( "stickDeadZone", 3 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -425,25 +425,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_UNSIGNED( "stickDeadZone", 3 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -450,25 +450,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -425,25 +425,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_UNSIGNED( "stickDeadZone", 3 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -418,25 +418,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_UNSIGNED( "stickDeadZone", 3 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -450,25 +450,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -435,25 +435,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -450,25 +450,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -376,21 +376,23 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 2 ),
|
||||
YAML_PADDING( 6 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -376,21 +376,23 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 2 ),
|
||||
YAML_PADDING( 6 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -450,25 +450,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -426,25 +426,27 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_STRING("selectedTheme", 26),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelSingleSelect", 1 ),
|
||||
YAML_UNSIGNED( "labelMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "favMultiMode", 1 ),
|
||||
YAML_UNSIGNED( "modelSelectLayout", 2 ),
|
||||
YAML_UNSIGNED( "radioThemesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 5 ),
|
||||
YAML_PADDING( 1 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_ARRAY("keyShortcuts", 8, 6, struct_QuickMenuPage, NULL),
|
||||
YAML_ARRAY("qmFavorites", 8, 12, struct_QuickMenuPage, NULL),
|
||||
|
||||
@@ -367,20 +367,22 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -367,20 +367,22 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -367,20 +367,22 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_PADDING( 7 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -367,21 +367,23 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_UNSIGNED( "rotEncMode", 3 ),
|
||||
YAML_SIGNED( "uartSampleMode", 2 ),
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 2 ),
|
||||
YAML_PADDING( 6 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -371,21 +371,23 @@ static const struct YamlNode struct_RadioData[] = {
|
||||
YAML_PADDING( 3 ),
|
||||
YAML_SIGNED( "imuMax", 8 ),
|
||||
YAML_SIGNED( "imuOffset", 8 ),
|
||||
YAML_UNSIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_UNSIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_UNSIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_UNSIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_SIGNED_CUST( "backlightSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "radioGFDisabled", 1 ),
|
||||
YAML_SIGNED( "radioTrainerDisabled", 1 ),
|
||||
YAML_SIGNED( "modelHeliDisabled", 1 ),
|
||||
YAML_SIGNED( "modelFMDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCurvesDisabled", 1 ),
|
||||
YAML_SIGNED( "modelGVDisabled", 1 ),
|
||||
YAML_SIGNED_CUST( "volumeSrc", 10, r_mixSrcRawEx, w_mixSrcRawEx ),
|
||||
YAML_SIGNED( "modelLSDisabled", 1 ),
|
||||
YAML_SIGNED( "modelSFDisabled", 1 ),
|
||||
YAML_SIGNED( "modelCustomScriptsDisabled", 1 ),
|
||||
YAML_SIGNED( "modelTelemetryDisabled", 1 ),
|
||||
YAML_SIGNED( "disableTrainerPoweroffAlarm", 1 ),
|
||||
YAML_SIGNED( "disablePwrOnOffHaptic", 1 ),
|
||||
YAML_UNSIGNED( "modelQuickSelect", 1 ),
|
||||
YAML_UNSIGNED( "invertLCD", 1 ),
|
||||
YAML_PADDING( 2 ),
|
||||
YAML_PADDING( 6 ),
|
||||
YAML_UNSIGNED( "pwrOffIfInactive", 8 ),
|
||||
YAML_END
|
||||
};
|
||||
|
||||
@@ -806,6 +806,8 @@
|
||||
#define TR_VOLUME "音量"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "亮度"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU 温度"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "主板温度"
|
||||
|
||||
@@ -805,6 +805,8 @@
|
||||
#define TR_VOLUME "Hlasitost"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Jas"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "Tepl. CPU\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Tepl. MB \016>"
|
||||
|
||||
@@ -811,6 +811,8 @@
|
||||
#define TR_VOLUME "Lydstyrke"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Skarphed"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_COPROC "CoProc"
|
||||
#define TR_COPROC_TEMP TR("CoProc temp", "CoProc temp.")
|
||||
|
||||
@@ -801,6 +801,8 @@
|
||||
#define TR_VOLUME "Lautstärke"
|
||||
#define TR_LCD "Bildschirm"
|
||||
#define TR_BRIGHTNESS "Helligkeit"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU-Temp.\016>"
|
||||
#define TR_COPROC "CoProz."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
|
||||
@@ -807,6 +807,8 @@
|
||||
#define TR_VOLUME "Volume"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brightness"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
|
||||
@@ -801,6 +801,8 @@
|
||||
#define TR_VOLUME "Volumen"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brillo"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU Temp.\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
|
||||
@@ -801,6 +801,8 @@
|
||||
#define TR_VOLUME "Äänenvoimakkuus"
|
||||
#define TR_LCD "LCD-näyttö"
|
||||
#define TR_BRIGHTNESS "Kirkkaus"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU:n lämpötila\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
|
||||
@@ -805,6 +805,8 @@
|
||||
#define TR_VOLUME "Volume"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Luminosité"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "Temp. CPU\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Temp. CM \016>"
|
||||
|
||||
@@ -809,6 +809,8 @@
|
||||
#define TR_VOLUME "עוצמה"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "בהירות"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "טמפ' גבוה במעבד"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
|
||||
@@ -806,6 +806,8 @@
|
||||
#define TR_VOLUME "Volume Audio"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Luminosità"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "Temp CPU \016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Temp. MB \016>"
|
||||
|
||||
@@ -805,6 +805,8 @@
|
||||
#define TR_VOLUME "音量"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "輝度"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU温度"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB温度"
|
||||
|
||||
@@ -841,6 +841,8 @@
|
||||
#define TR_VOLUME "볼륨"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "밝기"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU 온도"
|
||||
#define TR_COPROC "보조 프로세서"
|
||||
#define TR_COPROC_TEMP "메인보드 온도"
|
||||
|
||||
@@ -803,6 +803,8 @@
|
||||
#define TR_VOLUME "Volume"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Helderheid"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU-Temp.\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
|
||||
@@ -800,6 +800,8 @@
|
||||
#define TR_VOLUME "Głośność"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Jasność"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "Temp. CPU\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "Temp. MB"
|
||||
|
||||
@@ -806,6 +806,8 @@
|
||||
#define TR_VOLUME "Volume"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brilho"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU temp."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp."
|
||||
|
||||
@@ -808,6 +808,8 @@
|
||||
#define TR_VOLUME "Громкость"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Подсветка"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "Темпер проц"
|
||||
#define TR_COPROC "Сопроцессор"
|
||||
#define TR_COPROC_TEMP "Темпер сопроц"
|
||||
|
||||
@@ -806,6 +806,8 @@
|
||||
#define TR_VOLUME "Volym"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Ljusstyrka"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU temp.\016>"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB temp. \016>"
|
||||
|
||||
@@ -803,6 +803,8 @@
|
||||
#define TR_VOLUME "音量"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "亮度"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU 溫度"
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "主板溫度"
|
||||
|
||||
@@ -807,6 +807,8 @@
|
||||
#define TR_VOLUME "Загальна гучн."
|
||||
#define TR_LCD "LCD" /*use english*/
|
||||
#define TR_BRIGHTNESS "Яскравість"
|
||||
#define TR_CONTROL "Control"
|
||||
#define TR_SF_OVERRIDDEN "Overridden by SF/GF"
|
||||
#define TR_CPU_TEMP "CPU темп."
|
||||
#define TR_COPROC "Сопроцессор"
|
||||
#define TR_COPROC_TEMP "MB темп."
|
||||
|
||||
@@ -464,6 +464,7 @@
|
||||
#define STR_CONNECTED currentLangStrings->STR_CONNECTED
|
||||
#define STR_CONSTANT currentLangStrings->STR_CONSTANT
|
||||
#define STR_CONTRAST currentLangStrings->STR_CONTRAST
|
||||
#define STR_CONTROL currentLangStrings->STR_CONTROL
|
||||
#define STR_COPROC_TEMP currentLangStrings->STR_COPROC_TEMP
|
||||
#define STR_COPROC currentLangStrings->STR_COPROC
|
||||
#define STR_COPY_FILE currentLangStrings->STR_COPY_FILE
|
||||
@@ -907,6 +908,7 @@
|
||||
#define STR_SF_LCD_TO_VIDEO currentLangStrings->STR_SF_LCD_TO_VIDEO
|
||||
#define STR_SF_LOGS currentLangStrings->STR_SF_LOGS
|
||||
#define STR_SF_MOD_BIND currentLangStrings->STR_SF_MOD_BIND
|
||||
#define STR_SF_OVERRIDDEN currentLangStrings->STR_SF_OVERRIDDEN
|
||||
#define STR_SF_PLAY_SCRIPT currentLangStrings->STR_SF_PLAY_SCRIPT
|
||||
#define STR_SF_RACING_MODE currentLangStrings->STR_SF_RACING_MODE
|
||||
#define STR_SF_RANGE_CHECK currentLangStrings->STR_SF_RANGE_CHECK
|
||||
|
||||
@@ -463,6 +463,7 @@ STR(CONFIRMRESET)
|
||||
STR(CONNECTED)
|
||||
STR(CONSTANT)
|
||||
STR(CONTRAST)
|
||||
STR(CONTROL)
|
||||
STR(COPROC_TEMP)
|
||||
STR(COPROC)
|
||||
STR(COPY_FILE)
|
||||
@@ -906,6 +907,7 @@ STR(SF_INST_TRIM)
|
||||
STR(SF_LCD_TO_VIDEO)
|
||||
STR(SF_LOGS)
|
||||
STR(SF_MOD_BIND)
|
||||
STR(SF_OVERRIDDEN)
|
||||
STR(SF_PLAY_SCRIPT)
|
||||
STR(SF_RACING_MODE)
|
||||
STR(SF_RANGE_CHECK)
|
||||
|
||||
Reference in New Issue
Block a user