#ifndef EVORAL_TYPES_HPP
#define EVORAL_TYPES_HPP
+#include <float.h>
+#include <math.h>
#include <stdint.h>
+
+#include <iostream>
+#include <limits>
#include <list>
-#include <cmath>
-#include <cfloat>
+#include "evoral/visibility.h"
#include "pbd/debug.h"
namespace Evoral {
/** ID of an event (note or other). This must be operable on by glib
atomic ops
*/
-
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);
-}
-
/** Type of an event (opaque, mapped by application) */
typedef uint32_t EventType;
-/** Type to describe a time range */
-template<typename T>
-struct Range {
- Range (T f, T t) : from (f), to (t) {}
- T from; ///< start of the range
- T to; ///< end of the range
-};
-
-/** Type to describe the movement of a time range */
-template<typename T>
-struct RangeMove {
- RangeMove (T f, double l, T t) : from (f), length (l), to (t) {}
- T from; ///< start of the range
- double length; ///< length of the range
- T to; ///< new start of the range
-};
+class Beats;
} // namespace Evoral
namespace PBD {
namespace DEBUG {
- extern uint64_t Sequence;
- extern uint64_t Note;
+ LIBEVORAL_API extern DebugBits Sequence;
+ LIBEVORAL_API extern DebugBits Note;
+ LIBEVORAL_API extern DebugBits ControlList;
}
}