Skip to content

Commit 4773e0d

Browse files
authored
Merge pull request #381 from DarthAffe/Development
v2.1
2 parents 5a104ea + 29e68ae commit 4773e0d

25 files changed

Lines changed: 869 additions & 44 deletions

.github/workflows/ci.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ jobs:
1414
runs-on: windows-latest
1515

1616
steps:
17-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4.1.1
1818
with:
1919
fetch-depth: 0
2020
- name: Setup .NET
21-
uses: actions/setup-dotnet@v3
21+
uses: actions/setup-dotnet@v4
2222
with:
2323
dotnet-version: |
2424
8.0.x
@@ -37,25 +37,25 @@ jobs:
3737
- name: Test
3838
run: dotnet test --no-build --verbosity normal --configuration Release
3939
- name: Upload a Build Artifact NET6
40-
uses: actions/upload-artifact@v2.2.4
40+
uses: actions/upload-artifact@v4.3.1
4141
with:
4242
name: RGB.NET-NET6
4343
path: bin/net6.0/RGB.NET.*.dll
4444
if-no-files-found: error
4545
- name: Upload a Build Artifact NET7
46-
uses: actions/upload-artifact@v2.2.4
46+
uses: actions/upload-artifact@v4.3.1
4747
with:
4848
name: RGB.NET-NET7
4949
path: bin/net7.0/RGB.NET.*.dll
5050
if-no-files-found: error
5151
- name: Upload a Build Artifact NET8
52-
uses: actions/upload-artifact@v2.2.4
52+
uses: actions/upload-artifact@v4.3.1
5353
with:
5454
name: RGB.NET-NET8
5555
path: bin/net8.0/RGB.NET.*.dll
5656
if-no-files-found: error
5757
- name: Upload Nuget Build Artifact
58-
uses: actions/upload-artifact@v2.2.4
58+
uses: actions/upload-artifact@v4.3.1
5959
with:
6060
name: RGB.NET-Nugets
6161
path: bin/*nupkg
@@ -64,9 +64,3 @@ jobs:
6464
run: dotnet nuget push **\*.nupkg --skip-duplicate --api-key ${{ secrets.NUGET_TOKEN }} --source https://api.nuget.org/v3/index.json
6565
- name: Symbols Push
6666
run: dotnet nuget push **\*.snupkg --skip-duplicate --api-key ${{ secrets.NUGET_TOKEN }} --source https://api.nuget.org/v3/index.json
67-
- name: Create Tag
68-
uses: mathieudutour/github-tag-action@v6.1
69-
with:
70-
github_token: ${{ secrets.GITHUB_TOKEN }}
71-
custom_tag: ${{ steps.versioning.outputs.version }}
72-
tag_prefix: v

.github/workflows/pr_verify.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ jobs:
1010
runs-on: windows-latest
1111

1212
steps:
13-
- uses: actions/checkout@v3
13+
- uses: actions/checkout@v4.1.1
1414
- name: Setup .NET
15-
uses: actions/setup-dotnet@v3
15+
uses: actions/setup-dotnet@v4
1616
with:
1717
dotnet-version: |
1818
8.0.x

.github/workflows/release.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ jobs:
1313
runs-on: windows-latest
1414

1515
steps:
16-
- uses: actions/checkout@v3
16+
- uses: actions/checkout@v4.1.1
1717
with:
1818
fetch-depth: 0
1919
- name: Setup .NET
20-
uses: actions/setup-dotnet@v3
20+
uses: actions/setup-dotnet@v4
2121
with:
2222
dotnet-version: |
2323
8.0.x
@@ -28,33 +28,33 @@ jobs:
2828
uses: PaulHatch/semantic-version@v4.0.3
2929
with:
3030
short_tags: false
31-
format: "${major}.${minor}.${patch}"
31+
format: "${major}.${minor}.${patch}-prerelease.${increment}"
3232
- name: Restore dependencies
3333
run: dotnet restore
3434
- name: Build
3535
run: dotnet build --no-restore --configuration Release /p:Version=${{ steps.versioning.outputs.version }}
3636
- name: Test
3737
run: dotnet test --no-build --verbosity normal --configuration Release
3838
- name: Upload a Build Artifact NET6
39-
uses: actions/upload-artifact@v2.2.4
39+
uses: actions/upload-artifact@v4.3.1
4040
with:
4141
name: RGB.NET-NET6
4242
path: bin/net6.0/RGB.NET.*.dll
4343
if-no-files-found: error
4444
- name: Upload a Build Artifact NET7
45-
uses: actions/upload-artifact@v2.2.4
45+
uses: actions/upload-artifact@v4.3.1
4646
with:
4747
name: RGB.NET-NET7
4848
path: bin/net7.0/RGB.NET.*.dll
4949
if-no-files-found: error
5050
- name: Upload a Build Artifact NET8
51-
uses: actions/upload-artifact@v2.2.4
51+
uses: actions/upload-artifact@v4.3.1
5252
with:
5353
name: RGB.NET-NET8
5454
path: bin/net8.0/RGB.NET.*.dll
5555
if-no-files-found: error
5656
- name: Upload Nuget Build Artifact
57-
uses: actions/upload-artifact@v2.2.4
57+
uses: actions/upload-artifact@v4.3.1
5858
with:
5959
name: RGB.NET-Nugets
6060
path: bin/*nupkg

RGB.NET.Devices.DMX/E131/E131UpdateQueue.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,12 @@ private byte GetNextSequenceNumber()
9999
return _sequenceNumber++;
100100
}
101101

102+
public override void Dispose()
103+
{
104+
base.Dispose();
105+
106+
_socket.Dispose();
107+
}
108+
102109
#endregion
103110
}

RGB.NET.Devices.Logitech/LogitechDeviceProvider.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,9 @@ protected override void Dispose(bool disposing)
277277
try { _LogitechGSDK.LogiLedRestoreLighting(); }
278278
catch { /* at least we tried */ }
279279

