X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8d8294b4b354436adde202604fffb55c181d686c..3dfafb8052158a04e3f2316bf3b63a5a79ab331e:/lib/dvb/dvbtime.h diff --git a/lib/dvb/dvbtime.h b/lib/dvb/dvbtime.h index fbc82f06..c4419652 100644 --- a/lib/dvb/dvbtime.h +++ b/lib/dvb/dvbtime.h @@ -1,6 +1,8 @@ #ifndef __LIB_DVB_DVBTIME_H_ #define __LIB_DVB_DVBTIME_H_ +#ifndef SWIG + #include #include #include @@ -16,6 +18,13 @@ inline int fromBCD(int bcd) return ((bcd&0xF0)>>4)*10+(bcd&0xF); } +inline int toBCD(int dec) +{ + if (dec >= 100) + return -1; + return int(dec/10)*0x10 + dec%10; +} + time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5); class TDT: public eGTable @@ -25,12 +34,16 @@ class TDT: public eGTable eTimer m_interval_timer; int createTable(int nr, const __u8 *data, unsigned int max); void ready(int); + int update_count; public: - TDT(eDVBChannel *chan); + TDT(eDVBChannel *chan, int update_count=0); void start(); void startTimer(int interval); + int getUpdateCount() { return update_count; } }; +#endif // SWIG + class eDVBLocalTimeHandler: public Object { struct channel_data @@ -38,6 +51,7 @@ class eDVBLocalTimeHandler: public Object TDT *tdt; ePtr channel; ePtr m_stateChangedConn; + int m_prevChannelState; }; friend class TDT; DECLARE_REF(eDVBLocalTimeHandler) @@ -51,12 +65,19 @@ class eDVBLocalTimeHandler: public Object void DVBChannelStateChanged(iDVBChannel*); void readTimeOffsetData(const char*); void writeTimeOffsetData(const char*); - void updateTime(time_t tp_time, eDVBChannel*); + void updateTime(time_t tp_time, eDVBChannel*, int updateCount); static eDVBLocalTimeHandler *instance; +#ifdef SWIG + eDVBLocalTimeHandler(); + ~eDVBLocalTimeHandler(); +#endif public: +#ifndef SWIG PSignal0 m_timeUpdated; eDVBLocalTimeHandler(); ~eDVBLocalTimeHandler(); +#endif + time_t nowTime() const { return m_time_ready ? ::time(0)+m_time_difference : -1; } bool ready() const { return m_time_ready; } int difference() const { return m_time_difference; } static eDVBLocalTimeHandler *getInstance() { return instance; }