MythTV
master
|
#include <firewiresignalmonitor.h>
Public Member Functions | |
FirewireSignalMonitor (int db_cardnum, FirewireChannel *_channel, bool _release_stream, uint64_t _flags=kFWSigMon_WaitForPower) | |
void | HandlePAT (const ProgramAssociationTable *pat) override |
void | HandlePMT (uint pnum, const ProgramMapTable *pmt) override |
void | Stop (void) override |
Stop signal monitoring and table monitoring threads. More... | |
![]() | |
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 |
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 | HandleCAT (const ConditionalAccessTable *) 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) |
![]() | |
~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) |
![]() | |
virtual void | HandleSplice (const SpliceInformationTable *) |
Static Public Attributes | |
static constexpr std::chrono::milliseconds | kPowerTimeout { 3s } |
static constexpr std::chrono::milliseconds | kBufferTimeout { 5s } |
![]() | |
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... | |
Protected Member Functions | |
FirewireSignalMonitor (void) | |
FirewireSignalMonitor (const FirewireSignalMonitor &) | |
~FirewireSignalMonitor () override | |
Stops signal monitoring and table monitoring threads. More... | |
void | UpdateValues (void) override |
Fills in frontend stats and emits status Qt signals. More... | |
void | RunTableMonitor (void) |
bool | SupportsTSMonitoring (void) |
void | AddData (const unsigned char *data, uint len) override |
Callback function to add MPEG2 TS data. More... | |
![]() | |
DTVChannel * | GetDTVChannel (void) |
void | UpdateMonitorValues (void) |
void | UpdateListeningForEIT (void) |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
virtual | ~MPEGStreamListener ()=default |
![]() | |
virtual | ~ATSCMainStreamListener ()=default |
![]() | |
virtual | ~ATSCAuxStreamListener ()=default |
![]() | |
virtual | ~DVBMainStreamListener ()=default |
![]() | |
virtual | ~TSDataListener ()=default |
Static Protected Attributes | |
static QHash< void *, uint > | s_patKeys |
static QMutex | s_patKeysLock |
Friends | |
class | FirewireTableMonitorThread |
Additional Inherited Members | |
![]() | |
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 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 33 of file firewiresignalmonitor.h.
FirewireSignalMonitor::FirewireSignalMonitor | ( | int | db_cardnum, |
FirewireChannel * | _channel, | ||
bool | _release_stream, | ||
uint64_t | _flags = kFWSigMon_WaitForPower |
||
) |
Definition at line 45 of file firewiresignalmonitor.cpp.
|
protected |
|
protected |
|
overrideprotected |
Stops signal monitoring and table monitoring threads.
Definition at line 64 of file firewiresignalmonitor.cpp.
|
overridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 87 of file firewiresignalmonitor.cpp.
|
overridevirtual |
Reimplemented from DTVSignalMonitor.
Definition at line 114 of file firewiresignalmonitor.cpp.
|
overridevirtual |
Stop signal monitoring and table monitoring threads.
Reimplemented from SignalMonitor.
Definition at line 73 of file firewiresignalmonitor.cpp.
Referenced by ~FirewireSignalMonitor().
|
overrideprotectedvirtual |
Fills in frontend stats and emits status Qt signals.
This function uses five ioctl's FE_READ_SNR, FE_READ_SIGNAL_STRENGTH FE_READ_BER, FE_READ_UNCORRECTED_BLOCKS, and FE_READ_STATUS to obtain statistics from the frontend.
This is automatically called by run(), after Start() has been used to start the signal monitoring thread.
Reimplemented from SignalMonitor.
Definition at line 190 of file firewiresignalmonitor.cpp.
|
protected |
Definition at line 130 of file firewiresignalmonitor.cpp.
Referenced by FirewireTableMonitorThread::run().
|
protected |
|
overrideprotectedvirtual |
Callback function to add MPEG2 TS data.
Implements TSDataListener.
Definition at line 171 of file firewiresignalmonitor.cpp.
|
friend |
Definition at line 35 of file firewiresignalmonitor.h.
Referenced by UpdateValues().
|
staticconstexpr |
Definition at line 60 of file firewiresignalmonitor.h.
Referenced by UpdateValues().
|
staticconstexpr |
Definition at line 61 of file firewiresignalmonitor.h.
Referenced by HandlePAT().
Definition at line 64 of file firewiresignalmonitor.h.
Referenced by AddData(), RunTableMonitor(), Stop(), and UpdateValues().
|
protected |
Definition at line 65 of file firewiresignalmonitor.h.
Referenced by Stop(), and UpdateValues().
Definition at line 66 of file firewiresignalmonitor.h.
Referenced by FirewireSignalMonitor(), and UpdateValues().
Definition at line 67 of file firewiresignalmonitor.h.
Referenced by HandlePAT(), and RunTableMonitor().
Definition at line 68 of file firewiresignalmonitor.h.
Referenced by UpdateValues().
|
protected |
Definition at line 69 of file firewiresignalmonitor.h.
Referenced by HandlePAT(), and RunTableMonitor().
|
protected |
Definition at line 70 of file firewiresignalmonitor.h.
Referenced by UpdateValues().
|
protected |
Definition at line 72 of file firewiresignalmonitor.h.
|
staticprotected |
Definition at line 74 of file firewiresignalmonitor.h.
|
staticprotected |
Definition at line 75 of file firewiresignalmonitor.h.