Skip to content

Commit ab9ca34

Browse files
committed
connected device name list
1 parent 5dba443 commit ab9ca34

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/controller/physicaldevice/ConnectedPhysicalDeviceManager.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ ConnectedPhysicalDeviceManager::GetConnectedSDLGamepadsForPort(uint8_t portIndex
1313
return mConnectedSDLGamepads;
1414
}
1515

16+
std::vector<std::string> ConnectedPhysicalDeviceManager::GetConnectedSDLGamepadNames() {
17+
return mConnectedSDLGamepadNames;
18+
}
19+
1620
void ConnectedPhysicalDeviceManager::HandlePhysicalDeviceConnect(int32_t sdlDeviceIndex) {
1721
RefreshConnectedSDLGamepads();
1822
}
@@ -23,6 +27,7 @@ void ConnectedPhysicalDeviceManager::HandlePhysicalDeviceDisconnect(int32_t sdlJ
2327

2428
void ConnectedPhysicalDeviceManager::RefreshConnectedSDLGamepads() {
2529
mConnectedSDLGamepads.clear();
30+
mConnectedSDLGamepadNames.clear();
2631
for (int32_t i = 0; i < SDL_NumJoysticks(); i++) {
2732
// skip if this SDL joystick isn't a Gamepad
2833
if (!SDL_IsGameController(i)) {
@@ -31,8 +36,10 @@ void ConnectedPhysicalDeviceManager::RefreshConnectedSDLGamepads() {
3136

3237
auto gamepad = SDL_GameControllerOpen(i);
3338
auto instanceId = SDL_JoystickInstanceID(SDL_GameControllerGetJoystick(gamepad));
39+
auto name = SDL_GameControllerName(gamepad);
3440

3541
mConnectedSDLGamepads[instanceId] = gamepad;
42+
mConnectedSDLGamepadNames.push_back(name);
3643
}
3744
}
3845
} // namespace Ship

src/controller/physicaldevice/ConnectedPhysicalDeviceManager.h

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#pragma once
22

33
#include <unordered_map>
4+
#include <vector>
5+
#include <string>
46
#include <SDL2/SDL.h>
57

68
namespace Ship {
@@ -11,12 +13,14 @@ class ConnectedPhysicalDeviceManager {
1113
~ConnectedPhysicalDeviceManager();
1214

1315
std::unordered_map<int32_t, SDL_GameController*> GetConnectedSDLGamepadsForPort(uint8_t portIndex);
16+
std::vector<std::string> GetConnectedSDLGamepadNames();
1417

1518
void HandlePhysicalDeviceConnect(int32_t sdlDeviceIndex);
1619
void HandlePhysicalDeviceDisconnect(int32_t sdlJoystickInstanceId);
1720
void RefreshConnectedSDLGamepads();
1821

1922
private:
2023
std::unordered_map<int32_t, SDL_GameController*> mConnectedSDLGamepads;
24+
std::vector<std::string> mConnectedSDLGamepadNames;
2125
};
2226
} // namespace Ship

0 commit comments

Comments
 (0)