summaryrefslogtreecommitdiffstats
path: root/raul/Quantizer.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-02-09 18:23:57 +0000
committerDavid Robillard <d@drobilla.net>2008-02-09 18:23:57 +0000
commit81f335330c209359ef1d2b3bdedc5c19790d2eba (patch)
tree2262742e60b1360ecd66bf1f5be57e4df2b53de3 /raul/Quantizer.hpp
parent43dd122ffcdb6a0b40a56777245a870e411d439c (diff)
downloadraul-81f335330c209359ef1d2b3bdedc5c19790d2eba.tar.gz
raul-81f335330c209359ef1d2b3bdedc5c19790d2eba.tar.bz2
raul-81f335330c209359ef1d2b3bdedc5c19790d2eba.zip
Use Raul::TimeStamp (LV2 compatible typed 32:32 fixed timestamp) everywhere.
Fix initial size of Patchage messages window. Machina disabled for now (transitioning to generic timestamps). git-svn-id: http://svn.drobilla.net/lad/raul@1133 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'raul/Quantizer.hpp')
-rw-r--r--raul/Quantizer.hpp9
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);
}
};