ScpControl/Usb/Gamepads/UsbMadcatzTournamentEdition2Fightstick.cs (34 lines of code) (raw):
using ScpControl.Shared.Core;
namespace ScpControl.Usb.Gamepads
{
public class UsbMadcatzTournamentEdition2Fightstick : UsbGenericGamepad
{
public UsbMadcatzTournamentEdition2Fightstick()
{
VendorId = 0738;
ProductId = 3480;
}
protected override void ParseHidReport(byte[] report)
{
PacketCounter++;
var inputReport = NewHidReport();
#region HID Report translation
// no battery state since the Gamepad is Usb-powered
Battery = DsBattery.None;
// packet counter
inputReport.PacketCounter = PacketCounter;
// reset buttons
inputReport.ZeroSelectStartButtonsState();
inputReport.ZeroShoulderButtonsState();
// circle
inputReport.Set(Ds3Button.Circle, IsBitSet(report[1], 2));
inputReport.Set(Ds3Axis.Circle, report[13]);
// cross
inputReport.Set(Ds3Button.Cross, IsBitSet(report[1], 1));
inputReport.Set(Ds3Axis.Cross, report[14]);
// triangle
inputReport.Set(Ds3Button.Triangle, IsBitSet(report[1], 3));
inputReport.Set(Ds3Axis.Triangle, report[12]);
// square
inputReport.Set(Ds3Button.Square, IsBitSet(report[1], 0));
inputReport.Set(Ds3Axis.Square, report[15]);
// select
inputReport.Set(Ds3Button.Select, IsBitSet(report[2], 0));
// start
inputReport.Set(Ds3Button.Start, IsBitSet(report[2], 1));
#endregion
OnHidReportReceived(inputReport);
}
}
}