X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fwindows_vst_plugin.h;h=7566eab098a8eb6748ecbd7cb8b58a3206132899;hb=11a68f7dd38e72c3e497569a60cb0740a33b78cf;hp=5e6d9061847cf5e968c2339649116b2ab6a9600b;hpb=d9a3c6b89fde94b3632d1af57dd85ef9fc32f630;p=ardour.git diff --git a/libs/ardour/ardour/windows_vst_plugin.h b/libs/ardour/ardour/windows_vst_plugin.h index 5e6d906184..7566eab098 100644 --- a/libs/ardour/ardour/windows_vst_plugin.h +++ b/libs/ardour/ardour/windows_vst_plugin.h @@ -20,104 +20,36 @@ #ifndef __ardour_windows_vst_plugin_h__ #define __ardour_windows_vst_plugin_h__ -#include -#include -#include -#include -#include -#include +#include "ardour/vst_plugin.h" -#include "pbd/stateful.h" -#include "ardour/plugin.h" - -struct _FSTHandle; -struct _FST; -typedef struct _FSTHandle FSTHandle; -typedef struct _FST FST; -class AEffect; +struct LIBARDOUR_API _VSTHandle; +typedef struct _VSTHandle VSTHandle; namespace ARDOUR { + class AudioEngine; class Session; -class WindowsVSTPlugin : public ARDOUR::Plugin +class LIBARDOUR_API WindowsVSTPlugin : public VSTPlugin { - public: - WindowsVSTPlugin (ARDOUR::AudioEngine&, ARDOUR::Session&, FSTHandle* handle); +public: + WindowsVSTPlugin (AudioEngine &, Session &, VSTHandle *, int unique_id); WindowsVSTPlugin (const WindowsVSTPlugin &); ~WindowsVSTPlugin (); - /* Plugin interface */ - - std::string unique_id() const; - const char * label() const; - const char * name() const; - const char * maker() const; - uint32_t parameter_count() const; - float default_value (uint32_t port); - framecnt_t signal_latency() const; - void set_parameter (uint32_t port, float val); - float get_parameter (uint32_t port) const; - int get_parameter_descriptor (uint32_t which, ParameterDescriptor&) const; - std::set automatable() const; - uint32_t nth_parameter (uint32_t port, bool& ok) const; - void activate (); - void deactivate (); - int set_block_size (pframes_t); - - int connect_and_run (BufferSet&, - ChanMapping in, ChanMapping out, - pframes_t nframes, framecnt_t offset); - - std::string describe_parameter (Evoral::Parameter); - std::string state_node_name() const { return "windows-vst"; } - void print_parameter (uint32_t, char*, uint32_t len) const; - - bool parameter_is_audio(uint32_t i) const { return false; } - bool parameter_is_control(uint32_t i) const { return true; } - bool parameter_is_input(uint32_t i) const { return true; } - bool parameter_is_output(uint32_t i) const { return false; } - - bool load_preset (PresetRecord); - int first_user_preset_index () const; - - bool has_editor () const; - - int set_state (XMLNode const &, int); - - AEffect * plugin () const { return _plugin; } - FST * fst () const { return _fst; } - -private: - - void do_remove_preset (std::string name); - std::string do_save_preset (std::string name); - gchar* get_chunk (bool) const; - int set_chunk (gchar const *, bool); - XMLTree * presets_tree () const; - std::string presets_file () const; - void find_presets (); - bool load_user_preset (PresetRecord); - bool load_plugin_preset (PresetRecord); - void add_state (XMLNode *) const; - - FSTHandle* handle; - FST* _fst; - AEffect* _plugin; - bool been_resumed; + std::string state_node_name () const { return "windows-vst"; } }; -class WindowsVSTPluginInfo : public PluginInfo +class LIBARDOUR_API WindowsVSTPluginInfo : public PluginInfo { - public: +public: WindowsVSTPluginInfo (); ~WindowsVSTPluginInfo () {} PluginPtr load (Session& session); + std::vector get_presets (bool user_only) const; }; -typedef boost::shared_ptr WindowsVSTPluginInfoPtr; - } // namespace ARDOUR #endif /* __ardour_vst_plugin_h__ */