- std::map<iDVBChannel*, TDT*>::iterator it =
- m_active_tables.find(chan);
- if ( it != m_active_tables.end() )
- {
- delete it->second;
- it->second = new TDT(chan);
- }
- else
- m_active_tables[chan] = new TDT(chan);
+// eDebug("[eDVBLocalTimerHandler] add channel %p", chan);
+ std::pair<std::map<iDVBChannel*, channel_data>::iterator, bool> tmp =
+ m_knownChannels.insert( std::pair<iDVBChannel*, channel_data>(chan, channel_data()) );
+ tmp.first->second.tdt = new TDT(chan);
+ tmp.first->second.channel = chan;
+ chan->connectStateChange(slot(*this, &eDVBLocalTimeHandler::DVBChannelStateChanged), tmp.first->second.m_stateChangedConn);