Skip to content

Commit f9ec563

Browse files
committed
Fix new OpenRGB size checks
1 parent d995266 commit f9ec563

File tree

5 files changed

+42
-21
lines changed

5 files changed

+42
-21
lines changed

src/OpenRGB.NET/OpenRGBClient.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public sealed class OpenRgbClient : IDisposable, IOpenRgbClient
2121

2222
/// <inheritdoc />
2323
public ProtocolVersion MaxSupportedProtocolVersion => ProtocolVersion.FromNumber(MaxProtocolNumber);
24-
24+
2525
/// <inheritdoc />
2626
public ProtocolVersion ClientProtocolVersion => ProtocolVersion.FromNumber(_protocolVersionNumber);
2727

@@ -130,7 +130,7 @@ public void UpdateLeds(int deviceId, ReadOnlySpan<Color> colors)
130130

131131
var bytes = MemoryMarshal.Cast<Color, byte>(colors);
132132

133-
_connection.Send(CommandId.UpdateLeds, (uint)deviceId, new Args<uint, ushort>(0, (ushort)colors.Length), bytes);
133+
_connection.Send(CommandId.UpdateLeds, (uint)deviceId, new UpdateLedsArg((ushort)colors.Length), bytes);
134134
}
135135

136136
/// <inheritdoc />
@@ -147,7 +147,7 @@ public void UpdateZoneLeds(int deviceId, int zoneId, ReadOnlySpan<Color> colors)
147147

148148
var bytes = MemoryMarshal.Cast<Color, byte>(colors);
149149

150-
_connection.Send(CommandId.UpdateZoneLeds, (uint)deviceId, new Args<uint, uint, ushort>(0, (uint)zoneId, (ushort)colors.Length), bytes);
150+
_connection.Send(CommandId.UpdateZoneLeds, (uint)deviceId, new UpdateZoneLedsArg((uint)zoneId, (ushort)colors.Length), bytes);
151151
}
152152

153153
/// <inheritdoc />
@@ -223,7 +223,7 @@ public void UpdateMode(int deviceId, int modeId,
223223
targetMode.SetColors(colors);
224224
}
225225

226-
_connection.Send(CommandId.UpdateMode, (uint)deviceId, new ModeOperationArg(0, (uint)modeId, new ModeArg(targetMode)));
226+
_connection.Send(CommandId.UpdateMode, (uint)deviceId, new ModeOperationArg((uint)modeId, new ModeArg(targetMode)));
227227
}
228228

229229
/// <inheritdoc />
@@ -236,7 +236,7 @@ public void SaveMode(int deviceId, int modeId)
236236

237237
var targetMode = targetDevice.Modes[modeId];
238238

239-
_connection.Send(CommandId.SaveMode, (uint)deviceId, new ModeOperationArg(0, (uint)modeId, new ModeArg(targetMode)));
239+
_connection.Send(CommandId.SaveMode, (uint)deviceId, new ModeOperationArg((uint)modeId, new ModeArg(targetMode)));
240240
}
241241

242242
/// <inheritdoc />

src/OpenRGB.NET/Writables/Args.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,4 @@ public void WriteTo(ref SpanWriter writer)
2222
writer.Write(Arg1);
2323
writer.Write(Arg2);
2424
}
25-
}
26-
27-
internal readonly record struct Args<T1, T2, T3>(T1 Arg1, T2 Arg2, T3 Arg3) : ISpanWritable
28-
where T1 : unmanaged
29-
where T2 : unmanaged
30-
where T3 : unmanaged
31-
{
32-
public int Length => Unsafe.SizeOf<T1>() + Unsafe.SizeOf<T2>() + Unsafe.SizeOf<T3>();
33-
public void WriteTo(ref SpanWriter writer)
34-
{
35-
writer.Write(Arg1);
36-
writer.Write(Arg2);
37-
writer.Write(Arg3);
38-
}
3925
}

src/OpenRGB.NET/Writables/ModeOperationArg.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
namespace OpenRGB.NET;
44

5-
internal readonly record struct ModeOperationArg(uint DataSize, uint ModeId, ModeArg Mode) : ISpanWritable
5+
internal readonly record struct ModeOperationArg(uint ModeId, ModeArg Mode) : ISpanWritable
66
{
77
public int Length => sizeof(uint) * 2 + Mode.Length;
88
public void WriteTo(ref SpanWriter writer)
99
{
10-
writer.Write(DataSize);
10+
writer.Write(Length);
1111
writer.Write(ModeId);
1212
Mode.WriteTo(ref writer);
1313
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Runtime.CompilerServices;
2+
using OpenRGB.NET.Utils;
3+
4+
namespace OpenRGB.NET;
5+
6+
internal readonly record struct UpdateLedsArg(ushort ColorCount) : ISpanWritable
7+
{
8+
public int Length => sizeof(uint) +
9+
sizeof(uint) +
10+
sizeof(ushort);
11+
12+
public void WriteTo(ref SpanWriter writer)
13+
{
14+
writer.Write((uint)(Length + Unsafe.SizeOf<Color>() * ColorCount));
15+
writer.Write(ColorCount);
16+
}
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Runtime.CompilerServices;
2+
using OpenRGB.NET.Utils;
3+
4+
namespace OpenRGB.NET;
5+
6+
internal readonly record struct UpdateZoneLedsArg(uint ZoneId, ushort ColorCount) : ISpanWritable
7+
{
8+
public int Length => sizeof(uint) +
9+
sizeof(uint) +
10+
sizeof(ushort);
11+
12+
public void WriteTo(ref SpanWriter writer)
13+
{
14+
writer.Write((uint)(Length + Unsafe.SizeOf<Color>() * ColorCount));
15+
writer.Write(ZoneId);
16+
writer.Write(ColorCount);
17+
}
18+
}

0 commit comments

Comments
 (0)