void PlayPanel::setScore(Score* s) { if (cs != 0 && cs == s) return; cs = s; bool enable = cs != 0; volumeSlider->setEnabled(enable); posSlider->setEnabled(enable); tempoSlider->setEnabled(enable); if (cs && seq && seq->canStart()) { setTempo(cs->tempomap()->tempo(0)); setRelTempo(cs->tempomap()->relTempo()); setEndpos(cs->repeatList()->ticks()); int tick = cs->playPos(); heartBeat(tick, tick, 0); } else { setTempo(120.0); setRelTempo(1.0); setEndpos(0); heartBeat(0, 0, 0); updatePosLabel(0); } update(); }
void PlayPanel::setScore(Score* s) { if (cs != 0 && cs == s) return; cs = s; if (cs) { MeasureBase* lm = cs->last(); if (lm) setEndpos(lm->tick() + lm->ticks()); } bool enable = cs != 0; volumeSlider->setEnabled(enable); posSlider->setEnabled(enable); tempoSlider->setEnabled(enable); swingStyle->setEnabled(enable); if (cs) { setTempo(cs->tempomap()->tempo(0)); setRelTempo(cs->tempomap()->relTempo()); Measure* m = cs->lastMeasure(); if (m) setEndpos(m ? m->tick() + m->ticks() : 0); int tick = cs->playPos(); heartBeat(tick, tick); } else { setTempo(120.0); setRelTempo(1.0); setEndpos(0); heartBeat(0, 0); } // heartBeat2(seq->getCurTime()); // int tick, utick; // seq->getCurTick(&tick, &utick); // heartBeat(tick, utick); update(); }