input: commit abans de clavar ma

This commit is contained in:
2025-07-30 11:39:38 +02:00
parent 69ee847575
commit 12ec55308e
2 changed files with 11 additions and 8 deletions

View File

@@ -402,7 +402,8 @@ void Input::add_gamepad(int device_index) {
} }
auto gamepad = std::make_unique<Gamepad>(pad); auto gamepad = std::make_unique<Gamepad>(pad);
std::cout << "Gamepad conectado (ID " << gamepad->instance_id << ")\n"; //std::cout << "Gamepad conectado (ID " << gamepad->instance_id << ")\n";
std::cout << "Gamepad connected (" << gamepad->name << ")\n";
gamepads.push_back(std::move(gamepad)); gamepads.push_back(std::move(gamepad));
} }
@@ -412,7 +413,7 @@ void Input::remove_gamepad(SDL_JoystickID id) {
}); });
if (it != gamepads.end()) { if (it != gamepads.end()) {
std::cout << "Gamepad desconectado (ID " << id << ")\n"; std::cout << "Gamepad disconnected (" << (*it)->name << ")\n";
gamepads.erase(it, gamepads.end()); gamepads.erase(it, gamepads.end());
} else { } else {
std::cerr << "No se encontró el gamepad con ID " << id << "\n"; std::cerr << "No se encontró el gamepad con ID " << id << "\n";

View File

@@ -89,8 +89,8 @@ class Input {
auto checkAnyButton(bool repeat = DO_NOT_ALLOW_REPEAT) -> int; // Comprueba si hay algún botón pulsado auto checkAnyButton(bool repeat = DO_NOT_ALLOW_REPEAT) -> int; // Comprueba si hay algún botón pulsado
// --- Métodos de gestión de mandos --- // --- Métodos de gestión de mandos ---
//auto discoverGameControllers() -> bool; // Busca si hay mandos conectados // auto discoverGameControllers() -> bool; // Busca si hay mandos conectados
//void discoverGameControllers(); // void discoverGameControllers();
[[nodiscard]] auto gameControllerFound() const -> bool; // Comprueba si hay algún mando conectado [[nodiscard]] auto gameControllerFound() const -> bool; // Comprueba si hay algún mando conectado
[[nodiscard]] auto getNumControllers() const -> int; // Obtiene el número de mandos conectados [[nodiscard]] auto getNumControllers() const -> int; // Obtiene el número de mandos conectados
[[nodiscard]] auto getControllerName(int controller_index) const -> std::string; // Obtiene el nombre de un mando de juego [[nodiscard]] auto getControllerName(int controller_index) const -> std::string; // Obtiene el nombre de un mando de juego
@@ -111,7 +111,6 @@ class Input {
void printConnectedGamepads() const; void printConnectedGamepads() const;
private: private:
// --- Estructuras internas --- // --- Estructuras internas ---
struct KeyBindings { struct KeyBindings {
@@ -136,14 +135,17 @@ class Input {
struct Gamepad { struct Gamepad {
SDL_Gamepad *pad; SDL_Gamepad *pad;
SDL_JoystickID instance_id; SDL_JoystickID instance_id;
std::string name;
Gamepad(SDL_Gamepad *p) Gamepad(SDL_Gamepad *gamepad)
: pad(p), instance_id(SDL_GetJoystickID(SDL_GetGamepadJoystick(p))) {} : pad(gamepad),
instance_id(SDL_GetJoystickID(SDL_GetGamepadJoystick(gamepad))),
name(std::string(SDL_GetGamepadName(gamepad)) + " #" + std::to_string(instance_id)) {}
~Gamepad() { ~Gamepad() {
if (pad) { if (pad) {
SDL_CloseGamepad(pad); SDL_CloseGamepad(pad);
std::cout << "Gamepad cerrado (ID " << instance_id << ")\n"; //std::cout << "Gamepad cerrado (ID " << instance_id << ")\n";
} }
} }
}; };