private void SaveWorkspace() { var general = m_deviceConfiguration.General; { // Profiles Tab for (var i = 0; i < general.Profiles.Length; i++) { var tabContent = (ProfileTabContent)ProfilesTabControl.TabPages[i].Controls[0]; tabContent.Save(general.Profiles[i]); } general.SelectedProfile = SelectedProfleComboBox.GetSelectedItem <byte>(); general.IsSmartEnabled = SmartCheckBox.Checked; } var ui = m_deviceConfiguration.Interface; { // General -> Screen Tab ui.Brightness = (byte)BrightnessTrackBar.Value; ui.DimTimeout = (byte)IdleTimeUpDow.Value; ui.PuffScreenDelay = (byte)(PuffScreenDelayUpDown.Value * 10); ui.IsStealthMode = StealthModeCheckBox.Checked; ui.IsFlipped = FlippedModeCheckBox.Checked; ui.MainScreenSkin = MainScreenSkinComboBox.GetSelectedItem <ArcticFoxConfiguration.Skin>(); ui.IsClassicMenu = UseClassicMenuCheckBox.Checked; ui.IsLogoEnabled = ShowLogoCheckBox.Checked; ui.IsClockOnMainScreen = ShowClockCheckBox.Checked; ui.ClockType = ClockTypeComboBox.GetSelectedItem <ArcticFoxConfiguration.ClockType>(); ui.ScreensaveDuration = ScreensaverTimeComboBox.GetSelectedItem <ArcticFoxConfiguration.ScreenProtectionTime>(); ui.ChargeScreenType = ChargeScreenComboBox.GetSelectedItem <ArcticFoxConfiguration.ChargeScreenType>(); // General -> Layout Tab -> Classic Screen ui.ClassicSkinVWLines.Line1 = SaveLineContent(ClassicVWLine1ComboBox, ClassicVWLine1FireCheckBox); ui.ClassicSkinVWLines.Line2 = SaveLineContent(ClassicVWLine2ComboBox, ClassicVWLine2FireCheckBox); ui.ClassicSkinVWLines.Line3 = SaveLineContent(ClassicVWLine3ComboBox, ClassicVWLine3FireCheckBox); ui.ClassicSkinVWLines.Line4 = SaveLineContent(ClassicVWLine4ComboBox, ClassicVWLine4FireCheckBox); ui.ClassicSkinTCLines.Line1 = SaveLineContent(ClassicTCLine1ComboBox, ClassicTCLine1FireCheckBox); ui.ClassicSkinTCLines.Line2 = SaveLineContent(ClassicTCLine2ComboBox, ClassicTCLine2FireCheckBox); ui.ClassicSkinTCLines.Line3 = SaveLineContent(ClassicTCLine3ComboBox, ClassicTCLine3FireCheckBox); ui.ClassicSkinTCLines.Line4 = SaveLineContent(ClassicTCLine4ComboBox, ClassicTCLine4FireCheckBox); // General -> Layout Tab -> Circle Screen ui.CircleSkinVWLines.Line1 = SaveLineContent(CircleVWLine1ComboBox); ui.CircleSkinVWLines.Line2 = SaveLineContent(CircleVWLine2ComboBox); ui.CircleSkinVWLines.Line3 = SaveLineContent(CircleVWLine3ComboBox, CircleVWLine3FireCheckBox); ui.CircleSkinTCLines.Line1 = SaveLineContent(CircleTCLine1ComboBox); ui.CircleSkinTCLines.Line2 = SaveLineContent(CircleTCLine2ComboBox); ui.CircleSkinTCLines.Line3 = SaveLineContent(CircleTCLine3ComboBox, CircleTCLine3FireCheckBox); // General -> Layout Tab -> Small Screen ui.SmallSkinVWLines.Line1 = SaveLineContent(SmallVWLine1ComboBox, SmallVWLine1FireCheckBox); ui.SmallSkinVWLines.Line2 = SaveLineContent(SmallVWLine2ComboBox, SmallVWLine2FireCheckBox); ui.SmallSkinTCLines.Line1 = SaveLineContent(SmallTCLine1ComboBox, SmallTCLine1FireCheckBox); ui.SmallSkinTCLines.Line2 = SaveLineContent(SmallTCLine2ComboBox, SmallTCLine2FireCheckBox); // General -> Controls Tab ui.ClicksVW[0] = ClicksVW2ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksVW[1] = ClicksVW3ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksVW[2] = ClicksVW4ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksTC[0] = ClicksTC2ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksTC[1] = ClicksTC3ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.ClicksTC[2] = ClicksTC4ComboBox.GetSelectedItem <ArcticFoxConfiguration.ClickAction>(); ui.IsUpDownSwapped = UpDownButtonsComboBox.GetSelectedItem <bool>(); ui.WakeUpByPlusMinus = WakeUpByPlusMinusCheckBox.Checked; ui.IsPowerStep1W = Step1WCheckBox.Checked; } var stats = m_deviceConfiguration.Counters; { var now = DateTime.Now; // General -> Stats Tab stats.PuffsCount = (uint)PuffsUpDown.Value; stats.PuffsTime = (uint)(PuffsTimeUpDown.Value * 10); // Time sync stats.DateTime.Year = (ushort)now.Year; stats.DateTime.Month = (byte)now.Month; stats.DateTime.Day = (byte)now.Day; stats.DateTime.Hour = (byte)now.Hour; stats.DateTime.Minute = (byte)now.Minute; stats.DateTime.Second = (byte)now.Second; ui.PuffsTimeFormat = PuffsTimeFormatComboBox.GetSelectedItem <ArcticFoxConfiguration.PuffsTimeFormat>(); } var advanced = m_deviceConfiguration.Advanced; { advanced.PuffCutOff = (byte)(PuffCutOffUpDown.Value * 10); advanced.ShuntCorrection = (byte)ShuntCorrectionUpDown.Value; advanced.BatteryModel = BatteryModelComboBox.GetSelectedItem <ArcticFoxConfiguration.BatteryModel>(); advanced.IsX32 = X32CheckBox.Checked; advanced.IsLightSleepMode = LightSleepCheckBox.Checked; advanced.ResetCountersOnStartup = ResetCountersCheckBox.Checked; advanced.CheckTCR = CheckTCRCheckBox.Checked; advanced.IsUsbCharge = UsbChargeCheckBox.Checked; advanced.UsbNoSleep = UsbNoSleepCheckBox.Checked; advanced.BatteryVoltageOffsets[0] = (sbyte)(Battery1OffsetUpDown.Value * 100); advanced.BatteryVoltageOffsets[1] = (sbyte)(Battery2OffsetUpDown.Value * 100); advanced.BatteryVoltageOffsets[2] = (sbyte)(Battery3OffsetUpDown.Value * 100); advanced.BatteryVoltageOffsets[3] = (sbyte)(Battery4OffsetUpDown.Value * 100); } }
private void InitializeWorkspace() { var deviceInfo = m_deviceConfiguration.Info; { DeviceNameLabel.Text = HidDeviceInfo.Get(deviceInfo.ProductId).Name; FirmwareVersionTextBox.Text = (deviceInfo.FirmwareVersion / 100f).ToString("0.00", CultureInfo.InvariantCulture); BuildTextBox.Text = deviceInfo.FirmwareBuild.ToString(); HardwareVersionTextBox.Text = (deviceInfo.HardwareVersion / 100f).ToString("0.00", CultureInfo.InvariantCulture); if (deviceInfo.DisplaySize == ArcticFoxConfiguration.DisplaySize.W96H16) { MainScreenSkinLabel.Visible = MainScreenSkinComboBox.Visible = false; ClockTypeLabel.Visible = ClockTypeComboBox.Visible = false; UseClassicMenuLabel.Visible = UseClassicMenuCheckBox.Visible = false; } Battery2OffsetLabel.Visible = Battery2OffsetUpDown.Visible = Battery2OffsetVoltsLabel.Visible = deviceInfo.NumberOfBatteries > 1; Battery3OffsetLabel.Visible = Battery3OffsetUpDown.Visible = Battery3OffsetVoltsLabel.Visible = deviceInfo.NumberOfBatteries > 2; Battery4OffsetLabel.Visible = Battery4OffsetUpDown.Visible = Battery4OffsetVoltsLabel.Visible = deviceInfo.NumberOfBatteries > 3; } var general = m_deviceConfiguration.General; { for (var i = 0; i < general.Profiles.Length; i++) { var tabName = "P" + (i + 1); ProfileTabContent tabContent; if (ProfilesTabControl.TabPages.Count <= i) { var tabPage = new TabPage(tabName); tabContent = new ProfileTabContent(this) { Dock = DockStyle.Fill }; tabPage.Controls.Add(tabContent); ProfilesTabControl.TabPages.Add(tabPage); SelectedProfleComboBox.Items.Add(new NamedItemContainer <byte>(tabName, (byte)i)); } else { tabContent = (ProfileTabContent)ProfilesTabControl.TabPages[i].Controls[0]; } tabContent.Initialize(m_deviceConfiguration, i); tabContent.UpdatePowerCurveNames(m_deviceConfiguration.Advanced.PowerCurves); tabContent.UpdateTFRNames(m_deviceConfiguration.Advanced.TFRTables); } ProfilesTabControl.SelectedIndex = Math.Max(0, Math.Min(general.SelectedProfile, ProfilesTabControl.TabCount)); SelectedProfleComboBox.SelectItem(general.SelectedProfile); SmartCheckBox.Checked = general.IsSmartEnabled; } var ui = m_deviceConfiguration.Interface; { BrightnessTrackBar.Value = ui.Brightness; IdleTimeUpDow.SetValue(ui.DimTimeout); PuffScreenDelayUpDown.SetValue(ui.PuffScreenDelay / 10m); StealthModeCheckBox.Checked = ui.IsStealthMode; FlippedModeCheckBox.Checked = ui.IsFlipped; MainScreenSkinComboBox.SelectItem(ui.MainScreenSkin); UseClassicMenuCheckBox.Checked = ui.IsClassicMenu; ShowLogoCheckBox.Checked = ui.IsLogoEnabled; ShowClockCheckBox.Checked = ui.IsClockOnMainScreen; ClockTypeComboBox.SelectItem(ui.ClockType); ScreensaverTimeComboBox.SelectItem(ui.ScreensaveDuration); ChargeScreenComboBox.SelectItem(ui.ChargeScreenType); // Classic Screen InitializeLineContentEditor(ui.ClassicSkinVWLines.Line1, ClassicVWLine1ComboBox, ClassicVWLine1FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinVWLines.Line2, ClassicVWLine2ComboBox, ClassicVWLine2FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinVWLines.Line3, ClassicVWLine3ComboBox, ClassicVWLine3FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinVWLines.Line4, ClassicVWLine4ComboBox, ClassicVWLine4FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinTCLines.Line1, ClassicTCLine1ComboBox, ClassicTCLine1FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinTCLines.Line2, ClassicTCLine2ComboBox, ClassicTCLine2FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinTCLines.Line3, ClassicTCLine3ComboBox, ClassicTCLine3FireCheckBox); InitializeLineContentEditor(ui.ClassicSkinTCLines.Line4, ClassicTCLine4ComboBox, ClassicTCLine4FireCheckBox); // Circle Screen InitializeLineContentEditor(ui.CircleSkinVWLines.Line1, CircleVWLine1ComboBox); InitializeLineContentEditor(ui.CircleSkinVWLines.Line2, CircleVWLine2ComboBox); InitializeLineContentEditor(ui.CircleSkinVWLines.Line3, CircleVWLine3ComboBox, CircleVWLine3FireCheckBox); InitializeLineContentEditor(ui.CircleSkinTCLines.Line1, CircleTCLine1ComboBox); InitializeLineContentEditor(ui.CircleSkinTCLines.Line2, CircleTCLine2ComboBox); InitializeLineContentEditor(ui.CircleSkinTCLines.Line3, CircleTCLine3ComboBox, CircleTCLine3FireCheckBox); // Small Screen InitializeLineContentEditor(ui.SmallSkinVWLines.Line1, SmallVWLine1ComboBox, SmallVWLine1FireCheckBox); InitializeLineContentEditor(ui.SmallSkinVWLines.Line2, SmallVWLine2ComboBox, SmallVWLine2FireCheckBox); InitializeLineContentEditor(ui.SmallSkinTCLines.Line1, SmallTCLine1ComboBox, SmallTCLine1FireCheckBox); InitializeLineContentEditor(ui.SmallSkinTCLines.Line2, SmallTCLine2ComboBox, SmallTCLine2FireCheckBox); ClicksVW2ComboBox.SelectItem(ui.ClicksVW[0]); ClicksVW3ComboBox.SelectItem(ui.ClicksVW[1]); ClicksVW4ComboBox.SelectItem(ui.ClicksVW[2]); ClicksTC2ComboBox.SelectItem(ui.ClicksTC[0]); ClicksTC3ComboBox.SelectItem(ui.ClicksTC[1]); ClicksTC4ComboBox.SelectItem(ui.ClicksTC[2]); UpDownButtonsComboBox.SelectItem(ui.IsUpDownSwapped); WakeUpByPlusMinusCheckBox.Checked = ui.WakeUpByPlusMinus; Step1WCheckBox.Checked = ui.IsPowerStep1W; LayoutTabControl.SelectedTab = deviceInfo.DisplaySize == ArcticFoxConfiguration.DisplaySize.W64H128 ? ui.MainScreenSkin == ArcticFoxConfiguration.Skin.Classic ? ClassicScreenTabPage : CircleScreenTabPage : SmallScreenTabPage; } var stats = m_deviceConfiguration.Counters; { PuffsUpDown.SetValue(stats.PuffsCount); PuffsTimeUpDown.SetValue(stats.PuffsTime / 10m); PuffsTimeFormatComboBox.SelectItem(ui.PuffsTimeFormat); } var advanced = m_deviceConfiguration.Advanced; { PuffCutOffUpDown.SetValue(advanced.PuffCutOff / 10m); ShuntCorrectionUpDown.SetValue(advanced.ShuntCorrection); BatteryModelComboBox.SelectItem(advanced.BatteryModel); X32CheckBox.Checked = advanced.IsX32; LightSleepCheckBox.Checked = advanced.IsLightSleepMode; ResetCountersCheckBox.Checked = advanced.ResetCountersOnStartup; CheckTCRCheckBox.Checked = advanced.CheckTCR; UsbChargeCheckBox.Checked = advanced.IsUsbCharge; UsbNoSleepCheckBox.Checked = advanced.UsbNoSleep; Battery1OffsetUpDown.SetValue(advanced.BatteryVoltageOffsets[0] / 100m); Battery2OffsetUpDown.SetValue(advanced.BatteryVoltageOffsets[1] / 100m); Battery3OffsetUpDown.SetValue(advanced.BatteryVoltageOffsets[2] / 100m); Battery4OffsetUpDown.SetValue(advanced.BatteryVoltageOffsets[3] / 100m); PowerCurvesListView.Items.Clear(); PowerCurvesListView.LargeImageList.Images.Clear(); for (var i = 0; i < m_deviceConfiguration.Advanced.PowerCurves.Length; i++) { var powerCurve = m_deviceConfiguration.Advanced.PowerCurves[i]; var bitmap = ChartPreviewService.CreatePowerCurvePreview(powerCurve, PowerCurvesListView.LargeImageList.ImageSize); PowerCurvesListView.LargeImageList.Images.Add(bitmap); PowerCurvesListView.Items.Add(new ListViewItem(powerCurve.Name, i) { Tag = i }); } MaterialsListView.Items.Clear(); MaterialsListView.LargeImageList.Images.Clear(); for (var i = 0; i < m_deviceConfiguration.Advanced.TFRTables.Length; i++) { var tfrTable = m_deviceConfiguration.Advanced.TFRTables[i]; var bitmap = ChartPreviewService.CreateTFRCurvePreview(tfrTable, PowerCurvesListView.LargeImageList.ImageSize); MaterialsListView.LargeImageList.Images.Add(bitmap); MaterialsListView.Items.Add(new ListViewItem("[TFR] " + tfrTable.Name, i) { Tag = i }); } } }