diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-10-14 14:24:24 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-10-14 14:24:24 +0000 |
commit | 20862e50f091ef3540800c6b7159659e00e6932d (patch) | |
tree | 40dadb9705e667806d3dfa6f191c873fe24de9e1 /libs | |
parent | b092902d8aa87adc461731235b405bc8bc46fa7c (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.cc | 33 |
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; } |