Merge remote branch 'whot/for-keith'
This commit is contained in:
commit
5aff712a8d
|
@ -210,7 +210,7 @@ set_valuators(DeviceIntPtr dev, DeviceEvent* event, int first_valuator,
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(&event->valuators.data[first_valuator],
|
memcpy(&event->valuators.data[first_valuator],
|
||||||
valuators, num_valuators * sizeof(uint32_t));
|
valuators, num_valuators * sizeof(int32_t));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -894,20 +894,12 @@ GetKeyboardEvents(EventList *events, DeviceIntPtr pDev, int type, int key_code)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a set of keyboard events for KeyPress/KeyRelease, optionally
|
* Returns a set of InternalEvents for KeyPress/KeyRelease, optionally
|
||||||
* also with valuator events. Handles Xi and XKB.
|
* also with valuator events.
|
||||||
*
|
|
||||||
* DOES NOT GENERATE CORE EVENTS! Core events are created when processing the
|
|
||||||
* event (ProcessOtherEvent).
|
|
||||||
*
|
*
|
||||||
* events is not NULL-terminated; the return value is the number of events.
|
* events is not NULL-terminated; the return value is the number of events.
|
||||||
* The DDX is responsible for allocating the event structure in the first
|
* The DDX is responsible for allocating the event structure in the first
|
||||||
* place via GetMaximumEventsNum(), and for freeing it.
|
* place via GetMaximumEventsNum(), and for freeing it.
|
||||||
*
|
|
||||||
* This function does not change the core keymap to that of the device;
|
|
||||||
* that is done by SwitchCoreKeyboard, which is called from
|
|
||||||
* mieqProcessInputEvents. If replacing that function, take care to call
|
|
||||||
* SetCoreKeyboard before processInputProc, so keymaps are altered to suit.
|
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
GetKeyboardValuatorEvents(EventList *events, DeviceIntPtr pDev, int type,
|
GetKeyboardValuatorEvents(EventList *events, DeviceIntPtr pDev, int type,
|
||||||
|
@ -1050,11 +1042,8 @@ transformAbsolute(DeviceIntPtr dev, int v[MAX_VALUATORS])
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a series of xEvents (filled into the EventList) representing
|
* Generate a series of InternalEvents (filled into the EventList)
|
||||||
* pointer motion, or button presses. Xi and XKB-aware.
|
* representing pointer motion, or button presses.
|
||||||
*
|
|
||||||
* DOES NOT GENERATE CORE EVENTS! Core events are created when processing the
|
|
||||||
* event (ProcessOtherEvent).
|
|
||||||
*
|
*
|
||||||
* events is not NULL-terminated; the return value is the number of events.
|
* events is not NULL-terminated; the return value is the number of events.
|
||||||
* The DDX is responsible for allocating the event structure in the first
|
* The DDX is responsible for allocating the event structure in the first
|
||||||
|
@ -1183,7 +1172,8 @@ GetPointerEvents(EventList *events, DeviceIntPtr pDev, int type, int buttons,
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Post ProximityIn/ProximityOut events, accompanied by valuators.
|
* Generate ProximityIn/ProximityOut InternalEvents, accompanied by
|
||||||
|
* valuators.
|
||||||
*
|
*
|
||||||
* events is not NULL-terminated; the return value is the number of events.
|
* events is not NULL-terminated; the return value is the number of events.
|
||||||
* The DDX is responsible for allocating the event structure in the first
|
* The DDX is responsible for allocating the event structure in the first
|
||||||
|
|
|
@ -1238,40 +1238,43 @@ xf86FirstLocalDevice(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Cx - raw data from touch screen
|
* Cx - raw data from touch screen
|
||||||
* Sxhigh - scaled highest dimension
|
* to_max - scaled highest dimension
|
||||||
* (remember, this is of rows - 1 because of 0 origin)
|
* (remember, this is of rows - 1 because of 0 origin)
|
||||||
* Sxlow - scaled lowest dimension
|
* to_min - scaled lowest dimension
|
||||||
* Rxhigh - highest raw value from touch screen calibration
|
* from_max - highest raw value from touch screen calibration
|
||||||
* Rxlow - lowest raw value from touch screen calibration
|
* from_min - lowest raw value from touch screen calibration
|
||||||
*
|
*
|
||||||
* This function is the same for X or Y coordinates.
|
* This function is the same for X or Y coordinates.
|
||||||
* You may have to reverse the high and low values to compensate for
|
* You may have to reverse the high and low values to compensate for
|
||||||
* different orgins on the touch screen vs X.
|
* different orgins on the touch screen vs X.
|
||||||
|
*
|
||||||
|
* e.g. to scale from device coordinates into screen coordinates, call
|
||||||
|
* xf86ScaleAxis(x, 0, screen_width, dev_min, dev_max);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int
|
int
|
||||||
xf86ScaleAxis(int Cx,
|
xf86ScaleAxis(int Cx,
|
||||||
int Sxhigh,
|
int to_max,
|
||||||
int Sxlow,
|
int to_min,
|
||||||
int Rxhigh,
|
int from_max,
|
||||||
int Rxlow )
|
int from_min )
|
||||||
{
|
{
|
||||||
int X;
|
int X;
|
||||||
int64_t dSx = Sxhigh - Sxlow;
|
int64_t to_width = to_max - to_min;
|
||||||
int64_t dRx = Rxhigh - Rxlow;
|
int64_t from_width = from_max - from_min;
|
||||||
|
|
||||||
if (dRx) {
|
if (from_width) {
|
||||||
X = (int)(((dSx * (Cx - Rxlow)) / dRx) + Sxlow);
|
X = (int)(((to_width * (Cx - from_min)) / from_width) + to_min);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
X = 0;
|
X = 0;
|
||||||
ErrorF ("Divide by Zero in xf86ScaleAxis");
|
ErrorF ("Divide by Zero in xf86ScaleAxis");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (X > Sxhigh)
|
if (X > to_max)
|
||||||
X = Sxhigh;
|
X = to_max;
|
||||||
if (X < Sxlow)
|
if (X < to_min)
|
||||||
X = Sxlow;
|
X = to_min;
|
||||||
|
|
||||||
return X;
|
return X;
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,7 +184,7 @@ extern _X_EXPORT void xf86PostKeyboardEvent(DeviceIntPtr device, unsigned int ke
|
||||||
int is_down);
|
int is_down);
|
||||||
extern _X_EXPORT int xf86ActivateDevice(LocalDevicePtr local);
|
extern _X_EXPORT int xf86ActivateDevice(LocalDevicePtr local);
|
||||||
extern _X_EXPORT LocalDevicePtr xf86FirstLocalDevice(void);
|
extern _X_EXPORT LocalDevicePtr xf86FirstLocalDevice(void);
|
||||||
extern _X_EXPORT int xf86ScaleAxis(int Cx, int Sxhigh, int Sxlow, int Rxhigh, int Rxlow);
|
extern _X_EXPORT int xf86ScaleAxis(int Cx, int to_max, int to_min, int from_max, int from_min);
|
||||||
extern _X_EXPORT void xf86XInputSetScreen(LocalDevicePtr local, int screen_number, int x, int y);
|
extern _X_EXPORT void xf86XInputSetScreen(LocalDevicePtr local, int screen_number, int x, int y);
|
||||||
extern _X_EXPORT void xf86ProcessCommonOptions(InputInfoPtr pInfo, pointer options);
|
extern _X_EXPORT void xf86ProcessCommonOptions(InputInfoPtr pInfo, pointer options);
|
||||||
extern _X_EXPORT void xf86InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, Atom label, int minval,
|
extern _X_EXPORT void xf86InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, Atom label, int minval,
|
||||||
|
|
|
@ -99,7 +99,7 @@ struct _DeviceEvent
|
||||||
struct {
|
struct {
|
||||||
uint8_t mask[(MAX_VALUATORS + 7)/8]; /**< Valuator mask */
|
uint8_t mask[(MAX_VALUATORS + 7)/8]; /**< Valuator mask */
|
||||||
uint8_t mode[(MAX_VALUATORS + 7)/8]; /**< Valuator mode (Abs or Rel)*/
|
uint8_t mode[(MAX_VALUATORS + 7)/8]; /**< Valuator mode (Abs or Rel)*/
|
||||||
uint32_t data[MAX_VALUATORS]; /**< Valuator data */
|
int32_t data[MAX_VALUATORS]; /**< Valuator data */
|
||||||
int32_t data_frac[MAX_VALUATORS]; /**< Fractional part for data */
|
int32_t data_frac[MAX_VALUATORS]; /**< Fractional part for data */
|
||||||
} valuators;
|
} valuators;
|
||||||
struct {
|
struct {
|
||||||
|
|
Loading…
Reference in New Issue