MythTV  master
dvbsignalmonitor.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 
3 #ifndef DVBSIGNALMONITOR_H
4 #define DVBSIGNALMONITOR_H
5 
6 // Qt headers
7 #include <QStringList>
8 #include <QCoreApplication>
9 
10 // MythTV headers
11 #include "dtvsignalmonitor.h"
12 
13 class DVBChannel;
14 class DVBStreamHandler;
16 
18 {
20 
21  public:
22  DVBSignalMonitor(int db_cardnum, DVBChannel* _channel,
23  bool _release_stream,
24  uint64_t _flags =
27  ~DVBSignalMonitor() override;
28 
29  QStringList GetStatusList(void) const override; // DTVSignalMonitor
30  void Stop(void) override; // SignalMonitor
31 
32  void SetRotorTarget(float target) override; // DTVSignalMonitor
33  void GetRotorStatus(bool &was_moving, bool &is_moving) override; // DTVSignalMonitor
34  void SetRotorValue(int val) override // DTVSignalMonitor
35  {
36  QMutexLocker locker(&m_statusLock);
38  }
39 
40  void EmitStatus(void) override; // SignalMonitor
41 
42  // MPEG
43  void HandlePMT(uint program_num, const ProgramMapTable *pmt) override; // DTVSignalMonitor
44 
45  // ATSC Main
46  void HandleSTT(const SystemTimeTable *stt) override; // DTVSignalMonitor
47 
48  // DVB Main
49  void HandleTDT(const TimeDateTable *tdt) override; // DTVSignalMonitor
50 
51  protected:
52  DVBSignalMonitor(void);
54 
55  void UpdateValues(void) override; // SignalMonitor
56  void EmitDVBSignals(void);
57 
59 
60  protected:
65 
68 };
69 
70 #endif // DVBSIGNALMONITOR_H
QMutex m_statusLock
DVBChannel * GetDVBChannel(void)
void HandlePMT(uint program_num, const ProgramMapTable *pmt) override
void Stop(void) override
Stop signal monitoring and table monitoring threads.
static const uint64_t kDVBSigMon_WaitForBER
Wait for the Bit Error Rate to fall below a threshold.
This table gives the current DVB stream time.
Definition: dvbtables.h:373
Provides interface to the tuning hardware when using DVB drivers.
Definition: dvbchannel.h:29
Q_DECLARE_TR_FUNCTIONS(DVBSignalMonitor)
void SetValue(int _value)
static const uint64_t kSigMon_WaitForSig
unsigned int uint
Definition: compat.h:140
SignalMonitorValue m_signalToNoise
SignalMonitorValue m_uncorrectedBlocks
void SetRotorTarget(float target) override
Sets rotor target pos from 0.0 to 1.0.
void UpdateValues(void) override
Fills in frontend stats and emits status Qt signals.
SignalMonitorValue m_bitErrorRate
QStringList GetStatusList(void) const override
Returns QStringList containing all signals and their current values.
This class is intended to detect the presence of needed tables.
~DVBSignalMonitor() override
Stops signal monitoring and table monitoring threads.
void EmitDVBSignals(void)
void EmitStatus(void) override
Emits signals for lock, signal strength, etc.
void SetRotorValue(int val) override
void HandleTDT(const TimeDateTable *tdt) override
DVBStreamHandler * m_streamHandler
SignalMonitorValue m_rotorPosition
This table contains the GPS time at the time of transmission.
Definition: atsctables.h:682
static const uint64_t kDVBSigMon_WaitForUB
Wait for uncorrected FEC blocks to fall below a threshold.
static const uint64_t kDVBSigMon_WaitForSNR
Wait for the Signal to Noise Ratio to rise above a threshold.
A PMT table maps a program described in the ProgramAssociationTable to various PID's which describe t...
Definition: mpegtables.h:666
void GetRotorStatus(bool &was_moving, bool &is_moving) override
void HandleSTT(const SystemTimeTable *stt) override