コード例 #1
0
ファイル: KeyboardControls.cs プロジェクト: yltee1/Ryujinx
        public static HotkeyButtons GetHotkeyButtons(NpadKeyboard npad, KeyboardState keyboard)
        {
            HotkeyButtons buttons = 0;

            if (keyboard[(Key)npad.Hotkeys.ToggleVsync])
            {
                buttons |= HotkeyButtons.ToggleVSync;
            }

            return(buttons);
        }
コード例 #2
0
ファイル: KeyboardControls.cs プロジェクト: yltee1/Ryujinx
        public static (short, short) GetLeftStick(NpadKeyboard npad, KeyboardState keyboard)
        {
            short dx = 0;
            short dy = 0;

            if (keyboard[(Key)npad.LeftJoycon.StickUp])
            {
                dy = short.MaxValue;
            }
            if (keyboard[(Key)npad.LeftJoycon.StickDown])
            {
                dy = -short.MaxValue;
            }
            if (keyboard[(Key)npad.LeftJoycon.StickLeft])
            {
                dx = -short.MaxValue;
            }
            if (keyboard[(Key)npad.LeftJoycon.StickRight])
            {
                dx = short.MaxValue;
            }

            return(dx, dy);
        }
コード例 #3
0
ファイル: KeyboardControls.cs プロジェクト: yltee1/Ryujinx
        public static KeyboardInput GetKeysDown(NpadKeyboard npad, KeyboardState keyboard)
        {
            KeyboardInput hidKeyboard = new KeyboardInput
            {
                Modifier = 0,
                Keys     = new int[0x8]
            };

            foreach (KeyMappingEntry entry in KeyMapping)
            {
                int value = keyboard[entry.TargetKey] ? 1 : 0;

                hidKeyboard.Keys[entry.Target / 0x20] |= (value << (entry.Target % 0x20));
            }

            foreach (KeyMappingEntry entry in KeyModifierMapping)
            {
                int value = keyboard[entry.TargetKey] ? 1 : 0;

                hidKeyboard.Modifier |= value << entry.Target;
            }

            return(hidKeyboard);
        }
コード例 #4
0
ファイル: Config.cs プロジェクト: noprojectcode/Ryujinx
        public static void Read(Switch device)
        {
            string iniFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

            string iniPath = Path.Combine(iniFolder, "Ryujinx.conf");

            IniParser parser = new IniParser(iniPath);

            GraphicsConfig.ShadersDumpPath = parser.Value("Graphics_Shaders_Dump_Path");

            Logger.SetEnable(LogLevel.Debug, Convert.ToBoolean(parser.Value("Logging_Enable_Debug")));
            Logger.SetEnable(LogLevel.Stub, Convert.ToBoolean(parser.Value("Logging_Enable_Stub")));
            Logger.SetEnable(LogLevel.Info, Convert.ToBoolean(parser.Value("Logging_Enable_Info")));
            Logger.SetEnable(LogLevel.Warning, Convert.ToBoolean(parser.Value("Logging_Enable_Warn")));
            Logger.SetEnable(LogLevel.Error, Convert.ToBoolean(parser.Value("Logging_Enable_Error")));

            string[] filteredLogClasses = parser.Value("Logging_Filtered_Classes").Split(',', StringSplitOptions.RemoveEmptyEntries);

            //When the classes are specified on the list, we only
            //enable the classes that are on the list.
            //So, first disable everything, then enable
            //the classes that the user added to the list.
            if (filteredLogClasses.Length > 0)
            {
                foreach (LogClass Class in Enum.GetValues(typeof(LogClass)))
                {
                    Logger.SetEnable(Class, false);
                }
            }

            foreach (string logClass in filteredLogClasses)
            {
                if (!string.IsNullOrEmpty(logClass.Trim()))
                {
                    foreach (LogClass Class in Enum.GetValues(typeof(LogClass)))
                    {
                        if (Class.ToString().ToLower().Contains(logClass.Trim().ToLower()))
                        {
                            Logger.SetEnable(Class, true);
                        }
                    }
                }
            }

            SystemLanguage SetLanguage = Enum.Parse <SystemLanguage>(parser.Value("System_Language"));

            device.System.State.SetLanguage(SetLanguage);

            device.System.State.DockedMode = Convert.ToBoolean(parser.Value("Docked_Mode"));

            device.EnableDeviceVsync = Convert.ToBoolean(parser.Value("Enable_Vsync"));

            if (Convert.ToBoolean(parser.Value("Enable_MultiCore_Scheduling")))
            {
                device.System.EnableMultiCoreScheduling();
            }

            device.System.FsIntegrityCheckLevel = Convert.ToBoolean(parser.Value("Enable_FS_Integrity_Checks"))
                ? IntegrityCheckLevel.ErrorOnInvalid
                : IntegrityCheckLevel.None;

            HidControllerType ControllerType = Enum.Parse <HidControllerType>(parser.Value("Controller_Type"));

            device.Hid.InitilizePrimaryController(ControllerType);

            NpadKeyboard = new NpadKeyboard(

                new NpadKeyboardLeft
            {
                StickUp     = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Up")),
                StickDown   = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Down")),
                StickLeft   = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Left")),
                StickRight  = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Right")),
                StickButton = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Stick_Button")),
                DPadUp      = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Up")),
                DPadDown    = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Down")),
                DPadLeft    = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Left")),
                DPadRight   = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_DPad_Right")),
                ButtonMinus = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Button_Minus")),
                ButtonL     = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Button_L")),
                ButtonZl    = Convert.ToInt16(parser.Value("Controls_Left_JoyConKeyboard_Button_ZL"))
            },

                new NpadKeyboardRight
            {
                StickUp     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Up")),
                StickDown   = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Down")),
                StickLeft   = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Left")),
                StickRight  = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Right")),
                StickButton = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Stick_Button")),
                ButtonA     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_A")),
                ButtonB     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_B")),
                ButtonX     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_X")),
                ButtonY     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_Y")),
                ButtonPlus  = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_Plus")),
                ButtonR     = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_R")),
                ButtonZr    = Convert.ToInt16(parser.Value("Controls_Right_JoyConKeyboard_Button_ZR"))
            });

            NpadController = new NpadController(

                Convert.ToBoolean(parser.Value("GamePad_Enable")),
                Convert.ToInt32(parser.Value("GamePad_Index")),
                (float)Convert.ToDouble(parser.Value("GamePad_Deadzone"), CultureInfo.InvariantCulture),
                (float)Convert.ToDouble(parser.Value("GamePad_Trigger_Threshold"), CultureInfo.InvariantCulture),

                new NpadControllerLeft
            {
                Stick       = ToId(parser.Value("Controls_Left_JoyConController_Stick")),
                StickButton = ToId(parser.Value("Controls_Left_JoyConController_Stick_Button")),
                DPadUp      = ToId(parser.Value("Controls_Left_JoyConController_DPad_Up")),
                DPadDown    = ToId(parser.Value("Controls_Left_JoyConController_DPad_Down")),
                DPadLeft    = ToId(parser.Value("Controls_Left_JoyConController_DPad_Left")),
                DPadRight   = ToId(parser.Value("Controls_Left_JoyConController_DPad_Right")),
                ButtonMinus = ToId(parser.Value("Controls_Left_JoyConController_Button_Minus")),
                ButtonL     = ToId(parser.Value("Controls_Left_JoyConController_Button_L")),
                ButtonZl    = ToId(parser.Value("Controls_Left_JoyConController_Button_ZL"))
            },

                new NpadControllerRight
            {
                Stick       = ToId(parser.Value("Controls_Right_JoyConController_Stick")),
                StickButton = ToId(parser.Value("Controls_Right_JoyConController_Stick_Button")),
                ButtonA     = ToId(parser.Value("Controls_Right_JoyConController_Button_A")),
                ButtonB     = ToId(parser.Value("Controls_Right_JoyConController_Button_B")),
                ButtonX     = ToId(parser.Value("Controls_Right_JoyConController_Button_X")),
                ButtonY     = ToId(parser.Value("Controls_Right_JoyConController_Button_Y")),
                ButtonPlus  = ToId(parser.Value("Controls_Right_JoyConController_Button_Plus")),
                ButtonR     = ToId(parser.Value("Controls_Right_JoyConController_Button_R")),
                ButtonZr    = ToId(parser.Value("Controls_Right_JoyConController_Button_ZR"))
            });
        }
