ardour
add_route_dialog.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2000-2007 Paul Davis
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
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 
18 */
19 
20 #ifndef __gtk_ardour_add_route_dialog_h__
21 #define __gtk_ardour_add_route_dialog_h__
22 
23 #include <string>
24 
25 #include <gtkmm/entry.h>
26 #include <gtkmm/dialog.h>
27 #include <gtkmm/frame.h>
28 #include <gtkmm/radiobutton.h>
29 #include <gtkmm/adjustment.h>
30 #include <gtkmm/spinbutton.h>
31 #include <gtkmm/button.h>
32 #include <gtkmm/combobox.h>
33 #include <gtkmm/comboboxtext.h>
34 #include <gtkmm/treemodel.h>
35 #include <gtkmm/liststore.h>
36 
37 #include "ardour/plugin.h"
38 #include "ardour/types.h"
39 #include "ardour/template_utils.h"
40 
41 #include "ardour_dialog.h"
42 #include "instrument_selector.h"
43 
44 class Editor;
45 
47 {
48  public:
49  AddRouteDialog ();
50  ~AddRouteDialog ();
51 
52  enum TypeWanted {
57  };
58  TypeWanted type_wanted() const;
59 
61  int count ();
62 
63  std::string name_template () const;
64  bool name_template_is_default () const;
65  std::string track_template ();
67 
70  enum InsertAt {
75  };
77 
78  private:
79  Gtk::Entry name_template_entry;
80  Gtk::ComboBoxText track_bus_combo;
81  Gtk::Adjustment routes_adjustment;
82  Gtk::SpinButton routes_spinner;
83  Gtk::ComboBoxText channel_combo;
84  Gtk::Label configuration_label;
85  Gtk::Label mode_label;
86  Gtk::Label instrument_label;
87  Gtk::ComboBoxText mode_combo;
88  Gtk::ComboBoxText route_group_combo;
90  Gtk::Label insert_at_label;
91  Gtk::ComboBoxText insert_at_combo;
92 
93  std::vector<ARDOUR::TemplateInfo> route_templates;
94 
95  void track_type_chosen ();
96  void refill_channel_setups ();
97  void refill_route_groups ();
98  void refill_track_modes ();
100  void group_changed ();
101  void channel_combo_changed ();
102  bool channel_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
103  bool route_separator (const Glib::RefPtr<Gtk::TreeModel> &m, const Gtk::TreeModel::iterator &i);
105 
107 
108  void on_show ();
109 
110  struct ChannelSetup {
111  std::string name;
112  std::string template_path;
113  uint32_t channels;
114  };
115 
116  typedef std::vector<ChannelSetup> ChannelSetups;
117  ChannelSetups channel_setups;
118 
119  static std::vector<std::string> channel_combo_strings;
120  static std::vector<std::string> bus_mode_strings;
121 };
122 
123 #endif /* __gtk_ardour_add_route_dialog_h__ */
bool channel_separator(const Glib::RefPtr< Gtk::TreeModel > &m, const Gtk::TreeModel::iterator &i)
ARDOUR::ChanCount channels()
InstrumentSelector instrument_combo
static std::vector< std::string > bus_mode_strings
std::vector< ARDOUR::TemplateInfo > route_templates
void channel_combo_changed()
Gtk::ComboBoxText channel_combo
InsertAt insert_at()
TypeWanted type_wanted() const
Gtk::Label configuration_label
TrackMode
Definition: types.h:198
Gtk::ComboBoxText route_group_combo
Gtk::ComboBoxText mode_combo
Gtk::Entry name_template_entry
bool name_template_is_default() const
Gtk::SpinButton routes_spinner
void maybe_update_name_template_entry()
void add_route_group(ARDOUR::RouteGroup *)
Gtk::Adjustment routes_adjustment
void reset_template_option_visibility()
static std::vector< std::string > channel_combo_strings
Definition: editor.h:134
std::string track_template()
ChannelSetups channel_setups
ARDOUR::RouteGroup * route_group()
Gtk::Label instrument_label
ARDOUR::TrackMode mode()
Gtk::ComboBoxText track_bus_combo
bool route_separator(const Glib::RefPtr< Gtk::TreeModel > &m, const Gtk::TreeModel::iterator &i)
void refill_channel_setups()
std::string name_template() const
ARDOUR::PluginInfoPtr requested_instrument()
std::vector< ChannelSetup > ChannelSetups
Gtk::Label insert_at_label
Gtk::Label mode_label
Gtk::ComboBoxText insert_at_combo