载入中...
搜索中...
未找到
Joystick.h
浏览该文件的文档.
1#pragma once
2
3#include "joystick/Joystick.h"
4#include "joystick/sdl/Pad.h"
5
6#include <list>
7#include <map>
8#include <string>
9#include <vector>
10
11namespace eve::joystick::sdl {
12
15public:
17 Joystick();
19 ~Joystick() override;
20
22 Pad* addJoystick(int deviceindex) override;
26 Pad* getJoystickFromID(int instanceid) override;
28 Pad* getJoystick(int joyindex) override;
30 int getIndex(const eve::joystick::Pad* pad) override;
32 int getJoystickCount() const override;
33
35 void loadGamepadMappings(const std::string& mappings) override;
37 std::string saveGamepadMappings() override;
39 std::string getGamepadMappingString(const std::string& guid) const override;
40
41private:
42 void checkGamepads(const std::string& guid) const;
43 std::string getDeviceGUID(int deviceindex) const;
44
45 std::vector<Pad*> activeSticks_;
46 std::list<Pad*> joysticks_;
47 std::map<std::string, bool> recentGamepadGUIDs_;
48};
49
50} // namespace eve::joystick::sdl
Joystick / gamepad manager. Tracks connected pads and gamecontroller mappings.
Definition Joystick.h:14
One connected (or previously connected) joystick / gamepad device. Gamepad axis/button names follow S...
Definition Pad.h:13
SDL joystick/gamepad module backend (device enumeration and mappings).
Definition Joystick.h:14
int getJoystickCount() const override
Number of currently tracked pads.
Definition Joystick.cpp:52
Joystick()
Initializes SDL joystick subsystems used by this backend.
Definition Joystick.cpp:15
std::string saveGamepadMappings() override
Serializes the in-memory GameController mapping database.
Definition Joystick.cpp:188
void removeJoystick(eve::joystick::Pad *pad) override
Removes and destroys a previously opened pad.
Definition Joystick.cpp:104
std::string getGamepadMappingString(const std::string &guid) const override
Mapping string for a device GUID, or empty if none.
Definition Joystick.cpp:175
Pad * addJoystick(int deviceindex) override
Open a device by SDL device index; returns null on failure.
Definition Joystick.cpp:63
void loadGamepadMappings(const std::string &mappings) override
Load SDL GameController mapping database (newline-separated).
Definition Joystick.cpp:142
int getIndex(const eve::joystick::Pad *pad) override
Dense index of pad, or -1 if not tracked.
Definition Joystick.cpp:45
~Joystick() override
Closes all tracked pads.
Definition Joystick.cpp:27
Pad * getJoystick(int joyindex) override
Pad at a dense joyindex in [0, getJoystickCount()).
Definition Joystick.cpp:40
Pad * getJoystickFromID(int instanceid) override
Looks up a pad by SDL instance id; null if unknown.
Definition Joystick.cpp:56
SDL joystick/gamepad backend (GameController + optional haptic rumble).
Definition Pad.h:13
uint32_t pad[2]