Home | History | Annotate | Download | only in gamepad
      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 #ifndef CONTENT_BROWSER_GAMEPAD_GAMEPAD_STANDARD_MAPPINGS_H_
      6 #define CONTENT_BROWSER_GAMEPAD_GAMEPAD_STANDARD_MAPPINGS_H_
      7 
      8 #include "base/strings/string_piece.h"
      9 
     10 namespace WebKit {
     11 class WebGamepad;
     12 }
     13 
     14 namespace content {
     15 
     16 typedef void (*GamepadStandardMappingFunction)(
     17     const WebKit::WebGamepad& original,
     18     WebKit::WebGamepad* mapped);
     19 
     20 GamepadStandardMappingFunction GetGamepadStandardMappingFunction(
     21     const base::StringPiece& vendor_id,
     22     const base::StringPiece& product_id);
     23 
     24 // This defines our canonical mapping order for gamepad-like devices. If these
     25 // items cannot all be satisfied, it is a case-by-case judgement as to whether
     26 // it is better to leave the device unmapped, or to partially map it. In
     27 // general, err towards leaving it *unmapped* so that content can handle
     28 // appropriately.
     29 
     30 enum CanonicalButtonIndex {
     31   kButtonPrimary,
     32   kButtonSecondary,
     33   kButtonTertiary,
     34   kButtonQuaternary,
     35   kButtonLeftShoulder,
     36   kButtonRightShoulder,
     37   kButtonLeftTrigger,
     38   kButtonRightTrigger,
     39   kButtonBackSelect,
     40   kButtonStart,
     41   kButtonLeftThumbstick,
     42   kButtonRightThumbstick,
     43   kButtonDpadUp,
     44   kButtonDpadDown,
     45   kButtonDpadLeft,
     46   kButtonDpadRight,
     47   kButtonMeta,
     48   kNumButtons
     49 };
     50 
     51 enum CanonicalAxisIndex {
     52   kAxisLeftStickX,
     53   kAxisLeftStickY,
     54   kAxisRightStickX,
     55   kAxisRightStickY,
     56   kNumAxes
     57 };
     58 
     59 }  // namespace content
     60 
     61 #endif  // CONTENT_BROWSER_GAMEPAD_GAMEPAD_STANDARD_MAPPINGS_H_
     62