MythTV
master
|
#include <libmythtv/recorders/iptvsignalmonitor.h>
Public Member Functions | |
IPTVSignalMonitor (int db_cardnum, IPTVChannel *_channel, bool _release_stream, uint64_t _flags=0) | |
Initializes signal lock and signal values. More... | |
~IPTVSignalMonitor () override | |
Stops signal monitoring and table monitoring threads. More... | |
void | Stop (void) override |
Stop signal monitoring and table monitoring threads. More... | |
void | SetStreamData (MPEGStreamData *data) override |
Sets the MPEG stream data for DTVSignalMonitor to use, and connects the table signals to the monitor. More... | |
void | HandlePAT (const ProgramAssociationTable *pat) override |
Public Member Functions inherited from DTVSignalMonitor | |
DTVSignalMonitor (int db_cardnum, DTVChannel *_channel, bool _release_stream, uint64_t wait_for_mask) | |
~DTVSignalMonitor () override | |
QStringList | GetStatusList (void) const override |
Returns QStringList containing all signals and their current values. More... | |
void | SetChannel (int major, int minor) |
int | GetMajorChannel () const |
int | GetMinorChannel () const |
void | SetProgramNumber (int progNum) |
int | GetProgramNumber () const |
void | SetDVBService (uint network_id, uint transport_id, int service_id) |
uint | GetTransportID (void) const |
uint | GetNetworkID (void) const |
int | GetServiceID (void) const |
uint | GetDetectedNetworkID (void) const |
uint | GetDetectedTransportID (void) const |
virtual void | SetRotorTarget (float) |
Sets rotor target pos from 0.0 to 1.0. More... | |
virtual void | GetRotorStatus (bool &was_moving, bool &is_moving) |
virtual void | SetRotorValue (int) |
void | AddFlags (uint64_t _flags) override |
void | RemoveFlags (uint64_t _flags) override |
MPEGStreamData * | GetStreamData () |
Returns the MPEG stream data if it exists. More... | |
ATSCStreamData * | GetATSCStreamData () |
Returns the ATSC stream data if it exists. More... | |
DVBStreamData * | GetDVBStreamData () |
Returns the DVB stream data if it exists. More... | |
ScanStreamData * | GetScanStreamData () |
Returns the scan stream data if it exists. More... | |
const MPEGStreamData * | GetStreamData () const |
Returns the MPEG stream data if it exists. More... | |
const ATSCStreamData * | GetATSCStreamData () const |
Returns the ATSC stream data if it exists. More... | |
const DVBStreamData * | GetDVBStreamData () const |
Returns the DVB stream data if it exists. More... | |
const ScanStreamData * | GetScanStreamData () const |
Returns the scan stream data if it exists. More... | |
bool | IsAllGood (void) const override |
void | HandleCAT (const ConditionalAccessTable *) override |
void | HandlePMT (uint program_num, const ProgramMapTable *pmt) override |
void | HandleEncryptionStatus (uint pnum, bool enc_status) override |
void | HandleSTT (const SystemTimeTable *stt) override |
void | HandleVCT (uint, const VirtualChannelTable *) override |
void | HandleMGT (const MasterGuideTable *mgt) override |
void | HandleTVCT (uint pid, const TerrestrialVirtualChannelTable *tvct) override |
void | HandleCVCT (uint pid, const CableVirtualChannelTable *cvct) override |
void | HandleRRT (const RatingRegionTable *) override |
void | HandleDCCT (const DirectedChannelChangeTable *) override |
void | HandleDCCSCT (const DirectedChannelChangeSelectionCodeTable *) override |
void | HandleTDT (const TimeDateTable *tdt) override |
void | HandleNIT (const NetworkInformationTable *nit) override |
void | HandleSDT (uint tsid, const ServiceDescriptionTable *sdt) override |
void | IgnoreEncrypted (bool ignore) |
Public Member Functions inherited from SignalMonitor | |
~SignalMonitor () override | |
Stops monitoring thread. More... | |
SignalMonitor (int, ChannelBase *, uint64_t, bool)=delete | |
virtual void | Start () |
Start signal monitoring thread. More... | |
bool | HasFlags (uint64_t _flags) const |
bool | HasAnyFlag (uint64_t _flags) const |
uint64_t | GetFlags (void) const |
virtual bool | HasExtraSlowTuning (void) const |
bool | GetNotifyFrontend () const |
Returns whether or not a SIGNAL MythEvent is being sent regularly to the frontend. More... | |
std::chrono::milliseconds | GetUpdateRate () const |
Returns milliseconds between signal monitoring events. More... | |
int | GetSignalStrength (void) |
bool | HasSignalLock (void) const |
Returns true iff scriptStatus.IsGood() and signalLock.IsGood() return true. More... | |
bool | IsErrored (void) const |
void | SetNotifyFrontend (bool notify) |
Enables or disables frontend notification of the current signal value. More... | |
void | SetMonitoring (TVRec *parent, bool EITscan, bool monitor) |
Indicate if table monitoring is needed. More... | |
void | SetUpdateRate (std::chrono::milliseconds msec) |
Sets the number of milliseconds between signal monitoring attempts in the signal monitoring thread. More... | |
void | AddListener (SignalMonitorListener *listener) |
void | RemoveListener (SignalMonitorListener *listener) |
void | SendMessage (SignalMonitorMessageType type, const SignalMonitorValue &val) |
void | SendMessageAllGood (void) |
virtual void | EmitStatus (void) |
Public Member Functions inherited from MPEGStreamListener | |
virtual void | HandleSplice (const SpliceInformationTable *) |
Protected Member Functions | |
IPTVSignalMonitor (void) | |
IPTVSignalMonitor (const IPTVSignalMonitor &) | |
void | UpdateValues (void) override |
Fills in frontend stats and emits status Qt signals. More... | |
IPTVChannel * | GetIPTVChannel (void) |
Protected Member Functions inherited from DTVSignalMonitor | |
DTVChannel * | GetDTVChannel (void) |
void | UpdateMonitorValues (void) |
void | UpdateListeningForEIT (void) |
Protected Member Functions inherited from SignalMonitor | |
SignalMonitor (int _inputid, ChannelBase *_channel, bool _release_stream, uint64_t wait_for_mask) | |
Initializes signal lock and signal values. More... | |
void | run (void) override |
Basic signal monitoring loop. More... | |
Protected Member Functions inherited from MThread | |
int | exec (void) |
Enters the qt event loop. call exit or quit to exit thread. More... | |
MThread (const QString &objectName) | |
Standard constructor. More... | |
MThread (const QString &objectName, QRunnable *runnable) | |
Use this constructor if you want the default run() method to run the QRunnable's run() method instead of entering the Qt event loop. More... | |
virtual | ~MThread () |
MThread (const MThread &)=delete | |
MThread & | operator= (const MThread &)=delete |
void | RunProlog (void) |
Sets up a thread, call this if you reimplement run(). More... | |
void | RunEpilog (void) |
Cleans up a thread's resources, call this if you reimplement run(). More... | |
QThread * | qthread (void) |
Returns the thread, this will always return the same pointer no matter how often you restart the thread. More... | |
void | setObjectName (const QString &name) |
QString | objectName (void) const |
void | setPriority (QThread::Priority priority) |
QThread::Priority | priority (void) const |
bool | isFinished (void) const |
bool | isRunning (void) const |
void | setStackSize (uint stackSize) |
uint | stackSize (void) const |
void | exit (int retcode=0) |
Use this to exit from the thread if you are using a Qt event loop. More... | |
void | start (QThread::Priority p=QThread::InheritPriority) |
Tell MThread to start running the thread in the near future. More... | |
void | terminate (void) |
Kill a thread unsafely. More... | |
void | quit (void) |
calls exit(0) More... | |
bool | wait (std::chrono::milliseconds time=std::chrono::milliseconds::max()) |
Wait for the MThread to exit, with a maximum timeout. More... | |
Protected Member Functions inherited from MPEGStreamListener | |
virtual | ~MPEGStreamListener ()=default |
Protected Member Functions inherited from ATSCMainStreamListener | |
virtual | ~ATSCMainStreamListener ()=default |
Protected Member Functions inherited from ATSCAuxStreamListener | |
virtual | ~ATSCAuxStreamListener ()=default |
Protected Member Functions inherited from DVBMainStreamListener | |
virtual | ~DVBMainStreamListener ()=default |
Friends | |
class | IPTVTableMonitorThread |
Additional Inherited Members | |
Static Public Member Functions inherited from SignalMonitor | |
static bool | IsRequired (const QString &cardtype) |
Returns true iff the card type supports signal monitoring. More... | |
static bool | IsSupported (const QString &cardtype) |
static SignalMonitor * | Init (const QString &cardtype, int db_cardnum, ChannelBase *channel, bool release_stream) |
Static Public Attributes inherited from SignalMonitor | |
static const uint64_t | kDTVSigMon_PATSeen = 0x0000000001ULL |
We've seen a PAT, which maps MPEG program numbers to pids where we find PMTs. More... | |
static const uint64_t | kDTVSigMon_PMTSeen = 0x0000000002ULL |
We've seen a PMT, which maps program to audio, video and other stream PIDs. More... | |
static const uint64_t | kDTVSigMon_MGTSeen = 0x0000000004ULL |
We've seen a MGT, which tells us on which PIDs to find VCT and other ATSC tables. More... | |
static const uint64_t | kDTVSigMon_VCTSeen = 0x0000000008ULL |
We've seen a VCT, which maps ATSC Channels to MPEG program numbers, and provides additional data. More... | |
static const uint64_t | kDTVSigMon_TVCTSeen = 0x0000000010ULL |
We've seen a TVCT, the terrestrial version of the VCT. More... | |
static const uint64_t | kDTVSigMon_CVCTSeen = 0x0000000020ULL |
We've seen a CVCT, the cable version of the VCT. More... | |
static const uint64_t | kDTVSigMon_NITSeen = 0x0000000040ULL |
We've seen a NIT, which tells us where to find SDT and other DVB tables. More... | |
static const uint64_t | kDTVSigMon_SDTSeen = 0x0000000080ULL |
We've seen a SDT, which maps DVB Channels to MPEG program numbers, and provides additional data. More... | |
static const uint64_t | kFWSigMon_PowerSeen = 0x0000000100ULL |
We've seen the FireWire STB power state. More... | |
static const uint64_t | kDTVSigMon_CryptSeen = 0x0000000200ULL |
We've seen something indicating whether the data stream is encrypted. More... | |
static const uint64_t | kDTVSigMon_PATMatch = 0x0000001000ULL |
We've seen a PAT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_PMTMatch = 0x0000002000ULL |
We've seen a PMT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_MGTMatch = 0x0000004000ULL |
We've seen an MGT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_VCTMatch = 0x0000008000ULL |
We've seen a VCT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_TVCTMatch = 0x0000010000ULL |
We've seen a TVCT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_CVCTMatch = 0x0000020000ULL |
We've seen a CVCT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_NITMatch = 0x0000040000ULL |
We've seen an NIT matching our requirements. More... | |
static const uint64_t | kDTVSigMon_SDTMatch = 0x0000080000ULL |
We've seen an SDT matching our requirements. More... | |
static const uint64_t | kFWSigMon_PowerMatch = 0x0000100000ULL |
We've seen a FireWire STB power state matching our requirements. More... | |
static const uint64_t | kDTVSigMon_CryptMatch = 0x0000200000ULL |
We've seen unencrypted data in data stream. More... | |
static const uint64_t | kDTVSigMon_WaitForPAT = 0x0001000000ULL |
static const uint64_t | kDTVSigMon_WaitForPMT = 0x0002000000ULL |
static const uint64_t | kDTVSigMon_WaitForMGT = 0x0004000000ULL |
static const uint64_t | kDTVSigMon_WaitForVCT = 0x0008000000ULL |
static const uint64_t | kDTVSigMon_WaitForNIT = 0x0010000000ULL |
static const uint64_t | kDTVSigMon_WaitForSDT = 0x0020000000ULL |
static const uint64_t | kSigMon_WaitForSig = 0x0040000000ULL |
static const uint64_t | kFWSigMon_WaitForPower = 0x0080000000ULL |
static const uint64_t | kDTVSigMon_WaitForCrypt =0x0100000000ULL |
static const uint64_t | kDTVSigMon_WaitForAll = 0x01FF000000ULL |
static const uint64_t | kDVBSigMon_WaitForSNR = 0x1000000000ULL |
Wait for the Signal to Noise Ratio to rise above a threshold. More... | |
static const uint64_t | kDVBSigMon_WaitForBER = 0x2000000000ULL |
Wait for the Bit Error Rate to fall below a threshold. More... | |
static const uint64_t | kDVBSigMon_WaitForUB = 0x4000000000ULL |
Wait for uncorrected FEC blocks to fall below a threshold. More... | |
static const uint64_t | kDVBSigMon_WaitForPos = 0x8000000000ULL |
Wait for rotor to complete turning the antenna. More... | |
Static Protected Member Functions inherited from MThread | |
static void | setTerminationEnabled (bool enabled=true) |
static void | usleep (std::chrono::microseconds time) |
template<typename R , typename P > | |
static std::enable_if_t< std::chrono::treat_as_floating_point< R >::value, void > | usleep (std::chrono::duration< R, P > time) |
static void | ThreadSetup (const QString &name) |
This is to be called on startup in those few threads that haven't been ported to MThread. More... | |
static void | ThreadCleanup (void) |
This is to be called on exit in those few threads that haven't been ported to MThread. More... | |
static void | Cleanup (void) |
This will print out all the running threads, call exit(1) on each and then wait up to 5 seconds total for all the threads to exit. More... | |
static void | GetAllThreadNames (QStringList &list) |
static void | GetAllRunningThreadNames (QStringList &list) |
Definition at line 11 of file iptvsignalmonitor.h.
IPTVSignalMonitor::IPTVSignalMonitor | ( | int | db_cardnum, |
IPTVChannel * | _channel, | ||
bool | _release_stream, | ||
uint64_t | _flags = 0 |
||
) |
Initializes signal lock and signal values.
Start() must be called to actually begin continuous signal monitoring. The timeout is set to 3 seconds, and the signal threshold is initialized to 0%.
db_cardnum | Recorder number to monitor, if this is less than 0, SIGNAL events will not be sent to the frontend even if SetNotifyFrontend(true) is called. |
_channel | IPTVChannel for card |
_flags | Flags to start with |
Definition at line 26 of file iptvsignalmonitor.cpp.
|
override |
Stops signal monitoring and table monitoring threads.
Definition at line 40 of file iptvsignalmonitor.cpp.
|
protected |
|
protected |
|
overridevirtual |
Stop signal monitoring and table monitoring threads.
Reimplemented from SignalMonitor.
Definition at line 54 of file iptvsignalmonitor.cpp.
Referenced by ~IPTVSignalMonitor().
|
overridevirtual |
Sets the MPEG stream data for DTVSignalMonitor to use, and connects the table signals to the monitor.
Reimplemented from DTVSignalMonitor.
Definition at line 63 of file iptvsignalmonitor.cpp.
|
overridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 69 of file iptvsignalmonitor.cpp.
|
overrideprotectedvirtual |
Fills in frontend stats and emits status Qt signals.
This is automatically called by run(), after Start() has been used to start the signal monitoring thread.
Reimplemented from SignalMonitor.
Definition at line 82 of file iptvsignalmonitor.cpp.
|
protected |
Definition at line 46 of file iptvsignalmonitor.cpp.
Referenced by SetStreamData(), Stop(), and UpdateValues().
|
friend |
Definition at line 13 of file iptvsignalmonitor.h.
Definition at line 35 of file iptvsignalmonitor.h.
Referenced by Stop(), and UpdateValues().
Definition at line 36 of file iptvsignalmonitor.h.
Referenced by UpdateValues().