void InputPatch_Test::patch() { InputMap im(this); QDir dir(TESTPLUGINDIR); dir.setFilter(QDir::Files); dir.setNameFilters(QStringList() << QString("*%1").arg(KExtPlugin)); im.loadPlugins(dir); QVERIFY(im.m_plugins.size() > 0); InputPluginStub* stub = static_cast<InputPluginStub*> (im.m_plugins.at(0)); QVERIFY(stub != NULL); QLCInputProfile prof1; prof1.setManufacturer("Foo"); prof1.setManufacturer("Bar"); InputPatch* ip = new InputPatch(this); ip->set(stub, 0, false, &prof1); QVERIFY(ip->m_plugin == stub); QVERIFY(ip->m_input == 0); QVERIFY(ip->m_profile == &prof1); QVERIFY(ip->pluginName() == stub->name()); QVERIFY(ip->inputName() == stub->inputs()[0]); QVERIFY(ip->profileName() == prof1.name()); QVERIFY(stub->m_openLines.size() == 1); QVERIFY(stub->m_openLines.at(0) == 0); QVERIFY(ip->m_feedbackEnabled == false); QVERIFY(ip->feedbackEnabled() == false); QLCInputProfile prof2; prof2.setManufacturer("Xyzzy"); prof2.setManufacturer("Foobar"); ip->set(stub, 3, true, &prof2); QVERIFY(ip->m_plugin == stub); QVERIFY(ip->m_input == 3); QVERIFY(ip->m_profile == &prof2); QVERIFY(ip->pluginName() == stub->name()); QVERIFY(ip->inputName() == stub->inputs()[3]); QVERIFY(ip->profileName() == prof2.name()); QVERIFY(stub->m_openLines.size() == 1); QVERIFY(stub->m_openLines.at(0) == 3); QVERIFY(ip->m_feedbackEnabled == true); QVERIFY(ip->feedbackEnabled() == true); delete ip; QVERIFY(stub->m_openLines.size() == 0); }
void InputMap::saveDefaults() { QSettings settings; QString key; QString str; for (t_input_universe i = 0; i < m_universes; i++) { InputPatch* pat = patch(i); Q_ASSERT(pat != NULL); /* Editor universe */ key = QString("/inputmap/editoruniverse/"); settings.setValue(key, m_editorUniverse); if (pat->plugin() != NULL) { /* Plugin name */ key = QString("/inputmap/universe%2/plugin/").arg(i); settings.setValue(key, pat->plugin()->name()); /* Plugin input */ key = QString("/inputmap/universe%2/input/").arg(i); settings.setValue(key, str.setNum(pat->input())); /* Input profile */ key = QString("/inputmap/universe%2/profile/").arg(i); settings.setValue(key, pat->profileName()); /* Feedback enable */ key = QString("/inputmap/universe%2/feedbackEnabled/").arg(i); settings.setValue(key, pat->feedbackEnabled()); } else { /* Plugin name */ key = QString("/inputmap/universe%2/plugin/").arg(i); settings.setValue(key, ""); /* Plugin input */ key = QString("/inputmap/universe%2/input/").arg(i); settings.setValue(key, ""); /* Input profile */ key = QString("/inputmap/universe%2/profile/").arg(i); settings.setValue(key, ""); /* Feedback enable */ key = QString("/inputmap/universe%2/feedbackEnabled/").arg(i); settings.setValue(key, true); } } }
void InputPatch_Test::patch() { InputPluginStub stub; QLCInputProfile prof1; prof1.setManufacturer("Foo"); prof1.setManufacturer("Bar"); InputPatch* ip = new InputPatch(this); ip->set(&stub, 0, false, &prof1); QVERIFY(ip->m_plugin == &stub); QVERIFY(ip->m_input == 0); QVERIFY(ip->m_profile == &prof1); QVERIFY(ip->pluginName() == stub.name()); QVERIFY(ip->inputName() == stub.inputs()[0]); QVERIFY(ip->profileName() == prof1.name()); QVERIFY(stub.m_openLines.size() == 1); QVERIFY(stub.m_openLines.at(0) == 0); QVERIFY(ip->m_feedbackEnabled == false); QVERIFY(ip->feedbackEnabled() == false); QLCInputProfile prof2; prof2.setManufacturer("Xyzzy"); prof2.setManufacturer("Foobar"); ip->set(&stub, 3, true, &prof2); QVERIFY(ip->m_plugin == &stub); QVERIFY(ip->m_input == 3); QVERIFY(ip->m_profile == &prof2); QVERIFY(ip->pluginName() == stub.name()); QVERIFY(ip->inputName() == stub.inputs()[3]); QVERIFY(ip->profileName() == prof2.name()); QVERIFY(stub.m_openLines.size() == 1); QVERIFY(stub.m_openLines.at(0) == 3); QVERIFY(ip->m_feedbackEnabled == true); QVERIFY(ip->feedbackEnabled() == true); delete ip; QVERIFY(stub.m_openLines.size() == 0); }
bool InputMap::feedBack(quint32 universe, quint32 channel, uchar value) { if (universe >= quint32(m_patch.size())) return false; InputPatch* patch = m_patch[universe]; Q_ASSERT(patch != NULL); if (patch->plugin() != NULL && patch->feedbackEnabled() == true) { patch->plugin()->feedBack(patch->input(), channel, value); return true; } else { return false; } }
bool InputMap::feedBack(t_input_universe universe, t_input_channel channel, t_input_value value) { if (universe >= m_patch.size()) return false; InputPatch* patch = m_patch[universe]; Q_ASSERT(patch != NULL); if (patch->plugin() != NULL && patch->feedbackEnabled() == true) { patch->plugin()->feedBack(patch->input(), channel, value); return true; } else { return false; } }