Da mit dem letzten Device->SwitchChannel() auch die scanList leer wird und ScanList->Count() das erkennt, wird bei manuell gestartetem EPGscan nun auf den urspünglichen Kanal zurückgeschalten. Ds ist aber voreilig, denn damit wird der gerade vorbereitete NIT/SDT/EIT scan für den letzten Listeneintrag sofort wieder abgebrochen.
Da auch über AnyDeviceSwitched erkannt werden kann ob ein Scan aktiv ist (#true) oder die ScanList Leer/keine verwendbaren Einträge hat (#false), kann ScanList->Count() entfernt werden und das Zurückschalten geschieht erst nach dem nächsten ScanTimeout.
Diff
--- eitscan.c.orig 2015-09-10 13:05:03.000000000 +0200
+++ eitscan.c 2019-01-08 20:27:53.383557999 +0100
@@ -177,7 +177,7 @@ void cEITScanner::Process(void)
}
}
}
- if (!scanList->Count() || !AnyDeviceSwitched) {
+ if (!AnyDeviceSwitched) {
delete scanList;
scanList = NULL;
if (lastActivity == 0) // this was a triggered scan
Display More
Helmut