Missing namespace.
[libdcp.git] / src / dcp_time.h
index 0bbf55106e942546ee8094ac8ad01ca698ac4606..027cb9d2e428c0b18cc0c5ccbff4dd48a012830e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 */
 
 /** @file  src/dcp_time.h
- *  @brief A representation of time within a DCP.
+ *  @brief Time class.
  */
 
 #ifndef LIBDCP_TIME_H
 #define LIBDCP_TIME_H
 
-namespace libdcp {
+#include <stdint.h>
+#include <string>
+#include <iostream>
+
+namespace dcp {
 
 /** @class Time
  *  @brief A representation of time within a DCP.
@@ -35,11 +39,19 @@ class Time
 public:
        Time () : h (0), m (0), s (0), t (0) {}
 
+       Time (int64_t ticks);
+
        /** Construct a Time from a frame index (starting from 0)
         *  and a frames per second count.
         */
        Time (int frame, int frames_per_second);
-       
+
+       /** Construct a Time from hours, minutes, seconds and ticks.
+        *  @param h_ Hours.
+        *  @param m_ Minutes.
+        *  @param s_ Seconds.
+        *  @param t_ Ticks (where 1 tick is 4 milliseconds).
+        */
        Time (int h_, int m_, int s_, int t_)
                : h (h_)
                , m (m_)
@@ -53,9 +65,17 @@ public:
        int m; ///< minutes
        int s; ///< seconds
        int t; ///< `ticks', where 1 tick is 4 milliseconds
+
+       std::string to_string () const;
+       int64_t to_ticks () const;
+       double to_seconds () const;
+
+private:
+       void set (double);
 };
 
 extern bool operator== (Time const & a, Time const & b);
+extern bool operator!= (Time const & a, Time const & b);
 extern bool operator<= (Time const & a, Time const & b);
 extern bool operator< (Time const & a, Time const & b);
 extern bool operator> (Time const & a, Time const & b);