示例#1
0
        public void Init()
        {
            if (IsInitialized())
            {
                return;
            }

            bool scanDone = false;

            ledFun_ = new Comm_LED_Fun(false);
            ledFun_.Apply_ScanPeriphera_Scuuess += () => scanDone = true;

            ledFun_.Ini_LED_Fun();

            ledFun_ = CommUI.Get_Easy_Pattern_color_Key(ledFun_);
            ledFun_.LEd_Layout.Set_Support_Flag();

            do
            {
                Thread.Sleep(millisecondsTimeout: 10);
            }while (!scanDone);

            ledFun_.Current_Mode = 0;
            ledFun_.Led_Ezsetup_Obj.PoweronStatus = 1;
            ledFun_.Set_Sync(false);

            initialized_ = true;
        }
        private void DoInit()
        {
            _repeatLastCommandTimer = new Timer(new TimerCallback(SetLastRamColorTimerTick), null, Timeout.Infinite, Timeout.Infinite); //70ms apperas to be the lower vald value. 100 is even better but dont look good.
            _ledFun = new Comm_LED_Fun(false);
            _ledFun.Apply_ScanPeriphera_Scuuess += CallBackLedFunApplyScanPeripheralSuccess;
            _ledFun.ApplyEZ_Success             += CallBackLedFunApplyEzSuccess;
            _ledFun.ApplyAdv_Success            += CallBackLedFunApplyAdvSuccess;
            _ledFun.Ini_LED_Fun();
            _ledFun = CommUI.Get_Easy_Pattern_color_Key(_ledFun);

            _ledFun.LEd_Layout.Set_Support_Flag();
            do
            {
                Thread.Sleep(10);
            }while (!_scanDone);

            _ledFun.Current_Mode = 1;

            _ledFun.Led_Ezsetup_Obj.PoweronStatus = 1;
            _ledFun.Set_Sync(false);

            _ledObject      = (LedObject)typeof(Comm_LED_Fun).GetField("LedObj", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this._ledFun);
            _gb_led_periphs = (GBLedPeripherals)typeof(LedObject).GetField("gb_led_periphs", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(_ledObject);
            _ram_led_obj    = (PeripheralDeviceManagement)typeof(LedObject).GetField("ram_led_obj", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(_ledObject);
            //Initialize mode and bright.
            _ram_led_obj?.Software_Control(1, -1, 0, 9, true);
            _ledObject.bSyncRAM = false;
            _ledObject.bSyncVGA = false;
            _initialized        = true;
        }
        private void DoInit()
        {
            _repeatLastCommandTimmer.Elapsed  += OnTimedEvent;
            _repeatLastCommandTimmer.AutoReset = false;
            _ledFun = new Comm_LED_Fun(false);
            _ledFun.Apply_ScanPeriphera_Scuuess += CallBackLedFunApplyScanPeripheralSuccess;
            _ledFun.ApplyEZ_Success             += CallBackLedFunApplyEzSuccess;
            _ledFun.ApplyAdv_Success            += CallBackLedFunApplyAdvSuccess;

            _ledFun.Ini_LED_Fun();

            _ledFun = CommUI.Get_Easy_Pattern_color_Key(_ledFun);

            _ledFun.LEd_Layout.Set_Support_Flag();
            do
            {
                Thread.Sleep(10);
            }while (!_scanDone);

            _ledFun.Current_Mode = 0; // 1= Advanced 0 = Simple or Ez

            _ledFun.Led_Ezsetup_Obj.PoweronStatus = 1;
            _ledFun.Set_Sync(true);
            FillAllAreaInfo();
            Fill_ExtArea_info();
            _initialized = true;
        }
        public void SetAllAreas(object obj)
        {
            var patternCombItem = new CommUI.Pattern_Comb_Item
            {
                Bg_Brush_Solid = { Color = (Color)obj },
                Sel_Item       = { Style = null }
            };

            patternCombItem.Sel_Item.Background          = patternCombItem.Bg_Brush_Solid;
            patternCombItem.Sel_Item.Content             = string.Empty;
            patternCombItem.But_Args                     = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);
            patternCombItem.But_Args[0].Scenes_type      = 0;
            patternCombItem.But_Args[1].Scenes_type      = 0;
            patternCombItem.But_Args[0].TransitionsTeime = 10;
            patternCombItem.But_Args[1].TransitionsTeime = 10;
            patternCombItem.Bri   = 9;
            patternCombItem.Speed = 2;
            patternCombItem.Type  = 0;

            var allAreaInfo = _allAreaInfo.Select(areaInfo => new CommUI.Area_class(patternCombItem, areaInfo.Area_index, null)).ToList();

            var allExtAreaInfo = _allExtAreaInfo.Select(areaInfo => new CommUI.Area_class(patternCombItem, areaInfo.Area_index, null)
            {
                Ext_Area_id = areaInfo.Ext_Area_id
            }).ToList();

            allAreaInfo.AddRange(allExtAreaInfo);
            _ledFun.Set_Adv_mode(allAreaInfo, true);
        }
示例#5
0
        private void DoInit()
        {
            if (_ledFun != null)
            {
                return;
            }

            _ledFun = new Comm_LED_Fun(false);
            _ledFun.Apply_ScanPeriphera_Scuuess += CallBackLedFunApplyScanPeripheralSuccess;
            _ledFun.ApplyEZ_Success             += CallBackLedFunApplyEzSuccess;
            _ledFun.ApplyAdv_Success            += CallBackLedFunApplyAdvSuccess;

            _ledFun.Ini_LED_Fun();

            _ledFun = CommUI.Get_Easy_Pattern_color_Key(_ledFun);

            _ledFun.LEd_Layout.Set_Support_Flag();
            do
            {
                Thread.Sleep(10);
            }while (!_scanDone);

            _ledFun.Current_Mode = 0; // 1= Advanced 0 = Simple or Ez

            _ledFun.Led_Ezsetup_Obj.PoweronStatus = 1;
            StopMusicMode();
            _initialized = true;
            _ledFun.Set_Sync(false);
            StopMusicMode();
            FillAllAreaInfo();
            Fill_ExtArea_info();
        }
        private void CreateAreaCommands()
        {
            if (_commands.Count <= 0)
            {
                return;
            }

            FastRingAreaInfoCommands.Clear();
            NormalRingAreaInfoCommands.Clear();
            SlowRingAreaInfoCommands.Clear();

            foreach (var command in _commands)
            {
                if (command.AreaId == -1)
                {
                    SetAllAreas(command.NewColor);
                    continue;
                }

                var patternCombItem = new CommUI.Pattern_Comb_Item
                {
                    Bg_Brush_Solid = { Color = command.NewColor },
                    Sel_Item       = { Style = null }
                };

                patternCombItem.Sel_Item.Background = patternCombItem.Bg_Brush_Solid;
                patternCombItem.Sel_Item.Content    = string.Empty;
                patternCombItem.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);

                patternCombItem.Bri   = command.Bright;
                patternCombItem.Speed = command.Speed;

                patternCombItem.Type = command.NewMode;
                var area = new CommUI.Area_class(patternCombItem, command.AreaId, null);

                foreach (var extAreaInfo in _allExtAreaInfo.Where(extAreaInfo => extAreaInfo.Area_index == area.Area_index))
                {
                    area.Ext_Area_id = extAreaInfo.Ext_Area_id;
                }

                if (area.Ext_Area_id == LedLib2.ExtLedDev.None)
                {
                    FastRingAreaInfoCommands.Add(area);
                }
                else if (area.Ext_Area_id == LedLib2.ExtLedDev.Kingston_RAM)
                {
                    NormalRingAreaInfoCommands.Add(area);
                }
                else
                {
                    SlowRingAreaInfoCommands.Add(area);
                }
            }
        }
        private void CreateAreaCommands()
        {
            if (_commands.Count <= 0)
            {
                return;
            }

            MainboardCommandsCommands.Clear();
            foreach (var command in _commands)
            {
                if (command.AreaId == -1)
                {
                    foreach (CommUI.Area_class setAllArea in _allAreaInfo.Values)
                    {
                        setAllArea.Pattern_info.Bg_Brush_Solid.Color = command.NewColor;
                        setAllArea.Pattern_info.Type     = command.NewMode;
                        setAllArea.Pattern_info.Bri      = command.Bright;
                        setAllArea.Pattern_info.Speed    = command.Speed;
                        setAllArea.Pattern_info.But_Args = CommUI.Get_Color_Sceenes_class_From_Brush(setAllArea.Pattern_info.Bg_Brush_Solid);
                        MainboardCommandsCommands.Add(setAllArea);
                    }
                    continue;
                }

                CommUI.Area_class area = _allAreaInfo[command.AreaId];
                area.Pattern_info.Bg_Brush_Solid.Color = command.NewColor;
                area.Pattern_info.Type     = command.NewMode;
                area.Pattern_info.Bri      = command.Bright;
                area.Pattern_info.Speed    = command.Speed;
                area.Pattern_info.But_Args = CommUI.Get_Color_Sceenes_class_From_Brush(area.Pattern_info.Bg_Brush_Solid);

                if (area.Ext_Area_id == ExtLedDev.None) //Mainboard
                {
                    //TODO: Find lower level call and use it
                    MainboardCommandsCommands.Add(area);
                }
                else if (area.Ext_Area_id == ExtLedDev.Kingston_RAM && _ledObject.MB_Id == MBIdentify.I_Z390)
                {
                    _RAMNewColor = command.NewColor;
                    new Task(() => { SetRamColor(command.NewColor); }).Start();                                                                                      //Direct using MCU. Faster than using RGBFusion HAL.
                }
                else if (area.Ext_Area_id == ExtLedDev.GB_VGACard && _gb_led_periphs.GraphicsType == GB_LED_PERIPHERALS.DEVICE_VGA)                                  //KinstoM RAM by Nvidia i2C. A lot faster than setting ram but still slow using rgbfusion methods.
                {
                    new Task(() => { AorusVGA.SetDirect(System.Drawing.Color.FromArgb(255, command.NewColor.R, command.NewColor.G, command.NewColor.B)); }).Start(); //Direct GvLedLib lib. A lot faster than RGBFusion HAL.
                }
                else
                {
                    MainboardCommandsCommands.Add(area); // Left devices, for now i left this just for compatibility but it may be slow on some rigs.
                }
                _allAreaInfo[command.AreaId] = area;
            }
        }
        public static void Creative_Profile(string proXmlFilePath, int areaCount, Color defaultColor, string profileName = "")
        {
            var lang        = new Lang();
            var areaClasses = new List <CommUI.Area_class>();

            for (var i = 0; i < areaCount; i++)
            {
                if (areaCount != 8 && areaCount != 9)
                {
                    var patternCombItem = new CommUI.Pattern_Comb_Item
                    {
                        Type           = 0,
                        Bg_Brush_Solid = { Color = defaultColor },
                        Sel_Item       = { Style = null }
                    };
                    patternCombItem.Sel_Item.Background = patternCombItem.Bg_Brush_Solid;
                    patternCombItem.Sel_Item.Content    = lang.Get_Lang_Resource("Still");
                    patternCombItem.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);
                    areaClasses.Add(new CommUI.Area_class(patternCombItem, i, null));
                }
                else if (i == 7 || i == 8)
                {
                    var mPatternInfo = new CommUI.Pattern_Comb_Item
                    {
                        Type           = 0,
                        Bg_Brush_Solid = { Color = defaultColor },
                        Sel_Item       = { Style = null }
                    };
                    mPatternInfo.Sel_Item.Background = mPatternInfo.Bg_Brush_Solid;
                    mPatternInfo.Sel_Item.Content    = lang.Get_Lang_Resource("Still");
                    mPatternInfo.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(mPatternInfo.Bg_Brush_Solid);
                    areaClasses.Add(new CommUI.Area_class(mPatternInfo, i, null));
                }
                else
                {
                    var bgBrushSolid = new CommUI.Pattern_Comb_Item
                    {
                        Type           = 0,
                        Bg_Brush_Solid = { Color = defaultColor },
                        Sel_Item       = { Style = null }
                    };
                    bgBrushSolid.Sel_Item.Background = bgBrushSolid.Bg_Brush_Solid;
                    bgBrushSolid.Sel_Item.Content    = lang.Get_Lang_Resource("Still");
                    bgBrushSolid.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(bgBrushSolid.Bg_Brush_Solid);
                    areaClasses.Add(new CommUI.Area_class(bgBrushSolid, i, null));
                }
            }
            CommUI.Export_to_xml(areaClasses, proXmlFilePath, profileName);
        }
        private List <CommUI.Area_class> GetAllAreaInfo(int profileId = -1)
        {
            if (profileId < 1)
            {
                profileId = _ledFun.Current_Profile;
            }
            var str   = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "\\GIGABYTE\\RGBFusion\\Pro", profileId.ToString(), ".xml");
            var color = CommUI.Int_To_Color((uint)CommUI.Get_Default_Color_from_Appcenter());

            if (!File.Exists(str))
            {
                Creative_Profile(str, _ledFun.Get_MB_Area_number(), color, string.Concat("Profile ", profileId.ToString()));
            }
            return(CommUI.Inport_from_xml(str, null));
        }
        private void FillAllAreaInfo()
        {
            _allAreaInfo.Clear();
            foreach (CommUI.Area_class area in GetAllAreaInfo())
            {
                var patternCombItem = new CommUI.Pattern_Comb_Item
                {
                    Bg_Brush_Solid = { Color = area.Pattern_info.Bg_Brush_Solid.Color },
                    Sel_Item       = { Style = null }
                };

                patternCombItem.Sel_Item.Background = patternCombItem.Bg_Brush_Solid;
                patternCombItem.Sel_Item.Content    = string.Empty;
                patternCombItem.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);
                patternCombItem.Bri   = area.Pattern_info.Bri;
                patternCombItem.Speed = area.Pattern_info.Speed;
                patternCombItem.Type  = area.Pattern_info.Type;
                CommUI.Area_class newArea = new CommUI.Area_class(patternCombItem, area.Area_index, null);
                _allAreaInfo.Add(area.Area_index, newArea);
            }

            var y = GetAllExtAreaInfo();

            foreach (CommUI.Area_class extArea in GetAllExtAreaInfo())
            {
                var patternCombItem = new CommUI.Pattern_Comb_Item
                {
                    Bg_Brush_Solid = { Color = extArea.Pattern_info.Bg_Brush_Solid.Color },
                    Sel_Item       = { Style = null }
                };

                patternCombItem.Sel_Item.Background = patternCombItem.Bg_Brush_Solid;
                patternCombItem.Sel_Item.Content    = string.Empty;
                patternCombItem.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);
                patternCombItem.Bri   = extArea.Pattern_info.Bri;
                patternCombItem.Speed = extArea.Pattern_info.Speed;
                patternCombItem.Type  = extArea.Pattern_info.Type;
                CommUI.Area_class newExtArea = new CommUI.Area_class(patternCombItem, extArea.Area_index, null);
                newExtArea.Ext_Area_id = extArea.Ext_Area_id;
                _allAreaInfo.Add(newExtArea.Area_index, newExtArea);
            }
        }
        private List <CommUI.Area_class> GetAllExtAreaInfo(int profileId = -1)
        {
            List <CommUI.Area_class> allExtAreaInfo;

            if (profileId < 1)
            {
                profileId = _ledFun.Current_Profile;
            }
            var str   = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "\\GIGABYTE\\RGBFusion\\ExtPro", profileId.ToString(), ".xml");
            var str1  = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "\\GIGABYTE\\RGBFusion\\TempP.xml");
            var color = CommUI.Int_To_Color((uint)CommUI.Get_Default_Color_from_Appcenter());

            if (!File.Exists(str))
            {
                Creative_Profile_Ext(str, _ledFun.LEd_Layout.Ext_Led_Array, color, string.Concat("ExProfile ", profileId.ToString()));
                allExtAreaInfo = CommUI.Inport_from_xml(str, null);
                return(allExtAreaInfo);
            }
            Creative_Profile_Ext(str1, _ledFun.LEd_Layout.Ext_Led_Array, color, string.Concat("ExProfile ", profileId.ToString()));
            allExtAreaInfo = ReImport_ExtInfo(CommUI.Inport_from_xml(str, null), CommUI.Inport_from_xml(str1, null));
            File.Delete(str1);
            return(allExtAreaInfo);
        }
        public static void Creative_Profile_Ext(string proXmlFilePath, List <Comm_LED_Fun.Ext_Led_class> extAreaInfo, Color defaultColor, string profileName = "")
        {
            var areaClasses = new List <CommUI.Area_class>();

            foreach (var areaInfo in extAreaInfo)
            {
                var patternCombItem = new CommUI.Pattern_Comb_Item
                {
                    Type           = 0,
                    Bg_Brush_Solid = { Color = defaultColor },
                    Sel_Item       = { Style = null }
                };
                patternCombItem.Sel_Item.Background = patternCombItem.Bg_Brush_Solid;
                patternCombItem.Sel_Item.Content    = string.Empty;
                patternCombItem.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);
                var areaClass = new CommUI.Area_class(patternCombItem, areaInfo.DivsNum, null)
                {
                    Ext_Area_id = areaInfo.extLDev
                };
                areaClasses.Add(areaClass);
            }
            CommUI.Export_to_xml(areaClasses, proXmlFilePath, profileName);
        }
