Пример #1
0
        public void SetMode()
        {
            Stopwatch sw = Stopwatch.StartNew();

            using var client = new OpenRGBClient();
            var devices = client.GetAllControllerData();

            client.SetMode(0, 0);
            //for testing purposes
            for (int i = 0; i < devices.Length; i++)
            {
                for (int j = 0; j < devices[i].Modes.Length; j++)
                {
                    var mode = devices[i].Modes[j];
                    if (mode.HasFlag(ModeFlags.HasModeSpecificColor) && mode.HasFlag(ModeFlags.HasSpeed))
                    {
                        var len = (int)mode.ColorMax;
                        client.SetMode(i, j, speed: mode.SpeedMax, colors: Enumerable.Range(0, len).Select(_ => new Color(0, 255, 0)).ToArray());
                        break;
                    }
                }
            }

            Output.WriteLine($"Time elapsed: {(double)sw.ElapsedTicks / Stopwatch.Frequency * 1000} ms.");
        }
Пример #2
0
        public void Configure(DriverDetails driverDetails)
        {
            client = new OpenRGBClient(name: "RGB Sync Studio", autoconnect: true, timeout: 1000);

            var deviceCount = client.GetControllerCount();
            var devices     = client.GetAllControllerData();

            for (int devId = 0; devId < devices.Length; devId++)
            {
                ORGBControlDevice slsDevice = new ORGBControlDevice();
                slsDevice.id           = devId;
                slsDevice.Driver       = this;
                slsDevice.Name         = devices[devId].Name;
                slsDevice.DeviceType   = DeviceTypeConverter.GetType(devices[devId].Type);
                slsDevice.Has2DSupport = false;
                slsDevice.ProductImage = (Bitmap)Image.FromStream(orgbImage);

                List <ControlDevice.LedUnit> deviceLeds = new List <ControlDevice.LedUnit>();

                int i = 0;
                foreach (Led orgbLed in devices[devId].Leds)
                {
                    ControlDevice.LedUnit slsLed = new ControlDevice.LedUnit();
                    slsLed.LEDName = orgbLed.Name;
                    deviceLeds.Add(slsLed);
                }

                slsDevice.LEDs = deviceLeds.ToArray();

                DeviceAdded?.Invoke(slsDevice, new Events.DeviceChangeEventArgs(slsDevice));
            }
        }
Пример #3
0
        public void TestProtocolVersionOne()
        {
            using OpenRGBClient versionZero = new OpenRGBClient(protocolVersion: 0);
            var devicesZero = versionZero.GetAllControllerData();

            Assert.All(devicesZero, d => Assert.Null(d.Vendor));

            using OpenRGBClient versionOne = new OpenRGBClient(protocolVersion: 1);
            var devicesOne = versionOne.GetAllControllerData();

            Assert.All(devicesOne, d => Assert.NotNull(d.Vendor));
        }
Пример #4
0
        public override bool Initialize()
        {
            if (IsInitialized)
            {
                return(true);
            }

            try
            {
                var ip               = Global.Configuration.VarRegistry.GetVariable <string>($"{DeviceName}_ip");
                var port             = Global.Configuration.VarRegistry.GetVariable <int>($"{DeviceName}_port");
                var usePeriphLogo    = Global.Configuration.VarRegistry.GetVariable <bool>($"{DeviceName}_use_periph_logo");
                var ignoreDirectMode = Global.Configuration.VarRegistry.GetVariable <bool>($"{DeviceName}_ignore_direct");

                _openRgb = new OpenRGBClient(name: "Aurora", ip: ip, port: port);
                _openRgb.Connect();

                var devices = _openRgb.GetAllControllerData();
                _devices = new List <HelperOpenRGBDevice>();

                for (int i = 0; i < devices.Length; i++)
                {
                    if (devices[i].Modes.Any(m => m.Name == "Direct") || ignoreDirectMode)
                    {
                        var helper = new HelperOpenRGBDevice(i, devices[i]);
                        helper.ProcessMappings(usePeriphLogo);
                        _devices.Add(helper);
                    }
                }
            }
            catch (Exception e)
            {
                LogError("error in OpenRGB device: " + e);
                IsInitialized = false;
                return(false);
            }

            IsInitialized = true;
            return(IsInitialized);
        }