MythTV
master
|
#include <libmythtv/recorders/dvbsignalmonitor.h>
Public Member Functions | |
DVBSignalMonitor (int db_cardnum, DVBChannel *_channel, bool _release_stream, uint64_t _flags=kSigMon_WaitForSig|kDVBSigMon_WaitForSNR|kDVBSigMon_WaitForBER|kDVBSigMon_WaitForUB) | |
Initializes signal lock and signal values. More... | |
~DVBSignalMonitor () override | |
Stops signal monitoring and table monitoring threads. More... | |
QStringList | GetStatusList (void) const override |
Returns QStringList containing all signals and their current values. More... | |
void | Stop (void) override |
Stop signal monitoring and table monitoring threads. More... | |
void | SetRotorTarget (float target) override |
Sets rotor target pos from 0.0 to 1.0. More... | |
void | GetRotorStatus (bool &was_moving, bool &is_moving) override |
void | SetRotorValue (int val) override |
void | EmitStatus (void) override |
Emits signals for lock, signal strength, etc. More... | |
void | HandlePMT (uint program_num, const ProgramMapTable *pmt) override |
void | HandleSTT (const SystemTimeTable *stt) override |
void | HandleTDT (const TimeDateTable *tdt) override |
Public Member Functions inherited from DTVSignalMonitor | |
DTVSignalMonitor (int db_cardnum, DTVChannel *_channel, bool _release_stream, uint64_t wait_for_mask) | |
~DTVSignalMonitor () override | |
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 |
void | AddFlags (uint64_t _flags) override |
void | RemoveFlags (uint64_t _flags) override |
virtual void | SetStreamData (MPEGStreamData *data) |
Sets the MPEG stream data for DTVSignalMonitor to use, and connects the table signals to the monitor. More... | |
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 | HandlePAT (const ProgramAssociationTable *pat) override |
void | HandleCAT (const ConditionalAccessTable *) override |
void | HandleEncryptionStatus (uint pnum, bool enc_status) 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 | 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) |
Public Member Functions inherited from MPEGStreamListener | |
virtual void | HandleSplice (const SpliceInformationTable *) |
Protected Member Functions | |
DVBSignalMonitor (void) | |
DVBSignalMonitor (const DVBSignalMonitor &) | |
void | UpdateValues (void) override |
Fills in frontend stats and emits status Qt signals. More... | |
void | EmitDVBSignals (void) |
DVBChannel * | GetDVBChannel (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 |
Private Member Functions | |
Q_DECLARE_TR_FUNCTIONS (DVBSignalMonitor) | |
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 17 of file dvbsignalmonitor.h.
DVBSignalMonitor::DVBSignalMonitor | ( | int | db_cardnum, |
DVBChannel * | _channel, | ||
bool | _release_stream, | ||
uint64_t | _flags = kSigMon_WaitForSig | kDVBSigMon_WaitForSNR | kDVBSigMon_WaitForBER | kDVBSigMon_WaitForUB |
||
) |
Initializes signal lock and signal values.
Start() must be called to actually begin continuous signal monitoring. The timeout value is retrieved from the database but is set to at least 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 | DVBChannel for card |
_flags | Flags to start with |
Definition at line 45 of file dvbsignalmonitor.cpp.
|
override |
Stops signal monitoring and table monitoring threads.
Definition at line 171 of file dvbsignalmonitor.cpp.
|
protected |
|
protected |
|
private |
|
overridevirtual |
Returns QStringList containing all signals and their current values.
This serializes the signal monitoring values so that they can be passed from a backend to a frontend.
SignalMonitorValue::Parse(const QStringList&) will convert this to a vector of SignalMonitorValue instances.
Reimplemented from DTVSignalMonitor.
Definition at line 215 of file dvbsignalmonitor.cpp.
|
overridevirtual |
Stop signal monitoring and table monitoring threads.
Reimplemented from SignalMonitor.
Definition at line 204 of file dvbsignalmonitor.cpp.
Referenced by ~DVBSignalMonitor().
|
overridevirtual |
Sets rotor target pos from 0.0 to 1.0.
Reimplemented from DTVSignalMonitor.
Definition at line 178 of file dvbsignalmonitor.cpp.
Referenced by ChannelScanSM::Tune().
Reimplemented from DTVSignalMonitor.
Definition at line 184 of file dvbsignalmonitor.cpp.
Referenced by ChannelScanSM::HasTimedOut().
|
inlineoverridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 34 of file dvbsignalmonitor.h.
|
overridevirtual |
Emits signals for lock, signal strength, etc.
Reimplemented from SignalMonitor.
Definition at line 408 of file dvbsignalmonitor.cpp.
Referenced by UpdateValues().
|
overridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 231 of file dvbsignalmonitor.cpp.
|
overridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 243 of file dvbsignalmonitor.cpp.
|
overridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 251 of file dvbsignalmonitor.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 270 of file dvbsignalmonitor.cpp.
|
protected |
|
protected |
Definition at line 259 of file dvbsignalmonitor.cpp.
Referenced by GetRotorStatus(), HandlePMT(), HandleSTT(), HandleTDT(), and UpdateValues().
|
protected |
Definition at line 61 of file dvbsignalmonitor.h.
Referenced by EmitStatus(), GetStatusList(), and UpdateValues().
|
protected |
Definition at line 62 of file dvbsignalmonitor.h.
Referenced by EmitStatus(), GetStatusList(), and UpdateValues().
|
protected |
Definition at line 63 of file dvbsignalmonitor.h.
Referenced by EmitStatus(), GetStatusList(), and UpdateValues().
|
protected |
Definition at line 64 of file dvbsignalmonitor.h.
Referenced by EmitStatus(), GetRotorStatus(), GetStatusList(), SetRotorTarget(), SetRotorValue(), and UpdateValues().
|
protected |
Definition at line 66 of file dvbsignalmonitor.h.
Referenced by Stop(), and UpdateValues().
|
protected |
Definition at line 67 of file dvbsignalmonitor.h.
Referenced by DVBSignalMonitor(), Stop(), UpdateValues(), and ~DVBSignalMonitor().