New test.
[ardour.git] / libs / ardour / automation_list.cc
index aaab84f2da7b50d07163d303f042e36f7631b8fa..0810d2f2d007bb45c59eb8970d76e3048f6f5357 100644 (file)
@@ -219,7 +219,7 @@ AutomationList::stop_touch (bool mark, double when)
                */
                return;
        }
-       
+
        g_atomic_int_set (&_touching, 0);
 
         if (_state == Touch) {
@@ -227,13 +227,13 @@ AutomationList::stop_touch (bool mark, double when)
                assert (!nascent.empty ());
 
                 Glib::Mutex::Lock lm (ControlList::_lock);
-                
+
                 if (mark) {
 
                        nascent.back()->end_time = when;
-                        
+
                 } else {
-                        
+
                         /* nascent info created in start touch but never used. just get rid of it.
                          */
 
@@ -270,7 +270,7 @@ AutomationList::state (bool full)
 
        root->add_property ("automation-id", EventTypeMap::instance().to_symbol(_parameter));
 
-       root->add_property ("id", _id.to_s());
+       root->add_property ("id", id().to_s());
 
        snprintf (buf, sizeof (buf), "%.12g", _default_value);
        root->add_property ("default", buf);
@@ -366,6 +366,8 @@ AutomationList::deserialize_events (const XMLNode& node)
                fast_simple_add (x, y);
        }
 
+       thin ();
+
        if (!ok) {
                clear ();
                error << _("automation list: cannot load coordinates from XML, all points ignored") << endmsg;
@@ -427,6 +429,8 @@ AutomationList::set_state (const XMLNode& node, int version)
                        fast_simple_add (x, y);
                }
 
+               thin ();
+
                 thaw ();
 
                return 0;
@@ -437,8 +441,7 @@ AutomationList::set_state (const XMLNode& node, int version)
                return -1;
        }
 
-       if ((prop = node.property ("id")) != 0) {
-               _id = prop->value ();
+       if (set_id (node)) {
                /* update session AL list */
                AutomationListCreated(this);
        }
@@ -495,7 +498,7 @@ AutomationList::set_state (const XMLNode& node, int version)
        }
 
        bool have_events = false;
-       
+
        for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
                if ((*niter)->name() == X_("events")) {
                        deserialize_events (*(*niter));