X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fadd_route_dialog.cc;h=57fd46be7303d5d31340999265f673cfd03fe428;hb=5f9e81b105e84988a92c1f448fa46d9054893b55;hp=e267e5496df7f79be26c45637a89f658ba431e5b;hpb=d70429a066dfd33cca0b6f64be7014649a9910ca;p=ardour.git diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index e267e5496d..57fd46be73 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -45,21 +46,20 @@ using namespace Gtkmm2ext; using namespace std; using namespace PBD; using namespace ARDOUR; +using namespace ARDOUR_UI_UTILS; std::vector AddRouteDialog::channel_combo_strings; -AddRouteDialog::AddRouteDialog (Session* s) +AddRouteDialog::AddRouteDialog () : ArdourDialog (_("Add Track or Bus")) , routes_adjustment (1, 1, 128, 1, 4) , routes_spinner (routes_adjustment) , configuration_label (_("Configuration:")) , mode_label (_("Track mode:")) , instrument_label (_("Instrument:")) + , reasonable_synth_id(0) { - set_session (s); - set_name ("AddRouteDialog"); - set_position (Gtk::WIN_POS_MOUSE); set_modal (true); set_skip_taskbar_hint (true); set_resizable (false); @@ -84,7 +84,7 @@ AddRouteDialog::AddRouteDialog (Session* s) build_instrument_list (); instrument_combo.set_model (instrument_list); instrument_combo.pack_start (instrument_list_columns.name); - instrument_combo.set_active (0); + instrument_combo.set_active (reasonable_synth_id); instrument_combo.set_button_sensitivity (Gtk::SENSITIVITY_AUTO); VBox* vbox = manage (new VBox); @@ -258,6 +258,13 @@ AddRouteDialog::track_type_chosen () instrument_label.set_sensitive (true); break; case MixedTrack: + { + MessageDialog msg (_("Audio+MIDI tracks are intended for use ONLY with plugins that use both audio and MIDI input data\n\n" + "If you do not plan to use such a plugin, then use a normal audio or MIDI track instead."), + true, MESSAGE_INFO, BUTTONS_OK, true); + msg.set_position (WIN_POS_MOUSE); + msg.run (); + } channel_combo.set_sensitive (true); mode_combo.set_sensitive (true); instrument_combo.set_sensitive (true); @@ -280,11 +287,26 @@ AddRouteDialog::track_type_chosen () string -AddRouteDialog::name_template () +AddRouteDialog::name_template () const { return name_template_entry.get_text (); } +bool +AddRouteDialog::name_template_is_default() const +{ + string n = name_template(); + + if (n == _("Audio") || + n == _("MIDI") || + n == _("Audio+MIDI") || + n == _("Bus")) { + return true; + } + + return false; +} + int AddRouteDialog::count () { @@ -324,7 +346,7 @@ AddRouteDialog::mode () } else { fatal << string_compose (X_("programming error: unknown track mode in add route dialog combo = %1"), str) << endmsg; - /*NOTREACHED*/ + abort(); /*NOTREACHED*/ } /* keep gcc happy */ return ARDOUR::Normal; @@ -474,7 +496,7 @@ AddRouteDialog::add_route_group (RouteGroup* g) RouteGroup* AddRouteDialog::route_group () { - if (route_group_combo.get_active_row_number () == 2) { + if (!_session || route_group_combo.get_active_row_number () == 2) { return 0; } @@ -491,7 +513,9 @@ AddRouteDialog::refill_route_groups () route_group_combo.append_text (_("No Group")); - _session->foreach_route_group (sigc::mem_fun (*this, &AddRouteDialog::add_route_group)); + if (_session) { + _session->foreach_route_group (sigc::mem_fun (*this, &AddRouteDialog::add_route_group)); + } route_group_combo.set_active (2); } @@ -512,7 +536,9 @@ AddRouteDialog::group_changed () delete g; route_group_combo.set_active (2); } else { - _session->add_route_group (g); + if (_session) { + _session->add_route_group (g); + } add_route_group (g); route_group_combo.set_active (3); } @@ -563,6 +589,7 @@ AddRouteDialog::build_instrument_list () row[instrument_list_columns.info_ptr] = PluginInfoPtr (); row[instrument_list_columns.name] = _("-none-"); + uint32_t n = 1; for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end(); ++i) { if (manager.get_status (*i) == PluginManager::Hidden) continue; @@ -571,6 +598,10 @@ AddRouteDialog::build_instrument_list () row = *(instrument_list->append()); row[instrument_list_columns.name] = (*i)->name; row[instrument_list_columns.info_ptr] = *i; + if ((*i)->unique_id == "https://community.ardour.org/node/7596") { + reasonable_synth_id = n; + } + n++; } } }