Gesture Parameters
Last modified by Microchip on 2026/04/07 08:43
The Gesture module in the Capacitive Voltage Divider (CVD) library provides an easy-to-use interface for detecting and interpreting user gestures using capacitive touch sensors. This module is designed to help developers add intuitive gesture-based controls to their embedded applications, such as swipe, tap, and hold actions.
Gesture Enums and Structures
SWIPE_DIRECTION
typedef enum
{
NO_DIRECTION = 0xf0u,
RIGHT = 0x0u,
LEFT = 0x2u,
UP = 0x3u,
DOWN = 0x1u,
UP_RIGHT = 0x5u,
UP_LEFT = 0x6u,
DOWN_RIGHT = 0x7u,
DOWN_LEFT = 0x8u,
UP_RIGHT_EXTEND = 0x9u,
UP_LEFT_EXTEND = 0xau,
DOWN_RIGHT_EXTEND = 0xbu,
DOWN_LEFT_EXTEND = 0xcu
} SWIPE_DIRECTION;
{
NO_DIRECTION = 0xf0u,
RIGHT = 0x0u,
LEFT = 0x2u,
UP = 0x3u,
DOWN = 0x1u,
UP_RIGHT = 0x5u,
UP_LEFT = 0x6u,
DOWN_RIGHT = 0x7u,
DOWN_LEFT = 0x8u,
UP_RIGHT_EXTEND = 0x9u,
UP_LEFT_EXTEND = 0xau,
DOWN_RIGHT_EXTEND = 0xbu,
DOWN_LEFT_EXTEND = 0xcu
} SWIPE_DIRECTION;
Description: Lists down the swipe directions applicable
TOUCH_EVENT
typedef enum
{
TOUCH_DOWN_EVENT = 0x10u,
TOUCH_UP_EVENT = 0x20u,
TAP_THRESH_EXCEEDED_EVENT = 0x30u,
SEQ_TAP_DIST_THRESH_EXCEEDED_EVENT = 0x40u,
SWIPE_THRESH_EXCEEDED_EVENT = 0x50u,
SWIPE_HOLD_EVENT = 0x60u,
SWIPE_HOLD_THRESH_EXCEEDED_EVENT = 0x70u,
TAP_TIMEOUT_EVENT = 0x80u,
TAP_HOLD_TIMEOUT_EVENT = 0x90u,
SWIPE_TIMEOUT_EVENT = 0xa0u,
DIRECTION_CHANGE_EVENT = 0xb0u,
PINCH_ZOOM_EVENT = 0xc0u
} TOUCH_EVENT;
{
TOUCH_DOWN_EVENT = 0x10u,
TOUCH_UP_EVENT = 0x20u,
TAP_THRESH_EXCEEDED_EVENT = 0x30u,
SEQ_TAP_DIST_THRESH_EXCEEDED_EVENT = 0x40u,
SWIPE_THRESH_EXCEEDED_EVENT = 0x50u,
SWIPE_HOLD_EVENT = 0x60u,
SWIPE_HOLD_THRESH_EXCEEDED_EVENT = 0x70u,
TAP_TIMEOUT_EVENT = 0x80u,
TAP_HOLD_TIMEOUT_EVENT = 0x90u,
SWIPE_TIMEOUT_EVENT = 0xa0u,
DIRECTION_CHANGE_EVENT = 0xb0u,
PINCH_ZOOM_EVENT = 0xc0u
} TOUCH_EVENT;
Description: Lists down the touch events applicable
Gesture Item
typedef struct _GestureItem
{
uint32_t pattern;
uint32_t mask;
uint8_t gestureID;
uint8_t releaseRequired;
uint8_t repeatSend;
} GestureItem;
{
uint32_t pattern;
uint32_t mask;
uint8_t gestureID;
uint8_t releaseRequired;
uint8_t repeatSend;
} GestureItem;
Description: Structure of required information that each gesture must contain
A ROM array holds all the supported gesture pattern information.
mtouch_gesture_t
typedef struct
{
/* Gesture Configuration */
uint8_t tapReleaseTimeout;
uint8_t tapHoldTimeout;
uint8_t swipeTimeout;
uint8_t xSwipeDistanceThreshold;
uint8_t ySwipeDistanceThreshold;
uint8_t edgeSwipeDistanceThreshold;
uint8_t tapDistanceThreshold;
uint8_t seqTapDistanceThreshold;
uint8_t edgeBoundary;
int8_t wheelPostscaler;
int8_t wheelStartQuadrantCount;
int8_t wheelReverseQuadrantCount;
uint8_t pinchZoomThreshold;
}mtouch_gesture_t;
{
/* Gesture Configuration */
uint8_t tapReleaseTimeout;
uint8_t tapHoldTimeout;
uint8_t swipeTimeout;
uint8_t xSwipeDistanceThreshold;
uint8_t ySwipeDistanceThreshold;
uint8_t edgeSwipeDistanceThreshold;
uint8_t tapDistanceThreshold;
uint8_t seqTapDistanceThreshold;
uint8_t edgeBoundary;
int8_t wheelPostscaler;
int8_t wheelStartQuadrantCount;
int8_t wheelReverseQuadrantCount;
uint8_t pinchZoomThreshold;
}mtouch_gesture_t;
Description: Lists down the gestures applicable