- [NEW] Dialeg per a configurar els joysticks

This commit is contained in:
2025-08-16 10:09:42 +02:00
parent 864c6b929d
commit 8201d51668
9 changed files with 170 additions and 38 deletions

View File

@@ -34,7 +34,7 @@ namespace gamepad
{
found = false;
next_type++;
if (next_type > GAMEPAD_TYPE_FULLER) return GAMEPAD_TYPE_SINCLAIR_1;
if (next_type == GAMEPAD_TYPE_CUSTOM) return next_type;
break;
}
}
@@ -42,7 +42,7 @@ namespace gamepad
return next_type;
}
void add(int32_t index, uint8_t type)
uint8_t add(int32_t index, uint8_t type)
{
if (SDL_IsGameController(index)) {
gamepad_t gamepad;
@@ -52,6 +52,19 @@ namespace gamepad
gamepad.type = ( (type == GAMEPAD_TYPE_ANY) ? getNextType() : type );
gamepads.push_back(gamepad);
}
return gamepads.size()-1;
}
void modify(int32_t index, uint8_t type)
{
for (auto& gamepad : gamepads)
{
if (gamepad.index == index)
{
gamepad.type = type;
return;
}
}
}
void remove(int32_t index)
@@ -67,7 +80,7 @@ namespace gamepad
void buttonDown(int32_t index, uint8_t button)
{
SDL_GameController *game_controller = SDL_GameControllerFromInstanceID(index);
for (auto gamepad : gamepads)
for (auto& gamepad : gamepads)
{
if (gamepad.gamepad == game_controller)
{
@@ -111,7 +124,7 @@ namespace gamepad
void buttonUp(int32_t index, uint8_t button)
{
SDL_GameController *game_controller = SDL_GameControllerFromInstanceID(index);
for (auto gamepad : gamepads)
for (auto& gamepad : gamepads)
{
if (gamepad.gamepad == game_controller)
{
@@ -153,4 +166,21 @@ namespace gamepad
}
uint8_t getNumGamepads()
{
return gamepads.size();
}
uint8_t getGamepadType(uint8_t index)
{
if (gamepads.size()>index) return gamepads[index].type;
return 0;
}
void setGamepadType(uint8_t index, uint8_t type)
{
if (gamepads.size()>index) gamepads[index].type = type;
}
}