Пример #1
0
        public App()
        {
            InvkSMBCtrl.LibInitial();

            Current.Exit          += (sender, args) => SaveConfiguration();
            Current.SessionEnding += (sender, args) => SaveConfiguration();

            SystemEvents.PowerModeChanged += OnPowerModeChanged;
        }
Пример #2
0
        private Motherboard()
        {
            if (InvkSMBCtrl.LibInitial() != 0)
            {
                throw new DeviceInitializationException();
            }

            ledId    = InvkSMBCtrl.GetLEDId();
            identity = (MBIdentify)InvkSMBCtrl.GetMBId();
            ConnectMcu();
            LoadMemoryModules();
        }
Пример #3
0
        static void Main(string[] args)
        {
            try
            {
                var argsObj = ArgsParser.Parse(args);

                if (argsObj.ChangeAudioLed || argsObj.ChangeRgbLed)
                {
                    InvkSMBCtrl.LibInitial();

                    if (argsObj.ChangeAudioLed && argsObj.Mode.HasValue)
                    {
                        var audioled = AudioLedController.Create();
                        if (audioled != null)
                        {
                            audioled.SetMode(argsObj.Mode.Value);
                        }
                    }

                    if (argsObj.ChangeRgbLed)
                    {
                        var rgbled = RgbLedController.Create();
                        if (rgbled == null)
                        {
                            return;
                        }

                        if (argsObj.Mode.HasValue)
                        {
                            rgbled.SetMode(argsObj.Mode.Value);
                        }

                        if (argsObj.Color.HasValue)
                        {
                            if (argsObj.Mode == LedMode.Off || argsObj.Mode == LedMode.Unknown)
                            {
                                return;
                            }

                            rgbled.SetColor(argsObj.Color.Value);
                        }
                    }
                }
            }
            catch (OptionException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Try `--help' for more information.");
            }
        }
        private bool IsLedFunctionNotSuported(uint siv_Pid)
        {
            if (siv_Pid == 4)
            {
                var MB_Id = (MBIdentify)InvkSMBCtrl.GetMBId();
                switch (MB_Id)
                {
                case MBIdentify.I_Z370:
                case MBIdentify.I_Z390:
                    break;

                default:
                    return(true);
                }
            }
            return(false);
        }
Пример #5
0
        private void UpdateAudioLedMode(LedMode audioLedMode)
        {
            IT87Enter(RegisterPort);
            Select(RegisterPort, ValuePort, 7);
            byte b  = ReadByte(RegisterPort, ValuePort, 251);
            byte b2 = ReadByte(RegisterPort, ValuePort, 210);
            byte b3 = ReadByte(RegisterPort, ValuePort, 208);

            switch (audioLedMode)
            {
            case LedMode.Off:
                b2 = (byte)(b2 | 2);
                WriteByte(RegisterPort, ValuePort, 210, b2);
                b3 = (byte)(b3 & 0xFD);
                InvkSMBCtrl.Pch_D22_Ctrl(0);
                b = (byte)(b & 0x6F);
                break;

            case LedMode.Still:
                b2 = (byte)(b2 | 2);
                WriteByte(RegisterPort, ValuePort, 210, b2);
                b3 = (byte)(b3 & 0xFD);
                InvkSMBCtrl.Pch_D22_Ctrl(1);
                b = (byte)(b & 0x6F);
                break;

            case LedMode.Breath:
                b2 = (byte)(b2 | 2);
                WriteByte(RegisterPort, ValuePort, 210, b2);
                b3 = (byte)(b3 & 0xFD);
                InvkSMBCtrl.Pch_D22_Ctrl(1);
                b = (byte)(b | 0x90);
                break;
            }
            WriteByte(RegisterPort, ValuePort, 208, b3);
            WriteByte(RegisterPort, ValuePort, 251, b);
            IT87Exit(RegisterPort, ValuePort);
        }
        private RgbLedController()
        {
            var ledIdv3 = InvkSMBCtrl.GetSIVId();

            ledIdv4 = InvkSMBCtrl.GetLEDId();

            if (ledIdv4 != 0)
            {
                var siv_Pid = ledIdv3 >> 28;
                ledFuncType = ((ledIdv4 >> 20) & 0xF);

                if (IsLedFunctionNotSuported(siv_Pid))
                {
                    throw new NotSupportedException("Led function not supported");
                }

                if (siv_Pid == 4)
                {
                    var ledCtrlBy = GetLedCtrlBy(siv_Pid, ledFuncType);
                    if (ledCtrlBy == LedCtrlBy.Unknown)
                    {
                        throw new NotSupportedException("Unknown controller");
                    }

                    if (ledCtrlBy == LedCtrlBy.IT8688)
                    {
                        controller = new MncLedCtrl
                        {
                            iManufacter       = (int)GetPlatform(),
                            uPid              = siv_Pid,
                            uChipId           = ledIdv4 >> 27,
                            GpioPinConfigType = ((ledIdv4 >> 16) & 0xF)
                        };
                    }
                }
            }
        }