diff --git a/RGB.NET.Devices.DMX/E131/E131DataPacketExtension.cs b/RGB.NET.Devices.DMX/E131/E131DataPacketExtension.cs index 4eac0c93..1e9afc80 100644 --- a/RGB.NET.Devices.DMX/E131/E131DataPacketExtension.cs +++ b/RGB.NET.Devices.DMX/E131/E131DataPacketExtension.cs @@ -1,5 +1,5 @@ using System; -using System.Linq; +using System.Buffers.Binary; namespace RGB.NET.Devices.DMX.E131; @@ -12,13 +12,11 @@ internal static class E131DataPacketExtension internal static void SetSequenceNumber(this byte[] data, byte sequenceNumber) => data[111] = sequenceNumber; - internal static void SetUniverse(this byte[] data, short universe) => Array.Copy(ToBigEndian(BitConverter.GetBytes(universe)), 0, data, 113, 2); + internal static void SetUniverse(this byte[] data, short universe) => BinaryPrimitives.TryWriteInt16BigEndian(data.AsSpan().Slice(113, 2), universe); internal static void ClearColors(this byte[] data) => Array.Clear(data, 126, 512); internal static void SetChannel(this byte[] data, int channel, byte value) => data[126 + channel] = value; - private static byte[] ToBigEndian(byte[] data) => BitConverter.IsLittleEndian ? data.Reverse().ToArray() : data; - #endregion } \ No newline at end of file