Skip to content

RDKEMW-16580: Switch WPE gamepad to libmanette and backport upstream rumble#3920

Open
petartijanic01 wants to merge 2 commits intodevelopfrom
feature/RDKEMW-16580_manette_gamepad
Open

RDKEMW-16580: Switch WPE gamepad to libmanette and backport upstream rumble#3920
petartijanic01 wants to merge 2 commits intodevelopfrom
feature/RDKEMW-16580_manette_gamepad

Conversation

@petartijanic01
Copy link
Copy Markdown

@petartijanic01 petartijanic01 commented May 7, 2026

Brings gamepad rumble / haptic feedback (GamepadHapticActuator.playEffect)
to the WPE port on WebKit 2.46. Two commits:

  1. Switch WPE gamepad backend from libwpe to libmanette — aligns WPE
    with what GTK already does, drops GamepadProviderLibWPE /
    UIGamepadProviderLibWPE from the WPE build, wires up the manette
    equivalents, and adds find_package(Manette 0.2.4) in OptionsWPE.cmake.
    Required as a prerequisite for commit 2.

  2. Backport upstream 2e1369350dab — implements playEffect /
    stopEffects on top of libmanette's rumble API. Direct cherry-pick
    of the upstream change with three small adaptations for 2.46:

    • WTFMove instead of WTF::move
    • RunLoop::current() + unnamed RunLoop::Timer ctor (2.46 predates
      RunLoop::currentSingleton() and the named-timer overload)
    • Vibration actuator default also enabled for PLATFORM(WPE) since
      commit 1 puts WPE on libmanette

ptijan372 added 2 commits May 7, 2026 11:49
Change-Id: I7dfb2ded12e589a4731034cf1d926ea0c241fccd
…369350dab)

Change-Id: Idbd7293c403c2b8b83fca353e36891a37de506c8
@petartijanic01 petartijanic01 requested review from a team as code owners May 7, 2026 11:58
Copilot AI review requested due to automatic review settings May 7, 2026 11:58
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the WPE WebKit 2.46 Yocto recipe to switch gamepad handling from the libwpe backend to libmanette, and backports gamepad rumble (playEffect/stopEffects) support via libmanette.

Changes:

  • Add two WebKit patch backports: (1) switch WPE gamepad backend to libmanette, (2) implement rumble via libmanette.
  • Add a gamepad PACKAGECONFIG entry that pulls in libmanette when ENABLE_GAMEPAD is used.
  • Bump the recipe PR revision.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
recipes-extended/wpe-webkit/wpe-webkit_2.46.bb Adds the new patch files to SRC_URI, bumps PR, and introduces a gamepad PACKAGECONFIG dependency on libmanette.
recipes-extended/wpe-webkit/files/2.46/comcast-RDKEMW-16580-WPE-Switch-gamepad-backend-from-libwpe-to-libmanette.patch Switches WPE gamepad provider wiring to the manette implementation and adds Manette CMake wiring.
recipes-extended/wpe-webkit/files/2.46/comcast-RDKEMW-16580-Backport-Implement-playEffect-via-libmanette-rumble.patch Backports rumble support into Manette gamepad classes and enables vibration actuator defaults for WPE.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +92 to +93
+ if (m_effectCompletionHandler)
+ m_effectCompletionHandler(false);
Comment on lines +116 to +122
+ else
+ m_effectCompletionHandler(true);
+}
+
+void ManetteGamepad::effectDurationTimerFired()
+{
+ m_effectCompletionHandler(true);
Comment on lines +130 to +139
@@ -232,6 +232,14 @@
message(FATAL_ERROR "libwpe>=1.16.2 is required for ENABLE_GAMEPAD")
endif ()

+if (ENABLE_GAMEPAD)
+ find_package(Manette 0.2.4)
+ if (NOT Manette_FOUND)
+ message(FATAL_ERROR "libmanette is required for ENABLE_GAMEPAD")
+ endif ()
+ SET_AND_EXPOSE_TO_BUILD(USE_MANETTE TRUE)
@petartijanic01 petartijanic01 changed the title Feature/rdkemw 16580 manette gamepad RDKEMW-16580: Switch WPE gamepad to libmanette and backport upstream rumble May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants