[EFL] Add Gamepad support
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Jul 2012 06:22:14 +0000 (06:22 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Jul 2012 06:22:14 +0000 (06:22 +0000)
commitcdf5a923308e9be6013da3c71bd84e17aad0dc98
tree215790daf55cea830cd16afaea993def40ecd635
parentcccc1cb1aa46d074ea8c8645089051f610056dc0
[EFL] Add Gamepad support
https://bugs.webkit.org/show_bug.cgi?id=90170

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-07-01
Reviewed by Kenneth Rohde Christiansen.

.:

* Source/cmake/FindEFL.cmake: Bump EFL libs dependencies.
* Source/cmake/OptionsEfl.cmake: Turn on GAMEPAD flag on EFL port.
* Source/cmakeconfig.h.cmake: Add GAMEPAD flag to CMake.

Source/WebCore:

Add support for the Gamepad feature on the EFL port.

The implementation of this class relies on the Linux
kernel joystick API.

Gamepad devices are recognized through the GamepadsEfl
class, of which implementation is based on Eeze
library. This way devices are properly registered on
connection as objects of the GamepadDeviceEfl class
which inherits GamepadDeviceLinux. GamepadDeviceEfl
reads the joystick data through an Ecore_Fd_Handler
and updates the device state accordingly. The
GamepadsEfl object is then polled for gamepads data
through the sampleGamepads method.

No new tests - already tested by gamepad/*

* CMakeLists.txt:
* PlatformEfl.cmake:
* platform/efl/GamepadsEfl.cpp: Added.
(WebCore):
(GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::create):
(WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::~GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::readCallback):
(GamepadsEfl):
(WebCore::GamepadsEfl::onGamePadChange):
(WebCore::GamepadsEfl::GamepadsEfl):
(WebCore::GamepadsEfl::~GamepadsEfl):
(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadsEfl::unregisterDevice):
(WebCore::GamepadsEfl::updateGamepadList):
(WebCore::sampleGamepads):

Tools:

* Scripts/webkitperl/FeatureList.pm: Turn on GAMEPAD flag
by default for EFL port.
* efl/jhbuild.modules: Bump dependency versions of EFL libs
since the latest Eeze is required for gamepad support.

LayoutTests:

Unskip gamepad/gamepad-api.html now that Gamepad
support is enabled on EFL port.

gamepad/gamepad-polling-access.html is still
skipped because it requires additional test
infrastructure.

* platform/efl/Skipped:
* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
14 files changed:
ChangeLog
LayoutTests/ChangeLog
LayoutTests/platform/efl/Skipped
LayoutTests/platform/efl/TestExpectations
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/PlatformEfl.cmake
Source/WebCore/platform/efl/GamepadsEfl.cpp [new file with mode: 0644]
Source/cmake/FindEFL.cmake
Source/cmake/OptionsEfl.cmake
Source/cmakeconfig.h.cmake
Tools/ChangeLog
Tools/Scripts/webkitperl/FeatureList.pm
Tools/efl/jhbuild.modules