本文整理汇总了C++中Doc::inputOutputMap方法的典型用法代码示例。如果您正苦于以下问题:C++ Doc::inputOutputMap方法的具体用法?C++ Doc::inputOutputMap怎么用?C++ Doc::inputOutputMap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doc
的用法示例。
在下文中一共展示了Doc::inputOutputMap方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: timerTick
void MasterTimer::timerTick()
{
Doc* doc = qobject_cast<Doc*> (parent());
Q_ASSERT(doc != NULL);
#ifdef DEBUG_MASTERTIMER
qDebug() << "[MasterTimer] *********** tick:" << ticksCount++ << "**********";
#endif
doc->inputOutputMap()->flushInputs();
QList<Universe *> universes = doc->inputOutputMap()->claimUniverses();
for (int i = 0 ; i < universes.count(); i++)
{
universes[i]->zeroIntensityChannels();
universes[i]->zeroRelativeValues();
}
timerTickFunctions(universes);
timerTickDMXSources(universes);
timerTickFader(universes);
doc->inputOutputMap()->releaseUniverses();
doc->inputOutputMap()->dumpUniverses();
}
示例2: timerTick
void MasterTimer::timerTick()
{
Doc* doc = qobject_cast<Doc*> (parent());
Q_ASSERT(doc != NULL);
#ifdef DEBUG_MASTERTIMER
qDebug() << "[MasterTimer] *********** tick:" << ticksCount++ << "**********";
#endif
switch (m_beatSourceType)
{
case Internal:
{
int elapsedTime = qRound((double)m_beatTimer->nsecsElapsed() / 1000000) + m_lastBeatOffset;
//qDebug() << "Elapsed beat:" << elapsedTime;
if (elapsedTime >= m_beatTimeDuration)
{
// it's time to fire a beat
m_beatRequested = true;
// restart the time for the next beat, starting at a delta
// milliseconds, otherwise it will generate an unpleasant drift
//qDebug() << "Elapsed:" << elapsedTime << ", delta:" << elapsedTime - m_beatTimeDuration;
m_lastBeatOffset = elapsedTime - m_beatTimeDuration;
m_beatTimer->restart();
// inform the listening classes that a beat is happening
emit beat();
}
}
break;
case External:
break;
case None:
default:
m_beatRequested = false;
break;
}
QList<Universe *> universes = doc->inputOutputMap()->claimUniverses();
for (int i = 0 ; i < universes.count(); i++)
{
universes[i]->flushInput();
universes[i]->zeroIntensityChannels();
universes[i]->zeroRelativeValues();
}
timerTickFunctions(universes);
timerTickDMXSources(universes);
timerTickFader(universes);
doc->inputOutputMap()->releaseUniverses();
doc->inputOutputMap()->dumpUniverses();
m_beatRequested = false;
}
示例3: fadeAndStopAll
void MasterTimer::fadeAndStopAll(int timeout)
{
if (timeout == 0)
return;
Doc* doc = qobject_cast<Doc*> (parent());
Q_ASSERT(doc != NULL);
QList<FadeChannel> fcList;
QList<Universe *> universes = doc->inputOutputMap()->claimUniverses();
for (int i = 0; i < universes.count(); i++)
{
QHashIterator <int,uchar> it(universes[i]->intensityChannels());
while (it.hasNext() == true)
{
it.next();
Fixture* fxi = doc->fixture(doc->fixtureForAddress(it.key()));
if (fxi != NULL)
{
uint ch = it.key() - fxi->universeAddress();
if (fxi->channelCanFade(ch))
{
FadeChannel fc(doc, fxi->id(), ch);
fc.setStart(it.value());
fc.setTarget(0);
fc.setFadeTime(timeout);
fcList.append(fc);
}
}
}
}
doc->inputOutputMap()->releaseUniverses();
// Stop all functions first
stopAllFunctions();
// Instruct mastertimer to do a fade out of all
// the intensity channels that can fade
QMutexLocker faderLocker(&m_faderMutex);
foreach(FadeChannel fade, fcList)
fader()->add(fade);
}