Moin!
Wenn ich Klaus richtig verstanden habe, dann wird leider immer nach der Startzeit gesucht und nicht nach der Event-ID. Genau das Problem wollte ich in diesem Zusammenhang ja aufzeigen.
Ein schneller Blick in eit.c und epg.c scheint es zu bestätigen, dass immer nach Startzeit gematcht wird. Das wusste ich nicht.
Hm... Was hat das wohl für einen Grund?
Das Einlesen per PUTE übergibt aber Startzeit und EventID an GetEvent, wenn also da die Startzeit "0" benutzt wird, wird anhand der EventID herausgesucht.
Allerdings würde dann cEvent::SetStartTime auch die Null in das Event setzen, was nicht schön wäre. Da müsste also noch eine Abbruchbedingung rein:
void cEvent::SetStartTime(time_t StartTime)
{
+ if (StartTime == 0)
+ return;
if (startTime != StartTime) {
if (schedule)
schedule->UnhashEvent(this);
startTime = StartTime;
if (schedule)
schedule->HashEvent(this);
}
}
Alles anzeigen
Aber ich hab noch nicht viel Überblick über das EPG-Handling, bin noch am Lesen und Lernen...
Lars.