svcore
1.9
TransformFactory.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
This file copyright 2006-2007 Chris Cannam and QMUL.
8
9
This program is free software; you can redistribute it and/or
10
modify it under the terms of the GNU General Public License as
11
published by the Free Software Foundation; either version 2 of the
12
License, or (at your option) any later version. See the file
13
COPYING included with this distribution for more information.
14
*/
15
16
#ifndef _TRANSFORM_FACTORY_H_
17
#define _TRANSFORM_FACTORY_H_
18
19
#include "
TransformDescription.h
"
20
21
#include "
base/TextMatcher.h
"
22
23
#include <vamp-hostsdk/Plugin.h>
24
25
#include <QObject>
26
#include <QStringList>
27
#include <QThread>
28
#include <QMutex>
29
30
#include <map>
31
#include <set>
32
33
class
TransformFactory
:
public
QObject
34
{
35
Q_OBJECT
36
37
public
:
38
TransformFactory
();
39
virtual
~TransformFactory
();
40
41
static
TransformFactory
*
getInstance
();
42
static
void
deleteInstance
();
// only when exiting
43
54
void
startPopulationThread
();
55
56
TransformList
getAllTransformDescriptions
();
57
TransformDescription
getTransformDescription
(
TransformId
id
);
58
bool
haveInstalledTransforms
();
59
60
TransformList
getUninstalledTransformDescriptions
();
61
TransformDescription
getUninstalledTransformDescription
(
TransformId
id
);
62
bool
haveUninstalledTransforms
(
bool
waitForCheckToComplete =
false
);
63
64
typedef
enum
{
65
TransformUnknown
,
66
TransformInstalled
,
67
TransformNotInstalled
68
}
TransformInstallStatus
;
69
70
TransformInstallStatus
getTransformInstallStatus
(
TransformId
id
);
71
72
std::vector<TransformDescription::Type>
getAllTransformTypes
();
73
std::vector<QString>
getTransformCategories
(
TransformDescription::Type
);
74
std::vector<QString>
getTransformMakers
(
TransformDescription::Type
);
75
QString
getTransformTypeName
(
TransformDescription::Type
)
const
;
76
77
typedef
std::map<TransformId, TextMatcher::Match>
SearchResults
;
78
SearchResults
search
(QString keyword);
79
SearchResults
search
(QStringList keywords);
80
84
bool
haveTransform
(
TransformId
identifier);
85
91
Transform
getDefaultTransformFor
(
TransformId
identifier,
int
rate = 0);
92
96
QString
getTransformName
(
TransformId
identifier);
97
102
QString
getTransformFriendlyName
(
TransformId
identifier);
103
104
QString
getTransformUnits
(
TransformId
identifier);
105
106
QString
getTransformInfoUrl
(
TransformId
identifier);
107
108
Vamp::Plugin::InputDomain
getTransformInputDomain
(
TransformId
identifier);
109
115
bool
isTransformConfigurable
(
TransformId
identifier);
116
123
bool
getTransformChannelRange
(
TransformId
identifier,
124
int
&minChannels,
int
&maxChannels);
125
146
Vamp::PluginBase *
instantiatePluginFor
(
const
Transform
&transform);
147
153
Vamp::Plugin *
downcastVampPlugin
(Vamp::PluginBase *);
154
161
void
setParametersFromPlugin
(
Transform
&transform, Vamp::PluginBase *plugin);
162
167
void
setPluginParameters
(
const
Transform
&transform, Vamp::PluginBase *plugin);
168
174
void
makeContextConsistentWithPlugin
(
Transform
&transform, Vamp::PluginBase *plugin);
175
185
QString
getPluginConfigurationXml
(
const
Transform
&transform);
186
196
void
setParametersFromPluginConfigurationXml
(
Transform
&transform,
197
QString xml);
198
199
protected
:
200
typedef
std::map<TransformId, TransformDescription>
TransformDescriptionMap
;
201
202
TransformDescriptionMap
m_transforms
;
203
bool
m_transformsPopulated
;
204
205
TransformDescriptionMap
m_uninstalledTransforms
;
206
bool
m_uninstalledTransformsPopulated
;
207
208
void
populateTransforms
();
209
void
populateUninstalledTransforms
();
210
void
populateFeatureExtractionPlugins
(
TransformDescriptionMap
&);
211
void
populateRealTimePlugins
(
TransformDescriptionMap
&);
212
213
Vamp::PluginBase *
instantiateDefaultPluginFor
(
TransformId
id
,
int
rate);
214
QMutex
m_transformsMutex
;
215
QMutex
m_uninstalledTransformsMutex
;
216
217
class
UninstalledTransformsPopulateThread
:
public
QThread
218
{
219
public
:
220
UninstalledTransformsPopulateThread
(
TransformFactory
*factory) :
221
m_factory
(factory) {
222
}
223
virtual
void
run
();
224
TransformFactory
*
m_factory
;
225
};
226
227
UninstalledTransformsPopulateThread
*
m_thread
;
228
bool
m_exiting
;
229
bool
m_populatingSlowly
;
230
231
static
TransformFactory
*
m_instance
;
232
};
233
234
235
#endif
TransformFactory::getTransformInstallStatus
TransformInstallStatus getTransformInstallStatus(TransformId id)
Definition:
TransformFactory.cpp:212
TransformFactory::TransformInstalled
Definition:
TransformFactory.h:66
TransformFactory
Definition:
TransformFactory.h:33
TransformFactory::getTransformCategories
std::vector< QString > getTransformCategories(TransformDescription::Type)
Definition:
TransformFactory.cpp:263
TransformFactory::m_transforms
TransformDescriptionMap m_transforms
Definition:
TransformFactory.h:202
TransformFactory::getUninstalledTransformDescriptions
TransformList getUninstalledTransformDescriptions()
Definition:
TransformFactory.cpp:153
TransformFactory::instantiateDefaultPluginFor
Vamp::PluginBase * instantiateDefaultPluginFor(TransformId id, int rate)
Definition:
TransformFactory.cpp:785
TransformFactory::m_uninstalledTransformsMutex
QMutex m_uninstalledTransformsMutex
Definition:
TransformFactory.h:215
TransformFactory::getTransformTypeName
QString getTransformTypeName(TransformDescription::Type) const
Definition:
TransformFactory.cpp:317
TransformFactory::TransformDescriptionMap
std::map< TransformId, TransformDescription > TransformDescriptionMap
Definition:
TransformFactory.h:200
TransformFactory::getTransformDescription
TransformDescription getTransformDescription(TransformId id)
Definition:
TransformFactory.cpp:134
TransformList
std::vector< TransformDescription > TransformList
Definition:
TransformDescription.h:88
TransformFactory::getTransformInputDomain
Vamp::Plugin::InputDomain getTransformInputDomain(TransformId identifier)
Definition:
TransformFactory.cpp:874
TransformFactory::UninstalledTransformsPopulateThread::m_factory
TransformFactory * m_factory
Definition:
TransformFactory.h:224
TransformFactory::haveTransform
bool haveTransform(TransformId identifier)
Return true if the given transform is known.
Definition:
TransformFactory.cpp:835
TransformFactory::TransformUnknown
Definition:
TransformFactory.h:65
TransformFactory::getDefaultTransformFor
Transform getDefaultTransformFor(TransformId identifier, int rate=0)
A single transform ID can lead to many possible Transforms, with different parameters and execution c...
Definition:
TransformFactory.cpp:753
TransformFactory::setParametersFromPlugin
void setParametersFromPlugin(Transform &transform, Vamp::PluginBase *plugin)
Set the plugin parameters, program and configuration strings on the given Transform object from the g...
Definition:
TransformFactory.cpp:941
TransformFactory::haveInstalledTransforms
bool haveInstalledTransforms()
Definition:
TransformFactory.cpp:146
TransformFactory::m_exiting
bool m_exiting
Definition:
TransformFactory.h:228
TransformFactory::TransformNotInstalled
Definition:
TransformFactory.h:67
TransformFactory::m_thread
UninstalledTransformsPopulateThread * m_thread
Definition:
TransformFactory.h:227
TransformFactory::makeContextConsistentWithPlugin
void makeContextConsistentWithPlugin(Transform &transform, Vamp::PluginBase *plugin)
If the given Transform object has no processing step and block sizes set, set them to appropriate def...
Definition:
TransformFactory.cpp:1027
TransformFactory::populateTransforms
void populateTransforms()
Definition:
TransformFactory.cpp:330
TransformFactory::downcastVampPlugin
Vamp::Plugin * downcastVampPlugin(Vamp::PluginBase *)
Convert a Vamp::PluginBase to a Vamp::Plugin, if it is one.
Definition:
TransformFactory.cpp:817
TransformFactory::m_uninstalledTransformsPopulated
bool m_uninstalledTransformsPopulated
Definition:
TransformFactory.h:206
TransformFactory::UninstalledTransformsPopulateThread::UninstalledTransformsPopulateThread
UninstalledTransformsPopulateThread(TransformFactory *factory)
Definition:
TransformFactory.h:220
TransformFactory::search
SearchResults search(QString keyword)
Definition:
TransformFactory.cpp:1105
TransformFactory::instantiatePluginFor
Vamp::PluginBase * instantiatePluginFor(const Transform &transform)
Load an appropriate plugin for the given transform and set the parameters, program and configuration ...
Definition:
TransformFactory.cpp:772
TransformFactory::getTransformName
QString getTransformName(TransformId identifier)
Full name of a transform, suitable for putting on a menu.
Definition:
TransformFactory.cpp:842
TransformFactory::getTransformFriendlyName
QString getTransformFriendlyName(TransformId identifier)
Brief but friendly name of a transform, suitable for use as the name of the output layer.
Definition:
TransformFactory.cpp:850
TransformFactory::getInstance
static TransformFactory * getInstance()
Definition:
TransformFactory.cpp:46
TransformFactory::getTransformChannelRange
bool getTransformChannelRange(TransformId identifier, int &minChannels, int &maxChannels)
If the transform has a prescribed number or range of channel inputs, return true and set minChannels ...
Definition:
TransformFactory.cpp:904
TextMatcher.h
TransformFactory::m_instance
static TransformFactory * m_instance
Definition:
TransformFactory.h:231
TransformFactory::getAllTransformDescriptions
TransformList getAllTransformDescriptions()
Definition:
TransformFactory.cpp:108
TransformFactory::populateUninstalledTransforms
void populateUninstalledTransforms()
Definition:
TransformFactory.cpp:637
TransformFactory::populateFeatureExtractionPlugins
void populateFeatureExtractionPlugins(TransformDescriptionMap &)
Definition:
TransformFactory.cpp:403
TransformFactory::getPluginConfigurationXml
QString getPluginConfigurationXml(const Transform &transform)
Retrieve a <plugin ...
Definition:
TransformFactory.cpp:1064
TransformFactory::setPluginParameters
void setPluginParameters(const Transform &transform, Vamp::PluginBase *plugin)
Set the parameters, program and configuration strings on the given plugin from the given Transform ob...
Definition:
TransformFactory.cpp:989
TransformFactory::m_transformsPopulated
bool m_transformsPopulated
Definition:
TransformFactory.h:203
TransformFactory::isTransformConfigurable
bool isTransformConfigurable(TransformId identifier)
Return true if the transform has any configurable parameters, i.e.
Definition:
TransformFactory.cpp:896
TransformFactory::getAllTransformTypes
std::vector< TransformDescription::Type > getAllTransformTypes()
Definition:
TransformFactory.cpp:244
TransformFactory::getTransformMakers
std::vector< QString > getTransformMakers(TransformDescription::Type)
Definition:
TransformFactory.cpp:290
Transform
Definition:
Transform.h:34
TransformFactory::UninstalledTransformsPopulateThread
Definition:
TransformFactory.h:217
TransformFactory::m_transformsMutex
QMutex m_transformsMutex
Definition:
TransformFactory.h:214
TransformFactory::TransformInstallStatus
TransformInstallStatus
Definition:
TransformFactory.h:64
TransformFactory::setParametersFromPluginConfigurationXml
void setParametersFromPluginConfigurationXml(Transform &transform, QString xml)
Set the plugin parameters, program and configuration strings on the given Transform object from the g...
Definition:
TransformFactory.cpp:1087
TransformFactory::haveUninstalledTransforms
bool haveUninstalledTransforms(bool waitForCheckToComplete=false)
Definition:
TransformFactory.cpp:193
TransformFactory::TransformFactory
TransformFactory()
Definition:
TransformFactory.cpp:59
TransformFactory::SearchResults
std::map< TransformId, TextMatcher::Match > SearchResults
Definition:
TransformFactory.h:77
TransformFactory::getTransformUnits
QString getTransformUnits(TransformId identifier)
Definition:
TransformFactory.cpp:858
TransformDescription
Metadata associated with a transform.
Definition:
TransformDescription.h:46
TransformFactory::m_populatingSlowly
bool m_populatingSlowly
Definition:
TransformFactory.h:229
TransformFactory::populateRealTimePlugins
void populateRealTimePlugins(TransformDescriptionMap &)
Definition:
TransformFactory.cpp:502
TransformFactory::startPopulationThread
void startPopulationThread()
TransformFactory has a background thread that can populate uninstalled transforms from network RDF re...
Definition:
TransformFactory.cpp:84
TransformFactory::deleteInstance
static void deleteInstance()
Definition:
TransformFactory.cpp:52
TransformFactory::getTransformInfoUrl
QString getTransformInfoUrl(TransformId identifier)
Definition:
TransformFactory.cpp:866
TransformFactory::UninstalledTransformsPopulateThread::run
virtual void run()
Definition:
TransformFactory.cpp:100
TransformFactory::~TransformFactory
virtual ~TransformFactory()
Definition:
TransformFactory.cpp:68
TransformDescription::Type
Type
Definition:
TransformDescription.h:48
TransformFactory::getUninstalledTransformDescription
TransformDescription getUninstalledTransformDescription(TransformId id)
Definition:
TransformFactory.cpp:180
TransformFactory::m_uninstalledTransforms
TransformDescriptionMap m_uninstalledTransforms
Definition:
TransformFactory.h:205
TransformId
QString TransformId
Definition:
Transform.h:30
TransformDescription.h
transform
TransformFactory.h
Generated by
1.8.15