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"));
virtual int GetInputID(void) const
virtual QString GetDevice(void) const
Returns String representing device, useful for debugging.
This class is intended to detect the presence of needed tables.
bool IsAllGood(void) const override
void AddFlags(uint64_t _flags) override
MPEGStreamData * GetStreamData()
Returns the MPEG stream data if it exists.
~HDHRSignalMonitor() override
Stops signal monitoring and table monitoring threads.
SignalMonitorValue m_signalToNoise
void Stop(void) override
Stop signal monitoring and table monitoring threads.
bool m_streamHandlerStarted
HDHRChannel * GetHDHRChannel(void)
void UpdateValues(void) override
Fills in frontend stats and emits status Qt signals.
void EmitStatus(void) override
HDHRStreamHandler * m_streamHandler
void GetTunerStatus(struct hdhomerun_tuner_status_t *status)
static HDHRStreamHandler * Get(const QString &devname, int inputid, int majorid)
void AddListener(MPEGStreamData *data, bool=false, bool=false, const QString &output_file=QString()) override
static void Return(HDHRStreamHandler *&ref, int inputid)
void SetThreshold(int _threshold)
bool IsGood() const
Returns true if the value is equal to the threshold, or on the right side of the threshold (depends o...
void SetValue(int _value)
static const uint64_t kDTVSigMon_WaitForVCT
QRecursiveMutex m_statusLock
void SendMessageAllGood(void)
SignalMonitorValue m_signalLock
static const uint64_t kDTVSigMon_WaitForNIT
void SendMessage(SignalMonitorMessageType type, const SignalMonitorValue &val)
static const uint64_t kDTVSigMon_WaitForSDT
virtual void Stop()
Stop signal monitoring thread.
static const uint64_t kDTVSigMon_WaitForPMT
virtual void EmitStatus(void)
static const uint64_t kSigMon_WaitForSig
static const uint64_t kDTVSigMon_WaitForPAT
static const uint64_t kDTVSigMon_WaitForMGT
SignalMonitorValue m_signalStrength
bool HasAnyFlag(uint64_t _flags) const
virtual void RemoveListener(MPEGStreamData *data)
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
VERBOSE_PREAMBLE Most true