improve in-progress check to accommodate padding

git-svn-id: file:///root/webif/svn/pkg/webif/trunk@3197 2a923420-c742-0410-a762-8d5b09965624
This commit is contained in:
hummypkg 2016-08-21 18:32:48 +00:00
parent f72cf64cce
commit 8ed615459f
2 changed files with 30 additions and 10 deletions

View File

@ -83,15 +83,16 @@ proc eventrow {event {table TBL_RESERVATION}} {
set d [$event get nduration]
set e $($s + $d)
set n [clock seconds]
lassign [$event padded 1] sp ep
if {$n > $e && [$event get ersvtype] <= 3} {
if {$n > $e + $ep && [$event get ersvtype] <= 3} {
set ended 1
incr num_ended
} else {
set ended 0
}
if {$d > 0 && $n >= $s && $n < $e} {
if {$d > 0 && $n >= $s - $sp && $n < $e + $ep} {
set showing 1
} else {
set showing 0
@ -198,7 +199,8 @@ proc eventrow {event {table TBL_RESERVATION}} {
}
if {$table ne "pending" && $showing} {
set perc [expr [expr $n - $s] * 100 / $d]
set perc [expr [expr $n - ($s - $sp)] * 100 / \
($d + $sp + $ep)]
puts "<br>"
puts "<img class=va
src=/images/745_1_11_Video_1REC.png>"

View File

@ -126,12 +126,20 @@ rsv method name {} {
return $name
}
rsv method padded {} {
rsv method padded {{l 0}} {
if {$ulPreOffset > 0 || $ulPostOffset > 0} {
if {$l} {
return [list $ulPreOffset $ulPostOffset]
} else {
return 1
}
} else {
if {$l} {
return {0 0}
} else {
return 0
}
}
}
rsv method channel_name {} {
@ -332,13 +340,23 @@ rsv method insert {{table pending} {force 0} {defer 0}} {
set now [clock seconds]
# In-progress check
if {$nsttime <= $now} {
if {$table ne "pending" && $nsttime + $nduration >= $now} {
# Still showing - OK if real-time scheduling addition.
if {$action != 0 || ![rsv rtsched]} {
if {$nsttime - $ulPreOffset <= $now} {
# Start time in the past
if {$nsttime + $nduration + $ulPostOffset >= $now} {
# Still showing
switch $action {
0 { # Add
# Ok if real-time scheduling in use.
if {![rsv rtsched]} {
throw 20 "Event already in progress."
return
}
}
default {
throw 20 "Event already in progress."
return
}
}
} elseif {$action == 0} {
throw 20 "Event has finished."
return