mousePriv.h revision 659607e0
1/* $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mousePriv.h,v 1.11 2003/11/03 05:11:49 tsi Exp $ */
2/*
3 * Copyright (c) 1997-1999 by The XFree86 Project, Inc.
4 */
5
6#ifndef _X_MOUSEPRIV_H
7#define _X_MOUSEPRIV_H
8
9#if 0
10# define MOUSEINITDEBUG
11# define MOUSEDATADEBUG
12#endif
13
14#include "mouse.h"
15#include "xf86Xinput.h"
16/* Private interface for the mouse driver. */
17
18typedef enum  {
19    AUTOPROBE_H_NOPROTO,
20    AUTOPROBE_H_GOOD,
21    AUTOPROBE_H_AUTODETECT,
22    AUTOPROBE_H_VALIDATE1,
23    AUTOPROBE_H_VALIDATE2,
24    AUTOPROBE_H_SETPROTO,
25    AUTOPROBE_NOPROTO,
26    AUTOPROBE_COLLECT,
27    AUTOPROBE_CREATE_PROTOLIST,
28    AUTOPROBE_GOOD,
29    AUTOPROBE_AUTODETECT,
30    AUTOPROBE_VALIDATE1,
31    AUTOPROBE_VALIDATE2,
32    AUTOPROBE_SWITCHSERIAL,
33    AUTOPROBE_SWITCH_PROTOCOL
34} mseAutoProbeStates;
35
36typedef struct {
37    const char *	name;
38    int			class;
39    const char **	defaults;
40    MouseProtocolID	id;
41} MouseProtocolRec, *MouseProtocolPtr;
42
43#define NUM_MSE_AUTOPROBE_BYTES 24  /* multiple of 3,4 and 6 byte packages */
44#define NUM_MSE_AUTOPROBE_TOTAL 64
45#define NUM_AUTOPROBE_PROTOS 17
46
47
48typedef struct {
49    int		current;
50    Bool	inReset;
51    CARD32	lastEvent;
52    CARD32	expires;
53    Bool	soft;
54    int		goodCount;
55    int		badCount;
56    int		protocolID;
57    int		count;
58    char	data[NUM_MSE_AUTOPROBE_TOTAL];
59    mseAutoProbeStates autoState;
60    MouseProtocolID protoList[NUM_AUTOPROBE_PROTOS];
61    int		serialDefaultsNum;
62    int		prevDx, prevDy;
63    int		accDx, accDy;
64    int		acc;
65    CARD32	pnpLast;
66    Bool	disablePnPauto;
67    float	fracdx,fracdy;
68    float	sensitivity;
69} mousePrivRec, *mousePrivPtr;
70
71/* mouse proto flags */
72#define MPF_NONE		0x00
73#define MPF_SAFE		0x01
74
75/* pnp.c */
76MouseProtocolID MouseGetPnpProtocol(InputInfoPtr pInfo);
77Bool ps2Reset(InputInfoPtr pInfo);
78Bool ps2EnableDataReporting(InputInfoPtr pInfo);
79Bool ps2SendPacket(InputInfoPtr pInfo, unsigned char *bytes, int len);
80int ps2GetDeviceID(InputInfoPtr pInfo);
81
82#endif /* _X_MOUSE_H */
83