Skip to content

Commit c46b868

Browse files
committed
Allow X, Y, Z, rX, rY, and rZ to go negative
1 parent d5065a1 commit c46b868

File tree

2 files changed

+41
-41
lines changed

2 files changed

+41
-41
lines changed

src/Joystick.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -519,33 +519,33 @@ void Joystick_::releaseButton(uint8_t button)
519519
if (_autoSendState) sendState();
520520
}
521521

522-
void Joystick_::setXAxis(uint16_t value)
522+
void Joystick_::setXAxis(int32_t value)
523523
{
524524
_xAxis = value;
525525
if (_autoSendState) sendState();
526526
}
527-
void Joystick_::setYAxis(uint16_t value)
527+
void Joystick_::setYAxis(int32_t value)
528528
{
529529
_yAxis = value;
530530
if (_autoSendState) sendState();
531531
}
532-
void Joystick_::setZAxis(uint16_t value)
532+
void Joystick_::setZAxis(int32_t value)
533533
{
534534
_zAxis = value;
535535
if (_autoSendState) sendState();
536536
}
537537

538-
void Joystick_::setRxAxis(uint16_t value)
538+
void Joystick_::setRxAxis(int32_t value)
539539
{
540540
_xAxisRotation = value;
541541
if (_autoSendState) sendState();
542542
}
543-
void Joystick_::setRyAxis(uint16_t value)
543+
void Joystick_::setRyAxis(int32_t value)
544544
{
545545
_yAxisRotation = value;
546546
if (_autoSendState) sendState();
547547
}
548-
void Joystick_::setRzAxis(uint16_t value)
548+
void Joystick_::setRzAxis(int32_t value)
549549
{
550550
_zAxisRotation = value;
551551
if (_autoSendState) sendState();
@@ -585,13 +585,13 @@ void Joystick_::setHatSwitch(int8_t hatSwitchIndex, uint16_t value)
585585
if (_autoSendState) sendState();
586586
}
587587

