diff options
Diffstat (limited to 'gtk2_ardour/processor_selection.h')
-rw-r--r-- | gtk2_ardour/processor_selection.h | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/gtk2_ardour/processor_selection.h b/gtk2_ardour/processor_selection.h index e9abcea2dc..59354c05ac 100644 --- a/gtk2_ardour/processor_selection.h +++ b/gtk2_ardour/processor_selection.h @@ -20,13 +20,40 @@ #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__ */ |