vdr  1.7.27
sections.h
Go to the documentation of this file.
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