bool Chaser::saveXML(QXmlStreamWriter *doc) { Q_ASSERT(doc != NULL); /* Function tag */ doc->writeStartElement(KXMLQLCFunction); /* Common attributes */ saveXMLCommon(doc); /* Speed */ saveXMLSpeed(doc); /* Direction */ saveXMLDirection(doc); /* Run order */ saveXMLRunOrder(doc); /* Speed modes */ doc->writeStartElement(KXMLQLCChaserSpeedModes); doc->writeAttribute(KXMLQLCFunctionSpeedFadeIn, speedModeToString(fadeInMode())); doc->writeAttribute(KXMLQLCFunctionSpeedFadeOut, speedModeToString(fadeOutMode())); doc->writeAttribute(KXMLQLCFunctionSpeedDuration, speedModeToString(durationMode())); doc->writeEndElement(); /* Steps */ for (int i = 0; i < m_steps.count(); i++) m_steps.at(i).saveXML(doc, i, false); /* End the <Function> tag */ doc->writeEndElement(); return true; }
void Chaser::setTotalDuration(quint32 msec) { if (durationMode() == Chaser::Common) { int stepsCount = m_steps.count(); if (stepsCount == 0) stepsCount = 1; setDuration(msec / stepsCount); } else { // scale all the Chaser steps to resize // to the desired duration double dtDuration = (double)totalDuration(); for (int i = 0; i < m_steps.count(); i++) { uint origDuration = m_steps[i].duration; m_steps[i].duration = ((double)m_steps[i].duration * msec) / dtDuration; if(m_steps[i].hold) m_steps[i].hold = ((double)m_steps[i].hold * (double)m_steps[i].duration) / (double)origDuration; m_steps[i].fadeIn = m_steps[i].duration - m_steps[i].hold; if (m_steps[i].fadeOut) m_steps[i].fadeOut = ((double)m_steps[i].fadeOut * (double)m_steps[i].duration) / (double)origDuration; } } emit changed(this->id()); }
bool Chaser::saveXML(QDomDocument* doc, QDomElement* wksp_root) { QDomElement root; //QDomText text; //QString str; Q_ASSERT(doc != NULL); Q_ASSERT(wksp_root != NULL); /* Function tag */ root = doc->createElement(KXMLQLCFunction); wksp_root->appendChild(root); /* Common attributes */ saveXMLCommon(&root); /* Speed */ saveXMLSpeed(doc, &root); /* Direction */ saveXMLDirection(doc, &root); /* Run order */ saveXMLRunOrder(doc, &root); /* Speed modes */ QDomElement spd = doc->createElement(KXMLQLCChaserSpeedModes); spd.setAttribute(KXMLQLCFunctionSpeedFadeIn, speedModeToString(fadeInMode())); spd.setAttribute(KXMLQLCFunctionSpeedFadeOut, speedModeToString(fadeOutMode())); spd.setAttribute(KXMLQLCFunctionSpeedDuration, speedModeToString(durationMode())); root.appendChild(spd); if (m_isSequence == true) { QDomElement seq = doc->createElement(KXMLQLCChaserSequenceTag); seq.setAttribute(KXMLQLCChaserSequenceBoundScene, m_boundSceneID); seq.setAttribute(KXMLQLCChaserSequenceStartTime, m_startTime); seq.setAttribute(KXMLQLCChaserSequenceColor, m_color.name()); if (isLocked()) seq.setAttribute(KXMLQLCChaserSequenceLocked, m_locked); root.appendChild(seq); } /* Steps */ int stepNumber = 0; QListIterator <ChaserStep> it(m_steps); while (it.hasNext() == true) { ChaserStep step(it.next()); step.saveXML(doc, &root, stepNumber++, m_isSequence); } return true; }
quint32 Chaser::totalDuration() { quint32 totalDuration = 0; if (durationMode() == Chaser::Common) totalDuration = duration() * m_steps.count(); else { foreach (ChaserStep step, m_steps) totalDuration += step.duration; } return totalDuration; }
bool Chaser::saveXML(QXmlStreamWriter *doc) { Q_ASSERT(doc != NULL); /* Function tag */ doc->writeStartElement(KXMLQLCFunction); /* Common attributes */ saveXMLCommon(doc); /* Speed */ saveXMLSpeed(doc); /* Direction */ saveXMLDirection(doc); /* Run order */ saveXMLRunOrder(doc); /* Speed modes */ doc->writeStartElement(KXMLQLCChaserSpeedModes); doc->writeAttribute(KXMLQLCFunctionSpeedFadeIn, speedModeToString(fadeInMode())); doc->writeAttribute(KXMLQLCFunctionSpeedFadeOut, speedModeToString(fadeOutMode())); doc->writeAttribute(KXMLQLCFunctionSpeedDuration, speedModeToString(durationMode())); doc->writeEndElement(); if (m_isSequence == true) { doc->writeStartElement(KXMLQLCChaserSequenceTag); doc->writeAttribute(KXMLQLCChaserSequenceBoundScene, QString::number(m_boundSceneID)); doc->writeEndElement(); } /* Steps */ int stepNumber = 0; QListIterator <ChaserStep> it(m_steps); while (it.hasNext() == true) { ChaserStep step(it.next()); step.saveXML(doc, stepNumber++, m_isSequence); } /* End the <Function> tag */ doc->writeEndElement(); return true; }
void Chaser::tap() { if (m_useInternalRunner && m_runner != NULL && durationMode() == Common) m_runner->tap(); }
void Chaser::tap() { QMutexLocker runnerLocker(&m_runnerMutex); if (m_runner != NULL && durationMode() == Common) m_runner->tap(); }
void Chaser::tap() { if (m_runner != NULL && durationMode() == Common) m_runner->tap(); }