summaryrefslogtreecommitdiff
path: root/gtk2_ardour/processor_selection.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/processor_selection.h')
-rw-r--r--gtk2_ardour/processor_selection.h84
1 files changed, 54 insertions, 30 deletions
diff --git a/gtk2_ardour/processor_selection.h b/gtk2_ardour/processor_selection.h
index d371493b41..fc3a133ef1 100644
--- a/gtk2_ardour/processor_selection.h
+++ b/gtk2_ardour/processor_selection.h
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2000-2007 Paul Davis
+ Copyright (C) 2004 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
@@ -20,40 +20,64 @@
#ifndef __ardour_gtk_processor_selection_h__
#define __ardour_gtk_processor_selection_h__
+#include <vector>
+
+#include "pbd/signals.h"
#include "pbd/xml++.h"
-class ProcessorSelection {
+class XMLProcessorSelection {
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; }
+ XMLProcessorSelection() : node (0) {}
+ ~XMLProcessorSelection() { 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;
+ XMLNode* node;
};
+class ProcessorSelection : public PBD::ScopedConnectionList, public sigc::trackable
+{
+ public:
+ ProcessorSelection () {}
+
+ XMLProcessorSelection processors;
+ sigc::signal<void> ProcessorsChanged;
+
+ ProcessorSelection& operator= (const ProcessorSelection& other);
+
+ void clear ();
+ bool empty();
+
+ void set (XMLNode* node);
+ void add (XMLNode* node);
+
+ void clear_processors ();
+};
+
+bool operator==(const ProcessorSelection& a, const ProcessorSelection& b);
+
#endif /* __ardour_gtk_processor_selection_h__ */