///////////////////////////////////////////////////////////////////////////////////////////
// ActionMap.h
//
//  Definition of the ActionMap class, which handles DirectInput action maps.
//
//  ActionMap is a typed specialisation of System.Collections.CollectionBase, being a
// list of ActionMap.Entry objects.
//
//  This file also contains the Genres enum, which defines the application genres for
// DirectInput, and the Actions enum, which defines the input actions to which application
// events will be mapped. These enums are generated from the list in dinput.h.

#pragma once

using namespace System;
using namespace System::ComponentModel;

namespace Sunlight
{
    namespace DirectX
    {
        namespace Input
        {
            // Application genres for DirectInput.
            __value public enum Genres
            {
None                          = 0,
DRIVING_RACE                  = 0x01000000,
DRIVING_COMBAT                = 0x02000000,
DRIVING_TANK                  = 0x03000000,
FLYING_CIVILIAN               = 0x04000000,
FLYING_MILITARY               = 0x05000000,
FLYING_HELICOPTER             = 0x06000000,
SPACESIM                      = 0x07000000,
FIGHTING_HAND2HAND            = 0x08000000,
FIGHTING_FPS                  = 0x09000000,
FIGHTING_THIRDPERSON          = 0x0A000000,
STRATEGY_ROLEPLAYING          = 0x0B000000,
STRATEGY_TURN                 = 0x0C000000,
SPORTS_HUNTING                = 0x0D000000,
SPORTS_FISHING                = 0x0E000000,
SPORTS_BASEBALL_BAT           = 0x0F000000,
SPORTS_BASEBALL_PITCH         = 0x10000000,
SPORTS_BASEBALL_FIELD         = 0x11000000,
SPORTS_BASKETBALL_OFFENSE     = 0x12000000,
SPORTS_BASKETBALL_DEFENSE     = 0x13000000,
SPORTS_FOOTBALL_FIELD         = 0x14000000,
SPORTS_FOOTBALL_QBCK          = 0x15000000,
SPORTS_FOOTBALL_OFFENSE       = 0x16000000,
SPORTS_FOOTBALL_DEFENSE       = 0x17000000,
SPORTS_GOLF                   = 0x18000000,
SPORTS_HOCKEY_OFFENSE         = 0x19000000,
SPORTS_HOCKEY_DEFENSE         = 0x1A000000,
SPORTS_HOCKEY_GOALIE          = 0x1B000000,
SPORTS_BIKING_MOUNTAIN        = 0x1C000000,
SPORTS_SKIING                 = 0x1D000000,
SPORTS_SOCCER_OFFENSE         = 0x1E000000,
SPORTS_SOCCER_DEFENSE         = 0x1F000000,
SPORTS_RACQUET                = 0x20000000,
ARCADE_SIDE2SIDE              = 0x21000000,
ARCADE_PLATFORM               = 0x22000000,
CAD_2DCONTROL                 = 0x23000000,
CAD_3DCONTROL                 = 0x24000000,
CAD_FLYBY                     = 0x25000000,
CAD_MODEL                     = 0x26000000,
REMOTE_CONTROL                = 0x27000000,
BROWSER_CONTROL               = 0x28000000,
DRIVING_MECHA                 = 0x29000000
            };

