VST use scratch buffers for processing.
[ardour.git] / libs / ardour / ardour / panner.h
index cee59923ef79feb6728d5d62865d2a9f21a8d126..211ad0ca8eb12bf8401ddad4469407ea005a5f8c 100644 (file)
 #include "ardour/automation_control.h"
 #include "ardour/automatable.h"
 
+
+/* 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 {
 
 class Session;
@@ -88,6 +100,9 @@ public:
 
        virtual void reset () = 0;
 
+       /* azimut, width or elevation updated -> recalc signal_position ->  emit Changed */
+       PBD::Signal0<void> SignalPositionChanged;
+
        void      set_automation_state (AutoState);
        AutoState automation_state() const;
        void      set_automation_style (AutoStyle);
@@ -175,8 +190,11 @@ protected:
 extern "C" {
 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<ARDOUR::Pannable>, boost::shared_ptr<ARDOUR::Speakers>);
 };
 }