Remove C++11'ism
[ardour.git] / libs / ardour / ardour / process_thread.h
index 399cd506a330c099b3c8afdf836a7e64c3e37785..31f91f44f4a9d19dfb5c0b331ea440cee230e8da 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012 Paul Davis 
+    Copyright (C) 2012 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -14,7 +14,6 @@
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
 */
 
 #ifndef __libardour_process_thread__
@@ -23,6 +22,7 @@
 #include <glibmm/threads.h>
 
 #include "ardour/chan_count.h"
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 
 namespace ARDOUR {
@@ -30,7 +30,7 @@ namespace ARDOUR {
 class ThreadBuffers;
 class BufferSet;
 
-class ProcessThread
+class LIBARDOUR_API ProcessThread
 {
 public:
        ProcessThread ();
@@ -41,22 +41,24 @@ public:
        void get_buffers ();
        void drop_buffers ();
 
-       /* these MUST be called by a process thread's thread, nothing else
-        */
+       /* these MUST be called by a process thread's thread, nothing else */
 
        static BufferSet& get_silent_buffers (ChanCount count = ChanCount::ZERO);
-       static BufferSet& get_scratch_buffers (ChanCount count = ChanCount::ZERO);
+       static BufferSet& get_scratch_buffers (ChanCount count = ChanCount::ZERO, bool silence = false);
+       static BufferSet& get_noinplace_buffers (ChanCount count = ChanCount::ZERO);
        static BufferSet& get_route_buffers (ChanCount count = ChanCount::ZERO, bool silence = false);
        static BufferSet& get_mix_buffers (ChanCount count = ChanCount::ZERO);
        static gain_t* gain_automation_buffer ();
+       static gain_t* trim_automation_buffer ();
        static gain_t* send_gain_automation_buffer ();
+       static gain_t* scratch_automation_buffer ();
        static pan_t** pan_automation_buffer ();
 
 protected:
        void session_going_away ();
 
 private:
-    static Glib::Threads::Private<ThreadBuffers> _private_thread_buffers;
+       static Glib::Threads::Private<ThreadBuffers> _private_thread_buffers;
 };
 
 } // namespace