void Chaser::arm() { Doc* doc = qobject_cast <Doc*> (parent()); Q_ASSERT(doc != NULL); m_runner = new ChaserRunner(doc, stepFunctions(), busID(), direction(), runOrder()); resetElapsed(); }
bool Function::saveXMLRunOrder(QXmlStreamWriter *doc) const { Q_ASSERT(doc != NULL); doc->writeTextElement(KXMLQLCFunctionRunOrder, runOrderToString(runOrder())); return true; }
bool Function::saveXMLRunOrder(QDomDocument* doc, QDomElement* root) const { Q_ASSERT(doc != NULL); Q_ASSERT(root != NULL); QDomElement tag = doc->createElement(KXMLQLCFunctionRunOrder); root->appendChild(tag); QDomText text = doc->createTextNode(runOrderToString(runOrder())); tag.appendChild(text); return true; }
void RGBMatrix::roundCheck() { QMutexLocker algorithmLocker(&m_algorithmMutex); if (m_algorithm == NULL) return; if (m_stepHandler->checkNextStep(runOrder(), m_startColor, m_endColor, m_stepsCount) == false) stop(FunctionParent::master()); m_roundTime->restart(); if (tempoType() == Beats) roundElapsed(m_stepBeatDuration); else roundElapsed(duration()); }
void EFX::postRun(MasterTimer* timer, UniverseArray* universes) { /* Reset all fixtures */ QListIterator <EFXFixture*> it(m_fixtures); while (it.hasNext() == true) { EFXFixture* ef(it.next()); /* Run the EFX's stop scene for Loop & PingPong modes */ if (runOrder() != SingleShot) ef->stop(timer, universes); ef->reset(); } Q_ASSERT(m_fader != NULL); m_fader->removeAll(); delete m_fader; m_fader = NULL; Function::postRun(timer, universes); }
void RGBMatrix::roundCheck(const QSize& size) { QMutexLocker algorithmLocker(&m_algorithmMutex); if (m_algorithm == NULL) return; if (runOrder() == PingPong) { if (m_direction == Forward && (m_step + 1) == m_algorithm->rgbMapStepCount(size)) { m_direction = Backward; m_step = m_algorithm->rgbMapStepCount(size) - 2; if (m_endColor.isValid()) m_stepColor = m_endColor; updateStepColor(m_step); } else if (m_direction == Backward && (m_step - 1) < 0) { m_direction = Forward; m_step = 1; m_stepColor = m_startColor; updateStepColor(m_step); } else { if (m_direction == Forward) m_step++; else m_step--; updateStepColor(m_step); } } else if (runOrder() == SingleShot) { if (m_direction == Forward) { if (m_step >= m_algorithm->rgbMapStepCount(size) - 1) stop(); else { m_step++; updateStepColor(m_step); } } else { if (m_step <= 0) stop(); else { m_step--; updateStepColor(m_step); } } } else { if (m_direction == Forward) { if (m_step >= m_algorithm->rgbMapStepCount(size) - 1) { m_step = 0; m_stepColor = m_startColor; } else { m_step++; updateStepColor(m_step); } } else { if (m_step <= 0) { m_step = m_algorithm->rgbMapStepCount(size) - 1; if (m_endColor.isValid()) m_stepColor = m_endColor; } else { m_step--; updateStepColor(m_step); } } } m_roundTime->restart(); roundElapsed(duration()); }