MythTV  master
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
ChannelScanSM Class Reference

Scanning class for cards that support a SignalMonitor class. More...

#include <channelscan_sm.h>

Inheritance diagram for ChannelScanSM:
Inheritance graph
[legend]
Collaboration diagram for ChannelScanSM:
Collaboration graph
[legend]

Public Types

using chan_info_map_t = QMap< uint, ChannelInsertInfo >
 

Public Member Functions

 ChannelScanSM (ScanMonitor *_scan_monitor, const QString &_cardtype, ChannelBase *_channel, int _sourceID, std::chrono::milliseconds signal_timeout, std::chrono::milliseconds channel_timeout, QString _inputname, bool test_decryption)
 
 ~ChannelScanSM () override
 
void StartScanner (void)
 Starts the ChannelScanSM event loop. More...
 
void StopScanner (void)
 Stops the ChannelScanSM event loop and the signal monitor, blocking until both exit. More...
 
bool ScanTransports (int SourceID, const QString &std, const QString &mod, const QString &country, const QString &table_start=QString(), const QString &table_end=QString())
 Generates a list of frequencies to scan and adds it to the scanTransport list, and then sets the scanning to TRANSPORT_LIST. More...
 
bool ScanTransportsStartingOn (int sourceid, const QMap< QString, QString > &startChan)
 Generates a list of frequencies to scan and adds it to the scanTransport list, and then sets the scanning to TRANSPORT_LIST. More...
 
bool ScanTransport (uint mplexid, bool follow_nit)
 
bool ScanCurrentTransport (const QString &sistandard)
 
bool ScanForChannels (uint sourceid, const QString &std, const QString &cardtype, const DTVChannelList &channels)
 
bool ScanIPTVChannels (uint sourceid, const fbox_chan_map_t &iptv_channels)
 
bool ScanExistingTransports (uint sourceid, bool follow_nit)
 If we are not already scanning a frequency table, this creates a new frequency table from database and begins scanning it. More...
 
void SetAnalog (bool is_analog)
 
void SetSourceID (int SourceID)
 
void SetSignalTimeout (std::chrono::milliseconds val)
 
void SetChannelTimeout (std::chrono::milliseconds val)
 
void SetScanDTVTunerType (DTVTunerType t)
 
void SetScanDTVTunerType (int t)
 
std::chrono::milliseconds GetSignalTimeout (void) const
 
std::chrono::milliseconds GetChannelTimeout (void) const
 
SignalMonitorGetSignalMonitor (void)
 
DTVSignalMonitorGetDTVSignalMonitor (void)
 
DVBSignalMonitorGetDVBSignalMonitor (void)
 
chan_info_map_t GetChannelList (transport_scan_items_it_t trans_info, ScannedChannelInfo *scan_info) const
 
uint GetCurrentTransportInfo (QString &chan, QString &chan_tr) const
 
ScanDTVTransportList GetChannelList (bool addFullTS) const
 
void HandlePAT (const ProgramAssociationTable *pat) override
 
void HandleCAT (const ConditionalAccessTable *cat) override
 
void HandlePMT (uint program_num, const ProgramMapTable *pmt) override
 
void HandleEncryptionStatus (uint pnum, bool encrypted) override
 
void HandleSTT (const SystemTimeTable *) override
 
void HandleMGT (const MasterGuideTable *mgt) override
 
void HandleVCT (uint tsid, const VirtualChannelTable *vct) override
 
void HandleNIT (const NetworkInformationTable *nit) override
 
void HandleSDT (uint tsid, const ServiceDescriptionTable *sdt) override
 
void HandleTDT (const TimeDateTable *) override
 
void HandleNITo (const NetworkInformationTable *) override
 
void HandleSDTo (uint tsid, const ServiceDescriptionTable *sdt) override
 
void HandleBAT (const BouquetAssociationTable *bat) override
 
- Public Member Functions inherited from MPEGStreamListener
virtual void HandleSplice (const SpliceInformationTable *)
 

Private Member Functions