588-
int Joystick_::buildAndSet16BitValue(bool includeValue, uint16_t value, uint16_t valueMinimum, uint16_t valueMaximum, uint16_t actualMinimum, uint16_t actualMaximum, uint8_t dataLocation[])
588+
int Joystick_::buildAndSet16BitValue(bool includeValue, int32_t value, int32_t valueMinimum, int32_t valueMaximum, int32_t actualMinimum, int32_t actualMaximum, uint8_t dataLocation[])
589589
{
590-
uint16_t convertedValue;
590+
int32_t convertedValue;
591591
uint8_t highByte;
592592
uint8_t lowByte;
593-
uint16_t realMinimum = min(valueMinimum, valueMaximum);
594-
uint16_t realMaximum = max(valueMinimum, valueMaximum);
593+
int32_t realMinimum = min(valueMinimum, valueMaximum);
594+
int32_t realMaximum = max(valueMinimum, valueMaximum);
595595

596596
if (includeValue == false) return 0;
597597

src/Joystick.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ class Joystick_
6060
private:
6161

6262
// Joystick State
63-
uint16_t _xAxis;
64-
uint16_t _yAxis;
65-
uint16_t _zAxis;
66-
uint16_t _xAxisRotation;
67-
uint16_t _yAxisRotation;
68-
uint16_t _zAxisRotation;
63+
int32_t _xAxis;
64+
int32_t _yAxis;
65+
int32_t _zAxis;
66+
int32_t _xAxisRotation;
67+
int32_t _yAxisRotation;
68+
int32_t _zAxisRotation;
6969
uint16_t _throttle;
7070
uint16_t _rudder;
7171
uint16_t _accelerator;
@@ -81,18 +81,18 @@ class Joystick_
8181
uint8_t _hatSwitchCount;
8282
uint8_t _includeAxisFlags;
8383
uint8_t _includeSimulatorFlags;
84-
uint16_t _xAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
85-
uint16_t _xAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
86-
uint16_t _yAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
87-
uint16_t _yAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
88-
uint16_t _zAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
89-
uint16_t _zAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
90-
uint16_t _rxAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
91-
uint16_t _rxAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
92-
uint16_t _ryAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
93-
uint16_t _ryAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
94-
uint16_t _rzAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
95-
uint16_t _rzAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
84+
int32_t _xAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
85+
int32_t _xAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
86+
int32_t _yAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
87+
int32_t _yAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
88+
int32_t _zAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
89+
int32_t _zAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
90+
int32_t _rxAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
91+
int32_t _rxAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
92+
int32_t _ryAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
93+
int32_t _ryAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
94+
int32_t _rzAxisMinimum = JOYSTICK_DEFAULT_AXIS_MINIMUM;
95+
int32_t _rzAxisMaximum = JOYSTICK_DEFAULT_AXIS_MAXIMUM;
9696
uint16_t _rudderMinimum = JOYSTICK_DEFAULT_SIMULATOR_MINIMUM;
9797
uint16_t _rudderMaximum = JOYSTICK_DEFAULT_SIMULATOR_MAXIMUM;
9898
uint16_t _throttleMinimum = JOYSTICK_DEFAULT_SIMULATOR_MINIMUM;
@@ -108,7 +108,7 @@ class Joystick_
108108
uint8_t _hidReportSize;
109109

110110
protected:
111-
int buildAndSet16BitValue(bool includeValue, uint16_t value, uint16_t valueMinimum, uint16_t valueMaximum, uint16_t actualMinimum, uint16_t actualMaximum, uint8_t dataLocation[]);
111+
int buildAndSet16BitValue(bool includeValue, int32_t value, int32_t valueMinimum, int32_t valueMaximum, int32_t actualMinimum, int32_t actualMaximum, uint8_t dataLocation[]);
112112
int buildAndSetAxisValue(bool includeAxis, uint16_t axisValue, uint16_t axisMinimum, uint16_t axisMaximum, uint8_t dataLocation[]);
113113
int buildAndSetSimulationValue(bool includeValue, uint16_t value, uint16_t valueMinimum, uint16_t valueMaximum, uint8_t dataLocation[]);
114114

@@ -134,32 +134,32 @@ class Joystick_
134134
void end();
135135

136136
// Set Range Functions
137-
inline void setXAxisRange(uint16_t minimum, uint16_t maximum)
137+
inline void setXAxisRange(int32_t minimum, int32_t maximum)
138138
{
139139
_xAxisMinimum = minimum;
140140
_xAxisMaximum = maximum;
141141
}
142-
inline void setYAxisRange(uint16_t minimum, uint16_t maximum)
142+
inline void setYAxisRange(int32_t minimum, int32_t maximum)
143143
{
144144
_yAxisMinimum = minimum;
145145
_yAxisMaximum = maximum;
146146
}
147-
inline void setZAxisRange(uint16_t minimum, uint16_t maximum)
147+
inline void setZAxisRange(int32_t minimum, int32_t maximum)
148148
{
149149
_zAxisMinimum = minimum;
150150
_zAxisMaximum = maximum;
151151
}
152-
inline void setRxAxisRange(uint16_t minimum, uint16_t maximum)
152+
inline void setRxAxisRange(int32_t minimum, int32_t maximum)
153153
{
154154
_rxAxisMinimum = minimum;
155155
_rxAxisMaximum = maximum;
156156
}
157-
inline void setRyAxisRange(uint16_t minimum, uint16_t maximum)
157+
inline void setRyAxisRange(int32_t minimum, int32_t maximum)
158158
{
159159
_ryAxisMinimum = minimum;
160160
_ryAxisMaximum = maximum;
161161
}
162-
inline void setRzAxisRange(uint16_t minimum, uint16_t maximum)
162+
inline void setRzAxisRange(int32_t minimum, int32_t maximum)
163163
{
164164
_rzAxisMinimum = minimum;
165165
_rzAxisMaximum = maximum;
@@ -191,12 +191,12 @@ class Joystick_
191191
}
192192

193193
// Set Axis Values
194-
void setXAxis(uint16_t value);
195-
void setYAxis(uint16_t value);
196-
void setZAxis(uint16_t value);
197-
void setRxAxis(uint16_t value);
198-
void setRyAxis(uint16_t value);
199-
void setRzAxis(uint16_t value);
194+
void setXAxis(int32_t value);
195+
void setYAxis(int32_t value);
196+
void setZAxis(int32_t value);
197+
void setRxAxis(int32_t value);
198+
void setRyAxis(int32_t value);
199+
void setRzAxis(int32_t value);
200200

201201
// Set Simulation Values
202202
void setRudder(uint16_t value);

0 commit comments

Comments
 (0)