add display name to processors (so that it can differ from the "real name"); pay...
[ardour.git] / libs / ardour / processor.cc
index b48b0aebb0d6eeb797dcb5023a8a94611b39648e..e3a2b0b15ef5caf361e821d6f5326be75d5b4546 100644 (file)
 
 */
 
+#ifdef WAF_BUILD
+#include "libardour-config.h"
+#endif
+
 #include <string>
 
 #include <sigc++/bind.h>
@@ -68,12 +72,17 @@ Processor::Processor(Session& session, const string& name)
 {
 }
 
-void
-Processor::set_sort_key (uint32_t key)
+Processor::Processor (Session& session, const XMLNode& node)
+       : SessionObject(session, "renameMe")
+       , AutomatableControls(session)
+       , _active(false)
+       , _next_ab_is_active(false)
+       , _configured(false)
+       , _gui(0)
 {
-       _sort_key = key;
+       set_state (node);
 }
-       
+
 XMLNode&
 Processor::get_state (void)
 {
@@ -99,15 +108,10 @@ Processor::state (bool full_state)
 {
        XMLNode* node = new XMLNode (state_node_name);
        stringstream sstr;
-       
-       // FIXME: This conflicts with "id" used by plugin for name in legacy sessions (ugh).
-       // Do we need to serialize this?
-       /*
        char buf[64];
+       
        id().print (buf, sizeof (buf));
        node->add_property("id", buf);
-       */
-
        node->add_property("name", _name);
        node->add_property("active", active() ? "yes" : "no");  
 
@@ -142,13 +146,17 @@ Processor::set_state (const XMLNode& node)
 {
        const XMLProperty *prop;
        const XMLProperty *legacy_active = 0;
-       const XMLProperty *legacy_placement = 0;
 
-       // may not exist for legacy sessions
+       // may not exist for legacy 3.0 sessions
        if ((prop = node.property ("name")) != 0) {
                set_name(prop->value());
        }
 
+       // may not exist for legacy 3.0 sessions
+       if ((prop = node.property ("id")) != 0) {
+               _id = prop->value();
+       } 
+
        XMLNodeList nlist = node.children();
        XMLNodeIterator niter;
 
@@ -187,9 +195,6 @@ Processor::set_state (const XMLNode& node)
                        if ( !(legacy_active = (*niter)->property("active"))) {
                                error << string_compose(_("No %1 property flag in element %2"), "active", (*niter)->name()) << endl;
                        }
-                       if ( !(legacy_placement = (*niter)->property("placement"))) {
-                               error << string_compose(_("No %1 property flag in element %2"), "placement", (*niter)->name()) << endl;
-                       }
                }
        }
 
@@ -217,7 +222,8 @@ Processor::configure_io (ChanCount in, ChanCount out)
 {
        /* This class assumes 1:1 input:output.static output stream count.
           Derived classes must override and set _configured_output appropriately
-          if this is not the case */
+          if this is not the case 
+       */
 
        _configured_input = in; 
        _configured_output = out;