import of enigma2
[vuplus_dvbapp] / lib / dvb / frontend.h
1 #ifndef __dvb_frontend_h
2 #define __dvb_frontend_h
3
4 #include <lib/dvb/idvb.h>
5
6 class eDVBFrontendParameters: public virtual iDVBFrontendParameters
7 {
8         DECLARE_REF;
9         union
10         {
11                 eDVBFrontendParametersSatellite sat;
12                 eDVBFrontendParametersCable cable;
13                 eDVBFrontendParametersTerrestrial terrestrial;
14         };
15         int m_type;
16 public:
17         eDVBFrontendParameters();
18         
19         RESULT getSystem(int &type) const;
20         RESULT getDVBS(eDVBFrontendParametersSatellite &p) const;
21         RESULT getDVBC(eDVBFrontendParametersCable &p) const;
22         RESULT getDVBT(eDVBFrontendParametersTerrestrial &p) const;
23
24         RESULT setDVBS(eDVBFrontendParametersSatellite &p);
25         RESULT setDVBC(eDVBFrontendParametersCable &p);
26         RESULT setDVBT(eDVBFrontendParametersTerrestrial &p);
27         
28         RESULT calculateDifference(const iDVBFrontendParameters *parm, int &diff) const;
29         
30         RESULT getHash(unsigned long &hash) const;
31 };
32
33 class eDVBFrontend: public virtual iDVBFrontend, public Object
34 {
35         DECLARE_REF;
36         int m_type;
37         int m_fd;
38         int m_state;
39         Signal1<void,iDVBFrontend*> m_stateChanged;
40         ePtr<iDVBSatelliteEquipmentControl> m_sec;
41         eSocketNotifier *m_sn;
42         int m_tuning;
43         eTimer *m_timeout;
44         
45         void feEvent(int);
46         void timeout();
47 public:
48         eDVBFrontend(int adap, int fe, int &ok);        
49         virtual ~eDVBFrontend();
50
51         RESULT getFrontendType(int &type);
52         RESULT tune(const iDVBFrontendParameters &where);
53         RESULT connectStateChange(const Slot1<void,iDVBFrontend*> &stateChange, ePtr<eConnection> &connection);
54         RESULT getState(int &state);
55         RESULT setTone(int tone);
56         RESULT setVoltage(int voltage);
57         RESULT sendDiseqc(const eDVBDiseqcCommand &diseqc);
58         RESULT setSEC(iDVBSatelliteEquipmentControl *sec);
59 };
60
61 #endif