also use refcounting for eTimers
[enigma2.git] / lib / dvb / dvbtime.cpp
index 6cfaccc89f06d213638157d2a3d13a2043a7b384..4c5911c9178ce8da1356ea5fd125ee8acf6d76ad 100644 (file)
@@ -18,23 +18,11 @@ void setRTC(time_t time)
        FILE *f = fopen("/proc/stb/fp/rtc", "w");
        if (f)
        {
-               time_t wakeup=0;
-               FILE *f2 = fopen("/proc/stb/fp/wakeup_time", "r");
-               if (f2)
-               {
-                       fscanf(f2, "%u", &wakeup);
-                       fclose(f2);
-               }
-               if (wakeup) // atmel firmware okay?
-               {
-                       if (fprintf(f, "%u", time))
-                               prev_time = time;
-                       else
-                               eDebug("write /proc/stb/fp/rtc failed (%m)");
-                       fclose(f);
-               }
+               if (fprintf(f, "%u", time))
+                       prev_time = time;
                else
-                       eDebug("dont set rtc because of buggy atmel firmware!");
+                       eDebug("write /proc/stb/fp/rtc failed (%m)");
+               fclose(f);
        }
        else
        {
@@ -98,10 +86,10 @@ time_t parseDVBtime(__u8 t1, __u8 t2, __u8 t3, __u8 t4, __u8 t5)
 }
 
 TDT::TDT(eDVBChannel *chan, int update_count)
-       :chan(chan), update_count(update_count)
+       :chan(chan), m_interval_timer(eTimer::create()), update_count(update_count)
 {
        CONNECT(tableReady, TDT::ready);
-       CONNECT(m_interval_timer.timeout, TDT::start);
+       CONNECT(m_interval_timer->timeout, TDT::start);
        if (chan)
                chan->getDemux(demux, 0);
 }
@@ -148,7 +136,7 @@ void TDT::start()
 
 void TDT::startTimer( int interval )
 {
-       m_interval_timer.start(interval, true);
+       m_interval_timer->start(interval, true);
 }
 
 eDVBLocalTimeHandler *eDVBLocalTimeHandler::instance;