mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-01 13:47:01 -04:00
Deep redesign: fixed RTLSDR input plugin
This commit is contained in:
@@ -28,13 +28,16 @@ PluginManager::~PluginManager()
|
||||
|
||||
void PluginManager::loadPlugins()
|
||||
{
|
||||
qDebug() << "PluginManager::loadPlugins: " << qPrintable(QApplication::instance()->applicationDirPath());
|
||||
|
||||
QDir pluginsDir = QDir(QApplication::instance()->applicationDirPath());
|
||||
|
||||
loadPlugins(pluginsDir);
|
||||
|
||||
qSort(m_plugins);
|
||||
|
||||
for(Plugins::const_iterator it = m_plugins.begin(); it != m_plugins.end(); ++it) {
|
||||
for (Plugins::const_iterator it = m_plugins.begin(); it != m_plugins.end(); ++it)
|
||||
{
|
||||
it->plugin->initPlugin(&m_pluginAPI);
|
||||
}
|
||||
|
||||
@@ -321,22 +324,38 @@ void PluginManager::loadPlugins(const QDir& dir)
|
||||
|
||||
foreach (QString fileName, pluginsDir.entryList(QDir::Files))
|
||||
{
|
||||
QPluginLoader* loader = new QPluginLoader(pluginsDir.absoluteFilePath(fileName));
|
||||
PluginInterface* plugin = qobject_cast<PluginInterface*>(loader->instance());
|
||||
if (fileName.endsWith(".so"))
|
||||
{
|
||||
qDebug() << "PluginManager::loadPlugins: fileName: " << qPrintable(fileName);
|
||||
|
||||
if (loader->isLoaded()) {
|
||||
qWarning("loaded plugin %s", qPrintable(fileName));
|
||||
}
|
||||
QPluginLoader* loader = new QPluginLoader(pluginsDir.absoluteFilePath(fileName));
|
||||
PluginInterface* plugin = qobject_cast<PluginInterface*>(loader->instance());
|
||||
|
||||
if (plugin != NULL) {
|
||||
m_plugins.append(Plugin(fileName, loader, plugin));
|
||||
} else {
|
||||
loader->unload();
|
||||
delete loader;
|
||||
if (loader->isLoaded())
|
||||
{
|
||||
qWarning("PluginManager::loadPlugins: loaded plugin %s", qPrintable(fileName));
|
||||
}
|
||||
else
|
||||
{
|
||||
qWarning() << "PluginManager::loadPlugins: " << qPrintable(loader->errorString());
|
||||
}
|
||||
|
||||
if (plugin != 0)
|
||||
{
|
||||
m_plugins.append(Plugin(fileName, loader, plugin));
|
||||
}
|
||||
else
|
||||
{
|
||||
loader->unload();
|
||||
delete loader;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (QString dirName, pluginsDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
|
||||
// recursive calls on subdirectories
|
||||
|
||||
foreach (QString dirName, pluginsDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
|
||||
{
|
||||
loadPlugins(pluginsDir.absoluteFilePath(dirName));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user