From c184b91d9aa72031c2bac9f379f56633957ded30 Mon Sep 17 00:00:00 2001 From: Simon Thum Date: Wed, 23 Jul 2008 11:33:25 +0200 Subject: [PATCH] dix: improve the driver interface to predictable pointer acceleration Signed-off-by: Peter Hutterer --- dix/ptrveloc.c | 22 ++++++++++++++++------ include/ptrveloc.h | 5 ++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/dix/ptrveloc.c b/dix/ptrveloc.c index 8a0959b09..f8f2f2662 100644 --- a/dix/ptrveloc.c +++ b/dix/ptrveloc.c @@ -616,22 +616,32 @@ SetAccelerationProfile( */ extern void SetDeviceSpecificAccelerationProfile( - DeviceIntPtr pDev, + DeviceVelocityPtr s, PointerAccelerationProfileFunc profile) +{ + if(s) + s->deviceSpecificProfile = profile; +} + +/** + * Use this function to obtain a DeviceVelocityPtr for a device. Will return NULL if + * the predictable acceleration scheme is not in effect. + */ +DeviceVelocityPtr +GetDevicePredictableAccelData( + DeviceIntPtr pDev) { /*sanity check*/ if( pDev->valuator && pDev->valuator->accelScheme.AccelSchemeProc == acceleratePointerPredictable && pDev->valuator->accelScheme.accelData != NULL){ - ((DeviceVelocityPtr) - (pDev->valuator->accelScheme.accelData))->deviceSpecificProfile - = profile; + + return (DeviceVelocityPtr)pDev->valuator->accelScheme.accelData; } + return NULL; } - - /******************************** * acceleration schemes *******************************/ diff --git a/include/ptrveloc.h b/include/ptrveloc.h index 1b92a07be..8e56e4d47 100644 --- a/include/ptrveloc.h +++ b/include/ptrveloc.h @@ -104,8 +104,11 @@ InitFilterChain(DeviceVelocityPtr s, float rdecay, float degression, extern int SetAccelerationProfile(DeviceVelocityPtr s, int profile_num); +extern DeviceVelocityPtr +GetDevicePredictableAccelData(DeviceIntPtr pDev); + extern void -SetDeviceSpecificAccelerationProfile(DeviceIntPtr s, +SetDeviceSpecificAccelerationProfile(DeviceVelocityPtr s, PointerAccelerationProfileFunc profile); extern void