diff options
Diffstat (limited to 'menusched.c')
| -rw-r--r-- | menusched.c | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/menusched.c b/menusched.c index 452c7b4..82f4a31 100644 --- a/menusched.c +++ b/menusched.c @@ -193,17 +193,46 @@ cMenuEpgScheduleItem::eScheduleSortMode cMenuEpgScheduleItem::sortMode = ssmAllT // Object //*************************************************************************** -cMenuEpgScheduleItem::cMenuEpgScheduleItem(cMenuDb* db, const cEvent* Event, const cChannel* Channel, bool WithDate) +cMenuEpgScheduleItem::cMenuEpgScheduleItem(cMenuDb* db, const cEvent* Event, + const cChannel* Channel, bool WithDate) { + ownEvent = 0; menuDb = db; - event = Event; + if (Event) + { + FILE* inMem = 0; + char* bp; + size_t size; + + if (inMem = open_memstream(&bp, &size)) + { + Event->Dump(inMem, "", yes); + fflush(inMem); + fclose(inMem); + + ownEvent = new cEpgEvent(Event->EventID()); + inMem = fmemopen(bp, strlen(bp), "r"); + ownEvent->Read(inMem); + fclose(inMem); + + ownEvent->setImageCount(1); + } + } + + event = ownEvent ? ownEvent : Event; + channel = Channel; withDate = WithDate; timerMatch = tmNone; Update(yes); } +cMenuEpgScheduleItem::~cMenuEpgScheduleItem() +{ + delete ownEvent; +} + //*************************************************************************** // Compare //*************************************************************************** |
