diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index b9b72c9104..97d9a55993 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -169,6 +169,15 @@ AddRouteDialog::AddRouteDialog () "* " + _("The number of busses to add") + "\n" + "* " + _("A name for the buss(es)") )); + + builtin_types.push_back ( + std::pair (_("Trigger Tracks"), std::string () + + _("Use these settings to create one or more trigger tracks.") + "\n\n" + + _("Trigger tracks contain audio/MIDI regions that can be triggered on demand.") + "\n\n" + + _("You may select:") + "\n" + + "* " + _("The number of tracks to add") + "\n" + + "* " + _("A name for the track(s)") + )); } insert_at_combo.append_text (_("First")); @@ -583,6 +592,8 @@ AddRouteDialog::type_wanted() return VCAMaster; } else if (str == _("Foldback Busses")) { return FoldbackBus; + } else if (str == _("Trigger Tracks")) { + return TriggerTrack; } else { assert (0); return AudioTrack; diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 3b029d361f..dcf014f1e0 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -73,6 +73,7 @@ public: MidiBus, VCAMaster, FoldbackBus, + TriggerTrack, }; TypeWanted type_wanted(); diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index f7b46594b2..7661b5d8bf 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1507,7 +1507,8 @@ ARDOUR_UI::session_add_midi_route ( bool strict_io, PluginInfoPtr instrument, Plugin::PresetRecord* pset, - ARDOUR::PresentationInfo::order_t order) + ARDOUR::PresentationInfo::order_t order, + bool with_triggers) { if (_session == 0) { warning << _("You cannot add a track without a session already loaded.") << endmsg; @@ -1525,7 +1526,7 @@ ARDOUR_UI::session_add_midi_route ( one_midi_channel.set (DataType::MIDI, 1); list > tracks; - tracks = _session->new_midi_track (one_midi_channel, one_midi_channel, strict_io, instrument, pset, route_group, how_many, name_template, order, ARDOUR::Normal, true); + tracks = _session->new_midi_track (one_midi_channel, one_midi_channel, strict_io, instrument, pset, route_group, how_many, name_template, order, ARDOUR::Normal, true, with_triggers); if (tracks.size() != how_many) { error << string_compose(P_("could not create %1 new mixed track", "could not create %1 new mixed tracks", how_many), how_many) << endmsg; @@ -2860,10 +2861,13 @@ ARDOUR_UI::add_route_dialog_response (int r) session_add_audio_route (false, input_chan.n_audio(), output_chan.n_audio(), ARDOUR::Normal, route_group, count, name_template, strict_io, order); break; case AddRouteDialog::MidiTrack: - session_add_midi_route (true, route_group, count, name_template, strict_io, instrument, 0, order); + session_add_midi_route (true, route_group, count, name_template, strict_io, instrument, 0, order, false); + break; + case AddRouteDialog::TriggerTrack: + session_add_midi_route (true, route_group, count, name_template, strict_io, instrument, 0, order, true); break; case AddRouteDialog::MidiBus: - session_add_midi_route (false, route_group, count, name_template, strict_io, instrument, 0, order); + session_add_midi_route (false, route_group, count, name_template, strict_io, instrument, 0, order, false); break; case AddRouteDialog::VCAMaster: _session->vca_manager().create_vca (count, name_template); diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index cccf2ddeb3..3ad501e0fb 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -325,7 +325,7 @@ public: void session_add_midi_route (bool, ARDOUR::RouteGroup *, uint32_t, std::string const &, bool, ARDOUR::PluginInfoPtr, ARDOUR::Plugin::PresetRecord*, - ARDOUR::PresentationInfo::order_t order); + ARDOUR::PresentationInfo::order_t order, bool with_triggers); void session_add_foldback_bus (int32_t, uint32_t, std::string const &); diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index cc5c2b1e07..e743b362f1 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -2427,7 +2427,7 @@ Mixer_UI::scroller_drag_data_received (const Glib::RefPtr& con if (!pip->is_instrument ()) { continue; } - ARDOUR_UI::instance()->session_add_midi_route (true, (RouteGroup*) 0, 1, _("MIDI"), Config->get_strict_io (), pip, ppp->_preset.valid ? &ppp->_preset : 0, PresentationInfo::max_order); + ARDOUR_UI::instance()->session_add_midi_route (true, (RouteGroup*) 0, 1, _("MIDI"), Config->get_strict_io (), pip, ppp->_preset.valid ? &ppp->_preset : 0, PresentationInfo::max_order, false); ok = true; }