Begin to create the Linux evdev driver.
authorbruceperens <bruceperens@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 18 Apr 2014 02:55:30 +0000 (02:55 +0000)
committerbruceperens <bruceperens@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 18 Apr 2014 02:55:30 +0000 (02:55 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@1499 01035d8c-6547-0410-b346-abe4f91aad63

freedv-server/source/platform/linux/evdev.cpp [new file with mode: 0644]
freedv-server/source/platform/linux/evdev.h [new file with mode: 0644]

diff --git a/freedv-server/source/platform/linux/evdev.cpp b/freedv-server/source/platform/linux/evdev.cpp
new file mode 100644 (file)
index 0000000..d23bb5d
--- /dev/null
@@ -0,0 +1,21 @@
+#include "evdev.h"
+
+const struct EvDev::device_enumeration *
+EvDev::enumerate(std::size_t &)
+{
+  return 0;
+}
+
+const char * const *
+EvDev::EnumerateButtonDevices()
+{
+  return 0;
+}
+
+EvDev::EvDev(const char *)
+{
+}
+
+EvDev::~EvDev()
+{
+}
diff --git a/freedv-server/source/platform/linux/evdev.h b/freedv-server/source/platform/linux/evdev.h
new file mode 100644 (file)
index 0000000..3a46be9
--- /dev/null
@@ -0,0 +1,33 @@
+#include <cstdint>
+#include <linux/input.h>
+
+#define BITS_PER_LONG (sizeof(long) * 8)
+#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+#define OFF(x)  ((x)%BITS_PER_LONG)
+#define BIT(x)  (1UL<<OFF(x))
+#define LONG(x) ((x)/BITS_PER_LONG)
+#define test_bit(bit, array)   ((array[LONG(bit)] >> OFF(bit)) & 1)
+
+class EvDev {
+private:
+
+                       EvDev(const EvDev &);
+  EvDev &              operator =(const EvDev &);
+
+protected:
+  struct device_enumeration {
+    const char *       device;
+    const char *       name;
+    uint8_t            event_types[(EV_MAX + 7) / 8];
+  };
+
+  static const device_enumeration *
+                       enumerate(std::size_t & size);
+
+public:
+  static const char * const *
+                       EnumerateButtonDevices();
+
+                       EvDev(const char * name);
+                       ~EvDev();
+};