Update our MSVC project files to generate the most recent Ardour session file format...
[ardour.git] / libs / evoral / evoral / types.hpp
index 4df560465f8ba7860356089a41f2746a467aa3c1..a5d4a8ca1e8f8e22a0771d6140d7a88ea2a0d088 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of Evoral.
- * Copyright (C) 2008 Dave Robillard <http://drobilla.net>
+ * Copyright (C) 2008 David Robillard <http://drobilla.net>
  * Copyright (C) 2000-2008 Paul Davis
  *
  * Evoral is free software; you can redistribute it and/or modify it under the
 #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 {
@@ -31,41 +35,21 @@ namespace Evoral {
 /** ID of an event (note or other). This must be operable on by glib
     atomic ops
 */
-
 typedef int32_t event_id_t;
 
-/** Frame count (i.e. length of time in audio frames) */
-typedef uint32_t FrameTime;
-
-/** 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 the movement of a time range */
-template<typename T>
-struct RangeMove {
-       RangeMove (T f, FrameTime l, T t) : from (f), length (l), to (t) {}
-       T         from;   ///< start of the range
-       FrameTime 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;
-        }
+       namespace DEBUG {
+               LIBEVORAL_API extern DebugBits Sequence;
+               LIBEVORAL_API extern DebugBits Note;
+               LIBEVORAL_API extern DebugBits ControlList;
+       }
 }
 
 #endif // EVORAL_TYPES_HPP