X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fpanner.h;h=48f9ee16e9fc3b0312e20daf4948d9ac8b40ade9;hb=7cc2e8c969e7b778af90f3b45a4c3fa3cbc90ef6;hp=024dcd150c802e2ab74630ff4e8edb046fadf4f4;hpb=69a8fc43e2552d9d3c72f9117131ca6b9392093b;p=ardour.git diff --git a/libs/ardour/ardour/panner.h b/libs/ardour/ardour/panner.h index 024dcd150c..48f9ee16e9 100644 --- a/libs/ardour/ardour/panner.h +++ b/libs/ardour/ardour/panner.h @@ -30,17 +30,22 @@ #include "pbd/signals.h" #include "pbd/stateful.h" +#include "ardour/libardour_visibility.h" #include "ardour/types.h" #include "ardour/automation_control.h" #include "ardour/automatable.h" -#include "ardour/visibility.h" -#ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building the ARDOUR Panners DLLs (instead of using them) - #define ARDOURPANNER_API LIBARDOUR_HELPER_DLL_EXPORT -#else - #define ARDOURPANNER_API LIBARDOUR_HELPER_DLL_IMPORT -#endif -#define ARDOURPANNER_LOCAL LIBARDOUR_HELPER_DLL_LOCAL + +/* This section is for actual panners to use. They will include this file, + * declare ARDOURPANNER_DLL_EXPORTS during compilation, and ... voila. + */ + +#ifdef ARDOURPANNER_DLL_EXPORTS // defined if we are building a panner implementation + #define ARDOURPANNER_API LIBARDOUR_DLL_EXPORT + #else + #define ARDOURPANNER_API LIBARDOUR_DLL_IMPORT + #endif +#define ARDOURPANNER_LOCAL LIBARDOUR_DLL_LOCAL namespace ARDOUR { @@ -50,7 +55,7 @@ class BufferSet; class AudioBuffer; class Speakers; -class Panner : public PBD::Stateful, public PBD::ScopedConnectionList +class LIBARDOUR_API Panner : public PBD::Stateful, public PBD::ScopedConnectionList { public: Panner (boost::shared_ptr); @@ -95,6 +100,9 @@ public: virtual void reset () = 0; + /* azimut, width or elevation updated -> recalc signal_position -> emit Changed */ + PBD::Signal0 SignalPositionChanged; + void set_automation_state (AutoState); AutoState automation_state() const; void set_automation_style (AutoStyle); @@ -102,7 +110,7 @@ public: virtual std::set what_can_be_automated() const; virtual std::string describe_parameter (Evoral::Parameter); - virtual std::string value_as_string (boost::shared_ptr) const; + virtual std::string value_as_string (boost::shared_ptr) const; bool touching() const; @@ -151,7 +159,7 @@ public: int set_state (const XMLNode&, int version); XMLNode& get_state (); - + boost::shared_ptr pannable() const { return _pannable; } static bool equivalent (pan_t a, pan_t b) { @@ -180,10 +188,13 @@ protected: } // namespace extern "C" { -struct PanPluginDescriptor { +struct LIBARDOUR_API PanPluginDescriptor { std::string name; + std::string panner_uri; + std::string gui_uri; int32_t in; int32_t out; + uint32_t priority; ARDOUR::Panner* (*factory)(boost::shared_ptr, boost::shared_ptr); }; }