DTVChannelGetDTVChannel (void)
 
const DTVChannelGetDTVChannel (void) const
 
V4LChannelGetV4LChannel (void)
 
HDHRChannelGetHDHRChannel (void)
 
DVBChannelGetDVBChannel (void)
 
const DVBChannelGetDVBChannel (void) const
 
void run (void) override
 This runs the event loop for ChannelScanSM until 'threadExit' is true. More...
 
bool HasTimedOut (void)
 
void HandleActiveScan (void)
 Handles the TRANSPORT_LIST ChannelScanSM mode. More...
 
bool Tune (transport_scan_items_it_t transport)
 
void ScanTransport (transport_scan_items_it_t transport)
 
DTVTunerType GuessDTVTunerType (DTVTunerType type) const
 
void UpdateScanPercentCompleted (void)
 
bool CheckImportedList (const DTVChannelInfoList &channels, uint mpeg_program_num, QString &service_name, QString &callsign, QString &common_status_info)
 If we are scanning a dvb-utils import verify channel is in list. More...
 
void IgnoreDataOnlyMsg (const QString &name, int aux_num)
 
void IgnoreEmptyChanMsg (const QString &name, int aux_num)
 
void IgnoreAudioOnlyMsg (const QString &name, int aux_num)
 
void IgnoreEncryptedMsg (const QString &name, int aux_num)
 
bool TestNextProgramEncryption (void)
 
void UpdateScanTransports (uint frequency, const NetworkInformationTable *nit)
 
bool UpdateChannelInfo (bool wait_until_complete)
 
void HandleAllGood (void)
 
bool AddToList (uint mplexid)
 

Static Private Member Functions

static void LogLines (const QString &string)
 
static QString loc (const ChannelScanSM *siscan)
 

Private Attributes

ScanMonitorm_scanMonitor
 
ChannelBasem_channel
 
SignalMonitorm_signalMonitor
 
int m_sourceID
 
std::chrono::milliseconds m_signalTimeout
 
std::chrono::milliseconds m_channelTimeout
 
std::chrono::milliseconds m_otherTableTimeout {0ms}
 
std::chrono::milliseconds m_otherTableTime {0ms}
 
bool m_setOtherTables {false}
 
QString m_inputName
 
bool m_testDecryption
 
bool m_extendScanList {false}
 
uint m_frequency {0}
 
uint m_bouquetId {0}
 
uint m_regionId {0}
 
uint m_nitId {0}
 
uint m_lcnOffset {0}
 
DTVTunerType m_scanDTVTunerType {DTVTunerType::kTunerTypeUnknown}
 
QMutex m_lock
 The big lock. More...
 
bool m_scanning {false}
 
volatile bool m_threadExit {false}
 
bool m_waitingForTables {false}
 
QElapsedTimer m_timer
 
int m_transportsScanned {0}
 
QSet< uint32_t > m_tsScanned
 
QMap< uint32_t, DTVMultiplexm_extendTransports
 
transport_scan_items_t m_scanTransports
 
transport_scan_items_it_t m_current
 
transport_scan_items_it_t m_nextIt
 
bool m_currentTestingDecryption {false}
 
QMap< uint, uintm_currentEncryptionStatus
 
QMap< uint, boolm_currentEncryptionStatusChecked
 
QMap< uint64_t, QString > m_defAuthorities
 
bool m_dvbt2Tried {false}
 
ChannelList m_channelList
 Found Channel Info. More...
 
uint m_channelsFound {0}
 
ScannedChannelInfom_currentInfo {nullptr}
 
AnalogSignalHandlerm_analogSignalHandler {nullptr}
 
MThreadm_scannerThread {nullptr}
 
QMutex m_mutex
 

Static Private Attributes

static const std::chrono::milliseconds kDVBTableTimeout = 30s
 SDT's should be sent every 2 seconds and NIT's every 10 seconds, so lets wait at least 30 seconds, in case of bad transmitter or lost packets. More...
 
static const std::chrono::milliseconds kATSCTableTimeout = 10s
 No logic here, lets just wait at least 10 seconds. More...
 
static const std::chrono::milliseconds kMPEGTableTimeout = 15s
 No logic here, lets just wait at least 15 seconds. More...
 

Friends

class AnalogSignalHandler
 

Additional Inherited Members

- Protected Member Functions inherited from MPEGStreamListener
virtual ~MPEGStreamListener ()=default
 
- Protected Member Functions inherited from ATSCMainStreamListener
virtual ~ATSCMainStreamListener ()=default
 
- Protected Member Functions inherited from DVBMainStreamListener
virtual ~DVBMainStreamListener ()=default
 
- Protected Member Functions inherited from DVBOtherStreamListener
virtual ~DVBOtherStreamListener ()=default
 

Detailed Description

Scanning class for cards that support a SignalMonitor class.

With ScanStreamData, we call ScanTransport() on each transport and frequency offset in the list of transports. This list is created from a FrequencyTable object.

Each ScanTransport() call resets the ScanStreamData and the SignalMonitor, then tunes to a new frequency and notes the tuning time in the "timer" QTime object.

HandleActiveScan is called every time through the event loop and is what calls ScanTransport(), as well as checking when the current time is "timeoutTune" or "channelTimeout" milliseconds ahead of "timer". When the "timeoutTune" is exceeded we check to see if we have a signal lock on the channel, if we don't we check the next transport. When the larger "channelTimeout" is exceeded we do nothing unless "waitingForTables" is still true,

TODO

Definition at line 85 of file channelscan_sm.h.

Member Typedef Documentation

◆ chan_info_map_t

Definition at line 132 of file channelscan_sm.h.

Constructor & Destructor Documentation

◆ ChannelScanSM()

ChannelScanSM::ChannelScanSM ( ScanMonitor _scan_monitor,
const QString &  _cardtype,
ChannelBase _channel,
int  _sourceID,
std::chrono::milliseconds  signal_timeout,
std::chrono::milliseconds  channel_timeout,
QString  _inputname,
bool  test_decryption 
)

Definition at line 144 of file channelscan_sm.cpp.

◆ ~ChannelScanSM()

ChannelScanSM::~ChannelScanSM ( )
override

Definition at line 217 of file channelscan_sm.cpp.

Member Function Documentation

◆ StartScanner()

void ChannelScanSM::StartScanner ( void  )

Starts the ChannelScanSM event loop.

Definition at line 1969 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ StopScanner()

void ChannelScanSM::StopScanner ( void  )

Stops the ChannelScanSM event loop and the signal monitor, blocking until both exit.

Definition at line 2261 of file channelscan_sm.cpp.

Referenced by ChannelScannerCLI::HandleEvent(), ChannelScannerGUI::HandleEvent(), and ~ChannelScanSM().

◆ ScanTransports()

bool ChannelScanSM::ScanTransports ( int  SourceID,
const QString &  std,
const QString &  mod,
const QString &  country,
const QString &  table_start = QString(),
const QString &  table_end = QString() 
)

Generates a list of frequencies to scan and adds it to the scanTransport list, and then sets the scanning to TRANSPORT_LIST.

Definition at line 2283 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ ScanTransportsStartingOn()

bool ChannelScanSM::ScanTransportsStartingOn ( int  sourceid,
const QMap< QString, QString > &  startChan 
)

Generates a list of frequencies to scan and adds it to the scanTransport list, and then sets the scanning to TRANSPORT_LIST.

Definition at line 2453 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ ScanTransport() [1/2]

bool ChannelScanSM::ScanTransport ( uint  mplexid,
bool  follow_nit 
)

Definition at line 2583 of file channelscan_sm.cpp.

Referenced by HandleActiveScan(), and ChannelScanner::Scan().

◆ ScanCurrentTransport()

bool ChannelScanSM::ScanCurrentTransport ( const QString &  sistandard)

Definition at line 2605 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ ScanForChannels()

