move ARDOUR::Configuration and ARDOUR::ConfigVariable into libpbd
[ardour.git] / libs / ardour / ardour / butler.h
index 81159f7d3c65b7b1980e760e1982f8da18a5e8f9..949668dab3d1f4d82c991861cf92511d1384d548 100644 (file)
 #ifndef __ardour_butler_h__
 #define __ardour_butler_h__
 
+#include <pthread.h>
+
 #include <glibmm/threads.h>
 
-#ifdef WIN32
+#ifdef PLATFORM_WINDOWS
 #include "pbd/glib_semaphore.h"
 #endif
 
 #include "pbd/ringbuffer.h"
 #include "pbd/pool.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/session_handle.h"
 
@@ -42,7 +45,7 @@ namespace ARDOUR {
  *  are empty they are deleted.
  */
 
-class Butler : public SessionHandleRef
+class LIBARDOUR_API Butler : public SessionHandleRef
 {
   public:
        Butler (Session& session);
@@ -73,6 +76,7 @@ class Butler : public SessionHandleRef
        };
 
        pthread_t    thread;
+       bool         have_thread;
        Glib::Threads::Mutex  request_lock;
         Glib::Threads::Cond   paused;
        bool         should_run;
@@ -82,7 +86,7 @@ class Butler : public SessionHandleRef
        uint32_t     midi_dstream_buffer_size;
        RingBuffer<CrossThreadPool*> pool_trash;
 
-#ifdef WIN32
+#ifdef PLATFORM_WINDOWS
        PBD::atomic_counter m_request_state;
        PBD::GlibSemaphore   m_request_sem;
 #else
@@ -93,7 +97,7 @@ private:
        void empty_pool_trash ();
        void config_changed (std::string);
 
-#ifndef WIN32
+#ifndef PLATFORM_WINDOWS
        int setup_request_pipe ();
 #endif