also use refcounting for eTimers
[enigma2.git] / lib / dvb / pmt.h
index 9e7c52740e390b8c38040f577a1f723af2e28592..d3a7faa7569fc9e8b87775a3d657613750dc6db4 100644 (file)
@@ -35,6 +35,7 @@ typedef std::map<iDVBChannel*, channel_data*> ChannelMap;
 
 class eDVBCAService: public Object
 {
+       ePtr<eSocketNotifier> m_sn;
        eServiceReferenceDVB m_service;
        uint8_t m_used_demux[32];
        unsigned int m_prev_build_hash;
@@ -43,9 +44,10 @@ class eDVBCAService: public Object
        struct sockaddr_un m_servaddr;
        unsigned int m_sendstate;
        unsigned char m_capmt[2048];
-       eTimer m_retryTimer;
+       ePtr<eTimer> m_retryTimer;
        void sendCAPMT();
        void Connect();
+       void socketCB(int what);
 
        static void DVBChannelAdded(eDVBChannel*);
        static void DVBChannelStateChanged(iDVBChannel*);
@@ -121,6 +123,8 @@ public:
                
                eventSOF,          // seek pre start
                eventEOF,          // a file playback did end
+               
+               eventMisconfiguration, // a channel was not found in any list, or no frontend was found which could provide this channel
        };
 #ifndef SWIG
        Signal1<void,int> serviceEvent;
@@ -198,7 +202,7 @@ public:
        int getChannel(eUsePtr<iDVBChannel> &channel);
        void resetCachedProgram() { m_have_cached_program = false; }
 
-       int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0);
+       int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false);
        void free();
 private:
        bool m_have_cached_program;