Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions MobiFlight/Joysticks/Winwing/WinwingFcu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ private List<int> EncoderIncDecButtons
= new List<int> { SPD_DEC, SPD_INC, HDG_DEC, HDG_INC, ALT_DEC, ALT_INC, VS_DEC, VS_INC, BAROL_DEC, BAROL_INC, BAROR_DEC, BAROR_INC };

private volatile bool DoInitialize = true;
private volatile bool DoRetrigger = false;
private volatile bool DoReadHidReports = false;
private WinwingFcuReport CurrentReport = new WinwingFcuReport();
private WinwingFcuReport PreviousReport = new WinwingFcuReport();
Expand Down Expand Up @@ -159,12 +160,17 @@ private void InputReportReceived(HidBuffer hidBuffer)
if (DoInitialize)
{
CurrentReport.CopyTo(PreviousReport);
PreviousReport.ButtonState = ~PreviousReport.ButtonState; // to retrigger
PreviousReport.ButtonState2 = ~PreviousReport.ButtonState2; // to retrigger
PreviousReport.ButtonState3 = ~PreviousReport.ButtonState3; // to retrigger
DoInitialize = false;
}

if (DoRetrigger)
{
PreviousReport.ButtonState = ~CurrentReport.ButtonState; // to retrigger
PreviousReport.ButtonState2 = ~CurrentReport.ButtonState2; // to retrigger
PreviousReport.ButtonState3 = ~CurrentReport.ButtonState3; // to retrigger
DoRetrigger = false;
}

// Detect and Trigger Button Events
uint pressed = CurrentReport.ButtonState & ~PreviousReport.ButtonState; // rising edges
uint released = PreviousReport.ButtonState & ~CurrentReport.ButtonState; // falling edges
Expand Down Expand Up @@ -211,7 +217,7 @@ protected void TriggerButtonPress(JoystickDevice device, MobiFlightButton.InputE

public override void Retrigger()
{
DoInitialize = true;
DoRetrigger = true;
}


Expand Down
14 changes: 10 additions & 4 deletions MobiFlight/Joysticks/Winwing/WinwingPap3.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ private List<int> EncoderIncDecButtons
= new List<int> { SPD_DEC, SPD_INC, HDG_DEC, HDG_INC, ALT_DEC, ALT_INC, VS_DEC, VS_INC, CRSL_DEC, CRSL_INC, CRSR_DEC, CRSR_INC };

private volatile bool DoInitialize = true;
private volatile bool DoRetrigger = false;
private volatile bool DoReadHidReports = false;
private WinwingPap3Report CurrentReport = new WinwingPap3Report();
private WinwingPap3Report PreviousReport = new WinwingPap3Report();
Expand Down Expand Up @@ -155,12 +156,17 @@ private void InputReportReceived(HidBuffer hidBuffer)
if (DoInitialize)
{
CurrentReport.CopyTo(PreviousReport);
PreviousReport.ButtonState = ~PreviousReport.ButtonState; // to retrigger
PreviousReport.ButtonState2 = ~PreviousReport.ButtonState2; // to retrigger
PreviousReport.ButtonState3 = ~PreviousReport.ButtonState3; // to retrigger
DoInitialize = false;
}

if (DoRetrigger)
{
PreviousReport.ButtonState = ~CurrentReport.ButtonState; // to retrigger
PreviousReport.ButtonState2 = ~CurrentReport.ButtonState2; // to retrigger
PreviousReport.ButtonState3 = ~CurrentReport.ButtonState3; // to retrigger
DoRetrigger = false;
}

// Detect and Trigger Button Events
uint pressed = CurrentReport.ButtonState & ~PreviousReport.ButtonState; // rising edges
uint released = PreviousReport.ButtonState & ~CurrentReport.ButtonState; // falling edges
Expand Down Expand Up @@ -207,7 +213,7 @@ protected void TriggerButtonPress(JoystickDevice device, MobiFlightButton.InputE

public override void Retrigger()
{
DoInitialize = true;
DoRetrigger = true;
}

public override void Update()
Expand Down