|
|
|
@ -20,39 +20,6 @@ sub new {
|
|
|
|
|
return bless($self, $class); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub parse_timing { |
|
|
|
|
my ($self, $str) = @_; |
|
|
|
|
my $time = 0.0; |
|
|
|
|
return unless $str =~ m/(\d+):(\d+):(\d+)([.,])(\d+)/oi; |
|
|
|
|
my ($hrs, $min, $sec, $delim, $msec) = ($1, $2, $3, $4, $5); |
|
|
|
|
if ($msec < 0 or $msec > 999) { |
|
|
|
|
$self->log(warn => "wrong mseconds part of timing: $msec"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if ($sec < 0 or $sec > 59) { |
|
|
|
|
$self->log(warn => "wrong seconds part of timing: $sec"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if ($min < 0 or $min > 59) { |
|
|
|
|
$self->log(warn => "wrong minutes part of timing: $sec"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if ($hrs < 0) { |
|
|
|
|
$self->log(warn => "wrong minutes part of timing: $sec"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
given (length("$msec")) { |
|
|
|
|
when ("3") { $time += $msec * 0.001; } |
|
|
|
|
when ("2") { $time += $msec * 0.01; } |
|
|
|
|
when ("1") { $time += $msec * 0.1; } |
|
|
|
|
default { die("abnormal length of mseconds part"); } |
|
|
|
|
} |
|
|
|
|
$time += $sec; |
|
|
|
|
$time += $min * 60; |
|
|
|
|
$time += $hrs * 60 * 60; |
|
|
|
|
return $time; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sub new_event { return +{ id => undef, timing => undef, text => undef }; } |
|
|
|
|
|
|
|
|
|
sub parse { |
|
|
|
|