本文整理汇总了C++中QLCChannel::group方法的典型用法代码示例。如果您正苦于以下问题:C++ QLCChannel::group方法的具体用法?C++ QLCChannel::group怎么用?C++ QLCChannel::group使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QLCChannel
的用法示例。
在下文中一共展示了QLCChannel::group方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: group
void QLCChannel_Test::group()
{
QLCChannel* channel = new QLCChannel();
QVERIFY(channel->group() == QLCChannel::Intensity);
channel->setGroup(QLCChannel::Beam);
QVERIFY(channel->group() == QLCChannel::Beam);
channel->setGroup(QLCChannel::Group(31337));
QVERIFY(channel->group() == QLCChannel::Group(31337));
delete channel;
}
示例2: refreshChannelList
void QLCFixtureEditor::refreshChannelList()
{
QLCChannel* ch = NULL;
QTreeWidgetItem* item = NULL;
QString str;
m_channelList->clear();
// Fill channels list
QListIterator <QLCChannel*> it(*m_fixtureDef->channels());
while (it.hasNext() == true)
{
ch = it.next();
item = new QTreeWidgetItem(m_channelList);
item->setText(KChannelsColumnName, ch->name());
item->setText(KChannelsColumnGroup, ch->group());
// Store the channel pointer to the listview as a string
str.sprintf("%lu", (unsigned long) ch);
item->setText(KChannelsColumnPointer, str);
}
slotChannelListSelectionChanged(m_channelList->currentItem());
}
示例3: updateModeItem
void QLCFixtureEditor::updateModeItem(const QLCFixtureMode* mode,
QTreeWidgetItem* item)
{
Q_ASSERT(mode != NULL);
Q_ASSERT(item != NULL);
item->setText(MODE_COL_NAME, mode->name());
item->setData(MODE_COL_NAME, PROP_PTR, (qulonglong) mode);
item->setText(MODE_COL_CHS, QString::number(mode->channels().size()));
if (mode->heads().size() > 0)
item->setText(MODE_COL_HEAD, QString::number(mode->heads().size()));
else
item->setText(MODE_COL_HEAD, QString());
/* Destroy the existing list of children */
QList <QTreeWidgetItem*> children(item->takeChildren());
foreach (QTreeWidgetItem* child, children)
delete child;
/* Put all mode channels as non-selectable sub items */
for (int i = 0; i < mode->channels().size(); i++)
{
QLCChannel* ch = mode->channel(i);
Q_ASSERT(ch != NULL);
QTreeWidgetItem* chitem = new QTreeWidgetItem(item);
chitem->setText(MODE_COL_NAME, ch->name());
chitem->setIcon(MODE_COL_NAME, ch->getIconFromGroup(ch->group()));
chitem->setText(MODE_COL_CHS, QString("%1").arg(i + 1));
chitem->setFlags(0); /* No selection etc. */
}
}
示例4: loadWrongRoot
void QLCChannel_Test::loadWrongRoot()
{
QBuffer buffer;
buffer.open(QIODevice::WriteOnly | QIODevice::Text);
QXmlStreamWriter xmlWriter(&buffer);
xmlWriter.writeStartElement("Chanel");
xmlWriter.writeAttribute("Name", "Channel1");
xmlWriter.writeStartElement("Group");
xmlWriter.writeAttribute("Byte", "1");
xmlWriter.writeCharacters("Tilt");
xmlWriter.writeEndElement();
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Min", "0");
xmlWriter.writeAttribute("Max", "10");
xmlWriter.writeCharacters("Cap1");
xmlWriter.writeEndElement();
/* Overlaps with cap1, shouldn't appear in the channel */
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Min", "5");
xmlWriter.writeAttribute("Max", "15");
xmlWriter.writeCharacters("Cap2");
xmlWriter.writeEndElement();
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Min", "11");
xmlWriter.writeAttribute("Max", "20");
xmlWriter.writeCharacters("Cap3");
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
xmlWriter.setDevice(NULL);
buffer.close();
buffer.open(QIODevice::ReadOnly | QIODevice::Text);
QXmlStreamReader xmlReader(&buffer);
xmlReader.readNextStartElement();
QLCChannel ch;
QVERIFY(ch.loadXML(xmlReader) == false);
QVERIFY(ch.name().isEmpty());
QVERIFY(ch.group() == QLCChannel::Intensity);
QVERIFY(ch.controlByte() == QLCChannel::MSB);
QVERIFY(ch.capabilities().size() == 0);
}
示例5: loadWrongRoot
void QLCChannel_Test::loadWrongRoot()
{
QDomDocument doc;
QDomElement root = doc.createElement("Chanel");
root.setAttribute("Name", "Channel1");
doc.appendChild(root);
QDomElement group = doc.createElement("Group");
root.appendChild(group);
group.setAttribute("Byte", 1);
QDomText groupName = doc.createTextNode("Tilt");
group.appendChild(groupName);
QDomElement cap1 = doc.createElement("Capability");
root.appendChild(cap1);
cap1.setAttribute("Min", 0);
cap1.setAttribute("Max", 10);
QDomText cap1name = doc.createTextNode("Cap1");
cap1.appendChild(cap1name);
/* Overlaps with cap1, shouldn't appear in the channel */
QDomElement cap2 = doc.createElement("Capability");
root.appendChild(cap2);
cap2.setAttribute("Min", 5);
cap2.setAttribute("Max", 15);
QDomText cap2name = doc.createTextNode("Cap2");
cap2.appendChild(cap2name);
QDomElement cap3 = doc.createElement("Capability");
root.appendChild(cap3);
cap3.setAttribute("Min", 11);
cap3.setAttribute("Max", 20);
QDomText cap3name = doc.createTextNode("Cap3");
cap3.appendChild(cap3name);
QLCChannel ch;
QVERIFY(ch.loadXML(&root) == false);
QVERIFY(ch.name().isEmpty());
QVERIFY(ch.group() == QLCChannel::Intensity);
QVERIFY(ch.controlByte() == QLCChannel::MSB);
QVERIFY(ch.capabilities().size() == 0);
}
示例6: slotEditChannel
void QLCFixtureEditor::slotEditChannel()
{
QLCChannel* real = NULL;
QTreeWidgetItem* item = NULL;
// Initialize the dialog with the selected logical channel or
// bail out if there is no current selection
real = currentChannel();
if (real == NULL)
return;
EditChannel ec(this, real);
if (ec.exec() == QDialog::Accepted)
{
// Copy the channel's contents to the real channel
*real = *(ec.channel());
item = m_channelList->currentItem();
item->setText(KChannelsColumnName, real->name());
item->setText(KChannelsColumnGroup, real->group());
setModified();
}
}
示例7: levelUpdateChannelNode
void VCSliderProperties::levelUpdateChannelNode(QCheckListItem* parent,
Fixture* fxi,
t_channel ch)
{
QCheckListItem* item = NULL;
QLCChannel* channel = NULL;
QString str;
Q_ASSERT(parent != NULL);
channel = fxi->channel(ch);
Q_ASSERT(channel != NULL);
item = levelChannelNode(parent, ch);
if (item == NULL)
item = new QCheckListItem(parent, channel->name(),
QCheckListItem::CheckBox);
item->setText(KColumnType, channel->group());
str.setNum(ch);
item->setText(KColumnID, str);
levelUpdateCapabilities(item, channel);
}
示例8: load
void QLCChannel_Test::load()
{
QDomDocument doc;
QDomElement root = doc.createElement("Channel");
root.setAttribute("Name", "Channel1");
doc.appendChild(root);
QDomElement group = doc.createElement("Group");
root.appendChild(group);
group.setAttribute("Byte", 1);
QDomText groupName = doc.createTextNode("Tilt");
group.appendChild(groupName);
QDomElement colour = doc.createElement("Colour");
QDomText colourText = doc.createTextNode(QLCChannel::colourToString(QLCChannel::Cyan));
colour.appendChild(colourText);
root.appendChild(colour);
QDomElement cap1 = doc.createElement("Capability");
root.appendChild(cap1);
cap1.setAttribute("Min", 0);
cap1.setAttribute("Max", 10);
QDomText cap1name = doc.createTextNode("Cap1");
cap1.appendChild(cap1name);
/* Overlaps with cap1, shouldn't appear in the channel */
QDomElement cap2 = doc.createElement("Capability");
root.appendChild(cap2);
cap2.setAttribute("Min", 5);
cap2.setAttribute("Max", 15);
QDomText cap2name = doc.createTextNode("Cap2");
cap2.appendChild(cap2name);
QDomElement cap3 = doc.createElement("Capability");
root.appendChild(cap3);
cap3.setAttribute("Min", 11);
cap3.setAttribute("Max", 20);
QDomText cap3name = doc.createTextNode("Cap3");
cap3.appendChild(cap3name);
/* Invalid capability tag, shouldn't appear in the channel, since it
is not recognized by the channel. */
QDomElement cap4 = doc.createElement("apability");
root.appendChild(cap4);
cap4.setAttribute("Min", 21);
cap4.setAttribute("Max", 30);
QDomText cap4name = doc.createTextNode("Cap4");
cap4.appendChild(cap4name);
/* Missing minimum value, shouldn't appear in the channel, because
loadXML() fails. */
QDomElement cap5 = doc.createElement("Capability");
root.appendChild(cap5);
cap5.setAttribute("Max", 30);
QDomText cap5name = doc.createTextNode("Cap5");
cap5.appendChild(cap5name);
QLCChannel ch;
QVERIFY(ch.loadXML(&root) == true);
qDebug() << int(ch.colour());
QVERIFY(ch.name() == "Channel1");
QVERIFY(ch.group() == QLCChannel::Tilt);
QVERIFY(ch.controlByte() == QLCChannel::LSB);
QVERIFY(ch.colour() == QLCChannel::Cyan);
QVERIFY(ch.capabilities().size() == 2);
QVERIFY(ch.capabilities()[0]->name() == "Cap1");
QVERIFY(ch.capabilities()[1]->name() == "Cap3");
}
示例9: copy
void QLCChannel_Test::copy()
{
QLCChannel* channel = new QLCChannel();
QVERIFY(channel->capabilities().size() == 0);
channel->setName("Foobar");
channel->setGroup(QLCChannel::Tilt);
channel->setControlByte(QLCChannel::ControlByte(3));
channel->setColour(QLCChannel::Yellow);
QLCCapability* cap1 = new QLCCapability(10, 19, "10-19");
QVERIFY(channel->addCapability(cap1) == true);
QLCCapability* cap2 = new QLCCapability(50, 59, "50-59");
QVERIFY(channel->addCapability(cap2) == true);
QLCCapability* cap3 = new QLCCapability(40, 49, "40-49");
QVERIFY(channel->addCapability(cap3) == true);
QLCCapability* cap4 = new QLCCapability(0, 9, "0-9");
QVERIFY(channel->addCapability(cap4) == true);
QLCCapability* cap5 = new QLCCapability(200, 209, "200-209");
QVERIFY(channel->addCapability(cap5) == true);
QLCCapability* cap6 = new QLCCapability(30, 39, "30-39");
QVERIFY(channel->addCapability(cap6) == true);
QLCCapability* cap7 = new QLCCapability(26, 29, "26-29");
QVERIFY(channel->addCapability(cap7) == true);
QLCCapability* cap8 = new QLCCapability(20, 25, "20-25");
QVERIFY(channel->addCapability(cap8) == true);
/* Create a copy of the original channel */
QLCChannel* copy = new QLCChannel(channel);
QVERIFY(copy->name() == "Foobar");
QVERIFY(copy->group() == QLCChannel::Tilt);
QVERIFY(copy->controlByte() == QLCChannel::ControlByte(3));
QVERIFY(copy->colour() == QLCChannel::Yellow);
/* Verify that the capabilities in the copied channel are also
copies i.e. their pointers are not the same as the originals. */
QList <QLCCapability*> caps(copy->capabilities());
QVERIFY(caps.size() == 8);
QVERIFY(caps.at(0) != cap1);
QVERIFY(caps.at(0)->name() == cap1->name());
QVERIFY(caps.at(0)->min() == cap1->min());
QVERIFY(caps.at(0)->max() == cap1->max());
QVERIFY(caps.at(1) != cap2);
QVERIFY(caps.at(1)->name() == cap2->name());
QVERIFY(caps.at(1)->min() == cap2->min());
QVERIFY(caps.at(1)->max() == cap2->max());
QVERIFY(caps.at(2) != cap3);
QVERIFY(caps.at(2)->name() == cap3->name());
QVERIFY(caps.at(2)->min() == cap3->min());
QVERIFY(caps.at(2)->max() == cap3->max());
QVERIFY(caps.at(3) != cap4);
QVERIFY(caps.at(3)->name() == cap4->name());
QVERIFY(caps.at(3)->min() == cap4->min());
QVERIFY(caps.at(3)->max() == cap4->max());
QVERIFY(caps.at(4) != cap5);
QVERIFY(caps.at(4)->name() == cap5->name());
QVERIFY(caps.at(4)->min() == cap5->min());
QVERIFY(caps.at(4)->max() == cap5->max());
QVERIFY(caps.at(5) != cap6);
QVERIFY(caps.at(5)->name() == cap6->name());
QVERIFY(caps.at(5)->min() == cap6->min());
QVERIFY(caps.at(5)->max() == cap6->max());
QVERIFY(caps.at(6) != cap7);
QVERIFY(caps.at(6)->name() == cap7->name());
QVERIFY(caps.at(6)->min() == cap7->min());
QVERIFY(caps.at(6)->max() == cap7->max());
QVERIFY(caps.at(7) != cap8);
QVERIFY(caps.at(7)->name() == cap8->name());
QVERIFY(caps.at(7)->min() == cap8->min());
QVERIFY(caps.at(7)->max() == cap8->max());
}
示例10: arm
/**
* Prepare this function for running. This is called when
* the user sets the mode to Operate. Basically allocates everything
* that is needed to run the function.
*/
void EFX::arm()
{
class Scene* startScene = NULL;
class Scene* stopScene = NULL;
QLCFixtureMode* mode = NULL;
QLCChannel* ch = NULL;
t_fixture_id fxi_id = KNoID;
Fixture* fxi = NULL;
int channels = 0;
int order = 0;
m_channels = 0;
/* Initialization scene */
if (m_startSceneID != KNoID && m_startSceneEnabled == true)
{
startScene = static_cast <class Scene*>
(_app->doc()->function(m_startSceneID));
Q_ASSERT(startScene != NULL);
}
/* De-initialization scene */
if (m_stopSceneID != KNoID && m_stopSceneEnabled == true)
{
stopScene = static_cast <class Scene*>
(_app->doc()->function(m_stopSceneID));
Q_ASSERT(stopScene != NULL);
}
QListIterator <t_function_id> it(m_fixtures);
while (it.hasNext() == true)
{
fxi_id = it.next();
Q_ASSERT(fxi_id != KNoID);
EFXFixture ef(this, fxi_id, m_channels, order, m_direction,
startScene, stopScene);
fxi = _app->doc()->fixture(fxi_id);
Q_ASSERT(fxi != NULL);
mode = fxi->fixtureMode();
Q_ASSERT(mode != NULL);
channels = 0;
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);
channels++;
}
else if (ch->controlByte() == 1)
{
ef.setLsbPanChannel(
fxi->universeAddress() + i);
channels++;
}
}
else if (ch->group() == KQLCChannelGroupTilt)
{
if (ch->controlByte() == 0)
{
ef.setMsbTiltChannel(
fxi->universeAddress() + i);
channels++;
}
else if (ch->controlByte() == 1)
{
ef.setLsbTiltChannel(
fxi->universeAddress() + i);
channels++;
}
}
}
/* The fixture must have at least an LSB channel for 8bit
precision to get accepted into the EFX */
if (ef.isValid() == true)
{
ef.updateSkipThreshold();
m_runTimeData.append(ef);
m_channels += channels;
order++;
}
}
/* Allocate space for channel data that is set to the eventbuffer */
//.........这里部分代码省略.........
示例11: load
void QLCChannel_Test::load()
{
QBuffer buffer;
buffer.open(QIODevice::WriteOnly | QIODevice::Text);
QXmlStreamWriter xmlWriter(&buffer);
xmlWriter.writeStartElement("Channel");
xmlWriter.writeAttribute("Name", "Channel1");
xmlWriter.writeStartElement("Group");
xmlWriter.writeAttribute("Byte", "1");
xmlWriter.writeCharacters("Tilt");
xmlWriter.writeEndElement();
xmlWriter.writeTextElement("Colour", QLCChannel::colourToString(QLCChannel::Cyan));
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Min", "0");
xmlWriter.writeAttribute("Max", "10");
xmlWriter.writeCharacters("Cap1");
xmlWriter.writeEndElement();
/* Overlaps with cap1, shouldn't appear in the channel */
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Min", "5");
xmlWriter.writeAttribute("Max", "15");
xmlWriter.writeCharacters("Cap2");
xmlWriter.writeEndElement();
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Min", "11");
xmlWriter.writeAttribute("Max", "20");
xmlWriter.writeCharacters("Cap3");
xmlWriter.writeEndElement();
/* Invalid capability tag, shouldn't appear in the channel, since it
is not recognized by the channel. */
xmlWriter.writeStartElement("apability");
xmlWriter.writeAttribute("Min", "21");
xmlWriter.writeAttribute("Max", "30");
xmlWriter.writeCharacters("Cap4");
xmlWriter.writeEndElement();
/* Missing minimum value, shouldn't appear in the channel, because
loadXML() fails. */
xmlWriter.writeStartElement("Capability");
xmlWriter.writeAttribute("Max", "30");
xmlWriter.writeCharacters("Cap5");
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
xmlWriter.setDevice(NULL);
buffer.close();
buffer.open(QIODevice::ReadOnly | QIODevice::Text);
QXmlStreamReader xmlReader(&buffer);
xmlReader.readNextStartElement();
QLCChannel ch;
QVERIFY(ch.loadXML(xmlReader) == true);
qDebug() << int(ch.colour());
QVERIFY(ch.name() == "Channel1");
QVERIFY(ch.group() == QLCChannel::Tilt);
QVERIFY(ch.controlByte() == QLCChannel::LSB);
QVERIFY(ch.colour() == QLCChannel::Cyan);
QVERIFY(ch.capabilities().size() == 2);
QVERIFY(ch.capabilities()[0]->name() == "Cap1");
QVERIFY(ch.capabilities()[1]->name() == "Cap3");
}
示例12: QLCChannel
bool AvolitesD4Parser::parseChannels(const QDomElement& elem, QLCFixtureDef* fixtureDef)
{
QDomElement el = elem.firstChildElement(KD4TagAttribute);
for (; !el.isNull(); el = el.nextSiblingElement(KD4TagAttribute))
{
// Small integrity check
if (el.attribute(KD4TagID).isEmpty())
continue;
// If this attribute is a function (i.e. an attribute used as a control variable for other attributes)
// then we just ignore it and continue. We can check it by checking if attribute Update on a <Function/> exists
if (isFunction(el))
continue;
QLCChannel* chan = new QLCChannel();
chan->setName(el.attribute(KD4TagName));
chan->setGroup(getGroupFromXML(el));
chan->setColour(getColourFromXML(el));
chan->setControlByte(QLCChannel::MSB);
// add channel to fixture definition
fixtureDef->addChannel(chan);
m_channels.insert(el.attribute(KD4TagID), chan);
// if this channel is a NoGroup then we don't need to continue
// no capabilities nor 16 bit channel
if (chan->group() == QLCChannel::NoGroup)
continue;
// parse capabilities
if (!parseCapabilities(el, chan))
{
m_channels.remove(el.attribute(KD4TagID));
delete chan;
return false;
}
// If we have a DMX attribute higher than 255 means we have an attribute with a 16bit precision
// so, we add another channel, with 'Fine' appended to it's name and set the LSB controlbyte
// NOTE: this can be changed in the future, pending the revamp over adding 16bit capabilities to any channel
// not only pan/tiltm, therefore I didn't add a constant for Fine and kept it as it.
if (is16Bit(el))
{
QLCChannel* fchan = new QLCChannel();
fchan->setName(el.attribute(KD4TagName) + " Fine");
fchan->setGroup(getGroupFromXML(el));
fchan->setColour(getColourFromXML(el));
fchan->setControlByte(QLCChannel::LSB);
// parse capabilities
if (!parseCapabilities(el, fchan, true))
{
delete fchan;
return false;
}
// Finally add channel to fixture definition
fixtureDef->addChannel(fchan);
m_channels.insert(el.attribute(KD4TagID) + " Fine", fchan);
}
}
return true;
}