GUI follow up for new-MIDI-track API change
authorRobin Gareus <robin@gareus.org>
Fri, 20 Jan 2017 20:47:09 +0000 (21:47 +0100)
committerRobin Gareus <robin@gareus.org>
Fri, 20 Jan 2017 20:47:09 +0000 (21:47 +0100)
gtk2_ardour/ardour_ui.cc
gtk2_ardour/editor_audio_import.cc
gtk2_ardour/editor_canvas_events.cc
gtk2_ardour/editor_drag.cc

index 7f5ceeef1d55cc60a9f4051cea1bfc7bf600d850..3c7f1afde2981b75dfe938aa15ee4eda4af46174 100644 (file)
@@ -1940,15 +1940,18 @@ ARDOUR_UI::session_add_mixed_track (
                Plugin::PresetRecord* pset,
                ARDOUR::PresentationInfo::order_t order)
 {
-       list<boost::shared_ptr<MidiTrack> > 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<boost::shared_ptr<MidiTrack> > 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<boost::shared_ptr<MidiTrack> >::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
index c83579632589bbbd6784ece3f0c0d0b93da341d2..1bbcf80b6f3e8441467457cad8e8b1f022e09aa0 100644 (file)
@@ -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> region,
                                list<boost::shared_ptr<MidiTrack> > 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> region,
                                if (mt.empty()) {
                                        return -1;
                                }
-                               if (Config->get_strict_io ()) {
-                                       for (list<boost::shared_ptr<MidiTrack> >::iterator i = mt.begin(); i != mt.end(); ++i) {
-                                               (*i)->set_strict_io (true);
-                                       }
-                               }
 
                                // TODO set strict_io from preferences
                                existing_track = mt.front();
index 65a448be48399c00ef4e63d1ce0ede836603cb6f..569f58c9527bb00b8e33a7fe46008968895d08d6 100644 (file)
@@ -1295,7 +1295,9 @@ Editor::drop_regions (const Glib::RefPtr<Gdk::DragContext>& /*context*/,
                        } else if (boost::dynamic_pointer_cast<MidiRegion> (region)) {
                                ChanCount one_midi_port (DataType::MIDI, 1);
                                list<boost::shared_ptr<MidiTrack> > midi_tracks;
-                               midi_tracks = session()->new_midi_track (one_midi_port, one_midi_port, boost::shared_ptr<ARDOUR::PluginInfo>(),
+                               midi_tracks = session()->new_midi_track (one_midi_port, one_midi_port,
+                                                                        Config->get_strict_io () || Profile->get_mixbus (),
+                                                                        boost::shared_ptr<ARDOUR::PluginInfo>(),
                                                                         (ARDOUR::Plugin::PresetRecord*) 0,
                                                                         (ARDOUR::RouteGroup*) 0, 1, region->name(), PresentationInfo::max_order);
                                rtav = dynamic_cast<RouteTimeAxisView*> (axis_view_from_stripable (midi_tracks.front()));
index 62437c6fea818de8ef90b4e6514465d8082e7870..91a1b523489d20c65fe2f582da143d9b63bf0202 100644 (file)
@@ -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> region,
                } else {
                        ChanCount one_midi_port (DataType::MIDI, 1);
                        list<boost::shared_ptr<MidiTrack> > midi_tracks;
-                       midi_tracks = _editor->session()->new_midi_track (one_midi_port, one_midi_port, boost::shared_ptr<ARDOUR::PluginInfo>(),
+                       midi_tracks = _editor->session()->new_midi_track (one_midi_port, one_midi_port,
+                                                                         Config->get_strict_io () || Profile->get_mixbus (),
+                                                                         boost::shared_ptr<ARDOUR::PluginInfo>(),
                                                                          (ARDOUR::Plugin::PresetRecord*) 0,
                                                                          (ARDOUR::RouteGroup*) 0, 1, region->name(), PresentationInfo::max_order);
                        tav = _editor->axis_view_from_stripable (midi_tracks.front());