diff --git a/HISTORY b/HISTORY index bc8b61f7..8d62f406 100644 --- a/HISTORY +++ b/HISTORY @@ -1671,7 +1671,7 @@ Video Disk Recorder Revision History buttons of those that have already been learned (thanks to Oliver Endriss for reporting this one). -2002-11-01: Version 1.1.15 +2002-11-02: Version 1.1.15 - Completely switched to the new CVS HEAD version of the linux-dvb driver. The NEWSTRUCT compile time switch is now obsolete. The required driver is now @@ -1695,3 +1695,5 @@ Video Disk Recorder Revision History may want to newly create their plugins' Makefiles with the new version of this script, and adapt them to their individual needs (make sure you don't overwrite your existing plugin directory - make a backup copy first!). +- Fixed reading EPG data via the SVDRP command PUTE (it changed the current + service ID). diff --git a/eit.c b/eit.c index b608fc46..12045d63 100644 --- a/eit.c +++ b/eit.c @@ -16,7 +16,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: eit.c 1.58 2002/11/01 10:05:56 kls Exp $ + * $Id: eit.c 1.59 2002/11/02 12:46:53 kls Exp $ ***************************************************************************/ #include "eit.h" @@ -753,7 +753,7 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules) if (*s == 'C') { unsigned int uServiceID; if (1 == sscanf(s + 1, "%u", &uServiceID)) { - cSchedule *p = (cSchedule *)Schedules->SetCurrentServiceID(uServiceID); + cSchedule *p = (cSchedule *)Schedules->AddServiceID(uServiceID); if (p) { if (!cEventInfo::Read(f, p)) return false; @@ -782,20 +782,22 @@ cSchedules::~cSchedules() { } /** */ +const cSchedule *cSchedules::AddServiceID(unsigned short servid) +{ + const cSchedule *p = GetSchedule(servid); + if (!p) { + Add(new cSchedule(servid)); + p = GetSchedule(servid); + } + return p; +} +/** */ const cSchedule *cSchedules::SetCurrentServiceID(unsigned short servid) { - pCurrentSchedule = GetSchedule(servid); - if (pCurrentSchedule == NULL) - { - Add(new cSchedule(servid)); - pCurrentSchedule = GetSchedule(servid); - if (pCurrentSchedule == NULL) - return NULL; - } - - uCurrentServiceID = servid; - - return pCurrentSchedule; + pCurrentSchedule = AddServiceID(servid); + if (pCurrentSchedule) + uCurrentServiceID = servid; + return pCurrentSchedule; } /** */ const cSchedule * cSchedules::GetSchedule() const diff --git a/eit.h b/eit.h index 6ebd48f3..53740032 100644 --- a/eit.h +++ b/eit.h @@ -16,7 +16,7 @@ * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * - * $Id: eit.h 1.19 2002/10/13 09:28:06 kls Exp $ + * $Id: eit.h 1.20 2002/11/02 12:36:36 kls Exp $ ***************************************************************************/ #ifndef __EIT_H @@ -112,6 +112,7 @@ private: const cSchedule *pCurrentSchedule; unsigned short uCurrentServiceID; protected: + const cSchedule *AddServiceID(unsigned short servid); const cSchedule *SetCurrentServiceID(unsigned short servid); void Cleanup(); public: