Title: [264475] trunk/Source/WebCore
Revision
264475
Author
[email protected]
Date
2020-07-16 13:33:57 -0700 (Thu, 16 Jul 2020)

Log Message

Remove (entirely unused) hat switch dpad support in HIDGamepad.
https://bugs.webkit.org/show_bug.cgi?id=214419

Reviewed by Andy Estes.

Turns out these devices simply don't exist in the wild.

* platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::initElements):
(WebCore::HIDGamepad::initElementsFromArray):
(WebCore::HIDGamepad::valueChanged):
(WebCore::HIDGamepad::maybeAddDPad): Deleted.
(WebCore::fillInButtonValues): Deleted.

* platform/gamepad/mac/HIDGamepad.h:
(WebCore::HIDGamepadElement::isAxis const):
(WebCore::HIDGamepadElement::isDPad const): Deleted.
(WebCore::HIDGamepadDPad::HIDGamepadDPad): Deleted.
(WebCore::HIDGamepadDPad::normalizedValue): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (264474 => 264475)


--- trunk/Source/WebCore/ChangeLog	2020-07-16 19:48:57 UTC (rev 264474)
+++ trunk/Source/WebCore/ChangeLog	2020-07-16 20:33:57 UTC (rev 264475)
@@ -1,3 +1,25 @@
+2020-07-16  Brady Eidson  <[email protected]>
+
+        Remove (entirely unused) hat switch dpad support in HIDGamepad.
+        https://bugs.webkit.org/show_bug.cgi?id=214419
+
+        Reviewed by Andy Estes.
+
+        Turns out these devices simply don't exist in the wild.
+
+        * platform/gamepad/mac/HIDGamepad.cpp:
+        (WebCore::HIDGamepad::initElements):
+        (WebCore::HIDGamepad::initElementsFromArray):
+        (WebCore::HIDGamepad::valueChanged):
+        (WebCore::HIDGamepad::maybeAddDPad): Deleted.
+        (WebCore::fillInButtonValues): Deleted.
+
+        * platform/gamepad/mac/HIDGamepad.h:
+        (WebCore::HIDGamepadElement::isAxis const):
+        (WebCore::HIDGamepadElement::isDPad const): Deleted.
+        (WebCore::HIDGamepadDPad::HIDGamepadDPad): Deleted.
+        (WebCore::HIDGamepadDPad::normalizedValue): Deleted.
+
 2020-07-16  Peng Liu  <[email protected]>
 
         Double tapping to zoom out a fullscreen video will zoom in slightly before zooming out

Modified: trunk/Source/WebCore/platform/gamepad/mac/HIDGamepad.cpp (264474 => 264475)


--- trunk/Source/WebCore/platform/gamepad/mac/HIDGamepad.cpp	2020-07-16 19:48:57 UTC (rev 264474)
+++ trunk/Source/WebCore/platform/gamepad/mac/HIDGamepad.cpp	2020-07-16 20:33:57 UTC (rev 264475)
@@ -80,15 +80,14 @@
         return a->priority < b->priority;
     });
 
+    LOG(Gamepad, "HIDGamepad initialized with %zu buttons and %zu axes", m_buttons.size(), m_axes.size());
+
     m_axisValues.resize(m_axes.size());
-    m_buttonValues.resize(m_buttons.size() + (m_dPads.size() * 4));
+    m_buttonValues.resize(m_buttons.size());
 
     for (auto& button : m_buttons)
         getCurrentValueForElement(button.get());
 
-    for (auto& dPad : m_dPads)
-        getCurrentValueForElement(dPad.get());
-
     for (auto& axis : m_axes)
         getCurrentValueForElement(axis.get());
 }
@@ -112,8 +111,6 @@
         if ((type == kIOHIDElementTypeInput_Misc || type == kIOHIDElementTypeInput_Button)) {
             if (maybeAddButton(element))
                 continue;
-            if (maybeAddDPad(element))
-                continue;
         }
 
         if ((type == kIOHIDElementTypeInput_Misc || type == kIOHIDElementTypeInput_Axis) && maybeAddAxis(element))
@@ -150,27 +147,6 @@
     return true;
 }
 
