diff options
Diffstat (limited to 'raul/Quantizer.hpp')
-rw-r--r-- | raul/Quantizer.hpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/raul/Quantizer.hpp b/raul/Quantizer.hpp index 13a5cb1..0fe9640 100644 --- a/raul/Quantizer.hpp +++ b/raul/Quantizer.hpp @@ -19,14 +19,19 @@ #define RAUL_QUANTIZER_HPP #include <cmath> +#include <raul/TimeStamp.hpp> namespace Raul { class Quantizer { public: - inline static double quantize(double q, double value) { - return (q > 0) ? lrint(value / q) * q : value; + inline static TimeStamp quantize(TimeStamp q, TimeStamp t) { + assert(q.unit() == t.unit()); + // FIXME: Precision problem? Should probably stay in discrete domain + const double qd = q.to_double(); + const double td = t.to_double(); + return TimeStamp(t.unit(), (qd > 0) ? lrint(td / qd) * qd : td); } }; |