/* definition of the twiddler protocol */
/*
* 2400,8,n,1 5-bytes
*
* bit 7 6 5 4 3 2 1 0
* 0 4L 3M 3L 2M 2L 1M 1L
* 1 Mo Al Co Fn Nm Sh 4M
* 1 V6 V5 V4 V3 V2 V1 V0
* 1 H4 H3 H2 H1 H0 V8 V7
* 1 0 0 0 H8 H7 H6 H5
* H and V are two complement: up and left is positive
*/
#define TW_L1 0x0001
#define TW_M1 0x0002
#define TW_R1 0x0003
#define TW_ANY1 0x0003
#define TW_L2 0x0004
#define TW_M2 0x0008
#define TW_R2 0x000C
#define TW_ANY2 0x000C
#define TW_L3 0x0010
#define TW_M3 0x0020
#define TW_R3 0x0030
#define TW_ANY3 0x0030
#define TW_L4 0x0040
#define TW_M4 0x0080
#define TW_R4 0x00C0
#define TW_ANY4 0x00C0
#define TW_MOD_0 0x0000
#define TW_MOD_S 0x0100
#define TW_MOD_N 0x0200
#define TW_MOD_F 0x0400
#define TW_MOD_C 0x0800
#define TW_MOD_A 0x1000
#define TW_MOD_M 0x2000
#define TW_ANY_KEY 0x3fff /* any button or modifier */
#define TW_ANY_MOD 0x3f00 /* any modifier */
#define TW_V_SHIFT 14
#define TW_H_SHIFT 23
#define TW_M_MASK 0x1FF /* mask of movement bits, after shifting */
#define TW_M_BIT 0x100
#define TW_SYSTEM_FILE SYSCONFDIR "/gpm-twiddler.conf"
#define TW_CUSTOM_FILE SYSCONFDIR "/gpm-twiddler.user"