svcore  1.9
DSSIPluginFactory.h
Go to the documentation of this file.
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
2 
3 /*
4  Sonic Visualiser
5  An audio file viewer and annotation editor.
6  Centre for Digital Music, Queen Mary, University of London.
7 
8  This program is free software; you can redistribute it and/or
9  modify it under the terms of the GNU General Public License as
10  published by the Free Software Foundation; either version 2 of the
11  License, or (at your option) any later version. See the file
12  COPYING included with this distribution for more information.
13 */
14 
15 /*
16  This is a modified version of a source file from the
17  Rosegarden MIDI and audio sequencer and notation editor.
18  This file copyright 2000-2006 Chris Cannam.
19 */
20 
21 #ifndef _DSSI_PLUGIN_FACTORY_H_
22 #define _DSSI_PLUGIN_FACTORY_H_
23 
24 #define DSSI_API_LEVEL 2
25 
26 #include "LADSPAPluginFactory.h"
27 #include "api/dssi.h"
28 
29 #include <QMutex>
30 
31 class DSSIPluginInstance;
32 
34 {
35 public:
36  virtual ~DSSIPluginFactory();
37 
38  virtual void enumeratePlugins(std::vector<QString> &list);
39 
40  virtual RealTimePluginInstance *instantiatePlugin(QString identifier,
41  int clientId,
42  int position,
43  unsigned int sampleRate,
44  unsigned int blockSize,
45  unsigned int channels);
46 
47 protected:
49  friend class RealTimePluginFactory;
50 
51  virtual std::vector<QString> getPluginPath();
52 
53  virtual std::vector<QString> getLRDFPath(QString &baseUri);
54 
55  virtual void discoverPluginsFrom(QString soName);
56 
57  virtual const LADSPA_Descriptor *getLADSPADescriptor(QString identifier);
58  virtual const DSSI_Descriptor *getDSSIDescriptor(QString identifier);
59 
60  DSSI_Host_Descriptor m_hostDescriptor;
61 };
62 
63 #endif
64 
virtual const LADSPA_Descriptor * getLADSPADescriptor(QString identifier)
virtual void enumeratePlugins(std::vector< QString > &list)
Append to the given list descriptions of all the available plugins and their ports.
virtual std::vector< QString > getPluginPath()
virtual RealTimePluginInstance * instantiatePlugin(QString identifier, int clientId, int position, unsigned int sampleRate, unsigned int blockSize, unsigned int channels)
Instantiate a plugin.
virtual const DSSI_Descriptor * getDSSIDescriptor(QString identifier)
DSSI_Host_Descriptor m_hostDescriptor
virtual std::vector< QString > getLRDFPath(QString &baseUri)
virtual void discoverPluginsFrom(QString soName)