Midi Busses? why yes!
[ardour.git] / gtk2_ardour / add_route_dialog.cc
index 2e58c646eace273c21001cf61d7602b156d682c4..14dda03d08580fb500d694bfc4ae1d7ef65170e7 100644 (file)
@@ -77,7 +77,8 @@ AddRouteDialog::AddRouteDialog ()
        track_bus_combo.append_text (_("Audio Tracks"));
        track_bus_combo.append_text (_("MIDI Tracks"));
        track_bus_combo.append_text (_("Audio+MIDI Tracks"));
-       track_bus_combo.append_text (_("Busses"));
+       track_bus_combo.append_text (_("Audio Busses"));
+       track_bus_combo.append_text (_("MIDI Busses"));
        track_bus_combo.set_active (0);
 
        insert_at_combo.append_text (_("First"));
@@ -135,16 +136,10 @@ AddRouteDialog::AddRouteDialog ()
        table2->attach (channel_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
        ++n;
 
-       if (!ARDOUR::Profile->get_sae ()) {
-
-               /* Track mode */
-
-               mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
-               table2->attach (mode_label, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
-               table2->attach (mode_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
-               ++n;
-
-       }
+       mode_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
+       table2->attach (mode_label, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
+       table2->attach (mode_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0);
+       ++n;
 
        instrument_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
        table2->attach (instrument_label, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0);
@@ -204,8 +199,10 @@ AddRouteDialog::TypeWanted
 AddRouteDialog::type_wanted() const
 {
        std::string str = track_bus_combo.get_active_text();
-       if (str == _("Busses")) {
+       if (str == _("Audio Busses")) {
                return AudioBus;
+       } else if (str == _("MIDI Busses")){
+               return MidiBus;
        } else if (str == _("MIDI Tracks")){
                return MidiTrack;
        } else if (str == _("Audio+MIDI Tracks")) {
@@ -238,6 +235,7 @@ AddRouteDialog::maybe_update_name_template_entry ()
                name_template_entry.set_text (_("Audio+MIDI"));
                break;
        case AudioBus:
+       case MidiBus:
                name_template_entry.set_text (_("Bus"));
                break;
        }
@@ -286,6 +284,14 @@ AddRouteDialog::track_type_chosen ()
                mode_label.set_sensitive (true);
                instrument_label.set_sensitive (false);
                break;
+       case MidiBus:
+               mode_combo.set_sensitive (false);
+               channel_combo.set_sensitive (false);
+               instrument_combo.set_sensitive (true);
+               configuration_label.set_sensitive (false);
+               mode_label.set_sensitive (true);
+               instrument_label.set_sensitive (true);
+               break;
        }
 
        maybe_update_name_template_entry ();
@@ -323,13 +329,10 @@ void
 AddRouteDialog::refill_track_modes ()
 {
        vector<string> s;
-       
-       s.push_back (_("Normal"));
 
-       if (!ARDOUR::Profile->get_sae ()) {
-               s.push_back (_("Non Layered"));
-               s.push_back (_("Tape"));
-       }
+       s.push_back (_("Normal"));
+       s.push_back (_("Non Layered"));
+       s.push_back (_("Tape"));
 
        set_popdown_strings (mode_combo, s);
        mode_combo.set_active_text (s.front());
@@ -338,10 +341,6 @@ AddRouteDialog::refill_track_modes ()
 ARDOUR::TrackMode
 AddRouteDialog::mode ()
 {
-       if (ARDOUR::Profile->get_sae()) {
-               return ARDOUR::Normal;
-       }
-
        std::string str = mode_combo.get_active_text();
        if (str == _("Normal")) {
                return ARDOUR::Normal;
@@ -392,7 +391,7 @@ AddRouteDialog::channels ()
                ret.set (DataType::MIDI, 1);
                break;
        }
-               
+
        return ret;
 }
 
@@ -441,49 +440,47 @@ AddRouteDialog::refill_channel_setups ()
 
        ARDOUR::find_route_templates (route_templates);
 
-       if (!ARDOUR::Profile->get_sae()) {
-               if (!route_templates.empty()) {
-                       vector<string> v;
-                       for (vector<TemplateInfo>::iterator x = route_templates.begin(); x != route_templates.end(); ++x) {
-                               chn.name = x->name;
-                               chn.channels = 0;
-                               chn.template_path = x->path;
-                               channel_setups.push_back (chn);
-                       }
+       if (!route_templates.empty()) {
+               vector<string> v;
+               for (vector<TemplateInfo>::iterator x = route_templates.begin(); x != route_templates.end(); ++x) {
+                       chn.name = x->name;
+                       chn.channels = 0;
+                       chn.template_path = x->path;
+                       channel_setups.push_back (chn);
                }
+       }
 
-               /* clear template path for the rest */
+       /* clear template path for the rest */
 
-               chn.template_path = "";
+       chn.template_path = "";
 
-               chn.name = _("3 Channel");
-               chn.channels = 3;
-               channel_setups.push_back (chn);
+       chn.name = _("3 Channel");
+       chn.channels = 3;
+       channel_setups.push_back (chn);
 
-               chn.name = _("4 Channel");
-               chn.channels = 4;
-               channel_setups.push_back (chn);
+       chn.name = _("4 Channel");
+       chn.channels = 4;
+       channel_setups.push_back (chn);
 
-               chn.name = _("5 Channel");
-               chn.channels = 5;
-               channel_setups.push_back (chn);
+       chn.name = _("5 Channel");
+       chn.channels = 5;
+       channel_setups.push_back (chn);
 
-               chn.name = _("6 Channel");
-               chn.channels = 6;
-               channel_setups.push_back (chn);
+       chn.name = _("6 Channel");
+       chn.channels = 6;
+       channel_setups.push_back (chn);
 
-               chn.name = _("8 Channel");
-               chn.channels = 8;
-               channel_setups.push_back (chn);
+       chn.name = _("8 Channel");
+       chn.channels = 8;
+       channel_setups.push_back (chn);
 
-               chn.name = _("12 Channel");
-               chn.channels = 12;
-               channel_setups.push_back (chn);
+       chn.name = _("12 Channel");
+       chn.channels = 12;
+       channel_setups.push_back (chn);
 
-               chn.name = _("Custom");
-               chn.channels = 0;
-               channel_setups.push_back (chn);
-       }
+       chn.name = _("Custom");
+       chn.channels = 0;
+       channel_setups.push_back (chn);
 
        for (ChannelSetups::iterator i = channel_setups.begin(); i != channel_setups.end(); ++i) {
                channel_combo_strings.push_back ((*i).name);