本文整理汇总了C++中EFXFixture::fixture方法的典型用法代码示例。如果您正苦于以下问题:C++ EFXFixture::fixture方法的具体用法?C++ EFXFixture::fixture怎么用?C++ EFXFixture::fixture使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EFXFixture
的用法示例。
在下文中一共展示了EFXFixture::fixture方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: slotAddFixtureClicked
void EFXEditor::slotAddFixtureClicked()
{
/* Put all fixtures already present into a list of fixtures that
will be disabled in the fixture selection dialog */
QList <t_fixture_id> disabled;
QTreeWidgetItemIterator twit(m_tree);
while (*twit != NULL)
{
EFXFixture* ef = reinterpret_cast <EFXFixture*>
((*twit)->data(0, Qt::UserRole).toULongLong());
Q_ASSERT(ef != NULL);
/* TODO: Disable all fixtures that don't have pan&tilt chans */
disabled.append(ef->fixture());
twit++;
}
/* Get a list of new fixtures to add to the scene */
FixtureSelection fs(this, _app->doc(), true, disabled);
if (fs.exec() == QDialog::Accepted)
{
QListIterator <t_fixture_id> it(fs.selection);
while (it.hasNext() == true)
{
EFXFixture* ef = new EFXFixture(m_efx);
ef->setFixture(it.next());
if (m_efx->addFixture(ef) == true)
addFixtureItem(ef);
else
delete ef;
}
}
}
示例2: loadXML
bool EFX::loadXML(const QDomElement* root)
{
QString str;
QDomNode node;
QDomElement tag;
Q_ASSERT(root != NULL);
if (root->tagName() != KXMLQLCFunction)
{
qWarning() << "Function node not found!";
return false;
}
/* Load EFX contents */
node = root->firstChild();
while (node.isNull() == false)
{
tag = node.toElement();
if (tag.tagName() == KXMLQLCBus)
{
/* Bus */
str = tag.attribute(KXMLQLCBusRole);
setBus(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXFixture)
{
EFXFixture* ef = new EFXFixture(this);
ef->loadXML(&tag);
if (ef->fixture() != KNoID)
{
if (addFixture(ef) == false)
delete ef;
}
}
else if (tag.tagName() == KXMLQLCEFXPropagationMode)
{
/* Propagation mode */
setPropagationMode(stringToPropagationMode(tag.text()));
}
else if (tag.tagName() == KXMLQLCEFXAlgorithm)
{
/* Algorithm */
setAlgorithm(tag.text());
}
else if (tag.tagName() == KXMLQLCFunctionDirection)
{
/* Direction */
setDirection(Function::stringToDirection(tag.text()));
}
else if (tag.tagName() == KXMLQLCFunctionRunOrder)
{
/* Run Order */
setRunOrder(Function::stringToRunOrder(tag.text()));
}
else if (tag.tagName() == KXMLQLCEFXWidth)
{
/* Width */
setWidth(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXHeight)
{
/* Height */
setHeight(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXRotation)
{
/* Rotation */
setRotation(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXStartScene)
{
/* Start scene */
setStartScene(tag.text().toInt());
if (tag.attribute(KXMLQLCFunctionEnabled) ==
KXMLQLCTrue)
setStartSceneEnabled(true);
else
setStartSceneEnabled(false);
}
else if (tag.tagName() == KXMLQLCEFXStopScene)
{
/* Stop scene */
setStopScene(tag.text().toInt());
if (tag.attribute(KXMLQLCFunctionEnabled) ==
KXMLQLCTrue)
setStopSceneEnabled(true);
else
setStopSceneEnabled(false);
}
else if (tag.tagName() == KXMLQLCEFXAxis)
{
/* Axes */
loadXMLAxis(&tag);
}
else
{
//.........这里部分代码省略.........
示例3: arm
void EFX::arm()
{
class Scene* startScene = NULL;
class Scene* stopScene = NULL;
QLCFixtureMode* mode = NULL;
QLCChannel* ch = NULL;
int serialNumber = 0;
Fixture* fxi = NULL;
/* Initialization scene */
if (m_startSceneID != KNoID && m_startSceneEnabled == true)
startScene = static_cast <class Scene*>
(_app->doc()->function(m_startSceneID));
/* De-initialization scene */
if (m_stopSceneID != KNoID && m_stopSceneEnabled == true)
stopScene = static_cast <class Scene*>
(_app->doc()->function(m_stopSceneID));
QListIterator <EFXFixture*> it(m_fixtures);
while (it.hasNext() == true)
{
EFXFixture* ef = it.next();
Q_ASSERT(ef != NULL);
ef->setSerialNumber(serialNumber++);
ef->setStartScene(startScene);
ef->setStopScene(stopScene);
/* If fxi == NULL, the fixture has been destroyed */
fxi = _app->doc()->fixture(ef->fixture());
if (fxi == NULL)
continue;
/* If this fixture has no mode, it's a generic dimmer that
can't do pan&tilt anyway. */
mode = fxi->fixtureMode();
if (mode == NULL)
continue;
/* Find exact channel numbers for MSB/LSB pan and tilt */
for (t_channel i = 0; i < mode->channels(); i++)
{
ch = mode->channel(i);
Q_ASSERT(ch != NULL);
if (ch->group() == KQLCChannelGroupPan)
{
if (ch->controlByte() == 0)
{
ef->setMsbPanChannel(
fxi->universeAddress() + i);
}
else if (ch->controlByte() == 1)
{
ef->setLsbPanChannel(
fxi->universeAddress() + i);
}
}
else if (ch->group() == KQLCChannelGroupTilt)
{
if (ch->controlByte() == 0)
{
ef->setMsbTiltChannel(
fxi->universeAddress() + i);
}
else if (ch->controlByte() == 1)
{
ef->setLsbTiltChannel(
fxi->universeAddress() + i);
}
}
}
}
/* Choose a point calculation function depending on the algorithm */
if (m_algorithm == KCircleAlgorithmName)
pointFunc = circlePoint;
else if (m_algorithm == KEightAlgorithmName)
pointFunc = eightPoint;
else if (m_algorithm == KLineAlgorithmName)
pointFunc = linePoint;
else if (m_algorithm == KTriangleAlgorithmName)
pointFunc = trianglePoint;
else if (m_algorithm == KDiamondAlgorithmName)
pointFunc = diamondPoint;
else if (m_algorithm == KLissajousAlgorithmName)
pointFunc = lissajousPoint;
else
pointFunc = NULL;
}
示例4: loadXML
bool EFX::loadXML(const QDomElement& root)
{
if (root.tagName() != KXMLQLCFunction)
{
qWarning() << "Function node not found!";
return false;
}
if (root.attribute(KXMLQLCFunctionType) != typeToString(Function::EFX))
{
qWarning("Function is not an EFX!");
return false;
}
/* Load EFX contents */
QDomNode node = root.firstChild();
while (node.isNull() == false)
{
QDomElement tag = node.toElement();
if (tag.tagName() == KXMLQLCBus)
{
/* Bus */
QString str = tag.attribute(KXMLQLCBusRole);
if (str == KXMLQLCBusFade)
m_legacyFadeBus = tag.text().toUInt();
else if (str == KXMLQLCBusHold)
m_legacyHoldBus = tag.text().toUInt();
}
else if (tag.tagName() == KXMLQLCFunctionSpeed)
{
loadXMLSpeed(tag);
}
else if (tag.tagName() == KXMLQLCEFXFixture)
{
EFXFixture* ef = new EFXFixture(this);
ef->loadXML(tag);
if (ef->fixture() != Fixture::invalidId())
{
if (addFixture(ef) == false)
delete ef;
}
}
else if (tag.tagName() == KXMLQLCEFXPropagationMode)
{
/* Propagation mode */
setPropagationMode(stringToPropagationMode(tag.text()));
}
else if (tag.tagName() == KXMLQLCEFXAlgorithm)
{
/* Algorithm */
setAlgorithm(stringToAlgorithm(tag.text()));
}
else if (tag.tagName() == KXMLQLCFunctionDirection)
{
loadXMLDirection(tag);
}
else if (tag.tagName() == KXMLQLCFunctionRunOrder)
{
loadXMLRunOrder(tag);
}
else if (tag.tagName() == KXMLQLCEFXWidth)
{
/* Width */
setWidth(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXHeight)
{
/* Height */
setHeight(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXRotation)
{
/* Rotation */
setRotation(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXStartOffset)
{
/* StartOffset */
setStartOffset(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXAxis)
{
/* Axes */
loadXMLAxis(tag);
}
else
{
qWarning() << "Unknown EFX tag:" << tag.tagName();
}
node = node.nextSibling();
}
return true;
}