Example #1
0
        protected AbstractRGBNetDevice(IRGBDeviceProvider deviceProvider, AuroraRGBNetBrush brush = null)
        {
            this._deviceProvider = deviceProvider;

            _surface = RGBSurface.Instance;
            _brush   = brush ?? new AuroraRGBNetBrush();
        }
Example #2
0
        public void AddDeviceProvider(IRGBDeviceProvider deviceProvider)
        {
            try
            {
                Surface.LoadDevices(deviceProvider, RGBDeviceType.All, false, true);
            }
            catch (Exception e)
            {
                _logger.Error(e, "Exception during device loading for device provider {deviceProvider}", deviceProvider.GetType().Name);
                throw e;
            }

            if (deviceProvider.Devices == null || !deviceProvider.Devices.Any())
            {
                _logger.Warning("Device provider {deviceProvider} has no devices", deviceProvider.GetType().Name);
                return;
            }

            foreach (IRGBDevice surfaceDevice in deviceProvider.Devices)
            {
                _logger.Debug("Device provider {deviceProvider} added {deviceName}",
                              deviceProvider.GetType().Name, surfaceDevice.DeviceInfo?.DeviceName);
                if (!_loadedDevices.Contains(surfaceDevice))
                {
                    _loadedDevices.Add(surfaceDevice);
                    OnDeviceLoaded(new DeviceEventArgs(surfaceDevice));
                }
                else
                {
                    OnDeviceReloaded(new DeviceEventArgs(surfaceDevice));
                }
            }
        }
        /// <summary>
        /// Loads all devices the given <see cref="IRGBDeviceProvider"/> is able to provide.
        /// </summary>
        /// <param name="deviceProvider">The <see cref="IRGBDeviceProvider"/> to load the devices from.</param>
        /// <param name="loadFilter">Specifies which types of devices to load.</param>
        /// <param name="exclusiveAccessIfPossible">Specifies whether the application should request exclusive access of possible or not.</param>
        /// <param name="throwExceptions">Specifies whether exception during the initialization sequence should be thrown or not.</param>
        public void LoadDevices(IRGBDeviceProvider deviceProvider, RGBDeviceType loadFilter = RGBDeviceType.All, bool exclusiveAccessIfPossible = false, bool throwExceptions = false)
        {
            if (_deviceProvider.Contains(deviceProvider) || _deviceProvider.Any(x => x.GetType() == deviceProvider.GetType()))
            {
                return;
            }

            List <IRGBDevice> addedDevices = new List <IRGBDevice>();

            if (deviceProvider.IsInitialized || deviceProvider.Initialize(loadFilter, exclusiveAccessIfPossible, throwExceptions))
            {
                _deviceProvider.Add(deviceProvider);

                foreach (IRGBDevice device in deviceProvider.Devices)
                {
                    if (_devices.Contains(device))
                    {
                        continue;
                    }

                    addedDevices.Add(device);

                    device.PropertyChanged += DeviceOnPropertyChanged;
                    _devices.Add(device);
                }
            }

            if (addedDevices.Any())
            {
                UpdateSurfaceRectangle();
                SurfaceLayoutChanged?.Invoke(new SurfaceLayoutChangedEventArgs(addedDevices, true, false));
            }
        }
Example #4
0
        public void AddDeviceProvider(IRGBDeviceProvider deviceProvider)
        {
            Surface.LoadDevices(deviceProvider);

            if (deviceProvider.Devices == null)
            {
                _logger.Warning("Device provider {deviceProvider} has no devices", deviceProvider.GetType().Name);
                return;
            }

            lock (_loadedDevices)
            {
                foreach (var surfaceDevice in deviceProvider.Devices)
                {
                    if (!_loadedDevices.Contains(surfaceDevice))
                    {
                        _loadedDevices.Add(surfaceDevice);
                        OnDeviceLoaded(new DeviceEventArgs(surfaceDevice));
                    }
                    else
                    {
                        OnDeviceReloaded(new DeviceEventArgs(surfaceDevice));
                    }
                }
            }
        }
 protected void LoadDevices(RGBSurface surface, IRGBDeviceProvider deviceProvider)
 {
     surface.LoadDevices(deviceProvider, RGBDeviceType.Keyboard | RGBDeviceType.LedMatrix
                         | RGBDeviceType.Mousepad | RGBDeviceType.LedStripe
                         | RGBDeviceType.Mouse | RGBDeviceType.Headset
                         | RGBDeviceType.HeadsetStand);
 }
Example #6
0
 private void LoadDevices(RGBSurface surface, IRGBDeviceProvider deviceProvider)
 {
     surface.LoadDevices(deviceProvider, RGBDeviceType.Keyboard | RGBDeviceType.LedMatrix
                         | RGBDeviceType.Mousepad | RGBDeviceType.LedStripe
                         | RGBDeviceType.Mouse // | RGBDeviceType.Headset
                         | RGBDeviceType.HeadsetStand
                                               //| RGBDeviceType.GraphicsCard
                                               //| RGBDeviceType.DRAM | RGBDeviceType.LedMatrix
                                               //| RGBDeviceType.LedStripe | RGBDeviceType.Keypad
                                               //| RGBDeviceType.Mainboard
                         );
 }
Example #7
0
 /// <summary>
 ///     Creates a new instance of the <see cref="DeviceProvider" /> class
 /// </summary>
 /// <param name="rgbDeviceProvider"></param>
 protected DeviceProvider(IRGBDeviceProvider rgbDeviceProvider)
 {
     RgbDeviceProvider = rgbDeviceProvider ?? throw new ArgumentNullException(nameof(rgbDeviceProvider));
 }
Example #8
0
 protected DeviceProvider(PluginInfo pluginInfo, IRGBDeviceProvider rgbDeviceProvider) : base(pluginInfo)
 {
     RgbDeviceProvider = rgbDeviceProvider ?? throw new ArgumentNullException(nameof(rgbDeviceProvider));
 }
 public void LoadDevices(IRGBDeviceProvider provider)
 {
     providers.Add(provider);
 }