add new files
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Tue, 5 Dec 2006 13:58:07 +0000 (13:58 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Tue, 5 Dec 2006 13:58:07 +0000 (13:58 +0000)
lib/driver/misc_options.cpp [new file with mode: 0644]
lib/driver/misc_options.h [new file with mode: 0644]

diff --git a/lib/driver/misc_options.cpp b/lib/driver/misc_options.cpp
new file mode 100644 (file)
index 0000000..ecb7bdb
--- /dev/null
@@ -0,0 +1,48 @@
+#include <lib/driver/misc_options.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/eerror.h>
+
+Misc_Options *Misc_Options::instance = 0;
+
+Misc_Options::Misc_Options()
+       :m_12V_output_state(-1)
+{
+       ASSERT(!instance);
+       instance = this;
+}
+
+int Misc_Options::set_12V_output(int state)
+{
+       if (state == m_12V_output_state)
+               return 0;
+       int fd = open("/proc/stb/misc/12V_output", O_WRONLY);
+       if (fd < 0)
+       {
+               eDebug("couldn't open /proc/stb/misc/12V_output");
+               return -1;
+       }
+       const char *str=0;
+       if (state == 0)
+               str = "off";
+       else if (state == 1)
+               str = "on";
+       if (str)
+               write(fd, str, strlen(str));
+       m_12V_output_state = state;
+       close(fd);
+       return 0;
+}
+
+Misc_Options *Misc_Options::getInstance()
+{
+       return instance;
+}
+
+//FIXME: correct "run/startlevel"
+eAutoInitP0<Misc_Options> init_misc_options(eAutoInitNumbers::rc, "misc options");
diff --git a/lib/driver/misc_options.h b/lib/driver/misc_options.h
new file mode 100644 (file)
index 0000000..6baf2cf
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef __misc_options_h
+#define __misc_options_h
+
+class Misc_Options
+{
+       static Misc_Options *instance;
+       int m_12V_output_state;
+#ifdef SWIG
+       Misc_Options();
+#endif
+public:
+#ifndef SWIG
+       Misc_Options();
+#endif
+       static Misc_Options *getInstance();
+       int set_12V_output(int val);
+       int get_12V_output() { return m_12V_output_state; }
+};
+
+#endif // __misc_options_h