mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-11-30 04:54:20 +01:00
Simplify interpreting dpad state
This commit is contained in:
parent
031efa2b0c
commit
57da16278e
@ -422,19 +422,10 @@ namespace DS4Windows
|
|||||||
cState.Circle = ((byte)inputReport[5] & (1 << 6)) != 0;
|
cState.Circle = ((byte)inputReport[5] & (1 << 6)) != 0;
|
||||||
cState.Cross = ((byte)inputReport[5] & (1 << 5)) != 0;
|
cState.Cross = ((byte)inputReport[5] & (1 << 5)) != 0;
|
||||||
cState.Square = ((byte)inputReport[5] & (1 << 4)) != 0;
|
cState.Square = ((byte)inputReport[5] & (1 << 4)) != 0;
|
||||||
cState.DpadUp = ((byte)inputReport[5] & (1 << 3)) != 0;
|
|
||||||
cState.DpadDown = ((byte)inputReport[5] & (1 << 2)) != 0;
|
|
||||||
cState.DpadLeft = ((byte)inputReport[5] & (1 << 1)) != 0;
|
|
||||||
cState.DpadRight = ((byte)inputReport[5] & (1 << 0)) != 0;
|
|
||||||
|
|
||||||
//Convert dpad into individual On/Off bits instead of a clock representation
|
// First 4 bits denote dpad state. Clock representation
|
||||||
byte dpad_state = 0;
|
// with 8 meaning centered and 0 meaning DpadUp.
|
||||||
|
byte dpad_state = (byte)(inputReport[5] & 0x0F);
|
||||||
dpad_state = (byte)(
|
|
||||||
((cState.DpadRight ? 1 : 0) << 0) |
|
|
||||||
((cState.DpadLeft ? 1 : 0) << 1) |
|
|
||||||
((cState.DpadDown ? 1 : 0) << 2) |
|
|
||||||
((cState.DpadUp ? 1 : 0) << 3));
|
|
||||||
|
|
||||||
switch (dpad_state)
|
switch (dpad_state)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user