annotate plugin/DSSIPluginFactory.h @ 1825:029d7d3f0a3a

Add option to avoid pulling in the WinRT dependency for this very small feature
author Chris Cannam
date Fri, 06 Mar 2020 12:12:46 +0000
parents ad5f892c0c4d
children 5f8fbbde08ff
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@0 7
Chris@52 8 This program is free software; you can redistribute it and/or
Chris@52 9 modify it under the terms of the GNU General Public License as
Chris@52 10 published by the Free Software Foundation; either version 2 of the
Chris@52 11 License, or (at your option) any later version. See the file
Chris@52 12 COPYING included with this distribution for more information.
Chris@0 13 */
Chris@0 14
Chris@0 15 /*
Chris@0 16 This is a modified version of a source file from the
Chris@0 17 Rosegarden MIDI and audio sequencer and notation editor.
Chris@17 18 This file copyright 2000-2006 Chris Cannam.
Chris@0 19 */
Chris@0 20
Chris@1581 21 #ifndef SV_DSSI_PLUGIN_FACTORY_H
Chris@1581 22 #define SV_DSSI_PLUGIN_FACTORY_H
Chris@0 23
Chris@0 24 #define DSSI_API_LEVEL 2
Chris@0 25
Chris@0 26 #include "LADSPAPluginFactory.h"
Chris@0 27 #include "api/dssi.h"
Chris@0 28
Chris@0 29 #include <QMutex>
Chris@0 30
Chris@0 31 class DSSIPluginInstance;
Chris@0 32
Chris@0 33 class DSSIPluginFactory : public LADSPAPluginFactory
Chris@0 34 {
Chris@0 35 public:
Chris@0 36 virtual ~DSSIPluginFactory();
Chris@0 37
Chris@1580 38 void enumeratePlugins(std::vector<QString> &list) override;
Chris@0 39
Chris@1580 40 RealTimePluginInstance *instantiatePlugin(QString identifier,
Chris@1429 41 int clientId,
Chris@1429 42 int position,
Chris@1429 43 sv_samplerate_t sampleRate,
Chris@1429 44 int blockSize,
Chris@1580 45 int channels) override;
Chris@0 46
Chris@1472 47 static std::vector<QString> getPluginPath();
Chris@1472 48
Chris@0 49 protected:
Chris@0 50 DSSIPluginFactory();
Chris@0 51 friend class RealTimePluginFactory;
Chris@0 52
Chris@1580 53 PluginScan::PluginType getPluginType() const override {
Chris@1180 54 return PluginScan::DSSIPlugin;
Chris@1179 55 }
Chris@1179 56
Chris@1580 57 std::vector<QString> getLRDFPath(QString &baseUri) override;
Chris@0 58
Chris@1580 59 void discoverPluginsFrom(QString soName) override;
Chris@0 60
Chris@1580 61 const LADSPA_Descriptor *getLADSPADescriptor(QString identifier) override;
Chris@0 62 virtual const DSSI_Descriptor *getDSSIDescriptor(QString identifier);
Chris@0 63
Chris@0 64 DSSI_Host_Descriptor m_hostDescriptor;
Chris@0 65 };
Chris@0 66
Chris@0 67 #endif
Chris@0 68