|
|
@ -30,22 +30,28 @@ |
|
|
|
#ifndef GFX_USE_GINPUT |
|
|
|
#define GFX_USE_GINPUT FALSE |
|
|
|
#endif |
|
|
|
#ifndef GINPUT_NEED_TOGGLE |
|
|
|
#define GINPUT_NEED_TOGGLE FALSE |
|
|
|
#endif |
|
|
|
|
|
|
|
#if GFX_USE_GINPUT || defined(__DOXYGEN__) |
|
|
|
#if (GFX_USE_GINPUT && GINPUT_NEED_TOGGLE) || defined(__DOXYGEN__) |
|
|
|
|
|
|
|
#if GINPUT_NEED_TOGGLE |
|
|
|
// Describes how the toggle bits are obtained
|
|
|
|
typedef struct GToggleConfig_t { |
|
|
|
void *id; |
|
|
|
unsigned mask; |
|
|
|
unsigned invert; |
|
|
|
iomode_t mode; |
|
|
|
} GToggleConfig; |
|
|
|
#endif |
|
|
|
// Describes how the toggle bits are obtained
|
|
|
|
typedef struct GToggleConfig_t { |
|
|
|
void *id; |
|
|
|
unsigned mask; |
|
|
|
unsigned invert; |
|
|
|
iomode_t mode; |
|
|
|
} GToggleConfig; |
|
|
|
|
|
|
|
// This must be included after the above type definition
|
|
|
|
#include "ginput.h" |
|
|
|
|
|
|
|
// n - Millisecs between poll's
|
|
|
|
#ifndef GINPUT_TOGGLE_POLL_PERIOD |
|
|
|
#define GINPUT_TOGGLE_POLL_PERIOD 200 |
|
|
|
#endif |
|
|
|
|
|
|
|
/*===========================================================================*/ |
|
|
|
/* External declarations. */ |
|
|
|
/*===========================================================================*/ |
|
|
@ -54,18 +60,26 @@ |
|
|
|
extern "C" { |
|
|
|
#endif |
|
|
|
|
|
|
|
#if GINPUT_NEED_TOGGLE |
|
|
|
extern const GToggleConfig GInputToggleConfigTable[GINPUT_TOGGLE_CONFIG_ENTRIES]; |
|
|
|
|
|
|
|
void ginput_lld_toggle_init(const GToggleConfig *ptc); |
|
|
|
unsigned ginput_lld_toggle_getbits(const GToggleConfig *ptc); |
|
|
|
#endif |
|
|
|
|
|
|
|
/* 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 */ |
|
|
|
#endif /* GFX_USE_GINPUT && GINPUT_NEED_TOGGLE */ |
|
|
|
|
|
|
|
#endif /* _LLD_GINPUT_TOGGLE_H */ |
|
|
|
/** @} */ |
|
|
|