20using namespace Qt::StringLiterals;
23#include "moc_qgs3dgamepadcontroller.cpp"
25#include <QtGamepad/QGamepad>
27QgsGamepad3DMapController::QgsGamepad3DMapController(
int gamepadDeviceId, QObject *parent )
29 , mGamepadDeviceId( gamepadDeviceId )
31 mGamepad =
new QGamepad( gamepadDeviceId,
this );
34 connect( mGamepad, &QGamepad::connectedChanged,
this, &QgsGamepad3DMapController::connectedChanged );
35 connect( mGamepad, &QGamepad::axisLeftXChanged,
this, &QgsGamepad3DMapController::axisLeftXChanged );
36 connect( mGamepad, &QGamepad::axisLeftYChanged,
this, &QgsGamepad3DMapController::axisLeftYChanged );
37 connect( mGamepad, &QGamepad::axisRightXChanged,
this, &QgsGamepad3DMapController::axisRightXChanged );
38 connect( mGamepad, &QGamepad::axisRightYChanged,
this, &QgsGamepad3DMapController::axisRightYChanged );
39 connect( mGamepad, &QGamepad::buttonAChanged,
this, &QgsGamepad3DMapController::buttonAChanged );
40 connect( mGamepad, &QGamepad::buttonBChanged,
this, &QgsGamepad3DMapController::buttonBChanged );
41 connect( mGamepad, &QGamepad::buttonXChanged,
this, &QgsGamepad3DMapController::buttonXChanged );
42 connect( mGamepad, &QGamepad::buttonYChanged,
this, &QgsGamepad3DMapController::buttonYChanged );
43 connect( mGamepad, &QGamepad::buttonL1Changed,
this, &QgsGamepad3DMapController::buttonL1Changed );
44 connect( mGamepad, &QGamepad::buttonR1Changed,
this, &QgsGamepad3DMapController::buttonR1Changed );
45 connect( mGamepad, &QGamepad::buttonL2Changed,
this, &QgsGamepad3DMapController::buttonL2Changed );
46 connect( mGamepad, &QGamepad::buttonR2Changed,
this, &QgsGamepad3DMapController::buttonR2Changed );
47 connect( mGamepad, &QGamepad::buttonSelectChanged,
this, &QgsGamepad3DMapController::buttonSelectChanged );
48 connect( mGamepad, &QGamepad::buttonStartChanged,
this, &QgsGamepad3DMapController::buttonStartChanged );
49 connect( mGamepad, &QGamepad::buttonL3Changed,
this, &QgsGamepad3DMapController::buttonL3Changed );
50 connect( mGamepad, &QGamepad::buttonR3Changed,
this, &QgsGamepad3DMapController::buttonR3Changed );
51 connect( mGamepad, &QGamepad::buttonUpChanged,
this, &QgsGamepad3DMapController::buttonUpChanged );
52 connect( mGamepad, &QGamepad::buttonDownChanged,
this, &QgsGamepad3DMapController::buttonDownChanged );
53 connect( mGamepad, &QGamepad::buttonLeftChanged,
this, &QgsGamepad3DMapController::buttonLeftChanged );
54 connect( mGamepad, &QGamepad::buttonRightChanged,
this, &QgsGamepad3DMapController::buttonRightChanged );
55 connect( mGamepad, &QGamepad::buttonCenterChanged,
this, &QgsGamepad3DMapController::buttonCenterChanged );
56 connect( mGamepad, &QGamepad::buttonGuideChanged,
this, &QgsGamepad3DMapController::buttonGuideChanged );
62QgsGamepad3DMapController *QgsGamepad3DMapController::clone()
const
64 return new QgsGamepad3DMapController( mGamepadDeviceId );
67QString QgsGamepad3DMapController::deviceId()
const
69 return u
"gamepad3d:%1"_s.arg( mGamepadDeviceId );
72bool QgsGamepad3DMapController::isConnected()
const
74 return mGamepad->isConnected();
77QString QgsGamepad3DMapController::name()
const
79 return mGamepad->name();
82double QgsGamepad3DMapController::axisLeftX()
const
84 return mGamepad->axisLeftX();
87double QgsGamepad3DMapController::axisLeftY()
const
89 return mGamepad->axisLeftY();
92double QgsGamepad3DMapController::axisRightX()
const
94 return mGamepad->axisRightX();
97double QgsGamepad3DMapController::axisRightY()
const
99 return mGamepad->axisRightY();
102bool QgsGamepad3DMapController::buttonA()
const
104 return mGamepad->buttonA();
107bool QgsGamepad3DMapController::buttonB()
const
109 return mGamepad->buttonB();
112bool QgsGamepad3DMapController::buttonX()
const
114 return mGamepad->buttonX();
117bool QgsGamepad3DMapController::buttonY()
const
119 return mGamepad->buttonY();
122bool QgsGamepad3DMapController::buttonL1()
const
124 return mGamepad->buttonL1();
127bool QgsGamepad3DMapController::buttonR1()
const
129 return mGamepad->buttonR1();
132double QgsGamepad3DMapController::buttonL2()
const
134 return mGamepad->buttonL2();
137double QgsGamepad3DMapController::buttonR2()
const
139 return mGamepad->buttonR2();
142bool QgsGamepad3DMapController::buttonSelect()
const
144 return mGamepad->buttonSelect();
147bool QgsGamepad3DMapController::buttonStart()
const
149 return mGamepad->buttonStart();
152bool QgsGamepad3DMapController::buttonL3()
const
154 return mGamepad->buttonL3();
157bool QgsGamepad3DMapController::buttonR3()
const
159 return mGamepad->buttonR3();
162bool QgsGamepad3DMapController::buttonUp()
const
164 return mGamepad->buttonUp();
167bool QgsGamepad3DMapController::buttonDown()
const
169 return mGamepad->buttonDown();
172bool QgsGamepad3DMapController::buttonLeft()
const
174 return mGamepad->buttonLeft();
177bool QgsGamepad3DMapController::buttonRight()
const
179 return mGamepad->buttonRight();
182bool QgsGamepad3DMapController::buttonCenter()
const
184 return mGamepad->buttonCenter();
187bool QgsGamepad3DMapController::buttonGuide()
const
189 return mGamepad->buttonGuide();
Abstract base class for all 3D map controllers.