refactor: FLASH size optimisations for B&W (#4827)
This commit is contained in:
@@ -699,9 +699,7 @@ void checkExternalAntenna()
|
||||
#if defined(COLORLCD)
|
||||
runAntennaSelectionMenu();
|
||||
#else
|
||||
POPUP_MENU_ADD_ITEM(STR_USE_INTERNAL_ANTENNA);
|
||||
POPUP_MENU_ADD_ITEM(STR_USE_EXTERNAL_ANTENNA);
|
||||
POPUP_MENU_START(onAntennaSelection);
|
||||
POPUP_MENU_START(onAntennaSelection, 2, STR_USE_INTERNAL_ANTENNA, STR_USE_EXTERNAL_ANTENNA);
|
||||
#endif
|
||||
} else {
|
||||
globalData.externalAntennaEnabled = false;
|
||||
@@ -1240,3 +1238,174 @@ void setPotType(int index, int value)
|
||||
{
|
||||
g_eeGeneral.potsConfig = bfSet<potconfig_t>(g_eeGeneral.potsConfig, value, (POT_CFG_BITS * index), POT_CFG_TYPE_BITS);
|
||||
}
|
||||
|
||||
#if defined(NAVIGATION_X7) || defined(NAVIGATION_X9D)
|
||||
uint8_t MENU_FIRST_LINE_EDIT(const uint8_t * horTab, uint8_t horTabMax)
|
||||
{
|
||||
if (horTab) {
|
||||
uint8_t result = 0;
|
||||
while (result < horTabMax && horTab[result] >= HIDDEN_ROW)
|
||||
++result;
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t MODULE_BIND_ROWS(int moduleIdx)
|
||||
{
|
||||
if (isModuleCrossfire(moduleIdx))
|
||||
return 0;
|
||||
|
||||
if (isModuleMultimodule(moduleIdx)) {
|
||||
if (IS_RX_MULTI(moduleIdx))
|
||||
return 1;
|
||||
else
|
||||
return 2;
|
||||
}
|
||||
else if (isModuleXJTD8(moduleIdx) || isModuleSBUS(moduleIdx) || isModuleAFHDS3(moduleIdx) || isModuleDSMP(moduleIdx)) {
|
||||
return 1;
|
||||
}
|
||||
else if (isModulePPM(moduleIdx) || isModulePXX1(moduleIdx) || isModulePXX2(moduleIdx) || isModuleDSM2(moduleIdx)) {
|
||||
return 2;
|
||||
}
|
||||
else {
|
||||
return HIDDEN_ROW;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t MODULE_CHANNELS_ROWS(int moduleIdx)
|
||||
{
|
||||
if (!IS_MODULE_ENABLED(moduleIdx)) {
|
||||
return HIDDEN_ROW;
|
||||
}
|
||||
#if defined(MULTIMODULE)
|
||||
else if (isModuleMultimodule(moduleIdx)) {
|
||||
if (IS_RX_MULTI(moduleIdx))
|
||||
return HIDDEN_ROW;
|
||||
else if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
else if (isModuleDSM2(moduleIdx) || isModuleCrossfire(moduleIdx) ||
|
||||
isModuleGhost(moduleIdx) || isModuleSBUS(moduleIdx) ||
|
||||
isModuleDSMP(moduleIdx)) {
|
||||
// fixed number of channels
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
uint8_t MULTI_DISABLE_CHAN_MAP_ROW_STATIC(uint8_t moduleIdx)
|
||||
{
|
||||
if (!isModuleMultimodule(moduleIdx))
|
||||
return HIDDEN_ROW;
|
||||
|
||||
uint8_t protocol = g_model.moduleData[moduleIdx].multi.rfProtocol;
|
||||
if (protocol < MODULE_SUBTYPE_MULTI_LAST) {
|
||||
const mm_protocol_definition * pdef = getMultiProtocolDefinition(protocol);
|
||||
if (pdef->disable_ch_mapping)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return HIDDEN_ROW;
|
||||
}
|
||||
|
||||
uint8_t MULTI_DISABLE_CHAN_MAP_ROW(uint8_t moduleIdx)
|
||||
{
|
||||
if (!isModuleMultimodule(moduleIdx))
|
||||
return HIDDEN_ROW;
|
||||
|
||||
MultiModuleStatus &status = getMultiModuleStatus(moduleIdx);
|
||||
if (status.isValid()) {
|
||||
return status.supportsDisableMapping() == true ? 0 : HIDDEN_ROW;
|
||||
}
|
||||
|
||||
return MULTI_DISABLE_CHAN_MAP_ROW_STATIC(moduleIdx);
|
||||
}
|
||||
|
||||
bool MULTIMODULE_PROTOCOL_KNOWN(uint8_t moduleIdx)
|
||||
{
|
||||
if (!isModuleMultimodule(moduleIdx)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (g_model.moduleData[moduleIdx].multi.rfProtocol < MODULE_SUBTYPE_MULTI_LAST) {
|
||||
return true;
|
||||
}
|
||||
|
||||
MultiModuleStatus &status = getMultiModuleStatus(moduleIdx);
|
||||
if (status.isValid()) {
|
||||
return status.protocolValid();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MULTIMODULE_HAS_SUBTYPE(uint8_t moduleIdx)
|
||||
{
|
||||
MultiModuleStatus &status = getMultiModuleStatus(moduleIdx);
|
||||
int proto = g_model.moduleData[moduleIdx].multi.rfProtocol;
|
||||
|
||||
if (status.isValid()) {
|
||||
TRACE("(%d) status.protocolSubNbr = %d", proto, status.protocolSubNbr);
|
||||
return status.protocolSubNbr > 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (proto > MODULE_SUBTYPE_MULTI_LAST) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
auto subProto = getMultiProtocolDefinition(proto);
|
||||
return subProto->subTypeString != nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t MULTIMODULE_RFPROTO_COLUMNS(uint8_t moduleIdx)
|
||||
{
|
||||
#if LCD_W < 212
|
||||
if (g_model.moduleData[moduleIdx].multi.rfProtocol == MODULE_SUBTYPE_MULTI_DSM2)
|
||||
return (MULTIMODULE_HAS_SUBTYPE(moduleIdx) ? (uint8_t) 1 : HIDDEN_ROW);
|
||||
else
|
||||
return (MULTIMODULE_HAS_SUBTYPE(moduleIdx) ? (uint8_t) 0 : HIDDEN_ROW);
|
||||
#else
|
||||
return (MULTIMODULE_HAS_SUBTYPE(moduleIdx) ? (uint8_t) 1 : 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint8_t MULTIMODULE_HASOPTIONS(uint8_t moduleIdx)
|
||||
{
|
||||
if (!isModuleMultimodule(moduleIdx))
|
||||
return false;
|
||||
|
||||
uint8_t protocol = g_model.moduleData[moduleIdx].multi.rfProtocol;
|
||||
MultiModuleStatus &status = getMultiModuleStatus(moduleIdx);
|
||||
|
||||
if (status.isValid())
|
||||
return status.optionDisp;
|
||||
|
||||
if (protocol < MODULE_SUBTYPE_MULTI_LAST)
|
||||
return getMultiProtocolDefinition(protocol)->optionsstr != nullptr;
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
uint8_t MODULE_OPTION_ROW(uint8_t moduleIdx)
|
||||
{
|
||||
if(isModuleR9MNonAccess(moduleIdx) || isModuleSBUS(moduleIdx))
|
||||
return TITLE_ROW;
|
||||
if(isModuleAFHDS3(moduleIdx))
|
||||
return HIDDEN_ROW;
|
||||
if(isModuleGhost(moduleIdx))
|
||||
return 0;
|
||||
return MULTIMODULE_OPTIONS_ROW(moduleIdx);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user