vdr  2.2.0
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
cDvbTuner Class Reference

Public Member Functions

 cDvbTuner (const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend)
 
virtual ~cDvbTuner ()
 
int FrontendType (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
 
int GetSignalStrength (void) const
 
int GetSignalQuality (void) const
 
- 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

bool SetFrontendType (const cChannel *Channel)
 
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, unsigned int *Frequency)
 
void ResetToneAndVoltage (void)
 
bool SetFrontend (void)
 
virtual void Action (void)
 

Private Attributes

int frontendType
 
const cDvbDevicedevice
 
int fd_frontend
 
int adapter
 
int frontend
 
uint32_t subsystemId
 
int tuneTimeout
 
int lockTimeout
 
time_t lastTimeoutReport
 
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 303 of file dvbdevice.c.

Member Enumeration Documentation

Enumerator
tsIdle 
tsSet 
tsPositioning 
tsTuned 
tsLocked 

Definition at line 306 of file dvbdevice.c.

Constructor & Destructor Documentation

cDvbTuner::cDvbTuner ( const cDvbDevice Device,
int  Fd_Frontend,
int  Adapter,
int  Frontend 
)

Definition at line 358 of file dvbdevice.c.

References cDvbDeviceProbe::GetSubsystemId().

cDvbTuner::~cDvbTuner ( )
virtual

Definition at line 382 of file dvbdevice.c.

Member Function Documentation

void cDvbTuner::Action ( void  )
privatevirtual

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 929 of file dvbdevice.c.

References esyslog, isyslog, SCR_RANDOM_TIMEOUT, cTimeMs::Set(), and cTimeMs::TimedOut().

bool cDvbTuner::Bond ( cDvbTuner Tuner)

Definition at line 397 of file dvbdevice.c.

References adapter, bondedTuner, dsyslog, esyslog, and frontend.

Referenced by cDvbDevice::Bond().

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

Definition at line 446 of file dvbdevice.c.

References IDLEPRIORITY.

void cDvbTuner::ClearEventQueue ( void  ) const
private

Definition at line 538 of file dvbdevice.c.

References cPoller::Poll(), and TUNER_POLL_TIMEOUT.

void cDvbTuner::ExecuteDiseqc ( const cDiseqc Diseqc,
unsigned int *  Frequency 
)
private
int cDvbTuner::FrontendType ( void  ) const
inline

Definition at line 342 of file dvbdevice.c.

cDvbTuner * cDvbTuner::GetBondedMaster ( void  )
private

Definition at line 462 of file dvbdevice.c.

References dsyslog.

cString cDvbTuner::GetBondingParams ( const cChannel Channel = NULL) const
private
bool cDvbTuner::GetFrontendStatus ( fe_status_t &  Status) const
private

Definition at line 548 of file dvbdevice.c.

cPositioner * cDvbTuner::GetPositioner ( void  )
private

Definition at line 693 of file dvbdevice.c.

References cPositioner::GetPositioner().

int cDvbTuner::GetSignalQuality ( void  ) const

Definition at line 592 of file dvbdevice.c.

References constrain(), and LOCK_THRESHOLD.

int cDvbTuner::GetSignalStrength ( void  ) const

Definition at line 563 of file dvbdevice.c.

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

Definition at line 346 of file dvbdevice.c.

bool cDvbTuner::IsBondedMaster ( void  ) const
inlineprivate

Definition at line 331 of file dvbdevice.c.

bool cDvbTuner::IsTunedTo ( const cChannel Channel) const

Definition at line 483 of file dvbdevice.c.

References cChannel::Parameters(), cChannel::Source(), and cChannel::Transponder().

bool cDvbTuner::Locked ( int  TimeoutMs = 0)

Definition at line 526 of file dvbdevice.c.

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

Definition at line 351 of file dvbdevice.c.

References bondMutex.

void cDvbTuner::ResetToneAndVoltage ( void  )
private

Definition at line 759 of file dvbdevice.c.

References CHECK.

void cDvbTuner::SetChannel ( const cChannel Channel)
bool cDvbTuner::SetFrontend ( void  )
private
bool cDvbTuner::SetFrontendType ( const cChannel Channel)
private
uint32_t cDvbTuner::SubsystemId ( void  ) const
inline

Definition at line 347 of file dvbdevice.c.

void cDvbTuner::UnBond ( void  )

Definition at line 413 of file dvbdevice.c.

References dsyslog.

Member Data Documentation

int cDvbTuner::adapter
private

Definition at line 310 of file dvbdevice.c.

Referenced by Bond().

bool cDvbTuner::bondedMaster
private

Definition at line 327 of file dvbdevice.c.

cDvbTuner* cDvbTuner::bondedTuner
private

Definition at line 326 of file dvbdevice.c.

Referenced by Bond(), and SetChannel().

cMutex cDvbTuner::bondMutex
staticprivate

Definition at line 305 of file dvbdevice.c.

Referenced by Positioner().

cChannel cDvbTuner::channel
private

Definition at line 315 of file dvbdevice.c.

const cDvbDevice* cDvbTuner::device
private

Definition at line 308 of file dvbdevice.c.

int cDvbTuner::diseqcOffset
private

Definition at line 317 of file dvbdevice.c.

int cDvbTuner::fd_frontend
private

Definition at line 309 of file dvbdevice.c.

int cDvbTuner::frontend
private

Definition at line 310 of file dvbdevice.c.

Referenced by Bond().

int cDvbTuner::frontendType
private

Definition at line 307 of file dvbdevice.c.

const cDiseqc* cDvbTuner::lastDiseqc
private

Definition at line 316 of file dvbdevice.c.

int cDvbTuner::lastSource
private

Definition at line 318 of file dvbdevice.c.

time_t cDvbTuner::lastTimeoutReport
private

Definition at line 314 of file dvbdevice.c.

bool cDvbTuner::lnbPowerTurnedOn
private

Definition at line 321 of file dvbdevice.c.

cCondVar cDvbTuner::locked
private

Definition at line 324 of file dvbdevice.c.

int cDvbTuner::lockTimeout
private

Definition at line 313 of file dvbdevice.c.

cMutex cDvbTuner::mutex
private

Definition at line 323 of file dvbdevice.c.

cCondVar cDvbTuner::newSet
private

Definition at line 325 of file dvbdevice.c.

cPositioner* cDvbTuner::positioner
private

Definition at line 319 of file dvbdevice.c.

const cScr* cDvbTuner::scr
private

Definition at line 320 of file dvbdevice.c.

uint32_t cDvbTuner::subsystemId
private

Definition at line 311 of file dvbdevice.c.

eTunerStatus cDvbTuner::tunerStatus
private

Definition at line 322 of file dvbdevice.c.

int cDvbTuner::tuneTimeout
private

Definition at line 312 of file dvbdevice.c.


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