public RGBFusionManager() { _gLed = new GLedImpl(); _gvLed = new GvLedImpl(); _gLedSettings = new List <GLedSetting>(); }
static void MotherboardControlAPI() { IGLed gLed = new GLedImpl(); string rgbFusionSDKVer = ""; gLed.GetSdkVersion(out rgbFusionSDKVer); Console.WriteLine("Gigabyte Fusion RGB SDK Version " + rgbFusionSDKVer + " Detected."); Console.WriteLine("Initializing..."); uint result = gLed.InitAPI(); if (result != 0u) { Console.WriteLine("Failed to Intialize RGB Fusion SDK"); return; } Console.WriteLine("Successfully Initialized RGB Fusion SDK"); string firmwareStr = gLed.FirmwareVersion(); Console.WriteLine("RGB Fusion MCU Firmware Version: " + firmwareStr); int maxDivision = gLed.GetMaxDivision(); Console.WriteLine("Max LED zones supported: " + maxDivision); List <GLedType> ledTypes = new List <GLedType>(); gLed.GetLedLayout(ledTypes); var li = 0; foreach (var led in ledTypes) { Console.WriteLine("Zone " + li + " Led: " + led.ToString()); ++li; } GLedSetting[] nullAllSettings = new GLedSetting[maxDivision]; for (var i = 0; i < nullAllSettings.Length; i++) { nullAllSettings[i].m_LedMode = 0; } result = gLed.SetLedData(nullAllSettings); result = gLed.Apply(-1); string moboXmlDirPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//IdiotRGB//RGBFusion/Motherboard"; if (!Directory.Exists(moboXmlDirPath)) { var info = Directory.CreateDirectory(moboXmlDirPath); } string moboXmlFilePath = moboXmlDirPath + "//GLedType_SampleTest.xml"; GLedSetting loadedLedSetting = new GLedSetting(); XmlSerializer xmlSerializer = new XmlSerializer(typeof(GLedSetting)); if (!File.Exists(moboXmlFilePath)) { FileStream output = File.Create(moboXmlFilePath); // Initialize the file with some default GLedSetting loadedLedSetting.m_Colour = new GLedColour(0, 255, 0, 0); loadedLedSetting.m_LedMode = GLedMode.Static; loadedLedSetting.m_MaxBrightness = 100; xmlSerializer.Serialize(output, loadedLedSetting); output.Close(); } ApplyGLedConfigFromFile(moboXmlFilePath, gLed, maxDivision); using (FileSystemWatcher watcher = new FileSystemWatcher()) { watcher.Path = moboXmlDirPath; watcher.Filter = Path.GetFileName(moboXmlFilePath); watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.LastAccess | NotifyFilters.Size; watcher.Changed += (object source, FileSystemEventArgs e) => { ApplyGLedConfigFromFile(e.FullPath, gLed, maxDivision); }; Console.WriteLine("Watching file: " + moboXmlFilePath); watcher.EnableRaisingEvents = true; while (!moboThreadStop) { Thread.Sleep(5); } } }