summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-06-14 18:10:31 +0200
committerRobin Gareus <robin@gareus.org>2015-06-14 18:10:31 +0200
commit573ec69a9aa29b08d99cba56284660fcd080fb55 (patch)
treeeda24fd4bb261654d8f28944e7d02be56db6dc19
parentb86a8edcff801236792c066e2c2bfd237d30ca4b (diff)
probe buffersize if jackd is already running.
-rw-r--r--libs/backends/jack/jack_audiobackend.cc4
-rw-r--r--libs/backends/jack/jack_connection.cc4
-rw-r--r--libs/backends/jack/jack_connection.h5
3 files changed, 11 insertions, 2 deletions
diff --git a/libs/backends/jack/jack_audiobackend.cc b/libs/backends/jack/jack_audiobackend.cc
index dea2d2e9a3..d66055d6ee 100644
--- a/libs/backends/jack/jack_audiobackend.cc
+++ b/libs/backends/jack/jack_audiobackend.cc
@@ -362,7 +362,7 @@ JACKAudioBackend::sample_rate () const
if (available()) {
return _current_sample_rate;
} else {
- return 0;
+ return _jack_connection->probed_sample_rate ();
}
}
return _target_sample_rate;
@@ -375,7 +375,7 @@ JACKAudioBackend::buffer_size () const
if (available()) {
return _current_buffer_size;
} else {
- return 0;
+ return _jack_connection->probed_buffer_size ();
}
}
return _target_buffer_size;
diff --git a/libs/backends/jack/jack_connection.cc b/libs/backends/jack/jack_connection.cc
index f9824143ce..af938ad21b 100644
--- a/libs/backends/jack/jack_connection.cc
+++ b/libs/backends/jack/jack_connection.cc
@@ -56,6 +56,8 @@ JackConnection::JackConnection (const std::string& arg1, const std::string& arg2
: _jack (0)
, _client_name (arg1)
, session_uuid (arg2)
+ , _probed_buffer_size (0)
+ , _probed_sample_rate (0)
{
/* See if the server is already up
*/
@@ -77,6 +79,8 @@ JackConnection::JackConnection (const std::string& arg1, const std::string& arg2
jack_client_t* c = jack_client_open ("ardourprobe", JackNoStartServer, &status);
if (status == 0) {
+ _probed_buffer_size = jack_get_buffer_size(c);
+ _probed_sample_rate = jack_get_sample_rate(c);
jack_client_close (c);
_in_control = false;
} else {
diff --git a/libs/backends/jack/jack_connection.h b/libs/backends/jack/jack_connection.h
index a7462344dc..3b0ccb8d46 100644
--- a/libs/backends/jack/jack_connection.h
+++ b/libs/backends/jack/jack_connection.h
@@ -29,11 +29,16 @@ class JackConnection {
static bool in_control() { return _in_control; }
+ uint32_t probed_buffer_size () const { assert (!connected ()); return _probed_buffer_size; }
+ uint32_t probed_sample_rate () const { assert (!connected ()); return _probed_sample_rate; }
+
private:
jack_client_t* volatile _jack;
std::string _client_name;
std::string session_uuid;
static bool _in_control;
+ uint32_t _probed_buffer_size; // when not in control
+ uint32_t _probed_sample_rate; // when not in control
};
} // namespace