public static HotkeyButtons GetHotkeyButtons(NpadKeyboard npad, KeyboardState keyboard) { HotkeyButtons buttons = 0; if (keyboard[(Key)npad.Hotkeys.ToggleVsync]) { buttons |= HotkeyButtons.ToggleVSync; } return(buttons); }
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); }
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); }
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")) }); }
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); }