public void Parse(string[] str) { // Parse buttons first, accepting empty strings as None if (string.IsNullOrWhiteSpace(str[0])) { _button = GcButton.None; } else { _button = (GcButton)Enum.Parse(typeof(GcButton), str[0]); } // Parse triggers _triggerL = byte.Parse(str[1]); _triggerR = byte.Parse(str[2]); // Parse analogs var analogSplit = str[3].Split(','); _analogX = sbyte.Parse(analogSplit[0]); _analogY = sbyte.Parse(analogSplit[1]); // Parse C-Stick var cStickSplit = str[4].Split(','); _cStickX = sbyte.Parse(cStickSplit[0]); _cStickY = sbyte.Parse(cStickSplit[1]); }
public GameCubeFrame(byte[] data) { _button = (GcButton)(data[0] | (data[1] << 8)); _triggerL = data[2]; _triggerR = data[3]; _analogX = (sbyte)(data[4] - 128); _analogY = (sbyte)(data[5] - 128); _cStickX = (sbyte)(data[6] - 128); _cStickY = (sbyte)(data[7] - 128); }