summaryrefslogtreecommitdiff
path: root/lib/Tools.pm
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2008-01-20 08:02:35 +0000
committerAndreas Brachold <vdr07@deltab.de>2008-01-20 08:02:35 +0000
commit9f2209eff66297dc42f152b77b5abfb629a13294 (patch)
treec8b8314063a48ffbc4ce3a8d80532512180731de /lib/Tools.pm
parentea2018b5c26b393c96f7c8f8d58de64348033ee9 (diff)
downloadxxv-9f2209eff66297dc42f152b77b5abfb629a13294.tar.gz
xxv-9f2209eff66297dc42f152b77b5abfb629a13294.tar.bz2
* AUTOTIMER: Fix show matched title
* Tools: refactoring date function * Skins stone/stone_flat/deltab - rdisplay failed on short recordings (Illegal division by zero)
Diffstat (limited to 'lib/Tools.pm')
-rw-r--r--lib/Tools.pm24
1 files changed, 16 insertions, 8 deletions
diff --git a/lib/Tools.pm b/lib/Tools.pm
index a212216..87a7587 100644
--- a/lib/Tools.pm
+++ b/lib/Tools.pm
@@ -22,6 +22,9 @@ our $BENCH = {};
our $LOGCALLB = sub{ };
our $DBH = {};
+# PAL use 25, NTFS use 30 frames per seconds
+use constant FRAMESPERSECOND => 25;
+
@EXPORT = qw(&datum &stackTrace &lg &event &debug &error &panic &rep2str &dumper
&getFromSocket &fields &load_file &save_file &tableUpdated &buildsearch
&deleteDir &getip &convert &int &entities &reentities &bench &fmttime
@@ -40,6 +43,8 @@ sub fmttime {
return $ret;
}
+use constant MONTHS => qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
+use constant WEEKDAYS => qw/Sun Mon Tue Wed Thu Fri Sat/;
# ------------------
sub datum {
# ------------------
@@ -58,9 +63,12 @@ sub datum {
} elsif (lc($typ) eq 'rss') {
# 23 Aug 1999 07:00:00 GMT
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($zeit);
- my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
return sprintf('%02d %s %04d %02d:%02d:%02d GMT',
- $mday, $abbr[$mon], $year+1900, $hour, $min, $sec );
+ $mday, (MONTHS)[$mon], $year+1900, $hour, $min, $sec );
+ } elsif (lc($typ) eq 'header') {
+ my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($zeit);
+ return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",
+ (WEEKDAYS)[$wday],$mday,(MONTHS)[$mon],$year + 1900,$hour,$min,$sec);
} else {
# time depends locale, most 07:00:00
return strftime("%X", localtime($zeit));
@@ -681,21 +689,21 @@ sub text2frame() {
} 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 *= FRAMESPERSECOND;
$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;
+ $start *= FRAMESPERSECOND;
} elsif($s =~ /^\d+\:\d+\.\d+$/sg) {
my ($minute,$seconds,$frames) = $s =~ /(\d+)\:(\d+)\.(\d+)/s;
$start = ($minute * 60) + $seconds;
- $start *= 25;
+ $start *= FRAMESPERSECOND;
$start += $frames;
} elsif($s =~ /^\d+\:\d+$/sg) {
my ($minute,$seconds) = $s =~ /(\d+)\:(\d+)/s;
$start = ($minute * 60) + $seconds;
- $start *= 25;
+ $start *= FRAMESPERSECOND;
}
return $start;
}
@@ -707,8 +715,8 @@ sub text2frame() {
sub frame2hms() {
my $frames = shift;
- my $frame = $frames % 25;
- my $time = $frames / 25;
+ my $frame = $frames % FRAMESPERSECOND;
+ my $time = $frames / FRAMESPERSECOND;
my $sec = $time % 60;
my $min = ($time / 60) % 60;
my $hour = CORE::int($time/3600);