diff options
| author | Ronny Strutz <ronny.strutz@multimedia-labs.de> | 2005-09-02 23:38:17 +0000 |
|---|---|---|
| committer | Ronny Strutz <ronny.strutz@multimedia-labs.de> | 2005-09-02 23:38:17 +0000 |
| commit | e7cf6a9406d555aad40ce1c95f5ed8bb663b9934 (patch) | |
| tree | 346fe7e12f8c41abdde95c775e99ceb21a504b0a /lib/driver/rfmod.cpp | |
| parent | 7990b45c677f323daabad0e21a4e25dc360b9b48 (diff) | |
| download | enigma2-e7cf6a9406d555aad40ce1c95f5ed8bb663b9934.tar.gz enigma2-e7cf6a9406d555aad40ce1c95f5ed8bb663b9934.zip | |
checkin
Diffstat (limited to 'lib/driver/rfmod.cpp')
| -rw-r--r-- | lib/driver/rfmod.cpp | 72 |
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"); |
