forked from drath/libratbag
7db22756b760c672eaa8996a314865bd093f7122
One giant commit, but I didn't know how to split this up easier. The problem is a misunderstanding in what the button type is and the code that built on that misunderstanding, requiring a lot of interdependent parts to be updated at once. The button _type_ is the physical description of the button. The button _action type_ is what will happen when you hit the buttons. The type is read-only, since we're not dealing with mr potato head here. The action is adjustible and we now support buttons, keys and special in-hardware actions (e.g. dpi changes). A few FIXMEs still in place, e.g. we don't handle modifiers with keys. For buttons we just take numerical button numbers. i.e. we can map a button to button 4, which will result in BTN_SIDE, and eventually logical button 8 in X. For keys we take KEY_FOO, since eventually we want this to come out as that (could do this for button as well I guess). Modifiers are currently ignored. For special actions we have a enum of actions we support. The button type enum is thus reduced a lot, and everything needs to be switched. This breaks ratbag-command change-button, will be fixed later since it's misdesigned as it is anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
/*!@mainpage
libratbag
libratbag is a configuration library for gaming mice. It provides a generic way to access the various features exposed by these mice and abstracts away hardware-specific and kernel-specific quirks.
License
libratbag is licensed under the MIT license.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: [...]
See the COPYING file for the full license information.
*/
Description
Languages
C
84.2%
Python
12.3%
Meson
1.5%
Shell
1.3%
Roff
0.5%
Other
0.2%