summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-10-14 14:24:24 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-10-14 14:24:24 +0000
commit20862e50f091ef3540800c6b7159659e00e6932d (patch)
tree40dadb9705e667806d3dfa6f191c873fe24de9e1 /libs
parentb092902d8aa87adc461731235b405bc8bc46fa7c (diff)
robustify AudioEngine::get_nth_physical_audio() and cleanup related functions just a little
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@5772 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/audioengine.cc33
1 files changed, 16 insertions, 17 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index f151815ba6..ae8d7bf5f5 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -885,10 +885,9 @@ AudioEngine::n_physical_audio_inputs () const
return 0;
}
- if (ports) {
- for (i = 0; ports[i]; ++i);
- free (ports);
- }
+ for (i = 0; ports[i]; ++i);
+ free (ports);
+
return i;
}
@@ -903,12 +902,11 @@ AudioEngine::get_physical_audio_inputs (vector<string>& ins)
return;
}
- if (ports) {
- for (i = 0; ports[i]; ++i) {
- ins.push_back (ports[i]);
- }
- free (ports);
+ for (i = 0; ports[i]; ++i) {
+ ins.push_back (ports[i]);
}
+
+ free (ports);
}
void
@@ -922,12 +920,11 @@ AudioEngine::get_physical_audio_outputs (vector<string>& outs)
return;
}
- if (ports) {
- for (i = 0; ports[i]; ++i) {
- outs.push_back (ports[i]);
- }
- free (ports);
+ for (i = 0; ports[i]; ++i) {
+ outs.push_back (ports[i]);
}
+
+ free (ports);
}
string
@@ -938,15 +935,17 @@ AudioEngine::get_nth_physical_audio (uint32_t n, int flag)
uint32_t i;
string ret;
- ports = jack_get_ports (_priv_jack, NULL, JACK_DEFAULT_AUDIO_TYPE, JackPortIsPhysical|flag);
-
+ if ((ports = jack_get_ports (_priv_jack, NULL, JACK_DEFAULT_AUDIO_TYPE, JackPortIsPhysical|flag)) == 0) {
+ return ret;
+ }
+
for (i = 0; i < n && ports[i]; ++i);
if (ports[i]) {
ret = ports[i];
}
- free ((char *) ports);
+ free (ports);
return ret;
}