From 472214ab2d46147b6e22288076903b176edb54fe Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Mon, 26 Dec 2022 00:49:12 +0100 Subject: [PATCH 1/7] Updated readme --- README.md | 95 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 7d7098d..948d6f7 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,87 @@ # RGB.NET +[![GitHub release (latest by date)](https://img.shields.io/github/v/release/DarthAffe/RGB.NET?style=for-the-badge)](https://github.com/DarthAffe/RGB.NET/releases) +[![Nuget](https://img.shields.io/nuget/v/RGB.NET.Core?style=for-the-badge)](https://www.nuget.org/packages?q=rgb.net) +[![GitHub](https://img.shields.io/github/license/DarthAffe/RGB.NET?style=for-the-badge)](https://github.com/DarthAffe/RGB.NET/blob/master/LICENSE) +[![GitHub Repo stars](https://img.shields.io/github/stars/DarthAffe/RGB.NET?style=for-the-badge)](https://github.com/DarthAffe/RGB.NET/stargazers) +[![Discord](https://img.shields.io/discord/366163308941934592?logo=discord&logoColor=white&style=for-the-badge)](https://discord.gg/9kytURv) -This project aims to unify the use of various RGB-devices. -**It is currently under heavy development and will have breaking changes in the future!** Right now a lot of devices aren't working as expected and there are bugs/unfinished features. Please think about that when you consider using the library in this early stage. - -If you want to help with layouting/testing devices or if you need support using the library feel free to join the [RGB.NET discord-channel](https://discord.gg/9kytURv). +> **IMPORTANT NOTE** +This is a library to integrate RGB-devices into your own application. It does not contain any executables! +If you're looking for a full blown software solution to manage your RGB-devices, take a look at [Artemis](https://artemis-rgb.com/). +## Getting Started +### Setup +1. Add the [RGB.NET.Core](https://www.nuget.org/packages/RGB.NET.Core) and [Devices](https://www.nuget.org/packages?q=rgb.net.Devices)-Nugets for all devices you want to use. +2. For some of the vendors SDK-libaries are needed. Check the contained Readmes for more information in that case. +3. Create a new `RGBSurface`. +```csharp +RGBSurface surface = new RGBSurface(); +``` -## Adding prerelease packages using NuGet ## -This is the easiest and therefore preferred way to include RGB.NET in your project. +4. Initialize the providers for all devices you want to use and add the devices to the surface. For example: +```csharp +CorsairDeviceProvider.Instance.Initialize(throwExceptions: true); +surface.Attach(CorsairDeviceProvider.Instance.Devices); +``` +The `Initialize`-method allows to load only devices of specific types by setting a filter and for debugging purposes allows to enable exception throwing. (By default they are catched and provided through the `Exception`-event.) +You can also use the `Load`-Extension on the surface. +```csharp +surface.Load(CorsairDeviceProvider.Instance); +``` +> While most device-providers are implemented in a way that supports fast loading like this some may have a different loading procedure. (For example the `WS281XDeviceProvider` requires device-definitions before loading.) -Since there aren't any release-packages right now you'll have to use the CI-feed from [http://nuget.arge.be](http://nuget.arge.be). -You can include it either by adding ```http://nuget.arge.be/v3/index.json``` to your Visual Studio package sources or by adding this [NuGet.Config](https://github.com/DarthAffe/RGB.NET/tree/master/Documentation/NuGet.Config) to your project (at the same level as your solution). +5. Add an update-trigger. In most cases the TimerUpdateTrigger is preferable, but you can also implement your own to fit your needs. +```csharp +surface.RegisterUpdateTrigger(new TimerUpdateTrigger()); +``` +> If you want to trigger updates manually the `ManualUpdateTrigger` should be used. -### .NET 4.5 Support ### -At the end of the year with the release of .NET 5 the support for old .NET-Framwork versions will be droppped! -It's not recommended to use RGB.NET in projects targeting .NET 4.x that aren't planned to be moved to Core/.NET 5 in the future. +6. *This step is optional but recommended.* For rendering the location of each LED on the surface can be important. Since not all SDKs provide useful layout-information you might want to add Layouts to your devices. (TODO: add wiki article for this) +Same goes for the location of the device on the surface. If you don't care about the exact location of the devices you can use: +```csharp +surface.AlignDevices(); +``` +The basic setup is now complete and you can start setting up your rendering. -### Device-Layouts -To be able to have devices with correct LED-locations and sizes they need to be layouted. Pre-created layouts can be found at https://github.com/DarthAffe/RGB.NET-Resources. +### Basic Rendering +As an example we'll add a moving rainbow over all devices on the surface. +1. Create a led-group containing all leds on the surface (all devices) +```csharp +ILedGroup allLeds = new ListLedGroup(surface, surface.Leds); +``` -If you plan to create layouts for your own devices check out https://github.com/DarthAffe/RGB.NET/wiki/Creating-Layouts first. There's also a layout-editor which strongly simplifies most of the work: https://github.com/SpoinkyNL/RGB.NET-Layout-Editor +2. Create a rainbow-gradient. +```csharp +RainbowGradient rainbow = new RainbowGradient(); +``` -### Example usage of RGB.NET -[![Example video](https://img.youtube.com/vi/JLRa0Wv4qso/0.jpg)](http://www.youtube.com/watch?v=JLRa0Wv4qso) +3. Add a decorator to the gradient to make it move. (Decorators are +```csharp +rainbow.AddDecorator(new MoveGradientDecorator(surface)); +``` -#### Example Projects -[https://github.com/DarthAffe/KeyboardAudioVisualizer](https://github.com/DarthAffe/KeyboardAudioVisualizer) -[https://github.com/DarthAffe/RGBSyncPlus](https://github.com/DarthAffe/RGBSyncPlus) +4. Create a texture (the size - in this example 10, 10 - is not important here since the gradient shoukd be stretched anyway) +```csharp +ITexture texture = new ConicalGradientTexture(new Size(10, 10), rainbow); +``` + +5. Add a brush rendering the texture to the led-group +```csharp +allLeds.Brush = new TextureBrush(texture); +``` + +### Full example +```csharp +RGBSurface surface = new RGBSurface(); +surface.Load(CorsairDeviceProvider.Instance); +surface.AlignDevices(); + +surface.RegisterUpdateTrigger(new TimerUpdateTrigger()); + +ILedGroup allLeds = new ListLedGroup(surface, surface.Leds); +RainbowGradient rainbow = new RainbowGradient(); +rainbow.AddDecorator(new MoveGradientDecorator(surface)); +ITexture texture = new ConicalGradientTexture(new Size(10, 10), rainbow); +allLeds.Brush = new TextureBrush(texture); +``` \ No newline at end of file From 553f99af263653af31a5b53e16b74306f96cba41 Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Mon, 26 Dec 2022 00:50:22 +0100 Subject: [PATCH 2/7] Typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 948d6f7..7261a9a 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If you're looking for a full blown software solution to manage your RGB-devices, ## Getting Started ### Setup 1. Add the [RGB.NET.Core](https://www.nuget.org/packages/RGB.NET.Core) and [Devices](https://www.nuget.org/packages?q=rgb.net.Devices)-Nugets for all devices you want to use. -2. For some of the vendors SDK-libaries are needed. Check the contained Readmes for more information in that case. +2. For some of the vendors SDK-libraries are needed. Check the contained Readmes for more information in that case. 3. Create a new `RGBSurface`. ```csharp RGBSurface surface = new RGBSurface(); @@ -28,7 +28,7 @@ You can also use the `Load`-Extension on the surface. ```csharp surface.Load(CorsairDeviceProvider.Instance); ``` -> While most device-providers are implemented in a way that supports fast loading like this some may have a different loading procedure. (For example the `WS281XDeviceProvider` requires device-definitions before loading.) +> While most device-providers are implemented in a way that supports fast loading like this some may have a different loading procedures. (For example the `WS281XDeviceProvider` requires device-definitions before loading.) 5. Add an update-trigger. In most cases the TimerUpdateTrigger is preferable, but you can also implement your own to fit your needs. ```csharp From 01e671ddeb547a9496878908e5e0f56dc815ff10 Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Fri, 6 Jan 2023 14:22:10 +0100 Subject: [PATCH 3/7] Added defaults to openrgb device definition --- RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs | 10 +++++++++- RGB.NET.Devices.OpenRGB/OpenRGBServerDefinition.cs | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs b/RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs index a3a6e28..b912cde 100644 --- a/RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs +++ b/RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs @@ -56,6 +56,14 @@ public class OpenRGBDeviceProvider : AbstractRGBDeviceProvider #endregion #region Methods + + /// + /// Adds the specified to this device-provider. + /// + /// The to add. + // ReSharper disable once UnusedMember.Global + public void AddDeviceDefinition(OpenRGBServerDefinition deviceDefinition) => DeviceDefinitions.Add(deviceDefinition); + /// protected override void InitializeSDK() { @@ -63,7 +71,7 @@ public class OpenRGBDeviceProvider : AbstractRGBDeviceProvider { try { - OpenRGBClient? openRgb = new(ip: deviceDefinition.Ip, port: deviceDefinition.Port, name: deviceDefinition.ClientName, autoconnect: true); + OpenRGBClient openRgb = new(ip: deviceDefinition.Ip, port: deviceDefinition.Port, name: deviceDefinition.ClientName, autoconnect: true); _clients.Add(openRgb); deviceDefinition.Connected = true; } diff --git a/RGB.NET.Devices.OpenRGB/OpenRGBServerDefinition.cs b/RGB.NET.Devices.OpenRGB/OpenRGBServerDefinition.cs index 7d81033..860b6bc 100644 --- a/RGB.NET.Devices.OpenRGB/OpenRGBServerDefinition.cs +++ b/RGB.NET.Devices.OpenRGB/OpenRGBServerDefinition.cs @@ -8,17 +8,17 @@ public class OpenRGBServerDefinition /// /// The name of the client that will appear in the OpenRGB interface. /// - public string? ClientName { get; set; } + public string? ClientName { get; set; } = "RGB.NET"; /// /// The ip address of the server. /// - public string? Ip { get; set; } + public string? Ip { get; set; } = "127.0.0.1"; /// /// The port of the server. /// - public int Port { get; set; } + public int Port { get; set; } = 6742; /// /// Whether the provider is connected to this server definition or not. From 46fdd297353f9de589b3b6dbd9b9e339c621a10e Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Fri, 6 Jan 2023 15:51:31 +0100 Subject: [PATCH 4/7] Added readmes to projects --- RGB.NET.Core/README.md | 36 ++++++++++++++++++++++++++ RGB.NET.Devices.Asus/README.md | 13 ++++++++++ RGB.NET.Devices.CoolerMaster/README.md | 24 +++++++++++++++++ RGB.NET.Devices.Corsair/README.md | 24 +++++++++++++++++ RGB.NET.Devices.DMX/README.md | 16 ++++++++++++ RGB.NET.Devices.Debug/README.md | 16 ++++++++++++ RGB.NET.Devices.Logitech/README.md | 27 +++++++++++++++++++ RGB.NET.Devices.Msi/README.md | 24 +++++++++++++++++ RGB.NET.Devices.Novation/README.md | 11 ++++++++ RGB.NET.Devices.OpenRGB/README.md | 16 ++++++++++++ RGB.NET.Devices.PicoPi/ReadMe.md | 14 +++++++++- RGB.NET.Devices.Razer/README.md | 14 ++++++++++ RGB.NET.Devices.SteelSeries/README.md | 14 ++++++++++ RGB.NET.Devices.WS281X/README.md | 20 ++++++++++++++ RGB.NET.Devices.Wooting/README.md | 24 +++++++++++++++++ RGB.NET.HID/README.md | 3 +++ RGB.NET.Layout/README.md | 3 +++ RGB.NET.Presets/README.md | 3 +++ 18 files changed, 301 insertions(+), 1 deletion(-) create mode 100644 RGB.NET.Core/README.md create mode 100644 RGB.NET.Devices.Asus/README.md create mode 100644 RGB.NET.Devices.CoolerMaster/README.md create mode 100644 RGB.NET.Devices.Corsair/README.md create mode 100644 RGB.NET.Devices.DMX/README.md create mode 100644 RGB.NET.Devices.Debug/README.md create mode 100644 RGB.NET.Devices.Logitech/README.md create mode 100644 RGB.NET.Devices.Msi/README.md create mode 100644 RGB.NET.Devices.Novation/README.md create mode 100644 RGB.NET.Devices.OpenRGB/README.md create mode 100644 RGB.NET.Devices.Razer/README.md create mode 100644 RGB.NET.Devices.SteelSeries/README.md create mode 100644 RGB.NET.Devices.WS281X/README.md create mode 100644 RGB.NET.Devices.Wooting/README.md create mode 100644 RGB.NET.HID/README.md create mode 100644 RGB.NET.Layout/README.md create mode 100644 RGB.NET.Presets/README.md diff --git a/RGB.NET.Core/README.md b/RGB.NET.Core/README.md new file mode 100644 index 0000000..d31978b --- /dev/null +++ b/RGB.NET.Core/README.md @@ -0,0 +1,36 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Core-Package. + +Required to use RGB.NET + +## Getting Started +```csharp +// Create a surface - this is where all devices belongs too +RGBSurface surface = new RGBSurface(); + +// Load your devices - check out the RGB.NET.Devices-packages for more information +// TODO: Load device-providers + +// Automatically align devices to not overlap - you can ofc also move them by hand +surface.AlignDevices(); + +// Register an update-trigger +surface.RegisterUpdateTrigger(new TimerUpdateTrigger()); +``` + +## Basis Rendering +```csharp +// Create a led-group containing all leds on the surface +ILedGroup allLeds = new ListLedGroup(surface, surface.Leds); + +// Create a rainbow gradient +RainbowGradient rainbow = new RainbowGradient(); + +// Animate the gradient to steadily move +rainbow.AddDecorator(new MoveGradientDecorator(surface)); + +// Create a texture rendering that gradient +ITexture texture = new ConicalGradientTexture(new Size(10, 10), rainbow); + +// Create a brush rendering the texture and assign it to the group +allLeds.Brush = new TextureBrush(texture); +``` \ No newline at end of file diff --git a/RGB.NET.Devices.Asus/README.md b/RGB.NET.Devices.Asus/README.md new file mode 100644 index 0000000..0e2ff89 --- /dev/null +++ b/RGB.NET.Devices.Asus/README.md @@ -0,0 +1,13 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Asus-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(AsusDeviceProvider.Instance); +``` + +# Required SDK +This providers requires the `Interop.AuraServiceLib.dll` to be present on the system. Normally this dll is installed with ASUS Aura and registered in the GAC. +There are some known issue with this dll missing and it's recommended to pack it with your application. You can get it from your Aura-Installation or get a copy from [https://redist.arge.be/Asus/Interop.AuraServiceLib.dll](https://redist.arge.be/Asus/Interop.AuraServiceLib.dll). +If packed it has to be located in a spot that your application is loading runtime dlls from. diff --git a/RGB.NET.Devices.CoolerMaster/README.md b/RGB.NET.Devices.CoolerMaster/README.md new file mode 100644 index 0000000..41cdcf4 --- /dev/null +++ b/RGB.NET.Devices.CoolerMaster/README.md @@ -0,0 +1,24 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Cooler Master-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(CoolerMasterDeviceProvider.Instance); +``` + +# Required SDK +This providers requires native SDK-dlls. +You can get them directly from Cooler Master at [https://templates.coolermaster.com/](https://templates.coolermaster.com/) (Direct Link: [https://templates.coolermaster.com/assets/sdk/coolermaster-sdk.zip](https://templates.coolermaster.com/assets/sdk/coolermaster-sdk.zip)) + +Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) + +### x64 +`Src\SDK\x64\SDKDLL.dll` from the SDK-zip needs to be distributed as `\x64\CMSDK.dll` + +You can use other, custom paths by adding them to `CoolerMasterDeviceProvider.PossibleX64NativePaths`. + +### x86 +`Src\SDK\x86\SDKDLL.dll` from the SDK-zip needs to be distributed as `\x86\CMSDK.dll` + +You can use other, custom paths by adding them to `CoolerMasterDeviceProvider.PossibleX86NativePaths`. diff --git a/RGB.NET.Devices.Corsair/README.md b/RGB.NET.Devices.Corsair/README.md new file mode 100644 index 0000000..7639c93 --- /dev/null +++ b/RGB.NET.Devices.Corsair/README.md @@ -0,0 +1,24 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Corsair-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(CorsairDeviceProvider.Instance); +``` + +# Required SDK +This providers requires native SDK-dlls. +You can get them directly from Corsair at [https://github.com/CorsairOfficial/cue-sdk/releases](https://github.com/CorsairOfficial/cue-sdk/releases) + +Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) + +### x64 +`redist\x64\CUESDK.x64_2019.dll` from the SDK-zip needs to be distributed as `\x64\CUESDK.x64_2019.dll` (or simply named `CUESDK.dll`) + +You can use other, custom paths by adding them to `CorsairDeviceProvider.PossibleX64NativePaths`. + +### x86 +`redist\i386\CUESDK_2019.dll` from the SDK-zip needs to be distributed as `\x86\CUESDK_2019.dll` (or simply named `CUESDK.dll`) + +You can use other, custom paths by adding them to `CorsairDeviceProvider.PossibleX86NativePaths`. diff --git a/RGB.NET.Devices.DMX/README.md b/RGB.NET.Devices.DMX/README.md new file mode 100644 index 0000000..494c5d2 --- /dev/null +++ b/RGB.NET.Devices.DMX/README.md @@ -0,0 +1,16 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for E1.31 DMX-Devices. + +## Usage +This provider does not load anything by default and requires additional configuration to work. + +```csharp +// Add as many DMX devices as you like +DMXDeviceProvider.Instance.AddDeviceDefinition(new E131DMXDeviceDefinition("")); + +surface.Load(DMXDeviceProvider.Instance); +``` + +You can also configure additional things like device names, custom ports, heartbeats and so on in the DeviceDefinition. + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.Debug/README.md b/RGB.NET.Devices.Debug/README.md new file mode 100644 index 0000000..621def2 --- /dev/null +++ b/RGB.NET.Devices.Debug/README.md @@ -0,0 +1,16 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Debug-Devices. + +> This provider is only for debug purposes! + +## Usage +This provider does not load anything by default and requires additional configuration to work. + +```csharp +// Add as many debug devices as you like +DebugDeviceProvider.Instance.AddFakeDeviceDefinition(DeviceLayout.Load("")); + +surface.Load(DebugDeviceProvider.Instance); +``` + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.Logitech/README.md b/RGB.NET.Devices.Logitech/README.md new file mode 100644 index 0000000..e5bb0ba --- /dev/null +++ b/RGB.NET.Devices.Logitech/README.md @@ -0,0 +1,27 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Logitech-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(LogitechDeviceProvider.Instance); +``` + +Since the logitech SDK does not provide device information only known devices will work. +You can add detection for additional devices by adding entires for them to the respective static `DeviceDefinitions` on the `LogitechDeviceProvider`. + +# Required SDK +This providers requires native SDK-dlls. +You can get them directly from Logitech at [https://www.logitechg.com/en-us/innovation/developer-lab.html](https://www.logitechg.com/en-us/innovation/developer-lab.html) (Direct Link: [https://www.logitechg.com/sdk/LED_SDK_9.00.zip](https://www.logitechg.com/sdk/LED_SDK_9.00.zip)) + +Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) + +### x64 +`Lib\LogitechLedEnginesWrapper\x64\LogitechLedEnginesWrapper.dll` from the SDK-zip needs to be distributed as `\x64\LogitechLedEnginesWrapper.dll` + +You can use other, custom paths by adding them to `LogitechDeviceProvider.PossibleX64NativePaths`. + +### x86 +`Lib\LogitechLedEnginesWrapper\x86\LogitechLedEnginesWrapper.dll` from the SDK-zip needs to be distributed as `\x86\LogitechLedEnginesWrapper.dll` + +You can use other, custom paths by adding them to `LogitechDeviceProvider.PossibleX86NativePaths`. diff --git a/RGB.NET.Devices.Msi/README.md b/RGB.NET.Devices.Msi/README.md new file mode 100644 index 0000000..695d2f5 --- /dev/null +++ b/RGB.NET.Devices.Msi/README.md @@ -0,0 +1,24 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for msi-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(MsiDeviceProvider.Instance); +``` + +# Required SDK +This providers requires native SDK-dlls. +You can get them directly from Msi at [https://de.msi.com/Landing/mystic-light-rgb-gaming-pc/download](https://de.msi.com/Landing/mystic-light-rgb-gaming-pc/download) (Direct Link: [https://download.msi.com/uti_exe/Mystic_light_SDK.zip](https://download.msi.com/uti_exe/Mystic_light_SDK.zip)) + +Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) + +### x64 +`MysticLight_SDK_x64.dll` from the SDK-zip needs to be distributed as `\x64\MysticLight_SDK.dll` + +You can use other, custom paths by adding them to `MsiDeviceProvider.PossibleX64NativePaths`. + +### x86 +`MysticLight_SDK.dll` from the SDK-zip needs to be distributed as `\x86\MysticLight_SDK.dll` + +You can use other, custom paths by adding them to `MsiDeviceProvider.PossibleX86NativePaths`. diff --git a/RGB.NET.Devices.Novation/README.md b/RGB.NET.Devices.Novation/README.md new file mode 100644 index 0000000..f0cabf5 --- /dev/null +++ b/RGB.NET.Devices.Novation/README.md @@ -0,0 +1,11 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Novation-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(NovationDeviceProvider.Instance); +``` + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.OpenRGB/README.md b/RGB.NET.Devices.OpenRGB/README.md new file mode 100644 index 0000000..185910f --- /dev/null +++ b/RGB.NET.Devices.OpenRGB/README.md @@ -0,0 +1,16 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for E1.31 DMX-Devices. + +## Usage +This provider does not load anything by default and requires additional configuration to work. + +```csharp +// Add as many OpenRGB-instances as you like +OpenRGBDeviceProvider.Instance.AddDeviceDefinition(new OpenRGBServerDefinition()); + +surface.Attach(OpenRGBDeviceProvider.Instance.Devices); +``` + +You can also configure additional things like IP and Port in the ServerDefinition. + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.PicoPi/ReadMe.md b/RGB.NET.Devices.PicoPi/ReadMe.md index 5772cd4..c0d3b49 100644 --- a/RGB.NET.Devices.PicoPi/ReadMe.md +++ b/RGB.NET.Devices.PicoPi/ReadMe.md @@ -1 +1,13 @@ -Check https://github.com/DarthAffe/RGB.NET-PicoPi for the required firmware. +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for RGB.NET-Devices based on the Raspi Pi Pico. + +To create your own Raspberry PI Pico based controller check the RGB.NET Firmware at [https://github.com/DarthAffe/RGB.NET-PicoPi](https://github.com/DarthAffe/RGB.NET-PicoPi) + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(PicoPiDeviceProvider.Instance); +``` + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.Razer/README.md b/RGB.NET.Devices.Razer/README.md new file mode 100644 index 0000000..e79b02a --- /dev/null +++ b/RGB.NET.Devices.Razer/README.md @@ -0,0 +1,14 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Razer-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(RazerDeviceProvider.Instance); +``` + +Since the Razer SDK does not provide device information only known devices will work. +You can add detection for additional devices by adding entires for them to the respective static `DeviceDefinitions` on the `RazerDeviceProvider`. + +# Required SDK +The SDK needs to be installed inside Synapse by the user and is not redistributed. diff --git a/RGB.NET.Devices.SteelSeries/README.md b/RGB.NET.Devices.SteelSeries/README.md new file mode 100644 index 0000000..408899c --- /dev/null +++ b/RGB.NET.Devices.SteelSeries/README.md @@ -0,0 +1,14 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Steel Series-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(SteelSeriesDeviceProvider.Instance); +``` + +Since the Steel Series SDK does not provide device information only known devices will work. +You can add detection for additional devices by adding entires for them to the respective static `DeviceDefinitions` on the `SteelSeriesDeviceProvider`. + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.WS281X/README.md b/RGB.NET.Devices.WS281X/README.md new file mode 100644 index 0000000..c18d323 --- /dev/null +++ b/RGB.NET.Devices.WS281X/README.md @@ -0,0 +1,20 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for RGB.NET-Devices based on Aurdion or ESP8266. + +To create your own Aurdion/ESP8266 based controller check the Sketches at [https://github.com/DarthAffe/RGB.NET/tree/master/RGB.NET.Devices.WS281X/Sketches](https://github.com/DarthAffe/RGB.NET/tree/master/RGB.NET.Devices.WS281X/Sketches) + +> If you start a new project it's recommended to use the Raspberry Pi Pico due to it's better performance and lower cost. Check the `RGB.NET.Devices.PicoPi`-package. + +> This provider does not work with WLED. If you want to use that check the `RGB.NET.Devices.DMX`-package. + +## Usage +This provider does not load anything by default and requires additional configuration to work. + +```csharp +// Add as many Arduino or NodeMCU devices as you like +WS281XDeviceProvider.Instance.AddDeviceDefinition(new ArduinoWS281XDeviceDefinition("COM3")); + +surface.Load(WS281XDeviceProvider.Instance); +``` + +# Required SDK +This provider does not require an additional SDK. diff --git a/RGB.NET.Devices.Wooting/README.md b/RGB.NET.Devices.Wooting/README.md new file mode 100644 index 0000000..2779656 --- /dev/null +++ b/RGB.NET.Devices.Wooting/README.md @@ -0,0 +1,24 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Device-Provider-Package for Wooting-Devices. + +## Usage +This provider follows the default pattern and does not require additional setup. + +```csharp +surface.Load(WootingDeviceProvider.Instance); +``` + +# Required SDK +This providers requires native SDK-dlls. +You can get them directly from Wooting at [https://github.com/WootingKb/wooting-rgb-sdk/releases](https://github.com/WootingKb/wooting-rgb-sdk/releases) + +Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) + +### x64 +`wooting-rgb-sdk.dll` from the x64-zip needs to be distributed as `\x64\wooting-rgb-sdk.dll` + +You can use other, custom paths by adding them to `WootingDeviceProvider.PossibleX64NativePaths`. + +### x86 +`wooting-rgb-sdk.dll` from the x86-zip needs to be distributed as `\x86\wooting-rgb-sdk.dll` + +You can use other, custom paths by adding them to `WootingDeviceProvider.PossibleX86NativePaths`. diff --git a/RGB.NET.HID/README.md b/RGB.NET.HID/README.md new file mode 100644 index 0000000..b3a7354 --- /dev/null +++ b/RGB.NET.HID/README.md @@ -0,0 +1,3 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) HID-Package. + +Abstraction for device-providers that require HID-functionality. \ No newline at end of file diff --git a/RGB.NET.Layout/README.md b/RGB.NET.Layout/README.md new file mode 100644 index 0000000..9120357 --- /dev/null +++ b/RGB.NET.Layout/README.md @@ -0,0 +1,3 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Layout-Package. + +Required to use the RGB.NET-Layout-System. \ No newline at end of file diff --git a/RGB.NET.Presets/README.md b/RGB.NET.Presets/README.md new file mode 100644 index 0000000..62228d5 --- /dev/null +++ b/RGB.NET.Presets/README.md @@ -0,0 +1,3 @@ +[RGB.NET](https://github.com/DarthAffe/RGB.NET) Presets-Package. + +Contains a mix of Groups, Textures, Decorators and more. \ No newline at end of file From 89f4de41c7c78bbc94832e5f8177ad3e9e517ba3 Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Fri, 6 Jan 2023 17:26:18 +0100 Subject: [PATCH 5/7] Added ReadMe to NuGet --- RGB.NET.Core/RGB.NET.Core.csproj | 6 ++++-- RGB.NET.Devices.Asus/RGB.NET.Devices.Asus.csproj | 6 ++++-- .../RGB.NET.Devices.CoolerMaster.csproj | 6 ++++-- RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj | 6 ++++-- RGB.NET.Devices.DMX/RGB.NET.Devices.DMX.csproj | 6 ++++-- RGB.NET.Devices.Debug/RGB.NET.Devices.Debug.csproj | 6 ++++-- RGB.NET.Devices.Logitech/RGB.NET.Devices.Logitech.csproj | 6 ++++-- RGB.NET.Devices.Msi/RGB.NET.Devices.Msi.csproj | 6 ++++-- RGB.NET.Devices.Novation/RGB.NET.Devices.Novation.csproj | 6 ++++-- RGB.NET.Devices.OpenRGB/RGB.NET.Devices.OpenRGB.csproj | 6 ++++-- RGB.NET.Devices.PicoPi/RGB.NET.Devices.PicoPi.csproj | 6 ++++-- RGB.NET.Devices.Razer/RGB.NET.Devices.Razer.csproj | 6 ++++-- .../RGB.NET.Devices.SteelSeries.csproj | 6 ++++-- RGB.NET.Devices.WS281X/RGB.NET.Devices.WS281X.csproj | 6 ++++-- RGB.NET.Devices.Wooting/RGB.NET.Devices.Wooting.csproj | 6 ++++-- RGB.NET.HID/RGB.NET.HID.csproj | 6 ++++-- RGB.NET.Layout/RGB.NET.Layout.csproj | 6 ++++-- RGB.NET.Presets/RGB.NET.Presets.csproj | 6 ++++-- 18 files changed, 72 insertions(+), 36 deletions(-) diff --git a/RGB.NET.Core/RGB.NET.Core.csproj b/RGB.NET.Core/RGB.NET.Core.csproj index c113e88..6357388 100644 --- a/RGB.NET.Core/RGB.NET.Core.csproj +++ b/RGB.NET.Core/RGB.NET.Core.csproj @@ -15,9 +15,10 @@ RGB.NET.Core Core-Module of RGB.NET Core-Module of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -53,6 +54,7 @@ + \ No newline at end of file diff --git a/RGB.NET.Devices.Asus/RGB.NET.Devices.Asus.csproj b/RGB.NET.Devices.Asus/RGB.NET.Devices.Asus.csproj index 64483e6..b4ac280 100644 --- a/RGB.NET.Devices.Asus/RGB.NET.Devices.Asus.csproj +++ b/RGB.NET.Devices.Asus/RGB.NET.Devices.Asus.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Asus Asus-Device-Implementations of RGB.NET Asus-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.CoolerMaster/RGB.NET.Devices.CoolerMaster.csproj b/RGB.NET.Devices.CoolerMaster/RGB.NET.Devices.CoolerMaster.csproj index c61028a..d4812ed 100644 --- a/RGB.NET.Devices.CoolerMaster/RGB.NET.Devices.CoolerMaster.csproj +++ b/RGB.NET.Devices.CoolerMaster/RGB.NET.Devices.CoolerMaster.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.CoolerMaster Cooler Master-Device-Implementations of RGB.NET Cooler Master-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj b/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj index 81fd8c1..302d93d 100644 --- a/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj +++ b/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Corsair Corsair-Device-Implementations of RGB.NET Corsair-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -53,6 +54,7 @@ + diff --git a/RGB.NET.Devices.DMX/RGB.NET.Devices.DMX.csproj b/RGB.NET.Devices.DMX/RGB.NET.Devices.DMX.csproj index 49c07a8..d291aa0 100644 --- a/RGB.NET.Devices.DMX/RGB.NET.Devices.DMX.csproj +++ b/RGB.NET.Devices.DMX/RGB.NET.Devices.DMX.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.DMX DMX-Device-Implementations of RGB.NET DMX-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.Debug/RGB.NET.Devices.Debug.csproj b/RGB.NET.Devices.Debug/RGB.NET.Devices.Debug.csproj index 3f2477a..f4edaae 100644 --- a/RGB.NET.Devices.Debug/RGB.NET.Devices.Debug.csproj +++ b/RGB.NET.Devices.Debug/RGB.NET.Devices.Debug.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Debug Debug-Device-Implementations of RGB.NET Debug-Device-Implementations of RGB.NET, a C# (.NET) library - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.Logitech/RGB.NET.Devices.Logitech.csproj b/RGB.NET.Devices.Logitech/RGB.NET.Devices.Logitech.csproj index c243acb..7ee22dd 100644 --- a/RGB.NET.Devices.Logitech/RGB.NET.Devices.Logitech.csproj +++ b/RGB.NET.Devices.Logitech/RGB.NET.Devices.Logitech.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Logitech Logitech-Device-Implementations of RGB.NET Logitech-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -53,6 +54,7 @@ + diff --git a/RGB.NET.Devices.Msi/RGB.NET.Devices.Msi.csproj b/RGB.NET.Devices.Msi/RGB.NET.Devices.Msi.csproj index da85318..c565c94 100644 --- a/RGB.NET.Devices.Msi/RGB.NET.Devices.Msi.csproj +++ b/RGB.NET.Devices.Msi/RGB.NET.Devices.Msi.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Msi Msi-Device-Implementations of RGB.NET Msi-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.Novation/RGB.NET.Devices.Novation.csproj b/RGB.NET.Devices.Novation/RGB.NET.Devices.Novation.csproj index 0cfdc3d..12a7919 100644 --- a/RGB.NET.Devices.Novation/RGB.NET.Devices.Novation.csproj +++ b/RGB.NET.Devices.Novation/RGB.NET.Devices.Novation.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Novation Novation-Device-Implementations of RGB.NET Novation-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.OpenRGB/RGB.NET.Devices.OpenRGB.csproj b/RGB.NET.Devices.OpenRGB/RGB.NET.Devices.OpenRGB.csproj index 0757413..9fd3eec 100644 --- a/RGB.NET.Devices.OpenRGB/RGB.NET.Devices.OpenRGB.csproj +++ b/RGB.NET.Devices.OpenRGB/RGB.NET.Devices.OpenRGB.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.OpenRGB OpenRGB-Device-Implementations of RGB.NET OpenRGB-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.PicoPi/RGB.NET.Devices.PicoPi.csproj b/RGB.NET.Devices.PicoPi/RGB.NET.Devices.PicoPi.csproj index 17276a4..db64c4a 100644 --- a/RGB.NET.Devices.PicoPi/RGB.NET.Devices.PicoPi.csproj +++ b/RGB.NET.Devices.PicoPi/RGB.NET.Devices.PicoPi.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.PicoPi PicoPi-Device-Implementations of RGB.NET PicoPi-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.Razer/RGB.NET.Devices.Razer.csproj b/RGB.NET.Devices.Razer/RGB.NET.Devices.Razer.csproj index 30d2bd9..32fcbe0 100644 --- a/RGB.NET.Devices.Razer/RGB.NET.Devices.Razer.csproj +++ b/RGB.NET.Devices.Razer/RGB.NET.Devices.Razer.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Razer Razer-Device-Implementations of RGB.NET Razer-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -53,6 +54,7 @@ + diff --git a/RGB.NET.Devices.SteelSeries/RGB.NET.Devices.SteelSeries.csproj b/RGB.NET.Devices.SteelSeries/RGB.NET.Devices.SteelSeries.csproj index 66c22d0..d8b2ab6 100644 --- a/RGB.NET.Devices.SteelSeries/RGB.NET.Devices.SteelSeries.csproj +++ b/RGB.NET.Devices.SteelSeries/RGB.NET.Devices.SteelSeries.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.SteelSeries SteelSeries-Device-Implementations of RGB.NET SteelSeries-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.WS281X/RGB.NET.Devices.WS281X.csproj b/RGB.NET.Devices.WS281X/RGB.NET.Devices.WS281X.csproj index 0a64534..0e0e08f 100644 --- a/RGB.NET.Devices.WS281X/RGB.NET.Devices.WS281X.csproj +++ b/RGB.NET.Devices.WS281X/RGB.NET.Devices.WS281X.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.WS281X WS281X-Device-Implementations of RGB.NET WS281X-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Devices.Wooting/RGB.NET.Devices.Wooting.csproj b/RGB.NET.Devices.Wooting/RGB.NET.Devices.Wooting.csproj index 0adf3c5..ac158f0 100644 --- a/RGB.NET.Devices.Wooting/RGB.NET.Devices.Wooting.csproj +++ b/RGB.NET.Devices.Wooting/RGB.NET.Devices.Wooting.csproj @@ -15,9 +15,10 @@ RGB.NET.Devices.Wooting Wooting-Device-Implementations of RGB.NET Wooting-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -53,6 +54,7 @@ + diff --git a/RGB.NET.HID/RGB.NET.HID.csproj b/RGB.NET.HID/RGB.NET.HID.csproj index bdd2152..5469438 100644 --- a/RGB.NET.HID/RGB.NET.HID.csproj +++ b/RGB.NET.HID/RGB.NET.HID.csproj @@ -15,9 +15,10 @@ RGB.NET.HID HID-Module of RGB.NET HID-Module of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Layout/RGB.NET.Layout.csproj b/RGB.NET.Layout/RGB.NET.Layout.csproj index bcfc4b8..f6330ed 100644 --- a/RGB.NET.Layout/RGB.NET.Layout.csproj +++ b/RGB.NET.Layout/RGB.NET.Layout.csproj @@ -15,9 +15,10 @@ RGB.NET.Layout Layout-Module of RGB.NET Layout-Module of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -52,6 +53,7 @@ + diff --git a/RGB.NET.Presets/RGB.NET.Presets.csproj b/RGB.NET.Presets/RGB.NET.Presets.csproj index f948b3c..fc2d052 100644 --- a/RGB.NET.Presets/RGB.NET.Presets.csproj +++ b/RGB.NET.Presets/RGB.NET.Presets.csproj @@ -15,9 +15,10 @@ RGB.NET.Presets Presets-Presets of RGB.NET Presets for RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2022 - Copyright © Darth Affe 2022 + Copyright © Darth Affe 2023 + Copyright © Darth Affe 2023 icon.png + README.md https://github.com/DarthAffe/RGB.NET LGPL-2.1-only Github @@ -53,6 +54,7 @@ + From ecff7afec9643e90ba132356762df41b5286deac Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Fri, 6 Jan 2023 17:30:46 +0100 Subject: [PATCH 6/7] Improved format in readmes --- RGB.NET.Devices.Asus/README.md | 4 ++-- RGB.NET.Devices.CoolerMaster/README.md | 2 +- RGB.NET.Devices.Corsair/README.md | 2 +- RGB.NET.Devices.Logitech/README.md | 4 ++-- RGB.NET.Devices.Msi/README.md | 2 +- RGB.NET.Devices.Razer/README.md | 2 +- RGB.NET.Devices.SteelSeries/README.md | 2 +- RGB.NET.Devices.Wooting/README.md | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/RGB.NET.Devices.Asus/README.md b/RGB.NET.Devices.Asus/README.md index 0e2ff89..41abee0 100644 --- a/RGB.NET.Devices.Asus/README.md +++ b/RGB.NET.Devices.Asus/README.md @@ -8,6 +8,6 @@ surface.Load(AsusDeviceProvider.Instance); ``` # Required SDK -This providers requires the `Interop.AuraServiceLib.dll` to be present on the system. Normally this dll is installed with ASUS Aura and registered in the GAC. -There are some known issue with this dll missing and it's recommended to pack it with your application. You can get it from your Aura-Installation or get a copy from [https://redist.arge.be/Asus/Interop.AuraServiceLib.dll](https://redist.arge.be/Asus/Interop.AuraServiceLib.dll). +This providers requires the `Interop.AuraServiceLib.dll` to be present on the system. Normally this dll is installed with ASUS Aura and registered in the GAC. +There are some known issue with this dll missing and it's recommended to pack it with your application. You can get it from your Aura-Installation or get a copy from [https://redist.arge.be/Asus/Interop.AuraServiceLib.dll](https://redist.arge.be/Asus/Interop.AuraServiceLib.dll). If packed it has to be located in a spot that your application is loading runtime dlls from. diff --git a/RGB.NET.Devices.CoolerMaster/README.md b/RGB.NET.Devices.CoolerMaster/README.md index 41cdcf4..850fc72 100644 --- a/RGB.NET.Devices.CoolerMaster/README.md +++ b/RGB.NET.Devices.CoolerMaster/README.md @@ -8,7 +8,7 @@ surface.Load(CoolerMasterDeviceProvider.Instance); ``` # Required SDK -This providers requires native SDK-dlls. +This providers requires native SDK-dlls. You can get them directly from Cooler Master at [https://templates.coolermaster.com/](https://templates.coolermaster.com/) (Direct Link: [https://templates.coolermaster.com/assets/sdk/coolermaster-sdk.zip](https://templates.coolermaster.com/assets/sdk/coolermaster-sdk.zip)) Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) diff --git a/RGB.NET.Devices.Corsair/README.md b/RGB.NET.Devices.Corsair/README.md index 7639c93..dd30377 100644 --- a/RGB.NET.Devices.Corsair/README.md +++ b/RGB.NET.Devices.Corsair/README.md @@ -8,7 +8,7 @@ surface.Load(CorsairDeviceProvider.Instance); ``` # Required SDK -This providers requires native SDK-dlls. +This providers requires native SDK-dlls. You can get them directly from Corsair at [https://github.com/CorsairOfficial/cue-sdk/releases](https://github.com/CorsairOfficial/cue-sdk/releases) Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) diff --git a/RGB.NET.Devices.Logitech/README.md b/RGB.NET.Devices.Logitech/README.md index e5bb0ba..67cc2d7 100644 --- a/RGB.NET.Devices.Logitech/README.md +++ b/RGB.NET.Devices.Logitech/README.md @@ -7,11 +7,11 @@ This provider follows the default pattern and does not require additional setup. surface.Load(LogitechDeviceProvider.Instance); ``` -Since the logitech SDK does not provide device information only known devices will work. +Since the logitech SDK does not provide device information only known devices will work. You can add detection for additional devices by adding entires for them to the respective static `DeviceDefinitions` on the `LogitechDeviceProvider`. # Required SDK -This providers requires native SDK-dlls. +This providers requires native SDK-dlls. You can get them directly from Logitech at [https://www.logitechg.com/en-us/innovation/developer-lab.html](https://www.logitechg.com/en-us/innovation/developer-lab.html) (Direct Link: [https://www.logitechg.com/sdk/LED_SDK_9.00.zip](https://www.logitechg.com/sdk/LED_SDK_9.00.zip)) Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) diff --git a/RGB.NET.Devices.Msi/README.md b/RGB.NET.Devices.Msi/README.md index 695d2f5..2cc6923 100644 --- a/RGB.NET.Devices.Msi/README.md +++ b/RGB.NET.Devices.Msi/README.md @@ -8,7 +8,7 @@ surface.Load(MsiDeviceProvider.Instance); ``` # Required SDK -This providers requires native SDK-dlls. +This providers requires native SDK-dlls. You can get them directly from Msi at [https://de.msi.com/Landing/mystic-light-rgb-gaming-pc/download](https://de.msi.com/Landing/mystic-light-rgb-gaming-pc/download) (Direct Link: [https://download.msi.com/uti_exe/Mystic_light_SDK.zip](https://download.msi.com/uti_exe/Mystic_light_SDK.zip)) Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) diff --git a/RGB.NET.Devices.Razer/README.md b/RGB.NET.Devices.Razer/README.md index e79b02a..b18dd58 100644 --- a/RGB.NET.Devices.Razer/README.md +++ b/RGB.NET.Devices.Razer/README.md @@ -7,7 +7,7 @@ This provider follows the default pattern and does not require additional setup. surface.Load(RazerDeviceProvider.Instance); ``` -Since the Razer SDK does not provide device information only known devices will work. +Since the Razer SDK does not provide device information only known devices will work. You can add detection for additional devices by adding entires for them to the respective static `DeviceDefinitions` on the `RazerDeviceProvider`. # Required SDK diff --git a/RGB.NET.Devices.SteelSeries/README.md b/RGB.NET.Devices.SteelSeries/README.md index 408899c..7971dc8 100644 --- a/RGB.NET.Devices.SteelSeries/README.md +++ b/RGB.NET.Devices.SteelSeries/README.md @@ -7,7 +7,7 @@ This provider follows the default pattern and does not require additional setup. surface.Load(SteelSeriesDeviceProvider.Instance); ``` -Since the Steel Series SDK does not provide device information only known devices will work. +Since the Steel Series SDK does not provide device information only known devices will work. You can add detection for additional devices by adding entires for them to the respective static `DeviceDefinitions` on the `SteelSeriesDeviceProvider`. # Required SDK diff --git a/RGB.NET.Devices.Wooting/README.md b/RGB.NET.Devices.Wooting/README.md index 2779656..6348b98 100644 --- a/RGB.NET.Devices.Wooting/README.md +++ b/RGB.NET.Devices.Wooting/README.md @@ -8,7 +8,7 @@ surface.Load(WootingDeviceProvider.Instance); ``` # Required SDK -This providers requires native SDK-dlls. +This providers requires native SDK-dlls. You can get them directly from Wooting at [https://github.com/WootingKb/wooting-rgb-sdk/releases](https://github.com/WootingKb/wooting-rgb-sdk/releases) Since the SDK-dlls are native it's important to use the correct architecture you're building your application for. (If in doubt you can always include both.) From 58429229225f53cf69ee6e3fc315531869aea83e Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Fri, 6 Jan 2023 17:31:16 +0100 Subject: [PATCH 7/7] Removed unused Roccat-project --- RGB.NET.Devices.Roccat/Native/_ROCCATSDK.cs | 163 ------------------ .../RGB.NET.Devices.Roccat.csproj | 56 ------ .../RoccatDeviceProvider.cs | 124 ------------- .../RoccatDeviceProviderLoader.cs | 24 --- 4 files changed, 367 deletions(-) delete mode 100644 RGB.NET.Devices.Roccat/Native/_ROCCATSDK.cs delete mode 100644 RGB.NET.Devices.Roccat/RGB.NET.Devices.Roccat.csproj delete mode 100644 RGB.NET.Devices.Roccat/RoccatDeviceProvider.cs delete mode 100644 RGB.NET.Devices.Roccat/RoccatDeviceProviderLoader.cs diff --git a/RGB.NET.Devices.Roccat/Native/_ROCCATSDK.cs b/RGB.NET.Devices.Roccat/Native/_ROCCATSDK.cs deleted file mode 100644 index 21e1644..0000000 --- a/RGB.NET.Devices.Roccat/Native/_ROCCATSDK.cs +++ /dev/null @@ -1,163 +0,0 @@ -// ReSharper disable UnusedMethodReturnValue.Global -// ReSharper disable UnusedMember.Global - -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices; -using RGB.NET.Core; - -namespace RGB.NET.Devices.Roccat.Native -{ - // ReSharper disable once InconsistentNaming - internal static class _RoccatSDK - { - #region Libary Management - - private static IntPtr _dllHandle = IntPtr.Zero; - - /// - /// Gets the loaded architecture (x64/x86). - /// - internal static string LoadedArchitecture { get; private set; } - - /// - /// Reloads the SDK. - /// - internal static void Reload() - { - UnloadRoccatSDK(); - LoadRoccatSDK(); - } - - private static void LoadRoccatSDK() - { - if (_dllHandle != IntPtr.Zero) return; - - // HACK: Load library at runtime to support both, x86 and x64 with one managed dll - List possiblePathList = Environment.Is64BitProcess ? RoccatDeviceProvider.PossibleX64NativePaths : RoccatDeviceProvider.PossibleX86NativePaths; - string dllPath = possiblePathList.FirstOrDefault(File.Exists); - if (dllPath == null) throw new RGBDeviceException($"Can't find the CUE-SDK at one of the expected locations:\r\n '{string.Join("\r\n", possiblePathList.Select(Path.GetFullPath))}'"); - - _dllHandle = LoadLibrary(dllPath); - - _initSDKPointer = (InitSDKPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "InitSDK"), typeof(InitSDKPointer)); - _unloadSDKPointer = (UnloadSDKPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "UnloadSDK"), typeof(UnloadSDKPointer)); - _initRyosTalkPointer = (InitRyosTalkPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "init_ryos_talk"), typeof(InitRyosTalkPointer)); - _restoreLedRGBPointer = (RestoreLedRGBPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "RestoreLEDRGB"), typeof(RestoreLedRGBPointer)); - _setRyosKbSDKModePointer = (SetRyosKbSDKModePointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "set_ryos_kb_SDKmode"), typeof(SetRyosKbSDKModePointer)); - _turnOffAllLedsPointer = (TurnOffAllLedsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "turn_off_all_LEDS"), typeof(TurnOffAllLedsPointer)); - _turnOnAllLedsPointer = (TurnOnAllLedsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "turn_on_all_LEDS"), typeof(TurnOnAllLedsPointer)); - _setLedOnPointer = (SetLedOnPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "set_LED_on"), typeof(SetLedOnPointer)); - _setLedOffPointer = (SetLedOffPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "set_LED_off"), typeof(SetLedOffPointer)); - _setAllLedsPointer = (SetAllLedsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "Set_all_LEDS"), typeof(SetAllLedsPointer)); - _allKeyblinkingPointer = (AllKeyblinkingPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "All_Key_Blinking"), typeof(AllKeyblinkingPointer)); - _setLedRGBPointer = (SetLedRGBPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "Set_LED_RGB"), typeof(SetLedRGBPointer)); - _setAllLedSfxPointer = (SetAllLedSfxPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "Set_all_LEDSFX"), typeof(SetAllLedSfxPointer)); - } - - internal static void UnloadRoccatSDK() - { - if (_dllHandle == IntPtr.Zero) return; - - // ReSharper disable once EmptyEmbeddedStatement - DarthAffe 20.02.2016: We might need to reduce the internal reference counter more than once to set the library free - while (FreeLibrary(_dllHandle)) ; - _dllHandle = IntPtr.Zero; - } - - [DllImport("kernel32.dll")] - private static extern IntPtr LoadLibrary(string dllToLoad); - - [DllImport("kernel32.dll")] - private static extern bool FreeLibrary(IntPtr dllHandle); - - [DllImport("kernel32.dll")] - private static extern IntPtr GetProcAddress(IntPtr dllHandle, string name); - - #endregion - - #region SDK-METHODS - - #region Pointers - - private static InitSDKPointer _initSDKPointer; - private static UnloadSDKPointer _unloadSDKPointer; - private static InitRyosTalkPointer _initRyosTalkPointer; - private static RestoreLedRGBPointer _restoreLedRGBPointer; - private static SetRyosKbSDKModePointer _setRyosKbSDKModePointer; - private static TurnOffAllLedsPointer _turnOffAllLedsPointer; - private static TurnOnAllLedsPointer _turnOnAllLedsPointer; - private static SetLedOnPointer _setLedOnPointer; - private static SetLedOffPointer _setLedOffPointer; - private static SetAllLedsPointer _setAllLedsPointer; - private static AllKeyblinkingPointer _allKeyblinkingPointer; - private static SetLedRGBPointer _setLedRGBPointer; - private static SetAllLedSfxPointer _setAllLedSfxPointer; - - #endregion - - #region Delegates - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate IntPtr InitSDKPointer(); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void UnloadSDKPointer(IntPtr handle); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate bool InitRyosTalkPointer(IntPtr handle); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void RestoreLedRGBPointer(IntPtr handle); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate bool SetRyosKbSDKModePointer(IntPtr handle, bool state); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void TurnOffAllLedsPointer(IntPtr handle); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void TurnOnAllLedsPointer(IntPtr handle); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void SetLedOnPointer(IntPtr handle, byte position); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void SetLedOffPointer(IntPtr handle, byte position); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void SetAllLedsPointer(IntPtr handle, byte led, byte country); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void AllKeyblinkingPointer(IntPtr handle, int delayTime, int loopTime); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void SetLedRGBPointer(IntPtr handle, byte zone, byte effect, byte speed, byte r, byte g, byte b); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - private delegate void SetAllLedSfxPointer(IntPtr handle, byte ledOnOff, byte r, byte g, byte b, byte layout); - - #endregion - - // ReSharper disable EventExceptionNotDocumented - - internal static IntPtr InitSDK() => _initSDKPointer(); - internal static void UnloadSDK(IntPtr handle) => _unloadSDKPointer(handle); - internal static bool InitRyosTalk(IntPtr handle) => _initRyosTalkPointer(handle); - internal static void RestoreLedRGB(IntPtr handle) => _restoreLedRGBPointer(handle); - internal static bool SetRyosKbSDKMode(IntPtr handle, bool state) => _setRyosKbSDKModePointer(handle, state); - internal static void TurnOffAllLeds(IntPtr handle) => _turnOffAllLedsPointer(handle); - internal static void TurnOnAllLeds(IntPtr handle) => _turnOnAllLedsPointer(handle); - internal static void SetLedOn(IntPtr handle, byte position) => _setLedOnPointer(handle, position); - internal static void SetLedOff(IntPtr handle, byte position) => _setLedOffPointer(handle, position); - internal static void SetAllLeds(IntPtr handle, byte led, byte country) => _setAllLedsPointer(handle, led, country); - internal static void AllKeyblinking(IntPtr handle, int delayTime, int loopTime) => _allKeyblinkingPointer(handle, delayTime, loopTime); - internal static void SetLedRGB(IntPtr handle, byte zone, byte effect, byte speed, byte r, byte g, byte b) => _setLedRGBPointer(handle, zone, effect, speed, r, g, b); - internal static void SetAllLedSfx(IntPtr handle, byte ledOnOff, byte r, byte g, byte b, byte layout) => _setAllLedSfxPointer(handle, ledOnOff, r, g, b, layout); - - // ReSharper restore EventExceptionNotDocumented - - #endregion - } -} diff --git a/RGB.NET.Devices.Roccat/RGB.NET.Devices.Roccat.csproj b/RGB.NET.Devices.Roccat/RGB.NET.Devices.Roccat.csproj deleted file mode 100644 index d69b9ec..0000000 --- a/RGB.NET.Devices.Roccat/RGB.NET.Devices.Roccat.csproj +++ /dev/null @@ -1,56 +0,0 @@ - - - net6.0 - latest - enable - - Darth Affe - Wyrez - en-US - en-US - RGB.NET.Devices.Roccat - RGB.NET.Devices.Roccat - RGB.NET.Devices.Roccat - RGB.NET.Devices.Roccat - RGB.NET.Devices.Roccat - Roccat-Device-Implementations of RGB.NET - Roccat-Device-Implementations of RGB.NET, a C# (.NET) library for accessing various RGB-peripherals - Copyright © Darth Affe 2020 - Copyright © Darth Affe 2020 - http://lib.arge.be/icon.png - https://github.com/DarthAffe/RGB.NET - https://raw.githubusercontent.com/DarthAffe/RGB.NET/master/LICENSE - Github - https://github.com/DarthAffe/RGB.NET - False - - - - 0.0.1 - 0.0.1 - 0.0.1 - - ..\bin\ - true - True - True - - - - $(DefineConstants);TRACE;DEBUG - true - full - false - - - - pdbonly - true - $(NoWarn);CS1591;CS1572;CS1573 - $(DefineConstants);RELEASE - - - - - - \ No newline at end of file diff --git a/RGB.NET.Devices.Roccat/RoccatDeviceProvider.cs b/RGB.NET.Devices.Roccat/RoccatDeviceProvider.cs deleted file mode 100644 index 4ad9a9e..0000000 --- a/RGB.NET.Devices.Roccat/RoccatDeviceProvider.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using RGB.NET.Core; -using RGB.NET.Devices.Roccat.Native; - -namespace RGB.NET.Devices.Roccat -{ - /// - /// - /// Represents a device provider responsible for roccat (TalkFX)devices. - /// - public class RoccatDeviceProvider : IRGBDeviceProvider - { - #region Properties & Fields - - private static RoccatDeviceProvider _instance; - /// - /// Gets the singleton instance. - /// - public static RoccatDeviceProvider Instance => _instance ?? new RoccatDeviceProvider(); - - /// - /// Gets a modifiable list of paths used to find the native SDK-dlls for x86 applications. - /// The first match will be used. - /// - public static List PossibleX86NativePaths { get; } = new List { "x86/RoccatTalkSDKWrapper.dll" }; - - /// - /// Gets a modifiable list of paths used to find the native SDK-dlls for x64 applications. - /// The first match will be used. - /// - public static List PossibleX64NativePaths { get; } = new List { "x64/RoccatTalkSDKWrapper.dll" }; - - /// - /// - /// Indicates if the SDK is initialized and ready to use. - /// - public bool IsInitialized { get; private set; } - - /// - /// Gets the loaded architecture (x64/x86). - /// - public string LoadedArchitecture => _RoccatSDK.LoadedArchitecture; - - /// - /// - /// Gets whether the application has exclusive access to the SDK or not. - /// - public bool HasExclusiveAccess { get; private set; } - - /// - public IEnumerable Devices { get; private set; } - - private IntPtr _sdkHandle; - - #endregion - - #region Constructors - - /// - /// Initializes a new instance of the class. - /// - /// Thrown if this constructor is called even if there is already an instance of this class. - public RoccatDeviceProvider() - { - if (_instance != null) throw new InvalidOperationException($"There can be only one instance of type {nameof(RoccatDeviceProvider)}"); - _instance = this; - } - - #endregion - - #region Methods - - /// - /// Thrown if the SDK is already initialized or if the SDK is not compatible to CUE. - public bool Initialize(RGBDeviceType loadFilter = RGBDeviceType.All, bool exclusiveAccessIfPossible = false, bool throwExceptions = false) - { - IsInitialized = false; - - try - { - _sdkHandle = _RoccatSDK.InitSDK(); - - IList devices = new List(); - - Devices = new ReadOnlyCollection(devices); - IsInitialized = true; - } - catch - { - if (throwExceptions) throw; - return false; - } - - return true; - } - - /// - public void ResetDevices() - { } - - /// - public void Dispose() - { - if (_sdkHandle != IntPtr.Zero) - { - try { _RoccatSDK.RestoreLedRGB(_sdkHandle); } - catch { /* We tried our best */} - - try { _RoccatSDK.SetRyosKbSDKMode(_sdkHandle, false); } - catch { /* We tried our best */} - - try { _RoccatSDK.UnloadSDK(_sdkHandle); } - catch { /* We tried our best */} - } - - try { _RoccatSDK.UnloadRoccatSDK(); } - catch { /* at least we tried */ } - } - - #endregion - } -} diff --git a/RGB.NET.Devices.Roccat/RoccatDeviceProviderLoader.cs b/RGB.NET.Devices.Roccat/RoccatDeviceProviderLoader.cs deleted file mode 100644 index 261de13..0000000 --- a/RGB.NET.Devices.Roccat/RoccatDeviceProviderLoader.cs +++ /dev/null @@ -1,24 +0,0 @@ -using RGB.NET.Core; - -namespace RGB.NET.Devices.Roccat -{ - /// - /// Represents a device provider loaded used to dynamically load roccat devices into an application. - /// - public class RoccatDeviceProviderLoader : IRGBDeviceProviderLoader - { - #region Properties & Fields - - /// - public bool RequiresInitialization => false; - - #endregion - - #region Methods - - /// - public IRGBDeviceProvider GetDeviceProvider() => RoccatDeviceProvider.Instance; - - #endregion - } -}