diff options
author | Carl Hetherington <carl@carlh.net> | 2009-02-02 22:17:06 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2009-02-02 22:17:06 +0000 |
commit | 54afc94e62b6397286d545744cea796f93f4b5f9 (patch) | |
tree | 589c5eedfb63e96da410801e1f8cc3d3d4c06cd1 /libs/ardour/session.cc | |
parent | 633629b2b1590b687a79990fe1fb0df35301e709 (diff) |
Re-enable creation of stereo bundles for system IO, so that the mixer strip
connection menus for stereo tracks are populated again.
Also enable disconnection via these menus.
git-svn-id: svn://localhost/ardour2/branches/3.0@4481 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session.cc')
-rw-r--r-- | libs/ardour/session.cc | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 00fae6ac74..ed5ff668aa 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -595,7 +595,11 @@ Session::when_engine_running () BootMessage (_("Set up standard connections")); /* Create a set of Bundle objects that map - to the physical I/O currently available */ + to the physical I/O currently available. We create both + mono and stereo bundles, so that the common cases of mono + and stereo tracks get bundles to put in their mixer strip + in / out menus. There may be a nicer way of achieving that; + it doesn't really scale that well to higher channel counts */ for (uint32_t np = 0; np < n_physical_outputs; ++np) { char buf[32]; @@ -608,6 +612,20 @@ Session::when_engine_running () add_bundle (c); } + for (uint32_t np = 0; np < n_physical_outputs; np += 2) { + if (np + 1 < n_physical_outputs) { + char buf[32]; + snprintf (buf, sizeof(buf), _("out %" PRIu32 "+%" PRIu32), np + 1, np + 2); + shared_ptr<Bundle> c (new Bundle (buf, true)); + c->add_channel (_("L")); + c->set_port (0, _engine.get_nth_physical_output (DataType::AUDIO, np)); + c->add_channel (_("R")); + c->set_port (1, _engine.get_nth_physical_output (DataType::AUDIO, np + 1)); + + add_bundle (c); + } + } + for (uint32_t np = 0; np < n_physical_inputs; ++np) { char buf[32]; snprintf (buf, sizeof (buf), _("in %" PRIu32), np+1); @@ -619,6 +637,21 @@ Session::when_engine_running () add_bundle (c); } + for (uint32_t np = 0; np < n_physical_inputs; np += 2) { + if (np + 1 < n_physical_inputs) { + char buf[32]; + snprintf (buf, sizeof(buf), _("in %" PRIu32 "+%" PRIu32), np + 1, np + 2); + + shared_ptr<Bundle> c (new Bundle (buf, false)); + c->add_channel (_("L")); + c->set_port (0, _engine.get_nth_physical_input (DataType::AUDIO, np)); + c->add_channel (_("R")); + c->set_port (1, _engine.get_nth_physical_input (DataType::AUDIO, np + 1)); + + add_bundle (c); + } + } + if (_master_out) { /* create master/control ports */ |