Allow full range of values to be returned from the mouse driver when it is in RAW mode

ugfx_release_2.6
inmarket 2013-11-10 21:34:49 +10:00
parent 5cc1c5d67b
commit 1646f9da1a
1 changed files with 7 additions and 2 deletions

View File

@ -65,6 +65,7 @@ static struct MouseConfig_t {
#define FLG_CAL_OK 0x0020 #define FLG_CAL_OK 0x0020
#define FLG_CAL_SAVED 0x0040 #define FLG_CAL_SAVED 0x0040
#define FLG_CAL_FREE 0x0080 #define FLG_CAL_FREE 0x0080
#define FLG_CAL_RAW 0x0100
#if GINPUT_MOUSE_NEED_CALIBRATION #if GINPUT_MOUSE_NEED_CALIBRATION
GMouseCalibrationSaveRoutine fnsavecal; GMouseCalibrationSaveRoutine fnsavecal;
GMouseCalibrationLoadRoutine fnloadcal; GMouseCalibrationLoadRoutine fnloadcal;
@ -200,14 +201,18 @@ static void get_calibrated_reading(MouseReading *pt) {
pt->x = t; pt->x = t;
} }
break; break;
default:
break;
} }
#endif #endif
#if GINPUT_MOUSE_NEED_CALIBRATION #if GINPUT_MOUSE_NEED_CALIBRATION
if (!(MouseConfig.flags & FLG_CAL_RAW)) {
if (pt->x < 0) pt->x = 0; if (pt->x < 0) pt->x = 0;
else if (pt->x >= w) pt->x = w-1; else if (pt->x >= w) pt->x = w-1;
if (pt->y < 0) pt->y = 0; if (pt->y < 0) pt->y = 0;
else if (pt->y >= h) pt->y = h-1; else if (pt->y >= h) pt->y = h-1;
}
#endif #endif
} }
@ -350,7 +355,7 @@ GSourceHandle ginputGetMouse(uint16_t instance) {
MouseConfig.caldata.ay = 0; MouseConfig.caldata.ay = 0;
MouseConfig.caldata.by = 1; MouseConfig.caldata.by = 1;
MouseConfig.caldata.cy = 0; MouseConfig.caldata.cy = 0;
MouseConfig.flags |= (FLG_CAL_OK|FLG_CAL_SAVED); MouseConfig.flags |= (FLG_CAL_OK|FLG_CAL_SAVED|FLG_CAL_RAW);
} else } else
ginputCalibrateMouse(instance); ginputCalibrateMouse(instance);
#endif #endif
@ -437,7 +442,7 @@ bool_t ginputCalibrateMouse(uint16_t instance) {
MouseConfig.flags |= FLG_IN_CAL; MouseConfig.flags |= FLG_IN_CAL;
gtimerStop(&MouseTimer); gtimerStop(&MouseTimer);
MouseConfig.flags &= ~(FLG_CAL_OK|FLG_CAL_SAVED); MouseConfig.flags &= ~(FLG_CAL_OK|FLG_CAL_SAVED|FLG_CAL_RAW);
#if GDISP_NEED_CONTROL #if GDISP_NEED_CONTROL
gdispGSetOrientation(MouseConfig.display, GDISP_ROTATE_0); gdispGSetOrientation(MouseConfig.display, GDISP_ROTATE_0);