Use XMLNode::get/set_property API in ARDOUR::Return class
authorTim Mayberry <mojofunk@gmail.com>
Sun, 28 Aug 2016 10:47:38 +0000 (20:47 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Tue, 18 Apr 2017 23:36:53 +0000 (09:36 +1000)
libs/ardour/return.cc

index 5c92b9051cb2f0557deb6b6cfdb108b7bc388d18..29c3c01632e7dd755f61586449855f4a2d58373b 100644 (file)
@@ -73,10 +73,8 @@ XMLNode&
 Return::state(bool full)
 {
        XMLNode& node = IOProcessor::state(full);
-       char buf[32];
-       node.add_property ("type", "return");
-       snprintf (buf, sizeof (buf), "%" PRIu32, _bitslot);
-       node.add_property ("bitslot", buf);
+       node.set_property ("type", "return");
+       node.set_property ("bitslot", _bitslot);
 
        return node;
 }
@@ -86,7 +84,6 @@ Return::set_state (const XMLNode& node, int version)
 {
        XMLNodeList nlist = node.children();
        XMLNodeIterator niter;
-       XMLProperty const * prop;
        const XMLNode* insert_node = &node;
 
        /* Return has regular IO automation (gain, pan) */
@@ -102,12 +99,13 @@ Return::set_state (const XMLNode& node, int version)
        IOProcessor::set_state (*insert_node, version);
 
        if (!node.property ("ignore-bitslot")) {
-               if ((prop = node.property ("bitslot")) == 0) {
-                       _bitslot = _session.next_return_id();
-               } else {
+               uint32_t bitslot;
+               if (node.get_property ("bitslot", bitslot)) {
                        _session.unmark_return_id (_bitslot);
-                       sscanf (prop->value().c_str(), "%" PRIu32, &_bitslot);
+                       _bitslot = bitslot;
                        _session.mark_return_id (_bitslot);
+               } else {
+                       _bitslot = _session.next_return_id();
                }
        }