vdr 2.7.6
cDvbTuner Class Reference

Public Member Functions

 cDvbTuner (const cDvbDevice *Device, int Adapter, int Frontend)
virtual ~cDvbTuner () override
bool ProvidesDeliverySystem (int DeliverySystem) const
bool ProvidesModulation (int System, int StreamId, int Modulation) const
bool ProvidesFrontend (const cChannel *Channel, bool Activate=false) const
int Frontend (void) const
int FrontendType (void) const
const char * FrontendName (void)
int NumProvidedSystems (void) const
bool Bond (cDvbTuner *Tuner)
void UnBond (void)
bool BondingOk (const cChannel *Channel, bool ConsiderOccupied=false) const
const cChannelGetTransponder (void) const
uint32_t SubsystemId (void) const
bool IsTunedTo (const cChannel *Channel) const
void SetChannel (const cChannel *Channel)
bool Locked (int TimeoutMs=0)
const cPositionerPositioner (void) const
bool GetSignalStats (int &Valid, double *Strength=NULL, double *Cnr=NULL, double *BerPre=NULL, double *BerPost=NULL, double *Per=NULL, int *Status=NULL) const
int GetSignalStrength (void) const
int GetSignalQuality (void) const
void SetPowerSaveMode (bool On)
Public Member Functions inherited from cThread
 cThread (const char *Description=NULL, bool LowPriority=false)
