vdr
2.2.0
|
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 cChannel * | GetTransponder (void) const |
uint32_t | SubsystemId (void) const |
bool | IsTunedTo (const cChannel *Channel) const |
void | SetChannel (const cChannel *Channel) |
bool | Locked (int TimeoutMs=0) |
const cPositioner * | Positioner (void) const |
int | GetSignalStrength (void) const |
int | GetSignalQuality (void) const |
![]() | |
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 |
cDvbTuner * | GetBondedMaster (void) |
bool | IsBondedMaster (void) const |
void | ClearEventQueue (void) const |
bool | GetFrontendStatus (fe_status_t &Status) const |
cPositioner * | GetPositioner (void) |
void | ExecuteDiseqc (const cDiseqc *Diseqc, int *Frequency) |
void | ResetToneAndVoltage (void) |
bool | SetFrontend (void) |
virtual void | Action (void) |
Private Attributes | |
int | frontendType |
const cDvbDevice * | device |
int | fd_frontend |
int | adapter |
int | frontend |
uint32_t | subsystemId |
int | tuneTimeout |
int | lockTimeout |
time_t | lastTimeoutReport |
cChannel | channel |
const cDiseqc * | lastDiseqc |
int | diseqcOffset |
int | lastSource |
cPositioner * | positioner |
const cScr * | scr |
bool | lnbPowerTurnedOn |
eTunerStatus | tunerStatus |
cMutex | mutex |
cCondVar | locked |
cCondVar | newSet |
cDvbTuner * | bondedTuner |
bool | bondedMaster |
Static Private Attributes | |
static cMutex | bondMutex |
Additional Inherited Members | |
![]() | |
static tThreadId | ThreadId (void) |
static tThreadId | IsMainThread (void) |
static void | SetMainThreadId (void) |
![]() | |
void | SetPriority (int Priority) |
void | SetIOPriority (int Priority) |
void | Lock (void) |
void | Unlock (void) |
bool | Running (void) |
void | Cancel (int WaitSeconds=0) |
Definition at line 303 of file dvbdevice.c.
|
private |
Enumerator | |
---|---|
tsIdle | |
tsSet | |
tsPositioning | |
tsTuned | |
tsLocked |
Definition at line 306 of file dvbdevice.c.
cDvbTuner::cDvbTuner | ( | const cDvbDevice * | Device, |
int | Fd_Frontend, | ||
int | Adapter, | ||
int | Frontend | ||
) |
Definition at line 358 of file dvbdevice.c.
References adapter, bondedMaster, bondedTuner, device, diseqcOffset, fd_frontend, frontend, frontendType, cDvbDeviceProbe::GetSubsystemId(), lastDiseqc, lastSource, lastTimeoutReport, lnbPowerTurnedOn, lockTimeout, positioner, scr, cThread::SetDescription(), cThread::Start(), subsystemId, tsIdle, tunerStatus, and tuneTimeout.
|
virtual |
Definition at line 382 of file dvbdevice.c.
References cCondVar::Broadcast(), cThread::Cancel(), locked, newSet, tsIdle, tunerStatus, and UnBond().
|
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 adapter, cCondVar::Broadcast(), channel, diseqcOffset, esyslog, frontend, GetFrontendStatus(), cPositioner::IsMoving(), isyslog, lastDiseqc, lastSource, lastTimeoutReport, locked, lockTimeout, mutex, cChannel::Name(), newSet, cChannel::Number(), positioner, cThread::Running(), scr, SCR_RANDOM_TIMEOUT, cTimeMs::Set(), SetFrontend(), cTimeMs::TimedOut(), cCondVar::TimedWait(), cChannel::Transponder(), tsIdle, tsLocked, tsPositioning, tsSet, tsTuned, tunerStatus, and tuneTimeout.
bool cDvbTuner::Bond | ( | cDvbTuner * | Tuner | ) |
Definition at line 397 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 446 of file dvbdevice.c.
References bondedTuner, bondMutex, GetBondingParams(), and IDLEPRIORITY.
Referenced by cDvbDevice::BondingOk().
|
private |
Definition at line 538 of file dvbdevice.c.
References fd_frontend, cPoller::Poll(), and TUNER_POLL_TIMEOUT.
Referenced by GetFrontendStatus(), and GetSignalStrength().
|
private |
Definition at line 702 of file dvbdevice.c.
References channel, CHECK, cDiseqc::daCodes, cDiseqc::daMiniA, cDiseqc::daMiniB, cDiseqc::daNone, cDiseqc::daPositionA, cDiseqc::daPositionN, cDiseqc::daScr, cDiseqc::daToneOff, cDiseqc::daToneOn, cDiseqc::daVoltage13, cDiseqc::daVoltage18, cDiseqc::daWait, diseqcOffset, esyslog, cDiseqc::Execute(), fd_frontend, GetPositioner(), cPositioner::GotoAngle(), cPositioner::GotoPosition(), cPositioner::IsMoving(), cDiseqc::IsScr(), lnbPowerTurnedOn, cMutex::Lock(), cSource::Position(), cDiseqc::Position(), positioner, Positioner(), ResetToneAndVoltage(), scr, cChannel::Source(), and cMutex::Unlock().
Referenced by SetFrontend().
|
inline |
Definition at line 342 of file dvbdevice.c.
References frontendType.
Referenced by cDvbDevice::DeviceType().
|
private |
Definition at line 462 of file dvbdevice.c.
References adapter, bondedMaster, bondedTuner, bondMutex, dsyslog, and frontend.
Referenced by SetChannel().
Definition at line 429 of file dvbdevice.c.
References cDevice::CardIndex(), channel, device, cSetup::DiSEqC, Diseqcs, cChannel::Frequency(), cDiseqcs::Get(), cSetup::LnbSLOF, cChannel::Parameters(), Setup, cChannel::Source(), and cString::sprintf().
Referenced by BondingOk(), and SetChannel().
|
private |
Definition at line 548 of file dvbdevice.c.
References ClearEventQueue(), and fd_frontend.
Referenced by Action(), and GetSignalQuality().
|
private |
Definition at line 693 of file dvbdevice.c.
References fd_frontend, cPositioner::GetPositioner(), positioner, and cPositioner::SetFrontend().
Referenced by ExecuteDiseqc().
int cDvbTuner::GetSignalQuality | ( | void | ) | const |
Definition at line 592 of file dvbdevice.c.
References adapter, constrain(), fd_frontend, frontend, frontendType, GetFrontendStatus(), LOCK_THRESHOLD, and subsystemId.
Referenced by cDvbDevice::SignalQuality().
int cDvbTuner::GetSignalStrength | ( | void | ) | const |
Definition at line 563 of file dvbdevice.c.
References adapter, ClearEventQueue(), fd_frontend, frontend, and subsystemId.
Referenced by cDvbDevice::SignalStrength().
|
inline |
Definition at line 346 of file dvbdevice.c.
References channel.
Referenced by cDvbDevice::GetCurrentlyTunedTransponder().
|
inlineprivate |
Definition at line 331 of file dvbdevice.c.
References bondedMaster, and bondedTuner.
Referenced by SetFrontend().
bool cDvbTuner::IsTunedTo | ( | const cChannel * | Channel | ) | const |
Definition at line 483 of file dvbdevice.c.
References channel, cChannel::Parameters(), cChannel::Source(), cChannel::Transponder(), tsIdle, and tunerStatus.
Referenced by cDvbDevice::IsTunedToTransponder(), cDvbDevice::ProvidesChannel(), and SetChannel().
bool cDvbTuner::Locked | ( | int | TimeoutMs = 0 | ) |
Definition at line 526 of file dvbdevice.c.
References locked, mutex, cCondVar::TimedWait(), tsLocked, and tunerStatus.
Referenced by cDvbDevice::HasLock().
|
inline |
Definition at line 351 of file dvbdevice.c.
References positioner.
Referenced by ExecuteDiseqc(), and cDvbDevice::Positioner().
|
private |
Definition at line 759 of file dvbdevice.c.
References bondedTuner, CHECK, and fd_frontend.
Referenced by Bond(), ExecuteDiseqc(), SetChannel(), and SetFrontend().
void cDvbTuner::SetChannel | ( | const cChannel * | Channel | ) |
Definition at line 493 of file dvbdevice.c.
References bondedTuner, bondMutex, cCondVar::Broadcast(), channel, cDevice::DelLivePids(), device, diseqcOffset, GetBondedMaster(), GetBondingParams(), cDevice::IsPrimaryDevice(), IsTunedTo(), lastTimeoutReport, mutex, newSet, cDevice::PrimaryDevice(), ResetToneAndVoltage(), SetChannel(), tsIdle, tsSet, and tunerStatus.
Referenced by SetChannel(), and cDvbDevice::SetChannelDevice().
|
private |
Definition at line 781 of file dvbdevice.c.
References adapter, ATSC_LOCK_TIMEOUT, ATSC_TUNE_TIMEOUT, cDevice::CardIndex(), channel, CHECK, device, cSetup::DiSEqC, Diseqcs, DTV_DVBT2_PLP_ID_LEGACY, DTV_STREAM_ID, DvbApiVersion, DVBC_LOCK_TIMEOUT, DVBC_TUNE_TIMEOUT, DVBS_LOCK_TIMEOUT, DVBS_TUNE_TIMEOUT, DVBT_LOCK_TIMEOUT, DVBT_TUNE_TIMEOUT, esyslog, ExecuteDiseqc(), fd_frontend, cChannel::Frequency(), FrequencyToHz(), frontend, frontendType, cDiseqcs::Get(), GetRequiredDeliverySystem(), IsBondedMaster(), cDiseqc::IsScr(), lastDiseqc, lastSource, cSetup::LnbFrequHi, cSetup::LnbFrequLo, cSetup::LnbSLOF, lockTimeout, MAXFRONTENDCMDS, cChannel::Name(), cChannel::Number(), cChannel::Parameters(), ResetToneAndVoltage(), scr, SETCMD, Setup, cChannel::Source(), cChannel::Srate(), SYS_DVBT2, and tuneTimeout.
Referenced by Action().
|
private |
|
inline |
Definition at line 347 of file dvbdevice.c.
References subsystemId.
void cDvbTuner::UnBond | ( | void | ) |
Definition at line 413 of file dvbdevice.c.
References adapter, bondedMaster, bondedTuner, bondMutex, dsyslog, and frontend.
Referenced by cDvbDevice::UnBond(), and ~cDvbTuner().
|
private |
Definition at line 310 of file dvbdevice.c.
Referenced by Action(), Bond(), cDvbTuner(), GetBondedMaster(), GetSignalQuality(), GetSignalStrength(), SetFrontend(), and UnBond().
|
private |
Definition at line 327 of file dvbdevice.c.
Referenced by Bond(), cDvbTuner(), GetBondedMaster(), IsBondedMaster(), and UnBond().
|
private |
Definition at line 326 of file dvbdevice.c.
Referenced by Bond(), BondingOk(), cDvbTuner(), GetBondedMaster(), IsBondedMaster(), ResetToneAndVoltage(), SetChannel(), and UnBond().
|
staticprivate |
Definition at line 305 of file dvbdevice.c.
Referenced by Bond(), BondingOk(), GetBondedMaster(), SetChannel(), and UnBond().
|
private |
Definition at line 315 of file dvbdevice.c.
Referenced by Action(), ExecuteDiseqc(), GetBondingParams(), GetTransponder(), IsTunedTo(), SetChannel(), and SetFrontend().
|
private |
Definition at line 308 of file dvbdevice.c.
Referenced by cDvbTuner(), GetBondingParams(), SetChannel(), and SetFrontend().
|
private |
Definition at line 317 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), ExecuteDiseqc(), and SetChannel().
|
private |
Definition at line 309 of file dvbdevice.c.
Referenced by cDvbTuner(), ClearEventQueue(), ExecuteDiseqc(), GetFrontendStatus(), GetPositioner(), GetSignalQuality(), GetSignalStrength(), ResetToneAndVoltage(), and SetFrontend().
|
private |
Definition at line 310 of file dvbdevice.c.
Referenced by Action(), Bond(), cDvbTuner(), GetBondedMaster(), GetSignalQuality(), GetSignalStrength(), SetFrontend(), and UnBond().
|
private |
Definition at line 307 of file dvbdevice.c.
Referenced by cDvbTuner(), FrontendType(), GetSignalQuality(), and SetFrontend().
|
private |
Definition at line 316 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), and SetFrontend().
|
private |
Definition at line 318 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), and SetFrontend().
|
private |
Definition at line 314 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), and SetChannel().
|
private |
Definition at line 321 of file dvbdevice.c.
Referenced by cDvbTuner(), and ExecuteDiseqc().
|
private |
Definition at line 324 of file dvbdevice.c.
Referenced by Action(), Locked(), and ~cDvbTuner().
|
private |
Definition at line 313 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), and SetFrontend().
|
private |
Definition at line 323 of file dvbdevice.c.
Referenced by Action(), Locked(), and SetChannel().
|
private |
Definition at line 325 of file dvbdevice.c.
Referenced by Action(), SetChannel(), and ~cDvbTuner().
|
private |
Definition at line 319 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), ExecuteDiseqc(), GetPositioner(), and Positioner().
|
private |
Definition at line 320 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), ExecuteDiseqc(), and SetFrontend().
|
private |
Definition at line 311 of file dvbdevice.c.
Referenced by cDvbTuner(), GetSignalQuality(), GetSignalStrength(), and SubsystemId().
|
private |
Definition at line 322 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), IsTunedTo(), Locked(), SetChannel(), and ~cDvbTuner().
|
private |
Definition at line 312 of file dvbdevice.c.
Referenced by Action(), cDvbTuner(), and SetFrontend().