diff --git a/source/input.cpp b/source/input.cpp index d26df0c..1e890a9 100644 --- a/source/input.cpp +++ b/source/input.cpp @@ -402,7 +402,8 @@ void Input::add_gamepad(int device_index) { } auto gamepad = std::make_unique(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)); } @@ -412,7 +413,7 @@ void Input::remove_gamepad(SDL_JoystickID id) { }); if (it != gamepads.end()) { - std::cout << "Gamepad desconectado (ID " << id << ")\n"; + std::cout << "Gamepad disconnected (" << (*it)->name << ")\n"; gamepads.erase(it, gamepads.end()); } else { std::cerr << "No se encontró el gamepad con ID " << id << "\n"; diff --git a/source/input.h b/source/input.h index a399471..27c3b5c 100644 --- a/source/input.h +++ b/source/input.h @@ -89,8 +89,8 @@ class Input { auto checkAnyButton(bool repeat = DO_NOT_ALLOW_REPEAT) -> int; // Comprueba si hay algún botón pulsado // --- Métodos de gestión de mandos --- - //auto discoverGameControllers() -> bool; // Busca si hay mandos conectados - //void discoverGameControllers(); + // auto discoverGameControllers() -> bool; // Busca si hay mandos conectados + // void discoverGameControllers(); [[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 getControllerName(int controller_index) const -> std::string; // Obtiene el nombre de un mando de juego @@ -111,7 +111,6 @@ class Input { void printConnectedGamepads() const; - private: // --- Estructuras internas --- struct KeyBindings { @@ -136,14 +135,17 @@ class Input { struct Gamepad { SDL_Gamepad *pad; SDL_JoystickID instance_id; + std::string name; - Gamepad(SDL_Gamepad *p) - : pad(p), instance_id(SDL_GetJoystickID(SDL_GetGamepadJoystick(p))) {} + Gamepad(SDL_Gamepad *gamepad) + : pad(gamepad), + instance_id(SDL_GetJoystickID(SDL_GetGamepadJoystick(gamepad))), + name(std::string(SDL_GetGamepadName(gamepad)) + " #" + std::to_string(instance_id)) {} ~Gamepad() { if (pad) { SDL_CloseGamepad(pad); - std::cout << "Gamepad cerrado (ID " << instance_id << ")\n"; + //std::cout << "Gamepad cerrado (ID " << instance_id << ")\n"; } } };