summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitar Petrovski <dimeptr@gmail.com>2012-06-03 22:44:02 +0200
committerDimitar Petrovski <dimeptr@gmail.com>2012-06-03 22:44:02 +0200
commita443439bbf37cf77a349aa7d848536505ab9fafa (patch)
treea3e366ca0ae6a0c054350c8d1d13325aa04eaa00
parente456d4cb075717b8544a198a8f303dff43ea53ec (diff)
downloadvdr-plugin-eepg-a443439bbf37cf77a349aa7d848536505ab9fafa.tar.gz
vdr-plugin-eepg-a443439bbf37cf77a349aa7d848536505ab9fafa.tar.bz2
revert util.c and moved to separate branch
-rw-r--r--util.c84
1 files changed, 21 insertions, 63 deletions
diff --git a/util.c b/util.c
index a508525..3d92dda 100644
--- a/util.c
+++ b/util.c
@@ -9,8 +9,6 @@
#include <vdr/thread.h>
#include <vdr/epg.h>
-#include <map>
-
namespace util
{
@@ -129,33 +127,23 @@ void CleanString (unsigned char *String)
// http://projects.vdr-developer.org/projects/plg-epgfixer
// by Matti Lehtimaki
-//class cAddEventListItem : public cListObject
-//{
-//protected:
-// cEvent *event;
-// tChannelID channelID;
-//public:
-// cAddEventListItem(cEvent *Event, tChannelID ChannelID) { event = Event; channelID = ChannelID; }
-// tChannelID GetChannelID() { return channelID; }
-// cEvent *GetEvent() { return event; }
-// ~cAddEventListItem() { }
-//};
-
-struct tChannelIDCompare
+class cAddEventListItem : public cListObject
{
- bool operator() (const tChannelID& lhs, const tChannelID& rhs) const
- {
- return *lhs.ToString() < *rhs.ToString();
- }
+protected:
+ cEvent *event;
+ tChannelID channelID;
+public:
+ cAddEventListItem(cEvent *Event, tChannelID ChannelID) { event = Event; channelID = ChannelID; }
+ tChannelID GetChannelID() { return channelID; }
+ cEvent *GetEvent() { return event; }
+ ~cAddEventListItem() { }
};
-
class cAddEventThread : public cThread
{
private:
cTimeMs LastHandleEvent;
-// cList<cAddEventListItem> *list;
- std::map<tChannelID,cList<cEvent *>*,tChannelIDCompare> *map_list;
+ cList<cAddEventListItem> *list;
enum { INSERT_TIMEOUT_IN_MS = 10000 };
protected:
virtual void Action(void);
@@ -168,17 +156,13 @@ public:
cAddEventThread::cAddEventThread(void)
:cThread("cAddEventThread"), LastHandleEvent()
{
-// list = new cList<cAddEventListItem>;
- map_list = new std::map<tChannelID,cList<cEvent *>*,tChannelIDCompare>;
+ list = new cList<cAddEventListItem>;
}
cAddEventThread::~cAddEventThread(void)
{
LOCK_THREAD;
-// list->cList::Clear();
- std::map<tChannelID,cList<cEvent *>*,tChannelIDCompare>::iterator it;
- for ( it=map_list->begin() ; it != map_list->end(); it++ )
- (*it).second->cList::Clear();
+ list->cList::Clear();
Cancel(3);
}
@@ -186,36 +170,17 @@ void cAddEventThread::Action(void)
{
SetPriority(19);
while (Running() && !LastHandleEvent.TimedOut()) {
-// cAddEventListItem *e = NULL;
+ cAddEventListItem *e = NULL;
cSchedulesLock SchedulesLock(true, 10);
cSchedules *schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
Lock();
-// while (schedules && (e = list->First()) != NULL) {
-// cSchedule *schedule = (cSchedule *)schedules->GetSchedule(Channels.GetByChannelID(e->GetChannelID()), true);
-// schedule->AddEvent(e->GetEvent());
-// EpgHandlers.SortSchedule(schedule);
-// EpgHandlers.DropOutdated(schedule, e->GetEvent()->StartTime(), e->GetEvent()->EndTime(), e->GetEvent()->TableID(), e->GetEvent()->Version());
-// list->Del(e);
-// }
- std::map<tChannelID,cList<cEvent *>*,tChannelIDCompare>::iterator it;
- if (schedules) {
- for ( it=map_list->begin() ; it != map_list->end(); it++ ) {
- (*it).second->cList::Clear();
- cSchedule *schedule = (cSchedule *)schedules->GetSchedule(Channels.GetByChannelID((*it).first), true);
- while (schedules && ((*it).second->First()) != NULL) {
- cEvent* event = *(*it).second->First();
-
- cEvent *pEqvEvent = (cEvent *) schedule->GetEvent (event->EventID(), event->StartTime());
- if (pEqvEvent)
- schedule->DelEvent(pEqvEvent);
-
- schedule->AddEvent(event);
- (*it).second->Del(event);
- }
- EpgHandlers.SortSchedule(schedule);
-
- }
- }
+ while (schedules && (e = list->First()) != NULL) {
+ cSchedule *schedule = (cSchedule *)schedules->GetSchedule(Channels.GetByChannelID(e->GetChannelID()), true);
+ schedule->AddEvent(e->GetEvent());
+ EpgHandlers.SortSchedule(schedule);
+ EpgHandlers.DropOutdated(schedule, e->GetEvent()->StartTime(), e->GetEvent()->EndTime(), e->GetEvent()->TableID(), e->GetEvent()->Version());
+ list->Del(e);
+ }
Unlock();
cCondWait::SleepMs(10);
}
@@ -224,14 +189,7 @@ void cAddEventThread::Action(void)
void cAddEventThread::AddEvent(cEvent *Event, tChannelID ChannelID)
{
LOCK_THREAD;
- if (map_list->empty() || map_list->count(ChannelID) == 0) {
- cList<cEvent *>* list = new cList<cEvent *>;
- list->Add(Event);
- map_list->insert(std::make_pair(ChannelID, list));
- } else {
- (*map_list->find(ChannelID)).second->Add(Event);
- }
-// list->Add(new cAddEventListItem(Event, ChannelID));
+ list->Add(new cAddEventListItem(Event, ChannelID));
LastHandleEvent.Set(INSERT_TIMEOUT_IN_MS);
}