bool ChannelScanSM::ScanForChannels ( uint  sourceid,
const QString &  std,
const QString &  cardtype,
const DTVChannelList channels 
)

Definition at line 2374 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ ScanIPTVChannels()

bool ChannelScanSM::ScanIPTVChannels ( uint  sourceid,
const fbox_chan_map_t iptv_channels 
)

Definition at line 2414 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ ScanExistingTransports()

bool ChannelScanSM::ScanExistingTransports ( uint  sourceid,
bool  follow_nit 
)

If we are not already scanning a frequency table, this creates a new frequency table from database and begins scanning it.

This is used by DVB to scan for channels we are told about from other channels.

Note: Something similar could be used with ATSC when EIT for other channels is available on another ATSC channel, as encouraged by the ATSC specification.

Definition at line 321 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ SetAnalog()

void ChannelScanSM::SetAnalog ( bool  is_analog)

Definition at line 246 of file channelscan_sm.cpp.

Referenced by ChannelScanner::Scan().

◆ SetSourceID()

void ChannelScanSM::SetSourceID ( int  SourceID)
inline

Definition at line 119 of file channelscan_sm.h.

◆ SetSignalTimeout()

void ChannelScanSM::SetSignalTimeout ( std::chrono::milliseconds  val)
inline

Definition at line 120 of file channelscan_sm.h.

Referenced by ChannelScanner::Scan().

◆ SetChannelTimeout()

void ChannelScanSM::SetChannelTimeout ( std::chrono::milliseconds  val)
inline

Definition at line 121 of file channelscan_sm.h.

◆ SetScanDTVTunerType() [1/2]

void ChannelScanSM::SetScanDTVTunerType ( DTVTunerType  t)
inline

Definition at line 122 of file channelscan_sm.h.

Referenced by ChannelScanner::PreScanCommon().

◆ SetScanDTVTunerType() [2/2]

void ChannelScanSM::SetScanDTVTunerType ( int  t)
inline

Definition at line 123 of file channelscan_sm.h.

◆ GetSignalTimeout()

std::chrono::milliseconds ChannelScanSM::GetSignalTimeout ( void  ) const
inline

Definition at line 125 of file channelscan_sm.h.

Referenced by ChannelScanner::Scan().

◆ GetChannelTimeout()

std::chrono::milliseconds ChannelScanSM::GetChannelTimeout ( void  ) const
inline

Definition at line 126 of file channelscan_sm.h.

◆ GetSignalMonitor()

SignalMonitor* ChannelScanSM::GetSignalMonitor ( void  )
inline

Definition at line 128 of file channelscan_sm.h.

Referenced by HasTimedOut(), ChannelScanner::PreScanCommon(), and UpdateChannelInfo().

◆ GetDTVSignalMonitor()

DTVSignalMonitor * ChannelScanSM::GetDTVSignalMonitor ( void  )

◆ GetDVBSignalMonitor()

DVBSignalMonitor * ChannelScanSM::GetDVBSignalMonitor ( void  )

Definition at line 1911 of file channelscan_sm.cpp.

Referenced by HasTimedOut(), ChannelScanner::PreScanCommon(), and Tune().

◆ GetChannelList() [1/2]

QMap< uint, ChannelInsertInfo > ChannelScanSM::GetChannelList ( transport_scan_items_it_t  trans_info,
ScannedChannelInfo scan_info 
) const

◆ GetCurrentTransportInfo()

uint ChannelScanSM::GetCurrentTransportInfo ( QString &  chan,
QString &  chan_tr 
) const

Definition at line 1321 of file channelscan_sm.cpp.

Referenced by TestNextProgramEncryption(), and UpdateChannelInfo().

◆ GetChannelList() [2/2]

ScanDTVTransportList ChannelScanSM::GetChannelList ( bool  addFullTS) const

Definition at line 1815 of file channelscan_sm.cpp.

◆ HandlePAT()

void ChannelScanSM::HandlePAT ( const ProgramAssociationTable pat)
overridevirtual

Implements MPEGStreamListener.

