Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SFMLGamepad.h>
- #include <SFML/Graphics/RenderWindow.hpp>
- #include <SFML/Window/Event.hpp>
- #include <iostream>
- const char* getButtonString(sfg::Button button)
- {
- switch (button) {
- case sfg::Button::A:
- return "A";
- case sfg::Button::B:
- return "B";
- case sfg::Button::X:
- return "X";
- case sfg::Button::Y:
- return "Y";
- case sfg::Button::LeftShoulder:
- return "Left shoulder";
- case sfg::Button::RightShoulder:
- return "Right shoulder";
- case sfg::Button::LeftTrigger:
- return "Left trigger";
- case sfg::Button::RightTrigger:
- return "Right trigger";
- case sfg::Button::LeftStick:
- return "Left stick";
- case sfg::Button::RightStick:
- return "Right stick";
- case sfg::Button::Back:
- return "Back";
- case sfg::Button::Start:
- return "Start";
- case sfg::Button::Guide:
- return "Guide";
- default:
- return "";
- }
- }
- const char* getAxisString(sfg::Axis axis)
- {
- switch (axis) {
- case sfg::Axis::DPadX:
- return "D-pad X";
- case sfg::Axis::DPadY:
- return "D-pad Y";
- case sfg::Axis::LeftX:
- return "Left stick X";
- case sfg::Axis::LeftY:
- return "Left stick Y";
- case sfg::Axis::RightX:
- return "Right stick X";
- case sfg::Axis::RightY:
- return "Right stick Y";
- case sfg::Axis::LeftTrigger:
- return "Left trigger";
- case sfg::Axis::RightTrigger:
- return "Right trigger";
- default:
- return "";
- }
- }
- void printGamepadEvent(const sfg::Event& event)
- {
- switch (event.type) {
- case sfg::Event::Type::ButtonPressed:
- std::cout << "Gamepad button pressed: " << getButtonString(event.button) << std::endl;
- break;
- case sfg::Event::Type::ButtonReleased:
- std::cout << "Gamepad button released: " << getButtonString(event.button) << std::endl;
- break;
- case sfg::Event::Type::AxisMoved:
- std::cout << "Gamepad axis moved: " << getAxisString(event.axis) << ", pos: " << event.axisPosition << std::endl;;
- break;
- default:
- break;
- }
- }
- int main()
- {
- // Create the window of the application
- sf::RenderWindow window(sf::VideoMode(400, 680), "Joystick", sf::Style::Close);
- window.setVerticalSyncEnabled(true);
- auto test = sf::Keyboard::localize(sf::Keyboard::ScanNum2);
- sfg::loadMappings();
- auto id = sf::Joystick::getIdentification(0);
- const auto& mapping = sfg::getMapping(id);
- while (window.isOpen()) {
- sf::Event event;
- while (window.pollEvent(event)) {
- if (event.type == sf::Event::Closed)
- window.close();
- if (sfg::isGamepadEvent(event)) {
- sfg::Event sfgEvent = sfg::fromSfmlEvent(mapping, event);
- printGamepadEvent(sfgEvent);
- }
- }
- window.clear();
- window.display();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement