summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-01-31 18:51:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-01-31 18:51:33 +0000
commitdf1c4dddc39d1cc5132501afb94bbabb9935cc32 (patch)
tree41ea78314c31f174d0da099c36f76b4c553a2287 /libs
parent1ab5012af74371379a5a35c3c43ecf05ed91645e (diff)
remove ardour_message.{cc,h}; JACK latency menu now shows correct settings at startup and changes are handled correctly; export range markers doesn't start with /path/to/export.wav, just /path/to; hopefully improve ruler scrolling a little; fixed up short_path() implementation ; fix for export unsetting JACK freewheel too soon ; use ISO 8061 timestamps for snapshot default names
git-svn-id: svn://localhost/ardour2/trunk@1400 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/audioengine.h2
-rw-r--r--libs/ardour/audioengine.cc24
2 files changed, 24 insertions, 2 deletions
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index 83d075a311..71639b3dc3 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -53,6 +53,8 @@ class AudioEngine : public sigc::trackable
jack_client_t* jack() const { return _jack; }
bool connected() const { return _jack != 0; }
+ bool is_realtime () const;
+
std::string client_name() const { return jack_client_name; }
int reconnect_to_jack ();
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index ab08423c31..35a47c927b 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -24,6 +24,7 @@
#include <glibmm/timer.h>
#include <pbd/pthread_utils.h>
+#include <pbd/stacktrace.h>
#include <ardour/audioengine.h>
#include <ardour/buffer.h>
@@ -292,6 +293,7 @@ AudioEngine::process_callback (nframes_t nframes)
if (_freewheeling) {
if (Freewheel (nframes)) {
+ cerr << "Freewheeling returned non-zero!\n";
_freewheeling = false;
jack_set_freewheel (_jack, false);
}
@@ -963,6 +965,10 @@ AudioEngine::freewheel (bool onoff)
_freewheel_thread_registered = false;
}
+ if (!onoff) {
+ stacktrace (cout);
+ }
+
return jack_set_freewheel (_jack, onoff);
} else {
@@ -1184,8 +1190,13 @@ int
AudioEngine::request_buffer_size (nframes_t nframes)
{
if (_jack) {
- int ret = jack_set_buffer_size (_jack, nframes);
- return ret;
+
+ if (nframes == jack_get_buffer_size (_jack)) {
+ return 0;
+ }
+
+ return jack_set_buffer_size (_jack, nframes);
+
} else {
return -1;
}
@@ -1236,3 +1247,12 @@ AudioEngine::make_port_name_non_relative (string portname)
return str;
}
+bool
+AudioEngine::is_realtime () const
+{
+ if (_jack) {
+ return jack_is_realtime (_jack);
+ } else {
+ return false;
+ }
+}