Definition at line 376 of file channelscan_sm.cpp.

◆ HandleCAT()

void ChannelScanSM::HandleCAT ( const ConditionalAccessTable cat)
overridevirtual

Implements MPEGStreamListener.

Definition at line 393 of file channelscan_sm.cpp.

◆ HandlePMT()

void ChannelScanSM::HandlePMT ( uint  program_num,
const ProgramMapTable pmt 
)
overridevirtual

Implements MPEGStreamListener.

Definition at line 403 of file channelscan_sm.cpp.

◆ HandleEncryptionStatus()

void ChannelScanSM::HandleEncryptionStatus ( uint  pnum,
bool  encrypted 
)
overridevirtual

Implements MPEGStreamListener.

Definition at line 613 of file channelscan_sm.cpp.

◆ HandleSTT()

void ChannelScanSM::HandleSTT ( const SystemTimeTable )
inlineoverridevirtual

Implements ATSCMainStreamListener.

Definition at line 145 of file channelscan_sm.h.

◆ HandleMGT()

void ChannelScanSM::HandleMGT ( const MasterGuideTable mgt)
overridevirtual

Implements ATSCMainStreamListener.

Definition at line 439 of file channelscan_sm.cpp.

◆ HandleVCT()

void ChannelScanSM::HandleVCT ( uint  tsid,
const VirtualChannelTable vct 
)
overridevirtual

Implements ATSCMainStreamListener.

Definition at line 419 of file channelscan_sm.cpp.

◆ HandleNIT()

void ChannelScanSM::HandleNIT ( const NetworkInformationTable nit)
overridevirtual

Implements DVBMainStreamListener.

Definition at line 506 of file channelscan_sm.cpp.

◆ HandleSDT()

void ChannelScanSM::HandleSDT ( uint  tsid,
const ServiceDescriptionTable sdt 
)
overridevirtual
Parameters
tsidUnused. Present so that the HandleSDT and HandleSDTo functions have the same type signature.
sdtA pointer to the service description table.

Implements DVBMainStreamListener.

Definition at line 457 of file channelscan_sm.cpp.

◆ HandleTDT()

void ChannelScanSM::HandleTDT ( const TimeDateTable )
inlineoverridevirtual

Implements DVBMainStreamListener.

Definition at line 152 of file channelscan_sm.h.

◆ HandleNITo()

void ChannelScanSM::HandleNITo ( const NetworkInformationTable )
inlineoverridevirtual

Implements DVBOtherStreamListener.

Definition at line 155 of file channelscan_sm.h.

◆ HandleSDTo()

void ChannelScanSM::HandleSDTo ( uint  tsid,
const ServiceDescriptionTable sdt 
)
overridevirtual

Implements DVBOtherStreamListener.

Definition at line 574 of file channelscan_sm.cpp.

◆ HandleBAT()

void ChannelScanSM::HandleBAT ( const BouquetAssociationTable bat)
overridevirtual

Implements DVBOtherStreamListener.

Definition at line 519 of file channelscan_sm.cpp.

◆ GetDTVChannel() [1/2]

DTVChannel * ChannelScanSM::GetDTVChannel ( void  )
private

Definition at line 1920 of file channelscan_sm.cpp.

Referenced by GetChannelList(), GuessDTVTunerType(), HandlePMT(), and Tune().

◆ GetDTVChannel() [2/2]

const DTVChannel * ChannelScanSM::GetDTVChannel ( void  ) const
private

Definition at line 1925 of file channelscan_sm.cpp.

◆ GetV4LChannel()

V4LChannel * ChannelScanSM::GetV4LChannel ( void  )
private

Definition at line 1957 of file channelscan_sm.cpp.

◆ GetHDHRChannel()

HDHRChannel * ChannelScanSM::GetHDHRChannel ( void  )
private

Definition at line 1930 of file channelscan_sm.cpp.

◆ GetDVBChannel() [1/2]

DVBChannel * ChannelScanSM::GetDVBChannel ( void  )
private

