Пример #1
0
std::vector<std::string> SoapySDR::listModules(void)
{
    //the default search path
    std::vector<std::string> searchPaths;
    searchPaths.push_back(SoapySDR::getRootPath() + "/lib@LIB_SUFFIX@/SoapySDR/modules" + SoapySDR::getABIVersion());

    //support /usr/local module installs when the install prefix is /usr
    if (SoapySDR::getRootPath() == "/usr")
    {
        searchPaths.push_back("/usr/local/lib@LIB_SUFFIX@/SoapySDR/modules" + SoapySDR::getABIVersion());
        //when using a multi-arch directory, support single-arch path as well
        static const std::string libsuffix("@LIB_SUFFIX@");
        if (not libsuffix.empty() and libsuffix.at(0) == '/')
            searchPaths.push_back("/usr/local/lib/SoapySDR/modules" + SoapySDR::getABIVersion());
    }

    //separator for search paths
    #ifdef _MSC_VER
    static const char sep = ';';
    #else
    static const char sep = ':';
    #endif

    //check the environment's search path
    std::stringstream pluginPaths(getEnvImpl("SOAPY_SDR_PLUGIN_PATH"));
    std::string pluginPath;
    while (std::getline(pluginPaths, pluginPath, sep))
    {
        if (pluginPath.empty()) continue;
        searchPaths.push_back(pluginPath);
    }

    //traverse the search paths
    std::vector<std::string> modules;
    for (size_t i = 0; i < searchPaths.size(); i++)
    {
        const std::vector<std::string> subModules = SoapySDR::listModules(searchPaths.at(i));
        modules.insert(modules.end(), subModules.begin(), subModules.end());
    }
    return modules;
}
Пример #2
0
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    Q_INIT_RESOURCE(bauhaus);

    doStyling(app);

#ifdef Q_WS_X11
    QIcon applicationIcon;
    applicationIcon.addFile(":/16xBauhaus_Log");
    applicationIcon.addFile(":/64xBauhaus_Logo.png");
    applicationIcon.addFile(":/128xBauhaus_Logo.png");
    applicationIcon.addFile(":/256xBauhaus_Logo.png");
    Q_ASSERT(!applicationIcon.isNull());
    app.setWindowIcon(applicationIcon);
#endif

    QCoreApplication::setOrganizationName("Nokia");
    QCoreApplication::setOrganizationDomain("nokia.com");
    QCoreApplication::setApplicationName("Bauhaus");

    try {
        QmlDesigner::IntegrationCore core;
        core.pluginManager()->setPluginPaths(pluginPaths());

        MainWindow mainWindow;
        mainWindow.show();

        parseArguments(app.arguments(), mainWindow);

//        if (mainWindow.documentCount() == 0)
//            mainWindow.showWelcomeScreen();
//
        return app.exec();

    } catch (const QmlDesigner::Exception &exception) {
        qWarning() << exception;
        return -1;
    }
}
Пример #3
0
void ParameteredGroupObject::initialize()
{
	ParameteredObject::initialize();

	if(_inputs)
	{
		std::vector<VirtualInputSlot*> vinput=_inputs->getSlotVector();
		for(size_t i=0;i<vinput.size();i++)
		{
			VirtualInputSlot* in=vinput[i];
			_removeInputSlot(in->getName());
			Parameter<int> *par=_loopOutputNumber[i];
			_removeSomething("parameters",par->getName());
			delete par;
			breakLoop(i);
		}
	}
	_loopOutputNumber.clear();

	if(_outputs)
	{
		std::vector<VirtualOutputSlot*> voutput=_outputs->getSlotVector();
		for(size_t i=0;i<voutput.size();i++)
		{
			VirtualOutputSlot* out=voutput[i];
			_removeOutputSlot(out->getName());
		}
	}

	_inputs=0;
	_outputs=0;
	if (_pluginMan!=0) {
		_pluginMan->reset();
		delete _pluginMan;
		_pluginMan = 0;
	}

	_pluginMan = new PluginManager(pluginPaths(),debugSuffix());
	_pluginMan->loadParameterFile(workFlowFile());
	const std::map<std::string, ParameteredObject*>& objs=_pluginMan->getObjectList();

	std::map<std::string, ParameteredObject *>::const_iterator it=objs.begin();
	for(;it!=objs.end();it++)
	{
		ParameteredObject* obj=it->second;
		InputSlotBundleIntf* tinputs=dynamic_cast<InputSlotBundleIntf*>(obj);
		OutputSlotBundleIntf* toutputs=dynamic_cast<OutputSlotBundleIntf*>(obj);
		if(tinputs)
			_inputs=tinputs;
		if(toutputs)
			_outputs=toutputs;
	}

	if(_inputs)
	{
		std::vector<VirtualInputSlot*> vinput=_inputs->getSlotVector();
		for(size_t i=0;i<vinput.size();i++)
		{
			VirtualInputSlot* in=vinput[i];
            onAddInputSlot(in);
			Parameter<int> *par=new Parameter<int>(-1);
			std::stringstream pname;
			pname<<"loop_input_"<<i<<"_to_output";
			std::stringstream pdoc;
			pdoc<<"The input "<<i<<" gets the data of the given output after one iteration of a loop. To disable the connection, set to -1";
			_addParameter(*par,pname.str(),pdoc.str(),"int");
			_loopOutputNumber.push_back(par);
		}
	}
	if(_outputs)
	{
		std::vector<VirtualOutputSlot*> voutput=_outputs->getSlotVector();
		for(size_t i=0;i<voutput.size();i++)
		{
			VirtualOutputSlot* out=voutput[i];
            onAddOutputSlot(out);
		}
	}

	initializeGroup();

	#pragma message ("need to load slotbundle connections")
	//_inputs->loadConnection(ParameterFile(workFlowFile),_pluginMan);
	//_outputs->loadConnection(ParameterFile(workFlowFile),_pluginMan);
}