summaryrefslogtreecommitdiffstats
path: root/src/input_common/sdl/sdl_impl.cpp
diff options
context:
space:
mode:
authorAmeer <aj662@drexel.edu>2020-06-21 18:36:28 +0200
committerAmeer <aj662@drexel.edu>2020-06-21 18:36:28 +0200
commit0248614add99c1df1bc7c9ff97091f678ff75aca (patch)
treee7a4a8e629039f940b4bef76e69d51ddbf2a0639 /src/input_common/sdl/sdl_impl.cpp
parentMerge pull request #4120 from lioncash/arb (diff)
downloadyuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.tar
yuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.tar.gz
yuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.tar.bz2
yuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.tar.lz
yuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.tar.xz
yuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.tar.zst
yuzu-0248614add99c1df1bc7c9ff97091f678ff75aca.zip
Diffstat (limited to '')
-rw-r--r--src/input_common/sdl/sdl_impl.cpp53
1 files changed, 37 insertions, 16 deletions
diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp
index 675b477fa..3c1820c4a 100644
--- a/src/input_common/sdl/sdl_impl.cpp
+++ b/src/input_common/sdl/sdl_impl.cpp
@@ -49,7 +49,8 @@ static int SDLEventWatcher(void* user_data, SDL_Event* event) {
class SDLJoystick {
public:
SDLJoystick(std::string guid_, int port_, SDL_Joystick* joystick)
- : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, &SDL_JoystickClose} {}
+ : guid{std::move(guid_)}, port{port_}, sdl_joystick{joystick, &SDL_JoystickClose} {
+ }
void SetButton(int button, bool value) {
std::lock_guard lock{mutex};
@@ -97,6 +98,7 @@ public:
std::lock_guard lock{mutex};
return (state.hats.at(hat) & direction) != 0;
}
+
/**
* The guid of the joystick
*/
@@ -125,6 +127,7 @@ private:
std::unordered_map<int, Sint16> axes;
std::unordered_map<int, Uint8> hats;
} state;
+
std::string guid;
int port;
std::unique_ptr<SDL_Joystick, decltype(&SDL_JoystickClose)> sdl_joystick;
@@ -155,7 +158,8 @@ std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_
if (map_it != joystick_map.end()) {
const auto vec_it =
std::find_if(map_it->second.begin(), map_it->second.end(),
- [&sdl_joystick](const std::shared_ptr<SDLJoystick>& joystick) {
+ [&sdl_joystick](const std::shared_ptr<SDLJoystick>& joystick)
+ {
return sdl_joystick == joystick->GetSDLJoystick();
});
if (vec_it != map_it->second.end()) {
@@ -166,7 +170,8 @@ std::shared_ptr<SDLJoystick> SDLState::GetSDLJoystickBySDLID(SDL_JoystickID sdl_
// Search for a SDLJoystick without a mapped SDL_Joystick...
const auto nullptr_it = std::find_if(map_it->second.begin(), map_it->second.end(),
- [](const std::shared_ptr<SDLJoystick>& joystick) {
+ [](const std::shared_ptr<SDLJoystick>& joystick)
+ {
return !joystick->GetSDLJoystick();
});
if (nullptr_it != map_it->second.end()) {
@@ -223,7 +228,8 @@ void SDLState::CloseJoystick(SDL_Joystick* sdl_joystick) {
const auto& joystick_guid_list = joystick_map[guid];
const auto joystick_it =
std::find_if(joystick_guid_list.begin(), joystick_guid_list.end(),
- [&sdl_joystick](const std::shared_ptr<SDLJoystick>& joystick) {
+ [&sdl_joystick](const std::shared_ptr<SDLJoystick>& joystick)
+ {
return joystick->GetSDLJoystick() == sdl_joystick;
});
joystick = *joystick_it;
@@ -279,7 +285,8 @@ void SDLState::CloseJoysticks() {
class SDLButton final : public Input::ButtonDevice {
public:
explicit SDLButton(std::shared_ptr<SDLJoystick> joystick_, int button_)
- : joystick(std::move(joystick_)), button(button_) {}
+ : joystick(std::move(joystick_)), button(button_) {
+ }
bool GetStatus() const override {
return joystick->GetButton(button);
@@ -293,7 +300,8 @@ private:
class SDLDirectionButton final : public Input::ButtonDevice {
public:
explicit SDLDirectionButton(std::shared_ptr<SDLJoystick> joystick_, int hat_, Uint8 direction_)
- : joystick(std::move(joystick_)), hat(hat_), direction(direction_) {}
+ : joystick(std::move(joystick_)), hat(hat_), direction(direction_) {
+ }
bool GetStatus() const override {
return joystick->GetHatDirection(hat, direction);
@@ -310,7 +318,8 @@ public:
explicit SDLAxisButton(std::shared_ptr<SDLJoystick> joystick_, int axis_, float threshold_,
bool trigger_if_greater_)
: joystick(std::move(joystick_)), axis(axis_), threshold(threshold_),
- trigger_if_greater(trigger_if_greater_) {}
+ trigger_if_greater(trigger_if_greater_) {
+ }
bool GetStatus() const override {
const float axis_value = joystick->GetAxis(axis);
@@ -330,7 +339,8 @@ private:
class SDLAnalog final : public Input::AnalogDevice {
public:
SDLAnalog(std::shared_ptr<SDLJoystick> joystick_, int axis_x_, int axis_y_, float deadzone_)
- : joystick(std::move(joystick_)), axis_x(axis_x_), axis_y(axis_y_), deadzone(deadzone_) {}
+ : joystick(std::move(joystick_)), axis_x(axis_x_), axis_y(axis_y_), deadzone(deadzone_) {
+ }
std::tuple<float, float> GetStatus() const override {
const auto [x, y] = joystick->GetAnalog(axis_x, axis_y);
@@ -368,7 +378,9 @@ private:
/// A button device factory that creates button devices from SDL joystick
class SDLButtonFactory final : public Input::Factory<Input::ButtonDevice> {
public:
- explicit SDLButtonFactory(SDLState& state_) : state(state_) {}
+ explicit SDLButtonFactory(SDLState& state_)
+ : state(state_) {
+ }
/**
* Creates a button device from a joystick button
@@ -443,7 +455,10 @@ private:
/// An analog device factory that creates analog devices from SDL joystick
class SDLAnalogFactory final : public Input::Factory<Input::AnalogDevice> {
public:
- explicit SDLAnalogFactory(SDLState& state_) : state(state_) {}
+ explicit SDLAnalogFactory(SDLState& state_)
+ : state(state_) {
+ }
+
/**
* Creates analog device from joystick axes
* @param params contains parameters for creating the device:
@@ -490,7 +505,8 @@ SDLState::SDLState() {
initialized = true;
if (start_thread) {
- poll_thread = std::thread([this] {
+ poll_thread = std::thread([this]
+ {
using namespace std::chrono_literals;
while (initialized) {
SDL_PumpEvents();
@@ -576,7 +592,9 @@ namespace Polling {
class SDLPoller : public InputCommon::Polling::DevicePoller {
public:
- explicit SDLPoller(SDLState& state_) : state(state_) {}
+ explicit SDLPoller(SDLState& state_)
+ : state(state_) {
+ }
void Start() override {
state.event_queue.Clear();
@@ -593,7 +611,9 @@ protected:
class SDLButtonPoller final : public SDLPoller {
public:
- explicit SDLButtonPoller(SDLState& state_) : SDLPoller(state_) {}
+ explicit SDLButtonPoller(SDLState& state_)
+ : SDLPoller(state_) {
+ }
Common::ParamPackage GetNextInput() override {
SDL_Event event;
@@ -602,8 +622,7 @@ public:
case SDL_JOYAXISMOTION:
if (std::abs(event.jaxis.value / 32767.0) < 0.5) {
break;
- }
- [[fallthrough]];
+ }[[fallthrough]];
case SDL_JOYBUTTONUP:
case SDL_JOYHATMOTION:
return SDLEventToButtonParamPackage(state, event);
@@ -615,7 +634,9 @@ public:
class SDLAnalogPoller final : public SDLPoller {
public:
- explicit SDLAnalogPoller(SDLState& state_) : SDLPoller(state_) {}
+ explicit SDLAnalogPoller(SDLState& state_)
+ : SDLPoller(state_) {
+ }
void Start() override {
SDLPoller::Start();