summaryrefslogtreecommitdiffstats
path: root/src/libs/engine/JackAudioDriver.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-01-06 19:39:56 +0000
committerDavid Robillard <d@drobilla.net>2007-01-06 19:39:56 +0000
commit69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f (patch)
tree68fd1ea83beedaaaa97846ed09240a3585b2d931 /src/libs/engine/JackAudioDriver.h
parent2122a857662203936a04a39df7d0e1ad1db82853 (diff)
downloadingen-69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f.tar.gz
ingen-69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f.tar.bz2
ingen-69c5e7fe16b7d9d08db81a6d5e2762f0be3b081f.zip
Added ability to get Raul Thread for current calling context.
Strong threading assertions. Flowcanvas port removal fixes. Patch port destruction. Code cleanups, bug fixes. git-svn-id: http://svn.drobilla.net/lad/ingen@234 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/JackAudioDriver.h')
-rw-r--r--src/libs/engine/JackAudioDriver.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libs/engine/JackAudioDriver.h b/src/libs/engine/JackAudioDriver.h
index 15651c26..53f48035 100644
--- a/src/libs/engine/JackAudioDriver.h
+++ b/src/libs/engine/JackAudioDriver.h
@@ -19,6 +19,7 @@
#include <jack/jack.h>
#include <jack/transport.h>
+#include "raul/Thread.h"
#include "List.h"
#include "AudioDriver.h"
#include "Buffer.h"
@@ -111,18 +112,21 @@ private:
// These are the static versions of the callbacks, they call
// the non-static ones below
- inline static int process_cb(jack_nframes_t nframes, void* const jack_driver);
+ inline static void thread_init_cb(void* const jack_driver);
inline static void shutdown_cb(void* const jack_driver);
+ inline static int process_cb(jack_nframes_t nframes, void* const jack_driver);
inline static int buffer_size_cb(jack_nframes_t nframes, void* const jack_driver);
inline static int sample_rate_cb(jack_nframes_t nframes, void* const jack_driver);
// Non static callbacks
- int _process_cb(jack_nframes_t nframes);
+ void _thread_init_cb();
void _shutdown_cb();
+ int _process_cb(jack_nframes_t nframes);
int _buffer_size_cb(jack_nframes_t nframes);
int _sample_rate_cb(jack_nframes_t nframes);
Engine& _engine;
+ Thread* _jack_thread;
jack_client_t* _client;
jack_nframes_t _buffer_size;
jack_nframes_t _sample_rate;
@@ -143,6 +147,12 @@ inline int JackAudioDriver::process_cb(jack_nframes_t nframes, void* jack_driver
return ((JackAudioDriver*)jack_driver)->_process_cb(nframes);
}
+inline void JackAudioDriver::thread_init_cb(void* jack_driver)
+{
+ assert(jack_driver);
+ return ((JackAudioDriver*)jack_driver)->_thread_init_cb();
+}
+
inline void JackAudioDriver::shutdown_cb(void* jack_driver)
{
assert(jack_driver);