1 #ifndef __src_lib_dvb_dvbscan_h
2 #define __src_lib_dvb_dvbscan_h
4 #include <lib/dvb/edvb.h>
8 class eDVBScanEvent
: public eDVBEvent
13 eventScanBegin
=eDVBEvent::eventUser
, // -> next
15 eventScanNext
, // -> tune
17 eventScanTuneOK
, // tuneOK führt zu "getPAT"
18 eventScanTuneError
, // tuneError führt zu ScanError
19 eventScanGotPAT
, // -> Wait
20 eventScanGotSDT
, // scanOK |= SDT
21 eventScanGotNIT
, // scanOK |= NIT
22 eventScanGotONIT
, // scanOK |= ONIT
23 eventScanGotBAT
, // scanOK |= BAT
28 eDVBScanEvent(int event
): eDVBEvent(event
) { }
29 eDVBScanEvent(int event
, int err
, eTransponder
*transponder
): eDVBEvent(event
, err
, transponder
) { }
32 class eDVBScanState
: public eDVBState
37 stateScanTune
=eDVBState::stateUser
, // tune ended mit "tuned" in switchedTransponder
38 stateScanGetPAT
, // -> gotPAT:scanError (PATready)
42 eDVBScanState(int state
): eDVBState(state
) { }
45 class eDVBScanController
: public eDVBController
, public Object
49 int scanOK
; // 1 SDT, 2 NIT, 4 BAT, 8 oNIT
51 // der aktuelle gescannte transponder
52 eTransponder
*transponder
;
54 void PATready(int error
);
55 void SDTready(int error
);
56 void NITready(int error
);
57 void ONITready(int error
);
58 void BATready(int error
);
59 void FreeCheckFinished();
61 std::list
<eTransponder
> knownTransponder
;
62 std::list
<eTransponder
> changedTransponder
;
63 std::list
<eTransponder
>::iterator current
;
65 void handleSDT(const SDT
*sdt
);
67 void freeCheckFinished();
68 Signal0
<void> freeCheckFinishedCallback
;
73 // not compatible to xml-flags!
78 flagSkipOtherOrbitalPositions
=32,
79 flagNoCircularPolarization
=64,
83 eDVBScanController(eDVB
&dvb
);
84 ~eDVBScanController();
86 void handleEvent(const eDVBEvent
&event
);
87 unsigned int getOrbitalPosition() { return knownTransponder
.front().satellite
.orbital_position
; }
89 bool addTransponder(const eTransponder
&transponder
);
90 int getknownTransponderSize() { return knownTransponder
.size(); }
92 void setUseONIT(int useonit
);
93 void setUseBAT(int usebat
);
94 void setNetworkSearch(int networksearch
);
95 void setClearList(int clearlist
);
96 void setSkipOtherOrbitalPositions(int skipOtherOP
);
97 void setNoCircularPolarization(int nocircular
);
98 void setOnlyFree(int onlyFree
);