From: Robin Gareus Date: Fri, 20 Jan 2017 20:47:09 +0000 (+0100) Subject: GUI follow up for new-MIDI-track API change X-Git-Tag: 5.6~220 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=7960e1ddbfd0af2b9e3a538b67a05266cf0429e6;p=ardour.git GUI follow up for new-MIDI-track API change --- diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 7f5ceeef1d..3c7f1afde2 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1940,15 +1940,18 @@ ARDOUR_UI::session_add_mixed_track ( Plugin::PresetRecord* pset, ARDOUR::PresentationInfo::order_t order) { - list > tracks; - if (_session == 0) { warning << _("You cannot add a track without a session already loaded.") << endmsg; return; } + if (Profile->get_mixbus ()) { + strict_io = true; + } + try { - tracks = _session->new_midi_track (input, output, instrument, pset, route_group, how_many, name_template, order, ARDOUR::Normal); + list > tracks; + tracks = _session->new_midi_track (input, output, strict_io, instrument, pset, route_group, how_many, name_template, order, ARDOUR::Normal); 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; @@ -1959,12 +1962,6 @@ ARDOUR_UI::session_add_mixed_track ( display_insufficient_ports_message (); return; } - - if (strict_io) { - for (list >::iterator i = tracks.begin(); i != tracks.end(); ++i) { - (*i)->set_strict_io (true); - } - } } void @@ -1977,16 +1974,18 @@ ARDOUR_UI::session_add_midi_bus ( Plugin::PresetRecord* pset, ARDOUR::PresentationInfo::order_t order) { - RouteList routes; - if (_session == 0) { warning << _("You cannot add a track without a session already loaded.") << endmsg; return; } - try { + if (Profile->get_mixbus ()) { + strict_io = true; + } - routes = _session->new_midi_route (route_group, how_many, name_template, instrument, pset, PresentationInfo::MidiBus, order); + try { + RouteList routes; + routes = _session->new_midi_route (route_group, how_many, name_template, strict_io, instrument, pset, PresentationInfo::MidiBus, order); if (routes.size() != how_many) { error << string_compose(P_("could not create %1 new Midi Bus", "could not create %1 new Midi Busses", how_many), how_many) << endmsg; } @@ -1996,12 +1995,6 @@ ARDOUR_UI::session_add_midi_bus ( display_insufficient_ports_message (); return; } - - if (strict_io) { - for (RouteList::iterator i = routes.begin(); i != routes.end(); ++i) { - (*i)->set_strict_io (true); - } - } } void diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index c835796325..1bbcf80b6f 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -39,6 +39,7 @@ #include "ardour/midi_region.h" #include "ardour/midi_track.h" #include "ardour/operations.h" +#include "ardour/profile.h" #include "ardour/region_factory.h" #include "ardour/smf_source.h" #include "ardour/source_factory.h" @@ -1029,6 +1030,7 @@ Editor::finish_bringing_in_material (boost::shared_ptr region, list > mt ( _session->new_midi_track (ChanCount (DataType::MIDI, 1), ChanCount (DataType::MIDI, 1), + Config->get_strict_io () || Profile->get_mixbus (), instrument, (Plugin::PresetRecord*) 0, (RouteGroup*) 0, 1, @@ -1038,11 +1040,6 @@ Editor::finish_bringing_in_material (boost::shared_ptr region, if (mt.empty()) { return -1; } - if (Config->get_strict_io ()) { - for (list >::iterator i = mt.begin(); i != mt.end(); ++i) { - (*i)->set_strict_io (true); - } - } // TODO set strict_io from preferences existing_track = mt.front(); diff --git a/gtk2_ardour/editor_canvas_events.cc b/gtk2_ardour/editor_canvas_events.cc index 65a448be48..569f58c952 100644 --- a/gtk2_ardour/editor_canvas_events.cc +++ b/gtk2_ardour/editor_canvas_events.cc @@ -1295,7 +1295,9 @@ Editor::drop_regions (const Glib::RefPtr& /*context*/, } else if (boost::dynamic_pointer_cast (region)) { ChanCount one_midi_port (DataType::MIDI, 1); list > midi_tracks; - midi_tracks = session()->new_midi_track (one_midi_port, one_midi_port, boost::shared_ptr(), + midi_tracks = session()->new_midi_track (one_midi_port, one_midi_port, + Config->get_strict_io () || Profile->get_mixbus (), + boost::shared_ptr(), (ARDOUR::Plugin::PresetRecord*) 0, (ARDOUR::RouteGroup*) 0, 1, region->name(), PresentationInfo::max_order); rtav = dynamic_cast (axis_view_from_stripable (midi_tracks.front())); diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 62437c6fea..91a1b52348 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -37,6 +37,7 @@ #include "ardour/midi_region.h" #include "ardour/midi_track.h" #include "ardour/operations.h" +#include "ardour/profile.h" #include "ardour/region_factory.h" #include "ardour/session.h" @@ -1442,7 +1443,9 @@ RegionMoveDrag::create_destination_time_axis (boost::shared_ptr region, } else { ChanCount one_midi_port (DataType::MIDI, 1); list > midi_tracks; - midi_tracks = _editor->session()->new_midi_track (one_midi_port, one_midi_port, boost::shared_ptr(), + midi_tracks = _editor->session()->new_midi_track (one_midi_port, one_midi_port, + Config->get_strict_io () || Profile->get_mixbus (), + boost::shared_ptr(), (ARDOUR::Plugin::PresetRecord*) 0, (ARDOUR::RouteGroup*) 0, 1, region->name(), PresentationInfo::max_order); tav = _editor->axis_view_from_stripable (midi_tracks.front());