private void DecodePacket(byte[] input) { if (input.Length < 2) { throw new ArgumentOutOfRangeException(nameof(input)); } UdpStreamMode = (UdpStreamMode)input[0]; Duration = input[1]; switch (UdpStreamMode) { case UdpStreamMode.Drgb: DecodeDrgb(input.Skip(2).ToArray()); break; case UdpStreamMode.Dnrgb: DecodeDnrgb(input.Skip(2).ToArray()); break; case UdpStreamMode.Drgbw: DecodeDrgbw(input.Skip(2).ToArray()); break; case UdpStreamMode.Warls: DecodeWarls(input.Skip(2).ToArray()); break; default: throw new ArgumentOutOfRangeException(nameof(UdpStreamMode)); } }
public ColorPacket(Color[] colors, UdpStreamMode mode = UdpStreamMode.Drgb) { UdpStreamMode = mode; Colors = colors; }