1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "content/common/gamepad_user_gesture.h" 6 7 #include <algorithm> 8 9 #include "third_party/WebKit/public/platform/WebGamepads.h" 10 11 namespace content { 12 GamepadsHaveUserGesture(const blink::WebGamepads & gamepads)13bool GamepadsHaveUserGesture(const blink::WebGamepads& gamepads) { 14 for (unsigned i = 0; i < blink::WebGamepads::itemsLengthCap; i++) { 15 const blink::WebGamepad& pad = gamepads.items[i]; 16 17 // If the device is physically connected, then check the primary 4 buttons 18 // to see if there is currently an intentional user action. 19 if (pad.connected) { 20 const unsigned kPrimaryInteractionButtons = 4; 21 unsigned buttons_to_check = std::min(pad.buttonsLength, 22 kPrimaryInteractionButtons); 23 for (unsigned button_index = 0; button_index < buttons_to_check; 24 button_index++) { 25 if (pad.buttons[button_index].pressed) 26 return true; 27 } 28 } 29 } 30 return false; 31 } 32 33 } // namespace content 34