TLAC: revert to old style slider emulation when not using ps4 slider input
This commit is contained in:
@@ -2,28 +2,36 @@
|
||||
|
||||
namespace TLAC::Components
|
||||
{
|
||||
void TouchSliderState::SetSensor(int index, int value)
|
||||
void TouchSliderState::SetSensor(int index, int value, SliderSensorSetMode mode)
|
||||
{
|
||||
if (index < 0 || index >= SLIDER_SENSORS)
|
||||
return;
|
||||
|
||||
if (SerialState == nullptr)
|
||||
return;
|
||||
|
||||
uint32_t* ph = SerialState->sliderSerialResponse.sensors[index].pressureHistory;
|
||||
ph[3] = ph[2];
|
||||
ph[2] = ph[1];
|
||||
ph[1] = ph[0];
|
||||
ph[0] = value;
|
||||
if (mode == SENSOR_SET_MODE_RAW)
|
||||
{
|
||||
if (SerialState == nullptr)
|
||||
return;
|
||||
|
||||
SerialState->sliderSerialResponse.scanMode = 1;
|
||||
SerialState->sliderSerialResponse.scanCount = 1;
|
||||
SerialState->sliderResponseCnt = 1;
|
||||
uint32_t* ph = SerialState->sliderSerialResponse.sensors[index].pressureHistory;
|
||||
ph[3] = ph[2];
|
||||
ph[2] = ph[1];
|
||||
ph[1] = ph[0];
|
||||
ph[0] = value;
|
||||
|
||||
SerialState->sliderSerialResponse.scanMode = 1;
|
||||
SerialState->sliderSerialResponse.scanCount = 1;
|
||||
SerialState->sliderResponseCnt = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
SensorPressureLevels[index] = value;
|
||||
SensorTouched[index].IsTouched = value > 0;
|
||||
}
|
||||
}
|
||||
|
||||
void TouchSliderState::ResetSensors()
|
||||
void TouchSliderState::ResetSensors(SliderSensorSetMode mode)
|
||||
{
|
||||
for (int i = 0; i < SLIDER_SENSORS; i++)
|
||||
SetSensor(i, NO_PRESSURE);
|
||||
SetSensor(i, NO_PRESSURE, mode);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user