3#include <QtCore/QString>
4#include <QtCore/QVariantMap>
178template<
typename MatchFunc>
182 result[QStringLiteral(
"valid")] =
false;
188 int bindingCount = 0;
189 SDL_GamepadBinding **bindings = SDL_GetGamepadBindings(gamepad, &bindingCount);
194 for (
int i = 0; i < bindingCount; ++i) {
195 SDL_GamepadBinding *binding = bindings[i];
196 if (binding && matchFunc(binding)) {
struct SDL_Gamepad SDL_Gamepad
RAII lock guard for joysticks.
JoystickLock & operator=(const JoystickLock &)=delete
JoystickLock(const JoystickLock &)=delete
QVariantMap getGUIDInfo(const QString &guid)
Parse GUID info (vendor, product, version, crc16)
bool destroyVirtualJoystick(int instanceId)
Destroy a virtual joystick.
QString connectionStateToString(int state)
Connection state to string.
bool gamepadEventsEnabled()
QString getPathForInstanceId(int instanceId)
Get device path for instance ID.
QString userMappingsFilePath()
Get path to user's custom mappings file.
int getVendorForInstanceId(int instanceId)
Get vendor ID for instance ID.
bool reloadMappings()
Reload all gamepad mappings.
void shutdown()
Shutdown SDL joystick/gamepad subsystems.
QString gamepadTypeDisplayName(int type)
bool isVirtualJoystick(int instanceId)
Check if a joystick is virtual.
void updateJoysticks()
Update joystick/gamepad state.
QString getTypeForInstanceId(int instanceId)
Get gamepad type string for instance ID.
QString getConnectionStateForInstanceId(int instanceId)
int addMappingsFromFile(const QString &filePath)
Add gamepad mappings from a file.
bool addMapping(const QString &mapping)
Add a single mapping string.
bool init()
Initialize SDL joystick/gamepad subsystems with QGC-specific hints.
QString getRealTypeForInstanceId(int instanceId)
Get real (underlying) gamepad type string for instance ID.
int gamepadButtonFromString(const QString &str)
QString getGUIDForInstanceId(int instanceId)
Get GUID string for instance ID.
int getProductVersionForInstanceId(int instanceId)
Get product version for instance ID.
QString getMappingForGUID(const QString &guid)
Get mapping string for a GUID.
QString getNameForInstanceId(int instanceId)
Get device name for instance ID.
int getPlayerIndexForInstanceId(int instanceId)
Get player index for instance ID.
bool isInitialized()
Check if SDL joystick subsystem is initialized.
void setJoystickEventsEnabled(bool enabled)
Enable/disable joystick event processing.
int createVirtualJoystick(const QString &name, int axisCount, int buttonCount, int hatCount)
Create a virtual joystick.
void setGamepadEventsEnabled(bool enabled)
Enable/disable gamepad event processing.
void populateBindingResult(QVariantMap &result, const SDL_GamepadBinding *binding)
Populate a QVariantMap with binding information from SDL_GamepadBinding.
bool addMappingPersistent(const QString &mapping)
Add a mapping and persist it to user's config file.
void pumpEvents()
Pump SDL events (call periodically)
bool joystickEventsEnabled()
int getProductForInstanceId(int instanceId)
Get product ID for instance ID.
int gamepadTypeFromString(const QString &str)
QVariantMap findBinding(SDL_Gamepad *gamepad, MatchFunc matchFunc)
int getInstanceIdFromPlayerIndex(int playerIndex)
Get instance ID from player index.
QString gamepadButtonToString(int button)
Gamepad button conversions.
QString gamepadTypeToString(int type)
Gamepad type conversions.
int gamepadAxisFromString(const QString &str)
QString gamepadAxisToString(int axis)
Gamepad axis conversions.
void lockJoysticks()
Lock joystick access for thread-safe operations.