Core - Updated RGB.NET

Plugins - Allow device providers to override the device layout name
This commit is contained in:
Robert committed 2022-01-07 12:03:40 +01:00
1 parent 8b1ce4e0ec
commit 3c827d1a0a
10 files changed
+75 -75

No files matched your search

+3 -3
View File
@@ -47,9 +47,9 @@
<PackageReference Include="Ninject" Version="3.3.4" />
<PackageReference Include="Ninject.Extensions.ChildKernel" Version="3.3.0" />
<PackageReference Include="Ninject.Extensions.Conventions" Version="3.3.0" />
<PackageReference Include="RGB.NET.Core" Version="1.0.0-prerelease1" />
<PackageReference Include="RGB.NET.Layout" Version="1.0.0-prerelease1" />
<PackageReference Include="RGB.NET.Presets" Version="1.0.0-prerelease1" />
<PackageReference Include="RGB.NET.Core" Version="1.0.0-prerelease7" />
<PackageReference Include="RGB.NET.Layout" Version="1.0.0-prerelease7" />
<PackageReference Include="RGB.NET.Presets" Version="1.0.0-prerelease7" />
<PackageReference Include="Serilog" Version="2.10.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Debug" Version="2.0.0" />
@@ -349,24 +349,7 @@ namespace Artemis.Core
return mappedLed;
return artemisLed;
}
/// <summary>
/// Generates the default layout file name of the device
/// </summary>
/// <param name="includeExtension">If true, the .xml extension is added to the file name</param>
/// <returns>The resulting file name e.g. CORSAIR GLAIVE.xml or K95 RGB-ISO.xml</returns>
public string GetLayoutFileName(bool includeExtension = true)
{
// Take out invalid file name chars, may not be perfect but neither are you
string fileName = System.IO.Path.GetInvalidFileNameChars().Aggregate(RgbDevice.DeviceInfo.Model, (current, c) => current.Replace(c, '-'));
if (RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard)
fileName = $"{fileName}-{PhysicalLayout.ToString().ToUpper()}";
if (includeExtension)
fileName = $"{fileName}.xml";
return fileName;
}
/// <summary>
/// Occurs when the underlying RGB.NET device was updated
/// </summary>
@@ -1,5 +1,6 @@
using System;
using System.IO;
using System.Linq;
using Ninject;
using RGB.NET.Core;
using Serilog;
@@ -75,7 +76,7 @@ namespace Artemis.Core.DeviceProviders
layoutDir,
device.RgbDevice.DeviceInfo.Manufacturer,
device.DeviceType.ToString(),
device.GetLayoutFileName()
GetDeviceLayoutName(device)
);
return new ArtemisLayout(filePath, LayoutSource.Plugin);
}
@@ -92,7 +93,7 @@ namespace Artemis.Core.DeviceProviders
layoutDir,
device.RgbDevice.DeviceInfo.Manufacturer,
device.DeviceType.ToString(),
device.GetLayoutFileName()
GetDeviceLayoutName(device)
);
return new ArtemisLayout(filePath, LayoutSource.User);
}
@@ -108,5 +109,20 @@ namespace Artemis.Core.DeviceProviders
{
throw new NotImplementedException("Device provider does not support detecting logical layouts (don't call base.GetLogicalLayout())");
}
/// <summary>
/// Called when determining which file name to use when loading the layout of the specified <paramref name="device"></paramref>.
/// </summary>
/// <param name="device">The device to determine the layout file name for.</param>
/// <returns>A file name, including an extension</returns>
public virtual string GetDeviceLayoutName(ArtemisDevice device)
{
// Take out invalid file name chars, may not be perfect but neither are you
string fileName = Path.GetInvalidFileNameChars().Aggregate(device.RgbDevice.DeviceInfo.Model, (current, c) => current.Replace(c, '-'));
if (device.RgbDevice.DeviceInfo.DeviceType == RGBDeviceType.Keyboard)
fileName = $"{fileName}-{device.PhysicalLayout.ToString().ToUpper()}";
return fileName + ".xml";
}
}
}
+11 -11
View File
@@ -75,26 +75,26 @@
},
"RGB.NET.Core": {
"type": "Direct",
"requested": "[1.0.0-prerelease1, )",
"resolved": "1.0.0-prerelease1",
"contentHash": "aaCPk++kr1TaV/qWYeol5975IN3XifDuuQ9wrCD+nw1cy05BMdGVhuQ72ITb0YRBedssd/btkM51ZABsBd8CEQ=="
"requested": "[1.0.0-prerelease7, )",
"resolved": "1.0.0-prerelease7",
"contentHash": "IIja5sC4QZ5pbSNckRCG7TlY4U6j/dRbrl4e2FZqsTGgsevaVB3IqonUQLFY1GGst4xNSl2oh0A23coXQxXGbQ=="
},
"RGB.NET.Layout": {
"type": "Direct",
"requested": "[1.0.0-prerelease1, )",
"resolved": "1.0.0-prerelease1",
"contentHash": "nbaHbcY59tzFSeTDbImhrcR1ZyJpoC0x6WawXdtGXO7x3F91ajM7kM5SJwi/5jHdD61vGV0ARuznmR8ErAWegQ==",
"requested": "[1.0.0-prerelease7, )",
"resolved": "1.0.0-prerelease7",
"contentHash": "S0kfWVa8EfMOAl2WPHsq98dwaO+SNz9TWr1AtMkdo8aZuYIVhaJ1c+mSAMMnH1V+mSbxDWPHWkNzi9ITszJucA==",
"dependencies": {
"RGB.NET.Core": "1.0.0-prerelease1"
"RGB.NET.Core": "1.0.0-prerelease7"
}
},
"RGB.NET.Presets": {
"type": "Direct",
"requested": "[1.0.0-prerelease1, )",
"resolved": "1.0.0-prerelease1",
"contentHash": "XU8XeI0fQF26fd0pQHgoe9RaROuvENmZlX/1QyyaN9P3j0LtYmy6ycWZbsXp8byLT0UcGbS+odMiQQAnK+kxgg==",
"requested": "[1.0.0-prerelease7, )",
"resolved": "1.0.0-prerelease7",
"contentHash": "NgShvOPQM0miOsdqMKjkNunngJUZMwr8KR8ME2/Ksir7wgIQfgJj1YwZy8aIj+ar7fDo6VZJZenAshs/Ul+04A==",
"dependencies": {
"RGB.NET.Core": "1.0.0-prerelease1"
"RGB.NET.Core": "1.0.0-prerelease7"
}
},
"Serilog": {