Optimize plugin-processing for non-automated params
[ardour.git] / libs / ardour / ardour / quantize.h
index 8db7e4185f2b80f2896a5d9075b98d5cf2c87031..7255d4ce4f7d78a3478fca103193de32bca67d7b 100644 (file)
@@ -1,6 +1,6 @@
 /*
-    Copyright (C) 2007-2009 Paul Davis 
-       Author: Dave Robillard
+    Copyright (C) 2007-2009 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
 #ifndef __ardour_quantize_h__
 #define __ardour_quantize_h__
 
+#include "ardour/libardour_visibility.h"
 #include "ardour/types.h"
 #include "ardour/midi_operator.h"
 
 namespace ARDOUR {
 
-class Session;
-
-class Quantize : public MidiOperator {
+class LIBARDOUR_API Quantize : public MidiOperator {
 public:
-        Quantize (ARDOUR::Session&, QuantizeType type, 
-                  bool snap_start, bool snap_end,
-                  double start_grid, double end_grid, 
-                  float strength, float swing, float threshold);
-        ~Quantize ();
+       Quantize (bool snap_start, bool snap_end,
+                       double start_grid, double end_grid,
+                       float strength, float swing, float threshold);
+       ~Quantize ();
 
-        Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>, std::vector<Evoral::Sequence<Evoral::MusicalTime>::Notes>&);
-        std::string name() const { return std::string ("quantize"); }
+       Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>,
+                            Temporal::Beats position,
+                            std::vector<Evoral::Sequence<Temporal::Beats>::Notes>&);
+       std::string name() const { return std::string ("quantize"); }
 
 private:
-        ARDOUR::Session& session;
-        bool   _snap_start;
-        bool   _snap_end;
-        double _start_grid;
-        double _end_grid;
-        float  _strength;
-        float  _swing;
-        float  _threshold;
+       bool   _snap_start;
+       bool   _snap_end;
+       double _start_grid;
+       double _end_grid;
+       float  _strength;
+       float  _swing;
+       float  _threshold;
 };
 
 } /* namespace */