Ardour  9.0-pre0-822-g12e3bc5c20
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 <ytkmm/box.h>
30 #include <ytkmm/scrolledwindow.h>
31 #include <ytkmm/eventbox.h>
32 #include <ytkmm/label.h>
33 #include <ytkmm/comboboxtext.h>
34 #include <ytkmm/button.h>
35 #include <ytkmm/frame.h>
36 #include <ytkmm/menu.h>
37 #include <ytkmm/treeview.h>
38 #include <ytkmm/treestore.h>
39 #include <ytkmm/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 
55 #include "widgets/frame.h"
56 #include "widgets/metabutton.h"
57 #include "widgets/pane.h"
58 #include "widgets/tabbable.h"
59 
60 #include "application_bar.h"
61 #include "axis_provider.h"
62 #include "enums.h"
63 #include "monitor_section.h"
65 
66 namespace ARDOUR {
67  class Route;
68  class RouteGroup;
69  class VCA;
70 };
71 
72 class AxisView;
73 class FoldbackStrip;
74 class MixerStrip;
75 class PluginSelector;
76 class MixerGroupTabs;
77 class MonitorSection;
78 class SurroundStrip;
79 class VCAMasterStrip;
80 
81 class PluginTreeStore : public Gtk::TreeStore
82 {
83 public:
84  static Glib::RefPtr<PluginTreeStore> create(const Gtk::TreeModelColumnRecord& columns) {
85  return Glib::RefPtr<PluginTreeStore> (new PluginTreeStore (columns));
86  }
87 
88 protected:
89  PluginTreeStore (const Gtk::TreeModelColumnRecord& columns) : Gtk::TreeStore (columns) {}
90  virtual bool row_draggable_vfunc (const Gtk::TreeModel::Path&) const { return true; }
91  virtual bool row_drop_possible_vfunc (const Gtk::TreeModel::Path&, const Gtk::SelectionData&) const;
92 };
93 
95 {
96 public:
97  static Mixer_UI* instance();
99 
100  Gtk::Window* use_own_window (bool and_fill_it);
101  void show_window ();
102 
104 
106 
107  void set_strip_width (Width, bool save = false);
108  Width get_strip_width () const { return _strip_width; }
109 
110  XMLNode& get_state () const;
111  int set_state (const XMLNode&, int /* version */);
112 
114 
117 
120 
122 
125  void select_none ();
126 
129 
130  void store_mixer_scene (size_t);
131  void recall_mixer_scene (size_t, bool interactive = true, bool for_selection = false);
132  void clear_mixer_scene (size_t, bool interactive = true);
133  void rename_mixer_scene (size_t n);
134 
135  void do_vca_assign (std::shared_ptr<ARDOUR::VCA>);
136  void do_vca_unassign (std::shared_ptr<ARDOUR::VCA>);
137  void show_spill (std::shared_ptr<ARDOUR::Stripable>);
138  bool showing_spill_for (std::shared_ptr<ARDOUR::Stripable>) const;
139  void fan_out (std::weak_ptr<ARDOUR::Route>, bool to_busses, bool group);
140 
141  sigc::signal1<void,std::shared_ptr<ARDOUR::Stripable> > show_spill_change;
142 
144 
145  void show_editor_window () const;
146 
148 
150 
151  void load_bindings ();
153 
157 
159 
162 
165 
166  void toggle_vcas ();
167  void showhide_vcas (bool on);
168 
169 #ifdef MIXBUS
170  void toggle_mixbuses ();
171  void showhide_mixbusses (bool on);
172 #endif
173 
174  bool screenshot (std::string const&);
175 
176  void toggle_monitor_action (ARDOUR::MonitorChoice monitor_choice, bool group_override = false, bool all = false);
177 
178 protected:
181 
182 private:
185 
186  Gtk::HBox global_hpacker;
187  Gtk::VBox global_vpacker;
188  Gtk::ScrolledWindow scroller;
189  Gtk::EventBox scroller_base;
190  Gtk::HBox scroller_hpacker;
192  Gtk::VBox list_vpacker;
194  Gtk::ScrolledWindow track_display_scroller;
195  Gtk::ScrolledWindow group_display_scroller;
196  Gtk::ScrolledWindow favorite_plugins_scroller;
203  Gtk::VBox strip_group_box;
204  Gtk::HBox strip_packer;
205  Gtk::ScrolledWindow vca_scroller;
206  Gtk::HBox vca_hpacker;
207  Gtk::VBox vca_vpacker;
208  Gtk::EventBox vca_label_bar;
209  Gtk::Label vca_label;
210  Gtk::EventBox vca_scroller_base;
211  Gtk::HBox out_packer;
212 
213  Gtk::Notebook _sidebar_notebook;
216 
217  Gtk::EventBox _mixer_scene_spacer;
220  Gtk::VBox _mixer_scene_vbox;
221 
222  std::vector<ArdourWidgets::ArdourButton*> _mixer_scene_buttons;
223  std::vector<Gtk::Label*> _mixer_scene_labels;
225 
226  void popup_scene_menu (GdkEventButton* ev, int);
227  bool scene_button_press (GdkEventButton*, int);
228  bool scene_button_release (GdkEventButton*, int);
229  bool scene_label_press (GdkEventButton* ev, int);
230 
232 
233  bool on_scroll_event (GdkEventScroll*);
234  bool on_vca_scroll_event (GdkEventScroll*);
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);
239  bool strip_scroller_button_event (GdkEventButton*);
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 
253  void add_sidebar_page (std::string const&, std::string const&, Gtk::Widget&);
254 
262 
263  MixerStrip* strip_by_route (std::shared_ptr<ARDOUR::Route>) const;
264  MixerStrip* strip_by_stripable (std::shared_ptr<ARDOUR::Stripable>) const;
265 
266  AxisView* axis_view_by_stripable (std::shared_ptr<ARDOUR::Stripable>) const;
267  AxisView* axis_view_by_control (std::shared_ptr<ARDOUR::AutomationControl>) const;
268 
269  gint start_updating ();
270  gint stop_updating ();
271 
273 
276 
278 
280  void spill_redisplay (std::shared_ptr<ARDOUR::Stripable>);
282  bool track_display_button_press (GdkEventButton*);
284 
285  void track_list_delete (const Gtk::TreeModel::Path&);
286  void track_list_reorder (const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* new_order);
287 
288  void plugin_row_activated (const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column);
289  bool plugin_row_button_press (GdkEventButton*);
290  void popup_note_context_menu (GdkEventButton*);
291  void plugin_drop (const Glib::RefPtr<Gdk::DragContext>&, const Gtk::SelectionData& data);
292  bool plugin_drag_motion (Glib::RefPtr<Gdk::DragContext> const&, int, int, guint);
293 
298  AddBottom
299  };
300 
306 
308 
311  void track_visibility_changed (std::string const & path);
313 
322 
324 
325  void group_selected (gint row, gint col, GdkEvent *ev);
326  void group_unselected (gint row, gint col, GdkEvent *ev);
334  void route_group_name_edit (const std::string&, const std::string&);
335  void route_group_row_change (const Gtk::TreeModel::Path& path,const Gtk::TreeModel::iterator& iter);
336  void route_group_row_deleted (Gtk::TreeModel::Path const &);
337 
338  Gtk::Menu *track_menu;
339  void track_column_click (gint);
341 
343 
349 
350  void stripable_property_changed (const PBD::PropertyChange& what_changed, std::weak_ptr<ARDOUR::Stripable> ws);
352 
353  /* various treeviews */
354 
355  struct StripableDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
357  add (text);
358  add (visible);
359  add (stripable);
360  add (strip);
361  }
362  Gtk::TreeModelColumn<bool> visible;
363  Gtk::TreeModelColumn<std::string> text;
364  Gtk::TreeModelColumn<std::shared_ptr<ARDOUR::Stripable> > stripable;
365  Gtk::TreeModelColumn<AxisView*> strip;
366  };
367 
368  struct GroupDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
370  add (visible);
371  add (text);
372  add (group);
373  }
374  Gtk::TreeModelColumn<bool> visible;
375  Gtk::TreeModelColumn<std::string> text;
376  Gtk::TreeModelColumn<ARDOUR::RouteGroup*> group;
377  };
378 
379  struct PluginsDisplayModelColumns : public Gtk::TreeModel::ColumnRecord {
381  add (name);
382  add (plugin);
383  }
384  Gtk::TreeModelColumn<std::string> name;
385  Gtk::TreeModelColumn<ARDOUR::PluginPresetPtr> plugin;
386  };
387 
389 
390  std::list<std::string> favorite_ui_order;
391  std::map<std::string, bool> favorite_ui_state;
392 
396 
397  Gtk::TreeView track_display;
398  Gtk::TreeView group_display;
400 
401  Glib::RefPtr<Gtk::ListStore> track_model;
402  Glib::RefPtr<Gtk::ListStore> group_model;
403  Glib::RefPtr<PluginTreeStore> favorite_plugins_model;
404 
405  bool group_display_button_press (GdkEventButton*);
407 
408  bool strip_button_release_event (GdkEventButton*, MixerStrip*);
409  bool vca_button_release_event (GdkEventButton*, VCAMasterStrip*);
410 
413 
417 
421 
422  void parameter_changed (std::string const &);
424 
427 
428  static const int32_t default_width = 478;
429  static const int32_t default_height = 765;
430 
436 
437  void update_title ();
439 
440  friend class MixerGroupTabs;
441 
445 
447 
453  };
456  void update_sidebar_pagers (guint);
457 
462 
465  void favorite_plugins_deleted (const Gtk::TreeModel::Path&);
467  void sync_treeview_favorite_ui_state (const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator&);
468  void save_favorite_ui_state (const Gtk::TreeModel::iterator& iter, const Gtk::TreeModel::Path& path);
469 
472 
474 
475  mutable std::weak_ptr<ARDOUR::Stripable> spilled_strip;
476 
477  void escape ();
478 
481 
482  void spill_nothing ();
484 
485  void vca_assign (std::shared_ptr<ARDOUR::VCA>);
486  void vca_unassign (std::shared_ptr<ARDOUR::VCA>);
487 
488  template<class T> void control_action (std::shared_ptr<T> (ARDOUR::Stripable::*get_control)() const);
489  void solo_action ();
490  void mute_action ();
495 
497  void cut_processors ();
501  void ab_plugins ();
502 };
503 
static const int32_t default_width
Definition: mixer_ui.h:428
Gtk::ScrolledWindow scroller
Definition: mixer_ui.h:188
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:418
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:393
MixerStrip * strip_by_stripable(std::shared_ptr< ARDOUR::Stripable >) const
Gtk::TreeView group_display
Definition: mixer_ui.h:398
void move_stripable_into_view(std::shared_ptr< ARDOUR::Stripable >)
void toggle_midi_input_active(bool flip_others)
ArdourWidgets::MetaButton _sidebar_pager2
Definition: mixer_ui.h:215
sigc::signal1< void, std::shared_ptr< ARDOUR::Stripable > > show_spill_change
Definition: mixer_ui.h:141
void add_favorite_processor(ARDOUR::PluginPresetPtr, ProcessorPosition)
Gtk::ScrolledWindow track_display_scroller
Definition: mixer_ui.h:194
void set_all_audio_midi_visibility(int, bool)
GroupDisplayModelColumns group_columns
Definition: mixer_ui.h:394
Gtk::VBox vca_vpacker
Definition: mixer_ui.h:207
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:412
void show_all_audiotracks()
gint stop_updating()
bool _maximised
true if we are in fullscreen mode
Definition: mixer_ui.h:471
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:480
Gtk::VBox favorite_plugins_vbox
Definition: mixer_ui.h:198
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:347
gint start_updating()
Width get_strip_width() const
Definition: mixer_ui.h:108
void parameter_changed(std::string const &)
Width _strip_width
Definition: mixer_ui.h:411
void paste_processors()
void control_action(std::shared_ptr< T >(ARDOUR::Stripable::*get_control)() const)
Gtk::HBox out_packer
Definition: mixer_ui.h:211
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:200
Glib::RefPtr< PluginTreeStore > favorite_plugins_model
Definition: mixer_ui.h:403
void add_masters(ARDOUR::VCAList &)
bool _strip_selection_change_without_scroll
Definition: mixer_ui.h:473
void popup_note_context_menu(GdkEventButton *)
void load_bindings()
Gtk::VBox strip_group_box
Definition: mixer_ui.h:203
void add_route_group(ARDOUR::RouteGroup *)
Gtk::Notebook _sidebar_notebook
Definition: mixer_ui.h:213
void monitor_section_detached()
bool group_display_button_press(GdkEventButton *)
void set_axis_targets_for_operation()
void add_sidebar_page(std::string const &, std::string const &, Gtk::Widget &)
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:420
void remove_surround_master(SurroundStrip *)
void step_gain_down_action()
MonitorSection _monitor_section
Definition: mixer_ui.h:344
bool ignore_plugin_refill
Definition: mixer_ui.h:419
void build_track_menu()
PBD::ScopedConnection _spill_gone_connection
Definition: mixer_ui.h:483
bool _show_foldback_strip
Definition: mixer_ui.h:348
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:121
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:323
Gtk::VBox list_vpacker
Definition: mixer_ui.h:192
void refiller(ARDOUR::PluginInfoList &result, const ARDOUR::PluginInfoList &plugs)
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:152
bool strip_button_release_event(GdkEventButton *, MixerStrip *)
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:397
void remove_strip(MixerStrip *)
ArdourWidgets::ArdourButton plugin_search_clear_button
Definition: mixer_ui.h:201
static Mixer_UI * _instance
Definition: mixer_ui.h:184
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
ArdourWidgets::MetaButton _sidebar_pager1
Definition: mixer_ui.h:214
void show_strip(MixerStrip *)
void show_all_miditracks()
ProcessorPosition
Definition: mixer_ui.h:294
@ AddTop
Definition: mixer_ui.h:295
@ AddPostFader
Definition: mixer_ui.h:297
@ AddPreFader
Definition: mixer_ui.h:296
@ AddBottom
Definition: mixer_ui.h:298
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:274
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:399
void showhide_foldback_strip(bool)
void show_window()
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:191
MixerStrip * strip_by_x(int x)
void update_sidebar_pagers(guint)
Glib::RefPtr< Gtk::ListStore > track_model
Definition: mixer_ui.h:401
AxisView * axis_view_by_control(std::shared_ptr< ARDOUR::AutomationControl >) const
void update_track_visibility()
SurroundStrip * _surround_strip
Definition: mixer_ui.h:346
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:434
ApplicationBar _application_bar
Definition: mixer_ui.h:342
void step_gain_up_action()
void group_display_active_clicked()
void toggle_mixer_props()
void show_all_routes()
bool strip_scroller_button_event(GdkEventButton *)
void store_current_favorite_order()
Gtk::ScrolledWindow group_display_scroller
Definition: mixer_ui.h:195
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:390
void maybe_refill_favorite_plugins(PluginListMode)
Gtk::EventBox vca_scroller_base
Definition: mixer_ui.h:210
Gtk::HBox strip_packer
Definition: mixer_ui.h:204
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:479
void spill_nothing()
Gtk::HBox favorite_plugins_search_hbox
Definition: mixer_ui.h:199
Glib::RefPtr< Gtk::ListStore > group_model
Definition: mixer_ui.h:402
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:208
void disable_all_route_groups()
void add_selected_processor(ProcessorPosition)
PluginListMode
Definition: mixer_ui.h:448
@ PLM_Favorite
Definition: mixer_ui.h:449
@ PLM_SearchAll
Definition: mixer_ui.h:452
@ PLM_Recent
Definition: mixer_ui.h:450
@ PLM_TopHits
Definition: mixer_ui.h:451
Gtk::HBox vca_hpacker
Definition: mixer_ui.h:206
bool _route_deletion_in_progress
Definition: mixer_ui.h:435
void solo_action()
void delete_selected_preset()
RouteProcessorSelection & selection()
Definition: mixer_ui.h:143
void update_scene_buttons()
std::map< std::string, bool > favorite_ui_state
Definition: mixer_ui.h:391
static Mixer_UI * instance()
ArdourWidgets::Frame _mixer_scene_frame
Definition: mixer_ui.h:218
XMLNode & get_state() const
void toggle_vcas()
void toggle_processors()
Gtk::HBox global_hpacker
Definition: mixer_ui.h:186
PluginSelector * _plugin_selector
Definition: mixer_ui.h:345
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:475
void update_title()
Gtk::Label group_display_button_label
Definition: mixer_ui.h:193
Gtk::VBox group_display_vbox
Definition: mixer_ui.h:197
static const int32_t default_height
Definition: mixer_ui.h:429
void showhide_monitor_section(bool)
void toggle_monitor_section()
Gtk::ScrolledWindow favorite_plugins_scroller
Definition: mixer_ui.h:196
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:202
void group_selected(gint row, gint col, GdkEvent *ev)
enum PluginListMode plugin_list_mode
Definition: mixer_ui.h:454
void vca_scroll_left()
Gtk::ScrolledWindow vca_scroller
Definition: mixer_ui.h:205
PluginsDisplayModelColumns favorite_plugins_columns
Definition: mixer_ui.h:395
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:338
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:281
Gtk::VBox global_vpacker
Definition: mixer_ui.h:187
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:190
MixerStrip * strip_by_route(std::shared_ptr< ARDOUR::Route >) const
void redisplay_track_list()
void remove_selected_route_group()
ARDOUR::PluginInfoList plugin_list
Definition: mixer_ui.h:388
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:209
void sync_treeview_from_favorite_order()
void copy_processors()
Gtk::EventBox scroller_base
Definition: mixer_ui.h:189
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:84
virtual bool row_drop_possible_vfunc(const Gtk::TreeModel::Path &, const Gtk::SelectionData &) const
PluginTreeStore(const Gtk::TreeModelColumnRecord &columns)
Definition: mixer_ui.h:89
virtual bool row_draggable_vfunc(const Gtk::TreeModel::Path &) const
Definition: mixer_ui.h:90
Definition: xml++.h:114
Width
Definition: enums.h:26
struct Table Table
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
Definition: ardour_ui.h:189
DebugBits VCA
std::set< std::shared_ptr< Controllable > > ControllableSet
Definition: controllable.h:40
Gtk::TreeModelColumn< ARDOUR::RouteGroup * > group
Definition: mixer_ui.h:376
Gtk::TreeModelColumn< std::string > text
Definition: mixer_ui.h:375
Gtk::TreeModelColumn< bool > visible
Definition: mixer_ui.h:374
Gtk::TreeModelColumn< std::string > name
Definition: mixer_ui.h:384
Gtk::TreeModelColumn< ARDOUR::PluginPresetPtr > plugin
Definition: mixer_ui.h:385
Gtk::TreeModelColumn< std::shared_ptr< ARDOUR::Stripable > > stripable
Definition: mixer_ui.h:364
Gtk::TreeModelColumn< AxisView * > strip
Definition: mixer_ui.h:365
Gtk::TreeModelColumn< std::string > text
Definition: mixer_ui.h:363
Gtk::TreeModelColumn< bool > visible
Definition: mixer_ui.h:362