New option DBLKEYS
Flash saving Issue 86 fixed (could be made an option in the future)
This commit is contained in:
+9
-1
@@ -79,10 +79,14 @@ TEMPLATES = YES
|
||||
# POTS (POT1, POT2, POT3),
|
||||
NAVIGATION = NO
|
||||
|
||||
# Switches autmatic selection
|
||||
# Switches automatic selection
|
||||
# Values = YES, NO
|
||||
AUTOSWITCH = NO
|
||||
|
||||
# Double keys support (+/- means invert, +/up means max, -/dwn means min, up/down means reset to default)
|
||||
# Values = YES, NO
|
||||
DBLKEYS = NO
|
||||
|
||||
# AUDIO Mods
|
||||
# Values = YES, NO
|
||||
AUDIO = NO
|
||||
@@ -311,6 +315,10 @@ ifeq ($(AUTOSWITCH), YES)
|
||||
CPPDEFS += -DAUTOSWITCH
|
||||
endif
|
||||
|
||||
ifeq ($(DBLKEYS), YES)
|
||||
CPPDEFS += -DDBLKEYS
|
||||
endif
|
||||
|
||||
ifeq ($(SPLASH), YES)
|
||||
CPPDEFS += -DSPLASH
|
||||
endif
|
||||
|
||||
+6
-6
@@ -73,6 +73,7 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
{
|
||||
int16_t newval = val;
|
||||
|
||||
#if defined(DBLKEYS)
|
||||
if (keyState(KEY_RIGHT) && keyState(KEY_LEFT)) {
|
||||
newval = -val;
|
||||
killEvents(KEY_LEFT);
|
||||
@@ -93,8 +94,9 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
killEvents(KEY_UP);
|
||||
killEvents(KEY_DOWN);
|
||||
}
|
||||
else
|
||||
|
||||
else
|
||||
#endif
|
||||
|
||||
if (event==EVT_KEY_FIRST(KEY_RIGHT) || event==EVT_KEY_REPT(KEY_RIGHT) || (s_editMode>0 && (event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)))) {
|
||||
newval++;
|
||||
AUDIO_KEYPAD_UP();
|
||||
@@ -117,10 +119,8 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
|
||||
#if defined(AUTOSWITCH)
|
||||
if (s_editMode>0 && (i_flags & INCDEC_SWITCH)) {
|
||||
uint8_t swtch = getMovedSwitch();
|
||||
if (swtch) {
|
||||
newval = (val == swtch ? -swtch : swtch);
|
||||
}
|
||||
int8_t swtch = getMovedSwitch();
|
||||
if (swtch) newval = swtch;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
+23
-35
@@ -819,14 +819,22 @@ void menuProcModel(uint8_t event)
|
||||
|
||||
static uint8_t s_currIdx;
|
||||
|
||||
#ifdef FLIGHT_PHASES
|
||||
|
||||
#if defined(TRANSLATIONS_CZ)
|
||||
#define PHASES_EDIT_2ND_COLUMN 12*FW
|
||||
#if defined(TRANSLATIONS_FR) || defined(TRANSLATIONS_CZ)
|
||||
#define MIXES_2ND_COLUMN (13*FW)
|
||||
#else
|
||||
#define PHASES_EDIT_2ND_COLUMN 10*FW
|
||||
#define MIXES_2ND_COLUMN (9*FW)
|
||||
#endif
|
||||
|
||||
uint8_t editDelay(const uint8_t y, const uint8_t event, const uint8_t attr, const pm_char *str, uint8_t delay)
|
||||
{
|
||||
lcd_putsLeft(y, str);
|
||||
lcd_outdezAtt(MIXES_2ND_COLUMN, y, 5*delay, attr|PREC1|LEFT);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, delay, 0, MAX_DELAY);
|
||||
return delay;
|
||||
}
|
||||
|
||||
#ifdef FLIGHT_PHASES
|
||||
|
||||
void menuProcPhaseOne(uint8_t event)
|
||||
{
|
||||
PhaseData *phase = phaseaddress(s_currIdx);
|
||||
@@ -844,17 +852,17 @@ void menuProcPhaseOne(uint8_t event)
|
||||
switch(i) {
|
||||
case 0:
|
||||
lcd_putsLeft( y, STR_NAME);
|
||||
EditName(PHASES_EDIT_2ND_COLUMN, y, phase->name, sizeof(phase->name), event, attr, m_posHorz);
|
||||
EditName(MIXES_2ND_COLUMN, y, phase->name, sizeof(phase->name), event, attr, m_posHorz);
|
||||
break;
|
||||
case 1:
|
||||
lcd_putsLeft( y, STR_SWITCH);
|
||||
putsSwitches(PHASES_EDIT_2ND_COLUMN, y, phase->swtch, attr);
|
||||
putsSwitches(MIXES_2ND_COLUMN, y, phase->swtch, attr);
|
||||
if (attr) CHECK_INCDEC_MODELSWITCH(event, phase->swtch, -MAX_SWITCH, MAX_SWITCH);
|
||||
break;
|
||||
case 2:
|
||||
lcd_putsLeft( y, STR_TRIMS);
|
||||
for (uint8_t t=0; t<NUM_STICKS; t++) {
|
||||
putsTrimMode(PHASES_EDIT_2ND_COLUMN+(t*FW), y, s_currIdx, t, (attr && m_posHorz==t) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);
|
||||
putsTrimMode(MIXES_2ND_COLUMN+(t*FW), y, s_currIdx, t, (attr && m_posHorz==t) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);
|
||||
if (attr && m_posHorz==t && ((s_editMode>0) || p1valdiff)) {
|
||||
int16_t v = getRawTrimValue(s_currIdx, t);
|
||||
if (v < TRIM_EXTENDED_MAX) v = TRIM_EXTENDED_MAX;
|
||||
@@ -867,7 +875,7 @@ void menuProcPhaseOne(uint8_t event)
|
||||
}
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
for (uint8_t t=0; t<NUM_ROTARY_ENCODERS; t++) {
|
||||
putsRotaryEncoderMode(PHASES_EDIT_2ND_COLUMN+((4+t)*FW)+2, y, s_currIdx, t, (attr && m_posHorz==4+t) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);
|
||||
putsRotaryEncoderMode(MIXES_2ND_COLUMN+((4+t)*FW)+2, y, s_currIdx, t, (attr && m_posHorz==4+t) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);
|
||||
if (attr && m_posHorz==4+t && ((s_editMode>0) || p1valdiff)) {
|
||||
#if defined(EXTRA_ROTARY_ENCODERS)
|
||||
int16_t v;
|
||||
@@ -896,14 +904,10 @@ void menuProcPhaseOne(uint8_t event)
|
||||
#endif
|
||||
break;
|
||||
case 3:
|
||||
lcd_putsLeft(y, STR_FADEIN);
|
||||
lcd_outdezAtt(PHASES_EDIT_2ND_COLUMN, y, phase->fadeIn*5, attr|PREC1|LEFT);
|
||||
if(attr) CHECK_INCDEC_MODELVAR(event, phase->fadeIn, 0, 15);
|
||||
phase->fadeIn = editDelay(y, event, attr, STR_FADEIN, phase->fadeIn);
|
||||
break;
|
||||
case 4:
|
||||
lcd_putsLeft( y, STR_FADEOUT);
|
||||
lcd_outdezAtt(PHASES_EDIT_2ND_COLUMN, y, phase->fadeOut*5, attr|PREC1|LEFT);
|
||||
if(attr) CHECK_INCDEC_MODELVAR(event, phase->fadeOut, 0, 15);
|
||||
phase->fadeOut = editDelay(y, event, attr, STR_FADEOUT, phase->fadeOut);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1584,22 +1588,6 @@ enum MixFields {
|
||||
MIX_FIELD_COUNT
|
||||
};
|
||||
|
||||
#if defined(TRANSLATIONS_FR)
|
||||
#define MIXES_2ND_COLUMN (13*FW)
|
||||
#elif defined(TRANSLATIONS_CZ)
|
||||
#define MIXES_2ND_COLUMN (13*FW)
|
||||
#else
|
||||
#define MIXES_2ND_COLUMN (9*FW)
|
||||
#endif
|
||||
|
||||
uint8_t editMixDelay(const uint8_t y, const uint8_t event, const uint8_t attr, const pm_char *str, uint8_t delay)
|
||||
{
|
||||
lcd_putsLeft(y, str);
|
||||
lcd_outdezAtt(MIXES_2ND_COLUMN, y, 5*delay, attr|PREC1|LEFT);
|
||||
if (attr) CHECK_INCDEC_MODELVAR(event, delay, 0, MAX_DELAY);
|
||||
return delay;
|
||||
}
|
||||
|
||||
void menuProcMixOne(uint8_t event)
|
||||
{
|
||||
TITLEP(s_currCh ? STR_INSERTMIX : STR_EDITMIX);
|
||||
@@ -1731,16 +1719,16 @@ void menuProcMixOne(uint8_t event)
|
||||
if(attr) CHECK_INCDEC_MODELVAR( event, md2->mltpx, 0, 2);
|
||||
break;
|
||||
case MIX_FIELD_DELAY_UP:
|
||||
md2->delayUp = editMixDelay(y, event, attr, STR_DELAYUP, md2->delayUp);
|
||||
md2->delayUp = editDelay(y, event, attr, STR_DELAYUP, md2->delayUp);
|
||||
break;
|
||||
case MIX_FIELD_DELAY_DOWN:
|
||||
md2->delayDown = editMixDelay(y, event, attr, STR_DELAYDOWN, md2->delayDown);
|
||||
md2->delayDown = editDelay(y, event, attr, STR_DELAYDOWN, md2->delayDown);
|
||||
break;
|
||||
case MIX_FIELD_SLOW_UP:
|
||||
md2->speedUp = editMixDelay(y, event, attr, STR_SLOWUP, md2->speedUp);
|
||||
md2->speedUp = editDelay(y, event, attr, STR_SLOWUP, md2->speedUp);
|
||||
break;
|
||||
case MIX_FIELD_SLOW_DOWN:
|
||||
md2->speedDown = editMixDelay(y, event, attr, STR_SLOWDOWN, md2->speedDown);
|
||||
md2->speedDown = editDelay(y, event, attr, STR_SLOWDOWN, md2->speedDown);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -184,7 +184,7 @@ PACK(typedef struct t_ExpoData {
|
||||
PACK(typedef struct t_ExpoData {
|
||||
uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both
|
||||
uint8_t chn:2;
|
||||
uint8_t curve:4; // 0=no curve, 1-6=std curves, 7-10=CV1-CV4, 11-15=CV9-CV13
|
||||
uint8_t curve:4; // 0=no curve, 1-6=std curves, 7-14=CV1-CV8
|
||||
int8_t swtch:5;
|
||||
uint8_t phase:3; // if negPhase is 0: 0=normal, 5=FP4 if negPhase is 1: 5=!FP4
|
||||
uint8_t negPhase:1;
|
||||
|
||||
+1
-1
@@ -789,7 +789,7 @@ int8_t getMovedSwitch()
|
||||
bool next = __getSwitch(i);
|
||||
if (prev != next) {
|
||||
if (i!=MAX_PSWITCH || next==true)
|
||||
result = i;
|
||||
result = next ? i : -i;
|
||||
if (mask)
|
||||
switches_states ^= mask;
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user