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; }
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; } }
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); }