280+
try { _LogitechGSDK.LogiLedShutdown(); }
281+
catch { /* at least we tried */ }
282+
280283
try { _LogitechGSDK.UnloadLogitechGSDK(); }
281284
catch { /* at least we tried */ }
282285

RGB.NET.Devices.Novation/Enum/NovationDevices.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,10 @@ public enum NovationDevices
3434
[DeviceId("Launchpad Open")]
3535
[ColorCapability(NovationColorCapabilities.RGB)]
3636
[LedIdMapping(LedIdMappings.Pro)]
37-
LaunchpadCustomFirmware
37+
LaunchpadCustomFirmware,
38+
39+
[DeviceId("LPMiniMK3")]
40+
[ColorCapability(NovationColorCapabilities.RGB)]
41+
[LedIdMapping(LedIdMappings.Current)]
42+
LaunchpadMiniMK3,
3843
}

RGB.NET.Devices.Novation/NovationDeviceProvider.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,10 @@ protected override IEnumerable<IRGBDevice> LoadDevices()
6565
MidiOutCaps outCaps = OutputDeviceBase.GetDeviceCapabilities(index);
6666
if (outCaps.name == null) continue;
6767

68-
string deviceName = outCaps.name.ToUpperInvariant();
6968
NovationDevices? deviceId = (NovationDevices?)Enum.GetValues(typeof(NovationDevices))
7069
.Cast<Enum>()
7170
.Where(x => x.GetDeviceId() != null)
72-
.FirstOrDefault(x => deviceName.Contains(x.GetDeviceId()!.ToUpperInvariant()));
71+
.FirstOrDefault(x => outCaps.name.Contains(x.GetDeviceId()!, StringComparison.InvariantCultureIgnoreCase));
7372

7473
if (deviceId == null) continue;
7574

