add ability to select in scan what is todo with existing services (Clear before scan)
[enigma2.git] / lib / driver / rfmod.cpp
1 #include <lib/driver/rfmod.h>
2
3 #include <unistd.h>
4 #include <fcntl.h>
5 #include <sys/ioctl.h>
6
7 #include <lib/base/init.h>
8 #include <lib/base/init_num.h>
9 #include <lib/base/eerror.h>
10
11 #define IOCTL_SET_CHANNEL                                               0
12 #define IOCTL_SET_TESTMODE                                      1
13 #define IOCTL_SET_SOUNDENABLE                           2
14 #define IOCTL_SET_SOUNDSUBCARRIER               3
15 #define IOCTL_SET_FINETUNE                                      4
16 #define IOCTL_SET_STANDBY                                               5
17
18 eRFmod *eRFmod::instance = 0;
19
20 eRFmod::eRFmod()
21 {
22         ASSERT(!instance);
23         instance = this;
24         
25         fd = open("/dev/rfmod0", O_RDWR);
26 }
27
28 eRFmod::~eRFmod()
29 {
30         if(fd > 0)
31                 close(fd);
32 }
33
34 eRFmod *eRFmod::getInstance()
35 {
36         return instance;
37 }
38
39 void eRFmod::setFunction(int val)               //0=Enable 1=Disable
40 {
41         ioctl(fd, IOCTL_SET_STANDBY, &val);
42 }
43
44 void eRFmod::setTestmode(int val)               //0=Enable 1=Disable
45 {
46         ioctl(fd, IOCTL_SET_TESTMODE, &val);
47 }
48
49 void eRFmod::setSoundFunction(int val)          //0=Enable 1=Disable
50 {
51         ioctl(fd, IOCTL_SET_SOUNDENABLE, &val);
52 }
53
54 void eRFmod::setSoundCarrier(int val)
55 {
56         ioctl(fd, IOCTL_SET_SOUNDSUBCARRIER, &val);
57 }
58
59 void eRFmod::setChannel(int val)
60 {
61         ioctl(fd, IOCTL_SET_CHANNEL, &val);
62 }
63
64 void eRFmod::setFinetune(int val)
65 {
66         ioctl(fd, IOCTL_SET_FINETUNE, &val);
67 }
68
69 //FIXME: correct "run/startlevel"
70 eAutoInitP0<eRFmod> init_rfmod(eAutoInitNumbers::rc, "UHF Modulator");