public float GetAxis(string keyname, GamepadNumber index)
 {
     return(this.HandleAxis(keyname, index));
 }
 private float HandleAxis(string axisName, GamepadNumber index)
 {
     if (Application.isEditor)
     {
         return(0f);
     }
     if (GamesirInput.mode == 0)
     {
         if (Input.GetJoystickNames().Length > 0)
         {
             try
             {
                 float result;
                 if (Input.GetAxis(string.Concat(new object[]
                 {
                     "Gamesir_",
                     axisName,
                     "_",
                     index
                 })) != 0f)
                 {
                     result = Input.GetAxis(string.Concat(new object[]
                     {
                         "Gamesir_",
                         axisName,
                         "_",
                         index
                     }));
                     return(result);
                 }
                 result = this.gamesirUnityInput.CallStatic <float>("GetAxis", new object[]
                 {
                     axisName,
                     (int)index
                 });
                 return(result);
             }
             catch
             {
                 float result = 0f;
                 return(result);
             }
         }
         return(this.gamesirUnityInput.CallStatic <float>("GetAxis", new object[]
         {
             axisName,
             (int)index
         }));
     }
     if (GamesirInput.mode == 1)
     {
         return(0f);
     }
     if (GamesirInput.mode == 2)
     {
         if (Input.GetJoystickNames().Length > 0)
         {
             try
             {
                 float result;
                 if (!this.CheckIsGamesir(index - GamepadNumber.First, this.Current(), Input.GetJoystickNames()[index - GamepadNumber.First]))
                 {
                     result = 0f;
                     return(result);
                 }
                 if (Input.GetAxis(string.Concat(new object[]
                 {
                     "Gamesir_",
                     axisName,
                     "_",
                     index
                 })) != 0f)
                 {
                     result = Input.GetAxis(string.Concat(new object[]
                     {
                         "Gamesir_",
                         axisName,
                         "_",
                         index
                     }));
                     return(result);
                 }
                 result = this.gamesirUnityInput.CallStatic <float>("GetAxis", new object[]
                 {
                     axisName,
                     (int)index
                 });
                 return(result);
             }
             catch
             {
                 float result = 0f;
                 return(result);
             }
         }
         return(this.gamesirUnityInput.CallStatic <float>("GetAxis", new object[]
         {
             axisName,
             (int)index
         }));
     }
     return(0f);
 }
 public bool GetButton(string keyname, GamepadNumber index)
 {
     return(this.HandleButton(keyname, index));
 }
        private bool HandleButton(string buttonName, GamepadNumber index)
        {
            if (Application.isEditor)
            {
                return(false);
            }
            if (buttonName == GamesirInput.DPAD_UP || buttonName == GamesirInput.DPAD_DOWN)
            {
                float axis = this.GetAxis(GamesirInput.AXIS_HAT_Y);
                return((buttonName == GamesirInput.DPAD_UP && axis < -0.5f) || (buttonName == GamesirInput.DPAD_DOWN && axis > 0.5f));
            }
            if (buttonName == GamesirInput.DPAD_LEFT || buttonName == GamesirInput.DPAD_RIGHT)
            {
                float axis2 = this.GetAxis(GamesirInput.AXIS_HAT_X);
                return((buttonName == GamesirInput.DPAD_LEFT && axis2 < -0.5f) || (buttonName == GamesirInput.DPAD_RIGHT && axis2 > 0.5f));
            }
            int num = this.androidKeyMap[buttonName];

            if (GamesirInput.mode == 0)
            {
                if (Input.GetJoystickNames().Length > 0)
                {
                    try
                    {
                        bool result = Input.GetButton(string.Concat(new object[]
                        {
                            "Gamesir_BTN_",
                            buttonName,
                            "_",
                            index
                        })) || this.gamesirUnityInput.CallStatic <bool>("GetButton", new object[]
                        {
                            num,
                            (int)index
                        });
                        return(result);
                    }
                    catch
                    {
                        bool result = false;
                        return(result);
                    }
                }
                return(this.gamesirUnityInput.CallStatic <bool>("GetButton", new object[]
                {
                    num,
                    (int)index
                }));
            }
            if (GamesirInput.mode == 1)
            {
                return(false);
            }
            if (GamesirInput.mode == 2)
            {
                if (Input.GetJoystickNames().Length > 0)
                {
                    try
                    {
                        bool result;
                        if (this.CheckIsGamesir(index - GamepadNumber.First, this.Current(), Input.GetJoystickNames()[index - GamepadNumber.First]))
                        {
                            result = (Input.GetButton(string.Concat(new object[]
                            {
                                "Gamesir_BTN_",
                                buttonName,
                                "_",
                                index
                            })) || this.gamesirUnityInput.CallStatic <bool>("GetButton", new object[]
                            {
                                num,
                                (int)index
                            }));
                            return(result);
                        }
                        result = false;
                        return(result);
                    }
                    catch
                    {
                        bool result = false;
                        return(result);
                    }
                }
                return(this.gamesirUnityInput.CallStatic <bool>("GetButton", new object[]
                {
                    num,
                    (int)index
                }));
            }
            return(false);
        }