freebsd-ports/multimedia/vdr-plugin-reelchannelscan/files/patch-csmenu.c
Juergen Lock ac9fa58473 - Fix crashes and wrong channels.conf entries caused by wrong/missing
DVB-S(2) sources in some cases.
- Only limit DVB-S(2) sources to what's in diseqc.conf if vdr is
  configured to actually use it.
- Bump PORTREVISION.
2011-05-11 20:15:16 +00:00

35 lines
1.8 KiB
C

--- a/csmenu.c
+++ b/csmenu.c
@@ -378,8 +378,12 @@ void cMenuChannelscan::Set()
// avoid C/T-positions for SAT
// and take Astra as start position
- if (srcTypes[currentTuner] >= SAT && (source == cSource::FromString("C") || source == cSource::FromString("T"))) {
- source = cSource::FromString("S19.2E");
+ if (srcTypes[currentTuner] >= SAT && (source == cSource::FromString("C") || source == cSource::FromString("T") || !Sources.Get(source))) {
+ cDiseqc *d = Diseqcs.First();
+ if (Setup.DiSEqC > 0 && d)
+ source = d->Source();
+ else
+ source = cSource::FromString("S19.2E");
}
Add(new cMenuEditStraItem(tr("Search Mode"), &scanMode, 2, searchTexts));
@@ -1209,7 +1213,7 @@ eOSState cMyMenuEditSrcItem::ProcessKey(
{
if (NORMALKEY(Key) == kLeft) // TODO might want to increase the delta if repeated quickly?
{
- if(cSource::IsSat(source->Code()) && !cPluginManager::GetPlugin("mcli")) {
+ if(cSource::IsSat(source->Code()) && !cPluginManager::GetPlugin("mcli") && Setup.DiSEqC > 0) {
source = oldSrc;
while(!found && source && (source->Code() & cSource::stSat)) {
for (cDiseqc *p = Diseqcs.First(); p && !found; p = Diseqcs.Next(p)) {
@@ -1231,7 +1235,7 @@ eOSState cMyMenuEditSrcItem::ProcessKey(
}
}
} else if (NORMALKEY(Key) == kRight) {
- if (cSource::IsSat(source->Code()) && !cPluginManager::GetPlugin("mcli")) {
+ if (cSource::IsSat(source->Code()) && !cPluginManager::GetPlugin("mcli") && Setup.DiSEqC > 0) {
source = oldSrc;
while(!found && source && (source->Code() & cSource::stSat)) {
for (cDiseqc *p = Diseqcs.First(); p && !found; p = Diseqcs.Next(p)) {