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; }