vdr
1.7.27
|
00001 /* 00002 * sections.h: Section data handling 00003 * 00004 * See the main source file 'vdr.c' for copyright information and 00005 * how to reach the author. 00006 * 00007 * $Id: sections.h 2.0 2005/08/13 11:23:55 kls Exp $ 00008 */ 00009 00010 #ifndef __SECTIONS_H 00011 #define __SECTIONS_H 00012 00013 #include <time.h> 00014 #include "filter.h" 00015 #include "thread.h" 00016 #include "tools.h" 00017 00018 class cDevice; 00019 class cChannel; 00020 class cFilterHandle; 00021 class cSectionHandlerPrivate; 00022 00023 class cSectionHandler : public cThread { 00024 friend class cFilter; 00025 private: 00026 cSectionHandlerPrivate *shp; 00027 cDevice *device; 00028 int statusCount; 00029 bool on, waitForLock; 00030 time_t lastIncompleteSection; 00031 cList<cFilter> filters; 00032 cList<cFilterHandle> filterHandles; 00033 void Add(const cFilterData *FilterData); 00034 void Del(const cFilterData *FilterData); 00035 virtual void Action(void); 00036 public: 00037 cSectionHandler(cDevice *Device); 00038 virtual ~cSectionHandler(); 00039 int Source(void); 00040 int Transponder(void); 00041 const cChannel *Channel(void); 00042 void Attach(cFilter *Filter); 00043 void Detach(cFilter *Filter); 00044 void SetChannel(const cChannel *Channel); 00045 void SetStatus(bool On); 00046 }; 00047 00048 #endif //__SECTIONS_H