aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr-plugin-reelchannelscan/files/patch-csmenu.c
blob: 5a1f4208b3dedc3b8a7f34c6a06302ef9f8cf3d2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--- 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)) {