more DEBUG::Destruction messages
[ardour.git] / libs / ardour / ardour / processor.h
index 1a4863ff2d85eef2a53d208078968c37437f7204..1898b6cb60e7430ecdf6fdd23a3ae8523d02e08a 100644 (file)
@@ -52,7 +52,7 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public
        Processor(Session&, const std::string& name);
        Processor (const Processor& other);
 
-       virtual ~Processor() { }
+       virtual ~Processor();
 
        virtual std::string display_name() const { return SessionObject::name(); }
 
@@ -77,7 +77,7 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public
         *  if false, the method need not bother writing to @a bufs if it doesn't want to.
         */
        virtual void run (BufferSet& /*bufs*/, framepos_t /*start_frame*/, framepos_t /*end_frame*/, double speed, pframes_t /*nframes*/, bool /*result_required*/) {}
-       virtual void silence (framecnt_t /*nframes*/, framepos_t /*start_frame*/) {}
+       virtual void silence (framecnt_t nframes, framepos_t start_frame) { automation_run (start_frame, nframes); }
 
        virtual void activate ()   { _pending_active = true; ActiveChanged(); }
        virtual void deactivate () { _pending_active = false; ActiveChanged(); }
@@ -118,8 +118,12 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public
        PBD::Signal0<void>                     BypassableChanged;
        PBD::Signal2<void,ChanCount,ChanCount> ConfigurationChanged;
 
-       void  set_ui (void*);
-       void* get_ui () const { return _ui_pointer; }
+       /* cross-thread signals.
+        * This allows control-surfaces to show/hide a plugin GUI.
+        */
+       PBD::Signal0<void> ToggleUI;
+       PBD::Signal0<void> ShowUI;
+       PBD::Signal0<void> HideUI;
 
        ProcessorWindowProxy * window_proxy () const { return _window_proxy; }
        void set_window_proxy (ProcessorWindowProxy* wp) { _window_proxy = wp; }
@@ -127,7 +131,7 @@ class LIBARDOUR_API Processor : public SessionObject, public Automatable, public
        PluginPinWindowProxy * pinmgr_proxy () const { return _pinmgr_proxy; }
        void set_pingmgr_proxy (PluginPinWindowProxy* wp) { _pinmgr_proxy = wp ; }
 
-       void set_owner (SessionObject*);
+       virtual void set_owner (SessionObject*);
        SessionObject* owner() const;
 
 protected: