aboutsummaryrefslogtreecommitdiffstats
path: root/src/ginput/driver_toggle.h
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2014-02-19 08:00:52 +1000
committerinmarket <andrewh@inmarket.com.au>2014-02-19 08:00:52 +1000
commitb82448c3e23663a25a423402343fbca78253b80c (patch)
tree57a03e35b88f6e434b6c4d084695fc5ce1061932 /src/ginput/driver_toggle.h
parentdcedf414136e55e6dacbe736babe748e1374e19e (diff)
parent37966ff16d923bbca53c9464815cb49cbd7fc3be (diff)
downloaduGFX-b82448c3e23663a25a423402343fbca78253b80c.tar.gz
uGFX-b82448c3e23663a25a423402343fbca78253b80c.tar.bz2
uGFX-b82448c3e23663a25a423402343fbca78253b80c.zip
Merge branch 'master' into gwin
Diffstat (limited to 'src/ginput/driver_toggle.h')
-rw-r--r--src/ginput/driver_toggle.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/ginput/driver_toggle.h b/src/ginput/driver_toggle.h
new file mode 100644
index 00000000..6d672c91
--- /dev/null
+++ b/src/ginput/driver_toggle.h
@@ -0,0 +1,61 @@
+/*
+ * This file is subject to the terms of the GFX License. If a copy of
+ * the license was not distributed with this file, you can obtain one at:
+ *
+ * http://ugfx.org/license.html
+ */
+
+/**
+ * @file src/ginput/driver_toggle.h
+ * @brief GINPUT header file for toggle drivers.
+ *
+ * @defgroup Toggle Toggle
+ * @ingroup GINPUT
+ * @{
+ */
+
+#ifndef _LLD_GINPUT_TOGGLE_H
+#define _LLD_GINPUT_TOGGLE_H
+
+#if GINPUT_NEED_TOGGLE || defined(__DOXYGEN__)
+
+// Describes how the toggle bits are obtained
+typedef struct GToggleConfig_t {
+ void *id;
+ unsigned mask;
+ unsigned invert;
+ unsigned mode;
+} GToggleConfig;
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ extern const GToggleConfig GInputToggleConfigTable[GINPUT_TOGGLE_CONFIG_ENTRIES];
+
+ void ginput_lld_toggle_init(const GToggleConfig *ptc);
+ unsigned ginput_lld_toggle_getbits(const GToggleConfig *ptc);
+
+ /* This routine is provided to low level drivers to wakeup a value read from a thread context.
+ * Particularly useful if GINPUT_TOGGLE_POLL_PERIOD = TIME_INFINITE
+ */
+ void ginputToggleWakeup(void);
+
+ /* This routine is provided to low level drivers to wakeup a value read from an ISR
+ * Particularly useful if GINPUT_TOGGLE_POLL_PERIOD = TIME_INFINITE
+ */
+ void ginputToggleWakeupI(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GFX_USE_GINPUT && GINPUT_NEED_TOGGLE */
+
+#endif /* _LLD_GINPUT_TOGGLE_H */
+/** @} */
+