Ardour  9.0-pre0-582-g084a23a80d
mixer_ui.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2007 Taybin Rutkin <taybin@taybin.com>
3  * Copyright (C) 2005-2018 Paul Davis <paul@linuxaudiosystems.com>
4  * Copyright (C) 2006 Nick Mainsbridge <mainsbridge@gmail.com>
5  * Copyright (C) 2007-2009 David Robillard <d@drobilla.net>
6  * Copyright (C) 2009-2012 Carl Hetherington <carl@carlh.net>
7  * Copyright (C) 2013-2019 Robin Gareus <robin@gareus.org>
8  * Copyright (C) 2014-2018 Ben Loftis <ben@harrisonconsoles.com>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License along
21  * with this program; if not, write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23  */
24 
25 #pragma once
26 
27 #include <list>
28 
29 #include <gtkmm/box.h>
30 #include <gtkmm/scrolledwindow.h>
31 #include <gtkmm/eventbox.h>
32 #include <gtkmm/label.h>
33 #include <gtkmm/comboboxtext.h>
34 #include <gtkmm/button.h>
35 #include <gtkmm/frame.h>
36 #include <gtkmm/menu.h>
37 #include <gtkmm/treeview.h>
38 #include <gtkmm/treestore.h>
39 #include <gtkmm/liststore.h>
40 
41 #include "pbd/stateful.h"
42 #include "pbd/signals.h"
43 
44 #include "ardour/ardour.h"
45 #include "ardour/types.h"
46 #include "ardour/session_handle.h"
47 #include "ardour/plugin.h"
48 #include "ardour/plugin_manager.h"
49 
50 #include <gtkmm2ext/bindings.h>
51 #include "gtkmm2ext/dndtreeview.h"
52 #include "gtkmm2ext/treeutils.h"
53 
54 #include "widgets/pane.h"
55 #include "widgets/tabbable.h"
57 
58 #include "application_bar.h"
59 #include "axis_provider.h"
60 #include "enums.h"
61 #include "monitor_section.h"
63 
64 namespace ARDOUR {
65  class Route;
66  class RouteGroup;
67  class VCA;
68 };
69 
70 class AxisView;
71 class FoldbackStrip;
72 class MixerStrip;
73 class PluginSelector;
74 class MixerGroupTabs;
75 class MonitorSection;
76 class SurroundStrip;
77 class VCAMasterStrip;
78 
80 {
81 public:
82  static Glib::RefPtr<PluginTreeStore> create(const Gtk::TreeModelColumnRecord& columns) {
83  return Glib::RefPtr<PluginTreeStore> (new PluginTreeStore (columns));
84  }
85 
86 protected:
87  PluginTreeStore (const Gtk::TreeModelColumnRecord& columns) : Gtk::TreeStore (columns) {}
88  virtual bool row_draggable_vfunc (const Gtk::TreeModel::Path&) const { return true; }
90 };
91 
93 {
94 public:
95  static Mixer_UI* instance();
97 
98  Gtk::Window* use_own_window (bool and_fill_it);
99  void show_window ();
100 
102 
104 
105  void set_strip_width (Width, bool save = false);
106  Width get_strip_width () const { return _strip_width; }
107 
108  XMLNode& get_state () const;
109  int set_state (const XMLNode&, int /* version */);
110 
112 
115 
118 
120 
123  void select_none ();
124 
127 
128  void store_mixer_scene (size_t);
129  void recall_mixer_scene (size_t, bool interactive = true, bool for_selection = false);
130  void clear_mixer_scene (size_t, bool interactive = true);
131  void rename_mixer_scene (size_t n);
132 
133  void do_vca_assign (std::shared_ptr<ARDOUR::VCA>);
134  void do_vca_unassign (std::shared_ptr<ARDOUR::VCA>);
135  void show_spill (std::shared_ptr<ARDOUR::Stripable>);
136  bool showing_spill_for (std::shared_ptr<ARDOUR::Stripable>) const;
137  void fan_out (std::weak_ptr<ARDOUR::Route>, bool to_busses, bool group);
138 
139  sigc::signal1<void,std::shared_ptr<ARDOUR::Stripable> > show_spill_change;
140 
142 
143  void show_editor_window () const;
144 
146 
148 
149  void load_bindings ();
151 
155 
157 
160 
163 
164  void toggle_vcas ();
165  void showhide_vcas (bool on);
166 
167 #ifdef MIXBUS
168  void toggle_mixbuses ();
169  void showhide_mixbusses (bool on);
170 #endif
171 
172  bool screenshot (std::string const&);
173 
174  void toggle_monitor_action (ARDOUR::MonitorChoice monitor_choice, bool group_override = false, bool all = false);
175 
176 protected:
179 
180 private:
183 
216 
221 
222  std::vector<ArdourWidgets::ArdourButton*> _mixer_scene_buttons;
223  std::vector<Gtk::Label*> _mixer_scene_labels;
225 
230 
232 
235 
236  std::list<MixerStrip *> strips;
237 
238  void scroller_drag_data_received (const Glib::RefPtr<Gdk::DragContext>&, int, int, const Gtk::SelectionData&, guint, guint);
240  void scroll_left ();
241  void scroll_right ();
244  void toggle_midi_input_active (bool flip_others);
245 
246  void move_vca_into_view (std::shared_ptr<ARDOUR::Stripable>);
247  void move_stripable_into_view (std::shared_ptr<ARDOUR::Stripable>);
248 
250 
252 
260 
261  MixerStrip* strip_by_route (std::shared_ptr<ARDOUR::Route>) const;
262  MixerStrip* strip_by_stripable (std::shared_ptr<ARDOUR::Stripable>) const;
263 
264  AxisView* axis_view_by_stripable (std::shared_ptr<ARDOUR::Stripable>) const;
265  AxisView* axis_view_by_control (std::shared_ptr<ARDOUR::AutomationControl>) const;
266 
267  gint start_updating ();
268  gint stop_updating ();
269 
271 
274 
276 
278  void spill_redisplay (std::shared_ptr<ARDOUR::Stripable>);
282 
284  void track_list_reorder (const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* new_order);
285 
289  void plugin_drop (const Glib::RefPtr<Gdk::DragContext>&, const Gtk::SelectionData& data);
290  bool plugin_drag_motion (Glib::RefPtr<Gdk::DragContext> const&, int, int, guint);
291 
296  AddBottom
297  };
298 
304 
306 
309  void track_visibility_changed (std::string const & path);
311 
320 
322 
323  void group_selected (gint row, gint col, GdkEvent *ev);
324  void group_unselected (gint row, gint col, GdkEvent *ev);
332  void route_group_name_edit (const std::string&, const std::string&);
335 
337  void track_column_click (gint);
339 
341 
347 
348  void stripable_property_changed (const PBD::PropertyChange& what_changed, std::weak_ptr<ARDOUR::Stripable> ws);
350 
351  /* various treeviews */
352 
355  add (text);
356  add (visible);
357  add (stripable);
358  add (strip);
359  }
364  };
365 
368  add (visible);
369  add (text);
370  add (group);
371  }
375  };
376 
379  add (name);
380  add (plugin);
381  }
384  };
385 
387 
388  std::list<std::string> favorite_ui_order;
389  std::map<std::string, bool> favorite_ui_state;
390 
394 
398 
399  Glib::RefPtr<Gtk::ListStore> track_model;
400  Glib::RefPtr<Gtk::ListStore> group_model;
401  Glib::RefPtr<PluginTreeStore> favorite_plugins_model;
402 
405 
408 
411 
415 
419 
420  void parameter_changed (std::string const &);
422 
425 
426  static const int32_t default_width = 478;
427  static const int32_t default_height = 765;
428 
434 
435  void update_title ();
437 
438  friend class MixerGroupTabs;
439 
443 
445 
450  };
453  std::vector<std::string> plugin_list_mode_strings;
454 
459 
466 
469 
471 
472  mutable std::weak_ptr<ARDOUR::Stripable> spilled_strip;
473 
474  void escape ();
475 
478 
479  void spill_nothing ();
481 
482  void vca_assign (std::shared_ptr<ARDOUR::VCA>);
483  void vca_unassign (std::shared_ptr<ARDOUR::VCA>);
484 
485  template<class T> void control_action (std::shared_ptr<T> (ARDOUR::Stripable::*get_control)() const);
486  void solo_action ();
487  void mute_action ();
492 
494  void cut_processors ();
498  void ab_plugins ();
499 };
500 
void add(TreeModelColumnBase &column)
void path(Glib::ustring &path, Glib::ustring &path_reversed)
Compute a widget's path of the form "GtkWindow.MyLabel".
static const int32_t default_width
Definition: mixer_ui.h:426
Gtk::ScrolledWindow scroller
Definition: mixer_ui.h:186
void select_prev_strip()
void maximise_mixer_space()
void save_plugin_order_file()
PBD::ControllableSet selected_gaincontrols()
bool ignore_track_reorder
Definition: mixer_ui.h:416
bool scene_label_press(GdkEventButton *ev, int)
void focus_on_clock()
PluginSelector * plugin_selector()
void show_spill(std::shared_ptr< ARDOUR::Stripable >)
void vca_unassign(std::shared_ptr< ARDOUR::VCA >)
StripableDisplayModelColumns stripable_columns
Definition: mixer_ui.h:391
MixerStrip * strip_by_stripable(std::shared_ptr< ARDOUR::Stripable >) const
Gtk::TreeView group_display
Definition: mixer_ui.h:396
void move_stripable_into_view(std::shared_ptr< ARDOUR::Stripable >)
void toggle_midi_input_active(bool flip_others)
sigc::signal1< void, std::shared_ptr< ARDOUR::Stripable > > show_spill_change
Definition: mixer_ui.h:139
void add_favorite_processor(ARDOUR::PluginPresetPtr, ProcessorPosition)
Gtk::ScrolledWindow track_display_scroller
Definition: mixer_ui.h:192
void set_all_audio_midi_visibility(int, bool)
GroupDisplayModelColumns group_columns
Definition: mixer_ui.h:392
Gtk::VBox vca_vpacker
Definition: mixer_ui.h:211
void escape()
void hide_all_audiotracks()
void cut_processors()
Gtk::VBox _mixer_scene_vbox
Definition: mixer_ui.h:220
int set_state(const XMLNode &, int)
void popup_scene_menu(GdkEventButton *ev, int)
double _spill_scroll_position
Definition: mixer_ui.h:410
void show_all_audiotracks()
gint stop_updating()
bool _maximised
true if we are in fullscreen mode
Definition: mixer_ui.h:468
void add_routes(ARDOUR::RouteList &)
void route_group_name_edit(const std::string &, const std::string &)
void track_column_click(gint)
void group_display_selection_changed()
bool on_vca_scroll_event(GdkEventScroll *)
void plugin_search_entry_changed()
AxisViewSelection _axis_targets
Definition: mixer_ui.h:477
Gtk::VBox favorite_plugins_vbox
Definition: mixer_ui.h:199
void set_strip_width(Width, bool save=false)
bool plugin_drag_motion(Glib::RefPtr< Gdk::DragContext > const &, int, int, guint)
void refill_favorite_plugins()
void register_actions()
FoldbackStrip * foldback_strip
Definition: mixer_ui.h:345
gint start_updating()
Width get_strip_width() const
Definition: mixer_ui.h:106
void parameter_changed(std::string const &)
Width _strip_width
Definition: mixer_ui.h:409
void paste_processors()
void control_action(std::shared_ptr< T >(ARDOUR::Stripable::*get_control)() const)
Gtk::HBox out_packer
Definition: mixer_ui.h:215
void session_going_away()
void new_track_or_bus()
void rec_enable_action()
void remove_selected_from_favorites()
Gtk::Entry plugin_search_entry
Definition: mixer_ui.h:202
Glib::RefPtr< PluginTreeStore > favorite_plugins_model
Definition: mixer_ui.h:401
void add_masters(ARDOUR::VCAList &)
bool _strip_selection_change_without_scroll
Definition: mixer_ui.h:470
void popup_note_context_menu(GdkEventButton *)
void load_bindings()
Gtk::VBox strip_group_box
Definition: mixer_ui.h:207
void add_route_group(ARDOUR::RouteGroup *)
Gtk::Frame group_display_frame
Definition: mixer_ui.h:197
void monitor_section_detached()
bool group_display_button_press(GdkEventButton *)
void set_axis_targets_for_operation()
void group_unselected(gint row, gint col, GdkEvent *ev)
void store_mixer_scene(size_t)
void route_group_row_change(const Gtk::TreeModel::Path &path, const Gtk::TreeModel::iterator &iter)
void setup_track_display()
bool ignore_plugin_reorder
Definition: mixer_ui.h:418
void remove_surround_master(SurroundStrip *)
Gtk::Frame favorite_plugins_frame
Definition: mixer_ui.h:198
ArdourWidgets::VPane rhs_pane1
Definition: mixer_ui.h:204
void step_gain_down_action()
MonitorSection _monitor_section
Definition: mixer_ui.h:342
bool ignore_plugin_refill
Definition: mixer_ui.h:417
void build_track_menu()
PBD::ScopedConnection _spill_gone_connection
Definition: mixer_ui.h:480
bool _show_foldback_strip
Definition: mixer_ui.h:346
void toggle_foldback_strip()
void do_vca_assign(std::shared_ptr< ARDOUR::VCA >)
void track_list_delete(const Gtk::TreeModel::Path &)
void set_plugin_list_mode(PluginListMode plm)
MonitorSection & monitor_section()
Definition: mixer_ui.h:119
void sync_treeview_favorite_ui_state(const Gtk::TreeModel::Path &, const Gtk::TreeModel::iterator &)
void toggle_mixer_list()
void spill_redisplay(std::shared_ptr< ARDOUR::Stripable >)
void hide_all_miditracks()
bool in_group_row_change
Definition: mixer_ui.h:321
Gtk::VBox list_vpacker
Definition: mixer_ui.h:190
void refiller(ARDOUR::PluginInfoList &result, const ARDOUR::PluginInfoList &plugs)
std::vector< std::string > plugin_list_mode_strings
Definition: mixer_ui.h:453
void showhide_vcas(bool on)
void save_favorite_ui_state(const Gtk::TreeModel::iterator &iter, const Gtk::TreeModel::Path &path)
void rename_mixer_scene(size_t n)
Gtkmm2ext::Bindings * bindings
Definition: mixer_ui.h:150
bool strip_button_release_event(GdkEventButton *, MixerStrip *)
Gtk::Frame _mixer_scene_frame
Definition: mixer_ui.h:218
void sync_surround_action()
void do_vca_unassign(std::shared_ptr< ARDOUR::VCA >)
void monitor_section_going_away()
Gtk::TreeView track_display
Definition: mixer_ui.h:395
void remove_strip(MixerStrip *)
ArdourWidgets::ArdourButton plugin_search_clear_button
Definition: mixer_ui.h:203
static Mixer_UI * _instance
Definition: mixer_ui.h:182
void scroll_right()
void remove_master(VCAMasterStrip *)
void sync_treeview_from_presentation_info(PBD::PropertyChange const &)
void track_visibility_changed(std::string const &path)
void clear_mixer_scene(size_t, bool interactive=true)
void toggle_monitor_action(ARDOUR::MonitorChoice monitor_choice, bool group_override=false, bool all=false)
void activate_all_route_groups()
void toggle_mixer_strip()
bool track_display_button_press(GdkEventButton *)
std::vector< Gtk::Label * > _mixer_scene_labels
Definition: mixer_ui.h:223
bool showing_spill_for(std::shared_ptr< ARDOUR::Stripable >) const
MixerGroupTabs * _group_tabs
Definition: mixer_ui.h:231
void show_strip(MixerStrip *)
void show_all_miditracks()
ProcessorPosition
Definition: mixer_ui.h:292
@ AddTop
Definition: mixer_ui.h:293
@ AddPostFader
Definition: mixer_ui.h:295
@ AddPreFader
Definition: mixer_ui.h:294
@ AddBottom
Definition: mixer_ui.h:296
void remove_foldback(FoldbackStrip *)
bool scene_button_release(GdkEventButton *, int)
void deselect_all_strip_processors()
void fan_out(std::weak_ptr< ARDOUR::Route >, bool to_busses, bool group)
Gtk::Window * use_own_window(bool and_fill_it)
void hide_all_routes()
void unity_gain_action()
bool plugin_row_button_press(GdkEventButton *)
sigc::connection fast_screen_update_connection
Definition: mixer_ui.h:272
AxisView * axis_view_by_stripable(std::shared_ptr< ARDOUR::Stripable >) const
void route_group_row_deleted(Gtk::TreeModel::Path const &)
Gtkmm2ext::DnDTreeView< ARDOUR::PluginPresetPtr > favorite_plugins_display
Definition: mixer_ui.h:397
void showhide_foldback_strip(bool)
void show_window()
ArdourWidgets::VPane rhs_pane2
Definition: mixer_ui.h:205
void mute_action()
void vca_assign(std::shared_ptr< ARDOUR::VCA >)
void show_all_audiobus()
void select_none()
void plugin_drop(const Glib::RefPtr< Gdk::DragContext > &, const Gtk::SelectionData &data)
Gtk::VBox mixer_scroller_vpacker
Definition: mixer_ui.h:189
MixerStrip * strip_by_x(int x)
Glib::RefPtr< Gtk::ListStore > track_model
Definition: mixer_ui.h:399
AxisView * axis_view_by_control(std::shared_ptr< ARDOUR::AutomationControl >) const
void update_track_visibility()
SurroundStrip * _surround_strip
Definition: mixer_ui.h:344
void move_vca_into_view(std::shared_ptr< ARDOUR::Stripable >)
bool on_scroll_event(GdkEventScroll *)
bool _in_group_rebuild_or_clear
Definition: mixer_ui.h:432
ApplicationBar _application_bar
Definition: mixer_ui.h:340
void step_gain_up_action()
void group_display_active_clicked()
void toggle_mixer_props()
void show_all_routes()
Gtk::Frame track_display_frame
Definition: mixer_ui.h:196
bool strip_scroller_button_event(GdkEventButton *)
void store_current_favorite_order()
Gtk::ScrolledWindow group_display_scroller
Definition: mixer_ui.h:193
void track_name_changed(MixerStrip *)
bool scene_button_press(GdkEventButton *, int)
void route_groups_changed()
void favorite_plugins_deleted(const Gtk::TreeModel::Path &)
std::list< std::string > favorite_ui_order
Definition: mixer_ui.h:388
void maybe_refill_favorite_plugins(PluginListMode)
Gtk::EventBox vca_scroller_base
Definition: mixer_ui.h:214
Gtk::HBox strip_packer
Definition: mixer_ui.h:208
bool vca_button_release_event(GdkEventButton *, VCAMasterStrip *)
void set_session(ARDOUR::Session *)
bool screenshot(std::string const &)
void ab_plugins()
void fast_update_strips()
void presentation_info_changed(PBD::PropertyChange const &)
RouteProcessorSelection _selection
Definition: mixer_ui.h:476
void spill_nothing()
Gtk::HBox favorite_plugins_search_hbox
Definition: mixer_ui.h:200
Glib::RefPtr< Gtk::ListStore > group_model
Definition: mixer_ui.h:400
ARDOUR::MixerScene * _mixer_scene_release
Definition: mixer_ui.h:224
void hide_all_audiobus()
void scroll_left()
Gtk::EventBox vca_label_bar
Definition: mixer_ui.h:212
void disable_all_route_groups()
void add_selected_processor(ProcessorPosition)
PluginListMode
Definition: mixer_ui.h:446
@ PLM_Favorite
Definition: mixer_ui.h:447
@ PLM_Recent
Definition: mixer_ui.h:448
@ PLM_TopHits
Definition: mixer_ui.h:449
Gtk::HBox vca_hpacker
Definition: mixer_ui.h:210
bool _route_deletion_in_progress
Definition: mixer_ui.h:433
void solo_action()
void delete_selected_preset()
RouteProcessorSelection & selection()
Definition: mixer_ui.h:141
void update_scene_buttons()
std::map< std::string, bool > favorite_ui_state
Definition: mixer_ui.h:389
static Mixer_UI * instance()
XMLNode & get_state() const
void toggle_vcas()
void toggle_processors()
Gtk::HBox global_hpacker
Definition: mixer_ui.h:184
PluginSelector * _plugin_selector
Definition: mixer_ui.h:343
void select_all_processors()
void strip_width_changed()
void recall_mixer_scene(size_t, bool interactive=true, bool for_selection=false)
void toggle_surround_master()
void select_next_strip()
std::weak_ptr< ARDOUR::Stripable > spilled_strip
Definition: mixer_ui.h:472
void update_title()
Gtk::Label group_display_button_label
Definition: mixer_ui.h:191
Gtk::VBox group_display_vbox
Definition: mixer_ui.h:195
static const int32_t default_height
Definition: mixer_ui.h:427
void showhide_monitor_section(bool)
void toggle_monitor_section()
Gtk::ScrolledWindow favorite_plugins_scroller
Definition: mixer_ui.h:194
Gtk::Table _mixer_scene_table
Definition: mixer_ui.h:219
void delete_processors()
void show_editor_window() const
void restore_mixer_space()
void route_group_property_changed(ARDOUR::RouteGroup *, const PBD::PropertyChange &)
ArdourWidgets::HPane inner_pane
Definition: mixer_ui.h:206
void group_selected(gint row, gint col, GdkEvent *ev)
enum PluginListMode plugin_list_mode
Definition: mixer_ui.h:451
void vca_scroll_left()
Gtk::ScrolledWindow vca_scroller
Definition: mixer_ui.h:209
PluginsDisplayModelColumns favorite_plugins_columns
Definition: mixer_ui.h:393
void initial_track_display()
void scroller_drag_data_received(const Glib::RefPtr< Gdk::DragContext > &, int, int, const Gtk::SelectionData &, guint, guint)
void new_masters_created()
Gtk::Menu * track_menu
Definition: mixer_ui.h:336
void add_stripables(ARDOUR::StripableList &)
void sync_presentation_info_from_treeview()
void stripable_property_changed(const PBD::PropertyChange &what_changed, std::weak_ptr< ARDOUR::Stripable > ws)
bool no_track_list_redisplay
Definition: mixer_ui.h:279
Gtk::VBox global_vpacker
Definition: mixer_ui.h:185
std::list< MixerStrip * > strips
Definition: mixer_ui.h:236
void new_route_group()
void plugin_search_clear_button_clicked()
void plugin_row_activated(const Gtk::TreeModel::Path &path, Gtk::TreeViewColumn *column)
ARDOUR::PluginPresetPtr selected_plugin()
void set_route_group_activation(ARDOUR::RouteGroup *, bool)
Gtk::HBox scroller_hpacker
Definition: mixer_ui.h:188
MixerStrip * strip_by_route(std::shared_ptr< ARDOUR::Route >) const
void redisplay_track_list()
void remove_selected_route_group()
ArdourWidgets::ArdourDropdown favorite_plugins_mode_combo
Definition: mixer_ui.h:201
ARDOUR::PluginInfoList plugin_list
Definition: mixer_ui.h:386
void vca_scroll_right()
void monitor_section_attached()
std::vector< ArdourWidgets::ArdourButton * > _mixer_scene_buttons
Definition: mixer_ui.h:222
Gtk::EventBox _mixer_scene_spacer
Definition: mixer_ui.h:217
void set_all_strips_visibility(bool yn)
void hide_strip(MixerStrip *)
Gtk::Label vca_label
Definition: mixer_ui.h:213
void sync_treeview_from_favorite_order()
void copy_processors()
Gtk::EventBox scroller_base
Definition: mixer_ui.h:187
void track_list_reorder(const Gtk::TreeModel::Path &path, const Gtk::TreeModel::iterator &iter, int *new_order)
static Glib::RefPtr< PluginTreeStore > create(const Gtk::TreeModelColumnRecord &columns)
Definition: mixer_ui.h:82
virtual bool row_drop_possible_vfunc(const Gtk::TreeModel::Path &, const Gtk::SelectionData &) const
PluginTreeStore(const Gtk::TreeModelColumnRecord &columns)
Definition: mixer_ui.h:87
virtual bool row_draggable_vfunc(const Gtk::TreeModel::Path &) const
Definition: mixer_ui.h:88
Definition: xml++.h:114
std::list< PluginInfoPtr > PluginInfoList
Definition: plugin.h:66
std::shared_ptr< PluginPreset > PluginPresetPtr
Definition: plugin.h:479
std::list< std::shared_ptr< Stripable > > StripableList
std::list< std::shared_ptr< VCA > > VCAList
std::list< std::shared_ptr< Route > > RouteList
void save(const std::string &filename)
Definition: ardour_ui.h:188
DebugBits VCA
std::set< std::shared_ptr< Controllable > > ControllableSet
Definition: controllable.h:40
Gtk::TreeModelColumn< ARDOUR::RouteGroup * > group
Definition: mixer_ui.h:374
Gtk::TreeModelColumn< std::string > text
Definition: mixer_ui.h:373
Gtk::TreeModelColumn< bool > visible
Definition: mixer_ui.h:372
Gtk::TreeModelColumn< std::string > name
Definition: mixer_ui.h:382
Gtk::TreeModelColumn< ARDOUR::PluginPresetPtr > plugin
Definition: mixer_ui.h:383
Gtk::TreeModelColumn< std::shared_ptr< ARDOUR::Stripable > > stripable
Definition: mixer_ui.h:362
Gtk::TreeModelColumn< AxisView * > strip
Definition: mixer_ui.h:363
Gtk::TreeModelColumn< std::string > text
Definition: mixer_ui.h:361
Gtk::TreeModelColumn< bool > visible
Definition: mixer_ui.h:360