code cleanup
[enigma2.git] / lib / dvb / epgcache.h
index 69eec7d750785ba633a2f161f35c75f0b3bbd486..fb37b20d2807260b1c0bbfb78c10e5af68e38f13 100644 (file)
@@ -2,7 +2,6 @@
 #define __epgcache_h_
 
 #define ENABLE_PRIVATE_EPG 1
-#define NEED_DEMUX_WORKAROUND 1
 
 #ifndef SWIG
 
@@ -153,22 +152,24 @@ class eEPGCache: public eMainloop, private eThread, public Object
                eEPGCache *cache;
                eTimer abortTimer, zapTimer;
                int prevChannelState;
-               __u8 state, isRunning, haveData, can_delete;
+               __u8 state, isRunning, haveData;
                ePtr<eDVBChannel> channel;
                ePtr<eConnection> m_stateChangedConn, m_NowNextConn, m_ScheduleConn, m_ScheduleOtherConn;
                ePtr<iDVBSectionReader> m_NowNextReader, m_ScheduleReader, m_ScheduleOtherReader;
                tidMap seenSections[3], calcedSections[3];
 #ifdef ENABLE_PRIVATE_EPG
-#ifdef NEED_DEMUX_WORKAROUND
+               eTimer startPrivateTimer;
                int m_PrevVersion;
-#endif
                int m_PrivatePid;
                uniqueEPGKey m_PrivateService;
                ePtr<eConnection> m_PrivateConn;
                ePtr<iDVBSectionReader> m_PrivateReader;
                std::set<__u8> seenPrivateSections;
                void readPrivateData(const __u8 *data);
-               void startPrivateReader(int pid, int version);
+               void startPrivateReader();
+               bool canDelete() { return !isRunning && !m_PrivateConn; }
+#else
+               bool canDelete() { return !isRunning; }
 #endif
                void readData(const __u8 *data);
                void startChannel();
@@ -177,8 +178,9 @@ class eEPGCache: public eMainloop, private eThread, public Object
                void abortEPG();
                void abortNonAvail();
        };
+       void FixOverlapping(std::pair<eventMap,timeMap> &servicemap, time_t TM, int duration, const timeMap::iterator &tm_it, const uniqueEPGKey &service);
 public:
-       enum {NOWNEXT=1, SCHEDULE=2, SCHEDULE_OTHER=4};
+       enum {PRIVATE=0, NOWNEXT=1, SCHEDULE=2, SCHEDULE_OTHER=4};
        struct Message
        {
                enum