Pieni muutos/korjaus GetFollowingEvent-metodiin

Juttua VDR:n ja VDR pluginien patcheistä
pjmauno
Havittelija
Viestit: 20
Liittynyt: 05.07.2004 3:00
Paikkakunta: Jyväskylä

Pieni muutos/korjaus GetFollowingEvent-metodiin

Viesti Kirjoittaja pjmauno » 16.12.2005 20:37

Olen varmaankin huono ihminen, mutta minua on ärsyttänyt vdr:n tapa käsitellä kanavaopasta (epg), kun joltakin kanavalta on ohjelma loppunut, eikä seuraava ole vielä alkanut: "Menossa nyt" ei näytä koko kanavaa. Tämän vielä kestän, sillä niinhän ohjelmaoppaan mukaan onkin, mutta että seuraavaksikaan ei ole mitään tulossa. Tähän seuraavassa pieni patchi, joka kaivaa seuraavan ohjelman esille, jos sellainen on olemassa:

Koodi: Valitse kaikki

diff -Naur vanilla/epg.c fixed/epg.c
--- vanilla/epg.c       2005-11-27 19:04:15.000000000 +0200
+++ fixed/epg.c 2005-11-28 20:56:15.000000000 +0200
@@ -673,7 +673,17 @@
 {
   const cEvent *p = GetPresentEvent(CheckRunningStatus);
   if (p)
-     p = events.Next(p);
+    p = events.Next(p);
+  else  {
+    // Get next event
+    time_t now = time(NULL);
+    for (cEvent *pe = events.First(); pe; pe = events.Next(pe)) {
+      if (pe->StartTime() >= now) {
+       p = pe;
+       break;
+      }
+    }
+  }
   return p;
 }
Muutos on brutaali, eikä välitä siitä miten kaukana tulevaisuudessa ohjelma tulee, vain etsii ja palauttaa sen näkyviin.

Pekka