RGB.NET.Devices.OpenRGB/Generic/LedMappings.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,5 +141,8 @@ internal static class LedMappings
141141
["Key: G9"] = LedId.Keyboard_Programmable9,
142142
["Lighting"] = LedId.Keyboard_Brightness,
143143
["Game Mode"] = LedId.Keyboard_WinLock,
144+
["Num Lock Indicator"] = LedId.Keyboard_IndicatorNumLock,
145+
["Caps Lock Indicator"] = LedId.Keyboard_IndicatorCapsLock,
146+
["Scroll Lock Indicator"] = LedId.Keyboard_IndicatorScrollLock,
144147
};
145148
}
Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,55 @@
1-
namespace RGB.NET.Devices.Razer;
1+
using System;
2+
3+
namespace RGB.NET.Devices.Razer;
24

35
/// <summary>
46
/// Represents a type of Razer SDK endpoint
57
/// </summary>
8+
[Flags]
69
public enum RazerEndpointType
710
{
11+
/// <summary>
12+
/// No endpoint
13+
/// </summary>
14+
None = 0,
15+
816
/// <summary>
917
/// The keyboard endpoint
1018
/// </summary>
11-
Keyboard,
19+
Keyboard = 1 << 0,
1220

1321
/// <summary>
1422
/// The laptop keyboard endpoint, shares the <see cref="Keyboard"/> endpoint but has a different LED layout
1523
/// </summary>
16-
LaptopKeyboard,
24+
LaptopKeyboard = 1 << 1,
1725

1826
/// <summary>
1927
/// The mouse endpoint
2028
/// </summary>
21-
Mouse,
29+
Mouse = 1 << 2,
2230

2331
/// <summary>
2432
/// The headset endpoint
2533
/// </summary>
26-
Headset,
34+
Headset = 1 << 3,
2735

2836
/// <summary>
2937
/// The mousepad endpoint
3038
/// </summary>
31-
Mousepad,
39+
Mousepad = 1 << 4,
3240

3341
/// <summary>
3442
/// The keypad endpoint
3543
/// </summary>
36-
Keypad,
44+
Keypad = 1 << 5,
3745

3846
/// <summary>
3947
/// The Chroma Link endpoint
4048
/// </summary>
41-
ChromaLink,
42-
}
49+
ChromaLink = 1 << 6,
50+
51+
/// <summary>
52+
/// All endpoints
53+
/// </summary>
54+
All = ~None
55+
}

RGB.NET.Devices.Razer/RazerDeviceProvider.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static RazerDeviceProvider Instance
5050
/// <summary>
5151
/// Forces to load the devices represented by the emulator even if they aren't reported to exist.
5252
/// </summary>
53-
public bool LoadEmulatorDevices { get; set; } = false;
53+
public RazerEndpointType LoadEmulatorDevices { get; set; } = RazerEndpointType.None;
5454

5555
private const int VENDOR_ID = 0x1532;
5656

