mirror of
https://github.com/X11Libre/xserver.git
synced 2026-10-14 00:01:20 +00:00
Abstract valuator masks through a set of APIs.
This commit introduces an abstraction API for handling masked valuators. The
intent is that drivers just allocate a mask, set the data and pass the mask
to the server. The actual storage type of the mask is hidden from the
drivers.
The new calls for drivers are:
valuator_mask_new() /* to allocate a valuator mask */
valuator_mask_zero() /* to reset a mask to zero */
valuator_mask_set() /* to set a valuator value */
The new interface to the server is
xf86PostMotionEventM()
xf86PostButtonEventM()
xf86PostKeyboardEventM()
xf86PostProximityEventM()
all taking a mask instead of the valuator array.
The ValuatorMask is currently defined for MAX_VALUATORS fixed size due to
memory allocation restrictions in SIGIO handlers.
For easier review, a lot of the code still uses separate valuator arrays.
This will be fixed in a later patch.
This patch was initially written by Chase Douglas.
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
This commit is contained in:
parent
fc48a8f9f5
commit
675f4a8525
15 changed files with 493 additions and 186 deletions
|
|
@ -115,19 +115,27 @@ extern _X_EXPORT void xf86PostMotionEvent(DeviceIntPtr device, int is_absolute,
|
|||
int first_valuator, int num_valuators, ...);
|
||||
extern _X_EXPORT void xf86PostMotionEventP(DeviceIntPtr device, int is_absolute,
|
||||
int first_valuator, int num_valuators, const int *valuators);
|
||||
extern _X_EXPORT void xf86PostMotionEventM(DeviceIntPtr device, int is_absolute,
|
||||
const ValuatorMask *mask);
|
||||
extern _X_EXPORT void xf86PostProximityEvent(DeviceIntPtr device, int is_in,
|
||||
int first_valuator, int num_valuators, ...);
|
||||
extern _X_EXPORT void xf86PostProximityEventP(DeviceIntPtr device, int is_in, int first_valuator,
|
||||
int num_valuators, const int *valuators);
|
||||
extern _X_EXPORT void xf86PostProximityEventM(DeviceIntPtr device, int is_in,
|
||||
const ValuatorMask *mask);
|
||||
extern _X_EXPORT void xf86PostButtonEvent(DeviceIntPtr device, int is_absolute, int button,
|
||||
int is_down, int first_valuator, int num_valuators,
|
||||
...);
|
||||
extern _X_EXPORT void xf86PostButtonEventP(DeviceIntPtr device, int is_absolute, int button,
|
||||
int is_down, int first_valuator, int num_valuators,
|
||||
const int *valuators);
|
||||
extern _X_EXPORT void xf86PostButtonEventM(DeviceIntPtr device, int is_absolute, int button,
|
||||
int is_down, const ValuatorMask *mask);
|
||||
extern _X_EXPORT void xf86PostKeyEvent(DeviceIntPtr device, unsigned int key_code, int is_down,
|
||||
int is_absolute, int first_valuator, int num_valuators,
|
||||
...);
|
||||
extern _X_EXPORT void xf86PostKeyEventM(DeviceIntPtr device, unsigned int key_code, int is_down,
|
||||
int is_absolute, const ValuatorMask *mask);
|
||||
extern _X_EXPORT void xf86PostKeyEventP(DeviceIntPtr device, unsigned int key_code, int is_down,
|
||||
int is_absolute, int first_valuator, int num_valuators,
|
||||
const int *valuators);
|
||||
|
|
|
|||
Loading…
Reference in a new issue