Definition at line 1939 of file channelscan_sm.cpp.

Referenced by HasTimedOut(), and TestNextProgramEncryption().

◆ GetDVBChannel() [2/2]

const DVBChannel * ChannelScanSM::GetDVBChannel ( void  ) const
private

Definition at line 1948 of file channelscan_sm.cpp.

◆ run()

void ChannelScanSM::run ( void  )
overrideprivate

This runs the event loop for ChannelScanSM until 'threadExit' is true.

Definition at line 1988 of file channelscan_sm.cpp.

◆ HasTimedOut()

bool ChannelScanSM::HasTimedOut ( void  )
private

Definition at line 2004 of file channelscan_sm.cpp.

Referenced by HandleActiveScan(), and UpdateChannelInfo().

◆ HandleActiveScan()

void ChannelScanSM::HandleActiveScan ( void  )
private

Handles the TRANSPORT_LIST ChannelScanSM mode.

Definition at line 2085 of file channelscan_sm.cpp.

Referenced by run().

◆ Tune()

bool ChannelScanSM::Tune ( transport_scan_items_it_t  transport)
private

Definition at line 2160 of file channelscan_sm.cpp.

Referenced by ScanTransport().

◆ ScanTransport() [2/2]

void ChannelScanSM::ScanTransport ( transport_scan_items_it_t  transport)
private

Definition at line 2203 of file channelscan_sm.cpp.

◆ GuessDTVTunerType()

DTVTunerType ChannelScanSM::GuessDTVTunerType ( DTVTunerType  type) const
private

Definition at line 710 of file channelscan_sm.cpp.

Referenced by AddToList(), GetChannelList(), and UpdateScanTransports().

◆ LogLines()

void ChannelScanSM::LogLines ( const QString &  string)
staticprivate

◆ UpdateScanPercentCompleted()

void ChannelScanSM::UpdateScanPercentCompleted ( void  )
inlineprivate

Definition at line 267 of file channelscan_sm.h.

Referenced by HandleAllGood(), ScanTransport(), and UpdateChannelInfo().

◆ CheckImportedList()

bool ChannelScanSM::CheckImportedList ( const DTVChannelInfoList channels,
uint  mpeg_program_num,
QString &  service_name,
QString &  callsign,
QString &  common_status_info 
)
private

If we are scanning a dvb-utils import verify channel is in list.

Definition at line 2627 of file channelscan_sm.cpp.

◆ IgnoreDataOnlyMsg()

void ChannelScanSM::IgnoreDataOnlyMsg ( const QString &  name,
int  aux_num 
)
private

◆ IgnoreEmptyChanMsg()

void ChannelScanSM::IgnoreEmptyChanMsg ( const QString &  name,
int  aux_num 
)
private

◆ IgnoreAudioOnlyMsg()

void ChannelScanSM::IgnoreAudioOnlyMsg ( const QString &  name,
int  aux_num 
)
private

◆ IgnoreEncryptedMsg()

void ChannelScanSM::IgnoreEncryptedMsg ( const QString &  name,
int  aux_num 
)
private

◆ TestNextProgramEncryption()

bool ChannelScanSM::TestNextProgramEncryption ( void  )
private

Definition at line 625 of file channelscan_sm.cpp.

Referenced by UpdateChannelInfo().

◆ UpdateScanTransports()

void ChannelScanSM::UpdateScanTransports ( uint  frequency,
const NetworkInformationTable nit 
)
private

Definition at line 734 of file channelscan_sm.cpp.

Referenced by UpdateChannelInfo().

◆ UpdateChannelInfo()

bool ChannelScanSM::UpdateChannelInfo ( bool  wait_until_complete)
private

◆ HandleAllGood()

void ChannelScanSM::HandleAllGood ( void  )
private

Definition at line 254 of file channelscan_sm.cpp.

Referenced by AnalogSignalHandler::AllGood().

◆ AddToList()

bool ChannelScanSM::AddToList ( uint  mplexid)
private

Definition at line 2515 of file channelscan_sm.cpp.

Referenced by ScanExistingTransports(), and ScanTransport().

◆ loc()

QString ChannelScanSM::loc ( const ChannelScanSM siscan)
staticprivate

Definition at line 80 of file channelscan_sm.cpp.

Friends And Related Function Documentation

◆ AnalogSignalHandler

friend class AnalogSignalHandler
friend

Definition at line 91 of file channelscan_sm.h.

Member Data Documentation

◆ kDVBTableTimeout

const std::chrono::milliseconds ChannelScanSM::kDVBTableTimeout = 30s
staticprivate

SDT's should be sent every 2 seconds and NIT's every 10 seconds, so lets wait at least 30 seconds, in case of bad transmitter or lost packets.

Definition at line 201 of file channelscan_sm.h.

Referenced by HasTimedOut().

◆ kATSCTableTimeout

const std::chrono::milliseconds ChannelScanSM::kATSCTableTimeout = 10s
staticprivate

No logic here, lets just wait at least 10 seconds.

Definition at line 202 of file channelscan_sm.h.

Referenced by HasTimedOut().

◆ kMPEGTableTimeout

const std::chrono::milliseconds ChannelScanSM::kMPEGTableTimeout = 15s
staticprivate

No logic here, lets just wait at least 15 seconds.

Definition at line 203 of file channelscan_sm.h.

Referenced by HasTimedOut().

◆ m_scanMonitor

ScanMonitor* ChannelScanSM::m_scanMonitor
private

◆ m_channel

ChannelBase* ChannelScanSM::m_channel
private

◆ m_signalMonitor

SignalMonitor* ChannelScanSM::m_signalMonitor
private

◆ m_sourceID

int ChannelScanSM::m_sourceID
private

◆ m_signalTimeout

std::chrono::milliseconds ChannelScanSM::m_signalTimeout
private

◆ m_channelTimeout

std::chrono::milliseconds ChannelScanSM::m_channelTimeout
private

Definition at line 212 of file channelscan_sm.h.

Referenced by GetChannelTimeout(), HasTimedOut(), and SetChannelTimeout().

◆ m_otherTableTimeout

std::chrono::milliseconds ChannelScanSM::m_otherTableTimeout {0ms}
private

Definition at line 213 of file channelscan_sm.h.

Referenced by HandleBAT(), HandleSDT(), and HandleSDTo().

◆ m_otherTableTime

std::chrono::milliseconds ChannelScanSM::m_otherTableTime {0ms}
private

Definition at line 214 of file channelscan_sm.h.

Referenced by HandleBAT(), HandleSDT(), HandleSDTo(), and UpdateChannelInfo().

◆ m_setOtherTables

bool ChannelScanSM::m_setOtherTables {false}
private

Definition at line 215 of file channelscan_sm.h.

Referenced by HandleSDT(), and UpdateChannelInfo().

◆ m_inputName

QString ChannelScanSM::m_inputName
private

Definition at line 216 of file channelscan_sm.h.

Referenced by Tune(), and UpdateChannelInfo().

◆ m_testDecryption

bool ChannelScanSM::m_testDecryption
private

Definition at line 217 of file channelscan_sm.h.

Referenced by TestNextProgramEncryption(), and UpdateChannelInfo().

◆ m_extendScanList

bool ChannelScanSM::m_extendScanList {false}
private

◆ m_frequency

uint ChannelScanSM::m_frequency {0}
private

Definition at line 221 of file channelscan_sm.h.

◆ m_bouquetId

uint ChannelScanSM::m_bouquetId {0}
private

Definition at line 222 of file channelscan_sm.h.

Referenced by ChannelScanSM(), and GetChannelList().

◆ m_regionId

uint ChannelScanSM::m_regionId {0}
private

Definition at line 223 of file channelscan_sm.h.

Referenced by ChannelScanSM(), and GetChannelList().

◆ m_nitId

uint ChannelScanSM::m_nitId {0}
private

