1
/**********************************************************************
3
Audacity: A Digital Audio Editor
9
Vamp is an audio analysis and feature extraction plugin API.
10
http://www.vamp-plugins.org/
12
**********************************************************************/
14
#include "../Effect.h"
15
#include "../../LabelTrack.h"
23
#include <wx/dialog.h>
26
#include "../../../lib-src/libvamp/vamp-sdk/hostext/PluginLoader.h"
28
#include <vamp-sdk/hostext/PluginLoader.h>
31
void LoadVampPlugins();
33
class VampEffect : public Effect {
37
VampEffect(Vamp::HostExt::PluginLoader::PluginKey key,
41
virtual ~VampEffect();
43
virtual wxString GetEffectName();
45
virtual wxString GetEffectIdentifier();
47
virtual wxString GetEffectAction();
49
virtual int GetEffectFlags();
53
virtual bool PromptUser();
55
virtual bool Process();
61
VampEffect(const VampEffect &);
62
VampEffect &operator=(const VampEffect &);
64
Vamp::HostExt::PluginLoader::PluginKey mKey;
70
Vamp::Plugin *mPlugin;
72
void GetSamples(WaveTrack *track,
73
longSampleCount *start,
76
void AddFeatures(LabelTrack *track,
77
Vamp::Plugin::FeatureSet &features);
81
class VampEffectDialog : public wxDialog {
83
DECLARE_DYNAMIC_CLASS(VampEffectDialog)
86
VampEffectDialog(VampEffect *effect,
88
Vamp::Plugin *plugin);
91
void OnCheckBox(wxCommandEvent & event);
92
void OnComboBox(wxCommandEvent & event);
93
void OnSlider(wxCommandEvent & event);
94
void OnTextCtrl(wxCommandEvent & event);
95
void OnOK(wxCommandEvent & event);
96
void OnCancel(wxCommandEvent & event);
97
void OnPreview(wxCommandEvent & event);
98
void ControlSetFocus(wxFocusEvent & event);
100
DECLARE_EVENT_TABLE()
104
void UpdateFromPlugin();
105
void ConnectFocus(wxControl *c);
106
void DisconnectFocus(wxControl *c);
111
Vamp::Plugin *mPlugin;
112
Vamp::Plugin::ParameterList mParameters;
116
wxStaticText **labels;
117
wxCheckBox **toggles;
119
wxComboBox *programCombo;
122
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
123
// version control system. Please do not modify past this point.
127
// indent-tabs-mode: nil
130
// vim: et sts=3 sw=3
131
// arch-tag: d8622b59-5c08-4e7f-a170-2502ff8af8e5