summaryrefslogtreecommitdiff
path: root/lib
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
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')
-rw-r--r--lib/Tools.pm24
-rw-r--r--lib/XXV/MODULES/AUTOTIMER.pm42
-rw-r--r--lib/XXV/MODULES/RECORDS.pm4
-rw-r--r--lib/XXV/OUTPUT/Html.pm6
4 files changed, 41 insertions, 35 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);
diff --git a/lib/XXV/MODULES/AUTOTIMER.pm b/lib/XXV/MODULES/AUTOTIMER.pm
index d39444c..7ea4d81 100644
--- a/lib/XXV/MODULES/AUTOTIMER.pm
+++ b/lib/XXV/MODULES/AUTOTIMER.pm
@@ -430,19 +430,21 @@ sub _autotimerLookup {
if(ref $console && $autotimerid) {
$console->message(sprintf(gettext("Found %d entries for '%s' in EPG database."), scalar keys %$events, $a->{Search}));
foreach my $Id (sort keys %$events) {
- my $output = [
- [gettext("Title") , $events->{$Id}->{title}],
- [gettext("Subtitle") , $events->{$Id}->{subtitle}],
- [gettext("Channel") , $events->{$Id}->{channelname}],
- ];
+
+ my $output = [ [gettext("Title"), $events->{$Id}->{title}] ];
+ push(@$output, [gettext("Subtitle"), $events->{$Id}->{subtitle}])
+ if($events->{$Id}->{subtitle});
+ push(@$output, [gettext("Channel"), $events->{$Id}->{channelname}]);
+
if($events->{$Id}->{vpsstart} and $a->{VPS} and $modT->{usevpstime} eq 'y') {
- push(@$output, [gettext("Start") , datum($events->{$Id}->{vpsstart} )]);
- push(@$output, [gettext("Stop") , datum($events->{$Id}->{vpsstop} )]);
+ push(@$output, [gettext("Start"), datum($events->{$Id}->{vpsstart} )]);
+ push(@$output, [gettext("Stop"), datum($events->{$Id}->{vpsstop} )]);
} else {
- push(@$output, [gettext("Start") , datum($events->{$Id}->{starttime})]);
- push(@$output, [gettext("Stop") , datum($events->{$Id}->{stoptime} )]);
+ push(@$output, [gettext("Start"), datum($events->{$Id}->{starttime})]);
+ push(@$output, [gettext("Stop"), datum($events->{$Id}->{stoptime} )]);
}
- push(@$output,[gettext("Description"), $events->{$Id}->{description}]);
+ push(@$output,[gettext("Description"), $events->{$Id}->{description}])
+ if($events->{$Id}->{description});
$console->table($output);
};
}
@@ -1292,8 +1294,8 @@ SELECT SQL_CACHE
e.eventid as eventid,
e.channel_id as channel,
c.Name as channelname,
- e.title as Title,
- e.subtitle as Subtitle,
+ e.title as title,
+ e.subtitle as subtitle,
e.description as description,
(UNIX_TIMESTAMP(e.starttime) - ? ) as starttime,
(UNIX_TIMESTAMP(e.starttime) + e.duration + ?) as stoptime,
@@ -1475,8 +1477,8 @@ sub _placeholder {
my $title = $at->{Dir};
if($title =~ /.*%.*%.*/sig) {
my %at_details;
- $at_details{'title'} = $data->{Title};
- $at_details{'subtitle'} = $data->{Subtitle} ? $data->{Subtitle} : $data->{start};
+ $at_details{'title'} = $data->{title};
+ $at_details{'subtitle'} = $data->{subtitle} ? $data->{subtitle} : $data->{start};
$at_details{'date'} = $data->{day};
$at_details{'regie'} = $1 if $data->{description} =~ m/\|Director: (.*?)\|/;
$at_details{'category'} = $1 if $data->{description} =~ m/\|Category: (.*?)\|/;
@@ -1490,16 +1492,16 @@ sub _placeholder {
$title =~ s/%([\w_-]+)%/$at_details{lc($1)}/sieg;
$file = $title;
} else { # Classic mode DIR~TITLE~SUBTILE
- if($data->{Subtitle}) {
- $file = sprintf('%s~%s~%s', $at->{Dir}, $data->{Title},$data->{Subtitle});
+ if($data->{subtitle}) {
+ $file = sprintf('%s~%s~%s', $at->{Dir}, $data->{title},$data->{subtitle});
} else {
- $file = sprintf('%s~%s', $at->{Dir}, $data->{Title});
+ $file = sprintf('%s~%s', $at->{Dir}, $data->{title});
}
}
- } elsif($data->{Subtitle}) {
- $file = sprintf('%s~%s', $data->{Title},$data->{Subtitle});
+ } elsif($data->{subtitle}) {
+ $file = sprintf('%s~%s', $data->{title},$data->{subtitle});
} else {
- $file = $data->{Title};
+ $file = $data->{title};
}
# sind irgendweche Tags verwendet worden, die leer waren und die doppelte Verzeichnisse erzeugten?
diff --git a/lib/XXV/MODULES/RECORDS.pm b/lib/XXV/MODULES/RECORDS.pm
index afda6bf..f6b2448 100644
--- a/lib/XXV/MODULES/RECORDS.pm
+++ b/lib/XXV/MODULES/RECORDS.pm
@@ -251,7 +251,7 @@ sub new {
$self->{dbh} = delete $attr{'-dbh'};
# define framerate PAL 25, NTSC 30
- $self->{framerate} = 25;
+ $self->{framerate} = Tools->FRAMESPERSECOND;
# The Initprocess
my $erg = $self->_init or return error('Problem to initialize modul!');
@@ -1437,7 +1437,7 @@ sub play {
$start = &text2frame($params->{start});
}
if($start) {
- if($start < 0 or ($start / 25) >= ($rec->{duration})) {
+ if($start < 0 or ($start / $obj->{framerate}) >= ($rec->{duration})) {
$start = 'begin';
} else {
$start = &frame2hms($start);
diff --git a/lib/XXV/OUTPUT/Html.pm b/lib/XXV/OUTPUT/Html.pm
index 5eb70e6..e7061c8 100644
--- a/lib/XXV/OUTPUT/Html.pm
+++ b/lib/XXV/OUTPUT/Html.pm
@@ -633,11 +633,7 @@ sub datei {
if($obj->{browser}->{'Match'}
&& $args{'ETag'} eq $obj->{browser}->{'Match'});
- my(@MON)=qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
- my(@WDAY) = qw/Sun Mon Tue Wed Thu Fri Sat/;
- my($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($fst->mtime);
- $args{'Last-Modified'} = sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",
- $WDAY[$wday],$mday,$MON[$mon],$year + 1900,$hour,$min,$sec);
+ $args{'Last-Modified'} = datum($fst->mtime,'header');
$args{'attachment'} = basename($file);
$args{'Content-Length'} = $size
if($obj->{nopack});