mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2025-12-12 17:48:31 +00:00
Merge pull request #83 from DarthAffe/Core/ResolveAbsolutePathEvent
Added event to intercept the creation of absolute paths
This commit is contained in:
commit
0f6ec5b56d
@ -157,7 +157,7 @@ namespace RGB.NET.Core
|
||||
DeviceLayout layout = DeviceLayout.Load(layoutPath);
|
||||
if (layout != null)
|
||||
{
|
||||
string imageBasePath = string.IsNullOrWhiteSpace(layout.ImageBasePath) ? null : PathHelper.GetAbsolutePath(layout.ImageBasePath);
|
||||
string imageBasePath = string.IsNullOrWhiteSpace(layout.ImageBasePath) ? null : PathHelper.GetAbsolutePath(this, layout.ImageBasePath);
|
||||
if ((imageBasePath != null) && !string.IsNullOrWhiteSpace(layout.DeviceImage) && (DeviceInfo != null))
|
||||
DeviceInfo.Image = new Uri(Path.Combine(imageBasePath, layout.DeviceImage), UriKind.Absolute);
|
||||
|
||||
|
||||
64
RGB.NET.Core/Events/ResolvePathEventArgs.cs
Normal file
64
RGB.NET.Core/Events/ResolvePathEventArgs.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System;
|
||||
|
||||
namespace RGB.NET.Core
|
||||
{
|
||||
public class ResolvePathEventArgs : EventArgs
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
/// <summary>
|
||||
/// Gets the filename used to resolve the path.
|
||||
/// This has to be checked for null since it'S possible that only <see cref="FileName"/> is used.
|
||||
/// Also check <see cref="RelativePath "/> before use.
|
||||
/// </summary>
|
||||
public string RelativePart { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the filename used to resolve the path.
|
||||
/// This has to be checked for null since it'S possible that only <see cref="RelativePart"/> is used.
|
||||
/// Also check <see cref="RelativePath "/> before use.
|
||||
/// </summary>
|
||||
public string FileName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the relative path used to resolve the path.
|
||||
/// If this is set <see cref="RelativePart" /> and <see cref="FileName" /> are unused.
|
||||
/// </summary>
|
||||
public string RelativePath { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the resolved path.
|
||||
/// </summary>
|
||||
public string FinalPath { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="T:RGB.NET.Corer.ResolvePathEventArgs" /> class.
|
||||
/// </summary>
|
||||
/// <param name="relativePart">The filename used to resolve the path.</param>
|
||||
/// <param name="fileName">The filename used to resolve the path.</param>
|
||||
/// <param name="finalPath">The relative part used to resolve the path.</param>
|
||||
public ResolvePathEventArgs(string relativePart, string fileName, string finalPath)
|
||||
{
|
||||
this.RelativePart = relativePart;
|
||||
this.FileName = fileName;
|
||||
this.FinalPath = finalPath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="T:RGB.NET.Corer.ResolvePathEventArgs" /> class.
|
||||
/// </summary>
|
||||
/// <param name="relativePath">The relative path used to resolve the path.</param>
|
||||
/// <param name="finalPath">The relative part used to resolve the path.</param>
|
||||
public ResolvePathEventArgs(string relativePath, string finalPath)
|
||||
{
|
||||
this.RelativePath = relativePath;
|
||||
this.FinalPath = finalPath;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,5 @@
|
||||
using System.IO;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace RGB.NET.Core
|
||||
@ -8,20 +9,73 @@ namespace RGB.NET.Core
|
||||
/// </summary>
|
||||
public static class PathHelper
|
||||
{
|
||||
#region Events
|
||||
|
||||
/// <summary>
|
||||
/// Occurs when a path is resolving.
|
||||
/// </summary>
|
||||
public static event EventHandler<ResolvePathEventArgs> ResolvingAbsolutePath;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
/// <summary>
|
||||
/// Returns an absolute path created from an relative path relatvie to the location of the executung assembly.
|
||||
/// </summary>
|
||||
/// <param name="relativePath">The relative part of the path to convert.</param>
|
||||
/// <returns>The absolute path.</returns>
|
||||
public static string GetAbsolutePath(string relativePath) => GetAbsolutePath((object)null, relativePath);
|
||||
|
||||
/// <summary>
|
||||
/// Returns an absolute path created from an relative path relatvie to the location of the executung assembly.
|
||||
/// </summary>
|
||||
/// <param name="relativePath">The relative part of the path to convert.</param>
|
||||
/// <param name="fileName">The file name of the path to convert.</param>
|
||||
/// <returns>The absolute path.</returns>
|
||||
public static string GetAbsolutePath(string relativePath, string fileName) => GetAbsolutePath(null, relativePath, fileName);
|
||||
|
||||
/// <summary>
|
||||
/// Returns an absolute path created from an relative path relatvie to the location of the executung assembly.
|
||||
/// </summary>
|
||||
/// <param name="sender">The requester of this path. (Used for better control when using the event to override this behavior.)</param>
|
||||
/// <param name="relativePath">The relative path to convert.</param>
|
||||
/// <param name="fileName">The file name of the path to convert.</param>
|
||||
/// <returns>The absolute path.</returns>
|
||||
public static string GetAbsolutePath(object sender, string relativePath, string fileName)
|
||||
{
|
||||
string relativePart = Path.Combine(relativePath, fileName);
|
||||
|
||||
string assemblyLocation = Assembly.GetEntryAssembly()?.Location;
|
||||
if (assemblyLocation == null) return relativePart;
|
||||
|
||||
string directoryName = Path.GetDirectoryName(assemblyLocation);
|
||||
string path = directoryName == null ? null : Path.Combine(directoryName, relativePart);
|
||||
|
||||
ResolvePathEventArgs args = new ResolvePathEventArgs(relativePath, fileName, path);
|
||||
ResolvingAbsolutePath?.Invoke(sender, args);
|
||||
|
||||
return args.FinalPath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns an absolute path created from an relative path relatvie to the location of the executung assembly.
|
||||
/// </summary>
|
||||
/// <param name="sender">The requester of this path. (Used for better control when using the event to override this behavior.)</param>
|
||||
/// <param name="relativePath">The relative path to convert.</param>
|
||||
/// <returns>The absolute path.</returns>
|
||||
public static string GetAbsolutePath(string relativePath)
|
||||
public static string GetAbsolutePath(object sender, string relativePath)
|
||||
{
|
||||
string assemblyLocation = Assembly.GetEntryAssembly()?.Location;
|
||||
if (assemblyLocation == null) return relativePath;
|
||||
|
||||
string directoryName = Path.GetDirectoryName(assemblyLocation);
|
||||
return directoryName == null ? null : Path.Combine(directoryName, relativePath);
|
||||
string path = directoryName == null ? null : Path.Combine(directoryName, relativePath);
|
||||
|
||||
ResolvePathEventArgs args = new ResolvePathEventArgs(relativePath, path);
|
||||
ResolvingAbsolutePath?.Invoke(sender, args);
|
||||
|
||||
return args.FinalPath;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@ -33,7 +33,7 @@ namespace RGB.NET.Devices.Asus
|
||||
|
||||
//TODO DarthAffe 21.10.2017: We don't know the model, how to save layouts and images?
|
||||
//TODO DarthAffe 07.10.2017: We don't know the model, how to save layouts and images?
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Drams\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\Drams", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -32,7 +32,7 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.GraphicsCard1 + i, new Rectangle(i * 10, 0, 10, 10));
|
||||
|
||||
//TODO DarthAffe 07.10.2017: We don't know the model, how to save layouts and images?
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\GraphicsCards\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\GraphicsCards", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -32,7 +32,7 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.Headset1 + i, new Rectangle(i * 40, 0, 40, 8));
|
||||
|
||||
//TODO DarthAffe 07.10.2017: We don't know the model, how to save layouts and images?
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Headsets\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\Headsets", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -32,12 +32,12 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.Keyboard_Escape + i, new Rectangle(i * 19, 0, 19, 19));
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Keyboards\{model}\{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, $@"Layouts\Asus\Keyboards\{model}", $"{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override object CreateLedCustomData(LedId ledId) => (int)ledId - (int)LedId.Keyboard_Escape;
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.Mainboard1 + i, new Rectangle(i * 40, 0, 40, 8));
|
||||
|
||||
//TODO DarthAffe 07.10.2017: We don't know the model, how to save layouts and images?
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Mainboards\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\Mainboards", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -31,7 +31,7 @@ namespace RGB.NET.Devices.Asus
|
||||
for (int i = 0; i < ledCount; i++)
|
||||
InitializeLed(LedId.Mouse1 + i, new Rectangle(i * 10, 0, 10, 10));
|
||||
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Mouses\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\Mouses", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -34,7 +34,7 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.GraphicsCard1 + i, new Rectangle(i * 10, 0, 10, 10));
|
||||
|
||||
//TODO DarthAffe 07.10.2017: We don't know the model, how to save layouts and images?
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\GraphicsCards\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\GraphicsCards", $"{ DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -34,12 +34,12 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.Keyboard_Escape + i, new Rectangle(i * 19, 0, 19, 19));
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Keyboards\{model}\{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, $@"Layouts\Asus\Keyboards\{model}", $"{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override object CreateLedCustomData(LedId ledId) => (int)ledId - (int)LedId.Keyboard_Escape;
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override Action<IntPtr, byte[]> GetUpdateColorAction() => _AsusSDK.SetClaymoreKeyboardColor;
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ namespace RGB.NET.Devices.Asus
|
||||
InitializeLed(LedId.Mainboard1 + i, new Rectangle(i * 40, 0, 40, 8));
|
||||
|
||||
//TODO DarthAffe 07.10.2017: We don't know the model, how to save layouts and images?
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Mainboards\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\Mainboards", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -33,7 +33,7 @@ namespace RGB.NET.Devices.Asus
|
||||
for (int i = 0; i < ledCount; i++)
|
||||
InitializeLed(LedId.Mouse1 + i, new Rectangle(i * 10, 0, 10, 10));
|
||||
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Asus\Mouses\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Asus\Mouses", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -33,8 +33,8 @@ namespace RGB.NET.Devices.CoolerMaster
|
||||
InitializeLed(led.Key, new Rectangle(led.Value.column * 19, led.Value.row * 19, 19, 19));
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(
|
||||
$@"Layouts\CoolerMaster\Keyboards\{model}\{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, $@"Layouts\CoolerMaster\Keyboards\{model}", $"{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"),
|
||||
DeviceInfo.LogicalLayout.ToString());
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -23,7 +23,7 @@ namespace RGB.NET.Devices.CoolerMaster
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
@ -33,7 +33,7 @@ namespace RGB.NET.Devices.CoolerMaster
|
||||
InitializeLed(led.Key, new Rectangle(led.Value.column * 19, led.Value.row * 19, 19, 19));
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\CoolerMaster\Mice\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\CoolerMaster\Mice", $"{model}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -46,7 +46,7 @@ namespace RGB.NET.Devices.Corsair
|
||||
}
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Corsair\Customs\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Corsair\Customs", $"{model}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -32,7 +32,7 @@ namespace RGB.NET.Devices.Corsair
|
||||
InitializeLed(LedId.Headset1, new Rectangle(0, 0, 10, 10));
|
||||
InitializeLed(LedId.Headset2, new Rectangle(10, 0, 10, 10));
|
||||
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Corsair\Headsets\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Corsair\Headsets", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -51,9 +51,9 @@ namespace RGB.NET.Devices.Corsair
|
||||
foreach (_CorsairLedPosition ledPosition in positions.OrderBy(p => p.LedId))
|
||||
InitializeLed(mapping.TryGetValue(ledPosition.LedId, out LedId ledId) ? ledId : LedId.Invalid, ledPosition.ToRectangle());
|
||||
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Corsair\HeadsetStands\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Corsair\HeadsetStands", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override object CreateLedCustomData(LedId ledId) => HeadsetStandIdMapping.DEFAULT.TryGetValue(ledId, out CorsairLedId id) ? id : CorsairLedId.Invalid;
|
||||
|
||||
|
||||
@ -48,8 +48,8 @@ namespace RGB.NET.Devices.Corsair
|
||||
}
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(
|
||||
$@"Layouts\Corsair\Keyboards\{model}\{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, $@"Layouts\Corsair\Keyboards\{model}", $"{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"),
|
||||
DeviceInfo.LogicalLayout.ToString());
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -48,7 +48,7 @@ namespace RGB.NET.Devices.Corsair
|
||||
}
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Corsair\Memory\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Corsair\Memory", $"{model}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -54,7 +54,7 @@ namespace RGB.NET.Devices.Corsair
|
||||
throw new RGBDeviceException($"Can't initialize mouse with layout '{DeviceInfo.PhysicalLayout}'");
|
||||
}
|
||||
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Corsair\Mice\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Corsair\Mice", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -51,7 +51,7 @@ namespace RGB.NET.Devices.Corsair
|
||||
foreach (_CorsairLedPosition ledPosition in positions.OrderBy(p => p.LedId))
|
||||
InitializeLed(mapping.TryGetValue(ledPosition.LedId, out LedId ledId) ? ledId : LedId.Invalid, ledPosition.ToRectangle());
|
||||
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Corsair\Mousepads\{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Corsair\Mousepads", $"{DeviceInfo.Model.Replace(" ", string.Empty).ToUpper()}.xml"), null);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -67,7 +67,7 @@ namespace RGB.NET.Devices.Logitech
|
||||
|
||||
string layout = info.ImageLayout;
|
||||
string layoutPath = info.LayoutPath;
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Logitech\{layoutPath}.xml"), layout, true);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Logitech", $"{layoutPath}.xml"), layout, true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@ -47,7 +47,7 @@ namespace RGB.NET.Devices.Novation
|
||||
}
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Novation\Launchpads\{model.ToUpper()}.xml"), "Default");
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Novation\Launchpads", $"{model.ToUpper()}.xml"), "Default");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
||||
@ -31,7 +31,7 @@ namespace RGB.NET.Devices.Razer
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Razer\ChromaLink\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Razer\ChromaLink", $"{model}.xml"), null);
|
||||
|
||||
if (LedMapping.Count == 0)
|
||||
for (int i = 0; i < _Defines.CHROMALINK_MAX_LEDS; i++)
|
||||
|
||||
@ -31,7 +31,7 @@ namespace RGB.NET.Devices.Razer
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Razer\Headset\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Razer\Headset", $"{model}.xml"), null);
|
||||
|
||||
if (LedMapping.Count == 0)
|
||||
for (int i = 0; i < _Defines.HEADSET_MAX_LEDS; i++)
|
||||
|
||||
@ -31,7 +31,7 @@ namespace RGB.NET.Devices.Razer
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Razer\Keypad\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Razer\Keypad", $"{model}.xml"), null);
|
||||
|
||||
if (LedMapping.Count == 0)
|
||||
{
|
||||
|
||||
@ -31,7 +31,7 @@ namespace RGB.NET.Devices.Razer
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Razer\Mice\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Razer\Mice", $"{model}.xml"), null);
|
||||
|
||||
if (LedMapping.Count == 0)
|
||||
{
|
||||
|
||||
@ -31,7 +31,7 @@ namespace RGB.NET.Devices.Razer
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\Razer\Mousepad\{model}.xml"), null);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\Razer\Mousepad", $"{model}.xml"), null);
|
||||
|
||||
if (LedMapping.Count == 0)
|
||||
for (int i = 0; i < _Defines.MOUSEPAD_MAX_LEDS; i++)
|
||||
|
||||
@ -80,7 +80,7 @@ namespace RGB.NET.Devices.SteelSeries
|
||||
|
||||
string layout = info.ImageLayout;
|
||||
string layoutPath = info.LayoutPath;
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath($@"Layouts\SteelSeries\{layoutPath}.xml"), layout, true);
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, @"Layouts\SteelSeries", $"{layoutPath}.xml"), layout, true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user