diff options
-rw-r--r-- | libs/ardour/presentation_info.cc | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/libs/ardour/presentation_info.cc b/libs/ardour/presentation_info.cc index e3e7700d40..f269541de0 100644 --- a/libs/ardour/presentation_info.cc +++ b/libs/ardour/presentation_info.cc @@ -21,8 +21,8 @@ #include <cassert> -#include "pbd/convert.h" #include "pbd/debug.h" +#include "pbd/enum_convert.h" #include "pbd/enumwriter.h" #include "pbd/error.h" #include "pbd/failed_constructor.h" @@ -33,6 +33,10 @@ #include "pbd/i18n.h" +namespace PBD { + DEFINE_ENUM_CONVERT(ARDOUR::PresentationInfo::Flag); +} + using namespace ARDOUR; using namespace PBD; using std::string; @@ -150,9 +154,9 @@ XMLNode& PresentationInfo::get_state () { XMLNode* node = new XMLNode (state_node_name); - node->add_property ("order", PBD::to_string (_order, std::dec)); - node->add_property ("flags", enum_2_string (_flags)); - node->add_property ("color", PBD::to_string (_color, std::dec)); + node->set_property ("order", _order); + node->set_property ("flags", _flags); + node->set_property ("color", _color); return *node; } @@ -164,28 +168,27 @@ PresentationInfo::set_state (XMLNode const& node, int /* version */) return -1; } - XMLProperty const* prop; PropertyChange pc; - if ((prop = node.property (X_("order"))) != 0) { - order_t o = atoi (prop->value()); + order_t o; + if (node.get_property (X_("order"), o)) { if (o != _order) { pc.add (Properties::order); _order = o; } - _order = atoi (prop->value()); + _order = o; // huh? } - if ((prop = node.property (X_("flags"))) != 0) { - Flag f = Flag (string_2_enum (prop->value(), f)); + Flag f; + if (node.get_property (X_("flags"), f)) { if ((f&Hidden) != (_flags&Hidden)) { pc.add (Properties::hidden); } _flags = f; } - if ((prop = node.property (X_("color"))) != 0) { - color_t c = atoi (prop->value()); + color_t c; + if (node.get_property (X_("color"), c)) { if (c != _color) { pc.add (Properties::color); _color = c; @@ -207,9 +210,8 @@ PresentationInfo::get_flags (XMLNode const& node) XMLNode* child = *niter; if (child->name() == PresentationInfo::state_node_name) { - XMLProperty const* prop = child->property (X_("flags")); - if (prop) { - Flag f = (Flag) string_2_enum (prop->value(), f); + Flag f; + if (child->get_property (X_("flags"), f)) { return f; } } |