cemu-DS4Windows/DS4Windows/DS4Library/DS4StateExposed.cs
Jays2Kings 8d9f69db44 Version 1.4.3
Complete rehaul of the profile settings, bigger workspace to edit
controls, and all the settings are on the side now
Added option to change the lightbar color, regardless of the profile's
lightbar setting (useful for using one profile on the same controller).
to change click the colored button beside edit in the main tab
Can now set the Gyro as an 1:1 absolute mouse, in this mode the mouse
now moves as the controller is moved
Removed the experimental exclusive connection button if on the newest
Windows 10 build (1511/TH2)
Finally updated all the translations and added some new ones (such as
Chinese and Polish, the translations sheets have been merged to one so
it's easier for me to update
2015-11-28 00:47:26 -05:00

74 lines
3.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DS4Windows
{
public class DS4StateExposed
{
private DS4State _state;
private byte[] accel = new byte[] { 0, 0, 0, 0, 0, 0 },
gyro = new byte[] { 0, 0, 0, 0, 0, 0 };
public DS4StateExposed()
{
_state = new DS4State();
}
public DS4StateExposed(DS4State state)
{
_state = state;
}
bool Square { get { return _state.Square; } }
bool Triangle { get { return _state.Triangle; } }
bool Circle { get { return _state.Circle; } }
bool Cross { get { return _state.Cross; } }
bool DpadUp { get { return _state.DpadUp; } }
bool DpadDown { get { return _state.DpadDown; } }
bool DpadLeft { get { return _state.DpadLeft; } }
bool DpadRight { get { return _state.DpadRight; } }
bool L1 { get { return _state.L1; } }
bool L3 { get { return _state.L3; } }
bool R1 { get { return _state.R1; } }
bool R3 { get { return _state.R3; } }
bool Share { get { return _state.Share; } }
bool Options { get { return _state.Options; } }
bool PS { get { return _state.PS; } }
bool Touch1 { get { return _state.Touch1; } }
bool Touch2 { get { return _state.Touch2; } }
bool TouchButton { get { return _state.TouchButton; } }
byte LX { get { return _state.LX; } }
byte RX { get { return _state.RX; } }
byte LY { get { return _state.LY; } }
byte RY { get { return _state.RY; } }
byte L2 { get { return _state.L2; } }
byte R2 { get { return _state.R2; } }
int Battery { get { return _state.Battery; } }
/// <summary> Holds raw DS4 input data from 14 to 19 </summary>
public byte[] Accel { set { accel = value; } }
/// <summary> Holds raw DS4 input data from 20 to 25 </summary>
public byte[] Gyro { set { gyro = value; } }
/// <summary> Yaw leftward/counter-clockwise/turn to port or larboard side </summary>
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
public int AccelX { get { return (Int16)((UInt16)(accel[2] << 8) | accel[3]) / 256; } }
/// <summary> Pitch upward/backward </summary>
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
public int AccelY { get { return (Int16)((UInt16)(accel[0] << 8) | accel[1]) / 256; } }
/// <summary> roll left/L side of controller down/starboard raising up </summary>
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
public int AccelZ { get { return (Int16)((UInt16)(accel[4] << 8) | accel[5]) / 256; } }
/// <summary> R side of controller upward </summary>
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
public int GyroX { get { return (Int16)((UInt16)(gyro[0] << 8) | gyro[1]) / 64; } }
/// <summary> touchpad and button face side of controller upward </summary>
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
public int GyroY { get { return (Int16)((UInt16)(gyro[2] << 8) | gyro[3]) / 64; } }
/// <summary> Audio/expansion ports upward and light bar/shoulders/bumpers/USB port downward </summary>
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
public int GyroZ { get { return (Int16)((UInt16)(gyro[4] << 8) | gyro[5]) / 64; } }
}
}