Ignore diagonals for iMON PAD in keyboard mode

For user with an iMON PAD Remote control, the keyboard mode is very touchy and almost useless with XBMC. Event with stabilized() algorithm the behaviour is unexpected. To make it less touchy, I make it ignore any value too close to the diagonals.
This commit is contained in:
Patrik Dufresne 2014-06-29 16:52:43 -04:00
parent 24b414d5a7
commit c0cae3784a

View file

@ -1406,6 +1406,17 @@ static void imon_pad_to_keys(struct imon_context *ictx, unsigned char *buf)
buf[3] = (dir >> 8) & 0xFF;
scancode = be32_to_cpu(*((u32 *)buf));
} else {
/*
* For users without stabilized, just ignore any value getting
* to close to the diagonal.
*/
if ((abs(rel_y) < 2 && abs(rel_x) < 2) ||
abs(abs(rel_y) - abs(rel_x)) < 2 ) {
spin_lock_irqsave(&ictx->kc_lock, flags);
ictx->kc = KEY_UNKNOWN;
spin_unlock_irqrestore(&ictx->kc_lock, flags);
return;
}
/*
* Hack alert: instead of using keycodes, we have
* to use hard-coded scancodes here...