AntiMicroX
Loading...
Searching...
No Matches
inputdaemon.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 INPUTDAEMONTHREAD_H
20#define INPUTDAEMONTHREAD_H
21
23//#include "fakeclasses/xbox360wireless.h"
24#include <SDL2/SDL_events.h>
25
26class InputDevice;
29class Joystick;
30class GameController;
31class SDLEventReader;
32class QThread;
33
39class InputDaemon : public QObject
40{
42
43 public:
44 explicit InputDaemon(QMap<SDL_JoystickID, InputDevice *> *joysticks, AntiMicroSettings *settings, bool graphical = true,
45 QObject *parent = 0);
47
48 protected:
50 InputDevice *device, bool readCurrent = true);
51
54
59 Joystick *openJoystickDevice(int index);
60
63
64 signals:
67 void complete(InputDevice *joystick);
68 void complete();
69
70 void deviceUpdated(int index, InputDevice *device);
72 void deviceAdded(InputDevice *device);
73
74 public slots:
75 void run();
76 void quit();
77 void refresh();
78 void refreshJoystick(InputDevice *joystick);
79 void refreshJoysticks();
80 void startWorker();
82 void removeDevice(InputDevice *device);
83 void addInputDevice(int index, QMap<QString, int> &uniques, int &counterUniques, bool &duplicatedGamepad);
84 void refreshIndexes();
85
86 private slots:
87 void stop();
90
91 private:
95
99
102
105
110 // SDL_Joystick* xbox360;
111};
112
113#endif // INPUTDAEMONTHREAD_H
Definition antimicrosettings.h:27
Represents a typical gamepad (like PS4 or Xbox gamepad)
Definition gamecontroller.h:45
Fetches hardware events from SDL and dispatch them to input objects like JoyAxis or JoyButton....
Definition inputdaemon.h:40
void secondInputPass(QQueue< SDL_Event > *sdlEventQueue)
Dispatches postprocessed SDL events to the input objects like JoyAxis or JoyButton and activates them...
Definition inputdaemon.cpp:1032
~InputDaemon()
Definition inputdaemon.cpp:81
void convertMappingsToUnique(QSettings *sett, QString guidString, QString uniqueIdString)
Definition inputdaemon.cpp:1295
void deviceAdded(InputDevice *device)
Joystick * openJoystickDevice(int index)
Definition inputdaemon.cpp:630
void firstInputPass(QQueue< SDL_Event > *sdlEventQueue)
Fetches events from SDL event queue, filters them and updates InputDeviceBitArrayStatus.
Definition inputdaemon.cpp:670
void updatePollResetRate(int tempPollRate)
Definition inputdaemon.cpp:1282
void clearBitArrayStatusInstances()
Definition inputdaemon.cpp:1242
QString getJoyInfo(SDL_JoystickGUID sdlvalue)
Definition inputdaemon.cpp:135
QMap< SDL_JoystickID, InputDevice * > * m_joysticks
Definition inputdaemon.h:96
void stop()
Definition inputdaemon.cpp:259
void addInputDevice(int index, QMap< QString, int > &uniques, int &counterUniques, bool &duplicatedGamepad)
Definition inputdaemon.cpp:435
QTimer pollResetTimer
Definition inputdaemon.h:109
QHash< InputDevice *, InputDeviceBitArrayStatus * > & getReleaseEventsGeneratedLocal()
Definition inputdaemon.cpp:1319
void refreshMapping(QString mapping, InputDevice *device)
Definition inputdaemon.cpp:328
AntiMicroSettings * m_settings
Definition inputdaemon.h:108
QHash< SDL_JoystickID, GameController * > trackcontrollers
Definition inputdaemon.h:98
void refreshJoystick(InputDevice *joystick)
Definition inputdaemon.cpp:297
QThread * sdlWorkerThread
Definition inputdaemon.h:107
void refresh()
Definition inputdaemon.cpp:265
void complete(InputDevice *joystick)
void refreshJoysticks()
Definition inputdaemon.cpp:153
QHash< SDL_JoystickID, Joystick * > & getTrackjoysticksLocal()
Definition inputdaemon.cpp:1317
void startWorker()
Definition inputdaemon.cpp:95
InputDeviceBitArrayStatus * createOrGrabBitStatusEntry(QHash< InputDevice *, InputDeviceBitArrayStatus * > *statusHash, InputDevice *device, bool readCurrent=true)
Definition inputdaemon.cpp:649
void complete()
void modifyUnplugEvents(QQueue< SDL_Event > *sdlEventQueue)
Postprocesses fetched raw events.
Definition inputdaemon.cpp:885
QHash< InputDevice *, InputDeviceBitArrayStatus * > releaseEventsGenerated
Definition inputdaemon.h:100
void deviceUpdated(int index, InputDevice *device)
void joystickRefreshed(InputDevice *joystick)
SDLEventReader * eventWorker
Definition inputdaemon.h:106
QHash< SDL_JoystickID, Joystick * > trackjoysticks
Definition inputdaemon.h:97
void refreshIndexes()
Definition inputdaemon.cpp:419
QHash< InputDevice *, InputDeviceBitArrayStatus * > pendingEventValues
Definition inputdaemon.h:101
void resetActiveButtonMouseDistances()
Definition inputdaemon.cpp:1275
void joysticksRefreshed(QMap< SDL_JoystickID, InputDevice * > *joysticks)
void removeDevice(InputDevice *device)
Definition inputdaemon.cpp:403
bool m_graphical
Definition inputdaemon.h:104
void run()
Definition inputdaemon.cpp:101
bool stopped
Definition inputdaemon.h:103
void quit()
Definition inputdaemon.cpp:304
void deviceRemoved(SDL_JoystickID deviceID)
QBitArray createUnplugEventBitArray(InputDevice *device)
Definition inputdaemon.cpp:1012
QHash< InputDevice *, InputDeviceBitArrayStatus * > & getPendingEventValuesLocal()
Definition inputdaemon.cpp:1324
Definition inputdevicebitarraystatus.h:29
Abstract class representing a hardware input device, e.g a joystick or controller.
Definition inputdevice.h:51
Definition joydpadxml.h:27
General input device (which is not a typical gamepad like steering wheels, flight sticks etc....
Definition joystick.h:35
Definition sdleventreader.h:28