]> git.sesse.net Git - kdenlive/blobdiff - src/timecode.h
Clean up timecode handling, improves:
[kdenlive] / src / timecode.h
index 28ccb625d4e8de961a9a20c07dace76c994cba2a..3d310eb6df7e37a1e67528d971bd1a30e010be66 100644 (file)
 #ifndef TIMECODE_H
 #define TIMECODE_H
 
-#include "gentime.h"
-
 #include <qstring.h>
 
+#include "gentime.h"
+
 /**
 Handles the conversion of a GenTime into a nicely formatted string, taking into account things such as drop frame if necessary. Handles multiple formats, such as HH:MM:SS:FF, HH:MM:SS:F, All Frames, All Seconds, etc.
 
@@ -31,14 +31,15 @@ class Timecode
 public:
     enum Formats { HH_MM_SS_FF, HH_MM_SS_HH, Frames, Seconds };
 
-    explicit Timecode(Formats format = HH_MM_SS_FF, int framesPerSecond =
+    explicit Timecode(Formats format = HH_MM_SS_FF, double framesPerSecond =
                           25, bool dropFrame = false);
 
     /** Set the current timecode format; this is the output format for this timecode. */
-    void setFormat(int framesPerSecond, bool dropFrame = false, Formats format = HH_MM_SS_FF) {
-        m_displayedFramesPerSecond = framesPerSecond;
+    void setFormat(double framesPerSecond, bool dropFrame = false, Formats format = HH_MM_SS_FF) {
+        m_displayedFramesPerSecond = (int) (framesPerSecond + 0.5);
         m_dropFrame = dropFrame;
         m_format = format;
+       m_realFps = framesPerSecond;
     }
 
     Formats format() const {
@@ -48,8 +49,8 @@ public:
     ~Timecode();
 
     /** Returns the timecode for a given time */
-    QString getTimecode(const GenTime & time, double fps) const;
-    int getFrameCount(const QString duration, double fps) const;
+    QString getTimecode(const GenTime & time) const;
+    int getFrameCount(const QString duration) const;
     static QString getEasyTimecode(const GenTime & time, const double &fps);
     static QString getStringTimecode(int frames, const double &fps);
     QString getTimecodeFromFrames(int frames) const;
@@ -59,13 +60,16 @@ private:
     Formats m_format;
     bool m_dropFrame;
     int m_displayedFramesPerSecond;
+    double m_realFps;
 
-    QString getTimecodeHH_MM_SS_FF(const GenTime & time, double fps) const;
+    QString getTimecodeHH_MM_SS_FF(const GenTime & time) const;
     QString getTimecodeHH_MM_SS_FF(int frames) const;
+    
     QString getTimecodeHH_MM_SS_HH(const GenTime & time) const;
-    QString getTimecodeFrames(const GenTime & time, double fps) const;
+    QString getTimecodeFrames(const GenTime & time) const;
     QString getTimecodeSeconds(const GenTime & time) const;
-    QString getTimecodeDropFrame(const GenTime & time, double fps) const;
+    QString getTimecodeDropFrame(const GenTime & time) const;
+    QString getTimecodeDropFrame(int frames) const;
 };
 
 #endif