Mercurial > hg > svcore
view plugin/LADSPAPluginFactory.h @ 123:0f37e92e1782
* 1502816 file export is too slow and memory-hungry
Use text stream when writing to file instead of accumulating into a string.
* 1500625 Auto-align in MIDI layer confusing
Make value extents convert to Hz in return value
* 1494623: Duplicate display of frame 0 from vamp plugin output
author | Chris Cannam |
---|---|
date | Thu, 15 Jun 2006 15:48:05 +0000 |
parents | 3086ff194ea0 |
children | 4b2ea82fd0ed |
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. */ /* This is a modified version of a source file from the Rosegarden MIDI and audio sequencer and notation editor. This file copyright 2000-2006 Chris Cannam and Richard Bown. */ #ifndef _LADSPA_PLUGIN_FACTORY_H_ #define _LADSPA_PLUGIN_FACTORY_H_ #include "RealTimePluginFactory.h" #include "api/ladspa.h" #include <vector> #include <map> #include <set> #include <QString> class LADSPAPluginInstance; class LADSPAPluginFactory : public RealTimePluginFactory { public: virtual ~LADSPAPluginFactory(); virtual void discoverPlugins(); virtual const std::vector<QString> &getPluginIdentifiers() const; virtual void enumeratePlugins(std::vector<QString> &list); virtual const RealTimePluginDescriptor *getPluginDescriptor(QString identifier) const; virtual RealTimePluginInstance *instantiatePlugin(QString identifier, int clientId, int position, unsigned int sampleRate, unsigned int blockSize, unsigned int channels); float getPortMinimum(const LADSPA_Descriptor *, int port); float getPortMaximum(const LADSPA_Descriptor *, int port); float getPortDefault(const LADSPA_Descriptor *, int port); float getPortQuantization(const LADSPA_Descriptor *, int port); int getPortDisplayHint(const LADSPA_Descriptor *, int port); protected: LADSPAPluginFactory(); friend class RealTimePluginFactory; virtual std::vector<QString> getPluginPath(); #ifdef HAVE_LRDF virtual std::vector<QString> getLRDFPath(QString &baseUri); #endif virtual void discoverPlugins(QString soName); virtual void generateTaxonomy(QString uri, QString base); virtual void generateFallbackCategories(); virtual void releasePlugin(RealTimePluginInstance *, QString); virtual const LADSPA_Descriptor *getLADSPADescriptor(QString identifier); void loadLibrary(QString soName); void unloadLibrary(QString soName); void unloadUnusedLibraries(); std::vector<QString> m_identifiers; std::map<QString, RealTimePluginDescriptor *> m_rtDescriptors; std::map<unsigned long, QString> m_taxonomy; std::map<QString, QString> m_fallbackCategories; std::map<unsigned long, std::map<int, float> > m_portDefaults; std::set<RealTimePluginInstance *> m_instances; typedef std::map<QString, void *> LibraryHandleMap; LibraryHandleMap m_libraryHandles; }; #endif