virtual ~cThread ()
void SetDescription (const char *Description,...) __attribute__((format(printf
void bool Start (void)
bool Active (void)

Private Types

enum  eTunerStatus {
  tsIdle , tsSet , tsPositioning , tsTuned ,
  tsLocked
}

Private Member Functions

cString GetBondingParams (const cChannel *Channel=NULL) const
cDvbTunerGetBondedMaster (void)
bool IsBondedMaster (void) const
void ClearEventQueue (void) const
bool GetFrontendStatus (fe_status_t &Status) const
cPositionerGetPositioner (void)
void ExecuteDiseqc (const cDiseqc *Diseqc, int *Frequency)
void ResetToneAndVoltage (void)
bool SetFrontend (void)
virtual void Action (void) override

Private Attributes

int frontendType
const cDvbDevicedevice
int fd_frontend
int adapter
int frontend
cVector< cDvbFrontend * > dvbFrontends
cDvbFrontenddvbFrontend
int numDeliverySystems
int numModulations
int tuneTimeout
int lockTimeout
time_t lastTimeoutReport
uint32_t lastUncValue
uint32_t lastUncDelta
time_t lastUncChange
cChannel channel
const cDiseqclastDiseqc
int diseqcOffset
int lastSource
cPositionerpositioner
const cScrscr
bool lnbPowerTurnedOn
eTunerStatus tunerStatus
cMutex mutex
cCondVar locked
cCondVar newSet
cDvbTunerbondedTuner
bool bondedMaster

Static Private Attributes

static cMutex bondMutex

Additional Inherited Members

Static Public Member Functions inherited from cThread
static tThreadId ThreadId (void)
static tThreadId IsMainThread (void)
static void SetMainThreadId (void)
Protected Member Functions inherited from cThread
void SetPriority (int Priority)
void SetIOPriority (int Priority)
void Lock (void)
void Unlock (void)
bool Running (void)
void Cancel (int WaitSeconds=0)

Detailed Description

Definition at line 532 of file dvbdevice.c.

Member Enumeration Documentation

◆ eTunerStatus

Enumerator
tsIdle 
tsSet 
tsPositioning 
tsTuned 
tsLocked 

Definition at line 535 of file dvbdevice.c.

Constructor & Destructor Documentation

◆ cDvbTuner()

◆ ~cDvbTuner()

cDvbTuner::~cDvbTuner ( )
overridevirtual

Definition at line 652 of file dvbdevice.c.

References cThread::Cancel(), dvbFrontends, locked, newSet, tsIdle, tunerStatus, and UnBond().

Member Function Documentation

◆ Action()

void cDvbTuner::Action ( void )
overrideprivatevirtual

A derived cThread class must implement the code it wants to execute as a separate thread in this function.

If this is a loop, it must check Running() repeatedly to see whether it's time to stop.

Implements cThread.

Definition at line 1697 of file dvbdevice.c.

References adapter, channel, device, diseqcOffset, esyslog, frontend, GetFrontendStatus(), isyslog, lastDiseqc, lastSource, lastTimeoutReport, locked, lockTimeout, mutex, newSet, positioner, cThread::Running(), scr, SCR_RANDOM_TIMEOUT, cTimeMs::Set(), SetFrontend(), cTimeMs::TimedOut(), tsIdle, tsLocked, tsPositioning, tsSet, tsTuned, tunerStatus, and tuneTimeout.

◆ Bond()

bool cDvbTuner::Bond ( cDvbTuner * Tuner)

◆ BondingOk()

bool cDvbTuner::BondingOk ( const cChannel * Channel,
bool ConsiderOccupied = false ) const

Definition at line 762 of file dvbdevice.c.

References bondedTuner, bondMutex, cDvbTuner(), GetBondingParams(), and IDLEPRIORITY.

◆ ClearEventQueue()

void cDvbTuner::ClearEventQueue ( void ) const
private

Definition at line 854 of file dvbdevice.c.

References fd_frontend, cPoller::Poll(), and TUNER_POLL_TIMEOUT.

Referenced by GetFrontendStatus(), GetSignalStats(), and GetSignalStrength().

◆ ExecuteDiseqc()

◆ Frontend()

int cDvbTuner::Frontend ( void ) const
inline

Definition at line 580 of file dvbdevice.c.

References frontend.

Referenced by cDvbTuner().

◆ FrontendName()

const char * cDvbTuner::FrontendName ( void )
inline

Definition at line 582 of file dvbdevice.c.

References dvbFrontend.

◆ FrontendType()

int cDvbTuner::FrontendType ( void ) const
inline

Definition at line 581 of file dvbdevice.c.

References frontendType.

◆ GetBondedMaster()

cDvbTuner * cDvbTuner::GetBondedMaster ( void )
private

Definition at line 778 of file dvbdevice.c.

References adapter, bondedMaster, bondedTuner, bondMutex, cDvbTuner(), dsyslog, and frontend.

Referenced by SetChannel().

◆ GetBondingParams()

cString cDvbTuner::GetBondingParams ( const cChannel * Channel = NULL) const
private

◆ GetFrontendStatus()

bool cDvbTuner::GetFrontendStatus ( fe_status_t & Status) const
private

Definition at line 864 of file dvbdevice.c.

References ClearEventQueue(), and fd_frontend.

Referenced by Action(), and GetSignalQuality().

◆ GetPositioner()

cPositioner * cDvbTuner::GetPositioner ( void )
private

Definition at line 1483 of file dvbdevice.c.

References fd_frontend, cPositioner::GetPositioner(), and positioner.

Referenced by ExecuteDiseqc().

◆ GetSignalQuality()

◆ GetSignalStats()

bool cDvbTuner::GetSignalStats ( int & Valid,
double * Strength = NULL,
double * Cnr = NULL,
double * BerPre = NULL,
double * BerPost = NULL,
double * Per = NULL,
int * Status = NULL ) const

◆ GetSignalStrength()

int cDvbTuner::GetSignalStrength ( void ) const

◆ GetTransponder()

const cChannel * cDvbTuner::GetTransponder ( void ) const
inline

Definition at line 587 of file dvbdevice.c.

References channel.

◆ IsBondedMaster()

bool cDvbTuner::IsBondedMaster ( void ) const
inlineprivate

Definition at line 566 of file dvbdevice.c.

References bondedMaster, and bondedTuner.

Referenced by SetFrontend().

◆ IsTunedTo()

bool cDvbTuner::IsTunedTo ( const cChannel * Channel) const

◆ Locked()

bool cDvbTuner::Locked ( int TimeoutMs = 0)

Definition at line 842 of file dvbdevice.c.

References locked, mutex, tsLocked, and tunerStatus.

◆ NumProvidedSystems()

int cDvbTuner::NumProvidedSystems ( void ) const
inline

Definition at line 583 of file dvbdevice.c.

References numDeliverySystems, and numModulations.

◆ Positioner()

const cPositioner * cDvbTuner::Positioner ( void ) const
inline

Definition at line 592 of file dvbdevice.c.

References positioner.

Referenced by ExecuteDiseqc().

◆ ProvidesDeliverySystem()

bool cDvbTuner::ProvidesDeliverySystem ( int DeliverySystem) const

Definition at line 669 of file dvbdevice.c.

References dvbFrontends, and ProvidesDeliverySystem().

Referenced by ProvidesDeliverySystem(), and ProvidesFrontend().

◆ ProvidesFrontend()

◆ ProvidesModulation()

bool cDvbTuner::ProvidesModulation ( int System,
int StreamId,
int Modulation ) const

Definition at line 678 of file dvbdevice.c.

References dvbFrontends, and ProvidesModulation().

Referenced by ProvidesFrontend(), and ProvidesModulation().

◆ ResetToneAndVoltage()

void cDvbTuner::ResetToneAndVoltage ( void )
private

Definition at line 1549 of file dvbdevice.c.

References bondedTuner, CHECK, and fd_frontend.

Referenced by Bond(), ExecuteDiseqc(), SetChannel(), and SetFrontend().

◆ SetChannel()

◆ SetFrontend()

◆ SetPowerSaveMode()

void cDvbTuner::SetPowerSaveMode ( bool On)

◆ SubsystemId()

uint32_t cDvbTuner::SubsystemId ( void ) const
inline

Definition at line 588 of file dvbdevice.c.

References dvbFrontend.

◆ UnBond()

void cDvbTuner::UnBond ( void )

Definition at line 729 of file dvbdevice.c.

References adapter, bondedMaster, bondedTuner, bondMutex, cDvbTuner(), dsyslog, and frontend.

Referenced by ~cDvbTuner().

Member Data Documentation

◆ adapter

◆ bondedMaster

bool cDvbTuner::bondedMaster
private

Definition at line 563 of file dvbdevice.c.

Referenced by Bond(), cDvbTuner(), GetBondedMaster(), IsBondedMaster(), and UnBond().

◆ bondedTuner

cDvbTuner* cDvbTuner::bondedTuner
private

◆ bondMutex

cMutex cDvbTuner::bondMutex
staticprivate

Definition at line 534 of file dvbdevice.c.

Referenced by Bond(), BondingOk(), GetBondedMaster(), SetChannel(), and UnBond().

◆ channel

◆ device

const cDvbDevice* cDvbTuner::device
private

Definition at line 537 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), GetBondingParams(), SetChannel(), and SetFrontend().

◆ diseqcOffset

int cDvbTuner::diseqcOffset
private

Definition at line 553 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), ExecuteDiseqc(), and SetChannel().

◆ dvbFrontend

cDvbFrontend* cDvbTuner::dvbFrontend
mutableprivate

◆ dvbFrontends

cVector<cDvbFrontend *> cDvbTuner::dvbFrontends
private

◆ fd_frontend

◆ frontend

◆ frontendType

int cDvbTuner::frontendType
private

Definition at line 536 of file dvbdevice.c.

Referenced by cDvbTuner(), FrontendType(), GetSignalQuality(), and SetFrontend().

◆ lastDiseqc

const cDiseqc* cDvbTuner::lastDiseqc
mutableprivate

Definition at line 552 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), ProvidesFrontend(), SetFrontend(), and SetPowerSaveMode().

◆ lastSource

int cDvbTuner::lastSource
mutableprivate

Definition at line 554 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), ProvidesFrontend(), SetFrontend(), and SetPowerSaveMode().

◆ lastTimeoutReport

time_t cDvbTuner::lastTimeoutReport
private

Definition at line 547 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), and SetChannel().

◆ lastUncChange

time_t cDvbTuner::lastUncChange
mutableprivate

Definition at line 550 of file dvbdevice.c.

Referenced by cDvbTuner(), GetSignalQuality(), ProvidesFrontend(), and SetPowerSaveMode().

◆ lastUncDelta

uint32_t cDvbTuner::lastUncDelta
mutableprivate

Definition at line 549 of file dvbdevice.c.

Referenced by cDvbTuner(), GetSignalQuality(), ProvidesFrontend(), and SetPowerSaveMode().

◆ lastUncValue

uint32_t cDvbTuner::lastUncValue
mutableprivate

Definition at line 548 of file dvbdevice.c.

Referenced by cDvbTuner(), GetSignalQuality(), ProvidesFrontend(), and SetPowerSaveMode().

◆ lnbPowerTurnedOn

bool cDvbTuner::lnbPowerTurnedOn
mutableprivate

Definition at line 557 of file dvbdevice.c.

Referenced by cDvbTuner(), ExecuteDiseqc(), ProvidesFrontend(), and SetPowerSaveMode().

◆ locked

cCondVar cDvbTuner::locked
private

Definition at line 560 of file dvbdevice.c.

Referenced by Action(), Locked(), and ~cDvbTuner().

◆ lockTimeout

int cDvbTuner::lockTimeout
private

Definition at line 546 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), and SetFrontend().

◆ mutex

cMutex cDvbTuner::mutex
mutableprivate

Definition at line 559 of file dvbdevice.c.

Referenced by Action(), Locked(), ProvidesFrontend(), SetChannel(), and SetPowerSaveMode().

◆ newSet

cCondVar cDvbTuner::newSet
private

Definition at line 561 of file dvbdevice.c.

Referenced by Action(), SetChannel(), and ~cDvbTuner().

◆ numDeliverySystems

int cDvbTuner::numDeliverySystems
private

Definition at line 543 of file dvbdevice.c.

Referenced by cDvbTuner(), and NumProvidedSystems().

◆ numModulations

int cDvbTuner::numModulations
private

Definition at line 544 of file dvbdevice.c.

Referenced by cDvbTuner(), and NumProvidedSystems().

◆ positioner

cPositioner* cDvbTuner::positioner
private

Definition at line 555 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), ExecuteDiseqc(), GetPositioner(), and Positioner().

◆ scr

const cScr* cDvbTuner::scr
private

Definition at line 556 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), ExecuteDiseqc(), and SetFrontend().

◆ tunerStatus

eTunerStatus cDvbTuner::tunerStatus
private

Definition at line 558 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), IsTunedTo(), Locked(), SetChannel(), SetPowerSaveMode(), and ~cDvbTuner().

◆ tuneTimeout

int cDvbTuner::tuneTimeout
private

Definition at line 545 of file dvbdevice.c.

Referenced by Action(), cDvbTuner(), and SetFrontend().


The documentation for this class was generated from the following file: