New option DBLKEYS

Flash saving
Issue 86 fixed (could be made an option in the future)
This commit is contained in:
bsongis
2012-08-19 16:56:43 +00:00
parent de18436cda
commit 6bba0a5311
5 changed files with 40 additions and 44 deletions
+9 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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