Fix the User button for Mixbus; we use it as a button, not a modifier.
[ardour.git] / libs / ardour / monitor_control.cc
index c16de3b7c1fbe9d8c105f5297a089e0fefeb2d62..633ceea928629669fc3ede861499684eeb69f204 100644 (file)
@@ -17,8 +17,9 @@
 */
 
 #include "ardour/monitor_control.h"
+#include "ardour/types_convert.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace ARDOUR;
 using namespace PBD;
@@ -39,19 +40,7 @@ MonitorControl::MonitorControl (Session& session, std::string const & name, Moni
 void
 MonitorControl::actually_set_value (double val, Controllable::GroupControlDisposition gcd)
 {
-       int v = (int) val;
-       switch (v) {
-       case MonitorAuto:
-       case MonitorInput:
-       case MonitorDisk:
-       case MonitorCue:
-               break;
-       default:
-               /* illegal value */
-               return;
-       }
-
-       _monitoring = MonitorChoice (v);
+       _monitoring = MonitorChoice ((int) val);
        AutomationControl::actually_set_value (val, gcd);
 }
 
@@ -59,7 +48,7 @@ XMLNode&
 MonitorControl::get_state ()
 {
        XMLNode& node (SlavableAutomationControl::get_state());
-       node.add_property (X_("monitoring"), enum_2_string (_monitoring));
+       node.set_property (X_("monitoring"), _monitoring);
        return node;
 }
 
@@ -68,11 +57,7 @@ MonitorControl::set_state (XMLNode const & node, int version)
 {
        SlavableAutomationControl::set_state (node, version);
 
-       const XMLProperty* prop;
-
-       if ((prop = node.property (X_("monitoring"))) != 0) {
-               _monitoring = MonitorChoice (string_2_enum (prop->value(), _monitoring));
-       } else {
+       if (!node.get_property (X_("monitoring"), _monitoring)) {
                _monitoring = MonitorAuto;
        }