Mercurial > hg > svcore
diff plugin/PluginScan.cpp @ 1178:bf05d9259dbc pluginscan
First cut running (but not yet using output of, or recovering from errors in) the plugin checker at startup
author | Chris Cannam |
---|---|
date | Thu, 14 Apr 2016 12:12:04 +0100 |
parents | |
children | 6b1af0f05f06 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/PluginScan.cpp Thu Apr 14 12:12:04 2016 +0100 @@ -0,0 +1,89 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Sonic Visualiser + An audio file viewer and annotation editor. + Centre for Digital Music, Queen Mary, University of London. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#include "PluginScan.h" + +#include "base/Debug.h" + +#include <QMutex> + +using std::string; + +PluginScan *PluginScan::getInstance() { + static QMutex mutex; + static PluginScan *m_instance = 0; + mutex.lock(); + if (!m_instance) m_instance = new PluginScan(); + mutex.unlock(); + return m_instance; +} + +PluginScan::PluginScan() : m_kp(0) { +} + +PluginScan::~PluginScan() { + delete m_kp; +} + +void +PluginScan::log(string message) +{ + SVDEBUG << "PluginScan: " << message; +} + +void +PluginScan::scan() +{ + delete m_kp; + m_kp = new KnownPlugins("./helper", this); //!!! +} + +QStringList +PluginScan::getCandidateVampLibraries() const +{ + QStringList candidates; + if (!m_kp) return candidates; + auto c = m_kp->getCandidateLibrariesFor(KnownPlugins::VampPlugin); + for (auto s: c) candidates.push_back(s.c_str()); + return candidates; +} + +QStringList +PluginScan::getCandidateLADSPALibraries() const +{ + QStringList candidates; + if (!m_kp) return candidates; + auto c = m_kp->getCandidateLibrariesFor(KnownPlugins::LADSPAPlugin); + for (auto s: c) candidates.push_back(s.c_str()); + return candidates; +} + +QStringList +PluginScan::getCandidateDSSILibraries() const +{ + QStringList candidates; + if (!m_kp) return candidates; + auto c = m_kp->getCandidateLibrariesFor(KnownPlugins::DSSIPlugin); + for (auto s: c) candidates.push_back(s.c_str()); + return candidates; +} + +QString +PluginScan::getStartupFailureReport() const +{ + if (!m_kp) return ""; //!!!??? + string report = m_kp->getFailureReport(); + return report.c_str(); //!!! wrap? +} +