Ardour  9.0-pre0-582-g084a23a80d
route_params_ui.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2007 Taybin Rutkin <taybin@taybin.com>
3  * Copyright (C) 2005-2017 Paul Davis <paul@linuxaudiosystems.com>
4  * Copyright (C) 2007-2011 David Robillard <d@drobilla.net>
5  * Copyright (C) 2009-2012 Carl Hetherington <carl@carlh.net>
6  * Copyright (C) 2014-2019 Robin Gareus <robin@gareus.org>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with this program; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21  */
22 
23 #pragma once
24 
25 #include <list>
26 
27 #include <gtkmm/box.h>
28 #include <gtkmm/button.h>
29 #include <gtkmm/eventbox.h>
30 #include <gtkmm/frame.h>
31 #include <gtkmm/label.h>
32 #include <gtkmm/scrolledwindow.h>
33 #include <gtkmm/togglebutton.h>
34 #include <gtkmm/treeview.h>
35 
36 #include "pbd/stateful.h"
37 #include "pbd/signals.h"
38 
39 #include "ardour/ardour.h"
40 
41 #include <widgets/pane.h>
42 
43 #include "ardour_window.h"
44 #include "processor_box.h"
45 #include "processor_selection.h"
46 
47 namespace ARDOUR {
48  class Route;
49  class Send;
50  class Processor;
51  class Session;
52  class PortInsert;
53  class Connection;
54  class Plugin;
55 }
56 
57 class PluginSelector;
58 class IOSelector;
59 
61 {
62 public:
65 
69 
70 private:
73 
78 
80 
83 
85 
87 
89 
91 
93 
94 
98 
100 
104 
106 
107  std::shared_ptr<ARDOUR::Route> _route;
110 
111  std::shared_ptr<ARDOUR::Processor> _processor;
113 
114 
115  enum ConfigView {
122  };
123 
125 
126 
127  /* treeview */
130  add(text);
131  add(route);
132  }
135  };
136 
139  Glib::RefPtr<Gtk::ListStore> route_display_model;
140 
141 
143 
144  void route_property_changed (const PBD::PropertyChange&, std::weak_ptr<ARDOUR::Route> route);
145  void route_removed (std::weak_ptr<ARDOUR::Route> route);
146  void map_frozen ();
147 
148 
150  //void route_unselected (gint row, gint col, GdkEvent *ev);
151 
154  void cleanup_view(bool stopupdate = true);
155 
157 
160 
161  void redirect_selected (std::shared_ptr<ARDOUR::Processor>);
162 
164  void processor_going_away (std::weak_ptr<ARDOUR::Processor>);
165 
168 
170 
173 
174  void update_title ();
175  //void unselect_all_redirects ();
176 };
177 
178 
void add(TreeModelColumnBase &column)
std::shared_ptr< ARDOUR::Processor > _processor
Gtk::TreeView route_display
void route_selected()
ProcessorBox * insert_box
Gtk::Frame input_frame
void show_track_menu()
void route_removed(std::weak_ptr< ARDOUR::Route > route)
ArdourWidgets::HPane redir_hpane
Gtk::Label track_input_label
void cleanup_processor_boxes()
void cleanup_view(bool stopupdate=true)
Gtk::VBox choice_vpacker
Gtk::Menu * track_menu
Gtk::Notebook notebook
Gtk::ToggleButton input_button
void redirect_selected(std::shared_ptr< ARDOUR::Processor >)
Gtk::Container * _active_view
void processor_going_away(std::weak_ptr< ARDOUR::Processor >)
void update_routeinfo(ARDOUR::Route *route)
IOSelector * _input_iosel
ArdourWidgets::HPane right_hpane
Gtk::VBox list_vpacker
void setup_io_selector()
Gtk::VBox route_vpacker
IOSelector * _output_iosel
void cleanup_io_selector()
std::shared_ptr< ARDOUR::Route > _route
Gtk::ScrolledWindow route_select_scroller
ConfigView _current_view
PBD::ScopedConnection _route_processors_connection
ProcessorSelection _p_selection
Gtk::Frame route_select_frame
void processors_changed(ARDOUR::RouteProcessorChange)
Gtk::Frame route_param_frame
RouteDisplayModelColumns route_display_columns
Glib::RefPtr< Gtk::ListStore > route_display_model
PBD::ScopedConnectionList route_connections
void set_session(ARDOUR::Session *)
PluginSelector * plugin_selector()
Gtk::ToggleButton output_button
ArdourWidgets::HPane list_hpane
Gtk::HBox route_hpacker
void session_going_away()
Gtk::Label title_label
gint edit_output_configuration(GdkEventButton *ev)
void add_routes(ARDOUR::RouteList const &)
gint edit_input_configuration(GdkEventButton *ev)
void plugin_going_away(ARDOUR::Placement)
void route_property_changed(const PBD::PropertyChange &, std::weak_ptr< ARDOUR::Route > route)
Gtk::Frame output_frame
void update_title()
PBD::ScopedConnection _processor_going_away_connection
void setup_processor_boxes()
std::list< std::shared_ptr< Route > > RouteList
Gtk::TreeModelColumn< std::shared_ptr< ARDOUR::Route > > route
Gtk::TreeModelColumn< std::string > text