clean up a-pong
[ardour.git] / gtk2_ardour / processor_selection.h
index e9abcea2dc078f4084d3298a0124f88aad5f07ee..d371493b416e0988fc9ac6b2885dd21c59f5fa4b 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
 #ifndef __ardour_gtk_processor_selection_h__
 #define __ardour_gtk_processor_selection_h__
 
-#include <list>
-#include <boost/shared_ptr.hpp>
-
-namespace ARDOUR {
-       class Processor;
-}
-
-struct ProcessorSelection : list<boost::shared_ptr<ARDOUR::Processor> > {};
+#include "pbd/xml++.h"
+
+class ProcessorSelection {
+  public:
+    ProcessorSelection() : node (0) {}
+    ~ProcessorSelection() { if (node) { delete node; } }
+
+    void set (XMLNode* n) {
+           if (node) {
+                   delete node;
+           }
+           node = n;
+    }
+
+    void add (XMLNode* newchild) {
+           if (!node) {
+                   node = new XMLNode ("add");
+           }
+           node->add_child_nocopy (*newchild);
+    }
+
+    void clear () {
+           if (node) {
+                   delete node;
+                   node = 0;
+           }
+    }
+
+    bool empty () const { return node == 0 || node->children().empty(); }
+
+    const XMLNode& get_node() const { return *node; }
+
+  private:
+    XMLNode* node;
+};
 
 #endif /* __ardour_gtk_processor_selection_h__ */