Logging improvements to allow prettier displays in the server GUI.
[dcpomatic.git] / src / lib / dcpomatic_time.h
index c1d27407a90d2c4c8ba49fb57162109c087187bb..a5a0684e591b104656985e8dfcf427b19100c703 100644 (file)
@@ -30,7 +30,6 @@
 #include <stdint.h>
 #include <cmath>
 #include <ostream>
-#include <sstream>
 #include <iomanip>
 
 class dcpomatic_round_up_test;
@@ -117,8 +116,8 @@ public:
         *  at some sampling rate.
         *  @param r Sampling rate.
         */
-       Time<S, O> round_up (float r) {
-               Type const n = rint (HZ / r);
+       Time<S, O> round_up (float r) const {
+               Type const n = llrintf (HZ / r);
                Type const a = _t + n - 1;
                return Time<S, O> (a - (a % n));
        }
@@ -141,6 +140,11 @@ public:
                return floor (_t * r / HZ);
        }
 
+       template <typename T>
+       int64_t frames_ceil (T r) const {
+               return ceil (_t * r / HZ);
+       }
+
        /** @param r Frames per second */
        template <typename T>
        void split (T r, int& h, int& m, int& s, int& f) const
@@ -180,7 +184,7 @@ public:
 
 
        static Time<S, O> from_seconds (double s) {
-               return Time<S, O> (rint (s * HZ));
+               return Time<S, O> (llrint (s * HZ));
        }
 
        template <class T>