mirror of
https://github.com/X11Libre/xf86-input-synaptics.git
synced 2026-03-28 03:19:29 +00:00
99 lines
3.4 KiB
C
99 lines
3.4 KiB
C
/*
|
|
* Permission to use, copy, modify, distribute, and sell this software
|
|
* and its documentation for any purpose is hereby granted without
|
|
* fee, provided that the above copyright notice appear in all copies
|
|
* and that both that copyright notice and this permission notice
|
|
* appear in supporting documentation, and that the name of Red Hat
|
|
* not be used in advertising or publicity pertaining to distribution
|
|
* of the software without specific, written prior permission. Red
|
|
* Hat makes no representations about the suitability of this software
|
|
* for any purpose. It is provided "as is" without express or implied
|
|
* warranty.
|
|
*
|
|
* THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
|
|
* NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
* OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
|
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#ifndef _SYNAPTICS_H_
|
|
#define _SYNAPTICS_H_
|
|
|
|
#include <X11/Xdefs.h>
|
|
|
|
/******************************************************************************
|
|
* Public definitions.
|
|
* Used by driver and the shared memory configurator
|
|
*****************************************************************************/
|
|
typedef enum {
|
|
RT_TAP = 0, /* Right top corner */
|
|
RB_TAP, /* Right bottom corner */
|
|
LT_TAP, /* Left top corner */
|
|
LB_TAP, /* Left bottom corner */
|
|
F1_TAP, /* Non-corner tap, one finger */
|
|
F2_TAP, /* Non-corner tap, two fingers */
|
|
F3_TAP, /* Non-corner tap, three fingers */
|
|
MAX_TAP
|
|
} TapEvent;
|
|
|
|
typedef enum {
|
|
F1_CLICK1 = 0, /* Click left, one finger */
|
|
F2_CLICK1, /* Click left, two fingers */
|
|
F3_CLICK1, /* Click left, three fingers */
|
|
MAX_CLICK
|
|
} ClickFingerEvent;
|
|
|
|
#define SYN_MAX_BUTTONS 12 /* Max number of mouse buttons */
|
|
|
|
struct SynapticsHwInfo {
|
|
unsigned int model_id; /* Model-ID */
|
|
unsigned int capabilities; /* Capabilities */
|
|
unsigned int ext_cap; /* Extended Capabilities */
|
|
unsigned int identity; /* Identification */
|
|
Bool hasGuest; /* Has a guest mouse */
|
|
};
|
|
|
|
|
|
#define SHM_SYNAPTICS 23947
|
|
typedef struct _SynapticsSHM
|
|
{
|
|
int version; /* Driver version */
|
|
|
|
/* Current device state */
|
|
int x, y; /* actual x, y coordinates */
|
|
int z; /* pressure value */
|
|
int numFingers; /* number of fingers */
|
|
int fingerWidth; /* finger width value */
|
|
int left, right, up, down; /* left/right/up/down buttons */
|
|
Bool multi[8];
|
|
Bool middle;
|
|
int guest_left, guest_mid, guest_right; /* guest device buttons */
|
|
int guest_dx, guest_dy; /* guest device movement */
|
|
|
|
/* Probed hardware properties */
|
|
struct SynapticsHwInfo synhw;
|
|
} SynapticsSHM;
|
|
|
|
/*
|
|
* Minimum and maximum values for scroll_button_repeat
|
|
*/
|
|
#define SBR_MIN 10
|
|
#define SBR_MAX 1000
|
|
|
|
/*
|
|
* The x/y limits are taken from the Synaptics TouchPad interfacing Guide,
|
|
* section 2.3.2, which says that they should be valid regardless of the
|
|
* actual size of the sensor.
|
|
*/
|
|
#define XMIN_NOMINAL 1472
|
|
#define XMAX_NOMINAL 5472
|
|
#define YMIN_NOMINAL 1408
|
|
#define YMAX_NOMINAL 4448
|
|
|
|
#define XMAX_VALID 6143
|
|
|
|
#endif /* _SYNAPTICS_H_ */
|