Ejemplo n.º 1
0
        private bool InitializeMobo()
        {
            if (_gLed.InitAPI() != 0)
            {
                return(false);
            }

            List <GLedType> ledTypes = new List <GLedType>();

            if (!_gLed.GetLedLayout(ledTypes))
            {
                return(false);
            }

            // Create entry in _gLedSettings for all leds.
            for (int i = 0; i < ledTypes.Count; ++i)
            {
                _gLedSettings.Add(new GLedSetting());
            }

            // Start by turning all the Leds OFF.
            GLedSetting nullLed = new GLedSetting();

            nullLed.m_LedMode = GLedMode.Null;
            SetAllMoboLeds(ref nullLed);

            return(true);
        }
Ejemplo n.º 2
0
        static void ApplyGLedConfigFromFile(string path, IGLed gLed, int ledCount)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(GLedSetting));

            FileStream input = File.OpenRead(path);

            try
            {
                GLedSetting ledSetting = (GLedSetting)xmlSerializer.Deserialize(input);

                GLedSetting[] array = new GLedSetting[ledCount];
                for (int i = 0; i < ledCount; i++)
                {
                    array[i] = ledSetting;
                }

                gLed.SetLedData(array);
                gLed.Apply(-1);
            }
            catch (Exception e)
            {
                Console.WriteLine("Invalid input file: " + path);
                Console.WriteLine("ERROR: " + e.Message);
            }

            input.Close();
        }
Ejemplo n.º 3
0
 private void SetAllMoboLeds(ref GLedSetting ledSetting)
 {
     for (int i = 0; i < _gLedSettings.Count; ++i)
     {
         _gLedSettings[i] = ledSetting;
     }
     ApplyGLedSettings();
 }
Ejemplo n.º 4
0
        private GLedSetting IdiLedToGLed(ref IdiLed idiLed)
        {
            GLedSetting gLedSetting = new GLedSetting();

            gLedSetting.m_LedMode = GLedMode.Null;

            switch (idiLed.Mode)
            {
            case IdiLedMode.STATIC:
                gLedSetting.m_LedMode = GLedMode.Static;
                break;

            case IdiLedMode.FLASH:
                gLedSetting.m_LedMode = GLedMode.Flash;
                break;

            default:
                throw new NotImplementedException("Missing implementation of IdiLed mode " + idiLed.Mode.ToString() + " in RGBFusionManager.\n");
            }

            if (idiLed.Enabled)
            {
                gLedSetting.m_Colour = new GLedColour(idiLed.Colour.White, idiLed.Colour.Red, idiLed.Colour.Green, idiLed.Colour.Blue);
            }
            else
            {
                gLedSetting.m_Colour = new GLedColour(0);
            }

            gLedSetting.m_MinBrightness = idiLed.MinBrightness;
            gLedSetting.m_MaxBrightness = idiLed.MaxBrightness;

            // time0 == flash OFF time.
            // time1 =  time0 + flash ON time
            // time2 = 0 (infinite?)
            gLedSetting.m_Time0    = idiLed.TimeMs0;
            gLedSetting.m_Time1    = (ushort)(idiLed.TimeMs0 + idiLed.TimeMs1);
            gLedSetting.m_CtrlVal0 = 10;
            gLedSetting.m_Time2    = (ushort)(gLedSetting.m_CtrlVal0 * gLedSetting.m_Time1);


            return(gLedSetting);
        }
Ejemplo n.º 5
0
        private void SetAllMoboLeds(ref IdiLed idiLed)
        {
            GLedSetting gledSetting = IdiLedToGLed(ref idiLed);

            SetAllMoboLeds(ref gledSetting);
        }
Ejemplo n.º 6
0
        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);
                }
            }
        }