input: commit abans de clavar ma
This commit is contained in:
@@ -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";
|
||||||
|
|||||||
@@ -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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user