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 SV_DSSI_PLUGIN_FACTORY_H
22 #define SV_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  void enumeratePlugins(std::vector<QString> &list) override;
39 
40  std::shared_ptr<RealTimePluginInstance>
41  instantiatePlugin(QString identifier,
42  int clientId,
43  int position,
44  sv_samplerate_t sampleRate,
45  int blockSize,
46  int channels) override;
47 
48  static std::vector<QString> getPluginPath();
49 
50 protected:
52  friend class RealTimePluginFactory;
53 
56  }
57 
58  std::vector<QString> getLRDFPath(QString &baseUri) override;
59 
60  void discoverPluginsFrom(QString soName) override;
61 
62  const LADSPA_Descriptor *getLADSPADescriptor(QString identifier) override;
63  virtual const DSSI_Descriptor *getDSSIDescriptor(QString identifier);
64 
65  DSSI_Host_Descriptor m_hostDescriptor;
66 };
67 
68 #endif
69 
double sv_samplerate_t
Sample rate.
Definition: BaseTypes.h:51
std::vector< QString > getLRDFPath(QString &baseUri) override
void enumeratePlugins(std::vector< QString > &list) override
Append to the given list descriptions of all the available plugins and their ports.
PluginScan::PluginType getPluginType() const override
const LADSPA_Descriptor * getLADSPADescriptor(QString identifier) override
void discoverPluginsFrom(QString soName) override
static std::vector< QString > getPluginPath()
virtual const DSSI_Descriptor * getDSSIDescriptor(QString identifier)
DSSI_Host_Descriptor m_hostDescriptor
std::shared_ptr< RealTimePluginInstance > instantiatePlugin(QString identifier, int clientId, int position, sv_samplerate_t sampleRate, int blockSize, int channels) override
Instantiate a plugin.