示例#13
0
        public void SetAreas()
        {
            while (_newChangeThread.IsAlive)
            {
                _commandEvent.WaitOne();
                _commandEvent.Reset();

                var areaInfo = new List <CommUI.Area_class>();

                foreach (var command in _commands)
                {
                    if (command.AreaId == -1)
                    {
                        SetAllAreas(command.NewColor);
                        continue;
                    }

                    var patternCombItem = new CommUI.Pattern_Comb_Item
                    {
                        Bg_Brush_Solid = { Color = command.NewColor },
                        Sel_Item       = { Style = null }
                    };
                    patternCombItem.Sel_Item.Background = patternCombItem.Bg_Brush_Solid;
                    patternCombItem.Sel_Item.Content    = string.Empty;
                    patternCombItem.But_Args            = CommUI.Get_Color_Sceenes_class_From_Brush(patternCombItem.Bg_Brush_Solid);

                    patternCombItem.Bri   = command.Bright;
                    patternCombItem.Speed = command.Speed;

                    patternCombItem.Type = command.NewMode;
                    var area = new CommUI.Area_class(patternCombItem, command.AreaId, null);

                    foreach (var extAreaInfo in _allExtAreaInfo.Where(extAreaInfo => extAreaInfo.Area_index == area.Area_index))
                    {
                        area.Ext_Area_id = extAreaInfo.Ext_Area_id;
                    }

                    areaInfo.Add(area);
                }

                if (_commands.Count > 0)
                {
                    //_ledFun.Set_Sync(false);
                    _ledFun.Set_Adv_mode(areaInfo, true);
                    //Not required anymore

                    /*
                     * var requireNonDirectModeAreaInfo = areaInfo.FindAll(i => i.Pattern_info.Type > 0);
                     * if (requireNonDirectModeAreaInfo.Count > 0)
                     * {
                     *
                     *  _ledFun.Set_Adv_mode(requireNonDirectModeAreaInfo);
                     *  do
                     *  {
                     *      Thread.Sleep( 10);
                     *  }
                     *  while (!_areaChangeApplySuccess);
                     * }
                     */
                }
            }
        }