annotate plugin/PiperVampPluginFactory.h @ 1247:8f076d02569a piper

Make SVDEBUG always write to a log file -- formerly this was disabled in NDEBUG builds. I think there's little use to that, it just means that we keep adding more cerr debug output because we aren't getting the log we need. And SVDEBUG logging is not usually used in tight loops, I don't think the performance overhead is too serious. Also update the About box.
author Chris Cannam
date Thu, 03 Nov 2016 14:57:00 +0000
parents 75aefcc9f07d
children d45a16c232bd
rev   line source
Chris@49 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 2
Chris@0 3 /*
Chris@52 4 Sonic Visualiser
Chris@52 5 An audio file viewer and annotation editor.
Chris@52 6 Centre for Digital Music, Queen Mary, University of London.
Chris@1225 7 This file copyright 2006-2016 Chris Cannam and QMUL.
Chris@0 8
Chris@52 9 This program is free software; you can redistribute it and/or
Chris@52 10 modify it under the terms of the GNU General Public License as
Chris@52 11 published by the Free Software Foundation; either version 2 of the
Chris@52 12 License, or (at your option) any later version. See the file
Chris@52 13 COPYING included with this distribution for more information.
Chris@0 14 */
Chris@0 15
Chris@1225 16 #ifndef SV_PIPER_VAMP_PLUGIN_FACTORY_H
Chris@1225 17 #define SV_PIPER_VAMP_PLUGIN_FACTORY_H
Chris@0 18
Chris@1225 19 #include "FeatureExtractionPluginFactory.h"
Chris@1225 20
Chris@1209 21 #include <QMutex>
Chris@0 22 #include <vector>
Chris@165 23 #include <map>
Chris@0 24
Chris@1225 25 #include "base/Debug.h"
Chris@1246 26 #include "base/HelperExecPath.h"
Chris@0 27
Chris@1225 28 /**
Chris@1225 29 * FeatureExtractionPluginFactory type for Vamp plugins hosted in a
Chris@1225 30 * separate process using Piper protocol.
Chris@1225 31 */
Chris@1225 32 class PiperVampPluginFactory : public FeatureExtractionPluginFactory
Chris@0 33 {
Chris@0 34 public:
Chris@1225 35 PiperVampPluginFactory();
Chris@161 36
Chris@1225 37 virtual ~PiperVampPluginFactory() { }
Chris@0 38
Chris@1227 39 virtual std::vector<QString> getPluginIdentifiers(QString &errorMessage)
Chris@1227 40 override;
Chris@0 41
Chris@1225 42 virtual piper_vamp::PluginStaticData getPluginStaticData(QString identifier)
Chris@1225 43 override;
Chris@1223 44
Chris@66 45 virtual Vamp::Plugin *instantiatePlugin(QString identifier,
Chris@1225 46 sv_samplerate_t inputSampleRate)
Chris@1225 47 override;
Chris@0 48
Chris@1225 49 virtual QString getPluginCategory(QString identifier) override;
Chris@165 50
Chris@0 51 protected:
Chris@1225 52 QMutex m_mutex;
Chris@1246 53 QList<HelperExecPath::HelperExec> m_servers; // executable file paths
Chris@1240 54 std::map<QString, QString> m_origins; // plugin identifier -> server path
Chris@1225 55 std::map<QString, piper_vamp::PluginStaticData> m_pluginData; // identifier -> data
Chris@1225 56 std::map<QString, QString> m_taxonomy; // identifier -> category string
Chris@1240 57
Chris@1227 58 void populate(QString &errorMessage);
Chris@1246 59 void populateFrom(const HelperExecPath::HelperExec &, QString &errorMessage);
Chris@0 60 };
Chris@0 61
Chris@0 62 #endif