From b5a030c9dfd5b929dec3dd1f49edda735125e0e1 Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 4 Oct 2012 12:41:07 +0000 Subject: [PATCH] [all] Code refactoring --- src/general_menus.cpp | 100 +++++++--------------------------------- src/model_menus.cpp | 103 ++++++++---------------------------------- src/open9x.h | 79 +++++++++++++++++++++++++++++++- 3 files changed, 113 insertions(+), 169 deletions(-) diff --git a/src/general_menus.cpp b/src/general_menus.cpp index f4900dc27..47f2407c5 100644 --- a/src/general_menus.cpp +++ b/src/general_menus.cpp @@ -98,38 +98,22 @@ void displaySlider(uint8_t x, uint8_t y, uint8_t value, uint8_t attr) #endif enum menuGeneralSetupItems { -#if defined(RTCLOCK) - ITEM_SETUP_RTC, -#endif + IF_RTCLOCK(ITEM_SETUP_RTC) ITEM_SETUP_BEEPER_MODE, ITEM_SETUP_BEEPER_LENGTH, -#if defined(AUDIO) - ITEM_SETUP_SPEAKER_PITCH, -#endif -#if defined(VOICE) - ITEM_SETUP_SPEAKER_VOLUME, -#endif -#if defined(HAPTIC) - ITEM_SETUP_HAPTIC_MODE, - ITEM_SETUP_HAPTIC_LENGTH, - ITEM_SETUP_HAPTIC_STRENGTH, -#endif -#if defined(PCBSKY9X) - ITEM_SETUP_BRIGHTNESS, -#endif + IF_AUDIO(ITEM_SETUP_SPEAKER_PITCH) + IF_VOICE(ITEM_SETUP_SPEAKER_VOLUME) + IF_HAPTIC(ITEM_SETUP_HAPTIC_MODE) + IF_HAPTIC(ITEM_SETUP_HAPTIC_LENGTH) + IF_HAPTIC(ITEM_SETUP_HAPTIC_STRENGTH) + IF_PCBSKY9X(ITEM_SETUP_BRIGHTNESS) ITEM_SETUP_CONTRAST, ITEM_SETUP_BATTERY_WARNING, -#if defined(PCBSKY9X) - ITEM_SETUP_CAPACITY_WARNING, - ITEM_SETUP_TEMPERATURE_WARNING, -#endif + IF_PCBSKY9X(ITEM_SETUP_CAPACITY_WARNING) + IF_PCBSKY9X(ITEM_SETUP_TEMPERATURE_WARNING) ITEM_SETUP_INACTIVITY_ALARM, -#if defined(BLUETOOTH) - ITEM_SETUP_BT_BAUDRATE, -#endif -#if defined(ROTARY_ENCODERS) - ITEM_SETUP_RE_NAVIGATION, -#endif + IF_BLUETOOTH(ITEM_SETUP_BT_BAUDRATE) + IF_ROTARY_ENCODERS(ITEM_SETUP_RE_NAVIGATION) ITEM_SETUP_FILTER_ADC, ITEM_SETUP_THROTTLE_REVERSED, ITEM_SETUP_MINUTE_BEEP, @@ -137,15 +121,11 @@ enum menuGeneralSetupItems { ITEM_SETUP_FLASH_BEEP, ITEM_SETUP_BACKLIGHT_MODE, ITEM_SETUP_BACKLIGHT_DELAY, -#if defined(SPLASH) - ITEM_SETUP_DISABLE_SPLASH, -#endif + IF_SPLASH(ITEM_SETUP_DISABLE_SPLASH) ITEM_SETUP_MEMORY_WARNING, ITEM_SETUP_ALARM_WARNING, -#if defined(FRSKY) - ITEM_SETUP_TIMEZONE, - ITEM_SETUP_GPSFORMAT, -#endif + IF_FRSKY(ITEM_SETUP_TIMEZONE) + IF_FRSKY(ITEM_SETUP_GPSFORMAT) ITEM_SETUP_RX_CHANNEL_ORD, ITEM_SETUP_STICK_MODE_LABELS, ITEM_SETUP_STICK_MODE, @@ -154,53 +134,7 @@ enum menuGeneralSetupItems { void menuGeneralSetup(uint8_t event) { -#ifdef RTCLOCK -#define RTC_ZEROS 5, -#else -#define RTC_ZEROS -#endif -#ifdef AUDIO -#define AUDIO_ZEROS 0, -#else -#define AUDIO_ZEROS -#endif -#ifdef VOICE -#define VOICE_ZEROS 0, -#else -#define VOICE_ZEROS -#endif -#ifdef HAPTIC -#define HAPTIC_ZEROS 0, 0, 0, -#else -#define HAPTIC_ZEROS -#endif -#ifdef SPLASH -#define SPLASH_ZEROS 0, -#else -#define SPLASH_ZEROS -#endif -#ifdef FRSKY -#define FRSKY_ZEROS 0, 0, -#else -#define FRSKY_ZEROS -#endif -#ifdef PCBSKY9X -#define ARM_ZEROS 0, 0, 0, -#else -#define ARM_ZEROS -#endif -#ifdef BLUETOOTH -#define BLUETOOTH_ZEROS 0, -#else -#define BLUETOOTH_ZEROS -#endif -#ifdef ROTARY_ENCODERS -#define ROTARY_ENCODERS_ZEROS 0, -#else -#define ROTARY_ENCODERS_ZEROS -#endif - - MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, RTC_ZEROS 0, 0, AUDIO_ZEROS VOICE_ZEROS HAPTIC_ZEROS ARM_ZEROS 0, 0, 0, BLUETOOTH_ZEROS ROTARY_ENCODERS_ZEROS 0, 0, 0, 0, 0, 0, 0, SPLASH_ZEROS 0, 0, FRSKY_ZEROS 0, (uint8_t)-1, 1}); + MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(5) 0, 0, IF_AUDIO(0) IF_VOICE(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_PCBSKY9X(0) 0, 0, IF_PCBSKY9X(0) IF_PCBSKY9X(0) 0, IF_BLUETOOTH(0) IF_ROTARY_ENCODERS(0) 0, 0, 0, 0, 0, 0, 0, IF_SPLASH(0) 0, 0, IF_FRSKY(0) IF_FRSKY(0) 0, (uint8_t)-1, 1}); uint8_t sub = m_posVert - 1; @@ -431,7 +365,7 @@ void menuGeneralSetup(uint8_t event) if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.lightAutoOff, 0, 600/5); break; -#ifdef SPLASH +#if defined(SPLASH) case ITEM_SETUP_DISABLE_SPLASH: { uint8_t b = 1-g_eeGeneral.disableSplashScreen; @@ -519,8 +453,6 @@ void menuGeneralSdManagerInfo(uint8_t event) lcd_putsLeft(5*FH, PSTR("Speed:")); lcd_outdezAtt(10*FW, 5*FH, SD_GET_SPEED()/1000, LEFT); lcd_puts(lcdLastPos, 5*FH, "kb/s"); - - // lcd_putsLeft(7*FH, PSTR("CSD:")); } void menuGeneralSdManager(uint8_t event) diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 8fed58573..733e52349 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -40,26 +40,16 @@ enum EnumTabModel { e_ModelSelect, e_Model, -#ifdef HELI - e_Heli, -#endif -#ifdef FLIGHT_PHASES - e_PhasesAll, -#endif + IF_HELI(e_Heli) + IF_FLIGHT_PHASES(e_PhasesAll) e_ExposAll, e_MixAll, e_Limits, -#ifdef CURVES - e_CurvesAll, -#endif + IF_CURVES(e_CurvesAll) e_CustomSwitches, e_FunctionSwitches, -#ifdef FRSKY - e_Telemetry, -#endif -#ifdef TEMPLATES - e_Templates -#endif + IF_FRSKY(e_Telemetry) + IF_TEMPLATES(e_Templates) }; void menuModelSelect(uint8_t event); @@ -87,26 +77,16 @@ void menuModelExpoOne(uint8_t event); const MenuFuncP_PROGMEM menuTabModel[] PROGMEM = { menuModelSelect, menuModelSetup, -#ifdef HELI - menuModelHeli, -#endif -#ifdef FLIGHT_PHASES - menuModelPhasesAll, -#endif + IF_HELI(menuModelHeli) + IF_FLIGHT_PHASES(menuModelPhasesAll) menuModelExposAll, menuModelMixAll, menuModelLimits, -#ifdef CURVES - menuModelCurvesAll, -#endif + IF_CURVES(menuModelCurvesAll) menuModelCustomSwitches, menuModelFunctionSwitches, -#ifdef FRSKY - menuModelTelemetry, -#endif -#ifdef TEMPLATES - menuModelTemplates -#endif + IF_FRSKY(menuModelTelemetry) + IF_TEMPLATES(menuModelTemplates) }; #define COPY_MODE 1 @@ -1459,44 +1439,22 @@ bool swapExpoMix(uint8_t expo, uint8_t &idx, uint8_t up) } enum ExposFields { -#ifdef PCBSKY9X - EXPO_FIELD_NAME, -#endif + IF_PCBSKY9X(EXPO_FIELD_NAME) EXPO_FIELD_WIDTH, EXPO_FIELD_EXPO, -#ifdef CURVES - EXPO_FIELD_CURVE, -#endif -#ifdef FLIGHT_PHASES - EXPO_FIELD_FLIGHT_PHASE, -#endif + IF_CURVES(EXPO_FIELD_CURVE) + IF_FLIGHT_PHASES(EXPO_FIELD_FLIGHT_PHASE) EXPO_FIELD_SWITCH, EXPO_FIELD_SIDE, EXPO_FIELD_MAX }; -#if defined(PCBSKY9X) -#define EXPO_ONE_ARM_ROW sizeof(ed->name), -#else -#define EXPO_ONE_ARM_ROW -#endif -#if defined(CURVES) -#define EXPO_ONE_CURVES_ROW 1, -#else -#define EXPO_ONE_CURVES_ROW -#endif -#if defined(FLIGHT_PHASES) -#define EXPO_ONE_PHASES_ROW MAX_PHASES-1, -#else -#define EXPO_ONE_PHASES_ROW -#endif - void menuModelExpoOne(uint8_t event) { ExpoData *ed = expoaddress(s_currIdx); putsChnRaw(7*FW+FW/2,0,ed->chn+1,0); - SUBMENU(STR_MENUDREXPO, EXPO_FIELD_MAX, {EXPO_ONE_ARM_ROW 0, 0, EXPO_ONE_CURVES_ROW EXPO_ONE_PHASES_ROW 0 /*, ...*/}); + SUBMENU(STR_MENUDREXPO, EXPO_FIELD_MAX, {IF_PCBSKY9X(sizeof(ed->name)) 0, 0, IF_CURVES(1) IF_FLIGHT_PHASES(MAX_PHASES-1) 0 /*, ...*/}); int8_t sub = m_posVert; @@ -1577,20 +1535,14 @@ void menuModelExpoOne(uint8_t event) } enum MixFields { -#if defined(PCBSKY9X) - MIX_FIELD_NAME, -#endif + IF_PCBSKY9X(MIX_FIELD_NAME) MIX_FIELD_SOURCE, MIX_FIELD_WEIGHT, MIX_FIELD_OFFSET, MIX_FIELD_TRIM, -#if defined(CURVES) - MIX_FIELD_CURVE, -#endif + IF_CURVES(MIX_FIELD_CURVE) MIX_FIELD_SWITCH, -#if defined(FLIGHT_PHASES) - MIX_FIELD_FLIGHT_PHASE, -#endif + IF_FLIGHT_PHASES(MIX_FIELD_FLIGHT_PHASE) MIX_FIELD_WARNING, MIX_FIELD_MLTPX, MIX_FIELD_DELAY_UP, @@ -1600,29 +1552,13 @@ enum MixFields { MIX_FIELD_COUNT }; -#if defined(PCBSKY9X) -#define MIX_ONE_ARM_ROW sizeof(md2->name), -#else -#define MIX_ONE_ARM_ROW -#endif -#if defined(CURVES) -#define MIX_ONE_CURVES_ROW 1, -#else -#define MIX_ONE_CURVES_ROW -#endif -#if defined(FLIGHT_PHASES) -#define MIX_ONE_PHASES_ROW MAX_PHASES-1, -#else -#define MIX_ONE_PHASES_ROW -#endif - void menuModelMixOne(uint8_t event) { TITLEP(s_currCh ? STR_INSERTMIX : STR_EDITMIX); MixData *md2 = mixaddress(s_currIdx) ; putsChn(lcdLastPos+1*FW,0,md2->destCh+1,0); - SUBMENU_NOTITLE(MIX_FIELD_COUNT, {MIX_ONE_ARM_ROW 0, 0, 0, 1, MIX_ONE_CURVES_ROW 0, MIX_ONE_PHASES_ROW 0 /*, ...*/}); + SUBMENU_NOTITLE(MIX_FIELD_COUNT, {IF_PCBSKY9X(sizeof(md2->name)) 0, 0, 0, 1, IF_CURVES(1) 0, IF_FLIGHT_PHASES(MAX_PHASES-1) 0 /*, ...*/}); int8_t sub = m_posVert; @@ -2090,7 +2026,6 @@ enum LimitsItems { #endif #endif - void menuModelLimits(uint8_t event) { MENU(STR_MENULIMITS, menuTabModel, e_Limits, 1+NUM_CHNOUT+1, {0, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, 0}); @@ -3050,7 +2985,7 @@ void menuModelTelemetry(uint8_t event) } #endif -#ifdef TEMPLATES +#if defined(TEMPLATES) void menuModelTemplates(uint8_t event) { SIMPLE_MENU(STR_MENUTEMPLATES, menuTabModel, e_Templates, 1+TMPL_COUNT); diff --git a/src/open9x.h b/src/open9x.h index 4df8408e7..82ad988b4 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -36,13 +36,90 @@ #define MAJ_VERS 2 #define MIN_VERS 00 +#define EEPROM_VARIANTS (0x00) #include #include #include #include -#define EEPROM_VARIANTS (0x00) +#if defined(PCBSKY9X) +#define IF_PCBSKY9X(x) x, +#else +#define IF_PCBSKY9X(x) +#endif + +#if defined(RTCLOCK) +#define IF_RTCLOCK(x) x, +#else +#define IF_RTCLOCK(x) +#endif + +#if defined(AUDIO) +#define IF_AUDIO(x) x, +#else +#define IF_AUDIO(x) +#endif + +#if defined(VOICE) +#define IF_VOICE(x) x, +#else +#define IF_VOICE(x) +#endif + +#if defined(HAPTIC) +#define IF_HAPTIC(x) x, +#else +#define IF_HAPTIC(x) +#endif + +#if defined(SPLASH) +#define IF_SPLASH(x) x, +#else +#define IF_SPLASH(x) +#endif + +#if defined(FRSKY) +#define IF_FRSKY(x) x, +#else +#define IF_FRSKY(x) +#endif + +#if defined(ROTARY_ENCODERS) +#define IF_ROTARY_ENCODERS(x) x, +#else +#define IF_ROTARY_ENCODERS(x) +#endif + +#if defined(BLUETOOTH) +#define IF_BLUETOOTH(x) x, +#else +#define IF_BLUETOOTH(x) +#endif + +#if defined(HELI) +#define IF_HELI(x) x, +#else +#define IF_HELI(x) +#endif + +#if defined(TEMPLATES) +#define IF_TEMPLATES(x) x, +#else +#define IF_TEMPLATES(x) +#endif + +#if defined(FLIGHT_PHASES) +#define IF_FLIGHT_PHASES(x) x, +#else +#define IF_FLIGHT_PHASES(x) +#endif + +#if defined(CURVES) +#define IF_CURVES(x) x, +#else +#define IF_CURVES(x) +#endif #if defined(PCBSTD) #define WDT_RESET_STOCK() wdt_reset()