示例#1
0
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);
}
示例#2
0
文件: inputmap.cpp 项目: speakman/qlc
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);
		}
	}
}
示例#3
0
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);
}
示例#4
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;
    }
}
示例#5
0
文件: inputmap.cpp 项目: speakman/qlc
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;
	}
}