2 Copyright (C) 2004 Paul Davis
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 #ifndef __ardour_gtk_processor_selection_h__
21 #define __ardour_gtk_processor_selection_h__
25 #include "pbd/signals.h"
26 #include "pbd/xml++.h"
28 class XMLProcessorSelection {
30 XMLProcessorSelection() : node (0) {}
31 ~XMLProcessorSelection() { if (node) { delete node; } }
33 void set (XMLNode* n) {
40 void add (XMLNode* newchild) {
42 node = new XMLNode ("add");
44 node->add_child_nocopy (*newchild);
54 bool empty () const { return node == 0 || node->children().empty(); }
56 const XMLNode& get_node() const { return *node; }
62 class ProcessorSelection : public PBD::ScopedConnectionList, public sigc::trackable
65 ProcessorSelection () {}
67 XMLProcessorSelection processors;
68 sigc::signal<void> ProcessorsChanged;
70 ProcessorSelection& operator= (const ProcessorSelection& other);
75 void set (XMLNode* node);
76 void add (XMLNode* node);
78 void clear_processors ();
81 bool operator==(const ProcessorSelection& a, const ProcessorSelection& b);
83 #endif /* __ardour_gtk_processor_selection_h__ */