Add the gamepads plugin
Submitted by Zan Dobersek
Link to original bug (#682204)
Description
A gamepads plugin for the GNOME Settings Daemon was part of my GSoC 2012 project. https://live.gnome.org/SummerOfCode2012/Projects/ZanDobersek_Gamepad_API
Its task is to update the supported gamepads (and/or joysticks) devices list and apply properly working buttons and axes mappings to any supported device when it is connected.
The device is also updated with any previous calibration data. The plugin exposes a set of DBus methods that the GNOME Control Center uses to query device support status and calibration data as well as set the new calibration data when the user performs the calibration. Any performed calibration is also saved via GSettings and applied to that device when it's connected.
The device list is written in JSON and currently stored in an external repository at GitHub[1] but should probably be merged into GSD repository. Because of that the plugin uses libsoup to gather the data and JsonGlib to parse the JSON.