fix definition of Temporal::Beats::max()
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 12 Feb 2018 12:04:47 +0000 (07:04 -0500)
committerBen Loftis <ben@harrisonconsoles.com>
Mon, 12 Feb 2018 17:44:37 +0000 (11:44 -0600)
Ticks can exceed PPQN, but if beats are already INT32_MAX, ::normalize() will not work correctly

libs/temporal/temporal/beats.h

index 3c92ac7561fef08cf7083dc9fd4982b30df2555b..e1790668d5d62a23147a54c1d9fbc1f1c966a797 100644 (file)
@@ -308,8 +308,7 @@ namespace std {
        template<>
        struct numeric_limits<Temporal::Beats> {
                static Temporal::Beats lowest() {
-                       return Temporal::Beats(std::numeric_limits<int32_t>::min(),
-                                            std::numeric_limits<int32_t>::min());
+                       return Temporal::Beats(std::numeric_limits<int32_t>::min(), std::numeric_limits<int32_t>::min());
                }
 
                /* We don't define min() since this has different behaviour for integral and floating point types,
@@ -317,8 +316,7 @@ namespace std {
                   than a confusing one. */
 
                static Temporal::Beats max() {
-                       return Temporal::Beats(std::numeric_limits<int32_t>::max(),
-                                            std::numeric_limits<int32_t>::max());
+                       return Temporal::Beats(std::numeric_limits<int32_t>::max(), Temporal::Beats::PPQN-1);
                }
        };
 }