summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/buffer_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour/buffer_manager.h')
-rw-r--r--libs/ardour/ardour/buffer_manager.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/libs/ardour/ardour/buffer_manager.h b/libs/ardour/ardour/buffer_manager.h
new file mode 100644
index 0000000000..4da8d0637f
--- /dev/null
+++ b/libs/ardour/ardour/buffer_manager.h
@@ -0,0 +1,31 @@
+#ifndef __libardour_buffer_manager__
+#define __libardour_buffer_manager__
+
+#include <stdint.h>
+
+#include "pbd/ringbufferNPT.h"
+
+#include "ardour/chan_count.h"
+
+namespace ARDOUR {
+
+class ThreadBuffers;
+
+class BufferManager
+{
+ public:
+ static void init (uint32_t);
+
+ static ThreadBuffers* get_thread_buffers ();
+ static void put_thread_buffers (ThreadBuffers*);
+
+ static void ensure_buffers (ChanCount howmany = ChanCount::ZERO);
+
+ private:
+ typedef RingBufferNPT<ThreadBuffers*> ThreadBufferFIFO;
+ static ThreadBufferFIFO* thread_buffers;
+};
+
+}
+
+#endif /* __libardour_buffer_manager__ */