aboutsummaryrefslogtreecommitdiff
path: root/lib/driver/rfmod.cpp
diff options
context:
space:
mode:
authorRonny Strutz <ronny.strutz@multimedia-labs.de>2005-09-02 23:38:17 +0000
committerRonny Strutz <ronny.strutz@multimedia-labs.de>2005-09-02 23:38:17 +0000
commite7cf6a9406d555aad40ce1c95f5ed8bb663b9934 (patch)
tree346fe7e12f8c41abdde95c775e99ceb21a504b0a /lib/driver/rfmod.cpp
parent7990b45c677f323daabad0e21a4e25dc360b9b48 (diff)
downloadenigma2-e7cf6a9406d555aad40ce1c95f5ed8bb663b9934.tar.gz
enigma2-e7cf6a9406d555aad40ce1c95f5ed8bb663b9934.zip
checkin
Diffstat (limited to 'lib/driver/rfmod.cpp')
-rw-r--r--lib/driver/rfmod.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/driver/rfmod.cpp b/lib/driver/rfmod.cpp
new file mode 100644
index 00000000..5814deff
--- /dev/null
+++ b/lib/driver/rfmod.cpp
@@ -0,0 +1,72 @@
+#include <lib/driver/rfmod.h>
+
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+
+#include <lib/base/init.h>
+#include <lib/base/init_num.h>
+#include <lib/base/econfig.h>
+#include <lib/base/eerror.h>
+
+#define IOCTL_SET_CHANNEL 0
+#define IOCTL_SET_TESTMODE 1
+#define IOCTL_SET_SOUNDENABLE 2
+#define IOCTL_SET_SOUNDSUBCARRIER 3
+#define IOCTL_SET_FINETUNE 4
+#define IOCTL_SET_STANDBY 5
+
+eRFmod *eRFmod::instance = 0;
+
+eRFmod::eRFmod()
+{
+ ASSERT(!instance);
+ instance = this;
+
+ fd = open("/dev/rfmod0", O_RDWR);
+}
+
+eRFmod::~eRFmod()
+{
+ if(fd > 0)
+ close(fd);
+}
+
+eRFmod *eRFmod::getInstance()
+{
+ return instance;
+}
+
+void eRFmod::setFunction(int val) //0=Enable 1=Disable
+{
+ int myval = !val;
+
+ ioctl(fd, IOCTL_SET_STANDBY, &val);
+}
+
+void eRFmod::setTestmode(int val) //0=Enable 1=Disable
+{
+ ioctl(fd, IOCTL_SET_TESTMODE, &val);
+}
+
+void eRFmod::setSoundFunction(int val) //0=Enable 1=Disable
+{
+ ioctl(fd, IOCTL_SET_SOUNDENABLE, &val);
+}
+
+void eRFmod::setSoundCarrier(int val)
+{
+ ioctl(fd, IOCTL_SET_SOUNDSUBCARRIER, &val);
+}
+
+void eRFmod::setChannel(int val)
+{
+ ioctl(fd, IOCTL_SET_CHANNEL, &val);
+}
+
+void eRFmod::setFinetune(int val)
+{
+}
+
+//FIXME: correct "run/startlevel"
+eAutoInitP0<eRFmod> init_rfmod(eAutoInitNumbers::rc, "UHF Modulator");