summaryrefslogtreecommitdiff
path: root/libs/ardour/jack_audiobackend.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/jack_audiobackend.cc')
-rw-r--r--libs/ardour/jack_audiobackend.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/libs/ardour/jack_audiobackend.cc b/libs/ardour/jack_audiobackend.cc
index 04ee94a80c..420f104077 100644
--- a/libs/ardour/jack_audiobackend.cc
+++ b/libs/ardour/jack_audiobackend.cc
@@ -58,6 +58,10 @@ JACKAudioBackend::JACKAudioBackend (AudioEngine& e, boost::shared_ptr<JackConnec
{
}
+JACKAudioBackend::~JACKAudioBackend()
+{
+}
+
string
JACKAudioBackend::name() const
{
@@ -825,3 +829,26 @@ JACKAudioBackend::update_latencies ()
GET_PRIVATE_JACK_POINTER (_priv_jack);
jack_recompute_total_latencies (_priv_jack);
}
+
+ChanCount
+JACKAudioBackend::n_physical (unsigned long flags) const
+{
+ ChanCount c;
+
+ GET_PRIVATE_JACK_POINTER_RET (_priv_jack, c);
+
+ const char ** ports = jack_get_ports (_priv_jack, NULL, NULL, JackPortIsPhysical | flags);
+
+ if (ports) {
+ for (uint32_t i = 0; ports[i]; ++i) {
+ if (!strstr (ports[i], "Midi-Through")) {
+ DataType t (jack_port_type (jack_port_by_name (_priv_jack, ports[i])));
+ c.set (t, c.get (t) + 1);
+ }
+ }
+
+ jack_free (ports);
+ }
+
+ return c;
+}