/*
- Copyright (C) 2007 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/filter.h>
+#include "ardour/libardour_visibility.h"
+#include "ardour/types.h"
+#include "ardour/midi_operator.h"
namespace ARDOUR {
-class Quantize : public Filter {
+class LIBARDOUR_API Quantize : public MidiOperator {
public:
- Quantize (ARDOUR::Session&, double q);
+ Quantize (bool snap_start, bool snap_end,
+ double start_grid, double end_grid,
+ float strength, float swing, float threshold);
~Quantize ();
- int run (boost::shared_ptr<ARDOUR::Region>);
+ Command* operator() (boost::shared_ptr<ARDOUR::MidiModel>,
+ Evoral::Beats position,
+ std::vector<Evoral::Sequence<Evoral::Beats>::Notes>&);
+ std::string name() const { return std::string ("quantize"); }
private:
- double _q;
+ bool _snap_start;
+ bool _snap_end;
+ double _start_grid;
+ double _end_grid;
+ float _strength;
+ float _swing;
+ float _threshold;
};
} /* namespace */