コード例 #5
0
ファイル: KeyboardControls.cs プロジェクト: yltee1/Ryujinx
        public static ControllerKeys GetButtons(NpadKeyboard npad, KeyboardState keyboard)
        {
            ControllerKeys buttons = 0;

            if (keyboard[(Key)npad.LeftJoycon.StickButton])
            {
                buttons |= ControllerKeys.LStick;
            }
            if (keyboard[(Key)npad.LeftJoycon.DPadUp])
            {
                buttons |= ControllerKeys.DpadUp;
            }
            if (keyboard[(Key)npad.LeftJoycon.DPadDown])
            {
                buttons |= ControllerKeys.DpadDown;
            }
            if (keyboard[(Key)npad.LeftJoycon.DPadLeft])
            {
                buttons |= ControllerKeys.DpadLeft;
            }
            if (keyboard[(Key)npad.LeftJoycon.DPadRight])
            {
                buttons |= ControllerKeys.DpadRight;
            }
            if (keyboard[(Key)npad.LeftJoycon.ButtonMinus])
            {
                buttons |= ControllerKeys.Minus;
            }
            if (keyboard[(Key)npad.LeftJoycon.ButtonL])
            {
                buttons |= ControllerKeys.L | ControllerKeys.Sl;
            }
            if (keyboard[(Key)npad.LeftJoycon.ButtonZl])
            {
                buttons |= ControllerKeys.Zl;
            }

            if (keyboard[(Key)npad.RightJoycon.StickButton])
            {
                buttons |= ControllerKeys.RStick;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonA])
            {
                buttons |= ControllerKeys.A;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonB])
            {
                buttons |= ControllerKeys.B;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonX])
            {
                buttons |= ControllerKeys.X;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonY])
            {
                buttons |= ControllerKeys.Y;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonPlus])
            {
                buttons |= ControllerKeys.Plus;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonR])
            {
                buttons |= ControllerKeys.R | ControllerKeys.Sr;
            }
            if (keyboard[(Key)npad.RightJoycon.ButtonZr])
            {
                buttons |= ControllerKeys.Zr;
            }

            return(buttons);
        }