Fix ff->stop->play not at speed 1.0 on Mackie Control and some key bindings.
[ardour.git] / libs / ardour / ardour / processor.h
index 18f13dbc7806188fa8e8acc4b9bfdeaa51ed5e85..c7d3608b5eb7cc77db6043209bef1370c5156a8f 100644 (file)
 #include "ardour/buffer_set.h"
 #include "ardour/latent.h"
 #include "ardour/session_object.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/automatable.h"
 
 class XMLNode;
+class ProcessorWindowProxy;
 
 namespace ARDOUR {
 
@@ -41,7 +43,7 @@ class Session;
 class Route;
 
 /** A mixer strip element - plugin, send, meter, etc */
-class Processor : public SessionObject, public Automatable, public Latent
+class LIBARDOUR_API Processor : public SessionObject, public Automatable, public Latent
 {
   public:
        static const std::string state_node_name;
@@ -105,7 +107,7 @@ class Processor : public SessionObject, public Automatable, public Latent
        XMLNode& get_state (void);
        int set_state (const XMLNode&, int version);
 
-       void set_pre_fader (bool);
+       virtual void set_pre_fader (bool);
 
        PBD::Signal0<void>                     ActiveChanged;
        PBD::Signal2<void,ChanCount,ChanCount> ConfigurationChanged;
@@ -113,8 +115,11 @@ class Processor : public SessionObject, public Automatable, public Latent
        void  set_ui (void*);
        void* get_ui () const { return _ui_pointer; }
 
-        void set_owner (SessionObject*);
-        SessionObject* owner() const;
+       ProcessorWindowProxy * window_proxy () const { return _window_proxy; }
+       void set_window_proxy (ProcessorWindowProxy* wp);
+
+       void set_owner (SessionObject*);
+       SessionObject* owner() const;
 
 protected:
        virtual int set_state_2X (const XMLNode&, int version);
@@ -128,7 +133,8 @@ protected:
        bool      _display_to_user;
        bool      _pre_fader; ///< true if this processor is currently placed before the Amp, otherwise false
        void*     _ui_pointer;
-        SessionObject* _owner;
+       ProcessorWindowProxy *_window_proxy;
+       SessionObject* _owner;
 };
 
 } // namespace ARDOUR