summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-01-17 01:30:10 +0000
committerCarl Hetherington <cth@carlh.net>2015-01-20 11:20:49 +0000
commite70f560b63aa5c17d2f7f102f232cf4d5cd4c807 (patch)
treea501629c7e34dc7db53a34fd7f05e3c71e029235 /src
parent0d9495a6e6b18d1d713f3dcfb89f87d9c791f11f (diff)
Add Time::all_as_seconds().
Diffstat (limited to 'src')
-rw-r--r--src/sub_time.cc10
-rw-r--r--src/sub_time.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/sub_time.cc b/src/sub_time.cc
index e304310..3f4d1e9 100644
--- a/src/sub_time.cc
+++ b/src/sub_time.cc
@@ -152,3 +152,13 @@ Time::from_hms (int h, int m, int s, int ms)
{
return Time (h * 3600 + m * 60 + s, ms, Rational (1000, 1));
}
+
+double
+Time::all_as_seconds () const
+{
+ if (!_rate) {
+ throw UnknownFrameRateError ();
+ }
+
+ return _seconds + double (_frames) / _rate.get().fraction ();
+}
diff --git a/src/sub_time.h b/src/sub_time.h
index 7e1d193..22178e9 100644
--- a/src/sub_time.h
+++ b/src/sub_time.h
@@ -55,6 +55,8 @@ public:
int frames_at (Rational rate) const;
int milliseconds () const;
+ double all_as_seconds () const;
+
static Time from_hmsf (int h, int m, int s, int f, boost::optional<Rational> rate = boost::optional<Rational> ());
static Time from_hms (int h, int m, int s, int ms);