summaryrefslogtreecommitdiff
path: root/libs/timecode/src
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2012-10-12 01:08:29 +0000
committerRobin Gareus <robin@gareus.org>2012-10-12 01:08:29 +0000
commita9abe3b1e1a1e260cf1cbf148ab3909a719817d1 (patch)
treee6eb1f71bbd946abff39260a0232dd61b844c9bc /libs/timecode/src
parent9116ea83ddc30aebb6bb5a8fa0f4a55be8984ceb (diff)
move TimecodeFormat to libtimecode
provide a way to convert any TimecodeFormat to float frame-rate, not only the currently active timecode_foramt. git-svn-id: svn://localhost/ardour2/branches/3.0@13249 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/timecode/src')
-rw-r--r--libs/timecode/src/time.cc102
1 files changed, 102 insertions, 0 deletions
diff --git a/libs/timecode/src/time.cc b/libs/timecode/src/time.cc
index 92cede1d9d..6dc123624b 100644
--- a/libs/timecode/src/time.cc
+++ b/libs/timecode/src/time.cc
@@ -423,6 +423,108 @@ hours_floor(Time& timecode)
}
}
+float
+timecode_to_frames_per_second(TimecodeFormat t)
+{
+ switch (t) {
+ case timecode_23976:
+ return (24000.0/1001.0); //23.976;
+
+ break;
+ case timecode_24:
+ return 24;
+
+ break;
+ case timecode_24976:
+ return (25000.0/1001.0); //24.976;
+
+ break;
+ case timecode_25:
+ return 25;
+
+ break;
+ case timecode_2997:
+ return 29.97;
+
+ break;
+ case timecode_2997drop:
+ return (30000.0/1001.0); //29.97;
+
+ break;
+ case timecode_30:
+ return 30;
+
+ break;
+ case timecode_30drop:
+ return 30;
+
+ break;
+ case timecode_5994:
+ return (60000.0/1001.0); //59.94;
+
+ break;
+ case timecode_60:
+ return 60;
+
+ break;
+ default:
+ //std::cerr << "Editor received unexpected timecode type" << std::endl;
+ break;
+ }
+ return 30.0;
+}
+
+bool
+timecode_has_drop_frames(TimecodeFormat t)
+{
+ switch (t) {
+ case timecode_23976:
+ return false;
+
+ break;
+ case timecode_24:
+ return false;
+
+ break;
+ case timecode_24976:
+ return false;
+
+ break;
+ case timecode_25:
+ return false;
+
+ break;
+ case timecode_2997:
+ return false;
+
+ break;
+ case timecode_2997drop:
+ return true;
+
+ break;
+ case timecode_30:
+ return false;
+
+ break;
+ case timecode_30drop:
+ return true;
+
+ break;
+ case timecode_5994:
+ return false;
+
+ break;
+ case timecode_60:
+ return false;
+
+ break;
+ default:
+ //error << "Editor received unexpected timecode type" << endmsg;
+ break;
+ }
+
+ return false;
+}
} // namespace Timecode