diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 658a4c780..6df068209 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -179,7 +179,7 @@ void menuProcModelSelect(uint8_t event) if (!check_submenu_simple(_event_, MAX_MODELS-1)) return; int8_t sub = m_posVert; - lcd_puts_P( 9*FW, 0, STR_FREE); + lcd_puts_P(9*FW-(LEN_FREE-4)*FW, 0, STR_FREE); lcd_outdezAtt( 17*FW, 0, EeFsGetFree(),0); DisplayScreenIndex(e_ModelSelect, DIM(menuTabModel), INVERS); @@ -549,6 +549,7 @@ void menuProcModel(uint8_t event) } } } + // TODO port PPM16 ppmDelay from er9x #if defined(DSM2) || defined(PXX) else if (g_model.protocol == PROTO_DSM2 || g_model.protocol == PROTO_PXX) { lcd_puts_P(0, y, STR_RXNUM); @@ -627,7 +628,7 @@ void menuProcPhaseOne(uint8_t event) } break; case 3: - lcd_puts_P(0, y, STR_FADEIN); + lcd_puts_P(0, y, STR_FADEIN); // TODO lcd_puts_left lcd_outdezAtt(10*FW, y, phase->fadeIn, attr|LEFT); if(attr) CHECK_INCDEC_MODELVAR(event, phase->fadeIn, 0, 15); break; @@ -1062,7 +1063,7 @@ inline void editExpoVals(uint8_t event, uint8_t which, bool edit, uint8_t y, uin uint8_t invBlk = edit ? INVERS : 0; // if(edit && stopBlink) invBlk = INVERS; - ExpoData *ed = expoaddress(idt); + ExpoData *ed = expoaddress(idt); // TODO volatile switch(which) { diff --git a/src/o9xstrings.h b/src/o9xstrings.h index 0067aeddf..48a808717 100644 --- a/src/o9xstrings.h +++ b/src/o9xstrings.h @@ -129,6 +129,7 @@ extern const PROGMEM char STR_OPEN9X[]; extern const PROGMEM char STR_POPUPS[]; extern const PROGMEM char STR_MENUWHENDONE[]; extern const PROGMEM char STR_FREE[]; +#define LEN_FREE PSIZE(TR_FREE) extern const PROGMEM char STR_DELETEMODEL[]; extern const PROGMEM char STR_COPYINGMODEL[]; extern const PROGMEM char STR_MOVINGMODEL[]; @@ -257,11 +258,11 @@ extern const PROGMEM char STR_SWITCHESNOTOFF[]; extern const PROGMEM char STR_PLEASERESETTHEM[]; extern const PROGMEM char STR_MESSAGE[]; extern const PROGMEM char STR_PRESSANYKEY[]; +#define LEN_PRESSANYKEY PSIZE(TR_PRESSANYKEY) extern const PROGMEM char STR_BADEEPROMDATA[]; extern const PROGMEM char STR_EEPROMFORMATTING[]; extern const PROGMEM char STR_EEPROMOVERFLOW[]; extern const PROGMEM char STR_MENUSERROR[]; - extern const PROGMEM char STR_MENURADIOSETUP[]; extern const PROGMEM char STR_MENUDATEANDTIME[]; extern const PROGMEM char STR_MENUTRAINER[]; diff --git a/src/open9x.cpp b/src/open9x.cpp index 945f59fbf..2b2d51982 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -655,7 +655,7 @@ uint8_t g_beepVal[5]; void message(const prog_char * s) { lcd_clear(); - lcd_putsAtt(64-5*FW,0*FH,STR_MESSAGE,DBLSIZE); + lcd_putsAtt(64-5*FW, 0*FH, STR_MESSAGE, DBLSIZE); lcd_puts_P(0,4*FW,s); refreshDisplay(); lcdSetRefVolt(g_eeGeneral.contrast); @@ -664,9 +664,9 @@ void message(const prog_char * s) void alert(const prog_char * s, bool defaults) { lcd_clear(); - lcd_putsAtt(64-5*FW,0*FH,STR_ALERT,DBLSIZE); + lcd_putsAtt(64-5*FW, 0*FH, STR_ALERT, DBLSIZE); lcd_puts_P(0,4*FH,s); - lcd_puts_P(64-6*FW,7*FH,STR_PRESSANYKEY); + lcd_puts_P(64-LEN_PRESSANYKEY*FW/2, 7*FH, STR_PRESSANYKEY); refreshDisplay(); lcdSetRefVolt(defaults ? 25 : g_eeGeneral.contrast); beepErr(); @@ -1249,6 +1249,7 @@ void perOut(int16_t *chanOut, uint8_t phase) if(tick10ms) { int32_t rate = (int32_t)DEL_MULT*2048*100; if(md->weight) rate /= abs(md->weight); + // TODO port optim er9x by Mike act[i] = (diff>0) ? ((md->speedUp>0) ? act[i]+(rate)/((int16_t)100*md->speedUp) : (int32_t)v*DEL_MULT) : ((md->speedDown>0) ? act[i]-(rate)/((int16_t)100*md->speedDown) : (int32_t)v*DEL_MULT) ; } @@ -1270,16 +1271,19 @@ void perOut(int16_t *chanOut, uint8_t phase) //========== MULTIPLEX =============== int32_t dv = (int32_t)v*md->weight; + int32_t *ptr = &chans[md->destCh-1]; // Save calculating address several times switch(md->mltpx){ case MLTPX_REP: - chans[md->destCh-1] = dv; + *ptr = dv; break; case MLTPX_MUL: - chans[md->destCh-1] *= dv/100l; - chans[md->destCh-1] /= RESXl; + dv /= 100; + dv *= *ptr; + dv /= RESXl; + *ptr = dv; break; default: // MLTPX_ADD - chans[md->destCh-1] += dv; //Mixer output add up to the line (dv + (dv>0 ? 100/2 : -100/2))/(100); + *ptr += dv; //Mixer output add up to the line (dv + (dv>0 ? 100/2 : -100/2))/(100); break; } } @@ -1662,6 +1666,7 @@ void perMain() uint8_t evt=getEvent(); evt = checkTrim(evt); + // TODO port lightOnStickMove from er9x if(g_LightOffCounter) g_LightOffCounter--; if(evt) g_LightOffCounter = g_eeGeneral.lightAutoOff*500; // on keypress turn the light on 5*100 diff --git a/src/simu.cpp b/src/simu.cpp index 64ed105e8..55c4363e2 100644 --- a/src/simu.cpp +++ b/src/simu.cpp @@ -167,11 +167,11 @@ void Gruvin9xSim::makeSnapshot(const FXDrawable* drawable) // Save recovered pixels to a file FXFileStream stream; char buf[100]; - sprintf(buf,"snapshot-%02d.png", ++g_snapshot_idx); - for(unsigned i=4; i