diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-06-22 01:45:16 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-06-22 01:45:16 +0000 |
commit | d70429a066dfd33cca0b6f64be7014649a9910ca (patch) | |
tree | b5a1df98535bd30d2485778c699f6d7dd758b649 /libs/ardour | |
parent | 774e55bcc03139089105a20809d9557d38452486 (diff) |
provide an easier way to add mixed (audio+MIDI) tracks to a session, to facilitate the use of plugins like Reaktor which accept both audio & MIDI data. there's probably still a paradigm shift waiting to happen here but its likely post-3.0.
git-svn-id: svn://localhost/ardour2/branches/3.0@12816 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/session.h | 1 | ||||
-rw-r--r-- | libs/ardour/session.cc | 13 |
2 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index e75c7aa206..204474d611 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -454,6 +454,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi ); std::list<boost::shared_ptr<MidiTrack> > new_midi_track ( + const ChanCount& input, const ChanCount& output, boost::shared_ptr<PluginInfo> instrument = boost::shared_ptr<PluginInfo>(), TrackMode mode = Normal, RouteGroup* route_group = 0, uint32_t how_many = 1, std::string name_template = "" diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 5758130092..be84ed4e53 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -1595,7 +1595,8 @@ Session::count_existing_track_channels (ChanCount& in, ChanCount& out) * @param instrument plugin info for the instrument to insert pre-fader, if any */ list<boost::shared_ptr<MidiTrack> > -Session::new_midi_track (boost::shared_ptr<PluginInfo> instrument, TrackMode mode, RouteGroup* route_group, uint32_t how_many, string name_template) +Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost::shared_ptr<PluginInfo> instrument, + TrackMode mode, RouteGroup* route_group, uint32_t how_many, string name_template) { char track_name[32]; uint32_t track_id = 0; @@ -1604,6 +1605,8 @@ Session::new_midi_track (boost::shared_ptr<PluginInfo> instrument, TrackMode mod list<boost::shared_ptr<MidiTrack> > ret; uint32_t control_id; + cerr << "Adding MIDI track with in = " << input << " out = " << output << endl; + control_id = next_control_id (); bool const use_number = (how_many != 1) || name_template.empty () || name_template == _("MIDI"); @@ -1630,13 +1633,13 @@ Session::new_midi_track (boost::shared_ptr<PluginInfo> instrument, TrackMode mod #endif { Glib::Mutex::Lock lm (AudioEngine::instance()->process_lock ()); - if (track->input()->ensure_io (ChanCount(DataType::MIDI, 1), false, this)) { - error << "cannot configure 1 in/1 out configuration for new midi track" << endmsg; + if (track->input()->ensure_io (input, false, this)) { + error << "cannot configure " << input << " out configuration for new midi track" << endmsg; goto failed; } - if (track->output()->ensure_io (ChanCount(DataType::MIDI, 1), false, this)) { - error << "cannot configure 1 in/1 out configuration for new midi track" << endmsg; + if (track->output()->ensure_io (output, false, this)) { + error << "cannot configure " << output << " out configuration for new midi track" << endmsg; goto failed; } } |