summaryrefslogtreecommitdiff
path: root/modmap.h
diff options
context:
space:
mode:
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>2013-03-03 16:05:14 +0100
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>2013-03-03 16:05:14 +0100
commit7964c3a67cf9659ea6d14fc1d04a889cd50e2153 (patch)
tree8d6cda7078fe3eea565b6abdffdba18b3529a653 /modmap.h
parentd17d1996eb39b698681e74357de6abab0cd92cfa (diff)
downloadvdr-plugin-inputdev-7964c3a67cf9659ea6d14fc1d04a889cd50e2153.tar.gz
vdr-plugin-inputdev-7964c3a67cf9659ea6d14fc1d04a889cd50e2153.tar.bz2
implemented basic support for native (non-sms style) editing
Diffstat (limited to 'modmap.h')
-rw-r--r--modmap.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/modmap.h b/modmap.h
new file mode 100644
index 0000000..75e1595
--- /dev/null
+++ b/modmap.h
@@ -0,0 +1,63 @@
+/* --*- c++ -*--
+ * Copyright (C) 2013 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 and/or 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef HH_ENSC_VDR_INPUTDEV_MODMAP_HH
+#define HH_ENSC_VDR_INPUTDEV_MODMAP_HH
+
+class ModifierMap {
+public:
+ enum modifier {
+ modSHIFT,
+ modCONTROL,
+ modALT,
+ modMETA,
+ modNUMLOCK,
+ modCAPSLOCK,
+ modMODE,
+
+ _modMAX,
+ };
+
+ ModifierMap();
+ ~ModifierMap();
+
+ bool read_modmap(char const *fname);
+ bool translate(wchar_t &chr, unsigned int code,
+ unsigned long mask) const;
+
+private:
+ enum {
+ ktNORMAL,
+ ktSHIFT,
+ ktCONTROL,
+ ktMODE,
+ ktMODE_SHIFT,
+ ktUNUSED0,
+ ktUNUSED1,
+ ktUNUSED2,
+
+ _ktMAX
+ };
+
+ typedef wchar_t *keytable_t;
+
+ // same semantics like 'keycode' in xmodmap(1)
+ keytable_t keytables_[_ktMAX];
+
+ void set_default_tables(void);
+};
+
+#endif /* HH_ENSC_VDR_INPUTDEV_MODMAP_HH */