Go to the documentation of this file.
10 #include <sys/select.h>
24 #define LOC QString("HDHRSigMon[%1](%2): ") \
25 .arg(m_inputid).arg(m_channel->GetDevice())
46 m_signalToNoise (QCoreApplication::translate(
"(Common)",
47 "Signal To Noise"),
"snr",
50 LOG(VB_CHANNEL, LOG_INFO,
LOC +
"ctor");
66 LOG(VB_CHANNEL, LOG_INFO,
LOC +
"dtor");
76 LOG(VB_CHANNEL, LOG_INFO,
LOC +
"Stop() -- begin");
82 LOG(VB_CHANNEL, LOG_INFO,
LOC +
"Stop() -- end");
108 struct hdhomerun_tuner_status_t status {};
112 uint sig = status.signal_strength;
113 uint snq = status.signal_to_noise_quality;
114 uint seq = status.symbol_error_quality;
116 LOG(VB_RECORD, LOG_DEBUG,
LOC +
"Tuner status: " + QString(
"'sig:%1 snq:%2 seq:%3'")
117 .arg(sig).arg(snq).arg(seq));
130 struct hdhomerun_tuner_status_t status {};
133 uint sig = status.signal_strength;
134 uint snq = status.signal_to_noise_quality;
135 uint seq = status.symbol_error_quality;
137 LOG(VB_RECORD, LOG_DEBUG,
LOC +
"Tuner status: " + QString(
"'sig:%1 snq:%2 seq:%3'")
138 .arg(sig).arg(snq).arg(seq));
141 bool wasLocked =
false;
142 bool isLocked =
false;
153 if (wasLocked != isLocked)
155 LOG(VB_CHANNEL, LOG_INFO,
LOC +
"UpdateValues -- Signal " +
156 (isLocked ?
"Locked" :
"Lost"));
void AddFlags(uint64_t _flags) override
void Stop(void) override
Stop signal monitoring and table monitoring threads.
SignalMonitorValue m_signalToNoise
void SetValue(int _value)
void SetThreshold(int _threshold)
void AddListener(MPEGStreamData *data, bool=false, bool=false, const QString &output_file=QString()) override
static const uint64_t kDTVSigMon_WaitForMGT
void SendMessage(SignalMonitorMessageType type, const SignalMonitorValue &val)
MPEGStreamData * GetStreamData()
Returns the MPEG stream data if it exists.
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
bool HasAnyFlag(uint64_t _flags) const
VERBOSE_PREAMBLE Most true
static const uint64_t kSigMon_WaitForSig
virtual void RemoveListener(MPEGStreamData *data)
QRecursiveMutex m_statusLock
HDHRChannel * GetHDHRChannel(void)
SignalMonitorValue m_signalStrength
static void Return(HDHRStreamHandler *&ref, int inputid)
SignalMonitorValue m_signalLock
void SendMessageAllGood(void)
static const uint64_t kDTVSigMon_WaitForPMT
static const uint64_t kDTVSigMon_WaitForPAT
static const uint64_t kDTVSigMon_WaitForNIT
virtual void EmitStatus(void)
static const uint64_t kDTVSigMon_WaitForSDT
bool IsGood() const
Returns true if the value is equal to the threshold, or on the right side of the threshold (depends o...
~HDHRSignalMonitor() override
Stops signal monitoring and table monitoring threads.
bool m_streamHandlerStarted
HDHRStreamHandler * m_streamHandler
void EmitStatus(void) override
void UpdateValues(void) override
Fills in frontend stats and emits status Qt signals.
void GetTunerStatus(struct hdhomerun_tuner_status_t *status)
This class is intended to detect the presence of needed tables.
virtual int GetInputID(void) const
virtual QString GetDevice(void) const
Returns String representing device, useful for debugging.
static HDHRStreamHandler * Get(const QString &devname, int inputid, int majorid)
virtual void Stop()
Stop signal monitoring thread.
bool IsAllGood(void) const override
static const uint64_t kDTVSigMon_WaitForVCT