mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-21 07:15:09 +03:00
Directories FatFS / CoOS / STM32 libs moved to thirdparty
This commit is contained in:
parent
318fc79dfe
commit
2817866ad2
456 changed files with 1154 additions and 2580 deletions
61
companion/src/simulation/simulatorinterface.cpp
Normal file
61
companion/src/simulation/simulatorinterface.cpp
Normal file
|
@ -0,0 +1,61 @@
|
|||
#include "simulatorinterface.h"
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QLibrary>
|
||||
#include <QMap>
|
||||
#include <QMessageBox>
|
||||
|
||||
QMap<QString, SimulatorFactory *> registered_simulators;
|
||||
|
||||
void registerSimulatorFactory(SimulatorFactory *factory)
|
||||
{
|
||||
qDebug() << "registering" << factory->name() << "simulator";
|
||||
registered_simulators[factory->name()] = factory;
|
||||
}
|
||||
|
||||
void registerSimulator(const QString &filename)
|
||||
{
|
||||
QLibrary lib(filename);
|
||||
typedef SimulatorFactory * (*RegisterSimulator)();
|
||||
RegisterSimulator registerSimulator = (RegisterSimulator)lib.resolve("registerSimu");
|
||||
if (registerSimulator) {
|
||||
SimulatorFactory *factory = registerSimulator();
|
||||
registerSimulatorFactory(factory);
|
||||
}
|
||||
else {
|
||||
qWarning() << "Library error" << filename << lib.errorString();
|
||||
}
|
||||
}
|
||||
|
||||
void registerSimulators()
|
||||
{
|
||||
QDir dir(".");
|
||||
QStringList filters;
|
||||
#if !defined __GNUC__
|
||||
filters << "*-simulator.dll";
|
||||
#else
|
||||
filters << "*-simulator.so";
|
||||
#endif
|
||||
foreach(QString filename, dir.entryList(filters, QDir::Files)) {
|
||||
registerSimulator(filename);
|
||||
}
|
||||
}
|
||||
|
||||
SimulatorFactory *getSimulatorFactory(const QString &name)
|
||||
{
|
||||
QString simuName = name;
|
||||
while(1) {
|
||||
qDebug() << "searching" << simuName << "simulator";
|
||||
if (registered_simulators.contains(simuName)) {
|
||||
return registered_simulators[simuName];
|
||||
}
|
||||
else {
|
||||
int pos = simuName.lastIndexOf('-');
|
||||
if (pos <= 0)
|
||||
break;
|
||||
simuName = simuName.mid(0, pos);
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue