Gmane
From: Christian Schuld <chris <at> sonnengesicht.de>
Subject: Re: cDvbDevice::ProvidesSource too simplistic?
Newsgroups: gmane.linux.vdr
Date: 2004-08-25 09:44:25 GMT (4 years, 1 week, 6 days, 14 hours and 28 minutes ago)
Hi Luca,

in the attachment you will find a patch, which adds a "SourceCaps" option to 
vdr. Usefull for multicard setups where each card can receive different 
satellites.

For example my setup looks like this:
SourceCaps = 1 S19.E
SourceCaps = 2 S13.0E S5.0E S19.E
SourceCaps = 3 S39.0E S36.0E S33.0 S28.2E S23.5E S19.2E ......... S43.0W

It is implemented in the way you suggested in the cDvbDevice::ProvidesSource 
method, but it lacks a configuration menu, so you must edit setup.conf 
manually. I'm using it since vdr-1.3.4 and it works like a charm :-)

Hope it helps
Christian

On Tuesday 24 August 2004 09:25, Luca Olivetti wrote:
> Hello,
>
> I'm looking how vdr calls the cStatusMonitor::ChannelSwitch method to
> clean up the  actuator plugin[* a question for Thomas Bergwinkl later
> on] and I see that to decide if a dvb device provides a channel it calls
> ProvidesSource, and that it only checks the frontend (cable, satellite
> or terrestrial) of the card to determine that the source is available.
> What if I have two or more cards connected to different dishes pointing
> at different satellites? Or one card connected to a steerable dish and
> another one to a fixed one?
> Shouldn't there be a configuration file to tell which cards can receive
> which satellites? (I looked at disecq.conf but it only specifies
> satellites, not cards)
>
> [*] the question for Thomas is:
> I "inherited" from your rotor plugin something of the ChannelSwitch
> implementation. There you have this condition to determine if you have
> to move the dish:
>
> ----------8<-------------8<--------------8<--------------8<---------
> if (ChannelNumber) {
>    if ((Device!=cDevice::PrimaryDevice()) ||
> (cDevice::ActualDevice()==cDevice::PrimaryDevice()) ||
> (cDevice::PrimaryDevice()->cDevice::HasProgramme()) && transfer) {
>
>    [move the dish]
>    }
>    if ((cDevice::ActualDevice()!=cDevice::PrimaryDevice()) &&
> (Device==cDevice::PrimaryDevice()) )
>            transfer=true;
>    if ((cDevice::ActualDevice()==cDevice::PrimaryDevice()) &&
> (Device==cDevice::PrimaryDevice())) transfer=false;
> }
> ----------8<-------------8<--------------8<--------------8<---------
>
> Is that really necessary? According to the documentation if
> ChannelNumber!=0 vdr has already successfully switched to the channel,
> so the other conditions should not be necessary.
>
> Bye

-- 
Viele Grüße
Christian