summaryrefslogtreecommitdiff
path: root/plugin.h
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2016-07-14 11:57:30 +0200
committerAndré Nusser <andre.nusser@googlemail.com>2016-07-14 16:35:07 +0200
commit53b6cbafc8923cb6e305a7e868b502069ece5177 (patch)
treea834a789438b4599a818456b98685a69599b1005 /plugin.h
parent1be0af889aaf6d3baba1cad14914a5771c66839c (diff)
Introduce VST plugin information.
Diffstat (limited to 'plugin.h')
-rw-r--r--plugin.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/plugin.h b/plugin.h
index 7864bb9..6519827 100644
--- a/plugin.h
+++ b/plugin.h
@@ -33,6 +33,23 @@
class MidiEvent;
+//! Contains the same plugin categories as the VST enum VstPlugCategory
+enum class PluginCategory
+{
+ Unknown = 0, // Unknown, category not implemented
+ Effect, // Simple Effect
+ Synth, // VST Instrument (Synths, samplers,...)
+ Analysis, // Scope, Tuner, ...
+ Mastering, // Dynamics, ...
+ Spacializer, // Panners, ...
+ RoomFx, // Delays and Reverbs
+ SurroundFx, // Dedicated surround processor
+ Restoration, // Denoiser, ...
+ OfflineProcess, // Offline Process
+ Shell, // Plug-in is container of other plug-ins
+ Generator // ToneGenerator, ...
+};
+
//! Abstract base-class for plugin implementations.
class Plugin {
public:
@@ -46,7 +63,7 @@ public:
virtual bool getFreeWheel() const = 0;
//! This method is called by the host when the free-wheel mode changes.
- virtual void onFreeWheelChange(bool freewheel) = 0;
+ virtual void onFreeWheelChange(bool freewheel) {}
//! Call this to get current samplerate.
@@ -106,6 +123,12 @@ public:
//! Get unique plugin id.
virtual std::string getId() = 0;
+ // Functions used to set plugin information for VST
+ virtual std::string effectName() = 0;
+ virtual std::string vendorString() = 0;
+ virtual std::string productString() = 0;
+ virtual PluginCategory pluginCategory() = 0;
+
//! Process callback.
virtual void process(std::size_t pos,
const std::vector<MidiEvent>& input_events,