void QLCFixtureDef_Test::type() { QLCFixtureDef* fd = new QLCFixtureDef(); fd->setType("Scanner"); QVERIFY(fd->type() == "Scanner"); delete fd; }
QLCFixtureDef *Fixture::genericDimmerDef(int channels) { QLCFixtureDef *def = new QLCFixtureDef(); def->setManufacturer(KXMLFixtureGeneric); def->setModel(KXMLFixtureGeneric); def->setType(QLCFixtureDef::Dimmer); def->setAuthor("QLC+"); for (int i = 0; i < channels; i++) { QLCChannel *intensity = new QLCChannel(); intensity->setGroup(QLCChannel::Intensity); intensity->setName(tr("Dimmer #%1").arg(i + 1)); intensity->addCapability(new QLCCapability(0, UCHAR_MAX, tr("Intensity"))); def->addChannel(intensity); } return def; }
void QLCFixtureDef_Test::saveLoadXML() { const QString path("qlcfixturedef_test_saveXML.qxf"); QLCFixtureDef* def = new QLCFixtureDef; def->setManufacturer("Foobar"); def->setModel("Xyzzy"); def->setType("Blinder"); QLCChannel* ch = new QLCChannel; ch->setName("Whatever"); def->addChannel(ch); QLCFixtureMode* mode = new QLCFixtureMode(def); mode->setName("Barfoo"); def->addMode(mode); mode->insertChannel(ch, 0); QVERIFY(def->saveXML(QString("zxcvb:/path/to/nowhere") + path) != QFile::NoError); QCOMPARE(def->saveXML(path), QFile::NoError); // Test only QLCFixtureDef's doings and don't go into channel/mode details // since they are tested in their individual unit tests. QLCFixtureDef* def2 = new QLCFixtureDef; QCOMPARE(def2->loadXML(QString()), QFile::OpenError); QCOMPARE(def2->loadXML("/path/beyond/this/universe/foo.qxf"), QFile::ReadError); QCOMPARE(def2->loadXML("readonly.xml"), QFile::ReadError); QCOMPARE(def2->loadXML(path), QFile::NoError); QCOMPARE(def2->manufacturer(), def->manufacturer()); QCOMPARE(def2->model(), def->model()); QCOMPARE(def2->channels().size(), 1); QCOMPARE(def2->channels().at(0)->name(), ch->name()); QCOMPARE(def2->modes().size(), 1); QCOMPARE(def2->modes().at(0)->name(), mode->name()); delete def; delete def2; QFile::remove(path); QVERIFY(QFile::exists(path) == false); }
void QLCFixtureDef_Test::copy() { QLCFixtureDef* fd = new QLCFixtureDef(); fd->setManufacturer("Martin"); fd->setModel("MAC600"); fd->setType("Moving Head"); QLCChannel* ch = new QLCChannel(); ch->setName("TestChannel"); fd->addChannel(ch); QLCFixtureMode* mode = new QLCFixtureMode(fd); mode->setName("TestMode"); fd->addMode(mode); mode->insertChannel(ch, 0); QLCFixtureDef* copy = new QLCFixtureDef(fd); QVERIFY(copy->manufacturer() == "Martin"); QVERIFY(copy->model() == "MAC600"); QVERIFY(copy->type() == "Moving Head"); /* Verify that modes and channels get copied and that the channels in the copied mode are from the copied fixtureDef and not the one that the copy is taken FROM. */ QVERIFY(copy->channels().at(0)->name() == "TestChannel"); QVERIFY(copy->modes().at(0)->name() == "TestMode"); QVERIFY(copy->modes().at(0)->channels().size() == 1); QVERIFY(copy->modes().size() == 1); QVERIFY(copy->modes().at(0)->channel(0) != ch); QVERIFY(copy->modes().at(0)->channel(0) == copy->channels().at(0)); QVERIFY(copy->channels().at(0)->name() == "TestChannel"); QVERIFY(copy->modes().at(0)->channel(0)->name() == "TestChannel"); delete fd; delete copy; }
QLCFixtureDef *Fixture::genericRGBPanelDef(int columns, Components components) { QLCFixtureDef *def = new QLCFixtureDef(); def->setManufacturer(KXMLFixtureGeneric); def->setModel(KXMLFixtureRGBPanel); def->setType("LED Bar"); def->setAuthor("QLC+"); for (int i = 0; i < columns; i++) { QLCChannel* red = new QLCChannel(); red->setName(QString("Red %1").arg(i + 1)); red->setGroup(QLCChannel::Intensity); red->setColour(QLCChannel::Red); QLCChannel* green = new QLCChannel(); green->setName(QString("Green %1").arg(i + 1)); green->setGroup(QLCChannel::Intensity); green->setColour(QLCChannel::Green); QLCChannel* blue = new QLCChannel(); blue->setName(QString("Blue %1").arg(i + 1)); blue->setGroup(QLCChannel::Intensity); blue->setColour(QLCChannel::Blue); if (components == BGR) { def->addChannel(blue); def->addChannel(green); def->addChannel(red); } else if (components == RGBW) { QLCChannel* white = new QLCChannel(); white->setName(QString("White %1").arg(i + 1)); white->setGroup(QLCChannel::Intensity); white->setColour(QLCChannel::White); def->addChannel(red); def->addChannel(green); def->addChannel(blue); def->addChannel(white); } else if (components == RGBWW) { QLCChannel* white = new QLCChannel(); white->setName(QString("Warm White %1").arg(i + 1)); white->setGroup(QLCChannel::Intensity); white->setColour(QLCChannel::White); QLCChannel* white2 = new QLCChannel(); white2->setName(QString("Cold White %1").arg(i + 1)); white2->setGroup(QLCChannel::Intensity); white2->setColour(QLCChannel::White); def->addChannel(red); def->addChannel(green); def->addChannel(blue); def->addChannel(white); def->addChannel(white2); } else { def->addChannel(red); def->addChannel(green); def->addChannel(blue); } } return def; }