-bool HIDGamepad::maybeAddDPad(IOHIDElementRef element)
-{
-    uint32_t usagePage = IOHIDElementGetUsagePage(element);
-    if (usagePage != kHIDPage_GenericDesktop)
-        return false;
-
-    uint32_t usage = IOHIDElementGetUsage(element);
-    if (!usage || usage != kHIDUsage_GD_Hatswitch)
-        return false;
-
-    CFIndex min = IOHIDElementGetLogicalMin(element);
-    CFIndex max = IOHIDElementGetLogicalMax(element);
-
-    m_dPads.append(makeUniqueRef<HIDGamepadDPad>(min, max, element));
-
-    IOHIDElementCookie cookie = IOHIDElementGetCookie(element);
-    m_elementMap.set(cookie, &m_dPads.last().get());
-
-    return true;
-}
-
 bool HIDGamepad::maybeAddAxis(IOHIDElementRef element)
 {
     uint32_t usagePage = IOHIDElementGetUsagePage(element);
@@ -193,38 +169,6 @@
     return true;
 }
 
-static void fillInButtonValues(int value, double& button0, double& button1, double& button2, double& button3)
-{
-    // Standard DPads have 8 possible position values, moving around a circle:
-    // 0 - Up
-    // 1 - Up + right
-    // 2 - Right
-    // 3 - Down + right
-    // 4 - Down
-    // 5 - Down + left
-    // 6 - Left
-    // 7 - Up and Left
-    // These 8 positions are mapped on to 4 button positions:
-    // 0 - Up
-    // 1 - Down
-    // 2 - Left
-    // 3 - Right
-
-    if (value < 0 || value > 7) {
-        // Handle an invalid input value that we don't know how to interpret.
-        button0 = 0.0;
-        button1 = 0.0;
-        button2 = 0.0;
-        button3 = 0.0;
-        return;
-    }
-
-    button0 = value < 2 || value == 7 ? 1.0 : 0.0;
-    button1 = value > 2 && value < 6 ? 1.0 : 0.0;
-    button2 = value > 4 ? 1.0 : 0.0;
-    button3 = value > 0 && value < 4 ? 1.0 : 0.0;
-}
-
 HIDInputType HIDGamepad::valueChanged(IOHIDValueRef value)
 {
     IOHIDElementCookie cookie = IOHIDElementGetCookie(IOHIDValueGetElement(value));
@@ -250,19 +194,6 @@
                 break;
             }
         }
-    } else if (element->isDPad()) {
-        int intValue = IOHIDValueGetIntegerValue(value) - element->min;
-        for (unsigned i = 0; i < m_dPads.size(); ++i) {
-            if (&m_dPads[i].get() != element)
-                continue;
-
-            // Each DPad represents 4 button values which are tacked on to the end of the values from non-DPad buttons.
-            unsigned firstButtonValue = m_buttons.size() + i * 4;
-
-            ASSERT(m_buttonValues.size() > firstButtonValue + 3);
-
-            fillInButtonValues(intValue, m_buttonValues[firstButtonValue], m_buttonValues[firstButtonValue + 1], m_buttonValues[firstButtonValue + 2], m_buttonValues[firstButtonValue + 3]);
-        }
     } else
         ASSERT_NOT_REACHED();
 

Modified: trunk/Source/WebCore/platform/gamepad/mac/HIDGamepad.h (264474 => 264475)


--- trunk/Source/WebCore/platform/gamepad/mac/HIDGamepad.h	2020-07-16 19:48:57 UTC (rev 264474)
+++ trunk/Source/WebCore/platform/gamepad/mac/HIDGamepad.h	2020-07-16 20:33:57 UTC (rev 264475)
@@ -56,7 +56,6 @@
 
     virtual bool isButton() const { return false; }
     virtual bool isAxis() const { return false; }
-    virtual bool isDPad() const { return false; }
 
     virtual double normalizedValue() = 0;
 };
@@ -94,17 +93,6 @@
     }
 };
 
-struct HIDGamepadDPad : HIDGamepadElement {
-    HIDGamepadDPad(double min, double max, IOHIDElementRef element)
-        : HIDGamepadElement(min, max, element)
-    {
-    }
-
-    bool isDPad() const final { return true; }
-
-    virtual double normalizedValue() { RELEASE_ASSERT_NOT_REACHED(); }
-};
-
 enum class HIDInputType {
     ButtonPress,
     NotAButtonPress,
@@ -128,7 +116,6 @@
     void initElementsFromArray(CFArrayRef);
 
     bool maybeAddButton(IOHIDElementRef);
-    bool maybeAddDPad(IOHIDElementRef);
     bool maybeAddAxis(IOHIDElementRef);
 
     void getCurrentValueForElement(const HIDGamepadElement&);
@@ -139,7 +126,6 @@
 
     Vector<UniqueRef<HIDGamepadButton>> m_buttons;
     Vector<UniqueRef<HIDGamepadAxis>> m_axes;
-    Vector<UniqueRef<HIDGamepadDPad>> m_dPads;
     Vector<double> m_buttonValues;
     Vector<double> m_axisValues;
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to