Special-case VCA at 0 (-inf dB), force gain slaves to -inf dB
[ardour.git] / libs / ardour / ardour / panner.h
index 48f583c18558466b9e603c4f23f47f0f2092e88d..362a49851a854b838a8580da077ce2a8f1a47b18 100644 (file)
@@ -44,7 +44,7 @@
     #define ARDOURPANNER_API LIBARDOUR_DLL_EXPORT
   #else
     #define ARDOURPANNER_API LIBARDOUR_DLL_IMPORT
-  #endif 
+  #endif
 #define ARDOURPANNER_LOCAL LIBARDOUR_DLL_LOCAL
 
 namespace ARDOUR {
@@ -100,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);
@@ -107,7 +110,7 @@ public:
 
        virtual std::set<Evoral::Parameter> what_can_be_automated() const;
        virtual std::string describe_parameter (Evoral::Parameter);
-       virtual std::string value_as_string (boost::shared_ptr<AutomationControl>) const;
+       virtual std::string value_as_string (boost::shared_ptr<const AutomationControl>) const;
 
        bool touching() const;
 
@@ -156,7 +159,7 @@ public:
 
        int set_state (const XMLNode&, int version);
        XMLNode& get_state ();
-       
+
        boost::shared_ptr<Pannable> pannable() const { return _pannable; }
 
        static bool equivalent (pan_t a, pan_t b) {
@@ -168,8 +171,8 @@ public:
                return fabs (a.azi - b.azi) < 1.0;
        }
 
-        virtual void freeze ();
-        virtual void thaw ();
+       virtual void freeze ();
+       virtual void thaw ();
 
 protected:
        boost::shared_ptr<Pannable> _pannable;
@@ -179,7 +182,7 @@ protected:
                                               framepos_t start, framepos_t end, pframes_t nframes,
                                               pan_t** buffers, uint32_t which) = 0;
 
-        int32_t _frozen;
+       int32_t _frozen;
 };
 
 } // namespace