/*
- Copyright (C) 2004 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
#define __ardour_gtk_route_processor_selection_h__
#include <vector>
-#include <sigc++/signal.h>
+#include "pbd/signals.h"
#include "processor_selection.h"
-#include "route_selection.h"
+#include "route_ui_selection.h"
-class RouteRedirectSelection : public sigc::trackable
-{
- public:
- ProcessorSelection processors;
- RouteSelection routes;
+namespace ARDOUR {
+ class SessionHandlePtr;
+}
- RouteRedirectSelection() {}
+class AxisViewProvider;
- RouteRedirectSelection& operator= (const RouteRedirectSelection& other);
+class RouteProcessorSelection : public ProcessorSelection
+{
+public:
+ AxisViewSelection axes;
- sigc::signal<void> ProcessorsChanged;
- sigc::signal<void> RoutesChanged;
+ RouteProcessorSelection (ARDOUR::SessionHandlePtr&, AxisViewProvider&);
void clear ();
bool empty();
- void set (boost::shared_ptr<ARDOUR::Processor>);
- void set (const std::vector<boost::shared_ptr<ARDOUR::Processor> >&);
- void add (boost::shared_ptr<ARDOUR::Processor>);
- void add (const std::vector<boost::shared_ptr<ARDOUR::Processor> >&);
- void remove (boost::shared_ptr<ARDOUR::Processor>);
-
- void set (boost::shared_ptr<ARDOUR::Route>);
- void add (boost::shared_ptr<ARDOUR::Route>);
- void remove (boost::shared_ptr<ARDOUR::Route>);
+ void set (AxisView*);
+ void add (AxisView*, bool with_groups = false);
+ void remove (AxisView*, bool with_groups = false);
+ bool selected (AxisView*);
- void clear_processors ();
void clear_routes ();
- bool selected (boost::shared_ptr<ARDOUR::Route>);
+ void presentation_info_changed (PBD::PropertyChange const & what_changed);
+
+private:
+ ARDOUR::SessionHandlePtr& shp;
+ AxisViewProvider& avp;
+ void removed (AxisView*);
+ std::list<AxisView*> add_grouped_tracks (AxisView*) const;
+
+ RouteProcessorSelection& operator= (const RouteProcessorSelection& other);
+ RouteProcessorSelection (RouteProcessorSelection const&);
};
-bool operator==(const RouteRedirectSelection& a, const RouteRedirectSelection& b);
+bool operator==(const RouteProcessorSelection& a, const RouteProcessorSelection& b);
#endif /* __ardour_gtk_route_processor_selection_h__ */