@@ -216,6 +216,7 @@ public static RazerDeviceProvider Instance
216216
{ 0x008F, RGBDeviceType.Mouse, "Naga Pro", LedMappings.Mouse, RazerEndpointType.Mouse }, //this is via usb connection
217217
{ 0x0090, RGBDeviceType.Mouse, "Naga Pro", LedMappings.Mouse, RazerEndpointType.Mouse }, //this is via bluetooth connection
218218
{ 0x0091, RGBDeviceType.Mouse, "Viper 8khz", LedMappings.Mouse, RazerEndpointType.Mouse },
219+
{ 0x0093, RGBDeviceType.Mouse, "Naga Classic", LedMappings.Mouse, RazerEndpointType.Mouse },
219220
{ 0x0094, RGBDeviceType.Mouse, "Orochi V2", LedMappings.Mouse, RazerEndpointType.Mouse },
220221
{ 0x0096, RGBDeviceType.Mouse, "Naga X", LedMappings.Mouse, RazerEndpointType.Mouse },
221222
{ 0x0099, RGBDeviceType.Mouse, "Basilisk v3", LedMappings.Mouse, RazerEndpointType.Mouse },
@@ -312,21 +313,26 @@ protected override IEnumerable<IRGBDevice> GetLoadedDevices(RGBDeviceType loadFi
312313
{
313314
DeviceDefinitions.LoadFilter = loadFilter;
314315

315-
IList<IRGBDevice> devices = base.GetLoadedDevices(loadFilter).ToList();
316+
List<IRGBDevice> devices = base.GetLoadedDevices(loadFilter).ToList();
316317

317-
if (LoadEmulatorDevices)
318+
if (LoadEmulatorDevices != RazerEndpointType.None)
318319
{
319-
if (loadFilter.HasFlag(RGBDeviceType.Keyboard) && devices.All(d => d is not RazerKeyboardRGBDevice))
320+
if (loadFilter.HasFlag(RGBDeviceType.Keyboard) && (LoadEmulatorDevices.HasFlag(RazerEndpointType.Keyboard) || LoadEmulatorDevices.HasFlag(RazerEndpointType.LaptopKeyboard)) && devices.All(d => d is not RazerKeyboardRGBDevice))
320321
devices.Add(new RazerKeyboardRGBDevice(new RazerKeyboardRGBDeviceInfo("Emulator Keyboard", RazerEndpointType.Keyboard), GetUpdateTrigger(), LedMappings.Keyboard));
321-
if (loadFilter.HasFlag(RGBDeviceType.Mouse) && devices.All(d => d is not RazerMouseRGBDevice))
322+
323+
if (loadFilter.HasFlag(RGBDeviceType.Mouse) && LoadEmulatorDevices.HasFlag(RazerEndpointType.Mouse) && devices.All(d => d is not RazerMouseRGBDevice))
322324
devices.Add(new RazerMouseRGBDevice(new RazerRGBDeviceInfo(RGBDeviceType.Mouse, RazerEndpointType.Mouse, "Emulator Mouse"), GetUpdateTrigger(), LedMappings.Mouse));
323-
if (loadFilter.HasFlag(RGBDeviceType.Headset) && devices.All(d => d is not RazerHeadsetRGBDevice))
325+
326+
if (loadFilter.HasFlag(RGBDeviceType.Headset) && LoadEmulatorDevices.HasFlag(RazerEndpointType.Headset) && devices.All(d => d is not RazerHeadsetRGBDevice))
324327
devices.Add(new RazerHeadsetRGBDevice(new RazerRGBDeviceInfo(RGBDeviceType.Headset, RazerEndpointType.Headset, "Emulator Headset"), GetUpdateTrigger()));
325-
if (loadFilter.HasFlag(RGBDeviceType.Mousepad) && devices.All(d => d is not RazerMousepadRGBDevice))
328+
329+
if (loadFilter.HasFlag(RGBDeviceType.Mousepad) && LoadEmulatorDevices.HasFlag(RazerEndpointType.Mousepad) && devices.All(d => d is not RazerMousepadRGBDevice))
326330
devices.Add(new RazerMousepadRGBDevice(new RazerRGBDeviceInfo(RGBDeviceType.Mousepad, RazerEndpointType.Mousepad, "Emulator Mousepad"), GetUpdateTrigger()));
327-
if (loadFilter.HasFlag(RGBDeviceType.Keypad) && devices.All(d => d is not RazerMousepadRGBDevice))
331+
332+
if (loadFilter.HasFlag(RGBDeviceType.Keypad) && LoadEmulatorDevices.HasFlag(RazerEndpointType.Keypad) && devices.All(d => d is not RazerMousepadRGBDevice))
328333
devices.Add(new RazerKeypadRGBDevice(new RazerRGBDeviceInfo(RGBDeviceType.Keypad, RazerEndpointType.Keypad, "Emulator Keypad"), GetUpdateTrigger()));
329-
if (loadFilter.HasFlag(RGBDeviceType.Unknown) && devices.All(d => d is not RazerChromaLinkRGBDevice))
334+
335+
if (loadFilter.HasFlag(RGBDeviceType.Unknown) && LoadEmulatorDevices.HasFlag(RazerEndpointType.ChromaLink) && devices.All(d => d is not RazerChromaLinkRGBDevice))
330336
devices.Add(new RazerChromaLinkRGBDevice(new RazerRGBDeviceInfo(RGBDeviceType.Unknown, RazerEndpointType.ChromaLink, "Emulator Chroma Link"), GetUpdateTrigger()));
331337
}
332338

0 commit comments

Comments
 (0)