summaryrefslogtreecommitdiff
path: root/lib/Tools.pm
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2008-01-01 18:08:52 +0000
committerAndreas Brachold <vdr07@deltab.de>2008-01-01 18:08:52 +0000
commit8222d826a768795076a655fcc057a218b7f8e933 (patch)
treed0ee5e644afb288ab61d1d86f3a6856b5a6e4fef /lib/Tools.pm
parent8d11e5ef702eb4e7a0448eb43d39f28c9670954e (diff)
downloadxxv-8222d826a768795076a655fcc057a218b7f8e933.tar.gz
xxv-8222d826a768795076a655fcc057a218b7f8e933.tar.bz2
* STREAM: Add HTTPD Streaming for recording, with starttime
* RECORDS: Start playback with start time * TIMERS: drop workaround getOldDeactivTimer - 'Search for old and deactivated Timers and delete this' cleanup etc/xxvd.cfg.example, skin.cfg rdisplay: add input field for start time
Diffstat (limited to 'lib/Tools.pm')
-rw-r--r--lib/Tools.pm50
1 files changed, 49 insertions, 1 deletions
diff --git a/lib/Tools.pm b/lib/Tools.pm
index a588f53..6e2072d 100644
--- a/lib/Tools.pm
+++ b/lib/Tools.pm
@@ -26,7 +26,7 @@ our $DBH = {};
&getFromSocket &fields &load_file &save_file &tableUpdated &buildsearch
&deleteDir &getip &convert &int &entities &reentities &bench &fmttime
&getDataByTable &getDataById &getDataBySearch &getDataByFields &touch &url
- &con_err &con_msg);
+ &con_err &con_msg &text2frame &frame2hms);
# ------------------
@@ -667,4 +667,52 @@ sub url{
return $s;
}
+################################################################################
+# Convert text to frame number
+# in => frame / HH:MM:SS.FF / HH:MM:SS / MM:SS.FF / MM:SS
+# out => frame
+sub text2frame() {
+ my $s = shift;
+
+ my $start = 0;
+ if($s =~ /^\d+$/sig) {
+ $start = $s;
+ } elsif($s =~ /^\d+\:\d+\:\d+\.\d+$/sg) {
+ my ($hour,$minute,$seconds,$frames) = $s =~ /(\d+)\:(\d+)\:(\d+)\.(\d+)/s;
+ $start = ($hour * 3600) + ($minute * 60) + $seconds;
+ $start *= 25;
+ $start += $frames;
+ } elsif($s =~ /^\d+\:\d+\:\d+$/sg) {
+ my ($hour,$minute,$seconds) = $s =~ /(\d+)\:(\d+)\:(\d+)/s;
+ $start = ($hour * 3600) + ($minute * 60) + $seconds;
+ $start *= 25;
+ } elsif($s =~ /^\d+\:\d+\.\d+$/sg) {
+ my ($minute,$seconds,$frames) = $s =~ /(\d+)\:(\d+)\.(\d+)/s;
+ $start = ($minute * 60) + $seconds;
+ $start *= 25;
+ $start += $frames;
+ } elsif($s =~ /^\d+\:\d+$/sg) {
+ my ($minute,$seconds) = $s =~ /(\d+)\:(\d+)/s;
+ $start = ($minute * 60) + $seconds;
+ $start *= 25;
+ }
+ return $start;
+}
+
+################################################################################
+# Convert frame number to HMS Text
+# in => frame
+# out => HH:MM:SS.FF
+sub frame2hms() {
+ my $frames = shift;
+
+ my $frame = $frames % 25;
+ my $time = $frames / 25;
+ my $sec = $time % 60;
+ my $min = ($time / 60) % 60;
+ my $hour = CORE::int($time/3600);
+
+ return sprintf('%d:%02d:%02d.%02d', $hour, $min, $sec, $frame);
+}
+
1;