/**
* @file evdev.h
* Mode Control Entity - evdev input device handling
*
* Copyright (C) 2012-2019 Jolla Ltd.
*
* @author Simo Piiroinen
*
* mce is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* mce 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with mce. If not, see .
*/
#ifndef EVDEV_H_
#define EVDEV_H_
#ifdef __cplusplus
extern "C" {
#elif 0
} /* fool JED indentation ... */
#endif
/* On 32-bit arches input_event->time is undefined when using a time64
* kernel. These macros are used to normalize timestamp access in code.
*/
# ifndef input_event_sec
# define input_event_sec time.tv_sec
# endif
# ifndef input_event_usec
# define input_event_usec time.tv_usec
# endif
/** Assumed EV_MSC:MSC_GESTURE event values
*
* Actual gestures / values depend on hw and kernel driver - these are
* meant to be used mainly to improve code readability.
*
* However GESTURE_DOUBLETAP is a special case as it is assumed by
* mce to always mean doubletap.
*/
typedef enum {
/* Values 0-15 reserved for touchscreen gestures */
GESTURE_SWIPE_FROM_LEFT = 0,
GESTURE_SWIPE_FROM_RIGHT = 1,
GESTURE_SWIPE_FROM_TOP = 2,
GESTURE_SWIPE_FROM_BOTTOM = 3,
GESTURE_DOUBLETAP = 4, /* To conform with value used in
* Nokia N9 kernel driver */
GESTURE_FPWAKEUP = 16,
/* Modifiers */
GESTURE_SYNTHESIZED = (1<<8),
} gesture_t;
const char *evdev_get_event_code_name(int etype, int ecode);
const char *evdev_get_event_type_name(int etype);
int evdev_lookup_event_code(int etype, const char *ename);
int evdev_open_device(const char *path);
int evdev_identify_device(int fd);
#ifdef __cplusplus
};
#endif
#endif /* EVDEV_H_ */