37 {
return Open(
this); }
41 bool Init(QString &startchannel,
bool setchan)
override;
50 bool IsOpen(
void)
const override;
69 bool HasLock(
bool *ok =
nullptr)
const;
79 double GetSNR(
bool *ok =
nullptr)
const;
92 bool force_reset =
false,
bool same_input =
false);
93 bool Retune(
void)
override;
Class providing a generic interface to digital tuning hardware.
virtual bool Tune(const DTVMultiplex &tuning)=0
This performs the actual frequency tuning and in some cases input switching.
Provides interface to the tuning hardware when using DVB drivers.
void CheckOptions(DTVMultiplex &t) const override
Checks tuning for problems, and tries to fix them.
bool Open(void) override
Opens the channel changing hardware for use.
bool CheckModulation(DTVModulation modulation) const
Return true iff modulation is supported modulation on the frontend.
DTVMultiplex m_desiredTuning
bool Retune(void) override
QString GetFrontendName(void) const
Returns frontend name as reported by driver.
bool IsTuningParamsProbeSupported(void) const
Returns true iff tuning info probing is working.
std::chrono::milliseconds m_sigMonDelay
DTVModulationSystem m_currentSys
int GetFd(void) const override
Returns file descriptor, -1 if it does not exist.
QList< DTVModulationSystem > m_sysList
const DiSEqCDevRotor * GetRotor(void) const
Returns rotor object if it exists, nullptr otherwise.
uint64_t m_frequencyMaximum
uint64_t m_extModulations
void DrainDVBEvents(void)
bool Init(QString &startchannel, bool setchan) override
int GetChanID(void) const override
Returns Channel ID.
void SetSlowTuning(std::chrono::milliseconds how_slow)
void SetPMT(const ProgramMapTable *pmt)
Tells the Conditional Access Module which streams we wish to decode.
bool WaitForBackend(std::chrono::milliseconds timeout_ms)
Waits for backend to get tune message.
DVBChannel(QString device, TVRec *parent=nullptr)
bool CanDo(uint64_t capability) const
uint64_t m_frequencyMinimum
void SetTimeOffset(double offset)
Tells the Conditional Access Module the offset from the computers utc time to dvb time.
bool IsMaster(void) const override
Returns true if this is the first of a number of multi-rec devs.
double GetUncorrectedBlockCount(bool *ok=nullptr) const
Returns # of uncorrected blocks since last call. First call undefined.
std::chrono::milliseconds GetMinSignalMonitorDelay(void) const
static std::chrono::milliseconds s_lastTuning
bool HasCRCBug(void) const
Returns true iff we have a faulty DVB driver that munges PMT.
bool HasLock(bool *ok=nullptr) const
Returns true iff we have a signal carrier lock.
double GetBitErrorRate(bool *ok=nullptr) const
Returns # of corrected bits since last call. First call undefined.
void CheckFrequency(uint64_t frequency) const
Checks tuning frequency.
void Close(void) override
Closes the channel changing hardware to use.
double GetSNR(bool *ok=nullptr) const
Returns signal/noise in the range [0..1.0].
DiSEqCDevTree * m_diseqcTree
DTVMultiplex m_prevTuning
uint64_t GetCapabilities(void) const
bool ProbeTuningParams(DTVMultiplex &tuning) const
Fetches DTVMultiplex params from driver.
QString GetDevice(void) const override
Returns String representing device, useful for debugging.
DVBChannel * GetMasterLock(void) const
double GetSignalStrengthDVBv5(bool *ok) const
Get Signal strength from the DVBv5 interface [0-1.0] It is transformed to a linear relative scale if ...
double GetUncorrectedBlockCountDVBv5(bool *ok) const
Get Uncorrected Block Count from the DVBv5 interface.
bool CheckCodeRate(DTVCodeRate rate) const
Return true iff rate is supported rate on the frontend.
bool Tune(const DTVMultiplex &tuning) override
This performs the actual frequency tuning and in some cases input switching.
double GetSignalStrength(bool *ok=nullptr) const
Returns signal strength in the range [0.0..1.0] (non-calibrated).
QString GetCardNum(void) const
Returns DVB device number, used to construct filenames for DVB devices.
DiSEqCDevSettings m_diseqcSettings
bool IsOpen(void) const override
Reports whether channel is already open.
double GetSNRDVBv5(bool *ok) const
Get SNR from the DVBv5 interface [0-1.0] It is transformed to a linear relative scale if provided in ...
static void ReturnMasterLock(DVBChannel *&dvbm)
bool SwitchToInput(int newcapchannel, bool setstarting)
std::chrono::milliseconds m_tuningDelay
double GetBitErrorRateDVBv5(bool *ok) const
Get Bit Error Rate from the DVBv5 interface.
This is a specialization of DTVRecorder used to handle streams from DVB drivers.
DVB-S device settings class.
A PMT table maps a program described in the ProgramAssociationTable to various PID's which describe t...
This is the coordinating class of the Recorder Subsystem.
QMap< const DVBChannel *, bool > IsOpenMap