Update our MSVC project files to generate the most recent Ardour session file format...
[ardour.git] / libs / evoral / evoral / types.hpp
index 7259a5c0debce0995a9350cfa430814d6c0a46af..a5d4a8ca1e8f8e22a0771d6140d7a88ea2a0d088 100644 (file)
 #ifndef EVORAL_TYPES_HPP
 #define EVORAL_TYPES_HPP
 
+#include <float.h>
+#include <math.h>
 #include <stdint.h>
-#include <list>
-#include <cmath>
-#include <cfloat>
 
-#include "pbd/debug.h"
+#include <iostream>
+#include <limits>
+#include <list>
 
 #include "evoral/visibility.h"
+#include "pbd/debug.h"
 
 namespace Evoral {
 
@@ -35,54 +37,18 @@ namespace Evoral {
 */
 typedef int32_t event_id_t;
 
-/** Musical time: beats relative to some defined origin */
-typedef double MusicalTime;
-
-const MusicalTime MaxMusicalTime = DBL_MAX;
-const MusicalTime MinMusicalTime = DBL_MIN;
-
-static inline bool musical_time_equal (MusicalTime a, MusicalTime b) {
-       /* acceptable tolerance is 1 tick. Nice if there was no magic number here */
-       return fabs (a - b) <= (1.0/1920.0);
-}
-
-static inline bool musical_time_less_than (MusicalTime a, MusicalTime b) {
-       /* acceptable tolerance is 1 tick. Nice if there was no magic number here */
-       if (fabs (a - b) <= (1.0/1920.0)) {
-               return false; /* effectively identical */
-       } else {
-               return a < b;
-       }
-}
-
-static inline bool musical_time_greater_than (MusicalTime a, MusicalTime b) {
-       /* acceptable tolerance is 1 tick. Nice if there was no magic number here */
-       if (fabs (a - b) <= (1.0/1920.0)) {
-               return false; /* effectively identical */
-       } else {
-               return a > b;
-       }
-}
-
-static inline bool musical_time_greater_or_equal_to (MusicalTime a, MusicalTime b) {
-       /* acceptable tolerance is 1 tick. Nice if there was no magic number here */
-       if (fabs (a - b) <= (1.0/1920.0)) {
-               return true; /* effectively identical, note the "or_equal_to" */
-       } else {
-               return a >= b;
-       }
-}
-
 /** Type of an event (opaque, mapped by application) */
 typedef uint32_t EventType;
 
+class Beats;
+
 } // namespace Evoral
 
 namespace PBD {
        namespace DEBUG {
-               LIBEVORAL_API extern uint64_t Sequence;
-               LIBEVORAL_API extern uint64_t Note;
-               LIBEVORAL_API extern uint64_t ControlList;
+               LIBEVORAL_API extern DebugBits Sequence;
+               LIBEVORAL_API extern DebugBits Note;
+               LIBEVORAL_API extern DebugBits ControlList;
        }
 }