Definition at line 224 of file channelscan_sm.h.

Referenced by ChannelScanSM().

◆ m_lcnOffset

uint ChannelScanSM::m_lcnOffset {0}
private

Definition at line 225 of file channelscan_sm.h.

Referenced by ChannelScanSM(), and GetChannelList().

◆ m_scanDTVTunerType

DTVTunerType ChannelScanSM::m_scanDTVTunerType {DTVTunerType::kTunerTypeUnknown}
private

◆ m_lock

QMutex ChannelScanSM::m_lock
mutableprivate

◆ m_scanning

bool ChannelScanSM::m_scanning {false}
private

◆ m_threadExit

volatile bool ChannelScanSM::m_threadExit {false}
private

Definition at line 235 of file channelscan_sm.h.

Referenced by run(), StartScanner(), and StopScanner().

◆ m_waitingForTables

bool ChannelScanSM::m_waitingForTables {false}
private

◆ m_timer

QElapsedTimer ChannelScanSM::m_timer
private

◆ m_transportsScanned

int ChannelScanSM::m_transportsScanned {0}
private

◆ m_tsScanned

QSet<uint32_t> ChannelScanSM::m_tsScanned
private

Definition at line 241 of file channelscan_sm.h.

Referenced by HandleActiveScan(), HandleSDT(), and UpdateScanTransports().

◆ m_extendTransports

QMap<uint32_t,DTVMultiplex> ChannelScanSM::m_extendTransports
private

◆ m_scanTransports

transport_scan_items_t ChannelScanSM::m_scanTransports
private

◆ m_current

transport_scan_items_it_t ChannelScanSM::m_current
private

◆ m_nextIt

transport_scan_items_it_t ChannelScanSM::m_nextIt
private

◆ m_currentTestingDecryption

bool ChannelScanSM::m_currentTestingDecryption {false}
private

◆ m_currentEncryptionStatus

QMap<uint, uint> ChannelScanSM::m_currentEncryptionStatus
private

◆ m_currentEncryptionStatusChecked

QMap<uint, bool> ChannelScanSM::m_currentEncryptionStatusChecked
private

Definition at line 248 of file channelscan_sm.h.

Referenced by TestNextProgramEncryption(), and UpdateChannelInfo().

◆ m_defAuthorities

QMap<uint64_t, QString> ChannelScanSM::m_defAuthorities
private

Definition at line 249 of file channelscan_sm.h.

Referenced by GetChannelList(), HandleBAT(), and HandleSDTo().

◆ m_dvbt2Tried

bool ChannelScanSM::m_dvbt2Tried {false}
private

Definition at line 250 of file channelscan_sm.h.

Referenced by HandleActiveScan(), HandleAllGood(), Tune(), and UpdateChannelInfo().

◆ m_channelList

ChannelList ChannelScanSM::m_channelList
private

Found Channel Info.

Definition at line 253 of file channelscan_sm.h.

Referenced by GetChannelList(), HandleActiveScan(), and UpdateChannelInfo().

◆ m_channelsFound

uint ChannelScanSM::m_channelsFound {0}
private

Definition at line 254 of file channelscan_sm.h.

Referenced by HandleActiveScan(), ScanTransport(), and UpdateChannelInfo().

◆ m_currentInfo

ScannedChannelInfo* ChannelScanSM::m_currentInfo {nullptr}
private

◆ m_analogSignalHandler

AnalogSignalHandler* ChannelScanSM::m_analogSignalHandler {nullptr}
private

Definition at line 258 of file channelscan_sm.h.

Referenced by SetAnalog(), and ~ChannelScanSM().

◆ m_scannerThread

MThread* ChannelScanSM::m_scannerThread {nullptr}
private

Definition at line 261 of file channelscan_sm.h.

Referenced by StartScanner(), and StopScanner().

◆ m_mutex

QMutex ChannelScanSM::m_mutex
private

Definition at line 264 of file channelscan_sm.h.

Referenced by UpdateChannelInfo().


The documentation for this class was generated from the following files: