From 9f3b11444b02e150f9e1cdcb40497891ebbd2c09 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 28 Sep 2008 22:56:43 +0000 Subject: [PATCH] fix up botched changes from earlier /* blush */ git-svn-id: svn://localhost/ardour2/branches/3.0@3824 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/io.cc | 2 +- libs/ardour/session.cc | 37 ++++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc index 40bf86b5d9..a06d4118cb 100644 --- a/libs/ardour/io.cc +++ b/libs/ardour/io.cc @@ -324,7 +324,7 @@ IO::collect_input (BufferSet& outs, nframes_t nframes, nframes_t offset) BufferSet::iterator o = outs.begin(*t); for (PortSet::iterator i = _inputs.begin(*t); i != _inputs.end(*t); ++i, ++o) { - (*i)->prepare_inputs (nframes, offset); + (*i).cycle_start (nframes, offset); o->read_from(i->get_buffer(), nframes, offset); } diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index a9f37b6d31..ed5aea1c37 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1533,7 +1533,7 @@ Session::new_midi_track (TrackMode mode, uint32_t how_many) _engine.get_physical_outputs (DataType::MIDI, physoutputs); _engine.get_physical_inputs (DataType::MIDI, physinputs); - control_id = ntracks() + nbusses(); + // control_id = ntracks() + nbusses(); while (how_many) { @@ -1690,6 +1690,7 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod _engine.get_physical_outputs (DataType::AUDIO, physoutputs); _engine.get_physical_inputs (DataType::AUDIO, physinputs); + control_id = ntracks() + nbusses() + 1; while (how_many) { @@ -1724,7 +1725,9 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod goto failed; } - if (nphysical_in) { + if (!physinputs.empty()) { + uint32_t nphysical_in = physinputs.size(); + for (uint32_t x = 0; x < track->n_inputs().n_audio() && x < nphysical_in; ++x) { port = ""; @@ -1739,20 +1742,24 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod } } - for (uint32_t x = 0; x < track->n_outputs().n_audio(); ++x) { - - port = ""; + if (!physoutputs.empty()) { + uint32_t nphysical_out = physoutputs.size(); - if (nphysical_out && (Config->get_output_auto_connect() & AutoConnectPhysical)) { - port = physoutputs[(channels_used+x)%nphysical_out]; - } else if (Config->get_output_auto_connect() & AutoConnectMaster) { - if (_master_out) { - port = _master_out->input (x%_master_out->n_inputs().n_audio())->name(); + for (uint32_t x = 0; x < track->n_outputs().n_audio(); ++x) { + + port = ""; + + if (Config->get_output_auto_connect() & AutoConnectPhysical) { + port = physoutputs[(channels_used+x)%nphysical_out]; + } else if (Config->get_output_auto_connect() & AutoConnectMaster) { + if (_master_out) { + port = _master_out->input (x%_master_out->n_inputs().n_audio())->name(); + } + } + + if (port.length() && track->connect_output (track->output (x), port, this)) { + break; } - } - - if (port.length() && track->connect_output (track->output (x), port, this)) { - break; } } @@ -1852,7 +1859,7 @@ Session::new_audio_route (int input_channels, int output_channels, uint32_t how_ shared_ptr r = routes.reader (); for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { - if (boost::dynamic_pointer_cast(*i) == 0) { + if (boost::dynamic_pointer_cast(*i) == 0) { /* its a bus ? */ if (!(*i)->is_hidden() && (*i)->name() != _("master")) { bus_id++; -- 2.30.2