*************** *** 144,147 **** }; --- 147,185 ---- }; + + #define STARTTIME_BIAS (20*60) + #define POLY 0xA001 // CRC16 + + class DVBCITevents : public DVBsection + { + Q_OBJECT + + public: + + DVBCITevents( int anum, int tnum, const QString &charset, EventTable *table, int pid ); + ~DVBCITevents(); + bool go( QString src ); + void stop(); + + private: + + virtual void run(); + bool tableCIT( unsigned char* buffer ); + bool shortEventForCID( unsigned char *buf, EventDesc *desc ); + bool extEventForCID( unsigned char *buf, EventDesc *desc ); + bool contentTransmissionTable( unsigned char* buffer, EventDesc *desc ); + bool safeLen( unsigned char* buf ); + unsigned int crc16(unsigned int crc, unsigned char const *p, int len); + + int pid; + unsigned char secbuf[4096]; + int readSize; + struct pollfd pf[1]; + + EventTable *events; + EventSource *currentSrc; + }; + +