better solution to add possibility to delete eSocketNotifiers,
[vuplus_dvbapp] / lib / dvb / pmt.cpp
index 39a2c3d..8364be5 100644 (file)
@@ -50,9 +50,9 @@ void eDVBServicePMTHandler::channelStateChanged(iDVBChannel *channel)
                        eDebug("ok ... now we start!!");
 
                        if (m_pmt_pid == -1)
-                               m_PAT.begin(eApp, eDVBPATSpec(m_reference.path.empty() ? false : true), m_demux);
+                               m_PAT.begin(eApp, eDVBPATSpec(), m_demux);
                        else
-                               m_PMT.begin(eApp, eDVBPMTSpec(m_pmt_pid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), m_demux);
+                               m_PMT.begin(eApp, eDVBPMTSpec(m_pmt_pid, m_reference.getServiceID().get()), m_demux);
 
                        if ( m_service && !m_service->cacheEmpty() )
                                serviceEvent(eventNewProgramInfo);
@@ -135,7 +135,7 @@ void eDVBServicePMTHandler::PATready(int)
                if (pmtpid == -1)
                        serviceEvent(eventNoPATEntry);
                else
-                       m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get(), m_reference.path.empty() ? false : true), m_demux);
+                       m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get()), m_demux);
        } else
                serviceEvent(eventNoPAT);
 }
@@ -671,7 +671,7 @@ ChannelMap eDVBCAService::exist_channels;
 ePtr<eConnection> eDVBCAService::m_chanAddedConn;
 
 eDVBCAService::eDVBCAService()
-       :m_sn(0), m_prev_build_hash(0), m_sendstate(0), m_retryTimer(eApp)
+       : m_prev_build_hash(0), m_sendstate(0), m_retryTimer(eApp)
 {
        memset(m_used_demux, 0xFF, sizeof(m_used_demux));
        CONNECT(m_retryTimer.timeout, eDVBCAService::sendCAPMT);
@@ -682,7 +682,6 @@ eDVBCAService::~eDVBCAService()
 {
        eDebug("[eDVBCAService] free service %s", m_service.toString().c_str());
        ::close(m_sock);
-       delete m_sn;
 }
 
 // begin static methods
@@ -876,10 +875,7 @@ void eDVBCAService::socketCB(int what)
 
 void eDVBCAService::Connect()
 {
-       if (m_sn) {
-               delete m_sn;
-               m_sn=0;
-       }
+       m_sn=0;
        memset(&m_servaddr, 0, sizeof(struct sockaddr_un));
        m_servaddr.sun_family = AF_UNIX;
        strcpy(m_servaddr.sun_path, "/tmp/camd.socket");
@@ -892,7 +888,7 @@ void eDVBCAService::Connect()
                        int val=1;
                        fcntl(m_sock, F_SETFL, O_NONBLOCK);
                        setsockopt(m_sock, SOL_SOCKET, SO_REUSEADDR, &val, 4);
-                       m_sn = new eSocketNotifier(eApp, m_sock,
+                       m_sn = eSocketNotifier::create(eApp, m_sock,
                                eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup);
                        CONNECT(m_sn->activated, eDVBCAService::socketCB);