Beispiel #1
0
        private void onEC_Event(object sender, CustomEventArgs e)
        {
            Config config = SingleInstanceManager.Instance.cfg;
            EC     ec     = SingleInstanceManager.Instance.ec;

            lock (this)
            {
                int fanmode = 0;
                switch (e.Message)
                {
                case "106":    //MaxQ
                    fanmode = 5;
                    ec.SetWMI(121, 0, (uint)fanmode);
                    goto Save;

                case "107":    //EC Custom
                    fanmode = 6;
                    ec.SetWMI(121, 0, (uint)fanmode);
                    goto Save;

                case "112":    //EC Auto(default value)
                    if (config.FanMode == 4)
                    {
                        ShouldUpdate = true;    //switch to our fan
                    }
                    else
                    {
                        fanmode = 0;
                        ec.SetWMI(121, 0, (uint)fanmode);
                    }
                    goto Save;

                case "143":    //Max
                    fanmode = 1;
                    if (config.FanMode == 4)
                    {
                        ec.SetWMI(121, 0, (uint)0);    //need to set auto first,or it may struck sometime
                    }
                    ec.SetWMI(121, 0, (uint)fanmode);
                    goto Save;
                }
                return;

Save:
                if (!(config.FanMode == 4))
                {
                    config.FanMode = fanmode;//Not our fan, save config
                }
                else if (fanmode != 0)
                {
                    ShouldUpdate = false;
                }
            }
        }
        private void _Mode_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            EC  ec     = SingleInstanceManager.Instance.ec;
            var config = SingleInstanceManager.Instance.cfg;
            var item   = sender as ComboBox;

            lock (SingleInstanceManager.Instance.controller)
            {
                if (item.SelectedIndex == 4)
                {
                    SingleInstanceManager.Instance.controller.ShouldUpdate = true;
                }
                else
                {
                    if (config.FanMode == 4)
                    {
                        ec.SetFanModeAuto();
                    }
                    SingleInstanceManager.Instance.controller.ShouldUpdate = false;
                }
            }
            if (item.SelectedIndex >= 0 && item.SelectedIndex < 7 && item.SelectedIndex != 4)
            {
                ec.SetWMI(121, 1, Convert.ToUInt32(item.SelectedIndex));
            }
            config.FanMode = item.SelectedIndex;
        }