void Encoder::encode() { Encoder *enc = Encoder::Builder::_ENCODERS2DECODE[Encoder::IDXDECODING]; long position = enc->getCounter(); if (enc->readChannelA()) enc->readChannelB() ? position++ : position--; else enc->readChannelB() ? position-- : position++; enc->setCounter(position); }