summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/butler.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/butler.h')
-rw-r--r--libs/ardour/ardour/butler.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/ardour/ardour/butler.h b/libs/ardour/ardour/butler.h
index 8799899004..81159f7d3c 100644
--- a/libs/ardour/ardour/butler.h
+++ b/libs/ardour/ardour/butler.h
@@ -22,11 +22,17 @@
#include <glibmm/threads.h>
+#ifdef WIN32
+#include "pbd/glib_semaphore.h"
+#endif
+
#include "pbd/ringbuffer.h"
#include "pbd/pool.h"
#include "ardour/types.h"
#include "ardour/session_handle.h"
+
+
namespace ARDOUR {
/**
@@ -71,17 +77,25 @@ class Butler : public SessionHandleRef
Glib::Threads::Cond paused;
bool should_run;
mutable gint should_do_transport_work;
- int request_pipe[2];
framecnt_t audio_dstream_capture_buffer_size;
framecnt_t audio_dstream_playback_buffer_size;
uint32_t midi_dstream_buffer_size;
RingBuffer<CrossThreadPool*> pool_trash;
+#ifdef WIN32
+ PBD::atomic_counter m_request_state;
+ PBD::GlibSemaphore m_request_sem;
+#else
+ int request_pipe[2];
+#endif
+
private:
void empty_pool_trash ();
void config_changed (std::string);
+#ifndef WIN32
int setup_request_pipe ();
+#endif
/**
* return true if there are requests to be processed