diff --git a/src/track/bpm.h b/src/track/bpm.h index bef2ad6826a3..1b05c099f2a4 100644 --- a/src/track/bpm.h +++ b/src/track/bpm.h @@ -152,32 +152,33 @@ inline Bpm operator/(Bpm bpm, double divisor) { return Bpm(bpm.getValue() / divisor); } +inline bool operator==(Bpm bpm1, Bpm bpm2) { + if (!bpm1.hasValue() && !bpm2.hasValue()) { + return true; + } + return bpm1.hasValue() && bpm2.hasValue() && bpm1.getValue() == bpm2.getValue(); +} + +inline bool operator!=(Bpm bpm1, Bpm bpm2) { + return !(bpm1 == bpm2); +} + inline bool operator<(Bpm bpm1, Bpm bpm2) { return bpm1.getValue() < bpm2.getValue(); } inline bool operator<=(Bpm bpm1, Bpm bpm2) { - return (!bpm1.hasValue() && !bpm2.hasValue()) || bpm1.getValue() <= bpm2.getValue(); + return (bpm1 == bpm2) || bpm1 < bpm2; } inline bool operator>(Bpm bpm1, Bpm bpm2) { - return bpm1.getValue() > bpm2.getValue(); + return bpm2 < bpm1; } inline bool operator>=(Bpm bpm1, Bpm bpm2) { - return (!bpm1.hasValue() && !bpm2.hasValue()) || bpm1.getValue() >= bpm2.getValue(); + return bpm2 <= bpm1; } -inline bool operator==(Bpm bpm1, Bpm bpm2) { - if (!bpm1.hasValue() && !bpm2.hasValue()) { - return true; - } - return bpm1.hasValue() && bpm2.hasValue() && bpm1.getValue() == bpm2.getValue(); -} - -inline bool operator!=(Bpm bpm1, Bpm bpm2) { - return !(bpm1 == bpm2); -} inline QDebug operator<<(QDebug dbg, Bpm arg) { if (arg.hasValue()) {