Ardour  9.8-236-gb896344c8d
c1_gui.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2026 Holger Dehnhardt <holger@dehnhardt.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef __ardour_console1_gui_h__
20 #define __ardour_console1_gui_h__
21 
22 #include <vector>
23 #include <string>
24 
25 #include <ytkmm/box.h>
26 #include <ytkmm/button.h>
27 #include <ytkmm/combobox.h>
28 #include <ytkmm/checkbutton.h>
29 #include <ytkmm/image.h>
30 #include <ytkmm/table.h>
31 #include <ytkmm/treestore.h>
32 #include <ytkmm/spinbutton.h>
33 #include <ytkmm/notebook.h>
34 #include <ytkmm/scrolledwindow.h>
35 #include <ytkmm/togglebutton.h>
36 #include <ytkmm/treeview.h>
37 
38 namespace Gtk {
39  class CellRendererCombo;
40  class ListStore;
41 }
42 
43 #include "c1_panel.h"
44 #include "console1.h"
45 
46 namespace ArdourSurface {
47 
48 class C1GUI : public Gtk::VBox
49 {
50 public:
52  ~C1GUI ();
53 
54 private:
65  void set_edit_labels ();
69 
74 
77  add (short_name);
78  add (full_name);
79  }
82  };
83 
86 
87  Glib::RefPtr<Gtk::ListStore> build_midi_port_list (std::vector<std::string> const & ports, bool for_input);
88  void active_port_changed (Gtk::ComboBox*,bool for_input);
89 
93 
94  /* plugin assignment page (c1_plugin_control_assignment.cc) */
97  add (plugin_name);
98  add (plugin_id);
99  }
102  };
103 
106  add (index);
107  add (name);
108  add (is_switch);
110  add (shift);
111  add (learn);
112  }
119  };
120 
125  sigc::signal<void> plugin_assignment_changed;
126  sigc::connection assign_connection;
130  Glib::RefPtr<Gtk::ListStore> plugin_assignment_store;
132 
134  Gtk::CellRendererCombo* make_action_renderer (Glib::RefPtr<Gtk::ListStore> model, Gtk::TreeModelColumnBase column);
137  void change_controller_number (int controllerNumber, bool shiftState);
138  void toggle_learn (const Glib::ustring&);
140  void change_controller (const Glib::ustring&, const Gtk::TreeIter&);
141  void toggle_shift (const Glib::ustring&);
144 };
145 
146 }
147 
148 #endif /* __ardour_console1_gui_h__ */
Gtk::CellRendererCombo * make_action_renderer(Glib::RefPtr< Gtk::ListStore > model, Gtk::TreeModelColumnBase column)
sigc::signal< void > plugin_assignment_changed
Definition: c1_gui.h:125
Gtk::ComboBox plugins_combo
Definition: c1_gui.h:123
Gtk::ComboBox input_combo
Definition: c1_gui.h:59
Glib::RefPtr< Gtk::ListStore > plugin_assignment_store
Definition: c1_gui.h:130
void toggle_shift(const Glib::ustring &)
void build_plugin_assignment_editor()
sigc::connection assign_connection
Definition: c1_gui.h:126
bool ignore_active_change
Definition: c1_gui.h:85
PluginColumns plugin_columns
Definition: c1_gui.h:128
PBD::ScopedConnection connection_change_connection
Definition: c1_gui.h:71
Gtk::Notebook notebook
Definition: c1_gui.h:121
Gtk::CheckButton swap_solo_mute_cb
Definition: c1_gui.h:66
MidiPortColumns midi_port_columns
Definition: c1_gui.h:84
Gtk::Table table
Definition: c1_gui.h:58
void active_plugin_changed(Gtk::ComboBox *combo)
Gtk::HBox label_edit_box
Definition: c1_gui.h:64
Console1::PluginMapping plugin_mapping
Definition: c1_gui.h:131
PBD::ScopedConnectionList _port_connections
Definition: c1_gui.h:73
Gtk::CheckButton band_q_as_send_cb
Definition: c1_gui.h:67
void active_port_changed(Gtk::ComboBox *, bool for_input)
Gtk::VBox hpacker
Definition: c1_gui.h:57
void write_plugin_assignment()
Gtk::TreeView plugin_assignment_editor
Definition: c1_gui.h:124
Gtk::Button reset_labels_btn
Definition: c1_gui.h:63
Console1 & c1
Definition: c1_gui.h:55
C1Panel * panel
Definition: c1_gui.h:61
Gtk::VBox * build_plugin_assignment_page()
void change_controller(const Glib::ustring &, const Gtk::TreeIter &)
void toggle_learn(const Glib::ustring &)
PBD::ScopedConnectionList plugin_connections
Definition: c1_gui.h:127
PBD::ScopedConnectionList lcxl_connections
Definition: c1_gui.h:56
Glib::RefPtr< Gtk::ListStore > build_midi_port_list(std::vector< std::string > const &ports, bool for_input)
void change_controller_number(int controllerNumber, bool shiftState)
Gtk::CheckButton edit_labels_cb
Definition: c1_gui.h:62
Gtk::ScrolledWindow plugin_mapping_scroller
Definition: c1_gui.h:122
PluginAssignmentEditorColumns plugin_assignment_editor_columns
Definition: c1_gui.h:129
Gtk::CheckButton create_plugin_stubs_btn
Definition: c1_gui.h:68
Gtk::ComboBox output_combo
Definition: c1_gui.h:60
void set_create_mapping_stubs()
void add(TreeModelColumnBase &column)
Definition: ardour_ui.h:182
Gtk::TreeModelColumn< std::string > full_name
Definition: c1_gui.h:81
Gtk::TreeModelColumn< std::string > short_name
Definition: c1_gui.h:80
Gtk::TreeModelColumn< std::string > name
Definition: c1_gui.h:114
Gtk::TreeModelColumn< bool > is_switch
Definition: c1_gui.h:115
Gtk::TreeModelColumn< std::string > controllerName
Definition: c1_gui.h:116
Gtk::TreeModelColumn< std::string > plugin_id
Definition: c1_gui.h:101
Gtk::TreeModelColumn< std::string > plugin_name
Definition: c1_gui.h:100