Example #1
0
        internal void UpdatePowerCurvePreview(int powerCurveIndex)
        {
            var powerCurve = m_deviceConfiguration.Advanced.PowerCurves[powerCurveIndex];

            UpdateListViewPreview(PowerCurvesListView, powerCurveIndex, ChartPreviewService.CreatePowerCurvePreview(powerCurve, PowerCurvesListView.LargeImageList.ImageSize));
        }
Example #2
0
        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
                    });
                }
            }
        }