[stock] Flash saving
[X9D] Navigation continued [sky9x] Mulaw codec added as an option
This commit is contained in:
+1
-1
@@ -442,7 +442,7 @@ RUN_FROM_FLASH = 1
|
||||
ifeq ($(PCB), X9D)
|
||||
# X9D, so ...
|
||||
OPT = 2
|
||||
CPPDEFS += -DPCBX9D -DPCBSKY9X -DEEPROM_VARIANT=0 -DAUDIO -DHAPTIC -DPXX -DDSM2 -DDSM2_PPM -DROTARY_ENCODERS=1
|
||||
CPPDEFS += -DPCBX9D -DPCBSKY9X -DEEPROM_VARIANT=0 -DAUDIO -DHAPTIC -DPXX -DDSM2 -DDSM2_PPM -DROTARY_ENCODERS=1 -DLCD212
|
||||
EXTRAINCDIRS += sky9x CoOS/kernel CoOS/portable
|
||||
BOARDSRC = board_sky9x.cpp
|
||||
SRC += sky9x/core_cm3.c sky9x/board_lowlevel.c sky9x/crt.c sky9x/vectors_sam3s.c
|
||||
|
||||
@@ -526,7 +526,6 @@ void menuGeneralSdManager(uint8_t event)
|
||||
if (m_posVert > 0) {
|
||||
uint8_t index = m_posVert-1-s_pgOfs;
|
||||
if (!reusableBuffer.sd.lines[index][SD_SCREEN_FILE_LENGTH+1]) {
|
||||
killEvents(event);
|
||||
f_chdir(reusableBuffer.sd.lines[index]);
|
||||
s_pgOfs = 0;
|
||||
m_posVert = 1;
|
||||
|
||||
@@ -34,14 +34,18 @@
|
||||
#ifndef lcd_h
|
||||
#define lcd_h
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
#define DISPLAY_W 212
|
||||
#define DISPLAY_H 64
|
||||
#define xcoord_t uint16_t
|
||||
#define CENTER "\016"
|
||||
#define CENTER_OFS (7*FW)
|
||||
#else
|
||||
#define DISPLAY_W 128
|
||||
#define DISPLAY_H 64
|
||||
#define xcoord_t uint8_t
|
||||
#define CENTER
|
||||
#define CENTER_OFS 0
|
||||
#endif
|
||||
|
||||
#define FW 6
|
||||
|
||||
+2
-2
@@ -204,7 +204,7 @@ void menuMainView(uint8_t event)
|
||||
{
|
||||
// Flight Phase Name
|
||||
uint8_t phase = s_perout_flight_phase;
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
uint8_t len = ZLEN(g_model.phaseData[phase].name);
|
||||
if (len > 0) {
|
||||
uint8_t tmp = (DISPLAY_W - 6*FW - 2 - len*FW/2);
|
||||
@@ -239,7 +239,7 @@ void menuMainView(uint8_t event)
|
||||
lcd_putcAtt(20*FW-3, 0*FH, '!', INVERS);
|
||||
}
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
// Main timer
|
||||
if (g_model.timers[0].mode) {
|
||||
uint8_t att = DBLSIZE | (s_timerState[0]==TMR_BEEPING ? BLINK|INVERS : 0);
|
||||
|
||||
+13
-17
@@ -120,10 +120,9 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
AUDIO_KEYPAD_DOWN();
|
||||
}
|
||||
|
||||
if (i_min==0 && i_max==1 && event==EVT_KEY_FIRST(KEY_MENU)) {
|
||||
if (i_min==0 && i_max==1 && event==EVT_KEY_BREAK(KEY_ENTER)) {
|
||||
s_editMode = 0;
|
||||
newval=!val;
|
||||
killEvents(event);
|
||||
newval = !val;
|
||||
}
|
||||
|
||||
#if defined (ROTARY_ENCODERS) || defined(NAVIGATION_POT1)
|
||||
@@ -165,7 +164,7 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
}
|
||||
|
||||
if (newval != val) {
|
||||
if ((~i_flags & NO_INCDEC_MARKS) && (newval==0 || newval==-100 || newval==+100)) {
|
||||
if ((~i_flags & NO_INCDEC_MARKS) && (newval != i_max) && (newval != i_min) && (newval==0 || newval==-100 || newval==+100)) {
|
||||
pauseEvents(event); // delay before auto-repeat continues
|
||||
if (newval>val) // without AUDIO it's optimized, because the 2 sounds are the same
|
||||
AUDIO_KEYPAD_UP();
|
||||
@@ -286,9 +285,8 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
if (!(s_warning || s_menu_count))
|
||||
CHECK_ROTARY_ENCODER(event);
|
||||
if (l_posVert < 0 && (event==EVT_KEY_FIRST(RE_NAV_ENTER) || event==EVT_KEY_FIRST(KEY_MENU))) {
|
||||
if (l_posVert < 0 && (event==EVT_KEY_BREAK(RE_NAV_ENTER) || event==EVT_KEY_BREAK(KEY_MENU))) {
|
||||
popMenu();
|
||||
killEvents(event);
|
||||
return false;
|
||||
}
|
||||
if (RE_NAV_ENABLE && event==EVT_KEY_BREAK(RE_NAV_ENTER)) {
|
||||
@@ -379,7 +377,7 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
s_noScroll = 0;
|
||||
displayScreenIndex(curr, menuTabSize, attr);
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
if (maxrow > 7)
|
||||
displayScrollbar(DISPLAY_W-1, FH, DISPLAY_H-FH, s_pgOfs, maxrow, 7);
|
||||
#endif
|
||||
@@ -632,19 +630,18 @@ void displayWarning(uint8_t event)
|
||||
lcd_puts(16, 5*FH, s_warning_type == WARNING_TYPE_CONFIRM ? STR_POPUPS : STR_EXIT);
|
||||
switch(event) {
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_FIRST(BTN_REa):
|
||||
case EVT_KEY_FIRST(BTN_REb):
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
case EVT_KEY_FIRST(KEY_ENTER):
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
if (s_warning_type == WARNING_TYPE_ASTERISK)
|
||||
break;
|
||||
s_warning_result = true;
|
||||
// no break
|
||||
case EVT_KEY_FIRST(KEY_EXIT):
|
||||
killEvents(event);
|
||||
case EVT_KEY_BREAK(KEY_EXIT):
|
||||
s_warning = 0;
|
||||
s_warning_type = WARNING_TYPE_ASTERISK;
|
||||
break;
|
||||
@@ -734,7 +731,7 @@ const char * displayMenu(uint8_t event)
|
||||
}
|
||||
|
||||
switch(event) {
|
||||
case EVT_KEY_FIRST(KEY_UP):
|
||||
case EVT_KEY_BREAK(KEY_UP):
|
||||
if (s_menu_item > 0)
|
||||
s_menu_item--;
|
||||
else if (s_menu_offset > 0) {
|
||||
@@ -742,7 +739,7 @@ const char * displayMenu(uint8_t event)
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
break;
|
||||
case EVT_KEY_FIRST(KEY_DOWN):
|
||||
case EVT_KEY_BREAK(KEY_DOWN):
|
||||
if (s_menu_item < display_count - 1 && s_menu_offset + s_menu_item + 1 < s_menu_count)
|
||||
s_menu_item++;
|
||||
else if (s_menu_count > s_menu_offset + display_count) {
|
||||
@@ -750,11 +747,10 @@ const char * displayMenu(uint8_t event)
|
||||
result = STR_UPDATE_LIST;
|
||||
}
|
||||
break;
|
||||
case EVT_KEY_FIRST(KEY_MENU):
|
||||
case EVT_KEY_BREAK(KEY_MENU):
|
||||
result = s_menu[s_menu_item];
|
||||
// no break
|
||||
case EVT_KEY_FIRST(KEY_EXIT):
|
||||
killEvents(event);
|
||||
case EVT_KEY_BREAK(KEY_EXIT):
|
||||
s_menu_count = 0;
|
||||
s_menu_item = 0;
|
||||
s_menu_flags = 0;
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ typedef void (*MenuFuncP)(uint8_t event);
|
||||
|
||||
void displayScreenIndex(uint8_t index, uint8_t count, uint8_t attr);
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
#define MENUS_SCROLLBAR_WIDTH 2
|
||||
#else
|
||||
#define MENUS_SCROLLBAR_WIDTH 0
|
||||
|
||||
+25
-31
@@ -294,7 +294,6 @@ void menuModelSelect(uint8_t event)
|
||||
if (s_copyMode) {
|
||||
sub = m_posVert = (s_copyMode == MOVE_MODE || s_copySrcRow<0) ? (MAX_MODELS+sub+s_copyTgtOfs) % MAX_MODELS : s_copySrcRow;
|
||||
s_copyMode = 0;
|
||||
killEvents(event);
|
||||
}
|
||||
break;
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
@@ -409,7 +408,6 @@ void menuModelSelect(uint8_t event)
|
||||
sub = m_posVert;
|
||||
}
|
||||
s_copyTgtOfs = next_ofs;
|
||||
killEvents(event);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
@@ -611,7 +609,11 @@ enum menuModelSetupItems {
|
||||
#define FIELD_TIMER_MAX 2
|
||||
#endif
|
||||
|
||||
#if defined(LCD212)
|
||||
#define MODEL_SETUP_2ND_COLUMN (DISPLAY_W-15*FW-MENUS_SCROLLBAR_WIDTH)
|
||||
#else
|
||||
#define MODEL_SETUP_2ND_COLUMN (DISPLAY_W-11*FW-MENUS_SCROLLBAR_WIDTH)
|
||||
#endif
|
||||
|
||||
void menuModelSetup(uint8_t event)
|
||||
{
|
||||
@@ -758,8 +760,7 @@ void menuModelSetup(uint8_t event)
|
||||
for (uint8_t i=0;i<NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS;i++)
|
||||
lcd_putsiAtt(MODEL_SETUP_2ND_COLUMN+i*FW, y, STR_RETA123, i, ((m_posHorz==i) && attr) ? BLINK|INVERS : ((g_model.beepANACenter & ((BeepANACenter)1<<i)) ? INVERS : 0 ) );
|
||||
if (attr) {
|
||||
if((event==EVT_KEY_FIRST(KEY_MENU)) || p1valdiff) {
|
||||
killEvents(event);
|
||||
if((event==EVT_KEY_BREAK(KEY_MENU)) || p1valdiff) {
|
||||
s_editMode = 0;
|
||||
g_model.beepANACenter ^= ((BeepANACenter)1<<m_posHorz);
|
||||
STORE_MODELVARS;
|
||||
@@ -870,7 +871,7 @@ static uint8_t s_currIdx;
|
||||
#define MIXES_2ND_COLUMN (11*FW)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
#define EXPO_ONE_2ND_COLUMN (DISPLAY_W - 88)
|
||||
#define EXPO_ONE_FP_WIDTH (9*FW)
|
||||
#else
|
||||
@@ -900,12 +901,12 @@ PhasesType editPhases(uint8_t x, uint8_t y, uint8_t event, PhasesType value, uin
|
||||
|
||||
uint8_t posHorz = m_posHorz;
|
||||
|
||||
#if defined(PCBSKY9X) && !defined(PCBX9D)
|
||||
#if defined(PCBSKY9X) && !defined(LCD212)
|
||||
bool expoMenu = (x==EXPO_ONE_2ND_COLUMN-2*FW);
|
||||
#endif
|
||||
|
||||
for (uint8_t p=0; p<MAX_PHASES; p++) {
|
||||
#if defined(PCBSKY9X) && !defined(PCBX9D)
|
||||
#if defined(PCBSKY9X) && !defined(LCD212)
|
||||
if (expoMenu && ((attr && p < posHorz-4) || (x > EXPO_ONE_2ND_COLUMN+2*FW)))
|
||||
continue;
|
||||
#endif
|
||||
@@ -914,8 +915,7 @@ PhasesType editPhases(uint8_t x, uint8_t y, uint8_t event, PhasesType value, uin
|
||||
}
|
||||
|
||||
if (attr) {
|
||||
if ((event==EVT_KEY_FIRST(KEY_MENU)) || p1valdiff) {
|
||||
killEvents(event);
|
||||
if ((event==EVT_KEY_BREAK(KEY_MENU)) || p1valdiff) {
|
||||
s_editMode = 0;
|
||||
value ^= (1<<posHorz);
|
||||
STORE_MODELVARS;
|
||||
@@ -1170,8 +1170,16 @@ void menuModelPhasesAll(uint8_t event)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#if defined(LCD212)
|
||||
if (p->fadeIn || p->fadeOut) {
|
||||
lcd_outdezAtt(24*FW, y, 5*p->fadeIn, PREC1|LEFT);
|
||||
lcd_putc(lcdLastPos, y, '/');
|
||||
lcd_outdezAtt(lcdLastPos+FW, y, 5*p->fadeOut, PREC1|LEFT);
|
||||
}
|
||||
#else
|
||||
if (p->fadeIn || p->fadeOut)
|
||||
lcd_putc(DISPLAY_W-FW, y, (p->fadeIn && p->fadeOut) ? '*' : (p->fadeIn ? 'I' : 'O'));
|
||||
lcd_putc(DISPLAY_W-FW-MENUS_SCROLLBAR_WIDTH, y, (p->fadeIn && p->fadeOut) ? '*' : (p->fadeIn ? 'I' : 'O'));
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
@@ -1353,7 +1361,6 @@ void menuModelCurveOne(uint8_t event)
|
||||
}
|
||||
break;
|
||||
case EVT_KEY_FIRST(KEY_EXIT):
|
||||
killEvents(event);
|
||||
if (s_editMode > 0) {
|
||||
if (--s_editMode == 0)
|
||||
m_posHorz = 0;
|
||||
@@ -1540,13 +1547,11 @@ void memswap(void *a, void *b, uint8_t size)
|
||||
uint8_t *y = (uint8_t*)b;
|
||||
uint8_t temp ;
|
||||
|
||||
pauseMixerCalculations();
|
||||
while (size--) {
|
||||
temp = *x;
|
||||
*x++ = *y;
|
||||
*y++ = temp;
|
||||
}
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
|
||||
bool swapExpoMix(uint8_t expo, uint8_t &idx, uint8_t up)
|
||||
@@ -1621,7 +1626,10 @@ bool swapExpoMix(uint8_t expo, uint8_t &idx, uint8_t up)
|
||||
size = sizeof(MixData);
|
||||
}
|
||||
|
||||
pauseMixerCalculations();
|
||||
memswap(x, y, size);
|
||||
resumeMixerCalculations();
|
||||
|
||||
idx = tgt_idx;
|
||||
return true;
|
||||
}
|
||||
@@ -2067,7 +2075,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t _event)
|
||||
putsSwitches(11*FW, y, ed->swtch, 0);
|
||||
lcd_putsnAtt(DISPLAY_W-sizeof(ed->name)*FW-MENUS_SCROLLBAR_WIDTH, y, ed->name, sizeof(ed->name), ZCHAR | (isExpoActive(i) ? BOLD : 0));
|
||||
}
|
||||
#if !defined(PCBX9D)
|
||||
#if !defined(LCD212)
|
||||
else
|
||||
#endif
|
||||
#endif
|
||||
@@ -2088,7 +2096,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t _event)
|
||||
if (md->name[0]) {
|
||||
lcd_putsnAtt(DISPLAY_W-sizeof(md->name)*FW-MENUS_SCROLLBAR_WIDTH, y, md->name, sizeof(md->name), ZCHAR | (isMixActive(i) ? BOLD : 0));
|
||||
}
|
||||
#if !defined(PCBX9D)
|
||||
#if !defined(LCD212)
|
||||
else
|
||||
#endif
|
||||
#endif
|
||||
@@ -2248,9 +2256,7 @@ void menuModelLimits(uint8_t event)
|
||||
if (event==EVT_KEY_LONG(KEY_MENU)) {
|
||||
s_noHi = NO_HI_LEN;
|
||||
killEvents(event);
|
||||
pauseMixerCalculations();
|
||||
moveTrimsToOffsets(); // if highlighted and menu pressed - move trims to offsets
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
}
|
||||
return;
|
||||
@@ -2286,21 +2292,12 @@ void menuModelLimits(uint8_t event)
|
||||
lcd_outdezAtt( 8*FW, y, ld->offset, attr|PREC1);
|
||||
#endif
|
||||
if (active) {
|
||||
int16_t new_offset = checkIncDec(event, ld->offset, -1000, 1000, EE_MODEL|NO_INCDEC_MARKS);
|
||||
#if defined(PCBGRUVIN9X)
|
||||
if (checkIncDec_Ret)
|
||||
#endif
|
||||
{
|
||||
pauseMixerCalculations();
|
||||
ld->offset = new_offset;
|
||||
resumeMixerCalculations();
|
||||
}
|
||||
ld->offset = checkIncDec(event, ld->offset, -1000, 1000, EE_MODEL|NO_INCDEC_MARKS);
|
||||
}
|
||||
else if (attr && event==EVT_KEY_LONG(KEY_MENU)) {
|
||||
pauseMixerCalculations();
|
||||
int32_t zero = (int32_t)g_chans512[k];
|
||||
s_perout_mode = e_perout_mode_nosticks+e_perout_mode_notrainer;
|
||||
perOut(0);
|
||||
perOut(e_perout_mode_nosticks+e_perout_mode_notrainer, 0);
|
||||
int32_t chan = chans[k];
|
||||
int8_t lim = ld->max+100;
|
||||
if (chan < 0) {
|
||||
@@ -2309,7 +2306,6 @@ void menuModelLimits(uint8_t event)
|
||||
}
|
||||
zero = (zero*100000 - 10*chan*lim) / (102400 - chan);
|
||||
ld->offset = (ld->revert) ? -zero : zero;
|
||||
s_perout_mode = e_perout_mode_normal;
|
||||
resumeMixerCalculations();
|
||||
s_editMode = 0;
|
||||
STORE_MODELVARS;
|
||||
@@ -2342,7 +2338,6 @@ void menuModelLimits(uint8_t event)
|
||||
if (checkIncDec_Ret && thrOutput(k)) {
|
||||
s_warning = STR_INVERT_THR;
|
||||
s_warning_type = WARNING_TYPE_CONFIRM;
|
||||
killEvents(event);
|
||||
}
|
||||
else
|
||||
ld->revert = revert_new;
|
||||
@@ -3275,7 +3270,6 @@ void menuModelTemplates(uint8_t event)
|
||||
if (event==EVT_KEY_FIRST(KEY_ENTER)) {
|
||||
s_warning = STR_VTEMPLATES+1 + (sub * LEN2_VTEMPLATES);
|
||||
s_warning_type = WARNING_TYPE_CONFIRM;
|
||||
killEvents(event);
|
||||
s_editMode = 0;
|
||||
}
|
||||
}
|
||||
|
||||
+20
-23
@@ -1293,7 +1293,7 @@ void message(const pm_char *title, const pm_char *t, const char *last MESSAGE_SO
|
||||
{
|
||||
lcd_clear();
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#if defined(LCD212)
|
||||
lcd_img(DISPLAY_W-29, 0, asterisk_lbm, 0, 0);
|
||||
#endif
|
||||
#if !defined(M64) || defined(EXTSTD)
|
||||
@@ -1735,9 +1735,7 @@ FORCEINLINE void evalTrims()
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t s_perout_mode = e_perout_mode_normal;
|
||||
|
||||
BeepANACenter evalSticks()
|
||||
BeepANACenter evalSticks(uint8_t mode)
|
||||
{
|
||||
BeepANACenter anaCenter = 0;
|
||||
|
||||
@@ -1791,7 +1789,7 @@ BeepANACenter evalSticks()
|
||||
}
|
||||
|
||||
if (ch < NUM_STICKS) { //only do this for sticks
|
||||
if (s_perout_mode == e_perout_mode_normal && (isFunctionActive(FUNC_TRAINER) || isFunctionActive(FUNC_TRAINER_RUD+ch))) {
|
||||
if (mode == e_perout_mode_normal && (isFunctionActive(FUNC_TRAINER) || isFunctionActive(FUNC_TRAINER_RUD+ch))) {
|
||||
// trainer mode
|
||||
TrainerMix* td = &g_eeGeneral.trainer.mix[ch];
|
||||
if (td->mode) {
|
||||
@@ -2203,11 +2201,11 @@ void evalFunctions()
|
||||
}
|
||||
|
||||
uint8_t s_perout_flight_phase;
|
||||
void perOut(uint8_t tick10ms)
|
||||
void perOut(uint8_t mode, uint8_t tick10ms)
|
||||
{
|
||||
BeepANACenter anaCenter = evalSticks();
|
||||
BeepANACenter anaCenter = evalSticks(mode);
|
||||
|
||||
if (s_perout_mode == e_perout_mode_normal) {
|
||||
if (mode == e_perout_mode_normal) {
|
||||
//===========BEEP CENTER================
|
||||
anaCenter &= g_model.beepANACenter;
|
||||
if(((bpanaCenter ^ anaCenter) & anaCenter)) AUDIO_POT_STICK_MIDDLE();
|
||||
@@ -2299,12 +2297,12 @@ void perOut(uint8_t tick10ms)
|
||||
//Notice 0 = NC switch means not used -> always on line
|
||||
uint8_t k = md->srcRaw-1;
|
||||
int16_t v = 0;
|
||||
if (s_perout_mode != e_perout_mode_normal) {
|
||||
if (mode != e_perout_mode_normal) {
|
||||
if (!sw || k >= NUM_STICKS || (k == THR_STICK && g_model.thrTrim)) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
if (!(s_perout_mode & e_perout_mode_nosticks))
|
||||
if (!(mode & e_perout_mode_nosticks))
|
||||
v = anas[k];
|
||||
}
|
||||
}
|
||||
@@ -2328,7 +2326,7 @@ void perOut(uint8_t tick10ms)
|
||||
bool apply_offset = true;
|
||||
if (sw) { // switch on? (if no switch selected => on)
|
||||
swTog = !swOn[i];
|
||||
if (s_perout_mode == e_perout_mode_normal) {
|
||||
if (mode == e_perout_mode_normal) {
|
||||
swOn[i] = true;
|
||||
if (md->delayUp) {
|
||||
if (swTog) {
|
||||
@@ -2392,7 +2390,7 @@ void perOut(uint8_t tick10ms)
|
||||
}
|
||||
|
||||
//========== TRIMS ===============
|
||||
if (!(s_perout_mode & e_perout_mode_notrims)) {
|
||||
if (!(mode & e_perout_mode_notrims)) {
|
||||
int8_t mix_trim = md->carryTrim;
|
||||
if (mix_trim < TRIM_ON)
|
||||
mix_trim = -mix_trim-1;
|
||||
@@ -2407,7 +2405,7 @@ void perOut(uint8_t tick10ms)
|
||||
int16_t weight = GET_GVAR(md->weight, -500, 500, s_perout_flight_phase);
|
||||
|
||||
//========== SPEED ===============
|
||||
if (s_perout_mode == e_perout_mode_normal && (md->speedUp || md->speedDown)) // there are delay values
|
||||
if (mode == e_perout_mode_normal && (md->speedUp || md->speedDown)) // there are delay values
|
||||
{
|
||||
#define DEL_MULT 256
|
||||
|
||||
@@ -2561,7 +2559,7 @@ inline void doMixerCalculations()
|
||||
for (uint8_t p=0; p<MAX_PHASES; p++) {
|
||||
if (s_fade_flight_phases & (1<<p)) {
|
||||
s_perout_flight_phase = p;
|
||||
perOut(tick10ms);
|
||||
perOut(e_perout_mode_normal, tick10ms);
|
||||
for (uint8_t i=0; i<NUM_CHNOUT; i++)
|
||||
sum_chans512[i] += (chans[i] / 16) * fp_act[p];
|
||||
weight += fp_act[p];
|
||||
@@ -2572,7 +2570,7 @@ inline void doMixerCalculations()
|
||||
}
|
||||
else {
|
||||
s_perout_flight_phase = phase;
|
||||
perOut(tick10ms);
|
||||
perOut(e_perout_mode_normal, tick10ms);
|
||||
}
|
||||
|
||||
//========== LIMITS ===============
|
||||
@@ -3163,9 +3161,7 @@ ISR(USART0_UDRE_vect)
|
||||
|
||||
void instantTrim()
|
||||
{
|
||||
s_perout_mode = e_perout_mode_notrainer;
|
||||
evalSticks();
|
||||
s_perout_mode = e_perout_mode_normal;
|
||||
evalSticks(e_perout_mode_notrainer);
|
||||
|
||||
for (uint8_t i=0; i<NUM_STICKS; i++) {
|
||||
if (i!=THR_STICK) {
|
||||
@@ -3184,15 +3180,14 @@ void moveTrimsToOffsets() // copy state of 3 primary to subtrim
|
||||
{
|
||||
int16_t zeros[NUM_CHNOUT];
|
||||
|
||||
s_perout_mode = e_perout_mode_noinput;
|
||||
perOut(0); // do output loop - zero input sticks and trims
|
||||
pauseMixerCalculations();
|
||||
|
||||
perOut(e_perout_mode_noinput, 0); // do output loop - zero input sticks and trims
|
||||
for (uint8_t i=0; i<NUM_CHNOUT; i++) {
|
||||
zeros[i] = applyLimits(i, chans[i]);
|
||||
}
|
||||
|
||||
s_perout_mode = e_perout_mode_nosticks+e_perout_mode_notrainer;
|
||||
perOut(0); // do output loop - only trims
|
||||
s_perout_mode = e_perout_mode_normal;
|
||||
perOut(e_perout_mode_nosticks+e_perout_mode_notrainer, 0); // do output loop - only trims
|
||||
|
||||
for (uint8_t i=0; i<NUM_CHNOUT; i++) {
|
||||
int16_t output = applyLimits(i, chans[i]) - zeros[i];
|
||||
@@ -3215,6 +3210,8 @@ void moveTrimsToOffsets() // copy state of 3 primary to subtrim
|
||||
}
|
||||
}
|
||||
|
||||
resumeMixerCalculations();
|
||||
|
||||
STORE_MODELVARS;
|
||||
AUDIO_WARNING2();
|
||||
}
|
||||
|
||||
+3
-5
@@ -482,7 +482,7 @@ class Key
|
||||
public:
|
||||
void input(bool val, EnumKeys enuk);
|
||||
bool state() { return m_vals > 0; }
|
||||
void pauseEvents() { m_state = KSTATE_PAUSE; m_cnt = 0;}
|
||||
void pauseEvents() { m_state = KSTATE_PAUSE; m_cnt = 0; }
|
||||
void killEvents() { m_state = KSTATE_KILLED; }
|
||||
};
|
||||
|
||||
@@ -687,8 +687,6 @@ enum PerOutMode {
|
||||
e_perout_mode_noinput = e_perout_mode_notrainer+e_perout_mode_notrims+e_perout_mode_nosticks
|
||||
};
|
||||
|
||||
extern uint8_t s_perout_mode;
|
||||
|
||||
#ifndef FORCEINLINE
|
||||
#define FORCEINLINE inline __attribute__ ((always_inline))
|
||||
#endif
|
||||
@@ -702,8 +700,8 @@ extern uint8_t s_perout_mode;
|
||||
|
||||
extern uint8_t s_perout_flight_phase;
|
||||
|
||||
void perOut(uint8_t tick10ms);
|
||||
void perMain();
|
||||
void perOut(uint8_t mode, uint8_t tick10ms);
|
||||
void perMain();
|
||||
NOINLINE void per10ms();
|
||||
|
||||
int16_t getValue(uint8_t i);
|
||||
|
||||
@@ -257,8 +257,8 @@
|
||||
#define TR_FADEIN "Fade In"
|
||||
#define TR_FADEOUT "Fade Out"
|
||||
#define TR_DEFAULT "(default)"
|
||||
#define TR_CHECKTRIMS "\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_CHECKTRIMS CENTER"\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Swash Type"
|
||||
#define TR_COLLECTIVE "Collective"
|
||||
#define TR_SWASHRING "Swash Ring"
|
||||
|
||||
+8
-3
@@ -96,7 +96,7 @@ def generate(str, idx, alternate=0):
|
||||
os.remove(temp)
|
||||
else:
|
||||
os.rename(result, temp)
|
||||
subprocess.Popen(["ffmpeg", "-y", "-i", temp, "-acodec", "pcm_alaw", "-ar", "16000", result], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait()
|
||||
subprocess.Popen(["ffmpeg", "-y", "-i", temp, "-acodec", defaultcodec, "-ar", "16000", result], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait()
|
||||
os.remove(temp)
|
||||
elif board == 'gruvin9x':
|
||||
subprocess.Popen(["AD4CONVERTER", "-E4", result], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait()
|
||||
@@ -135,7 +135,12 @@ if __name__ == "__main__":
|
||||
# tts.SetRate(1)
|
||||
if "list" in sys.argv:
|
||||
print tts.GetVoiceNames()
|
||||
|
||||
|
||||
if "mulaw" in sys.argv:
|
||||
defaultcodec = "pcm_mulaw"
|
||||
else:
|
||||
defaultcodec = "pcm_alaw"
|
||||
|
||||
if "en" in sys.argv:
|
||||
if "sapi" in sys.argv:
|
||||
if "scottish" in sys.argv:
|
||||
@@ -147,7 +152,7 @@ if __name__ == "__main__":
|
||||
elif "australian" in sys.argv:
|
||||
tts.SetVoiceByName("ScanSoftKaren_Full_22kHz")
|
||||
voice = "english-australian"
|
||||
elif "irish" in sys.argv:
|
||||
elif "irish" in sys.argv:
|
||||
tts.SetVoiceByName("ScanSoftMoira_Full_22kHz")
|
||||
voice = "english-irish"
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user