public void SetMapping(StandardConfiguration stdConfig, RgbConfiguration rgbConfig) { options[OptionStrings.BoardLabel].SetText(stdConfig.Label); options[OptionStrings.FlagsCheck].SetCheck(stdConfig.Flags); options[OptionStrings.Qe1Sensitivity].SetCombo(ConfigDefines.ByteToCombo(stdConfig.QE1Sens)); options[OptionStrings.Qe1ReductionRatio].SetCombo(stdConfig.QE1ReductionRatio); options[OptionStrings.Qe2Sensitivity].SetCombo(ConfigDefines.ByteToCombo(stdConfig.QE2Sens)); options[OptionStrings.Qe2ReductionRatio].SetCombo(stdConfig.QE2ReductionRatio); options[OptionStrings.Ps2Mode].SetCombo(stdConfig.PS2Mode); options[OptionStrings.RgbInterface].SetCombo(stdConfig.RgbInterface); options[OptionStrings.RgbBrightness].SetNumber(stdConfig.RgbBrightness); options[OptionStrings.DebounceTime].SetNumber(stdConfig.ButtonDebounce); options[OptionStrings.RgbMode].SetCombo(rgbConfig.Mode); options[OptionStrings.RgbConfig].SetButtonColor(0, rgbConfig.Led1Hue); options[OptionStrings.RgbConfig].SetButtonColor(1, rgbConfig.Led2Hue); options[OptionStrings.AxisDebounceTime].SetNumber(stdConfig.AxisDebounce); options[OptionStrings.AxisSustainTime].SetNumber(stdConfig.AxisSustain); options[OptionStrings.AscEmulation].SetCombo(stdConfig.AscEmulation); options[OptionStrings.ControllerOutput].SetCombo(stdConfig.ControllerOutput); }
public bool ReadConfig() { configBytes.Clear(); HidStream hidStream; if (Device.TryOpen(out hidStream)) { using (hidStream) { try { int attempts = 0; while (attempts < maxConfig) { byte[] config = new byte[64]; config[0] = 0xc0; hidStream.GetFeature(config); if (config[0] != 0xc0) { //StatusWrite("Mismatch in config report ID"); } else { if (!configBytes.ContainsKey(config[1])) { configBytes.Add(config[1], config); switch (config[1]) { case 0: StdConfig = new StandardConfiguration(config); break; case 1: RgbConfig = new RgbConfiguration(config); break; case 2: KeyConfig = new KeyMappingConfiguration(config); break; case 3: DeviceConfig = new DeviceConfiguration(config); break; } } attempts++; } } if (configBytes.Count == 0) { //StatusWrite("Failed to get any config reports."); } else { //StatusWrite($"Found {configBytes.Count} config reports."); } } catch (Exception ex) { //StatusWrite("Failed to get config. Please disconnect and reconnect the board."); return(false); } } } else { //StatusWrite("Failed to open device. Please disconnect and reconnect."); return(false); } return(true); }
public bool ReadConfig() { configBytes.Clear(); HidStream hidStream; if (Device.TryOpen(out hidStream)) { using (hidStream) { try { int attempts = 0; while (attempts < maxConfig) { byte[] config = new byte[64]; config[0] = 0xc0; hidStream.GetFeature(config); if (config[0] != 0xc0) { //StatusWrite("Mismatch in config report ID"); attempts++; } else { if (!configBytes.ContainsKey(config[1])) { configBytes.Add(config[1], config); switch (config[1]) { case 0: StdConfig = new StandardConfiguration(config); break; case 1: RgbConfig = new RgbConfiguration(config); break; case 2: KeyConfig = new KeyMappingConfiguration(config); break; case 3: DeviceConfig = new DeviceConfiguration(config); break; } } attempts++; } } NumConfigPages = configBytes.Count; } catch (Exception ex) { return(false); } } } else { return(false); } return(true); }