summaryrefslogtreecommitdiff
path: root/dvbdevice.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2010-02-06 15:56:01 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2010-02-06 15:56:01 +0100
commit184db9ec8a9a5f14876a0049aa2dc36cb2e7a83b (patch)
tree423a0dba7f54ffe7ba287fce3ade6f2698dc9e70 /dvbdevice.c
parent91115a64e4cb8860aee4938b7359ad4dc35babe6 (diff)
downloadvdr-184db9ec8a9a5f14876a0049aa2dc36cb2e7a83b.tar.gz
vdr-184db9ec8a9a5f14876a0049aa2dc36cb2e7a83b.tar.bz2
Added device definitions to the diseqc.conf file format
Diffstat (limited to 'dvbdevice.c')
-rw-r--r--dvbdevice.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/dvbdevice.c b/dvbdevice.c
index 373628b6..6915de45 100644
--- a/dvbdevice.c
+++ b/dvbdevice.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: dvbdevice.c 2.26 2010/02/06 14:38:44 kls Exp $
+ * $Id: dvbdevice.c 2.27 2010/02/06 15:34:14 kls Exp $
*/
#include "dvbdevice.h"
@@ -30,6 +30,7 @@
class cDvbTuner : public cThread {
private:
enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked };
+ int device;
int fd_frontend;
int adapter, frontend;
int tuneTimeout;
@@ -46,7 +47,7 @@ private:
bool SetFrontend(void);
virtual void Action(void);
public:
- cDvbTuner(int Fd_Frontend, int Adapter, int Frontend, fe_delivery_system FrontendType);
+ cDvbTuner(int Device, int Fd_Frontend, int Adapter, int Frontend, fe_delivery_system FrontendType);
virtual ~cDvbTuner();
const cChannel *GetTransponder(void) const { return &channel; }
bool IsTunedTo(const cChannel *Channel) const;
@@ -54,8 +55,9 @@ public:
bool Locked(int TimeoutMs = 0);
};
-cDvbTuner::cDvbTuner(int Fd_Frontend, int Adapter, int Frontend, fe_delivery_system FrontendType)
+cDvbTuner::cDvbTuner(int Device, int Fd_Frontend, int Adapter, int Frontend, fe_delivery_system FrontendType)
{
+ device = Device;
fd_frontend = Fd_Frontend;
adapter = Adapter;
frontend = Frontend;
@@ -175,7 +177,7 @@ bool cDvbTuner::SetFrontend(void)
if (frontendType == SYS_DVBS || frontendType == SYS_DVBS2) {
unsigned int frequency = channel.Frequency();
if (Setup.DiSEqC) {
- cDiseqc *diseqc = Diseqcs.Get(channel.Source(), channel.Frequency(), channel.Polarization());
+ cDiseqc *diseqc = Diseqcs.Get(device, channel.Source(), channel.Frequency(), channel.Polarization());
if (diseqc) {
if (diseqc->Commands() && (!diseqcCommands || strcmp(diseqcCommands, diseqc->Commands()) != 0)) {
cDiseqc::eDiseqcActions da;
@@ -420,7 +422,7 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend)
if (frontendType == SYS_DVBS2)
numProvidedSystems++;
isyslog("frontend %d/%d provides %s (\"%s\")", adapter, frontend, DeliverySystems[frontendType], frontendInfo.name);
- dvbTuner = new cDvbTuner(fd_frontend, adapter, frontend, frontendType);
+ dvbTuner = new cDvbTuner(DeviceNumber(), fd_frontend, adapter, frontend, frontendType);
}
}
else
@@ -612,7 +614,7 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
return DeviceHooksProvidesTransponder(Channel); // source is sufficient for non sat
if (frontendType == SYS_DVBS && Channel->System() == SYS_DVBS2)
return false; // requires modulation system which frontend doesn't provide
- if (!Setup.DiSEqC || Diseqcs.Get(Channel->Source(), Channel->Frequency(), Channel->Polarization()))
+ if (!Setup.DiSEqC || Diseqcs.Get(DeviceNumber(), Channel->Source(), Channel->Frequency(), Channel->Polarization()))
return DeviceHooksProvidesTransponder(Channel);
return false;
}