20using namespace Qt::StringLiterals;
23#include "moc_qgs2dgamepadcontroller.cpp"
25#include <QtGamepad/QGamepad>
27QgsGamepad2DMapController::QgsGamepad2DMapController(
int gamepadDeviceId, QObject *parent )
29 , mGamepadDeviceId( gamepadDeviceId )
31 mGamepad =
new QGamepad( gamepadDeviceId,
this );
34 connect( mGamepad, &QGamepad::connectedChanged,
this, &QgsGamepad2DMapController::connectedChanged );
35 connect( mGamepad, &QGamepad::axisLeftXChanged,
this, &QgsGamepad2DMapController::axisLeftXChanged );
36 connect( mGamepad, &QGamepad::axisLeftYChanged,
this, &QgsGamepad2DMapController::axisLeftYChanged );
37 connect( mGamepad, &QGamepad::axisRightXChanged,
this, &QgsGamepad2DMapController::axisRightXChanged );
38 connect( mGamepad, &QGamepad::axisRightYChanged,
this, &QgsGamepad2DMapController::axisRightYChanged );
39 connect( mGamepad, &QGamepad::buttonAChanged,
this, &QgsGamepad2DMapController::buttonAChanged );
40 connect( mGamepad, &QGamepad::buttonBChanged,
this, &QgsGamepad2DMapController::buttonBChanged );
41 connect( mGamepad, &QGamepad::buttonXChanged,
this, &QgsGamepad2DMapController::buttonXChanged );
42 connect( mGamepad, &QGamepad::buttonYChanged,
this, &QgsGamepad2DMapController::buttonYChanged );
43 connect( mGamepad, &QGamepad::buttonL1Changed,
this, &QgsGamepad2DMapController::buttonL1Changed );
44 connect( mGamepad, &QGamepad::buttonR1Changed,
this, &QgsGamepad2DMapController::buttonR1Changed );
45 connect( mGamepad, &QGamepad::buttonL2Changed,
this, &QgsGamepad2DMapController::buttonL2Changed );
46 connect( mGamepad, &QGamepad::buttonR2Changed,
this, &QgsGamepad2DMapController::buttonR2Changed );
47 connect( mGamepad, &QGamepad::buttonSelectChanged,
this, &QgsGamepad2DMapController::buttonSelectChanged );
48 connect( mGamepad, &QGamepad::buttonStartChanged,
this, &QgsGamepad2DMapController::buttonStartChanged );
49 connect( mGamepad, &QGamepad::buttonL3Changed,
this, &QgsGamepad2DMapController::buttonL3Changed );
50 connect( mGamepad, &QGamepad::buttonR3Changed,
this, &QgsGamepad2DMapController::buttonR3Changed );
51 connect( mGamepad, &QGamepad::buttonUpChanged,
this, &QgsGamepad2DMapController::buttonUpChanged );
52 connect( mGamepad, &QGamepad::buttonDownChanged,
this, &QgsGamepad2DMapController::buttonDownChanged );
53 connect( mGamepad, &QGamepad::buttonLeftChanged,
this, &QgsGamepad2DMapController::buttonLeftChanged );
54 connect( mGamepad, &QGamepad::buttonRightChanged,
this, &QgsGamepad2DMapController::buttonRightChanged );
55 connect( mGamepad, &QGamepad::buttonCenterChanged,
this, &QgsGamepad2DMapController::buttonCenterChanged );
56 connect( mGamepad, &QGamepad::buttonGuideChanged,
this, &QgsGamepad2DMapController::buttonGuideChanged );
61 connect( mGamepad, &QGamepad::axisRightYChanged,
this, [](
double value )
64 emit zoomMap( value + 1 );
69QgsGamepad2DMapController *QgsGamepad2DMapController::clone()
const
71 return new QgsGamepad2DMapController( mGamepadDeviceId );
74QString QgsGamepad2DMapController::deviceId()
const
76 return u
"gamepad2d:%1"_s.arg( mGamepadDeviceId );
79bool QgsGamepad2DMapController::isConnected()
const
81 return mGamepad->isConnected();
84QString QgsGamepad2DMapController::name()
const
86 return mGamepad->name();
89double QgsGamepad2DMapController::axisLeftX()
const
91 return mGamepad->axisLeftX();
94double QgsGamepad2DMapController::axisLeftY()
const
96 return mGamepad->axisLeftY();
99double QgsGamepad2DMapController::axisRightX()
const
101 return mGamepad->axisRightX();
104double QgsGamepad2DMapController::axisRightY()
const
106 return mGamepad->axisRightY();
109bool QgsGamepad2DMapController::buttonA()
const
111 return mGamepad->buttonA();
114bool QgsGamepad2DMapController::buttonB()
const
116 return mGamepad->buttonB();
119bool QgsGamepad2DMapController::buttonX()
const
121 return mGamepad->buttonX();
124bool QgsGamepad2DMapController::buttonY()
const
126 return mGamepad->buttonY();
129bool QgsGamepad2DMapController::buttonL1()
const
131 return mGamepad->buttonL1();
134bool QgsGamepad2DMapController::buttonR1()
const
136 return mGamepad->buttonR1();
139double QgsGamepad2DMapController::buttonL2()
const
141 return mGamepad->buttonL2();
144double QgsGamepad2DMapController::buttonR2()
const
146 return mGamepad->buttonR2();
149bool QgsGamepad2DMapController::buttonSelect()
const
151 return mGamepad->buttonSelect();
154bool QgsGamepad2DMapController::buttonStart()
const
156 return mGamepad->buttonStart();
159bool QgsGamepad2DMapController::buttonL3()
const
161 return mGamepad->buttonL3();
164bool QgsGamepad2DMapController::buttonR3()
const
166 return mGamepad->buttonR3();
169bool QgsGamepad2DMapController::buttonUp()
const
171 return mGamepad->buttonUp();
174bool QgsGamepad2DMapController::buttonDown()
const
176 return mGamepad->buttonDown();
179bool QgsGamepad2DMapController::buttonLeft()
const
181 return mGamepad->buttonLeft();
184bool QgsGamepad2DMapController::buttonRight()
const
186 return mGamepad->buttonRight();
189bool QgsGamepad2DMapController::buttonCenter()
const
191 return mGamepad->buttonCenter();
194bool QgsGamepad2DMapController::buttonGuide()
const
196 return mGamepad->buttonGuide();
Abstract base class for all 2D map controllers.