annotate plugin/PiperVampPluginFactory.h @ 1520:954d0cf29ca7 import-audio-data

Switch the normalisation option in WritableWaveFileModel from normalising on read to normalising on write, so that the saved file is already normalised and therefore can be read again without having to remember to normalise it
author Chris Cannam
date Wed, 12 Sep 2018 13:56:56 +0100
parents 91bb68146dfc
children c55de1488b93
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@1249 19 #ifdef HAVE_PIPER
Chris@1249 20
Chris@1225 21 #include "FeatureExtractionPluginFactory.h"
Chris@1225 22
Chris@1209 23 #include <QMutex>
Chris@0 24 #include <vector>
Chris@165 25 #include <map>
Chris@0 26
Chris@1225 27 #include "base/Debug.h"
Chris@1246 28 #include "base/HelperExecPath.h"
Chris@0 29
Chris@1225 30 /**
Chris@1225 31 * FeatureExtractionPluginFactory type for Vamp plugins hosted in a
Chris@1225 32 * separate process using Piper protocol.
Chris@1225 33 */
Chris@1225 34 class PiperVampPluginFactory : public FeatureExtractionPluginFactory
Chris@0 35 {
Chris@0 36 public:
Chris@1225 37 PiperVampPluginFactory();
Chris@1264 38 virtual ~PiperVampPluginFactory();
Chris@0 39
Chris@1227 40 virtual std::vector<QString> getPluginIdentifiers(QString &errorMessage)
Chris@1227 41 override;
Chris@0 42
Chris@1225 43 virtual piper_vamp::PluginStaticData getPluginStaticData(QString identifier)
Chris@1225 44 override;
Chris@1223 45
Chris@66 46 virtual Vamp::Plugin *instantiatePlugin(QString identifier,
Chris@1225 47 sv_samplerate_t inputSampleRate)
Chris@1225 48 override;
Chris@0 49
Chris@1225 50 virtual QString getPluginCategory(QString identifier) override;
Chris@165 51
Chris@1464 52 virtual QString getPluginLibraryPath(QString identifier) override;
Chris@1464 53
Chris@0 54 protected:
Chris@1225 55 QMutex m_mutex;
Chris@1246 56 QList<HelperExecPath::HelperExec> m_servers; // executable file paths
Chris@1240 57 std::map<QString, QString> m_origins; // plugin identifier -> server path
Chris@1464 58 std::map<QString, QString> m_libraries; // soname -> full file path
Chris@1225 59 std::map<QString, piper_vamp::PluginStaticData> m_pluginData; // identifier -> data
Chris@1225 60 std::map<QString, QString> m_taxonomy; // identifier -> category string
Chris@1240 61
Chris@1227 62 void populate(QString &errorMessage);
Chris@1246 63 void populateFrom(const HelperExecPath::HelperExec &, QString &errorMessage);
Chris@1264 64
Chris@1264 65 class Logger;
Chris@1264 66 Logger *m_logger;
Chris@0 67 };
Chris@0 68
Chris@0 69 #endif
Chris@1249 70
Chris@1249 71 #endif