Optimize plugin-processing for non-automated params
[ardour.git] / libs / ardour / ardour / filter.h
index b659873bdb01927d5c7a16f694aef777075913e4..e80d1fcfd5168c911879aa81573703e8766026ec 100644 (file)
@@ -1,6 +1,6 @@
 /*
-    Copyright (C) 2007 Paul Davis 
-    Author: Dave Robillard
+    Copyright (C) 2007 Paul Davis
+    Author: David Robillard
 
     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
 #define __ardour_filter_h__
 
 #include <vector>
-#include <ardour/region.h>
+
+#include "ardour/libardour_visibility.h"
+#include "ardour/types.h"
 
 namespace ARDOUR {
 
 class Region;
 class Session;
+class Progress;
 
-class Filter {
+class LIBARDOUR_API Filter {
 
   public:
        virtual ~Filter() {}
 
-       virtual int run (boost::shared_ptr<ARDOUR::Region>) = 0;
+       virtual int run (boost::shared_ptr<ARDOUR::Region>, Progress* progress = 0) = 0;
        std::vector<boost::shared_ptr<ARDOUR::Region> > results;
 
   protected:
        Filter (ARDOUR::Session& s) : session(s) {}
 
-       int make_new_sources (boost::shared_ptr<ARDOUR::Region>, ARDOUR::SourceList&, std::string suffix = "");
+       int make_new_sources (boost::shared_ptr<ARDOUR::Region>, ARDOUR::SourceList&, std::string suffix = "", bool use_session_sample_rate = true);
        int finish (boost::shared_ptr<ARDOUR::Region>, ARDOUR::SourceList&, std::string region_name = "");
-       
+
        ARDOUR::Session& session;
 };