summaryrefslogtreecommitdiff
path: root/libs/ardour/auditioner.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-07-28 01:40:36 +0000
committerCarl Hetherington <carl@carlh.net>2010-07-28 01:40:36 +0000
commitc2cf3c5bfd652db87b92b241676981a44daf3091 (patch)
treef30a6e6a34ecb53f73da09f909de26739565f558 /libs/ardour/auditioner.cc
parent922488427a09fdfd4f4685bb114bdc992680a39f (diff)
Trim get_nth_physical port methods.
git-svn-id: svn://localhost/ardour2/branches/3.0@7518 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/auditioner.cc')
-rw-r--r--libs/ardour/auditioner.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/libs/ardour/auditioner.cc b/libs/ardour/auditioner.cc
index 45a836582d..868c8d4334 100644
--- a/libs/ardour/auditioner.cc
+++ b/libs/ardour/auditioner.cc
@@ -59,12 +59,17 @@ Auditioner::init ()
string left = _session.config.get_auditioner_output_left();
string right = _session.config.get_auditioner_output_right();
+ vector<string> outputs;
+ _session.engine().get_physical_outputs (DataType::AUDIO, outputs);
+
if (left == "default") {
if (_session.monitor_out()) {
left = _session.monitor_out()->input()->audio (0)->name();
via_monitor = true;
} else {
- left = _session.engine().get_nth_physical_output (DataType::AUDIO, 0);
+ if (outputs.size() > 0) {
+ left = outputs[0];
+ }
}
}
@@ -73,7 +78,9 @@ Auditioner::init ()
right = _session.monitor_out()->input()->audio (1)->name();
via_monitor = true;
} else {
- right = _session.engine().get_nth_physical_output (DataType::AUDIO, 1);
+ if (outputs.size() > 1) {
+ right = outputs[1];
+ }
}
}
@@ -231,8 +238,12 @@ Auditioner::output_changed (IOChange change, void* /*src*/)
if (change & ConnectionsChanged) {
string phys;
vector<string> connections;
+ vector<string> outputs;
+ _session.engine().get_physical_outputs (DataType::AUDIO, outputs);
if (_output->nth (0)->get_connections (connections)) {
- phys = _session.engine().get_nth_physical_output (DataType::AUDIO, 0);
+ if (outputs.size() > 0) {
+ phys = outputs[0];
+ }
if (phys != connections[0]) {
_session.config.set_auditioner_output_left (connections[0]);
} else {
@@ -245,7 +256,9 @@ Auditioner::output_changed (IOChange change, void* /*src*/)
connections.clear ();
if (_output->nth (1)->get_connections (connections)) {
- phys = _session.engine().get_nth_physical_output (DataType::AUDIO, 1);
+ if (outputs.size() > 1) {
+ phys = outputs[1];
+ }
if (phys != connections[0]) {
_session.config.set_auditioner_output_right (connections[0]);
} else {