Towards fixing AU preset invalidation
[ardour.git] / libs / ardour / pan_controllable.cc
index 71c8a9f62fc220e76e3ff9f757938b0fe9d6f3da..35354102e97a7452d1a2917a117fdc1ba6602314 100644 (file)
@@ -14,7 +14,6 @@
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
 */
 
 #include "ardour/pannable.h"
 
 using namespace ARDOUR;
 
-double
-PanControllable::lower () const
-{
-        switch (parameter().type()) {
-        case PanWidthAutomation:
-                return -1.0;
-        default:
-                return 0.0;
-        }
-}
-
 void
-PanControllable::set_value (double v)
-{
-       if (writable()) {
-               set_value_unchecked (v);
-       }
-}
-
-void
-PanControllable::set_value_unchecked (double v)
+PanControllable::actually_set_value (double v, Controllable::GroupControlDisposition group_override)
 {
        boost::shared_ptr<Panner> p = owner->panner();
 
-        if (!p) {
-                /* no panner: just do it */
-                AutomationControl::set_value (v);
-                return;
-        }
-
-        bool can_set = false;
+       if (!p) {
+               /* no panner: just do it */
+               AutomationControl::actually_set_value (v, group_override);
+               return;
+       }
 
-        switch (parameter().type()) {
-        case PanWidthAutomation:
-                can_set = p->clamp_width (v);
-                break;
-        case PanAzimuthAutomation:
-                can_set = p->clamp_position (v);
-                break;
-        case PanElevationAutomation:
-                can_set = p->clamp_elevation (v);
-                break;
-        default:
-                break;
-        }
+       bool can_set = false;
+
+       switch (parameter().type()) {
+               case PanWidthAutomation:
+                       can_set = p->clamp_width (v);
+                       break;
+               case PanAzimuthAutomation:
+                       can_set = p->clamp_position (v);
+                       break;
+               case PanElevationAutomation:
+                       can_set = p->clamp_elevation (v);
+                       break;
+               default:
+                       break;
+       }
 
-        if (can_set) {
-                AutomationControl::set_value (v);
-        }
+       if (can_set) {
+               AutomationControl::actually_set_value (v, group_override);
+       }
 }
 
+std::string
+PanControllable::get_user_string () const
+{
+       return owner->value_as_string (shared_from_this());
+}