AntiMicroX
joydpad.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 JOYDPAD_H
20 #define JOYDPAD_H
21 
23 
24 class JoyDPad : public QObject
25 {
26  Q_OBJECT
27 
28  public:
29  explicit JoyDPad(int index, int originset, SetJoystick *parentSet, QObject *parent);
30 
31  enum JoyMode
32  {
37  };
38 
39  JoyDPadButton *getJoyButton(int index_local);
40  QHash<int, JoyDPadButton *> *getJoyButtons();
41 
42  int getCurrentDirection();
43  int getJoyNumber();
44  int getIndex();
45  int getRealJoyNumber();
46  virtual QString getName(bool fullForceFormat = false, bool displayNames = false);
47 
48  void joyEvent(int value, bool ignoresets = false); // JoyDPadEvent class
49  void queuePendingEvent(int value, bool ignoresets = false); // JoyDPadEvent class
50  void activatePendingEvent(); // JoyDPadEvent class
51  bool hasPendingEvent(); // JoyDPadEvent class
52  void clearPendingEvent(); // JoyDPadEvent class
53 
54  void setJoyMode(JoyMode mode);
56 
57  void releaseButtonEvents(); // JoyDPadEvent class
58 
62 
66 
67  void setButtonsSpringWidth(int value);
69 
70  void setButtonsSpringHeight(int value);
72 
73  void setButtonsSensitivity(double value);
75 
76  void setButtonsWheelSpeedX(int value);
77  void setButtonsWheelSpeedY(int value);
78 
79  const QString getDpadName();
80  const QString getDefaultDpadName();
81 
82  virtual bool isDefault();
83 
84  QHash<int, JoyDPadButton *> *getButtons();
85 
86  virtual QString getXmlName(); // JoyDPadXml class
87 
88  virtual void setDefaultDPadName(QString tempname);
89  virtual QString getDefaultDPadName();
90 
92  bool hasSlotsAssigned();
93 
94  bool isRelativeSpring();
95  void copyAssignments(JoyDPad *destDPad);
96 
97  int getDPadDelay();
98  double getButtonsEasingDuration();
99 
100  void setButtonsSpringDeadCircleMultiplier(int value);
102 
105 
106  QHash<int, JoyDPadButton *> getDirectionButtons(JoyDPadButton::JoyDPadDirections direction);
107 
109  void copyLastDistanceValues(JoyDPad *srcDPad);
110 
111  virtual void eventReset(); // JoyDPadEvent class
112 
113  signals:
114  void active(int value);
115  void released(int value);
116  void dpadNameChanged();
117  void dpadDelayChanged(int value);
118  void joyModeChanged();
119  void propertyUpdated();
120 
121  public slots:
122  void setDPadName(QString tempName);
123  void setButtonsSpringRelativeStatus(bool value);
124  void setDPadDelay(int value);
125  void setButtonsEasingDuration(double value);
128 
129  private slots:
131 
132  protected:
133  void populateButtons();
134  void createDeskEvent(bool ignoresets = false); // JoyDPadEvent class
135  QHash<int, JoyDPadButton *> getApplicableButtons();
136 
137  private:
138  QHash<int, JoyDPadButton *> buttons;
139 
143 
144  QString dpadName;
146 
150 
151  int m_index;
153  int dpadDelay; // unsigned
155 
158 };
159 
160 #endif // JOYDPAD_H
JoyDPad::setButtonsSpringHeight
void setButtonsSpringHeight(int value)
Definition: joydpad.cpp:379
JoyDPad::EightWayMode
@ EightWayMode
Definition: joydpad.h:34
JoyDPad::released
void released(int value)
JoyDPad::getJoyButtons
QHash< int, JoyDPadButton * > * getJoyButtons()
Definition: joydpad.cpp:200
JoyDPad::getButtonsPresetMouseCurve
JoyButton::JoyMouseCurve getButtonsPresetMouseCurve()
Definition: joydpad.cpp:342
JoyDPad::getJoyMode
JoyMode getJoyMode()
Definition: joydpad.cpp:211
JoyButton::setSensitivity
void setSensitivity(double value)
Definition: joybutton.cpp:3561
JoyButton::getMouseMode
JoyMouseMovementMode getMouseMode()
Definition: joybutton.cpp:3529
JoyDPadButton::DpadLeftDown
@ DpadLeftDown
Definition: joydpadbutton.h:51
JoyDPad::setButtonsEasingDuration
void setButtonsEasingDuration(double value)
Definition: joydpad.cpp:880
JoyDPadButton::getDirection
int getDirection() const
Definition: joydpadbutton.cpp:156
GlobalVariables::JoyDPad::DEFAULTDPADDELAY
static const int DEFAULTDPADDELAY
Definition: globalvariables.h:208
JoyButton::eventReset
virtual void eventReset()
Definition: joybutton.cpp:3082
JoyDPad::isRelativeSpring
bool isRelativeSpring()
Definition: joydpad.cpp:589
JoyDPad::getCurrentDirection
int getCurrentDirection()
Definition: joydpad.cpp:202
JoyDPad::currentMode
JoyMode currentMode
Definition: joydpad.h:149
JoyButton::getSensitivity
double getSensitivity()
Definition: joybutton.cpp:3570
JoyDPad::pendingEventDirection
int pendingEventDirection
Definition: joydpad.h:154
JoyDPad::getButtonsExtraAccelerationCurve
JoyButton::JoyExtraAccelerationCurve getButtonsExtraAccelerationCurve()
Definition: joydpad.cpp:967
JoyDPad::getDefaultDPadName
virtual QString getDefaultDPadName()
Definition: joydpad.cpp:543
JoyDPad::getIndex
int getIndex()
Definition: joydpad.cpp:109
JoyButton::getSpringWidth
int getSpringWidth()
Definition: joybutton.cpp:3548
globalvariables.h
JoyDPad::getParentSet
SetJoystick * getParentSet()
Definition: joydpad.cpp:545
JoyDPad::setJoyMode
void setJoyMode(JoyMode mode)
Definition: joydpad.cpp:204
JoyDPadButton::DpadDown
@ DpadDown
Definition: joydpadbutton.h:46
JoyDPad::dpadDelayChanged
void dpadDelayChanged(int value)
JoyDPadButton::DpadRightDown
@ DpadRightDown
Definition: joydpadbutton.h:49
JoyDPad::setButtonsWheelSpeedX
void setButtonsWheelSpeedX(int value)
Definition: joydpad.cpp:517
JoyDPadButton::DpadLeft
@ DpadLeft
Definition: joydpadbutton.h:47
JoyDPad::dpadNameChanged
void dpadNameChanged()
JoyDPadButton::DpadRight
@ DpadRight
Definition: joydpadbutton.h:45
JoyDPad::setButtonsWheelSpeedY
void setButtonsWheelSpeedY(int value)
Definition: joydpad.cpp:527
JoyDPad::buttons
QHash< int, JoyDPadButton * > buttons
Definition: joydpad.h:138
JoyDPadButton::DpadUp
@ DpadUp
Definition: joydpadbutton.h:44
JoyDPad::prevDirection
JoyDPadButton::JoyDPadDirections prevDirection
Definition: joydpad.h:140
SetJoystick
A set of mapped events which can by switched by a controller event. Contains controller input objects...
Definition: setjoystick.h:39
JoyButton::MouseCursor
@ MouseCursor
Definition: joybutton.h:64
JoyDPad::hasSlotsAssigned
bool hasSlotsAssigned()
Definition: joydpad.cpp:557
JoyDPad::m_parentSet
SetJoystick * m_parentSet
Definition: joydpad.h:147
JoyButton::setWheelSpeed
void setWheelSpeed(int speed, QChar ax)
Definition: joybutton.cpp:3600
JoyDPad::eventReset
virtual void eventReset()
Definition: joydpad.cpp:1083
JoyDPad::copyLastDistanceValues
void copyLastDistanceValues(JoyDPad *srcDPad)
Definition: joydpad.cpp:1068
JoyDPad::getButtonsEasingDuration
double getButtonsEasingDuration()
Definition: joydpad.cpp:891
JoyDPad::getButtons
QHash< int, JoyDPadButton * > * getButtons()
Definition: joydpad.cpp:223
JoyDPad::setDefaultDPadName
virtual void setDefaultDPadName(QString tempname)
Definition: joydpad.cpp:537
JoyDPad::getButtonsPresetSpringHeight
int getButtonsPresetSpringHeight()
Definition: joydpad.cpp:416
JoyDPad::getName
virtual QString getName(bool fullForceFormat=false, bool displayNames=false)
Definition: joydpad.cpp:79
JoyButton::copyAssignments
void copyAssignments(JoyButton *destButton)
Copy assignments and properties from one button to another. Used for set copying.
Definition: joybutton.cpp:4083
JoyButton::getEasingDuration
double getEasingDuration()
Definition: joybutton.cpp:4191
JoyDPad::hasSameButtonsMouseCurve
bool hasSameButtonsMouseCurve()
Definition: joydpad.cpp:315
JoyDPad::pendingIgnoreSets
bool pendingIgnoreSets
Definition: joydpad.h:157
JoyDPad::getApplicableButtons
QHash< int, JoyDPadButton * > getApplicableButtons()
Definition: joydpad.cpp:480
JoyDPad::getXmlName
virtual QString getXmlName()
Definition: joydpad.cpp:113
JoyDPad::pendingDirection
JoyDPadButton::JoyDPadDirections pendingDirection
Definition: joydpad.h:141
JoyButton::getSpringDeadCircleMultiplier
int getSpringDeadCircleMultiplier()
Definition: joybutton.cpp:4542
JoyDPad::setButtonsSensitivity
void setButtonsSensitivity(double value)
Definition: joydpad.cpp:443
JoyDPad::JoyDPad
JoyDPad(int index, int originset, SetJoystick *parentSet, QObject *parent)
Definition: joydpad.cpp:27
JoyButton::joyEvent
void joyEvent(bool pressed, bool ignoresets=false)
Activates mapped slots and generates QT events which highlight pressed controller buttons.
Definition: joybutton.cpp:176
JoyDPad::dpadName
QString dpadName
Definition: joydpad.h:144
JoyButton::getButtonState
bool getButtonState()
Checks if this button is currently active.
Definition: joybutton.cpp:2471
JoyDPad::isDefault
virtual bool isDefault()
Definition: joydpad.cpp:225
JoyDPad::pendingEvent
bool pendingEvent
Definition: joydpad.h:156
GlobalVariables::JoyButton::DEFAULTEASINGDURATION
static const double DEFAULTEASINGDURATION
Definition: globalvariables.h:53
JoyButton::setSpringDeadCircleMultiplier
void setSpringDeadCircleMultiplier(int value)
Definition: joybutton.cpp:4533
JoyDPad::copyAssignments
void copyAssignments(JoyDPad *destDPad)
Definition: joydpad.cpp:616
JoyDPad::setButtonsSpringWidth
void setButtonsSpringWidth(int value)
Definition: joydpad.cpp:369
JoyDPadButton::DpadLeftUp
@ DpadLeftUp
Definition: joydpadbutton.h:50
JoyButton::LinearAccelCurve
@ LinearAccelCurve
Definition: joybutton.h:80
JoyButton::setSpringWidth
void setSpringWidth(int value)
Definition: joybutton.cpp:3539
JoyDPad::getButtonsPresetSensitivity
double getButtonsPresetSensitivity()
Definition: joydpad.cpp:453
JoyButton::getAssignedSlots
QList< JoyButtonSlot * > * getAssignedSlots()
Definition: joybutton.cpp:2390
JoyDPad::directionDelayTimer
QTimer directionDelayTimer
Definition: joydpad.h:148
JoyDPad::getDPadDelay
int getDPadDelay()
Definition: joydpad.cpp:878
JoyDPad::FourWayCardinal
@ FourWayCardinal
Definition: joydpad.h:35
JoyDPad::getJoyNumber
int getJoyNumber()
Definition: joydpad.cpp:107
joydpadbutton.h
JoyButton::getMouseCurve
JoyMouseCurve getMouseCurve()
Definition: joybutton.cpp:3537
JoyDPad::joyEvent
void joyEvent(int value, bool ignoresets=false)
Definition: joydpad.cpp:143
JoyDPad::getButtonsPresetSpringWidth
int getButtonsPresetSpringWidth()
Definition: joydpad.cpp:389
JoyDPad::releaseButtonEvents
void releaseButtonEvents()
Definition: joydpad.cpp:213
JoyDPad
Definition: joydpad.h:24
JoyDPad::m_originset
int m_originset
Definition: joydpad.h:152
JoyDPad::setDirButtonsUpdateInitAccel
void setDirButtonsUpdateInitAccel(JoyDPadButton::JoyDPadDirections direction, bool state)
Definition: joydpad.cpp:1054
JoyDPad::setButtonsSpringDeadCircleMultiplier
void setButtonsSpringDeadCircleMultiplier(int value)
Definition: joydpad.cpp:918
JoyButton::setEasingDuration
void setEasingDuration(double value)
Definition: joybutton.cpp:4181
inputdevice.h
JoyDPad::setDPadDelay
void setDPadDelay(int value)
Definition: joydpad.cpp:868
GlobalVariables::JoyButton::DEFAULTSPRINGRELEASERADIUS
static const int DEFAULTSPRINGRELEASERADIUS
Definition: globalvariables.h:84
JoyButton::JoyMouseCurve
JoyMouseCurve
Definition: joybutton.h:67
JoyDPad::activatePendingEvent
void activatePendingEvent()
Definition: joydpad.cpp:122
JoyDPadButton
Definition: joydpadbutton.h:27
JoyDPad::getButtonsPresetMouseMode
JoyButton::JoyMouseMovementMode getButtonsPresetMouseMode()
Definition: joydpad.cpp:278
JoyButton::setSpringHeight
void setSpringHeight(int value)
Definition: joybutton.cpp:3550
JoyButton::setMouseCurve
void setMouseCurve(JoyMouseCurve selectedCurve)
Definition: joybutton.cpp:3531
JoyDPad::activeDiagonalButton
JoyDPadButton * activeDiagonalButton
Definition: joydpad.h:142
JoyButton::setSpringRelativeStatus
void setSpringRelativeStatus(bool value)
Definition: joybutton.cpp:4064
JoyDPadButton::JoyDPadDirections
JoyDPadDirections
Definition: joydpadbutton.h:41
JoyButton::getSpringHeight
int getSpringHeight()
Definition: joybutton.cpp:3559
JoyDPad::FourWayDiagonal
@ FourWayDiagonal
Definition: joydpad.h:36
JoyButton::isDefault
bool isDefault()
Check if button properties are at their default values.
Definition: joybutton.cpp:3475
JoyDPad::setButtonsSpringRelativeStatus
void setButtonsSpringRelativeStatus(bool value)
Definition: joydpad.cpp:579
GlobalVariables::JoyDPad::xmlName
static const QString xmlName
Definition: globalvariables.h:207
JoyDPad::setButtonsMouseCurve
void setButtonsMouseCurve(JoyButton::JoyMouseCurve mouseCurve)
Definition: joydpad.cpp:305
JoyDPad::JoyMode
JoyMode
Definition: joydpad.h:31
JoyDPad::clearPendingEvent
void clearPendingEvent()
Definition: joydpad.cpp:136
JoyButton::LinearCurve
@ LinearCurve
Definition: joybutton.h:70
JoyButton::setMouseMode
void setMouseMode(JoyMouseMovementMode mousemode)
Definition: joybutton.cpp:3523
JoyDPad::getButtonsSpringDeadCircleMultiplier
int getButtonsSpringDeadCircleMultiplier()
Definition: joydpad.cpp:929
JoyDPad::disconnectPropertyUpdatedConnection
void disconnectPropertyUpdatedConnection()
Definition: joydpad.cpp:552
JoyDPad::getJoyButton
JoyDPadButton * getJoyButton(int index_local)
Definition: joydpad.cpp:50
JoyButton::setExtraAccelerationCurve
void setExtraAccelerationCurve(JoyExtraAccelerationCurve curve)
Definition: joybutton.cpp:4588
JoyDPad::dpadDelay
int dpadDelay
Definition: joydpad.h:153
InputDevice::profileEdited
void profileEdited()
Definition: inputdevice.cpp:1207
JoyDPadButton::DpadRightUp
@ DpadRightUp
Definition: joydpadbutton.h:48
JoyButton::isRelativeSpring
bool isRelativeSpring()
Definition: joybutton.cpp:4076
JoyDPad::getRealJoyNumber
int getRealJoyNumber()
Definition: joydpad.cpp:111
JoyDPad::setButtonsExtraAccelerationCurve
void setButtonsExtraAccelerationCurve(JoyButton::JoyExtraAccelerationCurve curve)
Definition: joydpad.cpp:956
JoyDPad::dpadDirectionChangeEvent
void dpadDirectionChangeEvent()
Definition: joydpad.cpp:866
JoyDPad::hasSameButtonsMouseMode
bool hasSameButtonsMouseMode()
Definition: joydpad.cpp:250
JoyDPad::propertyUpdated
void propertyUpdated()
JoyDPad::getDefaultDpadName
const QString getDefaultDpadName()
Definition: joydpad.cpp:515
JoyButton::JoyExtraAccelerationCurve
JoyExtraAccelerationCurve
Definition: joybutton.h:78
JoyDPad::setDPadName
void setDPadName(QString tempName)
Definition: joydpad.cpp:503
JoyDPad::StandardMode
@ StandardMode
Definition: joydpad.h:33
JoyDPad::queuePendingEvent
void queuePendingEvent(int value, bool ignoresets=false)
Definition: joydpad.cpp:115
joydpad.h
number
it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License If the distribution and or use of the Library is restricted in certain countries either by patents or by copyrighted the original copyright holder who places the Library under this License may add an geographical distribution limitation excluding those so that distribution is permitted only in or among countries not thus excluded In such this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the Lesser General Public License from time to time Such new versions will be similar in spirit to the present but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Library specifies a version number of this License which applies to it and any later you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Library does not specify a license version number
Definition: lgpl-2.1.txt:423
JoyDPad::populateButtons
void populateButtons()
Definition: joydpad.cpp:52
JoyDPad::defaultDPadName
QString defaultDPadName
Definition: joydpad.h:145
JoyDPad::hasPendingEvent
bool hasPendingEvent()
Definition: joydpad.cpp:134
JoyDPad::createDeskEvent
void createDeskEvent(bool ignoresets=false)
Definition: joydpad.cpp:643
JoyDPad::joyModeChanged
void joyModeChanged()
JoyButton::JoyMouseMovementMode
JoyMouseMovementMode
Definition: joybutton.h:62
JoyButton::setUpdateInitAccel
void setUpdateInitAccel(bool state)
Definition: joybutton.cpp:4596
JoyDPadButton::DpadCentered
@ DpadCentered
Definition: joydpadbutton.h:43
JoyDPad::active
void active(int value)
JoyButton::getExtraAccelerationCurve
JoyExtraAccelerationCurve getExtraAccelerationCurve()
Definition: joybutton.cpp:4594
JoyDPad::setButtonsMouseMode
void setButtonsMouseMode(JoyButton::JoyMouseMovementMode mode)
Definition: joydpad.cpp:240
JoyDPad::establishPropertyUpdatedConnection
void establishPropertyUpdatedConnection()
Definition: joydpad.cpp:547
JoyDPad::getDirectionButtons
QHash< int, JoyDPadButton * > getDirectionButtons(JoyDPadButton::JoyDPadDirections direction)
Definition: joydpad.cpp:994
JoyDPad::getDpadName
const QString getDpadName()
Definition: joydpad.cpp:513
JoyDPad::m_index
int m_index
Definition: joydpad.h:151