public override bool Get(Buttons btn)
        {
            var joycon = JoyCon;

            if (joycon != null)
            {
                switch (btn)
                {
                case Buttons.A: return(JoyCon.GetButton(joycon.isLeft ? Joycon.Button.DPAD_LEFT : Joycon.Button.DPAD_RIGHT));

                case Buttons.B: return(JoyCon.GetButton(joycon.isLeft ? Joycon.Button.DPAD_DOWN : Joycon.Button.DPAD_UP));

                case Buttons.X: return(JoyCon.GetButton(joycon.isLeft ? Joycon.Button.DPAD_UP : Joycon.Button.DPAD_DOWN));

                case Buttons.Y: return(JoyCon.GetButton(joycon.isLeft ? Joycon.Button.DPAD_RIGHT : Joycon.Button.DPAD_LEFT));

                case Buttons.R: return(JoyCon.GetButton(Joycon.Button.SR));

                case Buttons.L: return(JoyCon.GetButton(Joycon.Button.SL));

                    // TODO
                    //case Buttons.LeftStick: return st.Buttons.LeftStick == XnaInput.ButtonState.Pressed;
                    //case Buttons.RightStick: return st.Buttons.RightStick == XnaInput.ButtonState.Pressed;

                    //case Buttons.DPad_Left: return st.DPad.Left == XnaInput.ButtonState.Pressed;
                    //case Buttons.DPad_Right: return st.DPad.Right == XnaInput.ButtonState.Pressed;
                    //case Buttons.DPad_Up: return st.DPad.Up == XnaInput.ButtonState.Pressed;
                    //case Buttons.DPad_Down: return st.DPad.Down == XnaInput.ButtonState.Pressed;

                    //case Buttons.Select: return st.Buttons.Back == XnaInput.ButtonState.Pressed;
                    //case Buttons.Start: return st.Buttons.Start == XnaInput.ButtonState.Pressed;
                }
            }
            return(false);
        }
Example #2
0
        private void OnJoyConSplitting(object sender, JoyConSplittingEventArgs args)
        {
            lock (SplittingMonitor)
            {
                if (args.SplittingType == SplittingType.ReadyToSplit)
                {
                    if (_readyToSplitJoyCon == null)
                    {
                        Logger.Debug("JoyCon Ready to Split: " + args.SourceJoyCon);
                        _readyToSplitJoyCon = args.SourceJoyCon;
                    }
                    else
                    {
                        if (_readyToSplitJoyCon.Equals(args.SourceJoyCon) ||
                            _readyToSplitJoyCon.Type == args.SourceJoyCon.Type)
                        {
                            return;
                        }

                        var joyConPair = _pairJoyConList.FirstOrDefault(
                            joyCon => (joyCon.LeftJoyCon.Equals(_readyToSplitJoyCon) ||
                                       joyCon.LeftJoyCon.Equals(args.SourceJoyCon)) &&
                            (joyCon.RightJoyCon.Equals(_readyToSplitJoyCon) ||
                             joyCon.LeftJoyCon.Equals(args.SourceJoyCon)));
                        if (joyConPair == null)
                        {
                            return;
                        }

                        Logger.Debug("Start splitting of: " + args.SourceJoyCon + " and " + _readyToSplitJoyCon);

                        lock (ListMonitor)
                        {
                            //Remove joycon pair
                            _pairJoyConList.Remove(joyConPair);
                            JoyConUpdated?.Invoke(this, new JoyConUpdateEventArgs(joyConPair, JoyConUpdateType.Disconnected));
                            //Add joycon singles
                            joyConPair.LeftJoyCon.UnPair();
                            _singleJoyConList.Add(joyConPair.LeftJoyCon);
                            JoyConUpdated?.Invoke(this,
                                                  new JoyConUpdateEventArgs(joyConPair.LeftJoyCon, JoyConUpdateType.Connected));
                            _singleJoyConList.Add(joyConPair.RightJoyCon);
                            JoyConUpdated?.Invoke(this,
                                                  new JoyConUpdateEventArgs(joyConPair.RightJoyCon, JoyConUpdateType.Connected));
                        }

                        _readyToSplitJoyCon = null;
                    }
                }
                else if (args.SplittingType == SplittingType.CancelSplitting)
                {
                    Logger.Debug("JoyCon Splitting canceled: " + args.SourceJoyCon);
                    _readyToSplitJoyCon = null;
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
        }
Example #3
0
        private void OnJoyConPairing(object sender, JoyConPairingEventArgs args)
        {
            lock (PairingMonitor)
            {
                if (args.PairingType == PairingType.ReadyToPair)
                {
                    if (_readyToPairJoyCon == null)
                    {
                        Logger.Debug("JoyCon Ready to Pair: " + args.SourceJoyCon);
                        _readyToPairJoyCon = args.SourceJoyCon;
                    }
                    else
                    {
                        if (_readyToPairJoyCon.Equals(args.SourceJoyCon) ||
                            _readyToPairJoyCon.Type == args.SourceJoyCon.Type)
                        {
                            return; //Detect same or same type (left / right) of joycon
                        }
                        Logger.Debug("Start pairing of: " + args.SourceJoyCon + " and " + _readyToPairJoyCon);

                        //Run pairing
                        var leftJoyCon = _readyToPairJoyCon.Type == JoyConType.Left
                            ? _readyToPairJoyCon
                            : args.SourceJoyCon;
                        var rightJoyCon = _readyToPairJoyCon.Type == JoyConType.Right
                            ? _readyToPairJoyCon
                            : args.SourceJoyCon;
                        lock (ListMonitor)
                        {
                            //Remove singles
                            _singleJoyConList.Remove(leftJoyCon);
                            JoyConUpdated?.Invoke(this,
                                                  new JoyConUpdateEventArgs(leftJoyCon, JoyConUpdateType.Disconnected));
                            _singleJoyConList.Remove(rightJoyCon);
                            JoyConUpdated?.Invoke(this,
                                                  new JoyConUpdateEventArgs(rightJoyCon, JoyConUpdateType.Disconnected));
                            //Add pair as new
                            var pairedJoyCon = new JoyConPair(leftJoyCon, rightJoyCon);
                            leftJoyCon.PairWith(rightJoyCon); //TODO: In JoyConPair?
                            _pairJoyConList.Add(pairedJoyCon);
                            JoyConUpdated?.Invoke(this,
                                                  new JoyConUpdateEventArgs(pairedJoyCon, JoyConUpdateType.Connected));
                        }

                        _readyToPairJoyCon = null;
                    }
                }
                else if (args.PairingType == PairingType.CancelPairing)
                {
                    Logger.Debug("JoyCon Pairing canceled: " + args.SourceJoyCon);
                    _readyToPairJoyCon = null;
                }
                else
                {
                    throw new NotImplementedException();
                }
            }
        }
Example #4
0
 void Awake()
 {
     // Create a layer mask for the floor layer.
     floorMask = LayerMask.GetMask("Floor");
     joystik   = GameObject.FindGameObjectWithTag("joistik").GetComponent <JoyCon>();
     joystik1  = GameObject.FindGameObjectWithTag("Joystik1").GetComponent <JoyCon>();
     // Set up references.
     anim            = GetComponent <Animator>();
     playerRigidbody = GetComponent <Rigidbody>();
     photonView      = GetComponent <PhotonView>();
 }
Example #5
0
        public static void Read()
        {
            var       iniFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            var       iniPath   = Path.Combine(iniFolder, "Ryujinx.conf");
            IniParser Parser    = new IniParser(iniPath);

            EnableMemoryChecks   = Convert.ToBoolean(Parser.Value("Enable_Memory_Checks"));
            LoggingEnableInfo    = Convert.ToBoolean(Parser.Value("Logging_Enable_Info"));
            LoggingEnableTrace   = Convert.ToBoolean(Parser.Value("Logging_Enable_Trace"));
            LoggingEnableDebug   = Convert.ToBoolean(Parser.Value("Logging_Enable_Debug"));
            LoggingEnableWarn    = Convert.ToBoolean(Parser.Value("Logging_Enable_Warn"));
            LoggingEnableError   = Convert.ToBoolean(Parser.Value("Logging_Enable_Error"));
            LoggingEnableFatal   = Convert.ToBoolean(Parser.Value("Logging_Enable_Fatal"));
            LoggingEnableIpc     = Convert.ToBoolean(Parser.Value("Logging_Enable_Ipc"));
            LoggingEnableLogFile = Convert.ToBoolean(Parser.Value("Logging_Enable_LogFile"));

            FakeJoyCon = new JoyCon
            {
                Left = new JoyConLeft
                {
                    StickUp     = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Up")),
                    StickDown   = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Down")),
                    StickLeft   = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Left")),
                    StickRight  = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Right")),
                    StickButton = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Button")),
                    DPadUp      = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Up")),
                    DPadDown    = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Down")),
                    DPadLeft    = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Left")),
                    DPadRight   = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Right")),
                    ButtonMinus = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Button_Minus")),
                    ButtonL     = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Button_L")),
                    ButtonZL    = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Button_ZL"))
                },

                Right = new JoyConRight
                {
                    StickUp     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Up")),
                    StickDown   = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Down")),
                    StickLeft   = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Left")),
                    StickRight  = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Right")),
                    StickButton = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Button")),
                    ButtonA     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_A")),
                    ButtonB     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_B")),
                    ButtonX     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_X")),
                    ButtonY     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_Y")),
                    ButtonPlus  = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_Plus")),
                    ButtonR     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_R")),
                    ButtonZR    = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_ZR"))
                }
            };
        }
Example #6
0
    public static Vector2 ReadSticks(Report report, JoyCon jc)
    {
        if (jc.Type == JoyConType.LEFT)
        {
            report.Seek(6);
        }
        else
        {
            report.Seek(9);
        }

        var temp = report.Read2UInt12();

        return(jc.CenterSticks(new Vector2(temp[0], temp[1])));
    }
Example #7
0
        public static IList <JoyCon> GetJoyConList()
        {
            var result = new List <JoyCon>();

            var devices = HidDevices.Enumerate(JoyConConstants.Vendor);

            foreach (var device in devices)
            {
                var joyConType = device.ToJoyConType();
                if (!joyConType.HasValue)
                {
                    continue;
                }

                var joyCon = new JoyCon(device);
                result.Add(joyCon);
            }

            return(result);
        }
Example #8
0
    public static Vector3[] ReadAcc(Report report, JoyCon jc)
    {
        var result = new Vector3[3];

        for (int i = 0; i < 3; i++)
        {
            report.Seek(13 + i * 12);
            var vec = report.ReadVector3Int16();
            vec.Scale(jc.accCalCoeff);

            if (jc.Type == JoyConType.LEFT)
            {
                result[i] = new Vector3(vec.y, -vec.x, vec.z);
            }
            else
            {
                result[i] = new Vector3(vec.y, vec.x, -vec.z);
            }
        }

        return(result);
    }
Example #9
0
    public static Vector3[] ReadGyro(Report report, JoyCon jc)
    {
        var result = new Vector3[3];

        for (int i = 0; i < 3; i++)
        {
            report.Seek(19 + i * 12);
            var vec = report.ReadVector3Int16();
            vec -= jc.sixAxisCal.gyroOrigin;
            vec.Scale(jc.gyroCalCoeff);

            if (jc.Type == JoyConType.LEFT)
            {
                result[i] = new Vector3(vec.y, -vec.x, vec.z);
            }
            else
            {
                result[i] = new Vector3(-vec.y, -vec.x, -vec.z);
            }
        }

        return(result);
    }
Example #10
0
 void Awake()
 {
     shot       = GameObject.FindGameObjectWithTag("Joystik1").GetComponent <JoyCon>();
     photonView = GetComponent <PhotonView>();
 }
Example #11
0
 public void setInput(JoyCon joycon)
 {
     input = joycon;
 }
Example #12
0
    // Update is called once per frame
    void Update()
    {
        input_Player2 = GMer.player2_Control.input;

        input_Player1 = GMer.player1_Control.input;

        if (player2_Button_Up && input_Player2.next)
        {
            if (!GMer.player2_Control.ready)
            {
                slter_Player2++;
            }

            player2_Button_Up = false;
        }
        else if (!input_Player2.next && !player2_Button_Up)
        {
            player2_Button_Up = true;
        }
        else if (input_Player2.reset && !GMer.player2_Control.ready)
        {
            GMer.player2_Control.ready = true;

            GMer.playerReady();
        }

        if (player1_Button_Up && input_Player1.next)
        {
            if (!GMer.player1_Control.ready)
            {
                slter_Player1++;
            }

            player1_Button_Up = false;
        }
        else if (!input_Player1.next && !player1_Button_Up)
        {
            player1_Button_Up = true;
        }
        else if (input_Player1.reset && !GMer.player1_Control.ready)
        {
            GMer.player1_Control.ready = true;

            GMer.playerReady();
        }

        slter_Player2 %= dishP2.Length;

        slter_Player1 %= dishP1.Length;

        for (int i = 0; i < dishP1.Length; i++)
        {
            if (i == slter_Player1)
            {
                dishP1[i].selected(true);
            }
            else
            {
                dishP1[i].selected(false);
            }
        }

        for (int i = 0; i < dishP2.Length; i++)
        {
            if (i == slter_Player2)
            {
                dishP2[i].selected(true);
            }
            else
            {
                dishP2[i].selected(false);
            }
        }
    }
Example #13
0
        public static void Read()
        {
            var       iniFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            var       iniPath   = Path.Combine(iniFolder, "Ryujinx.conf");
            IniParser Parser    = new IniParser(iniPath);

            EnableMemoryChecks     = Convert.ToBoolean(Parser.Value("Enable_Memory_Checks"));
            LoggingEnableInfo      = Convert.ToBoolean(Parser.Value("Logging_Enable_Info"));
            LoggingEnableTrace     = Convert.ToBoolean(Parser.Value("Logging_Enable_Trace"));
            LoggingEnableDebug     = Convert.ToBoolean(Parser.Value("Logging_Enable_Debug"));
            LoggingEnableWarn      = Convert.ToBoolean(Parser.Value("Logging_Enable_Warn"));
            LoggingEnableError     = Convert.ToBoolean(Parser.Value("Logging_Enable_Error"));
            LoggingEnableFatal     = Convert.ToBoolean(Parser.Value("Logging_Enable_Fatal"));
            LoggingEnableIpc       = Convert.ToBoolean(Parser.Value("Logging_Enable_Ipc"));
            LoggingEnableStub      = Convert.ToBoolean(Parser.Value("Logging_Enable_Stub"));
            LoggingEnableLogFile   = Convert.ToBoolean(Parser.Value("Logging_Enable_LogFile"));
            LoggingEnableFilter    = Convert.ToBoolean(Parser.Value("Logging_Enable_Filter"));
            LoggingFilteredClasses = new bool[(int)LogClass.Count];

            string[] FilteredLogClasses = Parser.Value("Logging_Filtered_Classes", string.Empty).Split(',');
            foreach (string LogClass in FilteredLogClasses)
            {
                if (!string.IsNullOrEmpty(LogClass.Trim()))
                {
                    foreach (LogClass EnumItemName in Enum.GetValues(typeof(LogClass)))
                    {
                        if (EnumItemName.ToString().ToLower().Contains(LogClass.Trim().ToLower()))
                        {
                            LoggingFilteredClasses[(int)EnumItemName] = true;
                        }
                    }
                }
            }

            FakeJoyCon = new JoyCon
            {
                Left = new JoyConLeft
                {
                    StickUp     = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Up")),
                    StickDown   = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Down")),
                    StickLeft   = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Left")),
                    StickRight  = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Right")),
                    StickButton = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Stick_Button")),
                    DPadUp      = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Up")),
                    DPadDown    = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Down")),
                    DPadLeft    = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Left")),
                    DPadRight   = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_DPad_Right")),
                    ButtonMinus = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Button_Minus")),
                    ButtonL     = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Button_L")),
                    ButtonZL    = Convert.ToInt16(Parser.Value("Controls_Left_FakeJoycon_Button_ZL"))
                },

                Right = new JoyConRight
                {
                    StickUp     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Up")),
                    StickDown   = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Down")),
                    StickLeft   = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Left")),
                    StickRight  = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Right")),
                    StickButton = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Stick_Button")),
                    ButtonA     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_A")),
                    ButtonB     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_B")),
                    ButtonX     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_X")),
                    ButtonY     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_Y")),
                    ButtonPlus  = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_Plus")),
                    ButtonR     = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_R")),
                    ButtonZR    = Convert.ToInt16(Parser.Value("Controls_Right_FakeJoycon_Button_ZR"))
                }
            };
        }
Example #14
0
 public static void Read(Report report, JoyCon jc)
 {
     report.Reader.BaseStream.Position = 1L;
 }