Home | History | Annotate | Download | only in common
      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 
     13 bool 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