AntiMicroX
Loading...
Searching...
No Matches
setjoystick.h
Go to the documentation of this file.
1/* antimicrox Gamepad to KB+M event mapper
2 * Copyright (C) 2015 Travis Nickles <nickles.travis@gmail.com>
3 * Copyright (C) 2020 Jagoda Górska <juliagoda.pl@protonmail>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef SETJOYSTICK_H
20#define SETJOYSTICK_H
21
22#include "joyaxis.h"
23#include "joysensordirection.h"
24#include "joysensortype.h"
25#include "xml/setjoystickxml.h"
26
27class InputDevice;
28class JoyButton;
29class JoyDPad;
30class JoyControlStick;
31class JoySensor;
32class VDPad;
33
40{
42
43 public:
44 explicit SetJoystick(InputDevice *device, int index, QObject *parent);
45 explicit SetJoystick(InputDevice *device, int index, bool runreset, QObject *parent);
47
48 JoyAxis *getJoyAxis(int index) const;
49 JoyButton *getJoyButton(int index) const;
50 JoyDPad *getJoyDPad(int index) const;
51 JoyControlStick *getJoyStick(int index) const;
53 VDPad *getVDPad(int index) const;
54
55 int getNumberButtons() const;
56 int getNumberAxes() const;
57 int getNumberHats() const;
58 int getNumberSticks() const;
59 bool hasSensor(JoySensorType type) const;
60 int getNumberVDPads() const;
61
63 QHash<int, JoyDPad *> const &getHats() const;
66 QHash<int, VDPad *> const &getVdpads() const;
68
69 int getIndex() const;
70 int getRealIndex() const;
71 virtual void refreshButtons(); // SetButton class
72 virtual void refreshAxes(); // SetAxis class
73 virtual void refreshHats(); // SetHat class
74 virtual void refreshSensors();
75 void release();
76 void addControlStick(int index, JoyControlStick *stick); // SetStick class
77 void removeControlStick(int index); // SetStick class
78 void addVDPad(int index, VDPad *vdpad); // SetVDPad class
79 void removeVDPad(int index); // SetVDPad class
80 void setIgnoreEventState(bool ignore);
81
83
84 void setName(QString name);
85 QString getName() const;
87
88 void raiseAxesDeadZones(int deadZone = 0); // SetAxis class
89 void currentAxesDeadZones(QList<int> *axesDeadZones); // SetAxis class
90 void setAxesDeadZones(QList<int> *axesDeadZones); // SetAxis class
91 void setAxisThrottle(int axisNum, JoyAxis::ThrottleTypes throttle); // SetAxis class
95 bool isSetEmpty();
96
97 protected:
98 void deleteButtons(); // SetButton class
99 void deleteAxes(); // SetAxis class
100 void deleteHats(); // SetHat class
101 void deleteSticks(); // SetStick class
102 void deleteSensors();
103 void deleteVDpads(); // SetVDPad class
104
105 void enableButtonConnections(JoyButton *button); // SetButton class
106 void enableAxisConnections(JoyAxis *axis); // SetAxis class
107 void enableHatConnections(JoyDPad *dpad); // SetHat class
109
110 signals:
111 void setChangeActivated(int index);
112 void setAssignmentButtonChanged(int button, int originset, int newset, int mode); // SetButton class
113 void setAssignmentAxisChanged(int button, int axis, int originset, int newset, int mode); // SetAxis class
114 void setAssignmentStickChanged(int button, int stick, int originset, int newset, int mode); // SetStick class
116 void setAssignmentDPadChanged(int button, int dpad, int originset, int newset, int mode); // SetHat class
117 void setAssignmentVDPadChanged(int button, int dpad, int originset, int newset, int mode); // SetVDPad class
118 void setAssignmentAxisThrottleChanged(int axis, int originset); // SetAxis class
119 void setButtonClick(int index, int button); // SetButton class
120 void setButtonRelease(int index, int button); // SetButton class
121 void setAxisButtonClick(int setindex, int axis, int button); // SetAxis class
122 void setAxisButtonRelease(int setindex, int axis, int button); // SetAxis class
123 void setAxisActivated(int setindex, int axis, int value); // SetAxis class
124 void setAxisReleased(int setindex, int axis, int value); // SetAxis class
125 void setStickButtonClick(int setindex, int stick, int button); // SetStick class
126 void setStickButtonRelease(int setindex, int stick, int button); // SetStick class
127 void setSensorActivated(int setindex, JoySensorType type, int value);
131 void setDPadButtonClick(int setindex, int dpad, int button); // SetHat class
132 void setDPadButtonRelease(int setindex, int dpad, int button); // SetHat class
133
134 void setButtonNameChange(int index); // SetButton class
135 void setAxisButtonNameChange(int axisIndex, int buttonIndex); // SetAxis class
136 void setStickButtonNameChange(int stickIndex, int buttonIndex); // SetStick class
138 void setDPadButtonNameChange(int dpadIndex, int buttonIndex); // SetHat class
139 void setVDPadButtonNameChange(int vdpadIndex, int buttonIndex); // SetVDPad class
140
141 void setAxisNameChange(int axisIndex); // SetAxis class
142 void setStickNameChange(int stickIndex); // SetStick class
144 void setDPadNameChange(int dpadIndex); // SetHat class
145 void setVDPadNameChange(int vdpadIndex); // SetVDPad class
147
148 public slots:
149 virtual void reset();
151 void propogateSetChange(int index);
152 void propogateSetButtonAssociation(int button, int newset, int mode); // SetButton class
153 void propogateSetAxisButtonAssociation(int button, int axis, int newset, int mode); // SetAxis class
154 void propogateSetStickButtonAssociation(int button, int stick, int newset, int mode); // SetStick class
156 void propogateSetDPadButtonAssociation(int button, int dpad, int newset, int mode); // SetHat class
157 void propogateSetVDPadButtonAssociation(int button, int dpad, int newset, int mode); // SetVDPad class
160
161 protected slots:
162 void propogateSetAxisThrottleSetting(int index); // SetAxis class
163 void propogateSetButtonClick(int button); // SetButton class
164 void propogateSetButtonRelease(int button); // SetButton class
165 void propogateSetAxisButtonClick(int button); // SetAxis class
166 void propogateSetAxisButtonRelease(int button); // SetAxis class
167 void propogateSetStickButtonClick(int button); // SetStick class
168 void propogateSetStickButtonRelease(int button); // SetStick class
169 void propagateSetSensorButtonClick(int button);
170 void propagateSetSensorButtonRelease(int button);
171 void propogateSetDPadButtonClick(int button); // SetHat class
172 void propogateSetDPadButtonRelease(int button); // SetHat class
173 void propogateSetAxisActivated(int value); // SetAxis class
174 void propogateSetAxisReleased(int value); // SetAxis class
175
176 void propogateSetButtonNameChange(); // SetButton class
177 void propogateSetAxisButtonNameChange(); // SetAxis class
178 void propogateSetStickButtonNameChange(); // SetStick class
180 void propogateSetDPadButtonNameChange(); // SetHat class
181 void propogateSetVDPadButtonNameChange(); // SetVDPad class
182
183 void propogateSetAxisNameChange(); // SetAxis class
184 void propogateSetStickNameChange(); // SetStick class
186 void propogateSetDPadNameChange(); // SetHat class
187 void propogateSetVDPadNameChange(); // SetVDPad class
188
189 private:
196
198
202};
203
205
206#endif // SETJOYSTICK_H
Abstract class representing a hardware input device, e.g a joystick or controller.
Definition inputdevice.h:51
Represents single axis of of joystick (or other input)
Definition joyaxis.h:41
ThrottleTypes
Definition joyaxis.h:49
Represents a single joystick button being part of a SetJoystick Contains multiple JoyButtonSlots whic...
Definition joybutton.h:47
Represents stick of a joystick.
Definition joycontrolstick.h:38
Definition joydpadxml.h:27
Definition joydpad.h:25
Represents one sensor in a SetJoystick and its connections to other parts of the application....
Definition joysensor.h:40
SetJoystick XML serialization/deserialization helper class Reads data from the supplied SetJoystick o...
Definition setjoystickxml.h:35
A set of mapped events which can by switched by a controller event. Contains controller input objects...
Definition setjoystick.h:40
int getRealIndex() const
Definition setjoystick.cpp:509
void propogateSetVDPadNameChange()
Definition setjoystick.cpp:748
QHash< int, JoyControlStick * > const & getSticks() const
Definition setjoystick.cpp:1107
void deleteVDpads()
Definition setjoystick.cpp:191
void setAssignmentAxisChanged(int button, int axis, int originset, int newset, int mode)
QString getName() const
Definition setjoystick.cpp:948
QList< JoyButton * > lastClickedButtons
Definition setjoystick.h:197
bool hasSensor(JoySensorType type) const
Checks if this set has a sensor.
Definition setjoystick.cpp:253
QHash< JoySensorType, JoySensor * > const & getSensors() const
Get all sensor objects in this set.
Definition setjoystick.cpp:1113
void propogateSetDPadButtonAssociation(int button, int dpad, int newset, int mode)
Definition setjoystick.cpp:303
void propogateSetButtonAssociation(int button, int newset, int mode)
Definition setjoystick.cpp:275
void propogateSetAxisThrottleSetting(int index)
Definition setjoystick.cpp:428
InputDevice * m_device
Definition setjoystick.h:200
void currentAxesDeadZones(QList< int > *axesDeadZones)
Definition setjoystick.cpp:1060
void setAssignmentButtonChanged(int button, int originset, int newset, int mode)
void setIgnoreEventState(bool ignore)
Definition setjoystick.cpp:756
void propogateSetAxisNameChange()
Definition setjoystick.cpp:716
void setSensorReleased(int setindex, JoySensorType, int value)
QString m_name
Definition setjoystick.h:201
QHash< int, VDPad * > const & getVdpads() const
Definition setjoystick.cpp:1115
QHash< int, JoyButton * > m_buttons
Definition setjoystick.h:190
void propogateSetDPadButtonClick(int button)
Definition setjoystick.cpp:635
void enableButtonConnections(JoyButton *button)
Definition setjoystick.cpp:856
void copyAssignments(SetJoystick *destSet)
Definition setjoystick.cpp:950
void setStickNameChange(int stickIndex)
int getIndex() const
Definition setjoystick.cpp:507
void setSensorNameChange(JoySensorType type)
void removeAllBtnFromQueue()
Definition setjoystick.cpp:527
int getNumberSticks() const
Definition setjoystick.cpp:247
void setAssignmentDPadChanged(int button, int dpad, int originset, int newset, int mode)
int getNumberButtons() const
Definition setjoystick.cpp:241
void removeVDPad(int index)
Definition setjoystick.cpp:496
QHash< int, VDPad * > vdpads
Definition setjoystick.h:195
void setSensorButtonNameChange(JoySensorType type, JoySensorDirection direction)
QHash< int, JoyAxis * > * getAxes()
Definition setjoystick.cpp:1101
void deleteSensors()
Destroy all sensor objects in this set.
Definition setjoystick.cpp:230
JoyDPad * getJoyDPad(int index) const
Definition setjoystick.cpp:65
virtual void refreshSensors()
Setup sensor objects for all available hardware sensors.
Definition setjoystick.cpp:120
int getNumberVDPads() const
Definition setjoystick.cpp:255
void propogateSetAxisButtonNameChange()
Definition setjoystick.cpp:673
void establishPropertyUpdatedConnection()
Definition setjoystick.cpp:1028
void propogateSetStickNameChange()
Definition setjoystick.cpp:724
void propogateSetAxisButtonClick(int button)
Definition setjoystick.cpp:557
void setStickButtonClick(int setindex, int stick, int button)
void setAssignmentAxisThrottleChanged(int axis, int originset)
void addVDPad(int index, VDPad *vdpad)
Definition setjoystick.cpp:473
void setAxisNameChange(int axisIndex)
bool isSetEmpty()
Check if this set has any mapped event.
Definition setjoystick.cpp:363
void propogateSetVDPadButtonAssociation(int button, int dpad, int newset, int mode)
Definition setjoystick.cpp:309
void propertyUpdated()
void setDPadNameChange(int dpadIndex)
void deleteHats()
Definition setjoystick.cpp:209
void propogateSetStickButtonNameChange()
Definition setjoystick.cpp:681
JoyButton * getJoyButton(int index) const
Definition setjoystick.cpp:57
void addControlStick(int index, JoyControlStick *stick)
Definition setjoystick.cpp:436
void raiseAxesDeadZones(int deadZone=0)
Raise the dead zones for axes. Used when launching the controller mapping window.
Definition setjoystick.cpp:1042
void propogateSetStickButtonAssociation(int button, int stick, int newset, int mode)
Definition setjoystick.cpp:287
void propagateSetSensorButtonRelease(int button)
Definition setjoystick.cpp:622
void setSensorButtonRelease(int setindex, JoySensorType type, JoySensorDirection direction)
QHash< int, JoyAxis * > axes
Definition setjoystick.h:191
void propogateSetAxisReleased(int value)
Definition setjoystick.cpp:850
QHash< int, JoyDPad * > hats
Definition setjoystick.h:192
void enableSensorConnections(JoySensor *sensor)
Establishes connections for event propagation between JoySensor and InputDevice.
Definition setjoystick.cpp:913
void enableAxisConnections(JoyAxis *axis)
Definition setjoystick.cpp:867
void setAxisButtonNameChange(int axisIndex, int buttonIndex)
QHash< int, JoyControlStick * > sticks
Definition setjoystick.h:193
JoyControlStick * getJoyStick(int index) const
Definition setjoystick.cpp:69
void deleteButtons()
Definition setjoystick.cpp:137
void propogateSetButtonRelease(int button)
Definition setjoystick.cpp:546
JoyAxis * getJoyAxis(int index) const
Definition setjoystick.cpp:59
int getNumberAxes() const
Definition setjoystick.cpp:243
void setAssignmentStickChanged(int button, int stick, int originset, int newset, int mode)
void propogateSetVDPadButtonNameChange()
Definition setjoystick.cpp:708
void enableHatConnections(JoyDPad *dpad)
Definition setjoystick.cpp:889
QHash< JoySensorType, JoySensor * > m_sensors
Definition setjoystick.h:194
void propagateSetSensorButtonClick(int button)
Definition setjoystick.cpp:609
QList< JoyButton * > const & getLastClickedButtons() const
Definition setjoystick.cpp:525
void propogateSetDPadButtonRelease(int button)
Definition setjoystick.cpp:650
void setSensorButtonClick(int setindex, JoySensorType type, JoySensorDirection direction)
void propagateSetSensorNameChange()
Definition setjoystick.cpp:732
void propogateSetAxisActivated(int value)
Definition setjoystick.cpp:844
void release()
Perform a release of all elements of a set. Stick and vdpad releases will be handled by the associate...
Definition setjoystick.cpp:319
void propogateSetStickButtonClick(int button)
Definition setjoystick.cpp:583
int m_index
Definition setjoystick.h:199
JoySensor * getSensor(JoySensorType type) const
Definition setjoystick.cpp:71
void disconnectPropertyUpdatedConnection()
Definition setjoystick.cpp:1033
void setAxesDeadZones(QList< int > *axesDeadZones)
Definition setjoystick.cpp:1071
void setName(QString name)
Definition setjoystick.cpp:933
int getNumberHats() const
Definition setjoystick.cpp:245
void setDPadButtonNameChange(int dpadIndex, int buttonIndex)
void setAxisButtonClick(int setindex, int axis, int button)
void deleteSticks()
Definition setjoystick.cpp:173
VDPad * getVDPad(int index) const
Definition setjoystick.cpp:67
void setButtonRelease(int index, int button)
void setSensorActivated(int setindex, JoySensorType type, int value)
void deleteAxes()
Definition setjoystick.cpp:155
void setButtonClick(int index, int button)
void setAxisThrottle(int axisNum, JoyAxis::ThrottleTypes throttle)
Definition setjoystick.cpp:1092
void setStickButtonNameChange(int stickIndex, int buttonIndex)
void setAssignmentVDPadChanged(int button, int dpad, int originset, int newset, int mode)
void propogateSetDPadButtonNameChange()
Definition setjoystick.cpp:700
void setDPadButtonRelease(int setindex, int dpad, int button)
void propagateSetSensorButtonAssociation(JoySensorDirection direction, JoySensorType sensor, int newset, int mode)
Forwards set change slot mapping event to InputDevice.
Definition setjoystick.cpp:296
void setDPadButtonClick(int setindex, int dpad, int button)
void propogateSetDPadNameChange()
Definition setjoystick.cpp:740
void setButtonNameChange(int index)
void setAssignmentSensorChanged(JoySensorDirection direction, JoySensorType sensor, int originset, int newset, int mode)
void setAxisButtonRelease(int setindex, int axis, int button)
QHash< int, JoyButton * > const & getButtons() const
Definition setjoystick.cpp:1103
~SetJoystick()
Definition setjoystick.cpp:55
void removeControlStick(int index)
Definition setjoystick.cpp:462
void setStickButtonRelease(int setindex, int stick, int button)
virtual void reset()
Re-enumerates inputs from the associated device and resets all mappings in this set.
Definition setjoystick.cpp:261
QString getSetLabel()
Definition setjoystick.cpp:1016
void setVDPadNameChange(int vdpadIndex)
void setAxisActivated(int setindex, int axis, int value)
void propogateSetAxisButtonAssociation(int button, int axis, int newset, int mode)
Definition setjoystick.cpp:281
void setVDPadButtonNameChange(int vdpadIndex, int buttonIndex)
void setAxisReleased(int setindex, int axis, int value)
void setChangeActivated(int index)
virtual void refreshHats()
Definition setjoystick.cpp:105
virtual void refreshButtons()
Definition setjoystick.cpp:73
void propogateSetButtonNameChange()
Definition setjoystick.cpp:665
void propogateSetChange(int index)
Definition setjoystick.cpp:273
int getCountBtnInList(QString partialName)
Definition setjoystick.cpp:533
void propogateSetButtonClick(int button)
Definition setjoystick.cpp:511
void propogateSetAxisButtonRelease(int button)
Definition setjoystick.cpp:570
void propogateSetStickButtonRelease(int button)
Definition setjoystick.cpp:596
QHash< int, JoyDPad * > const & getHats() const
Definition setjoystick.cpp:1105
InputDevice * getInputDevice() const
Definition setjoystick.cpp:931
virtual void refreshAxes()
Definition setjoystick.cpp:85
void propagateSetSensorButtonNameChange()
Propagate button rename event to InputDevice.
Definition setjoystick.cpp:692
Definition vdpad.h:27
JoySensorDirection
A bitfield style enum which encodes all possible three dimensional sensor directions....
Definition joysensordirection.h:28
JoySensorType
Definition joysensortype.h:24