Make send automation work (#4734).
[ardour.git] / libs / ardour / ardour / thread_buffers.h
1 #ifndef __libardour_thread_buffers__
2 #define __libardour_thread_buffers__
3
4 #include <glibmm/thread.h>
5
6 #include "ardour/chan_count.h"
7 #include "ardour/types.h"
8
9 namespace ARDOUR {
10
11 class BufferSet;
12
13 class ThreadBuffers {
14 public:
15         ThreadBuffers ();
16         ~ThreadBuffers ();
17
18         void ensure_buffers (ChanCount howmany = ChanCount::ZERO);
19
20         BufferSet* silent_buffers;
21         BufferSet* scratch_buffers;
22         BufferSet* mix_buffers;
23         gain_t*    gain_automation_buffer;
24         gain_t*    send_gain_automation_buffer;
25         pan_t**    pan_automation_buffer;
26         uint32_t   npan_buffers;
27
28 private:
29         void allocate_pan_automation_buffers (framecnt_t nframes, uint32_t howmany, bool force);
30 };
31
32 } // namespace
33
34 #endif /* __libardour_thread_buffers__ */