            // Device actions for DirectInput.
            __value public enum Actions
            {
None                                  = 0,
KEYBOARD_ESCAPE                       = 0x81000401,
KEYBOARD_1                            = 0x81000402,
KEYBOARD_2                            = 0x81000403,
KEYBOARD_3                            = 0x81000404,
KEYBOARD_4                            = 0x81000405,
KEYBOARD_5                            = 0x81000406,
KEYBOARD_6                            = 0x81000407,
KEYBOARD_7                            = 0x81000408,
KEYBOARD_8                            = 0x81000409,
KEYBOARD_9                            = 0x8100040A,
KEYBOARD_0                            = 0x8100040B,
KEYBOARD_MINUS                        = 0x8100040C,    /* - on main keyboard */
KEYBOARD_EQUALS                       = 0x8100040D,
KEYBOARD_BACK                         = 0x8100040E,    /* backspace */
KEYBOARD_TAB                          = 0x8100040F,
KEYBOARD_Q                            = 0x81000410,
KEYBOARD_W                            = 0x81000411,
KEYBOARD_E                            = 0x81000412,
KEYBOARD_R                            = 0x81000413,
KEYBOARD_T                            = 0x81000414,
KEYBOARD_Y                            = 0x81000415,
KEYBOARD_U                            = 0x81000416,
KEYBOARD_I                            = 0x81000417,
KEYBOARD_O                            = 0x81000418,
KEYBOARD_P                            = 0x81000419,
KEYBOARD_LBRACKET                     = 0x8100041A,
KEYBOARD_RBRACKET                     = 0x8100041B,
KEYBOARD_RETURN                       = 0x8100041C,    /* Enter on main keyboard */
KEYBOARD_LCONTROL                     = 0x8100041D,
KEYBOARD_A                            = 0x8100041E,
KEYBOARD_S                            = 0x8100041F,
KEYBOARD_D                            = 0x81000420,
KEYBOARD_F                            = 0x81000421,
KEYBOARD_G                            = 0x81000422,
KEYBOARD_H                            = 0x81000423,
KEYBOARD_J                            = 0x81000424,
KEYBOARD_K                            = 0x81000425,
KEYBOARD_L                            = 0x81000426,
KEYBOARD_SEMICOLON                    = 0x81000427,
KEYBOARD_APOSTROPHE                   = 0x81000428,
KEYBOARD_GRAVE                        = 0x81000429,    /* accent grave */
KEYBOARD_LSHIFT                       = 0x8100042A,
KEYBOARD_BACKSLASH                    = 0x8100042B,
KEYBOARD_Z                            = 0x8100042C,
KEYBOARD_X                            = 0x8100042D,
KEYBOARD_C                            = 0x8100042E,
KEYBOARD_V                            = 0x8100042F,
KEYBOARD_B                            = 0x81000430,
KEYBOARD_N                            = 0x81000431,
KEYBOARD_M                            = 0x81000432,
KEYBOARD_COMMA                        = 0x81000433,
KEYBOARD_PERIOD                       = 0x81000434,    /* . on main keyboard */
KEYBOARD_SLASH                        = 0x81000435,    /* / on main keyboard */
KEYBOARD_RSHIFT                       = 0x81000436,
KEYBOARD_MULTIPLY                     = 0x81000437,    /* * on numeric keypad */
KEYBOARD_LMENU                        = 0x81000438,    /* left Alt */
KEYBOARD_SPACE                        = 0x81000439,
KEYBOARD_CAPITAL                      = 0x8100043A,
KEYBOARD_F1                           = 0x8100043B,
KEYBOARD_F2                           = 0x8100043C,
KEYBOARD_F3                           = 0x8100043D,
KEYBOARD_F4                           = 0x8100043E,
KEYBOARD_F5                           = 0x8100043F,
KEYBOARD_F6                           = 0x81000440,
KEYBOARD_F7                           = 0x81000441,
KEYBOARD_F8                           = 0x81000442,
KEYBOARD_F9                           = 0x81000443,
KEYBOARD_F10                          = 0x81000444,
KEYBOARD_NUMLOCK                      = 0x81000445,
KEYBOARD_SCROLL                       = 0x81000446,    /* Scroll Lock */
KEYBOARD_NUMPAD7                      = 0x81000447,
KEYBOARD_NUMPAD8                      = 0x81000448,
KEYBOARD_NUMPAD9                      = 0x81000449,
KEYBOARD_SUBTRACT                     = 0x8100044A,    /* - on numeric keypad */
KEYBOARD_NUMPAD4                      = 0x8100044B,
KEYBOARD_NUMPAD5                      = 0x8100044C,
KEYBOARD_NUMPAD6                      = 0x8100044D,
KEYBOARD_ADD                          = 0x8100044E,    /* + on numeric keypad */
KEYBOARD_NUMPAD1                      = 0x8100044F,
KEYBOARD_NUMPAD2                      = 0x81000450,
KEYBOARD_NUMPAD3                      = 0x81000451,
KEYBOARD_NUMPAD0                      = 0x81000452,
KEYBOARD_DECIMAL                      = 0x81000453,    /* . on numeric keypad */
KEYBOARD_OEM_102                      = 0x81000456,    /* < > | on UK/Germany keyboards */
KEYBOARD_F11                          = 0x81000457,
KEYBOARD_F12                          = 0x81000458,
KEYBOARD_F13                          = 0x81000464,    /*                     (NEC PC98) */
KEYBOARD_F14                          = 0x81000465,    /*                     (NEC PC98) */
KEYBOARD_F15                          = 0x81000466,    /*                     (NEC PC98) */
KEYBOARD_KANA                         = 0x81000470,    /* (Japanese keyboard)            */
KEYBOARD_ABNT_C1                      = 0x81000473,    /* / ? on Portugese (Brazilian) keyboards */
KEYBOARD_CONVERT                      = 0x81000479,    /* (Japanese keyboard)            */
KEYBOARD_NOCONVERT                    = 0x8100047B,    /* (Japanese keyboard)            */
KEYBOARD_YEN                          = 0x8100047D,    /* (Japanese keyboard)            */
KEYBOARD_ABNT_C2                      = 0x8100047E,    /* Numpad . on Portugese (Brazilian) keyboards */
KEYBOARD_NUMPADEQUALS                 = 0x8100048D,    /* = on numeric keypad (NEC PC98) */
KEYBOARD_PREVTRACK                    = 0x81000490,    /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
KEYBOARD_AT                           = 0x81000491,    /*                     (NEC PC98) */
KEYBOARD_COLON                        = 0x81000492,    /*                     (NEC PC98) */
KEYBOARD_UNDERLINE                    = 0x81000493,    /*                     (NEC PC98) */
KEYBOARD_KANJI                        = 0x81000494,    /* (Japanese keyboard)            */
KEYBOARD_STOP                         = 0x81000495,    /*                     (NEC PC98) */
KEYBOARD_AX                           = 0x81000496,    /*                     (Japan AX) */
KEYBOARD_UNLABELED                    = 0x81000497,    /*                        (J3100) */
KEYBOARD_NEXTTRACK                    = 0x81000499,    /* Next Track */
KEYBOARD_NUMPADENTER                  = 0x8100049C,    /* Enter on numeric keypad */
KEYBOARD_RCONTROL                     = 0x8100049D,
KEYBOARD_MUTE                         = 0x810004A0,    /* Mute */
KEYBOARD_CALCULATOR                   = 0x810004A1,    /* Calculator */
KEYBOARD_PLAYPAUSE                    = 0x810004A2,    /* Play / Pause */
KEYBOARD_MEDIASTOP                    = 0x810004A4,    /* Media Stop */
KEYBOARD_VOLUMEDOWN                   = 0x810004AE,    /* Volume - */
KEYBOARD_VOLUMEUP                     = 0x810004B0,    /* Volume + */
KEYBOARD_WEBHOME                      = 0x810004B2,    /* Web home */
KEYBOARD_NUMPADCOMMA                  = 0x810004B3,    /* , on numeric keypad (NEC PC98) */
KEYBOARD_DIVIDE                       = 0x810004B5,    /* / on numeric keypad */
KEYBOARD_SYSRQ                        = 0x810004B7,
KEYBOARD_RMENU                        = 0x810004B8,    /* right Alt */
KEYBOARD_PAUSE                        = 0x810004C5,    /* Pause */
KEYBOARD_HOME                         = 0x810004C7,    /* Home on arrow keypad */
KEYBOARD_UP                           = 0x810004C8,    /* UpArrow on arrow keypad */
KEYBOARD_PRIOR                        = 0x810004C9,    /* PgUp on arrow keypad */
KEYBOARD_LEFT                         = 0x810004CB,    /* LeftArrow on arrow keypad */
KEYBOARD_RIGHT                        = 0x810004CD,    /* RightArrow on arrow keypad */
KEYBOARD_END                          = 0x810004CF,    /* End on arrow keypad */
KEYBOARD_DOWN                         = 0x810004D0,    /* DownArrow on arrow keypad */
KEYBOARD_NEXT                         = 0x810004D1,    /* PgDn on arrow keypad */
KEYBOARD_INSERT                       = 0x810004D2,    /* Insert on arrow keypad */
KEYBOARD_DELETE                       = 0x810004D3,    /* Delete on arrow keypad */
KEYBOARD_LWIN                         = 0x810004DB,    /* Left Windows key */
KEYBOARD_RWIN                         = 0x810004DC,    /* Right Windows key */
KEYBOARD_APPS                         = 0x810004DD,    /* AppMenu key */
KEYBOARD_POWER                        = 0x810004DE,    /* System Power */
KEYBOARD_SLEEP                        = 0x810004DF,    /* System Sleep */
KEYBOARD_WAKE                         = 0x810004E3,    /* System Wake */
KEYBOARD_WEBSEARCH                    = 0x810004E5,    /* Web Search */
KEYBOARD_WEBFAVORITES                 = 0x810004E6,    /* Web Favorites */
KEYBOARD_WEBREFRESH                   = 0x810004E7,    /* Web Refresh */
KEYBOARD_WEBSTOP                      = 0x810004E8,    /* Web Stop */
KEYBOARD_WEBFORWARD                   = 0x810004E9,    /* Web Forward */
KEYBOARD_WEBBACK                      = 0x810004EA,    /* Web Back */
KEYBOARD_MYCOMPUTER                   = 0x810004EB,    /* My Computer */
KEYBOARD_MAIL                         = 0x810004EC,    /* Mail */
KEYBOARD_MEDIASELECT                  = 0x810004ED,    /* Media Select */
  

/*--- MOUSE
      Physical Mouse Device             ---*/

MOUSE_XAXISAB                         = (0x82000200 |DIMOFS_X ), /* X Axis-absolute: Some mice natively report absolute coordinates  */ 
MOUSE_YAXISAB                         = (0x82000200 |DIMOFS_Y ), /* Y Axis-absolute: Some mice natively report absolute coordinates */
MOUSE_XAXIS                           = (0x82000300 |DIMOFS_X ), /* X Axis */
MOUSE_YAXIS                           = (0x82000300 |DIMOFS_Y ), /* Y Axis */
MOUSE_WHEEL                           = (0x82000300 |DIMOFS_Z ), /* Z Axis */
MOUSE_BUTTON0                         = (0x82000400 |DIMOFS_BUTTON0), /* Button 0 */
MOUSE_BUTTON1                         = (0x82000400 |DIMOFS_BUTTON1), /* Button 1 */
MOUSE_BUTTON2                         = (0x82000400 |DIMOFS_BUTTON2), /* Button 2 */
MOUSE_BUTTON3                         = (0x82000400 |DIMOFS_BUTTON3), /* Button 3 */
MOUSE_BUTTON4                         = (0x82000400 |DIMOFS_BUTTON4), /* Button 4 */
MOUSE_BUTTON5                         = (0x82000400 |DIMOFS_BUTTON5), /* Button 5 */
MOUSE_BUTTON6                         = (0x82000400 |DIMOFS_BUTTON6), /* Button 6 */
MOUSE_BUTTON7                         = (0x82000400 |DIMOFS_BUTTON7), /* Button 7 */


/*--- VOICE
      Physical Dplay Voice Device       ---*/

VOICE_CHANNEL1                        = 0x83000401,
VOICE_CHANNEL2                        = 0x83000402,
VOICE_CHANNEL3                        = 0x83000403,
VOICE_CHANNEL4                        = 0x83000404,
VOICE_CHANNEL5                        = 0x83000405,
VOICE_CHANNEL6                        = 0x83000406,
VOICE_CHANNEL7                        = 0x83000407,
VOICE_CHANNEL8                        = 0x83000408,
VOICE_TEAM                            = 0x83000409,
VOICE_ALL                             = 0x8300040A,
VOICE_RECORDMUTE                      = 0x8300040B,
VOICE_PLAYBACKMUTE                    = 0x8300040C,
VOICE_TRANSMIT                        = 0x8300040D,

VOICE_VOICECOMMAND                    = 0x83000410,


/*--- Driving Simulator - Racing
      Vehicle control is primary objective  ---*/
AXIS_DRIVINGR_STEER                   = 0x01008A01, /* Steering */
AXIS_DRIVINGR_ACCELERATE              = 0x01039202, /* Accelerate */
AXIS_DRIVINGR_BRAKE                   = 0x01041203, /* Brake-Axis */
BUTTON_DRIVINGR_SHIFTUP               = 0x01000C01, /* Shift to next higher gear */
BUTTON_DRIVINGR_SHIFTDOWN             = 0x01000C02, /* Shift to next lower gear */
BUTTON_DRIVINGR_VIEW                  = 0x01001C03, /* Cycle through view options */
BUTTON_DRIVINGR_MENU                  = 0x010004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

AXIS_DRIVINGR_ACCEL_AND_BRAKE         = 0x01014A04, /* Some devices combine accelerate and brake in a single axis */
HATSWITCH_DRIVINGR_GLANCE             = 0x01004601, /* Look around */
BUTTON_DRIVINGR_BRAKE                 = 0x01004C04, /* Brake-button */
BUTTON_DRIVINGR_DASHBOARD             = 0x01004405, /* Select next dashboard option */
BUTTON_DRIVINGR_AIDS                  = 0x01004406, /* Driver correction aids */
BUTTON_DRIVINGR_MAP                   = 0x01004407, /* Display Driving Map */
BUTTON_DRIVINGR_BOOST                 = 0x01004408, /* Turbo Boost */
BUTTON_DRIVINGR_PIT                   = 0x01004409, /* Pit stop notification */
BUTTON_DRIVINGR_ACCELERATE_LINK       = 0x0103D4E0, /* Fallback Accelerate button */
BUTTON_DRIVINGR_STEER_LEFT_LINK       = 0x0100CCE4, /* Fallback Steer Left button */
BUTTON_DRIVINGR_STEER_RIGHT_LINK      = 0x0100CCEC, /* Fallback Steer Right button */
BUTTON_DRIVINGR_GLANCE_LEFT_LINK      = 0x0107C4E4, /* Fallback Glance Left button */
BUTTON_DRIVINGR_GLANCE_RIGHT_LINK     = 0x0107C4EC, /* Fallback Glance Right button */
BUTTON_DRIVINGR_DEVICE                = 0x010044FE, /* Show input device and controls */
BUTTON_DRIVINGR_PAUSE                 = 0x010044FC, /* Start / Pause / Restart game */

/*--- Driving Simulator - Combat
      Combat from within a vehicle is primary objective  ---*/
AXIS_DRIVINGC_STEER                   = 0x02008A01, /* Steering  */
AXIS_DRIVINGC_ACCELERATE              = 0x02039202, /* Accelerate */
AXIS_DRIVINGC_BRAKE                   = 0x02041203, /* Brake-axis */
BUTTON_DRIVINGC_FIRE                  = 0x02000C01, /* Fire */
BUTTON_DRIVINGC_WEAPONS               = 0x02000C02, /* Select next weapon */
BUTTON_DRIVINGC_TARGET                = 0x02000C03, /* Select next available target */
BUTTON_DRIVINGC_MENU                  = 0x020004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

AXIS_DRIVINGC_ACCEL_AND_BRAKE         = 0x02014A04, /* Some devices combine accelerate and brake in a single axis */
HATSWITCH_DRIVINGC_GLANCE             = 0x02004601, /* Look around */
BUTTON_DRIVINGC_SHIFTUP               = 0x02004C04, /* Shift to next higher gear */
BUTTON_DRIVINGC_SHIFTDOWN             = 0x02004C05, /* Shift to next lower gear */
BUTTON_DRIVINGC_DASHBOARD             = 0x02004406, /* Select next dashboard option */
BUTTON_DRIVINGC_AIDS                  = 0x02004407, /* Driver correction aids */
BUTTON_DRIVINGC_BRAKE                 = 0x02004C08, /* Brake-button */
BUTTON_DRIVINGC_FIRESECONDARY         = 0x02004C09, /* Alternative fire button */
BUTTON_DRIVINGC_ACCELERATE_LINK       = 0x0203D4E0, /* Fallback Accelerate button */
BUTTON_DRIVINGC_STEER_LEFT_LINK       = 0x0200CCE4, /* Fallback Steer Left button */
BUTTON_DRIVINGC_STEER_RIGHT_LINK      = 0x0200CCEC, /* Fallback Steer Right button */
BUTTON_DRIVINGC_GLANCE_LEFT_LINK      = 0x0207C4E4, /* Fallback Glance Left button */
BUTTON_DRIVINGC_GLANCE_RIGHT_LINK     = 0x0207C4EC, /* Fallback Glance Right button */
BUTTON_DRIVINGC_DEVICE                = 0x020044FE, /* Show input device and controls */
BUTTON_DRIVINGC_PAUSE                 = 0x020044FC, /* Start / Pause / Restart game */

/*--- Driving Simulator - Tank
      Combat from withing a tank is primary objective  ---*/
AXIS_DRIVINGT_STEER                   = 0x03008A01, /* Turn tank left / right */
AXIS_DRIVINGT_BARREL                  = 0x03010202, /* Raise / lower barrel */
AXIS_DRIVINGT_ACCELERATE              = 0x03039203, /* Accelerate */
AXIS_DRIVINGT_ROTATE                  = 0x03020204, /* Turn barrel left / right */
BUTTON_DRIVINGT_FIRE                  = 0x03000C01, /* Fire */
BUTTON_DRIVINGT_WEAPONS               = 0x03000C02, /* Select next weapon */
BUTTON_DRIVINGT_TARGET                = 0x03000C03, /* Selects next available target */
BUTTON_DRIVINGT_MENU                  = 0x030004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_DRIVINGT_GLANCE             = 0x03004601, /* Look around */
AXIS_DRIVINGT_BRAKE                   = 0x03045205, /* Brake-axis */
AXIS_DRIVINGT_ACCEL_AND_BRAKE         = 0x03014A06, /* Some devices combine accelerate and brake in a single axis */
BUTTON_DRIVINGT_VIEW                  = 0x03005C04, /* Cycle through view options */
BUTTON_DRIVINGT_DASHBOARD             = 0x03005C05, /* Select next dashboard option */
BUTTON_DRIVINGT_BRAKE                 = 0x03004C06, /* Brake-button */
BUTTON_DRIVINGT_FIRESECONDARY         = 0x03004C07, /* Alternative fire button */
BUTTON_DRIVINGT_ACCELERATE_LINK       = 0x0303D4E0, /* Fallback Accelerate button */
BUTTON_DRIVINGT_STEER_LEFT_LINK       = 0x0300CCE4, /* Fallback Steer Left button */
BUTTON_DRIVINGT_STEER_RIGHT_LINK      = 0x0300CCEC, /* Fallback Steer Right button */
BUTTON_DRIVINGT_BARREL_UP_LINK        = 0x030144E0, /* Fallback Barrel up button */
BUTTON_DRIVINGT_BARREL_DOWN_LINK      = 0x030144E8, /* Fallback Barrel down button */
BUTTON_DRIVINGT_ROTATE_LEFT_LINK      = 0x030244E4, /* Fallback Rotate left button */
BUTTON_DRIVINGT_ROTATE_RIGHT_LINK     = 0x030244EC, /* Fallback Rotate right button */
BUTTON_DRIVINGT_GLANCE_LEFT_LINK      = 0x0307C4E4, /* Fallback Glance Left button */
BUTTON_DRIVINGT_GLANCE_RIGHT_LINK     = 0x0307C4EC, /* Fallback Glance Right button */
BUTTON_DRIVINGT_DEVICE                = 0x030044FE, /* Show input device and controls */
BUTTON_DRIVINGT_PAUSE                 = 0x030044FC, /* Start / Pause / Restart game */

/*--- Flight Simulator - Civilian 
      Plane control is the primary objective  ---*/
AXIS_FLYINGC_BANK                     = 0x04008A01, /* Roll ship left / right */
AXIS_FLYINGC_PITCH                    = 0x04010A02, /* Nose up / down */
AXIS_FLYINGC_THROTTLE                 = 0x04039203, /* Throttle */
BUTTON_FLYINGC_VIEW                   = 0x04002401, /* Cycle through view options */
BUTTON_FLYINGC_DISPLAY                = 0x04002402, /* Select next dashboard / heads up display option */
BUTTON_FLYINGC_GEAR                   = 0x04002C03, /* Gear up / down */
BUTTON_FLYINGC_MENU                   = 0x040004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_FLYINGC_GLANCE              = 0x04004601, /* Look around */
AXIS_FLYINGC_BRAKE                    = 0x04046A04, /* Apply Brake */
AXIS_FLYINGC_RUDDER                   = 0x04025205, /* Yaw ship left/right */
AXIS_FLYINGC_FLAPS                    = 0x04055A06, /* Flaps */
BUTTON_FLYINGC_FLAPSUP                = 0x04006404, /* Increment stepping up until fully retracted */
BUTTON_FLYINGC_FLAPSDOWN              = 0x04006405, /* Decrement stepping down until fully extended */
BUTTON_FLYINGC_BRAKE_LINK             = 0x04046CE0, /* Fallback brake button */
BUTTON_FLYINGC_FASTER_LINK            = 0x0403D4E0, /* Fallback throttle up button */
BUTTON_FLYINGC_SLOWER_LINK            = 0x0403D4E8, /* Fallback throttle down button */
BUTTON_FLYINGC_GLANCE_LEFT_LINK       = 0x0407C4E4, /* Fallback Glance Left button */
BUTTON_FLYINGC_GLANCE_RIGHT_LINK      = 0x0407C4EC, /* Fallback Glance Right button */
BUTTON_FLYINGC_GLANCE_UP_LINK         = 0x0407C4E0, /* Fallback Glance Up button */
BUTTON_FLYINGC_GLANCE_DOWN_LINK       = 0x0407C4E8, /* Fallback Glance Down button */
BUTTON_FLYINGC_DEVICE                 = 0x040044FE, /* Show input device and controls */
BUTTON_FLYINGC_PAUSE                  = 0x040044FC, /* Start / Pause / Restart game */

/*--- Flight Simulator - Military 
      Aerial combat is the primary objective  ---*/
AXIS_FLYINGM_BANK                     = 0x05008A01, /* Bank - Roll ship left / right */
AXIS_FLYINGM_PITCH                    = 0x05010A02, /* Pitch - Nose up / down */
AXIS_FLYINGM_THROTTLE                 = 0x05039203, /* Throttle - faster / slower */
BUTTON_FLYINGM_FIRE                   = 0x05000C01, /* Fire */
BUTTON_FLYINGM_WEAPONS                = 0x05000C02, /* Select next weapon */
BUTTON_FLYINGM_TARGET                 = 0x05000C03, /* Selects next available target */
BUTTON_FLYINGM_MENU                   = 0x050004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_FLYINGM_GLANCE              = 0x05004601, /* Look around */
BUTTON_FLYINGM_COUNTER                = 0x05005C04, /* Activate counter measures */
AXIS_FLYINGM_RUDDER                   = 0x05024A04, /* Rudder - Yaw ship left/right */
AXIS_FLYINGM_BRAKE                    = 0x05046205, /* Brake-axis */
BUTTON_FLYINGM_VIEW                   = 0x05006405, /* Cycle through view options */
BUTTON_FLYINGM_DISPLAY                = 0x05006406, /* Select next dashboard option */
AXIS_FLYINGM_FLAPS                    = 0x05055206, /* Flaps */
BUTTON_FLYINGM_FLAPSUP                = 0x05005407, /* Increment stepping up until fully retracted */
BUTTON_FLYINGM_FLAPSDOWN              = 0x05005408, /* Decrement stepping down until fully extended */
BUTTON_FLYINGM_FIRESECONDARY          = 0x05004C09, /* Alternative fire button */
BUTTON_FLYINGM_GEAR                   = 0x0500640A, /* Gear up / down */
BUTTON_FLYINGM_BRAKE_LINK             = 0x050464E0, /* Fallback brake button */
BUTTON_FLYINGM_FASTER_LINK            = 0x0503D4E0, /* Fallback throttle up button */
BUTTON_FLYINGM_SLOWER_LINK            = 0x0503D4E8, /* Fallback throttle down button */
BUTTON_FLYINGM_GLANCE_LEFT_LINK       = 0x0507C4E4, /* Fallback Glance Left button */
BUTTON_FLYINGM_GLANCE_RIGHT_LINK      = 0x0507C4EC, /* Fallback Glance Right button */
BUTTON_FLYINGM_GLANCE_UP_LINK         = 0x0507C4E0, /* Fallback Glance Up button */
BUTTON_FLYINGM_GLANCE_DOWN_LINK       = 0x0507C4E8, /* Fallback Glance Down button */
BUTTON_FLYINGM_DEVICE                 = 0x050044FE, /* Show input device and controls */
BUTTON_FLYINGM_PAUSE                  = 0x050044FC, /* Start / Pause / Restart game */

/*--- Flight Simulator - Combat Helicopter
      Combat from helicopter is primary objective  ---*/
AXIS_FLYINGH_BANK                     = 0x06008A01, /* Bank - Roll ship left / right */
AXIS_FLYINGH_PITCH                    = 0x06010A02, /* Pitch - Nose up / down */
AXIS_FLYINGH_COLLECTIVE               = 0x06018A03, /* Collective - Blade pitch/power */
BUTTON_FLYINGH_FIRE                   = 0x06001401, /* Fire */
BUTTON_FLYINGH_WEAPONS                = 0x06001402, /* Select next weapon */
BUTTON_FLYINGH_TARGET                 = 0x06001403, /* Selects next available target */
BUTTON_FLYINGH_MENU                   = 0x060004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_FLYINGH_GLANCE              = 0x06004601, /* Look around */
AXIS_FLYINGH_TORQUE                   = 0x06025A04, /* Torque - Rotate ship around left / right axis */
AXIS_FLYINGH_THROTTLE                 = 0x0603DA05, /* Throttle */
BUTTON_FLYINGH_COUNTER                = 0x06005404, /* Activate counter measures */
BUTTON_FLYINGH_VIEW                   = 0x06006405, /* Cycle through view options */
BUTTON_FLYINGH_GEAR                   = 0x06006406, /* Gear up / down */
BUTTON_FLYINGH_FIRESECONDARY          = 0x06004C07, /* Alternative fire button */
BUTTON_FLYINGH_FASTER_LINK            = 0x0603DCE0, /* Fallback throttle up button */
BUTTON_FLYINGH_SLOWER_LINK            = 0x0603DCE8, /* Fallback throttle down button */
BUTTON_FLYINGH_GLANCE_LEFT_LINK       = 0x0607C4E4, /* Fallback Glance Left button */
BUTTON_FLYINGH_GLANCE_RIGHT_LINK      = 0x0607C4EC, /* Fallback Glance Right button */
BUTTON_FLYINGH_GLANCE_UP_LINK         = 0x0607C4E0, /* Fallback Glance Up button */
BUTTON_FLYINGH_GLANCE_DOWN_LINK       = 0x0607C4E8, /* Fallback Glance Down button */
BUTTON_FLYINGH_DEVICE                 = 0x060044FE, /* Show input device and controls */
BUTTON_FLYINGH_PAUSE                  = 0x060044FC, /* Start / Pause / Restart game */

/*--- Space Simulator - Combat
      Space Simulator with weapons  ---*/
AXIS_SPACESIM_LATERAL                 = 0x07008201, /* Move ship left / right */
AXIS_SPACESIM_MOVE                    = 0x07010202, /* Move ship forward/backward */
AXIS_SPACESIM_THROTTLE                = 0x07038203, /* Throttle - Engine speed */
BUTTON_SPACESIM_FIRE                  = 0x07000401, /* Fire */
BUTTON_SPACESIM_WEAPONS               = 0x07000402, /* Select next weapon */
BUTTON_SPACESIM_TARGET                = 0x07000403, /* Selects next available target */
BUTTON_SPACESIM_MENU                  = 0x070004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_SPACESIM_GLANCE             = 0x07004601, /* Look around */
AXIS_SPACESIM_CLIMB                   = 0x0701C204, /* Climb - Pitch ship up/down */
AXIS_SPACESIM_ROTATE                  = 0x07024205, /* Rotate - Turn ship left/right */
BUTTON_SPACESIM_VIEW                  = 0x07004404, /* Cycle through view options */
BUTTON_SPACESIM_DISPLAY               = 0x07004405, /* Select next dashboard / heads up display option */
BUTTON_SPACESIM_RAISE                 = 0x07004406, /* Raise ship while maintaining current pitch */
BUTTON_SPACESIM_LOWER                 = 0x07004407, /* Lower ship while maintaining current pitch */
BUTTON_SPACESIM_GEAR                  = 0x07004408, /* Gear up / down */
BUTTON_SPACESIM_FIRESECONDARY         = 0x07004409, /* Alternative fire button */
BUTTON_SPACESIM_LEFT_LINK             = 0x0700C4E4, /* Fallback move left button */
BUTTON_SPACESIM_RIGHT_LINK            = 0x0700C4EC, /* Fallback move right button */
BUTTON_SPACESIM_FORWARD_LINK          = 0x070144E0, /* Fallback move forward button */
BUTTON_SPACESIM_BACKWARD_LINK         = 0x070144E8, /* Fallback move backwards button */
BUTTON_SPACESIM_FASTER_LINK           = 0x0703C4E0, /* Fallback throttle up button */
BUTTON_SPACESIM_SLOWER_LINK           = 0x0703C4E8, /* Fallback throttle down button */
BUTTON_SPACESIM_TURN_LEFT_LINK        = 0x070244E4, /* Fallback turn left button */
BUTTON_SPACESIM_TURN_RIGHT_LINK       = 0x070244EC, /* Fallback turn right button */
BUTTON_SPACESIM_GLANCE_LEFT_LINK      = 0x0707C4E4, /* Fallback Glance Left button */
BUTTON_SPACESIM_GLANCE_RIGHT_LINK     = 0x0707C4EC, /* Fallback Glance Right button */
BUTTON_SPACESIM_GLANCE_UP_LINK        = 0x0707C4E0, /* Fallback Glance Up button */
BUTTON_SPACESIM_GLANCE_DOWN_LINK      = 0x0707C4E8, /* Fallback Glance Down button */
BUTTON_SPACESIM_DEVICE                = 0x070044FE, /* Show input device and controls */
BUTTON_SPACESIM_PAUSE                 = 0x070044FC, /* Start / Pause / Restart game */

/*--- Fighting - First Person 
      Hand to Hand combat is primary objective  ---*/
AXIS_FIGHTINGH_LATERAL                = 0x08008201, /* Sidestep left/right */
AXIS_FIGHTINGH_MOVE                   = 0x08010202, /* Move forward/backward */
BUTTON_FIGHTINGH_PUNCH                = 0x08000401, /* Punch */
BUTTON_FIGHTINGH_KICK                 = 0x08000402, /* Kick */
BUTTON_FIGHTINGH_BLOCK                = 0x08000403, /* Block */
BUTTON_FIGHTINGH_CROUCH               = 0x08000404, /* Crouch */
BUTTON_FIGHTINGH_JUMP                 = 0x08000405, /* Jump */
BUTTON_FIGHTINGH_SPECIAL1             = 0x08000406, /* Apply first special move */
BUTTON_FIGHTINGH_SPECIAL2             = 0x08000407, /* Apply second special move */
BUTTON_FIGHTINGH_MENU                 = 0x080004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_FIGHTINGH_SELECT               = 0x08004408, /* Select special move */
HATSWITCH_FIGHTINGH_SLIDE             = 0x08004601, /* Look around */
BUTTON_FIGHTINGH_DISPLAY              = 0x08004409, /* Shows next on-screen display option */
AXIS_FIGHTINGH_ROTATE                 = 0x08024203, /* Rotate - Turn body left/right */
BUTTON_FIGHTINGH_DODGE                = 0x0800440A, /* Dodge */
BUTTON_FIGHTINGH_LEFT_LINK            = 0x0800C4E4, /* Fallback left sidestep button */
BUTTON_FIGHTINGH_RIGHT_LINK           = 0x0800C4EC, /* Fallback right sidestep button */
BUTTON_FIGHTINGH_FORWARD_LINK         = 0x080144E0, /* Fallback forward button */
BUTTON_FIGHTINGH_BACKWARD_LINK        = 0x080144E8, /* Fallback backward button */
BUTTON_FIGHTINGH_DEVICE               = 0x080044FE, /* Show input device and controls */
BUTTON_FIGHTINGH_PAUSE                = 0x080044FC, /* Start / Pause / Restart game */

/*--- Fighting - First Person Shooting
      Navigation and combat are primary objectives  ---*/
AXIS_FPS_ROTATE                       = 0x09008201, /* Rotate character left/right */
AXIS_FPS_MOVE                         = 0x09010202, /* Move forward/backward */
BUTTON_FPS_FIRE                       = 0x09000401, /* Fire */
BUTTON_FPS_WEAPONS                    = 0x09000402, /* Select next weapon */
BUTTON_FPS_APPLY                      = 0x09000403, /* Use item */
BUTTON_FPS_SELECT                     = 0x09000404, /* Select next inventory item */
BUTTON_FPS_CROUCH                     = 0x09000405, /* Crouch/ climb down/ swim down */
BUTTON_FPS_JUMP                       = 0x09000406, /* Jump/ climb up/ swim up */
AXIS_FPS_LOOKUPDOWN                   = 0x09018203, /* Look up / down  */
BUTTON_FPS_STRAFE                     = 0x09000407, /* Enable strafing while active */
BUTTON_FPS_MENU                       = 0x090004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_FPS_GLANCE                  = 0x09004601, /* Look around */
BUTTON_FPS_DISPLAY                    = 0x09004408, /* Shows next on-screen display option/ map */
AXIS_FPS_SIDESTEP                     = 0x09024204, /* Sidestep */
BUTTON_FPS_DODGE                      = 0x09004409, /* Dodge */
BUTTON_FPS_GLANCEL                    = 0x0900440A, /* Glance Left */
BUTTON_FPS_GLANCER                    = 0x0900440B, /* Glance Right */
BUTTON_FPS_FIRESECONDARY              = 0x0900440C, /* Alternative fire button */
BUTTON_FPS_ROTATE_LEFT_LINK           = 0x0900C4E4, /* Fallback rotate left button */
BUTTON_FPS_ROTATE_RIGHT_LINK          = 0x0900C4EC, /* Fallback rotate right button */
BUTTON_FPS_FORWARD_LINK               = 0x090144E0, /* Fallback forward button */
BUTTON_FPS_BACKWARD_LINK              = 0x090144E8, /* Fallback backward button */
BUTTON_FPS_GLANCE_UP_LINK             = 0x0901C4E0, /* Fallback look up button */
BUTTON_FPS_GLANCE_DOWN_LINK           = 0x0901C4E8, /* Fallback look down button */
BUTTON_FPS_STEP_LEFT_LINK             = 0x090244E4, /* Fallback step left button */
BUTTON_FPS_STEP_RIGHT_LINK            = 0x090244EC, /* Fallback step right button */
BUTTON_FPS_DEVICE                     = 0x090044FE, /* Show input device and controls */
BUTTON_FPS_PAUSE                      = 0x090044FC, /* Start / Pause / Restart game */

/*--- Fighting - Third Person action
      Perspective of camera is behind the main character  ---*/
AXIS_TPS_TURN                         = 0x0A020201, /* Turn left/right */
AXIS_TPS_MOVE                         = 0x0A010202, /* Move forward/backward */
BUTTON_TPS_RUN                        = 0x0A000401, /* Run or walk toggle switch */
BUTTON_TPS_ACTION                     = 0x0A000402, /* Action Button */
BUTTON_TPS_SELECT                     = 0x0A000403, /* Select next weapon */
BUTTON_TPS_USE                        = 0x0A000404, /* Use inventory item currently selected */
BUTTON_TPS_JUMP                       = 0x0A000405, /* Character Jumps */
BUTTON_TPS_MENU                       = 0x0A0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_TPS_GLANCE                  = 0x0A004601, /* Look around */
BUTTON_TPS_VIEW                       = 0x0A004406, /* Select camera view */
BUTTON_TPS_STEPLEFT                   = 0x0A004407, /* Character takes a left step */
BUTTON_TPS_STEPRIGHT                  = 0x0A004408, /* Character takes a right step */
AXIS_TPS_STEP                         = 0x0A00C203, /* Character steps left/right */
BUTTON_TPS_DODGE                      = 0x0A004409, /* Character dodges or ducks */
BUTTON_TPS_INVENTORY                  = 0x0A00440A, /* Cycle through inventory */
BUTTON_TPS_TURN_LEFT_LINK             = 0x0A0244E4, /* Fallback turn left button */
BUTTON_TPS_TURN_RIGHT_LINK            = 0x0A0244EC, /* Fallback turn right button */
BUTTON_TPS_FORWARD_LINK               = 0x0A0144E0, /* Fallback forward button */
BUTTON_TPS_BACKWARD_LINK              = 0x0A0144E8, /* Fallback backward button */
BUTTON_TPS_GLANCE_UP_LINK             = 0x0A07C4E0, /* Fallback look up button */
BUTTON_TPS_GLANCE_DOWN_LINK           = 0x0A07C4E8, /* Fallback look down button */
BUTTON_TPS_GLANCE_LEFT_LINK           = 0x0A07C4E4, /* Fallback glance up button */
BUTTON_TPS_GLANCE_RIGHT_LINK          = 0x0A07C4EC, /* Fallback glance right button */
BUTTON_TPS_DEVICE                     = 0x0A0044FE, /* Show input device and controls */
BUTTON_TPS_PAUSE                      = 0x0A0044FC, /* Start / Pause / Restart game */

/*--- Strategy - Role Playing
      Navigation and problem solving are primary actions  ---*/
AXIS_STRATEGYR_LATERAL                = 0x0B008201, /* sidestep - left/right */
AXIS_STRATEGYR_MOVE                   = 0x0B010202, /* move forward/backward */
BUTTON_STRATEGYR_GET                  = 0x0B000401, /* Acquire item */
BUTTON_STRATEGYR_APPLY                = 0x0B000402, /* Use selected item */
BUTTON_STRATEGYR_SELECT               = 0x0B000403, /* Select nextitem */
BUTTON_STRATEGYR_ATTACK               = 0x0B000404, /* Attack */
BUTTON_STRATEGYR_CAST                 = 0x0B000405, /* Cast Spell */
BUTTON_STRATEGYR_CROUCH               = 0x0B000406, /* Crouch */
BUTTON_STRATEGYR_JUMP                 = 0x0B000407, /* Jump */
BUTTON_STRATEGYR_MENU                 = 0x0B0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_STRATEGYR_GLANCE            = 0x0B004601, /* Look around */
BUTTON_STRATEGYR_MAP                  = 0x0B004408, /* Cycle through map options */
BUTTON_STRATEGYR_DISPLAY              = 0x0B004409, /* Shows next on-screen display option */
AXIS_STRATEGYR_ROTATE                 = 0x0B024203, /* Turn body left/right */
BUTTON_STRATEGYR_LEFT_LINK            = 0x0B00C4E4, /* Fallback sidestep left button */
BUTTON_STRATEGYR_RIGHT_LINK           = 0x0B00C4EC, /* Fallback sidestep right button */
BUTTON_STRATEGYR_FORWARD_LINK         = 0x0B0144E0, /* Fallback move forward button */
BUTTON_STRATEGYR_BACK_LINK            = 0x0B0144E8, /* Fallback move backward button */
BUTTON_STRATEGYR_ROTATE_LEFT_LINK     = 0x0B0244E4, /* Fallback turn body left button */
BUTTON_STRATEGYR_ROTATE_RIGHT_LINK    = 0x0B0244EC, /* Fallback turn body right button */
BUTTON_STRATEGYR_DEVICE               = 0x0B0044FE, /* Show input device and controls */
BUTTON_STRATEGYR_PAUSE                = 0x0B0044FC, /* Start / Pause / Restart game */

/*--- Strategy - Turn based
      Navigation and problem solving are primary actions  ---*/
AXIS_STRATEGYT_LATERAL                = 0x0C008201, /* Sidestep left/right */
AXIS_STRATEGYT_MOVE                   = 0x0C010202, /* Move forward/backwards */
BUTTON_STRATEGYT_SELECT               = 0x0C000401, /* Select unit or object */
BUTTON_STRATEGYT_INSTRUCT             = 0x0C000402, /* Cycle through instructions */
BUTTON_STRATEGYT_APPLY                = 0x0C000403, /* Apply selected instruction */
BUTTON_STRATEGYT_TEAM                 = 0x0C000404, /* Select next team / cycle through all */
BUTTON_STRATEGYT_TURN                 = 0x0C000405, /* Indicate turn over */
BUTTON_STRATEGYT_MENU                 = 0x0C0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_STRATEGYT_ZOOM                 = 0x0C004406, /* Zoom - in / out */
BUTTON_STRATEGYT_MAP                  = 0x0C004407, /* cycle through map options */
BUTTON_STRATEGYT_DISPLAY              = 0x0C004408, /* shows next on-screen display options */
BUTTON_STRATEGYT_LEFT_LINK            = 0x0C00C4E4, /* Fallback sidestep left button */
BUTTON_STRATEGYT_RIGHT_LINK           = 0x0C00C4EC, /* Fallback sidestep right button */
BUTTON_STRATEGYT_FORWARD_LINK         = 0x0C0144E0, /* Fallback move forward button */
BUTTON_STRATEGYT_BACK_LINK            = 0x0C0144E8, /* Fallback move back button */
BUTTON_STRATEGYT_DEVICE               = 0x0C0044FE, /* Show input device and controls */
BUTTON_STRATEGYT_PAUSE                = 0x0C0044FC, /* Start / Pause / Restart game */

/*--- Sports - Hunting
      Hunting                ---*/
AXIS_HUNTING_LATERAL                  = 0x0D008201, /* sidestep left/right */
AXIS_HUNTING_MOVE                     = 0x0D010202, /* move forward/backwards */
BUTTON_HUNTING_FIRE                   = 0x0D000401, /* Fire selected weapon */
BUTTON_HUNTING_AIM                    = 0x0D000402, /* Select aim/move */
BUTTON_HUNTING_WEAPON                 = 0x0D000403, /* Select next weapon */
BUTTON_HUNTING_BINOCULAR              = 0x0D000404, /* Look through Binoculars */
BUTTON_HUNTING_CALL                   = 0x0D000405, /* Make animal call */
BUTTON_HUNTING_MAP                    = 0x0D000406, /* View Map */
BUTTON_HUNTING_SPECIAL                = 0x0D000407, /* Special game operation */
BUTTON_HUNTING_MENU                   = 0x0D0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_HUNTING_GLANCE              = 0x0D004601, /* Look around */
BUTTON_HUNTING_DISPLAY                = 0x0D004408, /* show next on-screen display option */
AXIS_HUNTING_ROTATE                   = 0x0D024203, /* Turn body left/right */
BUTTON_HUNTING_CROUCH                 = 0x0D004409, /* Crouch/ Climb / Swim down */
BUTTON_HUNTING_JUMP                   = 0x0D00440A, /* Jump/ Climb up / Swim up */
BUTTON_HUNTING_FIRESECONDARY          = 0x0D00440B, /* Alternative fire button */
BUTTON_HUNTING_LEFT_LINK              = 0x0D00C4E4, /* Fallback sidestep left button */
BUTTON_HUNTING_RIGHT_LINK             = 0x0D00C4EC, /* Fallback sidestep right button */
BUTTON_HUNTING_FORWARD_LINK           = 0x0D0144E0, /* Fallback move forward button */
BUTTON_HUNTING_BACK_LINK              = 0x0D0144E8, /* Fallback move back button */
BUTTON_HUNTING_ROTATE_LEFT_LINK       = 0x0D0244E4, /* Fallback turn body left button */
BUTTON_HUNTING_ROTATE_RIGHT_LINK      = 0x0D0244EC, /* Fallback turn body right button */
BUTTON_HUNTING_DEVICE                 = 0x0D0044FE, /* Show input device and controls */
BUTTON_HUNTING_PAUSE                  = 0x0D0044FC, /* Start / Pause / Restart game */

/*--- Sports - Fishing
      Catching Fish is primary objective   ---*/
AXIS_FISHING_LATERAL                  = 0x0E008201, /* sidestep left/right */
AXIS_FISHING_MOVE                     = 0x0E010202, /* move forward/backwards */
BUTTON_FISHING_CAST                   = 0x0E000401, /* Cast line */
BUTTON_FISHING_TYPE                   = 0x0E000402, /* Select cast type */
BUTTON_FISHING_BINOCULAR              = 0x0E000403, /* Look through Binocular */
BUTTON_FISHING_BAIT                   = 0x0E000404, /* Select type of Bait */
BUTTON_FISHING_MAP                    = 0x0E000405, /* View Map */
BUTTON_FISHING_MENU                   = 0x0E0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_FISHING_GLANCE              = 0x0E004601, /* Look around */
BUTTON_FISHING_DISPLAY                = 0x0E004406, /* Show next on-screen display option */
AXIS_FISHING_ROTATE                   = 0x0E024203, /* Turn character left / right */
BUTTON_FISHING_CROUCH                 = 0x0E004407, /* Crouch/ Climb / Swim down */
BUTTON_FISHING_JUMP                   = 0x0E004408, /* Jump/ Climb up / Swim up */
BUTTON_FISHING_LEFT_LINK              = 0x0E00C4E4, /* Fallback sidestep left button */
BUTTON_FISHING_RIGHT_LINK             = 0x0E00C4EC, /* Fallback sidestep right button */
BUTTON_FISHING_FORWARD_LINK           = 0x0E0144E0, /* Fallback move forward button */
BUTTON_FISHING_BACK_LINK              = 0x0E0144E8, /* Fallback move back button */
BUTTON_FISHING_ROTATE_LEFT_LINK       = 0x0E0244E4, /* Fallback turn body left button */
BUTTON_FISHING_ROTATE_RIGHT_LINK      = 0x0E0244EC, /* Fallback turn body right button */
BUTTON_FISHING_DEVICE                 = 0x0E0044FE, /* Show input device and controls */
BUTTON_FISHING_PAUSE                  = 0x0E0044FC, /* Start / Pause / Restart game */

/*--- Sports - Baseball - Batting
      Batter control is primary objective  ---*/
AXIS_BASEBALLB_LATERAL                = 0x0F008201, /* Aim left / right */
AXIS_BASEBALLB_MOVE                   = 0x0F010202, /* Aim up / down */
BUTTON_BASEBALLB_SELECT               = 0x0F000401, /* cycle through swing options */
BUTTON_BASEBALLB_NORMAL               = 0x0F000402, /* normal swing */
BUTTON_BASEBALLB_POWER                = 0x0F000403, /* swing for the fence */
BUTTON_BASEBALLB_BUNT                 = 0x0F000404, /* bunt */
BUTTON_BASEBALLB_STEAL                = 0x0F000405, /* Base runner attempts to steal a base */
BUTTON_BASEBALLB_BURST                = 0x0F000406, /* Base runner invokes burst of speed */
BUTTON_BASEBALLB_SLIDE                = 0x0F000407, /* Base runner slides into base */
BUTTON_BASEBALLB_CONTACT              = 0x0F000408, /* Contact swing */
BUTTON_BASEBALLB_MENU                 = 0x0F0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_BASEBALLB_NOSTEAL              = 0x0F004409, /* Base runner goes back to a base */
BUTTON_BASEBALLB_BOX                  = 0x0F00440A, /* Enter or exit batting box */
BUTTON_BASEBALLB_LEFT_LINK            = 0x0F00C4E4, /* Fallback sidestep left button */
BUTTON_BASEBALLB_RIGHT_LINK           = 0x0F00C4EC, /* Fallback sidestep right button */
BUTTON_BASEBALLB_FORWARD_LINK         = 0x0F0144E0, /* Fallback move forward button */
BUTTON_BASEBALLB_BACK_LINK            = 0x0F0144E8, /* Fallback move back button */
BUTTON_BASEBALLB_DEVICE               = 0x0F0044FE, /* Show input device and controls */
BUTTON_BASEBALLB_PAUSE                = 0x0F0044FC, /* Start / Pause / Restart game */

/*--- Sports - Baseball - Pitching
      Pitcher control is primary objective   ---*/
AXIS_BASEBALLP_LATERAL                = 0x10008201, /* Aim left / right */
AXIS_BASEBALLP_MOVE                   = 0x10010202, /* Aim up / down */
BUTTON_BASEBALLP_SELECT               = 0x10000401, /* cycle through pitch selections */
BUTTON_BASEBALLP_PITCH                = 0x10000402, /* throw pitch */
BUTTON_BASEBALLP_BASE                 = 0x10000403, /* select base to throw to */
BUTTON_BASEBALLP_THROW                = 0x10000404, /* throw to base */
BUTTON_BASEBALLP_FAKE                 = 0x10000405, /* Fake a throw to a base */
BUTTON_BASEBALLP_MENU                 = 0x100004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_BASEBALLP_WALK                 = 0x10004406, /* Throw intentional walk / pitch out */
BUTTON_BASEBALLP_LOOK                 = 0x10004407, /* Look at runners on bases */
BUTTON_BASEBALLP_LEFT_LINK            = 0x1000C4E4, /* Fallback sidestep left button */
BUTTON_BASEBALLP_RIGHT_LINK           = 0x1000C4EC, /* Fallback sidestep right button */
BUTTON_BASEBALLP_FORWARD_LINK         = 0x100144E0, /* Fallback move forward button */
BUTTON_BASEBALLP_BACK_LINK            = 0x100144E8, /* Fallback move back button */
BUTTON_BASEBALLP_DEVICE               = 0x100044FE, /* Show input device and controls */
BUTTON_BASEBALLP_PAUSE                = 0x100044FC, /* Start / Pause / Restart game */

/*--- Sports - Baseball - Fielding
      Fielder control is primary objective  ---*/
AXIS_BASEBALLF_LATERAL                = 0x11008201, /* Aim left / right */
AXIS_BASEBALLF_MOVE                   = 0x11010202, /* Aim up / down */
BUTTON_BASEBALLF_NEAREST              = 0x11000401, /* Switch to fielder nearest to the ball */
BUTTON_BASEBALLF_THROW1               = 0x11000402, /* Make conservative throw */
BUTTON_BASEBALLF_THROW2               = 0x11000403, /* Make aggressive throw */
BUTTON_BASEBALLF_BURST                = 0x11000404, /* Invoke burst of speed */
BUTTON_BASEBALLF_JUMP                 = 0x11000405, /* Jump to catch ball */
BUTTON_BASEBALLF_DIVE                 = 0x11000406, /* Dive to catch ball */
BUTTON_BASEBALLF_MENU                 = 0x110004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_BASEBALLF_SHIFTIN              = 0x11004407, /* Shift the infield positioning */
BUTTON_BASEBALLF_SHIFTOUT             = 0x11004408, /* Shift the outfield positioning */
BUTTON_BASEBALLF_AIM_LEFT_LINK        = 0x1100C4E4, /* Fallback aim left button */
BUTTON_BASEBALLF_AIM_RIGHT_LINK       = 0x1100C4EC, /* Fallback aim right button */
BUTTON_BASEBALLF_FORWARD_LINK         = 0x110144E0, /* Fallback move forward button */
BUTTON_BASEBALLF_BACK_LINK            = 0x110144E8, /* Fallback move back button */
BUTTON_BASEBALLF_DEVICE               = 0x110044FE, /* Show input device and controls */
BUTTON_BASEBALLF_PAUSE                = 0x110044FC, /* Start / Pause / Restart game */

/*--- Sports - Basketball - Offense
      Offense  ---*/
AXIS_BBALLO_LATERAL                   = 0x12008201, /* left / right */
AXIS_BBALLO_MOVE                      = 0x12010202, /* up / down */
BUTTON_BBALLO_SHOOT                   = 0x12000401, /* shoot basket */
BUTTON_BBALLO_DUNK                    = 0x12000402, /* dunk basket */
BUTTON_BBALLO_PASS                    = 0x12000403, /* throw pass */
BUTTON_BBALLO_FAKE                    = 0x12000404, /* fake shot or pass */
BUTTON_BBALLO_SPECIAL                 = 0x12000405, /* apply special move */
BUTTON_BBALLO_PLAYER                  = 0x12000406, /* select next player */
BUTTON_BBALLO_BURST                   = 0x12000407, /* invoke burst */
BUTTON_BBALLO_CALL                    = 0x12000408, /* call for ball / pass to me */
BUTTON_BBALLO_MENU                    = 0x120004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_BBALLO_GLANCE               = 0x12004601, /* scroll view */
BUTTON_BBALLO_SCREEN                  = 0x12004409, /* Call for screen */
BUTTON_BBALLO_PLAY                    = 0x1200440A, /* Call for specific offensive play */
BUTTON_BBALLO_JAB                     = 0x1200440B, /* Initiate fake drive to basket */
BUTTON_BBALLO_POST                    = 0x1200440C, /* Perform post move */
BUTTON_BBALLO_TIMEOUT                 = 0x1200440D, /* Time Out */
BUTTON_BBALLO_SUBSTITUTE              = 0x1200440E, /* substitute one player for another */
BUTTON_BBALLO_LEFT_LINK               = 0x1200C4E4, /* Fallback sidestep left button */
BUTTON_BBALLO_RIGHT_LINK              = 0x1200C4EC, /* Fallback sidestep right button */
BUTTON_BBALLO_FORWARD_LINK            = 0x120144E0, /* Fallback move forward button */
BUTTON_BBALLO_BACK_LINK               = 0x120144E8, /* Fallback move back button */
BUTTON_BBALLO_DEVICE                  = 0x120044FE, /* Show input device and controls */
BUTTON_BBALLO_PAUSE                   = 0x120044FC, /* Start / Pause / Restart game */

/*--- Sports - Basketball - Defense
      Defense  ---*/
AXIS_BBALLD_LATERAL                   = 0x13008201, /* left / right */
AXIS_BBALLD_MOVE                      = 0x13010202, /* up / down */
BUTTON_BBALLD_JUMP                    = 0x13000401, /* jump to block shot */
BUTTON_BBALLD_STEAL                   = 0x13000402, /* attempt to steal ball */
BUTTON_BBALLD_FAKE                    = 0x13000403, /* fake block or steal */
BUTTON_BBALLD_SPECIAL                 = 0x13000404, /* apply special move */
BUTTON_BBALLD_PLAYER                  = 0x13000405, /* select next player */
BUTTON_BBALLD_BURST                   = 0x13000406, /* invoke burst */
BUTTON_BBALLD_PLAY                    = 0x13000407, /* call for specific defensive play */
BUTTON_BBALLD_MENU                    = 0x130004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_BBALLD_GLANCE               = 0x13004601, /* scroll view */
BUTTON_BBALLD_TIMEOUT                 = 0x13004408, /* Time Out */
BUTTON_BBALLD_SUBSTITUTE              = 0x13004409, /* substitute one player for another */
BUTTON_BBALLD_LEFT_LINK               = 0x1300C4E4, /* Fallback sidestep left button */
BUTTON_BBALLD_RIGHT_LINK              = 0x1300C4EC, /* Fallback sidestep right button */
BUTTON_BBALLD_FORWARD_LINK            = 0x130144E0, /* Fallback move forward button */
BUTTON_BBALLD_BACK_LINK               = 0x130144E8, /* Fallback move back button */
BUTTON_BBALLD_DEVICE                  = 0x130044FE, /* Show input device and controls */
BUTTON_BBALLD_PAUSE                   = 0x130044FC, /* Start / Pause / Restart game */

/*--- Sports - Football - Play
      Play selection  ---*/
BUTTON_FOOTBALLP_PLAY                 = 0x14000401, /* cycle through available plays */
BUTTON_FOOTBALLP_SELECT               = 0x14000402, /* select play */
BUTTON_FOOTBALLP_HELP                 = 0x14000403, /* Bring up pop-up help */
BUTTON_FOOTBALLP_MENU                 = 0x140004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_FOOTBALLP_DEVICE               = 0x140044FE, /* Show input device and controls */
BUTTON_FOOTBALLP_PAUSE                = 0x140044FC, /* Start / Pause / Restart game */

/*--- Sports - Football - QB
      Offense: Quarterback / Kicker  ---*/
AXIS_FOOTBALLQ_LATERAL                = 0x15008201, /* Move / Aim: left / right */
AXIS_FOOTBALLQ_MOVE                   = 0x15010202, /* Move / Aim: up / down */
BUTTON_FOOTBALLQ_SELECT               = 0x15000401, /* Select */
BUTTON_FOOTBALLQ_SNAP                 = 0x15000402, /* snap ball - start play */
BUTTON_FOOTBALLQ_JUMP                 = 0x15000403, /* jump over defender */
BUTTON_FOOTBALLQ_SLIDE                = 0x15000404, /* Dive/Slide */
BUTTON_FOOTBALLQ_PASS                 = 0x15000405, /* throws pass to receiver */
BUTTON_FOOTBALLQ_FAKE                 = 0x15000406, /* pump fake pass or fake kick */
BUTTON_FOOTBALLQ_MENU                 = 0x150004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_FOOTBALLQ_FAKESNAP             = 0x15004407, /* Fake snap  */
BUTTON_FOOTBALLQ_MOTION               = 0x15004408, /* Send receivers in motion */
BUTTON_FOOTBALLQ_AUDIBLE              = 0x15004409, /* Change offensive play at line of scrimmage */
BUTTON_FOOTBALLQ_LEFT_LINK            = 0x1500C4E4, /* Fallback sidestep left button */
BUTTON_FOOTBALLQ_RIGHT_LINK           = 0x1500C4EC, /* Fallback sidestep right button */
BUTTON_FOOTBALLQ_FORWARD_LINK         = 0x150144E0, /* Fallback move forward button */
BUTTON_FOOTBALLQ_BACK_LINK            = 0x150144E8, /* Fallback move back button */
BUTTON_FOOTBALLQ_DEVICE               = 0x150044FE, /* Show input device and controls */
BUTTON_FOOTBALLQ_PAUSE                = 0x150044FC, /* Start / Pause / Restart game */

/*--- Sports - Football - Offense
      Offense - Runner  ---*/
AXIS_FOOTBALLO_LATERAL                = 0x16008201, /* Move / Aim: left / right */
AXIS_FOOTBALLO_MOVE                   = 0x16010202, /* Move / Aim: up / down */
BUTTON_FOOTBALLO_JUMP                 = 0x16000401, /* jump or hurdle over defender */
BUTTON_FOOTBALLO_LEFTARM              = 0x16000402, /* holds out left arm */
BUTTON_FOOTBALLO_RIGHTARM             = 0x16000403, /* holds out right arm */
BUTTON_FOOTBALLO_THROW                = 0x16000404, /* throw pass or lateral ball to another runner */
BUTTON_FOOTBALLO_SPIN                 = 0x16000405, /* Spin to avoid defenders */
BUTTON_FOOTBALLO_MENU                 = 0x160004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_FOOTBALLO_JUKE                 = 0x16004406, /* Use special move to avoid defenders */
BUTTON_FOOTBALLO_SHOULDER             = 0x16004407, /* Lower shoulder to run over defenders */
BUTTON_FOOTBALLO_TURBO                = 0x16004408, /* Speed burst past defenders */
BUTTON_FOOTBALLO_DIVE                 = 0x16004409, /* Dive over defenders */
BUTTON_FOOTBALLO_ZOOM                 = 0x1600440A, /* Zoom view in / out */
BUTTON_FOOTBALLO_SUBSTITUTE           = 0x1600440B, /* substitute one player for another */
BUTTON_FOOTBALLO_LEFT_LINK            = 0x1600C4E4, /* Fallback sidestep left button */
BUTTON_FOOTBALLO_RIGHT_LINK           = 0x1600C4EC, /* Fallback sidestep right button */
BUTTON_FOOTBALLO_FORWARD_LINK         = 0x160144E0, /* Fallback move forward button */
BUTTON_FOOTBALLO_BACK_LINK            = 0x160144E8, /* Fallback move back button */
BUTTON_FOOTBALLO_DEVICE               = 0x160044FE, /* Show input device and controls */
BUTTON_FOOTBALLO_PAUSE                = 0x160044FC, /* Start / Pause / Restart game */

/*--- Sports - Football - Defense
      Defense     ---*/
AXIS_FOOTBALLD_LATERAL                = 0x17008201, /* Move / Aim: left / right */
AXIS_FOOTBALLD_MOVE                   = 0x17010202, /* Move / Aim: up / down */
BUTTON_FOOTBALLD_PLAY                 = 0x17000401, /* cycle through available plays */
BUTTON_FOOTBALLD_SELECT               = 0x17000402, /* select player closest to the ball */
BUTTON_FOOTBALLD_JUMP                 = 0x17000403, /* jump to intercept or block */
BUTTON_FOOTBALLD_TACKLE               = 0x17000404, /* tackler runner */
BUTTON_FOOTBALLD_FAKE                 = 0x17000405, /* hold down to fake tackle or intercept */
BUTTON_FOOTBALLD_SUPERTACKLE          = 0x17000406, /* Initiate special tackle */
BUTTON_FOOTBALLD_MENU                 = 0x170004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

BUTTON_FOOTBALLD_SPIN                 = 0x17004407, /* Spin to beat offensive line */
BUTTON_FOOTBALLD_SWIM                 = 0x17004408, /* Swim to beat the offensive line */
BUTTON_FOOTBALLD_BULLRUSH             = 0x17004409, /* Bull rush the offensive line */
BUTTON_FOOTBALLD_RIP                  = 0x1700440A, /* Rip the offensive line */
BUTTON_FOOTBALLD_AUDIBLE              = 0x1700440B, /* Change defensive play at the line of scrimmage */
BUTTON_FOOTBALLD_ZOOM                 = 0x1700440C, /* Zoom view in / out */
BUTTON_FOOTBALLD_SUBSTITUTE           = 0x1700440D, /* substitute one player for another */
BUTTON_FOOTBALLD_LEFT_LINK            = 0x1700C4E4, /* Fallback sidestep left button */
BUTTON_FOOTBALLD_RIGHT_LINK           = 0x1700C4EC, /* Fallback sidestep right button */
BUTTON_FOOTBALLD_FORWARD_LINK         = 0x170144E0, /* Fallback move forward button */
BUTTON_FOOTBALLD_BACK_LINK            = 0x170144E8, /* Fallback move back button */
BUTTON_FOOTBALLD_DEVICE               = 0x170044FE, /* Show input device and controls */
BUTTON_FOOTBALLD_PAUSE                = 0x170044FC, /* Start / Pause / Restart game */

/*--- Sports - Golf
                                ---*/
AXIS_GOLF_LATERAL                     = 0x18008201, /* Move / Aim: left / right */
AXIS_GOLF_MOVE                        = 0x18010202, /* Move / Aim: up / down */
BUTTON_GOLF_SWING                     = 0x18000401, /* swing club */
BUTTON_GOLF_SELECT                    = 0x18000402, /* cycle between: club / swing strength / ball arc / ball spin */
BUTTON_GOLF_UP                        = 0x18000403, /* increase selection */
BUTTON_GOLF_DOWN                      = 0x18000404, /* decrease selection */
BUTTON_GOLF_TERRAIN                   = 0x18000405, /* shows terrain detail */
BUTTON_GOLF_FLYBY                     = 0x18000406, /* view the hole via a flyby */
BUTTON_GOLF_MENU                      = 0x180004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_GOLF_SCROLL                 = 0x18004601, /* scroll view */
BUTTON_GOLF_ZOOM                      = 0x18004407, /* Zoom view in / out */
BUTTON_GOLF_TIMEOUT                   = 0x18004408, /* Call for time out */
BUTTON_GOLF_SUBSTITUTE                = 0x18004409, /* substitute one player for another */
BUTTON_GOLF_LEFT_LINK                 = 0x1800C4E4, /* Fallback sidestep left button */
BUTTON_GOLF_RIGHT_LINK                = 0x1800C4EC, /* Fallback sidestep right button */
BUTTON_GOLF_FORWARD_LINK              = 0x180144E0, /* Fallback move forward button */
BUTTON_GOLF_BACK_LINK                 = 0x180144E8, /* Fallback move back button */
BUTTON_GOLF_DEVICE                    = 0x180044FE, /* Show input device and controls */
BUTTON_GOLF_PAUSE                     = 0x180044FC, /* Start / Pause / Restart game */

/*--- Sports - Hockey - Offense
      Offense       ---*/
AXIS_HOCKEYO_LATERAL                  = 0x19008201, /* Move / Aim: left / right */
AXIS_HOCKEYO_MOVE                     = 0x19010202, /* Move / Aim: up / down */
BUTTON_HOCKEYO_SHOOT                  = 0x19000401, /* Shoot */
BUTTON_HOCKEYO_PASS                   = 0x19000402, /* pass the puck */
BUTTON_HOCKEYO_BURST                  = 0x19000403, /* invoke speed burst */
BUTTON_HOCKEYO_SPECIAL                = 0x19000404, /* invoke special move */
BUTTON_HOCKEYO_FAKE                   = 0x19000405, /* hold down to fake pass or kick */
BUTTON_HOCKEYO_MENU                   = 0x190004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_HOCKEYO_SCROLL              = 0x19004601, /* scroll view */
BUTTON_HOCKEYO_ZOOM                   = 0x19004406, /* Zoom view in / out */
BUTTON_HOCKEYO_STRATEGY               = 0x19004407, /* Invoke coaching menu for strategy help */
BUTTON_HOCKEYO_TIMEOUT                = 0x19004408, /* Call for time out */
BUTTON_HOCKEYO_SUBSTITUTE             = 0x19004409, /* substitute one player for another */
BUTTON_HOCKEYO_LEFT_LINK              = 0x1900C4E4, /* Fallback sidestep left button */
BUTTON_HOCKEYO_RIGHT_LINK             = 0x1900C4EC, /* Fallback sidestep right button */
BUTTON_HOCKEYO_FORWARD_LINK           = 0x190144E0, /* Fallback move forward button */
BUTTON_HOCKEYO_BACK_LINK              = 0x190144E8, /* Fallback move back button */
BUTTON_HOCKEYO_DEVICE                 = 0x190044FE, /* Show input device and controls */
BUTTON_HOCKEYO_PAUSE                  = 0x190044FC, /* Start / Pause / Restart game */

/*--- Sports - Hockey - Defense
      Defense       ---*/
AXIS_HOCKEYD_LATERAL                  = 0x1A008201, /* Move / Aim: left / right */
AXIS_HOCKEYD_MOVE                     = 0x1A010202, /* Move / Aim: up / down */
BUTTON_HOCKEYD_PLAYER                 = 0x1A000401, /* control player closest to the puck */
BUTTON_HOCKEYD_STEAL                  = 0x1A000402, /* attempt steal */
BUTTON_HOCKEYD_BURST                  = 0x1A000403, /* speed burst or body check */
BUTTON_HOCKEYD_BLOCK                  = 0x1A000404, /* block puck */
BUTTON_HOCKEYD_FAKE                   = 0x1A000405, /* hold down to fake tackle or intercept */
BUTTON_HOCKEYD_MENU                   = 0x1A0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_HOCKEYD_SCROLL              = 0x1A004601, /* scroll view */
BUTTON_HOCKEYD_ZOOM                   = 0x1A004406, /* Zoom view in / out */
BUTTON_HOCKEYD_STRATEGY               = 0x1A004407, /* Invoke coaching menu for strategy help */
BUTTON_HOCKEYD_TIMEOUT                = 0x1A004408, /* Call for time out */
BUTTON_HOCKEYD_SUBSTITUTE             = 0x1A004409, /* substitute one player for another */
BUTTON_HOCKEYD_LEFT_LINK              = 0x1A00C4E4, /* Fallback sidestep left button */
BUTTON_HOCKEYD_RIGHT_LINK             = 0x1A00C4EC, /* Fallback sidestep right button */
BUTTON_HOCKEYD_FORWARD_LINK           = 0x1A0144E0, /* Fallback move forward button */
BUTTON_HOCKEYD_BACK_LINK              = 0x1A0144E8, /* Fallback move back button */
BUTTON_HOCKEYD_DEVICE                 = 0x1A0044FE, /* Show input device and controls */
BUTTON_HOCKEYD_PAUSE                  = 0x1A0044FC, /* Start / Pause / Restart game */

/*--- Sports - Hockey - Goalie
      Goal tending  ---*/
AXIS_HOCKEYG_LATERAL                  = 0x1B008201, /* Move / Aim: left / right */
AXIS_HOCKEYG_MOVE                     = 0x1B010202, /* Move / Aim: up / down */
BUTTON_HOCKEYG_PASS                   = 0x1B000401, /* pass puck */
BUTTON_HOCKEYG_POKE                   = 0x1B000402, /* poke / check / hack */
BUTTON_HOCKEYG_STEAL                  = 0x1B000403, /* attempt steal */
BUTTON_HOCKEYG_BLOCK                  = 0x1B000404, /* block puck */
BUTTON_HOCKEYG_MENU                   = 0x1B0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_HOCKEYG_SCROLL              = 0x1B004601, /* scroll view */
BUTTON_HOCKEYG_ZOOM                   = 0x1B004405, /* Zoom view in / out */
BUTTON_HOCKEYG_STRATEGY               = 0x1B004406, /* Invoke coaching menu for strategy help */
BUTTON_HOCKEYG_TIMEOUT                = 0x1B004407, /* Call for time out */
BUTTON_HOCKEYG_SUBSTITUTE             = 0x1B004408, /* substitute one player for another */
BUTTON_HOCKEYG_LEFT_LINK              = 0x1B00C4E4, /* Fallback sidestep left button */
BUTTON_HOCKEYG_RIGHT_LINK             = 0x1B00C4EC, /* Fallback sidestep right button */
BUTTON_HOCKEYG_FORWARD_LINK           = 0x1B0144E0, /* Fallback move forward button */
BUTTON_HOCKEYG_BACK_LINK              = 0x1B0144E8, /* Fallback move back button */
BUTTON_HOCKEYG_DEVICE                 = 0x1B0044FE, /* Show input device and controls */
BUTTON_HOCKEYG_PAUSE                  = 0x1B0044FC, /* Start / Pause / Restart game */

/*--- Sports - Mountain Biking
                     ---*/
AXIS_BIKINGM_TURN                     = 0x1C008201, /* left / right */
AXIS_BIKINGM_PEDAL                    = 0x1C010202, /* Pedal faster / slower / brake */
BUTTON_BIKINGM_JUMP                   = 0x1C000401, /* jump over obstacle */
BUTTON_BIKINGM_CAMERA                 = 0x1C000402, /* switch camera view */
BUTTON_BIKINGM_SPECIAL1               = 0x1C000403, /* perform first special move */
BUTTON_BIKINGM_SELECT                 = 0x1C000404, /* Select */
BUTTON_BIKINGM_SPECIAL2               = 0x1C000405, /* perform second special move */
BUTTON_BIKINGM_MENU                   = 0x1C0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_BIKINGM_SCROLL              = 0x1C004601, /* scroll view */
BUTTON_BIKINGM_ZOOM                   = 0x1C004406, /* Zoom view in / out */
AXIS_BIKINGM_BRAKE                    = 0x1C044203, /* Brake axis  */
BUTTON_BIKINGM_LEFT_LINK              = 0x1C00C4E4, /* Fallback turn left button */
BUTTON_BIKINGM_RIGHT_LINK             = 0x1C00C4EC, /* Fallback turn right button */
BUTTON_BIKINGM_FASTER_LINK            = 0x1C0144E0, /* Fallback pedal faster button */
BUTTON_BIKINGM_SLOWER_LINK            = 0x1C0144E8, /* Fallback pedal slower button */
BUTTON_BIKINGM_BRAKE_BUTTON_LINK      = 0x1C0444E8, /* Fallback brake button */
BUTTON_BIKINGM_DEVICE                 = 0x1C0044FE, /* Show input device and controls */
BUTTON_BIKINGM_PAUSE                  = 0x1C0044FC, /* Start / Pause / Restart game */

/*--- Sports: Skiing / Snowboarding / Skateboarding
        ---*/
AXIS_SKIING_TURN                      = 0x1D008201, /* left / right */
AXIS_SKIING_SPEED                     = 0x1D010202, /* faster / slower */
BUTTON_SKIING_JUMP                    = 0x1D000401, /* Jump */
BUTTON_SKIING_CROUCH                  = 0x1D000402, /* crouch down */
BUTTON_SKIING_CAMERA                  = 0x1D000403, /* switch camera view */
BUTTON_SKIING_SPECIAL1                = 0x1D000404, /* perform first special move */
BUTTON_SKIING_SELECT                  = 0x1D000405, /* Select */
BUTTON_SKIING_SPECIAL2                = 0x1D000406, /* perform second special move */
BUTTON_SKIING_MENU                    = 0x1D0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_SKIING_GLANCE               = 0x1D004601, /* scroll view */
BUTTON_SKIING_ZOOM                    = 0x1D004407, /* Zoom view in / out */
BUTTON_SKIING_LEFT_LINK               = 0x1D00C4E4, /* Fallback turn left button */
BUTTON_SKIING_RIGHT_LINK              = 0x1D00C4EC, /* Fallback turn right button */
BUTTON_SKIING_FASTER_LINK             = 0x1D0144E0, /* Fallback increase speed button */
BUTTON_SKIING_SLOWER_LINK             = 0x1D0144E8, /* Fallback decrease speed button */
BUTTON_SKIING_DEVICE                  = 0x1D0044FE, /* Show input device and controls */
BUTTON_SKIING_PAUSE                   = 0x1D0044FC, /* Start / Pause / Restart game */

/*--- Sports - Soccer - Offense
      Offense       ---*/
AXIS_SOCCERO_LATERAL                  = 0x1E008201, /* Move / Aim: left / right */
AXIS_SOCCERO_MOVE                     = 0x1E010202, /* Move / Aim: up / down */
AXIS_SOCCERO_BEND                     = 0x1E018203, /* Bend to soccer shot/pass */
BUTTON_SOCCERO_SHOOT                  = 0x1E000401, /* Shoot the ball */
BUTTON_SOCCERO_PASS                   = 0x1E000402, /* Pass  */
BUTTON_SOCCERO_FAKE                   = 0x1E000403, /* Fake */
BUTTON_SOCCERO_PLAYER                 = 0x1E000404, /* Select next player */
BUTTON_SOCCERO_SPECIAL1               = 0x1E000405, /* Apply special move */
BUTTON_SOCCERO_SELECT                 = 0x1E000406, /* Select special move */
BUTTON_SOCCERO_MENU                   = 0x1E0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_SOCCERO_GLANCE              = 0x1E004601, /* scroll view */
BUTTON_SOCCERO_SUBSTITUTE             = 0x1E004407, /* Substitute one player for another */
BUTTON_SOCCERO_SHOOTLOW               = 0x1E004408, /* Shoot the ball low */
BUTTON_SOCCERO_SHOOTHIGH              = 0x1E004409, /* Shoot the ball high */
BUTTON_SOCCERO_PASSTHRU               = 0x1E00440A, /* Make a thru pass */
BUTTON_SOCCERO_SPRINT                 = 0x1E00440B, /* Sprint / turbo boost */
BUTTON_SOCCERO_CONTROL                = 0x1E00440C, /* Obtain control of the ball */
BUTTON_SOCCERO_HEAD                   = 0x1E00440D, /* Attempt to head the ball */
BUTTON_SOCCERO_LEFT_LINK              = 0x1E00C4E4, /* Fallback sidestep left button */
BUTTON_SOCCERO_RIGHT_LINK             = 0x1E00C4EC, /* Fallback sidestep right button */
BUTTON_SOCCERO_FORWARD_LINK           = 0x1E0144E0, /* Fallback move forward button */
BUTTON_SOCCERO_BACK_LINK              = 0x1E0144E8, /* Fallback move back button */
BUTTON_SOCCERO_DEVICE                 = 0x1E0044FE, /* Show input device and controls */
BUTTON_SOCCERO_PAUSE                  = 0x1E0044FC, /* Start / Pause / Restart game */

/*--- Sports - Soccer - Defense
      Defense       ---*/
AXIS_SOCCERD_LATERAL                  = 0x1F008201, /* Move / Aim: left / right */
AXIS_SOCCERD_MOVE                     = 0x1F010202, /* Move / Aim: up / down */
BUTTON_SOCCERD_BLOCK                  = 0x1F000401, /* Attempt to block shot */
BUTTON_SOCCERD_STEAL                  = 0x1F000402, /* Attempt to steal ball */
BUTTON_SOCCERD_FAKE                   = 0x1F000403, /* Fake a block or a steal */
BUTTON_SOCCERD_PLAYER                 = 0x1F000404, /* Select next player */
BUTTON_SOCCERD_SPECIAL                = 0x1F000405, /* Apply special move */
BUTTON_SOCCERD_SELECT                 = 0x1F000406, /* Select special move */
BUTTON_SOCCERD_SLIDE                  = 0x1F000407, /* Attempt a slide tackle */
BUTTON_SOCCERD_MENU                   = 0x1F0004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_SOCCERD_GLANCE              = 0x1F004601, /* scroll view */
BUTTON_SOCCERD_FOUL                   = 0x1F004408, /* Initiate a foul / hard-foul */
BUTTON_SOCCERD_HEAD                   = 0x1F004409, /* Attempt a Header */
BUTTON_SOCCERD_CLEAR                  = 0x1F00440A, /* Attempt to clear the ball down the field */
BUTTON_SOCCERD_GOALIECHARGE           = 0x1F00440B, /* Make the goalie charge out of the box */
BUTTON_SOCCERD_SUBSTITUTE             = 0x1F00440C, /* Substitute one player for another */
BUTTON_SOCCERD_LEFT_LINK              = 0x1F00C4E4, /* Fallback sidestep left button */
BUTTON_SOCCERD_RIGHT_LINK             = 0x1F00C4EC, /* Fallback sidestep right button */
BUTTON_SOCCERD_FORWARD_LINK           = 0x1F0144E0, /* Fallback move forward button */
BUTTON_SOCCERD_BACK_LINK              = 0x1F0144E8, /* Fallback move back button */
BUTTON_SOCCERD_DEVICE                 = 0x1F0044FE, /* Show input device and controls */
BUTTON_SOCCERD_PAUSE                  = 0x1F0044FC, /* Start / Pause / Restart game */

/*--- Sports - Racquet
      Tennis - Table-Tennis - Squash   ---*/
AXIS_RACQUET_LATERAL                  = 0x20008201, /* Move / Aim: left / right */
AXIS_RACQUET_MOVE                     = 0x20010202, /* Move / Aim: up / down */
BUTTON_RACQUET_SWING                  = 0x20000401, /* Swing racquet */
BUTTON_RACQUET_BACKSWING              = 0x20000402, /* Swing backhand */
BUTTON_RACQUET_SMASH                  = 0x20000403, /* Smash shot */
BUTTON_RACQUET_SPECIAL                = 0x20000404, /* Special shot */
BUTTON_RACQUET_SELECT                 = 0x20000405, /* Select special shot */
BUTTON_RACQUET_MENU                   = 0x200004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_RACQUET_GLANCE              = 0x20004601, /* scroll view */
BUTTON_RACQUET_TIMEOUT                = 0x20004406, /* Call for time out */
BUTTON_RACQUET_SUBSTITUTE             = 0x20004407, /* Substitute one player for another */
BUTTON_RACQUET_LEFT_LINK              = 0x2000C4E4, /* Fallback sidestep left button */
BUTTON_RACQUET_RIGHT_LINK             = 0x2000C4EC, /* Fallback sidestep right button */
BUTTON_RACQUET_FORWARD_LINK           = 0x200144E0, /* Fallback move forward button */
BUTTON_RACQUET_BACK_LINK              = 0x200144E8, /* Fallback move back button */
BUTTON_RACQUET_DEVICE                 = 0x200044FE, /* Show input device and controls */
BUTTON_RACQUET_PAUSE                  = 0x200044FC, /* Start / Pause / Restart game */

/*--- Arcade- 2D
      Side to Side movement        ---*/
AXIS_ARCADES_LATERAL                  = 0x21008201, /* left / right */
AXIS_ARCADES_MOVE                     = 0x21010202, /* up / down */
BUTTON_ARCADES_THROW                  = 0x21000401, /* throw object */
BUTTON_ARCADES_CARRY                  = 0x21000402, /* carry object */
BUTTON_ARCADES_ATTACK                 = 0x21000403, /* attack */
BUTTON_ARCADES_SPECIAL                = 0x21000404, /* apply special move */
BUTTON_ARCADES_SELECT                 = 0x21000405, /* select special move */
BUTTON_ARCADES_MENU                   = 0x210004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_ARCADES_VIEW                = 0x21004601, /* scroll view left / right / up / down */
BUTTON_ARCADES_LEFT_LINK              = 0x2100C4E4, /* Fallback sidestep left button */
BUTTON_ARCADES_RIGHT_LINK             = 0x2100C4EC, /* Fallback sidestep right button */
BUTTON_ARCADES_FORWARD_LINK           = 0x210144E0, /* Fallback move forward button */
BUTTON_ARCADES_BACK_LINK              = 0x210144E8, /* Fallback move back button */
BUTTON_ARCADES_VIEW_UP_LINK           = 0x2107C4E0, /* Fallback scroll view up button */
BUTTON_ARCADES_VIEW_DOWN_LINK         = 0x2107C4E8, /* Fallback scroll view down button */
BUTTON_ARCADES_VIEW_LEFT_LINK         = 0x2107C4E4, /* Fallback scroll view left button */
BUTTON_ARCADES_VIEW_RIGHT_LINK        = 0x2107C4EC, /* Fallback scroll view right button */
BUTTON_ARCADES_DEVICE                 = 0x210044FE, /* Show input device and controls */
BUTTON_ARCADES_PAUSE                  = 0x210044FC, /* Start / Pause / Restart game */

/*--- Arcade - Platform Game
      Character moves around on screen  ---*/
AXIS_ARCADEP_LATERAL                  = 0x22008201, /* Left / right */
AXIS_ARCADEP_MOVE                     = 0x22010202, /* Up / down */
BUTTON_ARCADEP_JUMP                   = 0x22000401, /* Jump */
BUTTON_ARCADEP_FIRE                   = 0x22000402, /* Fire */
BUTTON_ARCADEP_CROUCH                 = 0x22000403, /* Crouch */
BUTTON_ARCADEP_SPECIAL                = 0x22000404, /* Apply special move */
BUTTON_ARCADEP_SELECT                 = 0x22000405, /* Select special move */
BUTTON_ARCADEP_MENU                   = 0x220004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_ARCADEP_VIEW                = 0x22004601, /* Scroll view */
BUTTON_ARCADEP_FIRESECONDARY          = 0x22004406, /* Alternative fire button */
BUTTON_ARCADEP_LEFT_LINK              = 0x2200C4E4, /* Fallback sidestep left button */
BUTTON_ARCADEP_RIGHT_LINK             = 0x2200C4EC, /* Fallback sidestep right button */
BUTTON_ARCADEP_FORWARD_LINK           = 0x220144E0, /* Fallback move forward button */
BUTTON_ARCADEP_BACK_LINK              = 0x220144E8, /* Fallback move back button */
BUTTON_ARCADEP_VIEW_UP_LINK           = 0x2207C4E0, /* Fallback scroll view up button */
BUTTON_ARCADEP_VIEW_DOWN_LINK         = 0x2207C4E8, /* Fallback scroll view down button */
BUTTON_ARCADEP_VIEW_LEFT_LINK         = 0x2207C4E4, /* Fallback scroll view left button */
BUTTON_ARCADEP_VIEW_RIGHT_LINK        = 0x2207C4EC, /* Fallback scroll view right button */
BUTTON_ARCADEP_DEVICE                 = 0x220044FE, /* Show input device and controls */
BUTTON_ARCADEP_PAUSE                  = 0x220044FC, /* Start / Pause / Restart game */

/*--- CAD - 2D Object Control
      Controls to select and move objects in 2D  ---*/
AXIS_2DCONTROL_LATERAL                = 0x23008201, /* Move view left / right */
AXIS_2DCONTROL_MOVE                   = 0x23010202, /* Move view up / down */
AXIS_2DCONTROL_INOUT                  = 0x23018203, /* Zoom - in / out */
BUTTON_2DCONTROL_SELECT               = 0x23000401, /* Select Object */
BUTTON_2DCONTROL_SPECIAL1             = 0x23000402, /* Do first special operation */
BUTTON_2DCONTROL_SPECIAL              = 0x23000403, /* Select special operation */
BUTTON_2DCONTROL_SPECIAL2             = 0x23000404, /* Do second special operation */
BUTTON_2DCONTROL_MENU                 = 0x230004FD, /* Show menu options */
/*--- Priority 2 controls                            ---*/

HATSWITCH_2DCONTROL_HATSWITCH         = 0x23004601, /* Hat switch */
AXIS_2DCONTROL_ROTATEZ                = 0x23024204, /* Rotate view clockwise / counterclockwise */
BUTTON_2DCONTROL_DISPLAY              = 0x23004405, /* Shows next on-screen display options */
BUTTON_2DCONTROL_DEVICE               = 0x2300