Hi Todd On Wed, May 8, 2013 at 7:20 PM, Todd Showalter <todd@xxxxxxxxxxxxxxxx> wrote: > On Wed, May 8, 2013 at 1:05 PM, Dmitry Torokhov > <dmitry.torokhov@xxxxxxxxx> wrote: > >> Or you have your library that provides ABS->BTN translation. >> >> You can even have your API structured such that consumer provides list >> of events it is interested in and the library tries to synthesize >> missing events if it can. > > That's in the plans. > >> So we already have: >> >> #define BTN_A 0x130 >> #define BTN_B 0x131 >> #define BTN_C 0x132 >> #define BTN_X 0x133 >> #define BTN_Y 0x134 >> #define BTN_Z 0x135 >> #define BTN_TL 0x136 >> #define BTN_TR 0x137 >> #define BTN_TL2 0x138 >> #define BTN_TR2 0x139 >> #define BTN_SELECT 0x13a >> #define BTN_START 0x13b >> #define BTN_MODE 0x13c >> #define BTN_THUMBL 0x13d >> #define BTN_THUMBR 0x13e >> >> So if we really want to have BTN_NORTH, etc, we want to alias existing >> ones. > > The problem is that the alias differs with hardware. BTN_A would be: > > - BTN_SOUTH on xbox gamepads > - BTN_EAST on nintendo gamepads and ouya > > Nintendo is: > > A -> WEST > B -> SOUTH > X -> NORTH > Y -> EAST > > While Microsoft is: > > A -> SOUTH > B -> EAST > X -> WEST > Y -> NORTH > > They're mirror images of each other. So just aliasing is going to > break something. No. Just ignore BTN_A/B/X/Y, use BTN_EAST/WEST/NORTH/SOUTH instead. Only for legacy gamepads with wrong mappings you might reuse these. So we basically overwrite the old names. So you no longer care for BTN_A/B/X/Y and they will no longer represent the labels of the buttons, but instead the location. Regards David -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html