Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(805)

Unified Diff: content/browser/gamepad/gamepad_platform_data_fetcher_win.cc

Issue 165983005: Updating Gamepad API to match latest spec (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed typo in GamepadProviderTest Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
diff --git a/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc b/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
index 1cd9b2c512ea43deed78287e16a54f3056faf2e8..c344e7e79d58c9da5f2ea04cca75b3284a813f25 100644
--- a/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
+++ b/content/browser/gamepad/gamepad_platform_data_fetcher_win.cc
@@ -142,6 +142,12 @@ void GamepadPlatformDataFetcherWin::EnumerateDevices(
L"%ls (%lsVendor: %04x Product: %04x)",
gamepad->id, state.mapper ? L"STANDARD GAMEPAD " : L"",
gamepad->vendor_id, gamepad->product_id);
+
+ if (state.mapper)
+ swprintf(pad.mapping, WebGamepad::mappingLengthCap, L"standard");
+ else
+ pad.mapping[0] = 0;
+
pads->length++;
}
}
@@ -205,6 +211,7 @@ bool GamepadPlatformDataFetcherWin::GetXInputPadConnectivity(
WebGamepad::idLengthCap,
L"Xbox 360 Controller (XInput STANDARD %ls)",
GamepadSubTypeName(caps.SubType));
+ swprintf(pad->mapping, WebGamepad::mappingLengthCap, L"standard");
return true;
}
}
@@ -221,16 +228,24 @@ void GamepadPlatformDataFetcherWin::GetXInputPadData(
if (dwResult == ERROR_SUCCESS) {
pad->timestamp = state.dwPacketNumber;
pad->buttonsLength = 0;
-#define ADD(b) pad->buttons[pad->buttonsLength++] = \
- ((state.Gamepad.wButtons & (b)) ? 1.0 : 0.0);
+#define ADD(b) pad->buttons[pad->buttonsLength].pressed = \
+ (state.Gamepad.wButtons & (b)) != 0; \
+ pad->buttons[pad->buttonsLength++].value = \
+ ((state.Gamepad.wButtons & (b)) ? 1.f : 0.f);
ADD(XINPUT_GAMEPAD_A);
ADD(XINPUT_GAMEPAD_B);
ADD(XINPUT_GAMEPAD_X);
ADD(XINPUT_GAMEPAD_Y);
ADD(XINPUT_GAMEPAD_LEFT_SHOULDER);
ADD(XINPUT_GAMEPAD_RIGHT_SHOULDER);
- pad->buttons[pad->buttonsLength++] = state.Gamepad.bLeftTrigger / 255.0;
- pad->buttons[pad->buttonsLength++] = state.Gamepad.bRightTrigger / 255.0;
+ pad->buttons[pad->buttonsLength].pressed =
+ state.Gamepad.bLeftTrigger >= XINPUT_GAMEPAD_TRIGGER_THRESHOLD;
+ pad->buttons[pad->buttonsLength++].value =
+ state.Gamepad.bLeftTrigger / 255.f;
+ pad->buttons[pad->buttonsLength].pressed =
+ state.Gamepad.bRightTrigger >= XINPUT_GAMEPAD_TRIGGER_THRESHOLD;
+ pad->buttons[pad->buttonsLength++].value =
+ state.Gamepad.bRightTrigger / 255.f;
ADD(XINPUT_GAMEPAD_BACK);
ADD(XINPUT_GAMEPAD_START);
ADD(XINPUT_GAMEPAD_LEFT_THUMB);
@@ -267,8 +282,10 @@ void GamepadPlatformDataFetcherWin::GetRawInputPadData(
raw_pad.buttonsLength = gamepad->buttons_length;
raw_pad.axesLength = gamepad->axes_length;
- for (unsigned int i = 0; i < raw_pad.buttonsLength; i++)
- raw_pad.buttons[i] = gamepad->buttons[i] ? 1.0 : 0.0;
+ for (unsigned int i = 0; i < raw_pad.buttonsLength; i++) {
+ raw_pad.buttons[i].pressed = gamepad->buttons[i];
+ raw_pad.buttons[i].value = gamepad->buttons[i] ? 1.0 : 0.0;
+ }
for (unsigned int i = 0; i < raw_pad.axesLength; i++)
raw_pad.axes[i] = gamepad->axes[i].value;
« no previous file with comments | « content/browser/gamepad/gamepad_platform_data_fetcher_mac.mm ('k') | content/browser/gamepad/gamepad_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698