1 Index: src/enigma_scan.cpp
2 ===================================================================
3 RCS file: /cvs/tuxbox/apps/tuxbox/b/src/enigma_scan.cpp,v
4 retrieving revision 1.25
5 diff -u -r1.25 enigma_scan.cpp
6 --- a/src/enigma_scan.cpp 5 Feb 2006 23:41:01 -0000 1.25
7 +++ b/src/enigma_scan.cpp 21 Aug 2007 17:08:27 -0000
11 #include <tpeditwindow.h>
12 +#include <enigma_plugins.h>
13 #include <lib/base/i18n.h>
14 #include <lib/dvb/edvb.h>
15 #include <lib/dvb/frontend.h>
17 CONNECT((new eListBoxEntryMenu(&list, _("Automatic Multisat Scan"), eString().sprintf("(%d) %s", ++entry, _("open automatic multisat transponder scan"))))->selected, eZapScan::sel_multiScan);
19 CONNECT((new eListBoxEntryMenu(&list, _("Manual Transponder Scan"), eString().sprintf("(%d) %s", ++entry, _("open manual transponder scan"))))->selected, eZapScan::sel_manualScan);
20 + if ( eFrontend::getInstance()->canBlindScan() && eZapPlugins(2).execPluginByName("enigma_blindscan.cfg", true) == "OK" )
21 + CONNECT((new eListBoxEntryMenu(&list, _("Satellite Blindscan"), eString().sprintf("(%d) %s", ++entry, _("open transponder blindscan"))))->selected, eZapScan::sel_blindScan);
24 void eZapScan::sel_satfind()
29 +void eZapScan::sel_blindScan()
32 + eZapPlugins(2).execPluginByName("enigma_blindscan.cfg");
36 void eZapScan::sel_satconfig()
39 Index: src/enigma_scan.h
40 ===================================================================
41 RCS file: /cvs/tuxbox/apps/tuxbox/b/src/enigma_scan.h,v
42 retrieving revision 1.7
43 diff -u -r1.7 enigma_scan.h
44 --- a/src/enigma_scan.h 26 Oct 2003 00:41:17 -0000 1.7
45 +++ b/src/enigma_scan.h 21 Aug 2007 17:08:27 -0000
48 void sel_manualScan();
50 + void sel_blindScan();
52 static eLNB* getRotorLNB(int silent);
55 ===================================================================
56 RCS file: /cvs/tuxbox/apps/tuxbox/b/src/scan.cpp,v
57 retrieving revision 1.92
58 diff -u -r1.92 scan.cpp
59 --- a/src/scan.cpp 5 Feb 2006 23:41:01 -0000 1.92
60 +++ b/src/scan.cpp 21 Aug 2007 17:08:27 -0000
64 #include <enigma_main.h>
65 +#include <enigma_plugins.h>
66 #include <lib/base/i18n.h>
67 #include <lib/dvb/frontend.h>
68 #include <lib/dvb/si.h>
70 new eListBoxEntryMenuItem(list, _("Automatic Multisat Scan"), (void*)3, 0, _("open automatic multisat transponder scan") );
71 new eListBoxEntryMenuItem(list, _("manual scan.."), (void*)1, 0, _("open manual transponder scan") );
72 CONNECT(list->selected, tsSelectType::selected);
73 + if ( eFrontend::getInstance()->canBlindScan() && eZapPlugins(2).execPluginByName("enigma_blindscan.cfg", true) == "OK" )
74 + new eListBoxEntryMenuItem(list, _("Satellite Blindscan"), (void*)4, 0, _("open transponder blindscan") );
77 void tsSelectType::selected(eListBoxEntryMenu *entry)
83 +struct countTransponders
86 + countTransponders(int &cnt)
91 + void operator()(eTransponder &t)
98 int TransponderScan::Exec()
100 tState state = stateInitial;
101 @@ -1335,6 +1354,20 @@
107 + int tp_count_old, tp_count_new;
108 + eTransponderList::getInstance()->forEachTransponder(countTransponders(tp_count_old));
109 + eWindow::globalCancel(eWindow::ON);
111 + eZapPlugins(2).execPluginByName("enigma_blindscan.cfg");
114 + eWindow::globalCancel(eWindow::OFF);
115 + eTransponderList::getInstance()->forEachTransponder(countTransponders(tp_count_new));
116 + ret=tp_count_new > tp_count_old ? 0 : 1;
121 if ( eSystemInfo::getInstance()->getFEType() == eSystemInfo::feSatellite )
123 ===================================================================
124 RCS file: /cvs/tuxbox/apps/tuxbox/b/src/scan.h,v
125 retrieving revision 1.38
126 diff -u -r1.38 scan.h
127 --- a/src/scan.h 20 Feb 2007 21:57:05 -0000 1.38
128 +++ b/src/scan.h 21 Aug 2007 17:08:27 -0000
137 diff -Naur a/include/lib/dvb/frontend.h b/include/lib/dvb/frontend.h
138 --- a/include/lib/dvb/frontend.h 2007-08-21 22:04:22.000000000 +0200
139 +++ b/include/lib/dvb/frontend.h 2007-08-24 00:59:42.000000000 +0200
144 + bool m_canBlindScan;
145 #if HAVE_DVB_API_VERSION < 3
146 FrontendParameters front;
149 static eFrontend *getInstance() { return frontend; }
151 int Type() { return type; }
152 + int canBlindScan() { return m_canBlindScan; }
155 int Locked() { return Status()&FE_HAS_LOCK; }
156 diff -Naur a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
157 --- a/lib/dvb/frontend.cpp 2007-08-21 22:04:22.000000000 +0200
158 +++ b/lib/dvb/frontend.cpp 2007-08-24 01:00:13.000000000 +0200
161 checkRotorLockTimer(eApp), checkLockTimer(eApp),
162 updateTransponderTimer(eApp), sn(0), noRotorCmd(0),
163 - idlePowerInput_l(0), idlePowerInput_h(0)
164 + idlePowerInput_l(0), idlePowerInput_h(0), m_canBlindScan(false)
166 CONNECT(rotorTimer1.timeout, eFrontend::RotorStartLoop );
167 CONNECT(rotorTimer2.timeout, eFrontend::RotorRunningLoop );
169 curContTone = curVoltage = -1;
173 +// check if tuner can blindscan
174 + if (type == eSystemInfo::feSatellite)
176 + FILE *f=fopen("/proc/bus/nim_sockets", "rt");
180 + if (!fgets(buffer, 128, f))
185 + if (strstr(buffer, "Name:") && strstr(buffer, "Alps -S(STV0288)"))
187 + m_canBlindScan=true;
195 void eFrontend::checkLock()