Mercurial > hg > svcore
view 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 source
/* -*- 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? }