enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
[ardour.git] / libs / pbd / controllable.cc
index 42e015ac6f90a6d179841ba25cd96a42d7f3ad52..b730a42980ffa08b05b8ec3390c22690113088c5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2000-2007 Paul Davis 
+    Copyright (C) 2000-2007 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@
 #include "pbd/error.h"
 #include "pbd/locale_guard.h"
 
-#include "i18n.h"
+#include "pbd/i18n.h"
 
 using namespace PBD;
 using namespace std;
@@ -107,10 +107,20 @@ XMLNode&
 Controllable::get_state ()
 {
        XMLNode* node = new XMLNode (xml_node_name);
-       LocaleGuard lg (X_("POSIX"));
+       LocaleGuard lg;
        char buf[64];
 
-       node->add_property (X_("name"), _name); // not reloaded from XML state, just there to look at
+       /* Waves' "Pressure3" has a parameter called "µ-iness"
+        * which causes a  parser error : Input is not proper UTF-8, indicate encoding !
+        *  Bytes: 0xB5 0x2D 0x69 0x6E
+        *          <Controllable name="�-iness" id="2391" flags="" value="0.000000000000" p
+        */
+
+       // this is not reloaded from XML, but it must be present because it is
+       // used to find and identify XML nodes by various Controllable-derived objects
+
+       node->add_property (X_("name"), _name);
+
        id().print (buf, sizeof (buf));
        node->add_property (X_("id"), buf);
        node->add_property (X_("flags"), enum_2_string (_flags));
@@ -128,7 +138,7 @@ Controllable::get_state ()
 int
 Controllable::set_state (const XMLNode& node, int /*version*/)
 {
-       LocaleGuard lg (X_("POSIX"));
+       LocaleGuard lg;
        const XMLProperty* prop;
 
        Stateful::save_extra_xml (node);
@@ -143,8 +153,8 @@ Controllable::set_state (const XMLNode& node, int /*version*/)
                float val;
 
                if (sscanf (prop->value().c_str(), "%f", &val) == 1) {
-                       set_value (val);
-               } 
+                       set_value (val, NoGroup);
+               }
         }
 
         return 0;