diff --git a/device/gamepad/gamepad_device_mac.mm b/device/gamepad/gamepad_device_mac.mm index 611a301ecc160..1651ba3c58b0e 100644 --- a/device/gamepad/gamepad_device_mac.mm +++ b/device/gamepad/gamepad_device_mac.mm @@ -35,6 +35,7 @@ const uint16_t kPowerUsageNumber = 0x30; const uint16_t kSearchUsageNumber = 0x0221; const uint16_t kHomeUsageNumber = 0x0223; const uint16_t kBackUsageNumber = 0x0224; +const uint16_t kRecordUsageNumber = 0xb2; const int kRumbleMagnitudeMax = 10000; @@ -52,6 +53,7 @@ struct SpecialUsages { // Back. {kConsumerUsagePage, kHomeUsageNumber}, {kConsumerUsagePage, kBackUsageNumber}, + {kConsumerUsagePage, kRecordUsageNumber}, }; const size_t kSpecialUsagesLen = base::size(kSpecialUsages); diff --git a/device/gamepad/gamepad_standard_mappings.h b/device/gamepad/gamepad_standard_mappings.h index 99ecb48f2003a..273be6c4c8d82 100644 --- a/device/gamepad/gamepad_standard_mappings.h +++ b/device/gamepad/gamepad_standard_mappings.h @@ -68,6 +68,12 @@ enum CanonicalButtonIndex { BUTTON_INDEX_COUNT }; +// Xbox Series X has an extra share button. +enum XboxSeriesXButtons { + XBOX_SERIES_X_BUTTON_SHARE = CanonicalButtonIndex::BUTTON_INDEX_COUNT, + XBOX_SERIES_X_BUTTON_COUNT +}; + // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.device.gamepad // GENERATED_JAVA_PREFIX_TO_STRIP: AXIS_INDEX_ diff --git a/device/gamepad/gamepad_standard_mappings_mac.mm b/device/gamepad/gamepad_standard_mappings_mac.mm index 6488fe01576ce..dfa00c5ded816 100644 --- a/device/gamepad/gamepad_standard_mappings_mac.mm +++ b/device/gamepad/gamepad_standard_mappings_mac.mm @@ -122,14 +122,15 @@ void MapperXboxSeriesX(const Gamepad& input, Gamepad* mapped) { mapped->buttons[BUTTON_INDEX_RIGHT_TRIGGER] = AxisToButton(input.axes[4]); mapped->buttons[BUTTON_INDEX_BACK_SELECT] = input.buttons[10]; mapped->buttons[BUTTON_INDEX_START] = input.buttons[11]; - mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[8]; - mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[9]; - mapped->buttons[BUTTON_INDEX_META] = input.buttons[16]; + mapped->buttons[BUTTON_INDEX_LEFT_THUMBSTICK] = input.buttons[13]; + mapped->buttons[BUTTON_INDEX_RIGHT_THUMBSTICK] = input.buttons[14]; + mapped->buttons[BUTTON_INDEX_META] = input.buttons[12]; + mapped->buttons[XBOX_SERIES_X_BUTTON_SHARE] = input.buttons[15]; mapped->axes[AXIS_INDEX_RIGHT_STICK_X] = input.axes[2]; mapped->axes[AXIS_INDEX_RIGHT_STICK_Y] = input.axes[5]; DpadFromAxis(mapped, input.axes[9]); - mapped->buttons_length = BUTTON_INDEX_COUNT; + mapped->buttons_length = XBOX_SERIES_X_BUTTON_COUNT; mapped->axes_length = AXIS_INDEX_COUNT; }