vdr  1.7.27
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
cDvbTuner Class Reference

List of all members.

Public Member Functions

 cDvbTuner (const cDvbDevice *Device, int Fd_Frontend, int Adapter, int Frontend)
virtual ~cDvbTuner ()
bool Bond (cDvbTuner *Tuner)
void UnBond (void)
bool BondingOk (const cChannel *Channel, bool ConsiderOccupied=false) const
cDvbTunerGetBondedMaster (void)
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)
int GetSignalStrength (void) const
int GetSignalQuality (void) const

Private Types

enum  eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked }

Private Member Functions

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

Private Attributes

const cDvbDevicedevice
int fd_frontend
int adapter
int frontend
uint32_t subsystemId
int tuneTimeout
int lockTimeout
time_t lastTimeoutReport
cChannel channel
const cDiseqclastDiseqc
const cScrscr
bool lnbPowerTurnedOn
eTunerStatus tunerStatus
cMutex mutex
cCondVar locked
cCondVar newSet
cDvbTunerbondedTuner
bool bondedMaster
bool bondedMasterFailed

Static Private Attributes

static cMutex bondMutex

Detailed Description

Definition at line 284 of file dvbdevice.c.


Member Enumeration Documentation

enum cDvbTuner::eTunerStatus [private]
Enumerator:
tsIdle 
tsSet 
tsTuned 
tsLocked 

Definition at line 287 of file dvbdevice.c.


Constructor & Destructor Documentation

cDvbTuner::cDvbTuner ( const cDvbDevice Device,
int  Fd_Frontend,
int  Adapter,
int  Frontend 
)
cDvbTuner::~cDvbTuner ( ) [virtual]

Definition at line 353 of file dvbdevice.c.

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


Member Function Documentation

void cDvbTuner::Action ( void  ) [private, virtual]

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

References adapter, bondedMaster, bondedMasterFailed, bondedTuner, bondMutex, cCondVar::Broadcast(), channel, esyslog, frontend, GetFrontendStatus(), isyslog, lastDiseqc, lastTimeoutReport, locked, lockTimeout, mutex, newSet, cChannel::Number(), cThread::Running(), scr, SCR_RANDOM_TIMEOUT, cTimeMs::Set(), SetFrontend(), cTimeMs::TimedOut(), cCondVar::TimedWait(), cChannel::Transponder(), tsIdle, tsLocked, tsSet, tsTuned, tunerStatus, and tuneTimeout.

bool cDvbTuner::Bond ( cDvbTuner Tuner)

Definition at line 368 of file dvbdevice.c.

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

Referenced by cDvbDevice::Bond().

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

Definition at line 417 of file dvbdevice.c.

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

Referenced by cDvbDevice::BondingOk().

void cDvbTuner::ClearEventQueue ( void  ) const [private]

Definition at line 521 of file dvbdevice.c.

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

Referenced by GetFrontendStatus(), and GetSignalStrength().

void cDvbTuner::ExecuteDiseqc ( const cDiseqc Diseqc,
unsigned int *  Frequency 
) [private]
cString cDvbTuner::GetBondingParams ( const cChannel Channel = NULL) const [private]
bool cDvbTuner::GetFrontendStatus ( fe_status_t &  Status) const [private]

Definition at line 531 of file dvbdevice.c.

References ClearEventQueue(), and fd_frontend.

Referenced by Action(), and GetSignalQuality().

int cDvbTuner::GetSignalQuality ( void  ) const

Definition at line 573 of file dvbdevice.c.

References adapter, fd_frontend, frontend, GetFrontendStatus(), LOCK_THRESHOLD, and subsystemId.

Referenced by cDvbDevice::SignalQuality().

int cDvbTuner::GetSignalStrength ( void  ) const

Definition at line 546 of file dvbdevice.c.

References adapter, ClearEventQueue(), fd_frontend, frontend, and subsystemId.

Referenced by cDvbDevice::SignalStrength().

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

Definition at line 321 of file dvbdevice.c.

References channel.

Referenced by cDvbDevice::GetCurrentlyTunedTransponder().

bool cDvbTuner::IsTunedTo ( const cChannel Channel) const
bool cDvbTuner::Locked ( int  TimeoutMs = 0)

Definition at line 509 of file dvbdevice.c.

References locked, mutex, cCondVar::TimedWait(), tsLocked, and tunerStatus.

Referenced by cDvbDevice::HasLock().

void cDvbTuner::ResetToneAndVoltage ( void  ) [private]

Definition at line 689 of file dvbdevice.c.

References CHECK, and fd_frontend.

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

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

References subsystemId.

void cDvbTuner::UnBond ( void  )

Definition at line 384 of file dvbdevice.c.

References adapter, bondedMaster, bondedTuner, bondMutex, dsyslog, and frontend.

Referenced by cDvbDevice::UnBond(), and ~cDvbTuner().


Member Data Documentation

int cDvbTuner::adapter [private]
bool cDvbTuner::bondedMaster [private]

Definition at line 304 of file dvbdevice.c.

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

Definition at line 305 of file dvbdevice.c.

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

Definition at line 303 of file dvbdevice.c.

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

cMutex cDvbTuner::bondMutex [static, private]

Definition at line 286 of file dvbdevice.c.

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

const cDvbDevice* cDvbTuner::device [private]

Definition at line 288 of file dvbdevice.c.

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

int cDvbTuner::fd_frontend [private]
int cDvbTuner::frontend [private]
const cDiseqc* cDvbTuner::lastDiseqc [private]

Definition at line 296 of file dvbdevice.c.

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

time_t cDvbTuner::lastTimeoutReport [private]

Definition at line 294 of file dvbdevice.c.

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

Definition at line 298 of file dvbdevice.c.

Referenced by cDvbTuner(), and ExecuteDiseqc().

Definition at line 301 of file dvbdevice.c.

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

int cDvbTuner::lockTimeout [private]

Definition at line 293 of file dvbdevice.c.

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

Reimplemented from cThread.

Definition at line 300 of file dvbdevice.c.

Referenced by Action(), GetBondedMaster(), Locked(), and SetChannel().

Definition at line 302 of file dvbdevice.c.

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

const cScr* cDvbTuner::scr [private]

Definition at line 297 of file dvbdevice.c.

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

uint32_t cDvbTuner::subsystemId [private]

Definition at line 291 of file dvbdevice.c.

Referenced by cDvbTuner(), GetSignalQuality(), GetSignalStrength(), and SubsystemId().

Definition at line 299 of file dvbdevice.c.

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

int cDvbTuner::tuneTimeout [private]

Definition at line 292 of file dvbdevice.c.

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


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