Cue::Cue(const Cue& cue) : m_name(cue.name()) , m_values(cue.values()) , m_fadeInSpeed(cue.fadeInSpeed()) , m_fadeOutSpeed(cue.fadeOutSpeed()) , m_duration(cue.duration()) { }
void SimpleDesk::updateSpeedDials() { qDebug() << Q_FUNC_INFO; if (m_speedDials == NULL) return; Q_ASSERT(m_cueStackView != NULL); Q_ASSERT(m_cueStackView->selectionModel() != NULL); QModelIndexList selected(m_cueStackView->selectionModel()->selectedRows()); CueStack* cueStack = m_engine->cueStack(m_selectedPlayback); Q_ASSERT(cueStack != NULL); if (selected.size() == 0) { m_speedDials->setEnabled(false); m_speedDials->setWindowTitle(tr("No selection")); m_speedDials->setFadeInSpeed(0); m_speedDials->setFadeOutSpeed(0); m_speedDials->setDuration(0); m_speedDials->setOptionalTextTitle(QString()); m_speedDials->setOptionalText(QString()); } else if (selected.size() == 1) { m_speedDials->setEnabled(true); QModelIndex index = selected.first(); Q_ASSERT(index.row() >= 0 && index.row() < cueStack->cues().size()); Cue cue = cueStack->cues()[index.row()]; m_speedDials->setWindowTitle(cue.name()); m_speedDials->setFadeInSpeed(cue.fadeInSpeed()); m_speedDials->setFadeOutSpeed(cue.fadeOutSpeed()); m_speedDials->setDuration(cue.duration()); m_speedDials->setOptionalTextTitle(tr("Cue name")); m_speedDials->setOptionalText(cue.name()); } else { m_speedDials->setEnabled(true); m_speedDials->setWindowTitle(tr("Multiple Cues")); m_speedDials->setFadeInSpeed(0); m_speedDials->setFadeOutSpeed(0); m_speedDials->setDuration(0); m_speedDials->setOptionalTextTitle(QString()); m_speedDials->setOptionalText(QString()); } }
void CueStack::switchCue(int from, int to, const QList<Universe *> ua) { qDebug() << Q_FUNC_INFO; Cue newCue; Cue oldCue; m_mutex.lock(); if (to >= 0 && to < m_cues.size()) newCue = m_cues[to]; if (from >= 0 && from < m_cues.size()) oldCue = m_cues[from]; m_mutex.unlock(); // Fade out the HTP channels of the previous cue QHashIterator <uint,uchar> oldit(oldCue.values()); while (oldit.hasNext() == true) { oldit.next(); FadeChannel fc; fc.setFixture(doc(), Fixture::invalidId()); fc.setChannel(oldit.key()); if (fc.group(doc()) == QLCChannel::Intensity) { fc.setElapsed(0); fc.setReady(false); fc.setTarget(0); fc.setFadeTime(oldCue.fadeOutSpeed()); insertStartValue(fc, ua); m_fader->add(fc); } } // Fade in all channels of the new cue QHashIterator <uint,uchar> newit(newCue.values()); while (newit.hasNext() == true) { newit.next(); FadeChannel fc; fc.setFixture(doc(), Fixture::invalidId()); fc.setChannel(newit.key()); fc.setTarget(newit.value()); fc.setElapsed(0); fc.setReady(false); fc.setFadeTime(newCue.fadeInSpeed()); insertStartValue(fc, ua); m_fader->add(fc); } }