diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-01-20 08:02:35 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-01-20 08:02:35 +0000 |
| commit | 9f2209eff66297dc42f152b77b5abfb629a13294 (patch) | |
| tree | c8b8314063a48ffbc4ce3a8d80532512180731de /lib | |
| parent | ea2018b5c26b393c96f7c8f8d58de64348033ee9 (diff) | |
| download | xxv-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.pm | 24 | ||||
| -rw-r--r-- | lib/XXV/MODULES/AUTOTIMER.pm | 42 | ||||
| -rw-r--r-- | lib/XXV/MODULES/RECORDS.pm | 4 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/Html.pm | 6 |
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}); |
