1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

38 lines
1.5 KiB
C#

using System.IO;
using Artemis.Core.Plugins.Abstract;
using Artemis.Core.Plugins.Exceptions;
using Artemis.Core.Plugins.Models;
using Artemis.Core.Services.Interfaces;
using RGB.NET.Core;
using RGB.NET.Devices.Razer;
namespace Artemis.Plugins.Devices.Razer
{
// ReSharper disable once UnusedMember.Global
public class RazerDeviceProvider : DeviceProvider
{
private readonly IRgbService _rgbService;
public RazerDeviceProvider(PluginInfo pluginInfo, IRgbService rgbService) : base(pluginInfo, RGB.NET.Devices.Razer.RazerDeviceProvider.Instance)
{
_rgbService = rgbService;
}
protected override void EnablePlugin()
{
PathHelper.ResolvingAbsolutePath += (sender, args) => ResolveAbsolutePath(typeof(RazerRGBDevice<>), sender, args);
RGB.NET.Devices.Razer.RazerDeviceProvider.PossibleX64NativePaths.Add(Path.Combine(PluginInfo.Directory.FullName, "x64", "RzChromaSDK.dll"));
RGB.NET.Devices.Razer.RazerDeviceProvider.PossibleX86NativePaths.Add(Path.Combine(PluginInfo.Directory.FullName, "x86", "RzChromaSDK.dll"));
// RGB.NET.Devices.Razer.RazerDeviceProvider.Instance.LoadEmulatorDevices = true;
try
{
_rgbService.AddDeviceProvider(RgbDeviceProvider);
}
catch (RazerException e)
{
throw new ArtemisPluginException("Failed to activate Razer plugin, error code: " + e.ErrorCode, e);
}
}
}
}