Michael Reinelt wrote: > Hi there, > > I debugged a bit my "EPG Scan not working" problem, and maybe I found a bug: > > in eitscan.c around line 160 theres something like > if (Device->ProvidesTransponder(Channel)) > > I found out that this method always returns 0 here, therefore preventing > the EPG Scan to start. > > ProvidesTRransponder() is defined in dvbdevice.c line 776, and it reads: > > bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const > { > return ProvidesSource(Channel->Source()) > && ((Channel->Source() & cSource::st_Mask) != cSource::stSat > || Diseqcs.Get(Channel->Source(), > Channel->Frequency(),Channel->Polarization())); > } > > ProvidesSource() returns 1 here, but the second expression is always > zero, both sides of the || > > the first one I do understand: I'm on Sat only. The second one is clear > to me, too: I'm not using diseq at all. So this returns 0, too. > > But I have no idea how this sould be fixed. > > Any ideas? Please try this: --- dvbdevice.c 2005/03/20 10:10:38 1.127 +++ dvbdevice.c 2005/05/14 09:59:17 @@ -741,7 +741,7 @@ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const { - return ProvidesSource(Channel->Source()) && ((Channel->Source() & cSource::st_Mask) != cSource::stSat || Diseqcs.Get(Channel->Source(), Channel->Frequency(), Channel->Polarization())); + return ProvidesSource(Channel->Source()) && ((Channel->Source() & cSource::st_Mask) != cSource::stSat || !Setup.DiSEqC || Diseqcs.Get(Channel->Source(), Channel->Frequency(), Channel->Polarization())); } bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *NeedsDetachReceivers) const This adds a check for Setup.DiSEqC, which is also done in cDvbTuner::SetFrontend() and therefore is apparently missing here. Klaus