public static void HandleButtonEvent(OuyaSDK.InputButtonEvent inputEvent)
    {
        OuyaInputManager.OuyaKeyState keyState = OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer());
        if (null == keyState)
        {
            return;
        }

        switch (inputEvent.getKeyAction())
        {
            case OuyaSDK.InputAction.KeyDown:
            case OuyaSDK.InputAction.KeyUp:
                switch (inputEvent.getKeyCode())
                {
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        keyState.m_buttonO = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        keyState.m_buttonU = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        keyState.m_buttonY = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        keyState.m_buttonA = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        keyState.m_buttonLB = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        keyState.m_buttonLT = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        keyState.m_buttonL3 = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        keyState.m_buttonRB = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        keyState.m_buttonRT = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        keyState.m_buttonR3 = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                        keyState.m_buttonSystem = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        keyState.m_buttonDPadDown = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        keyState.m_buttonDPadLeft = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        keyState.m_buttonDPadRight = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        keyState.m_buttonDPadUp = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    default:
                        return;
                }
                OuyaButtonEvent.buttonPressEvent(inputEvent.getPlayer(), inputEvent.getKeyCode(), inputEvent.getKeyAction());
                break;
        }
    }
 /// <summary>
 /// Get Devices
 /// </summary>
 /// <returns>List<Device></returns>
 public static void HandleAxisEvent(OuyaSDK.InputAxisEvent inputEvent)
 {
     switch (inputEvent.getAxisCode())
     {
         case OuyaSDK.AxisEnum.AXIS_LSTICK_X:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisLeftStickX = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_LSTICK_Y:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisLeftStickY = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_RSTICK_X:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisRightStickX = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_RSTICK_Y:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisRightStickY = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_LTRIGGER:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisLeftTrigger = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_RTRIGGER:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisRightTrigger = inputEvent.getAxis();
             break;
     }
 }