diff options
author | horchi <vdr@jwendel.de> | 2017-03-05 16:39:28 +0100 |
---|---|---|
committer | horchi <vdr@jwendel.de> | 2017-03-05 16:39:28 +0100 |
commit | e2a48d8701f91b8e24fbe9e99e91eb72a87bb749 (patch) | |
tree | 726f70554b4ca985a09ef6e30a7fdc8df089993c /configs/getlvrmin.sql | |
download | vdr-epg-daemon-e2a48d8701f91b8e24fbe9e99e91eb72a87bb749.tar.gz vdr-epg-daemon-e2a48d8701f91b8e24fbe9e99e91eb72a87bb749.tar.bz2 |
git init1.1.103
Diffstat (limited to 'configs/getlvrmin.sql')
-rw-r--r-- | configs/getlvrmin.sql | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/configs/getlvrmin.sql b/configs/getlvrmin.sql new file mode 100644 index 0000000..d075dfd --- /dev/null +++ b/configs/getlvrmin.sql @@ -0,0 +1,51 @@ +CREATE FUNCTION getlvrmin ( vdr_starttime int(10), ext_starttime int(10), vdr_duration int(5), ext_duration int(5), lv1 int(3), lv2 int(3), lv3 int(3), lv4 int(3) ) +RETURNS int +NOT DETERMINISTIC +BEGIN +DECLARE delta_st int; +DECLARE delta_du int; +DECLARE lv_time int default 0; +DECLARE lv_min int; +DECLARE lv_dur int; +DECLARE lv_sum int; + +IF vdr_duration = ext_duration then set delta_du = 100; +ELSEIF vdr_duration > ext_duration then set delta_du = round(vdr_duration/ext_duration*100,0); +ELSE set delta_du = round(ext_duration/vdr_duration*100,0); +END IF; + +IF delta_du > 184 then set lv_dur = 50; +ELSEIF delta_du > 168 then set lv_dur = 40; +ELSEIF delta_du > 152 then set lv_dur = 30; +ELSEIF delta_du > 136 then set lv_dur = 20; +ELSEIF delta_du > 120 then set lv_dur = 10; +ELSE set lv_dur = 0; +END IF; + +IF vdr_starttime = ext_starttime then set delta_st = 100; +ELSEIF vdr_starttime > ext_starttime then set delta_st = vdr_starttime-ext_starttime; +ELSE set delta_st = ext_starttime-vdr_starttime; +END IF; + +IF delta_st <= 600 then + IF delta_st > 540 then set lv_time = 50; + ELSEIF delta_st > 480 then set lv_time = 40; + ELSEIF delta_st > 420 then set lv_time = 30; + ELSEIF delta_st > 360 then set lv_time = 20; + ELSEIF delta_st > 300 then set lv_time = 10; + ELSE set lv_time = 0; + END IF; + + set lv_min = LEAST(lv1,lv2,lv3,lv4); + + set lv_sum = lv_time + lv_dur + lv_min; + +ELSEIF lv_dur + lv1 + lv4 <= 60 then set lv_sum = 60; +ELSEIF lv1 <= 30 and vdr_starttime = ext_starttime then set lv_sum = 60; +ELSEIF lv1 <= 30 and vdr_duration/abs(vdr_starttime-ext_starttime) >= 2.5 then set lv_sum = 60; +ELSE set lv_sum = 99; +END IF; + +RETURN lv_sum; + +END |