Support for Gamepad API in WebKitGTK+ and general gamepad configuration options in System Settings

A Google Summer of Code 2012 project


About

This GSoC2012 project aims to provide GNOME enhancements on three different fronts:

  • Support for the Gamepad API specification in the GTK+ port of the WebKit rendering engine, WebKitGTK+

  • A new panel in the GNOME System Settings for configuring and fine-tuning gamepads
  • A plugin for the GNOME Settings Daemon to store previously performed gamepad configurations and load them on gamepad connection

Current status & try-it-out guidelines

Gamepad API support in WebKitGTK+

Work is complete.

To try it out:

  • Using the 1.9.5 unstable release of WebKitGTK+ is recommended. This release is the first to contain Gamepad API support for the GTK port. You can also use the development tree. The release is available here.

  • Building from source requires you to install dependencies: Building WebKitGTK+

  • Build the release:

    $ ./configure --enable-gamepad; make; make install
  • Build in the development tree and run the sample application:

    $ Tools/Scripts/build-webkit --gtk --enable-gamepad
    $ Tools/Scripts/run-launcher --gtk
  • There's not many applications exercising the feature, one of the few is Gamepads, Gamepads Everywhere. Developed in parallel with support for the Gamepad API in WebKitGTK+, it displays gamepad dataflow in real time.

'Gamepads panel' in GNOME System Settings

Work is done for the GSoC period. In the GitHub fork, this is noted by the GSOC_PENCILS_DOWN tag.
Merge into git.gnome.org repository is covered by bug #682205.
Design is still in progress and the design proposal has been just recently updated.

To try it out:

  • Check out the GNOME System Settings fork on GitHub

  • Install the dependencies required (or similar for non-Debian-based systems):

    $ sudo apt-get build-dep gnome-control-center
  • Build and install as usual (installation is required - uninstalling after playing around is recommended):

    $ ./autogen.sh; make; sudo make install
  • start the GNOME System Settings and check out the Gamepads panel

GNOME Settings Daemon plugin

Work is done for the GSoC period. In the GitHub fork, this is noted by the GSOC_PENCILS_DOWN tag.
Merge into git.gnome.org repository is covered by bug #682204.

To try it out:

  • Check out the GNOME Settings Daemon fork on GitHub

  • Install the dependencies required (or similar for non-Debian-based systems):

    $ sudo apt-get build-dep gnome-settings-daemon
  • Build and install as usual (installation is required - uninstalling after playing around is recommended):

    $ ./autogen.sh; make; sudo make install
  • Restart the gnome-settings-daemon process

Timeline

This timeline was originally proposed in the GSoC proposal but can be a subject to change.

Weeks 1-2 (from May 21st onwards)

  • finish off the panel design ideas if possible or at least bring them to a state where implementation of the programmatic logic behind the gamepad configuration could start (design proposal)

  • add support for the Gamepad API in WebKitGTK+ (reviewing process might delay landing this in the source tree beyond these two weeks) (in progress - WebKit Bugzilla bug entry)

  • if possible, rewrite the Gamepad module in the core parts of WebKit, bringing the support for the specification up-to-date (not a priority, possibly a small-task in the following weeks)

Weeks 3-4 (from June 4th onwards)

  • start implementing the control center panel

Weeks 5-6 (from June 18th onwards)

  • shift to implementing the GNOME Settings Daemon plugin
  • continue on working on the GNOME System Settings panel design

Weeks 7-8 (from July 2nd onwards)

  • Week 8 includes mid-term evaluations deadline, the plan is to show finished support for the Gamepad API and finished plugin implementation
  • continue with the panel design and implementation, moving the code onto GNOME 3.6 codebase

Weeks 9-10 (from July 16th onwards)

  • continue polishing both the control center panel and the settings daemon plugin, along with progressing on the Gamepad API usage samples
  • by this time enough experience about the Gamepad API should be gathered to provide some feedback to the specification editors

Weeks 11-12 (from July 30th onwards)

  • polish all the written code, finish what's left, fix bugs and move the sample applications towards a finished state

Weeks 13-14 (from August 13th onwards)

  • Week 13 is used to do the last polishing if required - documentation updates, missing test cases etc.
  • Week 14 starts with the firm pencils-down date, meaning no work should be left for and done in this week. Final evaluations submission is required, though.

Week 15 (from August 27th onwards)

  • Final results announced, required code samples submission beings on August 31th.

Social

Twitter

Blog

Posts

  1. Expecting an interesting summer

  2. Biweekly report #1

  3. Biweekly report #2

  4. Biweekly report #3

  5. Biweekly report #4

  6. Report #5 - The Last Push

  7. The final report

Outreach/SummerOfCode/2012/Projects/ZanDobersek_Gamepad_API (last edited 2013-12-03 18:33:52 by WilliamJonMcCann)