#include "pbd/signals.h"
#include "ardour/ardour.h"
+#include "ardour/types.h"
#include "ardour/session_handle.h"
+#include "gtkmm2ext/visibility_tracker.h"
+
#include "enums.h"
#include "mixer_actor.h"
class MixerGroupTabs;
class MonitorSection;
-class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public MixerActor
+class Mixer_UI : public Gtk::Window, public PBD::ScopedConnectionList, public ARDOUR::SessionHandlePtr, public MixerActor, public Gtkmm2ext::VisibilityTracker
{
public:
static Mixer_UI* instance();
PluginSelector* plugin_selector();
- void set_strip_width (Width);
+ void set_strip_width (Width, bool save = false);
Width get_strip_width () const { return _strip_width; }
void unselect_strip_in_display (MixerStrip*);
bool strip_scroller_button_release (GdkEventButton*);
void scroll_left ();
void scroll_right ();
+ void toggle_midi_input_active (bool flip_others);
- void add_strip (ARDOUR::RouteList&);
+ void add_strips (ARDOUR::RouteList&);
void remove_strip (MixerStrip *);
MixerStrip* strip_by_route (boost::shared_ptr<ARDOUR::Route>);
bool track_display_button_press (GdkEventButton*);
void strip_width_changed ();
- void track_list_change (const Gtk::TreeModel::Path&,const Gtk::TreeModel::iterator&);
void track_list_delete (const Gtk::TreeModel::Path&);
void track_list_reorder (const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* new_order);
void initial_track_display ();
void show_track_list_menu ();
-
+
void set_all_strips_visibility (bool yn);
void set_all_audio_visibility (int tracks, bool yn);
+ void track_visibility_changed (std::string const & path);
+ void update_track_visibility ();
void hide_all_routes ();
void show_all_routes ();
Width _strip_width;
- void sync_order_keys (std::string const &);
- bool strip_redisplay_does_not_reset_order_keys;
- bool strip_redisplay_does_not_sync_order_keys;
- bool ignore_sync;
+ void sync_order_keys_from_treeview ();
+ void sync_treeview_from_order_keys (ARDOUR::RouteSortOrderKey);
+ void reset_remote_control_ids ();
+ void reset_order_keys (ARDOUR::RouteSortOrderKey);
+
+ bool ignore_reorder;
void parameter_changed (std::string const &);
void set_route_group_activation (ARDOUR::RouteGroup *, bool);