summaryrefslogtreecommitdiff
path: root/gtk2_ardour/add_route_dialog.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-19 04:25:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-19 04:25:46 +0000
commitb99b507be9cb290ff9fc2d6197af045964eb68a2 (patch)
tree4cacb127abbb64bce55fbf06f7184441691d851e /gtk2_ardour/add_route_dialog.cc
parent2feede2e8ce393b8684638c526006dfb46ef4908 (diff)
add track/bus now allows specifying aux or direct bus role; processor box menus sort of kindof allow New Aux -> Aux Bus
git-svn-id: svn://localhost/ardour2/branches/3.0@6128 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/add_route_dialog.cc')
-rw-r--r--gtk2_ardour/add_route_dialog.cc48
1 files changed, 38 insertions, 10 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index 4c8c832044..42300f918b 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -52,12 +52,22 @@ static const char* track_mode_names[] = {
0
};
+static const char* bus_mode_names[] = {
+ N_("Aux"),
+ N_("Direct"),
+ 0
+};
+
+std::vector<std::string> AddRouteDialog::channel_combo_strings;
+std::vector<std::string> AddRouteDialog::track_mode_strings;
+std::vector<std::string> AddRouteDialog::bus_mode_strings;
+
AddRouteDialog::AddRouteDialog (Session & s)
: ArdourDialog (X_("add route dialog"))
, _session (s)
, routes_adjustment (1, 1, 128, 1, 4)
, routes_spinner (routes_adjustment)
- , track_mode_label (_("Track mode:"))
+ , mode_label (_("Track mode:"))
{
if (track_mode_strings.empty()) {
track_mode_strings = I18N (track_mode_names);
@@ -71,6 +81,10 @@ AddRouteDialog::AddRouteDialog (Session & s)
}
}
+ if (bus_mode_strings.empty()) {
+ bus_mode_strings = I18N (bus_mode_names);
+ }
+
set_name ("AddRouteDialog");
set_position (Gtk::WIN_POS_MOUSE);
set_modal (true);
@@ -82,14 +96,14 @@ AddRouteDialog::AddRouteDialog (Session & s)
name_template_entry.set_name (X_("AddRouteDialogNameTemplateEntry"));
routes_spinner.set_name (X_("AddRouteDialogSpinner"));
channel_combo.set_name (X_("ChannelCountSelector"));
- track_mode_combo.set_name (X_("ChannelCountSelector"));
+ mode_combo.set_name (X_("ChannelCountSelector"));
refill_channel_setups ();
refill_route_groups ();
- set_popdown_strings (track_mode_combo, track_mode_strings, true);
+ set_popdown_strings (mode_combo, track_mode_strings, true);
channel_combo.set_active_text (channel_combo_strings.front());
- track_mode_combo.set_active_text (track_mode_strings.front());
+ mode_combo.set_active_text (track_mode_strings.front());
track_bus_combo.append_text (_("tracks"));
track_bus_combo.append_text (_("busses"));
@@ -139,9 +153,9 @@ AddRouteDialog::AddRouteDialog (Session & s)
/* Track mode */
- track_mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
- table2->attach (track_mode_label, 1, 2, 1, 2, Gtk::FILL, Gtk::EXPAND, 0, 0);
- table2->attach (track_mode_combo, 2, 3, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
+ mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
+ table2->attach (mode_label, 1, 2, 1, 2, Gtk::FILL, Gtk::EXPAND, 0, 0);
+ table2->attach (mode_combo, 2, 3, 1, 2, Gtk::FILL, Gtk::EXPAND & Gtk::FILL, 0, 0);
}
@@ -180,8 +194,16 @@ AddRouteDialog::~AddRouteDialog ()
void
AddRouteDialog::track_type_chosen ()
{
- track_mode_label.set_sensitive (track ());
- track_mode_combo.set_sensitive (track ());
+ if (track()) {
+ mode_label.set_text (_("Track mode:"));
+ set_popdown_strings (mode_combo, track_mode_strings);
+ mode_combo.set_active_text (track_mode_strings.front());
+ } else {
+ mode_label.set_text (_("Bus type:"));
+ set_popdown_strings (mode_combo, bus_mode_strings);
+ mode_combo.set_active_text (bus_mode_strings.front());
+ }
+
}
bool
@@ -190,6 +212,12 @@ AddRouteDialog::track ()
return track_bus_combo.get_active_row_number () == 0;
}
+bool
+AddRouteDialog::aux ()
+{
+ return !track() && mode_combo.get_active_row_number () == 0;
+}
+
ARDOUR::DataType
AddRouteDialog::type ()
{
@@ -217,7 +245,7 @@ AddRouteDialog::mode ()
return ARDOUR::Normal;
}
- Glib::ustring str = track_mode_combo.get_active_text();
+ Glib::ustring str = mode_combo.get_active_text();
if (str == _("Normal")) {
return ARDOUR::Normal;
} else if (str == _("Non Layered")){