void HandMonitor::setTempoParams() { switch(playback_->getPlaybackState()) { case eStreamPlaying: rhYrel_ = rhY_ - rhYprev_; if(!decY_) { if(rhYrel_ < -1) { addTempoMeasure(); if(measureCount_ >= TEMPO_SAMPLES) { calcTempo(); } } } else { if(rhYrel_ > 1) { addTempoMeasure(); if(measureCount_ >= TEMPO_SAMPLES) { calcTempo(); } } } rhYprev_ = rhY_; break; } }
virtual void handleSetTempo(uint8_t tempo) { mid.writeTempo(restTime, calcTempo(tempo)); restTime = 0; if(firstTempo == 0) firstTempo = tempo; }