kopia lustrzana https://github.com/FreeSpacenav/libspnav
fixed incorrect event decoding in the AF_UNIX protocol in the last commit
rodzic
39de17356a
commit
0ce9d83361
15
spnav.c
15
spnav.c
|
@ -403,9 +403,16 @@ static int proc_event(int *data, spnav_event *event)
|
|||
if(data[0] < 0 || data[0] >= MAX_UEV) {
|
||||
return 0;
|
||||
}
|
||||
if(data[0] == UEV_PRESS || data[0] == UEV_RELEASE) {
|
||||
|
||||
switch(data[0]) {
|
||||
case UEV_MOTION:
|
||||
event->type = SPNAV_EVENT_MOTION;
|
||||
break;
|
||||
case UEV_PRESS:
|
||||
case UEV_RELEASE:
|
||||
event->type = SPNAV_EVENT_BUTTON;
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
event->type = data[0];
|
||||
}
|
||||
|
||||
|
@ -1020,7 +1027,9 @@ int spnav_cfg_set_led(int state)
|
|||
{
|
||||
struct reqresp rr = {0};
|
||||
|
||||
rr.data[0] = state ? 1 : 0;
|
||||
if(state < 0 || state >= 3) return -1;
|
||||
|
||||
rr.data[0] = state;
|
||||
return request(REQ_SCFG_LED, &rr, TIMEOUT);
|
||||
}
|
||||
|
||||
|
|
2
spnav.h
2
spnav.h
|
@ -38,7 +38,7 @@ enum {
|
|||
SPNAV_EVENT_MOTION,
|
||||
SPNAV_EVENT_BUTTON, /* includes both press and release */
|
||||
|
||||
SPNAV_EVENT_DEV = 4,/* add/remove device event */
|
||||
SPNAV_EVENT_DEV, /* add/remove device event */
|
||||
SPNAV_EVENT_CFG /* configuration change event */
|
||||
};
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue