changes to help strp silence
[ardour.git] / gtk2_ardour / editor_routes.h
index 5b1c42785a865105dd8dd50162445f0c74d57aaa..7489cbf7d816e3f62f08888bef7bc1607f3d1ce7 100644 (file)
 
 */
 
-class EditorRoutes : public EditorComponent
+#ifndef __ardour_gtk_editor_route_h__
+#define __ardour_gtk_editor_route_h__
+
+#include "pbd/signals.h"
+#include "editor_component.h"
+
+class EditorRoutes : public EditorComponent, public PBD::ScopedConnectionList
 {
 public:
        EditorRoutes (Editor *);
 
-       void connect_to_session (ARDOUR::Session *);
+       void set_session (ARDOUR::Session *);
 
        Gtk::Widget& widget () {
                return _scroller;
@@ -43,6 +49,7 @@ public:
        void redisplay ();
        void update_visibility ();
        void routes_added (std::list<RouteTimeAxisView*> routes);
+       void route_removed (TimeAxisView *);
        void hide_track_in_display (TimeAxisView &);
        std::list<TimeAxisView*> views () const;
        void hide_all_tracks (bool);
@@ -55,18 +62,19 @@ private:
        void on_tv_rec_enable_toggled (Glib::ustring const &);
        void on_tv_mute_enable_toggled (Glib::ustring const &);
        void on_tv_solo_enable_toggled (Glib::ustring const &);
+       void on_tv_solo_isolate_toggled (Glib::ustring const &);
        void build_menu ();
        void show_menu ();
        void route_deleted (Gtk::TreeModel::Path const &);
        void visible_changed (Glib::ustring const &);
        void reordered (Gtk::TreeModel::Path const &, Gtk::TreeModel::iterator const &, int *);
        bool button_press (GdkEventButton *);
-       void route_name_changed (boost::weak_ptr<ARDOUR::Route>);
-       void route_removed (TimeAxisView *);
+       void route_property_changed (const PBD::PropertyChange&, boost::weak_ptr<ARDOUR::Route>);
        void handle_gui_changes (std::string const &, void *);
        void update_rec_display ();
-       void update_mute_display (void* /*src*/);
-       void update_solo_display (void* /*src*/);
+       void update_mute_display ();
+       void update_solo_display ();
+       void update_solo_isolate_display ();
        void set_all_tracks_visibility (bool);
        void set_all_audio_visibility (int, bool);
        void show_all_routes ();
@@ -93,6 +101,7 @@ private:
                        add (rec_enabled);
                        add (mute_state);
                        add (solo_state);
+                       add (solo_isolate_state);
                        add (is_track);
                        add (tv);
                        add (route);
@@ -104,6 +113,7 @@ private:
                Gtk::TreeModelColumn<bool>           rec_enabled;
                Gtk::TreeModelColumn<uint32_t>       mute_state;
                Gtk::TreeModelColumn<uint32_t>       solo_state;
+               Gtk::TreeModelColumn<uint32_t>       solo_isolate_state;
                Gtk::TreeModelColumn<bool>           is_track;
                Gtk::TreeModelColumn<TimeAxisView*>  tv;
                Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Route> >  route;
@@ -122,3 +132,5 @@ private:
        
        Gtk::Menu* _menu;
 };
+
+#endif /* __ardour_gtk_editor_route_h__ */